Remove Controller screen, global button shortcuts, touch-toggled splash

UX overhaul:
- Drop the Controller screen entirely (touch zones, swipe gestures, HID
  gesture engine, four icon arrays, hand icon)
- Two persistent screens (Usage, Bluetooth) cycled by the middle PWR
  button; splash becomes a touch-toggled welcome animation
- Left button (GPIO 0): hold to send Space (Claude Code voice-mode PTT)
- Right button (GPIO 18): press to send Shift+Tab (mode toggle)
- Middle button on splash cycles animations instead of screens
- Remove USB plug/unplug auto-switch (Controller was the unplug target)
- Hide battery indicator on splash when in LOW state — it's noisy over
  the pixel-art animations

Implementation:
- Delete firmware/src/hid.{cpp,h} and touch.{cpp,h}; their roles fold
  into main.cpp button handlers and LVGL CLICKED events respectively
- splash_get_root() exposes the splash container so ui.cpp can attach
  a click handler for the dismiss-on-tap behavior
- Tap detection uses LVGL's built-in LV_EVENT_CLICKED with event
  bubbling on the inner panels — debouncing is handled by LVGL
- On Bluetooth screen, only the Reset Bluetooth zone is clickable;
  taps elsewhere are no-ops (no conflict with splash toggle)

Docs:
- README: drop Controller from screens table, rewrite Physical buttons
  table, remove Gesture controls section
- CLAUDE.md: update file map, button assignments, drop gesture refs
This commit is contained in:
Hermann Björgvin Haraldsson
2026-05-11 00:51:07 +00:00
parent 90eaeec35b
commit 7fc8ed721a
12 changed files with 98 additions and 803 deletions
-65
View File
@@ -1,65 +0,0 @@
#include "hid.h"
#include "ble.h"
// HID usage codes (same for USB and BLE HID)
#define HID_KEY_ARROW_UP 0x52
#define HID_KEY_ARROW_DOWN 0x51
#define HID_KEY_ARROW_LEFT 0x50
#define HID_KEY_ARROW_RIGHT 0x4F
#define HID_KEY_ENTER 0x28
#define HID_KEY_ESCAPE 0x29
#define HID_KEY_BACKSPACE 0x2A
#define HID_KEY_TAB 0x2B
#define HID_KEY_SPACE 0x2C
// Modifier bits
#define MOD_LEFT_CTRL 0x01
#define MOD_LEFT_SHIFT 0x02
struct gesture_mapping_t {
gesture_t gesture;
uint8_t key;
uint8_t modifier;
};
static const gesture_mapping_t mappings[] = {
{ GESTURE_SWIPE_UP, HID_KEY_ARROW_UP, 0 },
{ GESTURE_SWIPE_DOWN, HID_KEY_ARROW_DOWN, 0 },
{ GESTURE_SWIPE_LEFT, HID_KEY_TAB, MOD_LEFT_SHIFT },
{ GESTURE_SWIPE_RIGHT, HID_KEY_ENTER, 0 },
{ GESTURE_TAP_ESCAPE, HID_KEY_ESCAPE, 0 },
{ GESTURE_TAP_BACKSPACE, HID_KEY_BACKSPACE, 0 },
{ GESTURE_TAP_CTRL_SPACE, HID_KEY_SPACE, MOD_LEFT_CTRL },
{ GESTURE_TAP_ARROW_LEFT, HID_KEY_ARROW_LEFT, 0 },
{ GESTURE_TAP_ARROW_RIGHT, HID_KEY_ARROW_RIGHT, 0 },
};
#define MAPPING_COUNT (sizeof(mappings) / sizeof(mappings[0]))
void hid_init(void) {
// BLE HID is initialized in ble_init()
}
void hid_on_gesture(gesture_t gesture) {
if (!ble_is_connected()) return;
if (gesture == GESTURE_HOLD_START) {
ble_keyboard_press(HID_KEY_SPACE, 0);
return;
}
if (gesture == GESTURE_HOLD_END) {
ble_keyboard_release();
return;
}
if (gesture == GESTURE_TOGGLE_SCREEN) {
return;
}
for (int i = 0; i < (int)MAPPING_COUNT; i++) {
if (mappings[i].gesture == gesture) {
ble_keyboard_press(mappings[i].key, mappings[i].modifier);
delay(20);
ble_keyboard_release();
return;
}
}
}
-21
View File
@@ -1,21 +0,0 @@
#pragma once
#include <Arduino.h>
enum gesture_t {
GESTURE_NONE,
GESTURE_SWIPE_UP,
GESTURE_SWIPE_DOWN,
GESTURE_SWIPE_LEFT,
GESTURE_SWIPE_RIGHT,
GESTURE_HOLD_START,
GESTURE_HOLD_END,
GESTURE_TAP_ESCAPE,
GESTURE_TAP_BACKSPACE,
GESTURE_TAP_CTRL_SPACE,
GESTURE_TAP_ARROW_LEFT,
GESTURE_TAP_ARROW_RIGHT,
GESTURE_TOGGLE_SCREEN,
};
void hid_init(void);
void hid_on_gesture(gesture_t gesture);
-257
View File
@@ -1,263 +1,6 @@
#pragma once
#include <stdint.h>
#define ICON_ESCAPE_W 48
#define ICON_ESCAPE_H 48
static const uint16_t icon_escape_data[2304] = {
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x2124, 0x31A6, 0x5289, 0x5ACA, 0x5289, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4207, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x4228, 0x4A48, 0x4A48, 0x4228, 0x39E7, 0x31A6, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x31A6, 0x5AEA, 0x9470, 0x9CB1, 0x9491, 0x8C30, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x738D, 0x5289, 0x2944, 0x18E3, 0x2103, 0x2124, 0x4A69, 0x73AE, 0x83EF, 0x7BEE, 0x73AE, 0x6B6C, 0x5AEB, 0x4A48, 0x39C7, 0x3185, 0x2945, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x5289, 0x9470, 0xA533, 0xAD54, 0xAD33, 0xAD33, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0x9CF2, 0x840F, 0x3186, 0x18E3, 0x2124, 0x39C6, 0x738D, 0xA513, 0xA513, 0xA513, 0xA513, 0xA513, 0x9CF2, 0x9CD2, 0x9470, 0x7BAE, 0x5ACA, 0x39C6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x5AAA, 0x9CB1, 0xAD54, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD74, 0xA4F2, 0x7BEE, 0x3186, 0x18E3, 0x2104, 0x31A6, 0x6B6D, 0xA533, 0xAD54, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD54, 0x9CD2, 0x8C50, 0x73AD, 0x5ACA, 0x4207, 0x2944, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x5289, 0x9491, 0xAD33, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD54, 0xA513, 0x9CD2, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x94B1, 0x83EF, 0x5AEA, 0x2945, 0x18E3, 0x2103, 0x2124, 0x52AA, 0x8C30, 0x9491, 0x9CD2, 0x9CD2, 0x9CF2, 0xA4F2, 0xA533, 0xAD54, 0xAD74, 0xAD74, 0xAD54, 0x9491, 0x736D, 0x4228, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x8C30, 0xAD33, 0xB574, 0xB574, 0xB574, 0xAD74, 0xA513, 0x738D, 0x5269, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x3186, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x31A6, 0x39C6, 0x4207, 0x4A48, 0x52AA, 0x6B4C, 0x7BEE, 0x9CD2, 0xAD33, 0xAD74, 0xAD74, 0xAD53, 0xA4F2, 0x8C50, 0x5AEB, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0xAD74, 0xAD74, 0xAD74, 0xAD33, 0x8C50, 0x62EB, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x2944, 0x3186, 0x39E7, 0x4A48, 0x5ACA, 0x738D, 0x8C2F, 0xA4F2, 0xAD54, 0xAD74, 0xA533, 0x8C50, 0x632C, 0x39C7, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0xAD54, 0xA513, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x31A6, 0x5289, 0x83EF, 0x9CB1, 0xAD33, 0xAD74, 0xAD54, 0x9CD2, 0x630B, 0x39C6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0xA513, 0x738D, 0x8C30, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x39A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2945, 0x31A6, 0x630B, 0x8C70, 0xAD33, 0xAD74, 0xAD54, 0x9CD2, 0x632C, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0x9CD2, 0x4A69, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x62EB, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C6, 0x5ACA, 0x840F, 0xA4F2, 0xAD74, 0xAD54, 0x8C50, 0x5AEB, 0x2965, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0x9CB1, 0x31A6, 0x31A6, 0x5ACA, 0x9491, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x52AA, 0x840F, 0xAD33, 0xAD74, 0xA533, 0x8C50, 0x4228, 0x2944, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0x9CB1, 0x31A6, 0x2104, 0x3186, 0x5ACA, 0x8C30, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x39A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2945, 0x5ACA, 0x8C50, 0xAD33, 0xAD54, 0xA4F2, 0x738D, 0x4207, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xB574, 0x9CB1, 0x31A6, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x62EB, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x630B, 0x9CB1, 0xAD54, 0xAD53, 0x9491, 0x5ACA, 0x2124, 0x2103, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xAD74, 0x94B1, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39A6, 0x83EF, 0xA4F2, 0xAD74, 0xAD54, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x18E3,
0x18E3, 0x4A69, 0x842F, 0xA533, 0xAD74, 0x94B1, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C30, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x39A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x52AA, 0x8C30, 0xAD74, 0xAD74, 0x8C50, 0x5ACA, 0x2945, 0x18E3, 0x18E3,
0x18E3, 0x4207, 0x736D, 0xA4F2, 0xA4F2, 0x83EF, 0x3186, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x62EB, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x736D, 0xAD33, 0xAD74, 0x9CD2, 0x7BAE, 0x3185, 0x18E3, 0x18E3,
0x18E3, 0x3185, 0x5289, 0x840F, 0x7BEE, 0x5AEA, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x5ACA, 0x9CD2, 0xAD54, 0xAD33, 0x8C70, 0x39C7, 0x2104, 0x18E3,
0x18E3, 0x2104, 0x2944, 0x3186, 0x3186, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C30, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4A48, 0x83EF, 0xA513, 0xAD74, 0x9CD2, 0x4A69, 0x2945, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x62EB, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39E7, 0x6B4C, 0xA4F2, 0xB574, 0x9CF2, 0x5AEB, 0x31A6, 0x18E3,
0x18E3, 0x18E3, 0x2103, 0x2124, 0x2104, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x52AA, 0x9CD2, 0xB574, 0xA513, 0x6B4C, 0x39E7, 0x18E3,
0x18E3, 0x18E3, 0x2124, 0x39C7, 0x31A6, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C30, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x4A28, 0x9CD2, 0xB574, 0xA513, 0x7BAE, 0x4228, 0x18E3,
0x18E3, 0x3185, 0x4A69, 0x738D, 0x6B6D, 0x52AA, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x5AAA, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x4207, 0x9CB1, 0xB574, 0xA513, 0x7BEE, 0x4A48, 0x18E3,
0x18E3, 0x4228, 0x73AD, 0xA513, 0xA533, 0x8C30, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xAD33, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C7, 0x94B1, 0xB574, 0xA533, 0x840F, 0x4A48, 0x18E3,
0x18E3, 0x4A48, 0x83EF, 0xA513, 0xAD54, 0x9491, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C6, 0x94B1, 0xB574, 0xA533, 0x840F, 0x4A49, 0x18E3,
0x18E3, 0x4A48, 0x7BEE, 0xA513, 0xB574, 0x9CD2, 0x4207, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x52AA, 0x738D, 0x738D, 0x5269, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39E7, 0x9CB1, 0xB574, 0xA513, 0x7BEE, 0x4A48, 0x18E3,
0x18E3, 0x4228, 0x73AE, 0xA513, 0xB574, 0x9CD2, 0x4A48, 0x2944, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x4A48, 0x9CD2, 0xB574, 0xA513, 0x73AE, 0x4228, 0x18E3,
0x18E3, 0x39E7, 0x6B6C, 0xA513, 0xB574, 0x9CF2, 0x52AA, 0x3186, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x52AA, 0x9CD2, 0xB574, 0xA513, 0x6B6C, 0x39E7, 0x18E3,
0x18E3, 0x31A6, 0x5AEB, 0x9CF2, 0xB574, 0xA4F2, 0x6B4C, 0x39E7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39E7, 0x6B2C, 0xA4F2, 0xB574, 0x9CF2, 0x5AEB, 0x31A6, 0x18E3,
0x18E3, 0x2945, 0x4A48, 0x9CD2, 0xAD74, 0xA513, 0x7BEE, 0x4A48, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4A48, 0x83EF, 0xA513, 0xAD74, 0x9CD2, 0x4A49, 0x2945, 0x18E3,
0x18E3, 0x2104, 0x39C7, 0x9470, 0xAD54, 0xAD54, 0x9CD2, 0x5ACA, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x5ACA, 0x9CD2, 0xAD54, 0xAD54, 0x9470, 0x39C6, 0x2104, 0x18E3,
0x18E3, 0x18E3, 0x3185, 0x73AE, 0x9CD2, 0xAD74, 0xAD33, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x736D, 0xAD33, 0xAD74, 0x9CD2, 0x7BAE, 0x3185, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x2945, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0x8C2F, 0x5289, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x52AA, 0x842F, 0xAD74, 0xAD74, 0x8C50, 0x5ACA, 0x2945, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x2124, 0x39C6, 0x738D, 0xAD54, 0xAD74, 0xA4F2, 0x83EF, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39A6, 0x83EF, 0xA4F2, 0xAD74, 0xAD74, 0x73AD, 0x31A6, 0x2104, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x2103, 0x2124, 0x5ACA, 0x9491, 0xAD53, 0xAD54, 0x9CB1, 0x630B, 0x39C6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x630B, 0x9CD2, 0xAD54, 0xAD53, 0x9491, 0x5ACA, 0x2124, 0x2103, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4207, 0x736D, 0xA4F2, 0xAD74, 0xAD33, 0x8C70, 0x5ACA, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2945, 0x5ACA, 0x8C70, 0xAD33, 0xAD74, 0xA4F2, 0x736D, 0x4207, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2944, 0x4228, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x840F, 0x52AA, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x52AA, 0x840F, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x4228, 0x2944, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x5AEB, 0x8C50, 0xAD54, 0xAD74, 0xA4F2, 0x840F, 0x5ACA, 0x39C6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C6, 0x5ACA, 0x840F, 0xA4F2, 0xAD74, 0xAD54, 0x8C50, 0x5AEB, 0x2965, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x632C, 0x9CD2, 0xAD54, 0xAD74, 0xAD33, 0x8C70, 0x630B, 0x39A6, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2945, 0x39A6, 0x630B, 0x8C70, 0xAD33, 0xAD74, 0xAD54, 0x9CD2, 0x632B, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C7, 0x630B, 0x9CD2, 0xAD54, 0xAD74, 0xAD33, 0x9CB1, 0x83EF, 0x52AA, 0x31A6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x31A6, 0x52AA, 0x83EF, 0x9CD2, 0xAD33, 0xAD74, 0xAD54, 0x9CD2, 0x630B, 0x39C7, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C6, 0x632C, 0x8C50, 0xA533, 0xAD54, 0xAD54, 0xA4F2, 0x8C30, 0x738D, 0x5ACA, 0x4A48, 0x39E7, 0x3185, 0x2945, 0x2124, 0x2104, 0x2103, 0x2124, 0x2945, 0x3185, 0x39E7, 0x4A48, 0x5ACA, 0x736D, 0x842F, 0xA4F2, 0xAD54, 0xAD74, 0xAD33, 0x8C50, 0x632B, 0x39C7, 0x2924, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5AEB, 0x8C50, 0xA4F2, 0xAD53, 0xAD74, 0xAD74, 0xAD33, 0x9CD2, 0x83EF, 0x6B4C, 0x52AA, 0x4A28, 0x4207, 0x39E7, 0x39C6, 0x39E7, 0x4A48, 0x52AA, 0x6B2C, 0x83EF, 0x9CD2, 0xAD33, 0xAD74, 0xAD74, 0xAD53, 0xA4F2, 0x8C70, 0x5AEB, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x4228, 0x738D, 0x9491, 0xAD54, 0xAD74, 0xAD74, 0xAD54, 0xA513, 0xA4F2, 0x9CD2, 0x9CD2, 0x9CB1, 0x9CB1, 0x94B1, 0x9CB1, 0x9CD2, 0x9CD2, 0xA4F2, 0xA513, 0xAD54, 0xAD74, 0xAD74, 0xAD74, 0x9491, 0x6B6D, 0x4228, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2944, 0x4207, 0x5ACA, 0x738D, 0x8C50, 0x9CD2, 0xAD33, 0xAD74, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD54, 0x9CD2, 0x8C50, 0x73AD, 0x5ACA, 0x4207, 0x2944, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x31A6, 0x5ACA, 0x7BAE, 0x8C70, 0x9CD2, 0x9CF2, 0xA513, 0xA513, 0xA513, 0xA533, 0xA533, 0xA533, 0xA513, 0xA513, 0x9CF2, 0x9CD2, 0x9470, 0x73AE, 0x5ACA, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2104, 0x2945, 0x3185, 0x39C6, 0x4A69, 0x5AEB, 0x6B4C, 0x7BAE, 0x7BEE, 0x83EF, 0x840F, 0x7BEE, 0x73AE, 0x6B6C, 0x5AEB, 0x4A49, 0x39C6, 0x3185, 0x2945, 0x2104, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x31A6, 0x39E7, 0x4228, 0x4A48, 0x4A48, 0x4A49, 0x4A48, 0x4228, 0x39E7, 0x31A6, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
};
#define ICON_DELETE_W 48
#define ICON_DELETE_H 48
static const uint16_t icon_delete_data[2304] = {
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x2965, 0x39E7, 0x4A28, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4228, 0x39E7, 0x2965, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2924, 0x39C6, 0x5289, 0x6B6C, 0x7BEE, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x7BCE, 0x6B4C, 0x5289, 0x39C6, 0x2124, 0x2103, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2924, 0x4A69, 0x73AE, 0x9CD2, 0xA4F2, 0xA513, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA533, 0xA513, 0xA4F2, 0x9CD2, 0x738D, 0x4228, 0x2124, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3186, 0x5289, 0x7BEE, 0x9CD2, 0xAD74, 0xAD74, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD74, 0x9CB1, 0x738D, 0x39C6, 0x2124, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x52AA, 0x842F, 0xA533, 0xAD74, 0xAD54, 0xA513, 0x9CD2, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CB1, 0x9CD2, 0xA513, 0xAD54, 0xAD74, 0x9CD2, 0x5289, 0x2965, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xA533, 0xAD54, 0xAD54, 0x9CF2, 0x6B6C, 0x4A69, 0x39C6, 0x39A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x39A6, 0x39C6, 0x4A69, 0x738D, 0xA513, 0xAD74, 0xA4F2, 0x6B4C, 0x39E7, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39C7, 0x62EB, 0x8C50, 0xA513, 0xAD74, 0xAD54, 0x9471, 0x6B4C, 0x4207, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2965, 0x4A69, 0x9CD2, 0xB574, 0xA513, 0x7BCE, 0x4228, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x31A6, 0x630B, 0x94B1, 0xAD53, 0xAD74, 0xAD33, 0x9CB1, 0x6B2C, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39A6, 0x738D, 0x9491, 0xAD53, 0xAD74, 0xAD33, 0x9491, 0x5ACA, 0x39C6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x4228, 0x6B4C, 0x94B1, 0xAD33, 0xAD54, 0xA533, 0x842F, 0x5AEB, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x4A69, 0x738D, 0x738D, 0x52AA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x52AA, 0x738D, 0x738D, 0x4A69, 0x2945, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2924, 0x39E7, 0x736D, 0xA4F2, 0xAD54, 0xAD54, 0xA513, 0x8C50, 0x5ACA, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x738D, 0xAD74, 0xAD74, 0x8C50, 0x5ACA, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2944, 0x4207, 0x7BEE, 0x9CD2, 0xAD54, 0xAD74, 0xA513, 0x8C2F, 0x4A69, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x738D, 0xAD74, 0xAD74, 0xA533, 0x9491, 0x5ACA, 0x31A6, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9471, 0xA533, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x2104, 0x2965, 0x4A69, 0x7BAE, 0x9CF2, 0xAD54, 0xAD54, 0xA4F2, 0x7BEE, 0x5289, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x52AA, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x5AEB, 0x39C7, 0x39C6, 0x5AEB, 0x8C30, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x5ACA, 0x2945, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x2103, 0x2945, 0x4A48, 0x7BEE, 0xAD53, 0xAD74, 0xAD54, 0x9CF2, 0x83EF, 0x4A69, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xAD33, 0xAD74, 0xAD74, 0x8C50, 0x632C, 0x632B, 0x8C50, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x2944, 0x4208, 0x842F, 0xA513, 0xAD74, 0xAD74, 0x9CD2, 0x73AD, 0x4207, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0xAD33, 0xA4F2, 0xA4F2, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x39C6, 0x630B, 0x9CF2, 0xAD74, 0xAD53, 0x94B1, 0x6B6D, 0x4228, 0x2924, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD33, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x4228, 0x7BCE, 0xA513, 0xB574, 0xA513, 0x7BCE, 0x4A48, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x630B, 0xA4F2, 0xAD74, 0xB574, 0xB574, 0xAD74, 0xA4F2, 0x6B2C, 0x39E7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x4228, 0x7BCE, 0xA513, 0xB574, 0xA513, 0x7BCE, 0x4A48, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x630B, 0xA4F2, 0xAD74, 0xB574, 0xB574, 0xAD74, 0xA4F2, 0x6B2C, 0x39E7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x39C6, 0x630B, 0x9CF2, 0xAD74, 0xAD53, 0x94B1, 0x6B6D, 0x4228, 0x2924, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD33, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x2944, 0x4207, 0x8C2F, 0xA513, 0xAD74, 0xAD74, 0x9CD2, 0x73AD, 0x4207, 0x2944, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0xAD33, 0xA4F2, 0xA4F2, 0xAD33, 0xAD74, 0xAD74, 0x8C50, 0x5AEB, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x2103, 0x2945, 0x4A49, 0x7BEE, 0xAD53, 0xAD74, 0xAD54, 0x9CF2, 0x7BEF, 0x4A69, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9471, 0xA533, 0xAD74, 0xAD74, 0x8C50, 0x6B2C, 0x632C, 0x8C50, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x2104, 0x2965, 0x4A69, 0x7BCE, 0x9CF2, 0xAD54, 0xAD54, 0x9CF2, 0x7BCE, 0x5289, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x52AA, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x5AEB, 0x39C7, 0x39C6, 0x5AEB, 0x8C50, 0xA533, 0xAD74, 0xAD33, 0x8C50, 0x5AAA, 0x2945, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2944, 0x4207, 0x7BEE, 0x9CD2, 0xAD54, 0xAD74, 0xA513, 0x842F, 0x4A48, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x738D, 0xAD74, 0xAD74, 0xAD33, 0x9491, 0x5ACA, 0x31A6, 0x18E3, 0x18E3, 0x31A6, 0x5ACA, 0x9491, 0xAD33, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2944, 0x39E7, 0x736D, 0xA4F2, 0xAD54, 0xAD54, 0xA513, 0x8C50, 0x5ACA, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x738D, 0xAD74, 0xAD74, 0x8C50, 0x5ACA, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x5ACA, 0x8C50, 0xAD74, 0xAD74, 0x738D, 0x31A6, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x4228, 0x6B6C, 0x94B1, 0xAD33, 0xAD54, 0xA533, 0x842F, 0x5AEB, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x5269, 0x738D, 0x738D, 0x52AA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x52AA, 0x738D, 0x738D, 0x5269, 0x2945, 0x2104, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39A6, 0x738D, 0x9491, 0xAD54, 0xAD74, 0xAD33, 0x9491, 0x5ACA, 0x39A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x31A6, 0x630B, 0x94B1, 0xAD53, 0xAD74, 0xAD33, 0x94B1, 0x632C, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x31A6, 0x94B1, 0xB574, 0xA533, 0x842F, 0x4A69, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39E7, 0x630B, 0x8C50, 0xA513, 0xAD74, 0xAD54, 0x9470, 0x6B4C, 0x4207, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2965, 0x4A69, 0x9CD2, 0xB574, 0xA513, 0x7BCE, 0x4228, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xA533, 0xAD74, 0xAD54, 0x9CF2, 0x6B4C, 0x4A49, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x4A69, 0x738D, 0xA513, 0xAD74, 0xA4F2, 0x6B4C, 0x39E7, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x52AA, 0x842F, 0xA533, 0xAD74, 0xAD54, 0xA4F2, 0x9CD2, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x94B1, 0x9CD2, 0xA513, 0xAD54, 0xAD74, 0x9CD2, 0x5289, 0x2965, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3186, 0x5289, 0x7BEE, 0x9CD2, 0xAD74, 0xAD74, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD74, 0xAD74, 0x9CB1, 0x738D, 0x39C6, 0x2124, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2924, 0x4A69, 0x7BAE, 0x9CD2, 0xA513, 0xA513, 0xA533, 0xA533, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xAD33, 0xA533, 0xA533, 0xA513, 0xA4F2, 0x9CD2, 0x738D, 0x4228, 0x2124, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2944, 0x39C6, 0x5289, 0x6B6C, 0x7BEE, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x842F, 0x7BCE, 0x6B4C, 0x5289, 0x39C6, 0x2124, 0x2103, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x2965, 0x39E7, 0x4A48, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x4A28, 0x39E7, 0x2965, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
};
#define ICON_ARROW_LEFT_W 48
#define ICON_ARROW_LEFT_H 48
static const uint16_t icon_arrow_left_data[2304] = {
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x3185, 0x4207, 0x4207, 0x3185, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5289, 0x73AD, 0x73AD, 0x4A69, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xA513, 0xA513, 0x738D, 0x39C6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEB, 0x8C50, 0xA513, 0xAD74, 0xAD33, 0x736D, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9470, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x5ACA, 0x2924, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x5AAA, 0x31A6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEA, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEA, 0x9470, 0xAD33, 0xAD74, 0xAD33, 0x94B1, 0x630B, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x5ACA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEA, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEA, 0x9470, 0xAD33, 0xAD74, 0xAD33, 0x94B1, 0x630B, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x5ACA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEA, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x5AEB, 0x9470, 0xAD33, 0xAD74, 0xAD53, 0x9CD2, 0x6B4C, 0x31A6, 0x2945, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x6B6C, 0x9491, 0xAD33, 0xAD74, 0xAD54, 0x9CF2, 0x73AD, 0x5ACA, 0x4A48, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4208, 0x39C7, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C7, 0x630B, 0x9491, 0xA533, 0xB574, 0xB574, 0xAD54, 0xA513, 0x8C50, 0x840F, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEE, 0x738D, 0x4A69, 0x3185, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x52AA, 0x9491, 0xAD33, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xA513, 0x738D, 0x4208, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x52AA, 0x9491, 0xAD33, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xA513, 0x738D, 0x4208, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x630B, 0x9491, 0xA533, 0xB574, 0xB574, 0xAD54, 0xA513, 0x8C50, 0x840F, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEE, 0x738D, 0x4A69, 0x3185, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x3185, 0x6B6C, 0x9491, 0xAD33, 0xAD74, 0xAD54, 0x9CF2, 0x738D, 0x5ACA, 0x4A48, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x39E7, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3185, 0x5AEB, 0x9470, 0xAD33, 0xAD74, 0xAD53, 0x9CD2, 0x6B4C, 0x31A6, 0x2945, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEB, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x5AAA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9470, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x630B, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEB, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x5AAA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9470, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x630B, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEB, 0x8C50, 0xA513, 0xAD74, 0xAD53, 0x8C50, 0x630B, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x630B, 0x8C50, 0xAD33, 0xAD74, 0xAD53, 0x94B1, 0x52AA, 0x31A6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9471, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x5ACA, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x39C6, 0x5AEB, 0x8C50, 0xA513, 0xAD74, 0xAD33, 0x736D, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x632B, 0x8C50, 0xA513, 0xA513, 0x738D, 0x39C6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5289, 0x73AD, 0x73AD, 0x4A69, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x3186, 0x4228, 0x4228, 0x3186, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
};
#define ICON_ARROW_RIGHT_W 48
#define ICON_ARROW_RIGHT_H 48
static const uint16_t icon_arrow_right_data[2304] = {
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x4207, 0x4207, 0x3185, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x4A69, 0x73AD, 0x73AD, 0x5289, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C6, 0x738D, 0xA513, 0xA513, 0x8C50, 0x632B, 0x2965, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x736D, 0xAD33, 0xAD74, 0xA513, 0x8C50, 0x5AEB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x5ACA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9471, 0x5AEB, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x3186, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3165, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x5AEB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3165, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x5AEB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x5AEB, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3165, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x5AEB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2945, 0x31A6, 0x632C, 0x9CB1, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x630B, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C7, 0x4208, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4A48, 0x5ACA, 0x738D, 0x9CD2, 0xAD54, 0xAD74, 0xAD33, 0x9491, 0x736D, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x4A69, 0x738D, 0x7BEE, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x840F, 0x8C50, 0xA513, 0xAD54, 0xB574, 0xB574, 0xAD33, 0x9491, 0x632B, 0x39C7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4207, 0x738D, 0xA513, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD33, 0x9491, 0x52AA, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4207, 0x738D, 0xA513, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xB574, 0xAD33, 0x9491, 0x52AA, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3185, 0x4A69, 0x738D, 0x7BEE, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x840F, 0x8C50, 0xA513, 0xAD54, 0xB574, 0xB574, 0xAD33, 0x9491, 0x632B, 0x39C7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C7, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4A48, 0x5ACA, 0x738D, 0x9CD2, 0xAD54, 0xAD74, 0xAD33, 0x9491, 0x736D, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2124, 0x2945, 0x31A6, 0x632C, 0x9CB1, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x630B, 0x3186, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x62EB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3185, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x62EB, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x62EB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x3186, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3185, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x5AEB, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9491, 0x62EB, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x3186, 0x5AEB, 0x8C30, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x62EB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x3186, 0x52AA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x8C70, 0x632C, 0x3185, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x5ACA, 0x9491, 0xAD33, 0xAD74, 0xAD33, 0x9471, 0x5AEB, 0x3165, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x31A6, 0x736D, 0xAD33, 0xAD74, 0xA513, 0x8C70, 0x5AEB, 0x39C6, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C6, 0x738D, 0xA513, 0xA513, 0x8C50, 0x632C, 0x2965, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x4A69, 0x73AD, 0x73AD, 0x5289, 0x2965, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3186, 0x4228, 0x4228, 0x3186, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
};
#define ICON_HAND_W 40
#define ICON_HAND_H 40
static const uint16_t icon_hand_data[1600] = {
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2945, 0x39E7, 0x4A48, 0x5289, 0x5289, 0x4A48, 0x39E7, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x4207, 0x6B4C, 0x8C50, 0xA4F2, 0xA4F2, 0x8C50, 0x6B4C, 0x39E7, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2924, 0x4228, 0x6B4C, 0x9491, 0xA4F2, 0xAD33, 0xAD33, 0xA4F2, 0x9491, 0x6B4C, 0x4228, 0x2924, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2945, 0x3186, 0x39A6, 0x39A6, 0x4228, 0x6B4C, 0x8C70, 0xAD74, 0xA513, 0x9CD2, 0x9CD2, 0xA513, 0xB574, 0x8C70, 0x6B4C, 0x4228, 0x39A6, 0x39A6, 0x3186, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2965, 0x5289, 0x6B6C, 0x842F, 0x842F, 0x8C50, 0x9CB1, 0xA513, 0xAD74, 0x7BCE, 0x52AA, 0x52AA, 0x7BCE, 0xB574, 0xA513, 0x9CB1, 0x8C50, 0x842F, 0x842F, 0x6B6C, 0x5289, 0x2965, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x3186, 0x4A69, 0x7BCE, 0x9491, 0xA533, 0xA533, 0xAD33, 0xAD54, 0xAD54, 0xAD74, 0x632B, 0x3186, 0x3186, 0x630B, 0xB574, 0xAD54, 0xAD54, 0xAD33, 0xA533, 0xA533, 0x9491, 0x7BCE, 0x4A69, 0x3186, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4A49, 0x7BCE, 0xA4F2, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xAD74, 0xA4F2, 0x7BCE, 0x4A69, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x5AEB, 0x9491, 0xAD33, 0x9491, 0x6B6C, 0x6B6C, 0x7BCE, 0xA513, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0xA513, 0x7BCE, 0x6B6C, 0x6B6C, 0x9491, 0xAD33, 0x94B1, 0x840F, 0x6B6D, 0x6B6D, 0x6B2C, 0x52AA, 0x39E7, 0x2104, 0x2103, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x6B6C, 0xA533, 0xAD54, 0x83EF, 0x39C6, 0x39C6, 0x5289, 0x9CB1, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9CB1, 0x5289, 0x39C6, 0x39C6, 0x83EF, 0xAD74, 0xAD54, 0xAD33, 0xA533, 0xA533, 0x9CF2, 0x842F, 0x5AEB, 0x3186, 0x2124, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xAD54, 0xAD74, 0x7BAE, 0x2124, 0x2124, 0x4207, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x4207, 0x2124, 0x2124, 0x73AE, 0xAD74, 0xAD74, 0xAD74, 0xAD54, 0xAD54, 0xAD54, 0xA513, 0x8C30, 0x630B, 0x39C6, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x39C7, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x9CD2, 0x840F, 0x840F, 0x8C50, 0xA533, 0x9CF2, 0x840F, 0x4228, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x39C7, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x840F, 0x39E7, 0x39E7, 0x5289, 0x9CB1, 0xAD33, 0xA4F2, 0x5289, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x39C7, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x7BCE, 0x2945, 0x2945, 0x4228, 0x9491, 0xAD54, 0xAD33, 0x52AA, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x39C7, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3, 0x18E3, 0x5AAA, 0xB574, 0xB574, 0x9491, 0x39C7, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9470, 0xAD54, 0xAD54, 0x5ACA, 0x18E3, 0x18E3, 0x5289, 0xA513, 0xA513, 0x8C2F, 0x39C6, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x8C70, 0xAD54, 0xAD54, 0x52AA, 0x18E3, 0x18E3, 0x4A48, 0x8C70, 0x8C70, 0x7BAE, 0x31A6, 0x18E3, 0x18E3, 0x738D, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x2965, 0x3185, 0x2965, 0x7BCE, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x2965, 0x5AEB, 0x736D, 0x736D, 0x39E7, 0x18E3, 0x18E3, 0x3185, 0x4A48, 0x4A48, 0x4207, 0x2924, 0x18E3, 0x18E3, 0x6B2C, 0x9CD2, 0x9CD2, 0x6B4C, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x2103, 0x2104, 0x3185, 0x39E7, 0x5289, 0x5289, 0x5289, 0x8C30, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x2124, 0x39C6, 0x39E7, 0x39E7, 0x2945, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x5289, 0x73AE, 0x73AE, 0x5289, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x2124, 0x3185, 0x630B, 0x8C2F, 0x9491, 0x9CB1, 0x9CB1, 0xA533, 0xB574, 0xB574, 0x73AD, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x2124, 0x2124, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x31A6, 0x31A6, 0x2945, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x31A6, 0x5ACA, 0x842F, 0xA513, 0xA513, 0xA533, 0xAD33, 0xAD54, 0xB574, 0xB574, 0x73AE, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x18E3, 0x4A69, 0x9491, 0xA513, 0xAD54, 0x9CD2, 0x9CD2, 0xA4F2, 0xAD33, 0xB574, 0xB574, 0x7BCE, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x9491, 0xB574, 0xB574, 0x5ACA, 0x18E3,
0x2124, 0x52AA, 0xA513, 0xA533, 0x9CB1, 0x630B, 0x52AA, 0x5ACA, 0x8C50, 0xAD54, 0xAD74, 0x9491, 0x6B2C, 0x39E7, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x39E7, 0x9491, 0xAD54, 0xAD54, 0x52AA, 0x18E3,
0x2924, 0x5AEB, 0xAD54, 0xAD53, 0x8C70, 0x4208, 0x2945, 0x2944, 0x632C, 0x94B1, 0xA513, 0xA4F2, 0x9470, 0x4A69, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x4228, 0x9491, 0xAD54, 0xA513, 0x52AA, 0x18E3,
0x2104, 0x5ACA, 0xAD33, 0xAD54, 0x9CB1, 0x52AA, 0x31A6, 0x2104, 0x31A6, 0x52AA, 0x842F, 0x9491, 0x8C70, 0x4A48, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2965, 0x4A69, 0x94B1, 0xA533, 0x9CD2, 0x5289, 0x18E3,
0x2103, 0x4A48, 0x8C50, 0xA4F2, 0xA513, 0x7BEE, 0x52AA, 0x3165, 0x2945, 0x3186, 0x52AA, 0x630B, 0x630B, 0x39C6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39C6, 0x5AEB, 0x9CD2, 0xA4F2, 0x8C50, 0x4A48, 0x18E3,
0x18E3, 0x39C6, 0x62EB, 0x8C70, 0xAD74, 0xAD54, 0x840F, 0x4A48, 0x3165, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4A48, 0x73AD, 0xA4F2, 0x9CB1, 0x73AD, 0x4207, 0x18E3,
0x18E3, 0x2944, 0x39C6, 0x6B4C, 0x9470, 0xA533, 0x9CD2, 0x840F, 0x52AA, 0x3186, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2124, 0x630B, 0x9491, 0xAD33, 0x8C50, 0x52AA, 0x31A6, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x4228, 0x6B6C, 0x94B1, 0xA533, 0xAD54, 0x7BCE, 0x5289, 0x3185, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2944, 0x39C6, 0x7BCE, 0xA533, 0xAD33, 0x7BEE, 0x39E7, 0x2945, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x2944, 0x39E7, 0x6B4C, 0x9470, 0xAD74, 0xA4F2, 0x842F, 0x5289, 0x3186, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39E7, 0x6B6D, 0x9491, 0xAD33, 0x94B1, 0x632C, 0x2124, 0x2104, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2924, 0x4228, 0x6B4C, 0x94B1, 0xA513, 0xA4F2, 0x7BCE, 0x5ACA, 0x31A6, 0x2924, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2103, 0x2944, 0x39E7, 0x632B, 0x9491, 0xA4F2, 0x9CF2, 0x738D, 0x4A48, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x39E7, 0x6B6D, 0x94B1, 0xAD74, 0xAD54, 0x8C50, 0x5AAA, 0x31A6, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x39C6, 0x6B6D, 0x9491, 0xB574, 0xAD33, 0x8C70, 0x4A48, 0x2945, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2945, 0x39E7, 0x6B4C, 0x8C70, 0xA533, 0xA4F2, 0x8C50, 0x738D, 0x5ACA, 0x4228, 0x31A6, 0x2945, 0x2124, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2124, 0x2965, 0x39C6, 0x4A48, 0x630B, 0x7BCE, 0x9491, 0xA513, 0xAD33, 0x840F, 0x5ACA, 0x31A6, 0x2104, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x4207, 0x6B2C, 0x9470, 0xA513, 0xAD54, 0x9CF2, 0x8C50, 0x6B6D, 0x5ACA, 0x4A48, 0x4208, 0x39E7, 0x39C7, 0x39C6, 0x39C6, 0x39E7, 0x4228, 0x4A69, 0x5AEB, 0x738D, 0x9491, 0xA533, 0xAD33, 0x9CF2, 0x8C70, 0x5ACA, 0x31A6, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2924, 0x39C6, 0x5ACA, 0x7BEE, 0xA513, 0xA533, 0xA533, 0x9CF2, 0x9CD2, 0x94B1, 0x9491, 0x9491, 0x9491, 0x9491, 0x9491, 0x9491, 0x9491, 0x94B1, 0x9CD2, 0xA4F2, 0xAD33, 0xAD33, 0x94B1, 0x73AD, 0x4A48, 0x31A6, 0x2124, 0x2103, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2124, 0x31A6, 0x5289, 0x736D, 0x840F, 0x9470, 0x9CD2, 0xA513, 0xAD33, 0xAD54, 0xAD54, 0xAD74, 0xB574, 0xB574, 0xAD74, 0xAD54, 0xAD33, 0xA4F2, 0x9CB1, 0x8C50, 0x7BEE, 0x632C, 0x4A48, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2124, 0x4228, 0x630B, 0x7BCE, 0x8C70, 0x9CF2, 0xA513, 0xAD54, 0xAD74, 0xB574, 0xB574, 0xAD54, 0xA513, 0x9CD2, 0x8C50, 0x73AD, 0x5AAA, 0x39E7, 0x2124, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2965, 0x39C6, 0x4228, 0x4A49, 0x5289, 0x52AA, 0x52AA, 0x5ACA, 0x5ACA, 0x5ACA, 0x52AA, 0x52AA, 0x5289, 0x4A48, 0x4207, 0x31A6, 0x2945, 0x2104, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x18E3,
};
#define ICON_BLUETOOTH_W 48
#define ICON_BLUETOOTH_H 48
static const uint16_t icon_bluetooth_data[2304] = {
+18 -33
View File
@@ -4,17 +4,15 @@
#include "display_cfg.h"
#include "data.h"
#include "ui.h"
#include "hid.h"
#include "touch.h"
#include "ble.h"
#include "power.h"
#include "imu.h"
#include "splash.h"
// Physical buttons:
// BTN_BACK (GPIO 0) — left, previous animation on splash
// BTN_FWD (GPIO 18) — right, next animation on splash
// AXP PWR (PMU) — middle, cycle screens
// Physical buttons (global, screen-independent):
// BTN_BACK (GPIO 0) — left, send Space (Claude Code voice mode push-to-talk)
// BTN_FWD (GPIO 18) — right, send Shift+Tab (Claude Code mode toggle)
// AXP PWR (PMU) — middle, cycle screens; on splash, cycle animations
#define BTN_BACK 0
#define BTN_FWD 18
@@ -290,15 +288,9 @@ void setup() {
lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
lv_indev_set_read_cb(indev, my_touch_cb);
// Init USB HID keyboard (BLE-based)
hid_init();
// Init BLE data channel
ble_init();
// Init touch gesture detection
touch_init();
// Physical buttons: back (GPIO 0) and forward (GPIO 18)
pinMode(BTN_BACK, INPUT_PULLUP);
pinMode(BTN_FWD, INPUT_PULLUP);
@@ -327,32 +319,34 @@ void loop() {
touch_read();
lv_timer_handler();
ui_tick_anim();
touch_tick();
ble_tick();
power_tick();
imu_tick();
splash_tick();
// Three-button input (edge-detected on press):
// BACK (GPIO 0) → previous animation on splash screen
// FWD (GPIO 18) → next animation on splash screen
// PWR (AXP) → cycle screens
// Three-button input (global, screen-independent):
// LEFT (GPIO 0) → Space (voice-mode push-to-talk; press & release tracked)
// RIGHT (GPIO 18) → Shift+Tab (Claude Code mode toggle)
// PWR (AXP) → cycle screens; on splash, cycle animations
{
static bool back_was = false, fwd_was = false;
bool back_now = (digitalRead(BTN_BACK) == LOW);
bool fwd_now = (digitalRead(BTN_FWD) == LOW);
if (back_now && !back_was && ui_get_current_screen() == SCREEN_SPLASH) {
splash_prev();
if (back_now != back_was) {
if (back_now) ble_keyboard_press(0x2C, 0); // HID Space, no mods
else ble_keyboard_release();
back_was = back_now;
}
if (fwd_now && !fwd_was && ui_get_current_screen() == SCREEN_SPLASH) {
splash_next();
if (fwd_now != fwd_was) {
if (fwd_now) ble_keyboard_press(0x2B, 0x02); // HID Tab + LEFT_SHIFT
else ble_keyboard_release();
fwd_was = fwd_now;
}
back_was = back_now;
fwd_was = fwd_now;
if (power_pwr_pressed()) {
ui_cycle_screen();
if (ui_get_current_screen() == SCREEN_SPLASH) splash_next();
else ui_cycle_screen();
}
}
@@ -391,15 +385,6 @@ void loop() {
ui_update_ble_status(bs, ble_get_device_name(), ble_get_mac_address());
}
// Auto-switch screen on USB cable connect/disconnect — but never away from splash
if (power_usb_changed() && ui_get_current_screen() != SCREEN_SPLASH) {
if (power_is_usb_connected()) {
ui_show_screen(SCREEN_USAGE);
} else {
ui_show_screen(SCREEN_CONTROLLER);
}
}
// Update battery indicator
static int last_pct = -2;
static bool last_charging = false;
+4
View File
@@ -135,6 +135,10 @@ void splash_hide(void) {
active = false;
}
lv_obj_t* splash_get_root(void) {
return splash_container;
}
const char *splash_current_name(void) {
if (SPLASH_ANIM_COUNT == 0) return "(none)";
return splash_anims[cur_anim].name;
+3
View File
@@ -22,6 +22,9 @@ void splash_set_active(bool active);
void splash_show(void);
void splash_hide(void);
// Root container (so ui.cpp can attach a click event).
lv_obj_t* splash_get_root(void);
// Current animation name (for debug/UI).
const char *splash_current_name(void);
-179
View File
@@ -1,179 +0,0 @@
#include "touch.h"
#include "ui.h"
#include "ble.h"
#include <Arduino.h>
#include "display_cfg.h"
// Thresholds
#define SWIPE_MIN_PX 50
#define SWIPE_MAX_CROSS_PX 30
#define HOLD_TIME_MS 500
#define LOGO_HOLD_TIME_MS 800
#define TAP_MAX_MOVE_PX 15
#define LOGO_X_MAX 100
#define LOGO_Y_MAX 100
#define MARGIN 20
enum touch_state_t {
TS_IDLE,
TS_DOWN,
TS_HOLDING,
TS_SWIPING,
TS_LOGO_HOLD,
};
static touch_state_t state = TS_IDLE;
static uint16_t start_x, start_y;
static uint16_t last_x, last_y;
static uint32_t down_time;
// Shared touch state (read once per loop in main.cpp)
extern volatile bool touch_pressed;
extern volatile uint16_t touch_x;
extern volatile uint16_t touch_y;
static bool get_touch(uint16_t* x, uint16_t* y) {
if (touch_pressed) {
*x = touch_x;
*y = touch_y;
return true;
}
return false;
}
static gesture_t classify_swipe(int dx, int dy) {
int ax = abs(dx);
int ay = abs(dy);
if (ax > ay && ax >= SWIPE_MIN_PX && ay <= SWIPE_MAX_CROSS_PX)
return dx > 0 ? GESTURE_SWIPE_RIGHT : GESTURE_SWIPE_LEFT;
if (ay > ax && ay >= SWIPE_MIN_PX && ax <= SWIPE_MAX_CROSS_PX)
return dy > 0 ? GESTURE_SWIPE_DOWN : GESTURE_SWIPE_UP;
return GESTURE_NONE;
}
static bool in_logo(uint16_t x, uint16_t y) {
return x < LOGO_X_MAX && y < LOGO_Y_MAX;
}
// Controller zone coordinates for 480x480 layout (scaled, MARGIN=20, CONTENT_Y=100)
// Side zones: 110x138, starting at y=100
#define ZONE_LEFT_X_MAX 130
#define ZONE_RIGHT_X_MIN 350
#define ZONE_TOP_Y_MIN 100
#define ZONE_TOP_Y_MAX 238
#define ZONE_BOT_Y_MIN 248
#define ZONE_BOT_Y_MAX 386
static gesture_t classify_zone_tap(uint16_t x, uint16_t y) {
if (x < ZONE_LEFT_X_MAX) {
if (y >= ZONE_TOP_Y_MIN && y < ZONE_TOP_Y_MAX) return GESTURE_TAP_ESCAPE;
if (y >= ZONE_BOT_Y_MIN && y < ZONE_BOT_Y_MAX) return GESTURE_TAP_ARROW_LEFT;
}
if (x > ZONE_RIGHT_X_MIN) {
if (y >= ZONE_TOP_Y_MIN && y < ZONE_TOP_Y_MAX) return GESTURE_TAP_BACKSPACE;
if (y >= ZONE_BOT_Y_MIN && y < ZONE_BOT_Y_MAX) return GESTURE_TAP_ARROW_RIGHT;
}
return GESTURE_NONE;
}
static bool is_in_tap_zone(uint16_t x, uint16_t y) {
return classify_zone_tap(x, y) != GESTURE_NONE;
}
// BLE clear zone on Bluetooth screen (scaled layout)
#define BLE_CLEAR_Y_MIN 276
#define BLE_CLEAR_Y_MAX 346
static bool in_ble_clear_zone(uint16_t x, uint16_t y) {
return x >= MARGIN && x <= (480 - MARGIN) && y >= BLE_CLEAR_Y_MIN && y < BLE_CLEAR_Y_MAX;
}
void touch_init(void) {
state = TS_IDLE;
}
void touch_tick(void) {
uint16_t x, y;
bool touching = get_touch(&x, &y);
uint32_t now = millis();
switch (state) {
case TS_IDLE:
if (touching) {
start_x = x;
start_y = y;
last_x = x;
last_y = y;
down_time = now;
state = TS_DOWN;
}
break;
case TS_DOWN:
if (!touching) {
bool is_tap = abs((int)last_x - (int)start_x) < TAP_MAX_MOVE_PX &&
abs((int)last_y - (int)start_y) < TAP_MAX_MOVE_PX;
if (is_tap && in_logo(start_x, start_y)) {
ui_cycle_screen();
} else if (is_tap && ui_get_current_screen() == SCREEN_CONTROLLER) {
gesture_t zone = classify_zone_tap(start_x, start_y);
if (zone != GESTURE_NONE) {
hid_on_gesture(zone);
}
} else if (is_tap && ui_get_current_screen() == SCREEN_BLUETOOTH) {
if (in_ble_clear_zone(start_x, start_y)) {
ble_clear_bonds();
}
}
state = TS_IDLE;
} else {
last_x = x;
last_y = y;
int dx = (int)x - (int)start_x;
int dy = (int)y - (int)start_y;
if (in_logo(start_x, start_y) && ui_get_current_screen() == SCREEN_CONTROLLER && (now - down_time) >= LOGO_HOLD_TIME_MS) {
hid_on_gesture(GESTURE_TAP_CTRL_SPACE);
state = TS_LOGO_HOLD;
}
else if (ui_get_current_screen() == SCREEN_CONTROLLER) {
if (abs(dx) >= SWIPE_MIN_PX || abs(dy) >= SWIPE_MIN_PX) {
state = TS_SWIPING;
} else if (!in_logo(start_x, start_y) && !is_in_tap_zone(start_x, start_y) && (now - down_time) >= HOLD_TIME_MS) {
hid_on_gesture(GESTURE_HOLD_START);
state = TS_HOLDING;
}
}
}
break;
case TS_HOLDING:
if (!touching) {
hid_on_gesture(GESTURE_HOLD_END);
state = TS_IDLE;
}
break;
case TS_SWIPING:
if (touching) {
last_x = x;
last_y = y;
} else {
int dx = (int)last_x - (int)start_x;
int dy = (int)last_y - (int)start_y;
gesture_t g = classify_swipe(dx, dy);
if (g != GESTURE_NONE) {
hid_on_gesture(g);
}
state = TS_IDLE;
}
break;
case TS_LOGO_HOLD:
if (!touching) {
state = TS_IDLE;
}
break;
}
}
-5
View File
@@ -1,5 +0,0 @@
#pragma once
#include "hid.h"
void touch_init(void);
void touch_tick(void);
+52 -198
View File
@@ -47,12 +47,6 @@ static lv_obj_t* lbl_weekly_label;
static lv_obj_t* lbl_weekly_reset;
static lv_obj_t* lbl_anim;
// ---- Controller screen widgets ----
static lv_obj_t* ctrl_container;
static lv_obj_t* ctrl_session_bar;
static lv_obj_t* ctrl_session_lbl;
static lv_obj_t* ctrl_reset_lbl;
// ---- Bluetooth screen widgets ----
static lv_obj_t* ble_container;
static lv_obj_t* lbl_ble_status;
@@ -143,6 +137,10 @@ static void format_reset_time(int mins, char* buf, size_t len) {
}
}
// Forward decls — callbacks defined near ui_show_screen below
static void global_click_cb(lv_event_t* e);
static void ble_reset_click_cb(lv_event_t* e);
static lv_obj_t* make_panel(lv_obj_t* parent, int x, int y, int w, int h) {
lv_obj_t* panel = lv_obj_create(parent);
lv_obj_set_pos(panel, x, y);
@@ -156,6 +154,9 @@ static lv_obj_t* make_panel(lv_obj_t* parent, int x, int y, int w, int h) {
lv_obj_set_style_pad_top(panel, 12, 0);
lv_obj_set_style_pad_bottom(panel, 12, 0);
lv_obj_clear_flag(panel, LV_OBJ_FLAG_SCROLLABLE);
// Bubble click events up to the screen / usage_container so a tap anywhere
// on the panel fires the global click handler.
lv_obj_add_flag(panel, LV_OBJ_FLAG_EVENT_BUBBLE);
return panel;
}
@@ -174,31 +175,6 @@ static lv_obj_t* make_bar(lv_obj_t* parent, int x, int y, int w, int h) {
return bar;
}
static lv_obj_t* make_zone(lv_obj_t* parent, int x, int y, int w, int h, const char* text) {
lv_obj_t* zone = lv_obj_create(parent);
lv_obj_set_pos(zone, x, y);
lv_obj_set_size(zone, w, h);
lv_obj_set_style_bg_color(zone, COL_PANEL, 0);
lv_obj_set_style_bg_opa(zone, LV_OPA_COVER, 0);
lv_obj_set_style_radius(zone, 8, 0);
lv_obj_set_style_border_width(zone, 0, 0);
lv_obj_clear_flag(zone, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_t* lbl = lv_label_create(zone);
lv_label_set_text(lbl, text);
lv_obj_set_style_text_font(lbl, &font_styrene_24, 0);
lv_obj_set_style_text_color(lbl, COL_DIM, 0);
lv_obj_center(lbl);
return zone;
}
// Icon image descriptors
static lv_image_dsc_t icon_escape_dsc;
static lv_image_dsc_t icon_delete_dsc;
static lv_image_dsc_t icon_arrow_left_dsc;
static lv_image_dsc_t icon_arrow_right_dsc;
static void init_icon_dsc(lv_image_dsc_t* dsc, int w, int h, const uint16_t* data) {
dsc->header.w = w;
dsc->header.h = h;
@@ -219,52 +195,6 @@ static void init_icon_dsc_rgb565a8(lv_image_dsc_t* dsc, int w, int h, const uint
dsc->data_size = w * h * 3;
}
static lv_obj_t* make_zone_icon(lv_obj_t* parent, int x, int y, int w, int h, lv_image_dsc_t* icon) {
lv_obj_t* zone = lv_obj_create(parent);
lv_obj_set_pos(zone, x, y);
lv_obj_set_size(zone, w, h);
lv_obj_set_style_bg_color(zone, COL_PANEL, 0);
lv_obj_set_style_bg_opa(zone, LV_OPA_COVER, 0);
lv_obj_set_style_radius(zone, 8, 0);
lv_obj_set_style_border_width(zone, 0, 0);
lv_obj_clear_flag(zone, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_t* img = lv_image_create(zone);
lv_image_set_src(img, icon);
lv_obj_center(img);
return zone;
}
static void make_hint_pair(lv_obj_t* parent, const char* gesture, const char* action) {
lv_obj_t* pair = lv_obj_create(parent);
lv_obj_set_width(pair, lv_pct(100));
lv_obj_set_height(pair, LV_SIZE_CONTENT);
lv_obj_set_style_bg_opa(pair, LV_OPA_TRANSP, 0);
lv_obj_set_style_border_width(pair, 0, 0);
lv_obj_set_style_pad_all(pair, 0, 0);
lv_obj_set_style_pad_row(pair, 0, 0);
lv_obj_set_flex_flow(pair, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align(pair, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_clear_flag(pair, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_t* g = lv_label_create(pair);
lv_label_set_text(g, gesture);
lv_obj_set_style_text_font(g, &font_styrene_20, 0);
lv_obj_set_style_text_color(g, COL_TEXT, 0);
lv_obj_set_style_text_align(g, LV_TEXT_ALIGN_CENTER, 0);
lv_obj_set_width(g, lv_pct(100));
lv_label_set_long_mode(g, LV_LABEL_LONG_WRAP);
lv_obj_t* a = lv_label_create(pair);
lv_label_set_text(a, action);
lv_obj_set_style_text_font(a, &font_styrene_20, 0);
lv_obj_set_style_text_color(a, COL_DIM, 0);
lv_obj_set_style_text_align(a, LV_TEXT_ALIGN_CENTER, 0);
lv_obj_set_width(a, lv_pct(100));
lv_label_set_long_mode(a, LV_LABEL_LONG_WRAP);
}
static lv_obj_t* make_pill(lv_obj_t* parent, const char* text) {
lv_obj_t* lbl = lv_label_create(parent);
lv_label_set_text(lbl, text);
@@ -302,6 +232,7 @@ static void init_usage_screen(lv_obj_t* scr) {
lv_obj_set_style_border_width(usage_container, 0, 0);
lv_obj_set_style_pad_all(usage_container, 0, 0);
lv_obj_clear_flag(usage_container, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_add_event_cb(usage_container, global_click_cb, LV_EVENT_CLICKED, NULL);
// Title
lbl_title = lv_label_create(usage_container);
@@ -361,114 +292,6 @@ static void init_usage_screen(lv_obj_t* scr) {
lv_obj_align(lbl_anim, LV_ALIGN_BOTTOM_MID, 0, -15);
}
// ======== Controller Screen (480x480) ========
#define CTRL_SIDE_W 110
#define CTRL_SIDE_H 138
#define CTRL_GAP 10
#define CTRL_CONTENT_H (2 * CTRL_SIDE_H + CTRL_GAP) // 306
static void init_controller_screen(lv_obj_t* scr) {
ctrl_container = lv_obj_create(scr);
lv_obj_set_size(ctrl_container, SCR_W, SCR_H);
lv_obj_set_pos(ctrl_container, 0, 0);
lv_obj_set_style_bg_opa(ctrl_container, LV_OPA_TRANSP, 0);
lv_obj_set_style_border_width(ctrl_container, 0, 0);
lv_obj_set_style_pad_all(ctrl_container, 0, 0);
lv_obj_clear_flag(ctrl_container, LV_OBJ_FLAG_SCROLLABLE);
// Title
lv_obj_t* lbl_ctrl_title = lv_label_create(ctrl_container);
lv_label_set_text(lbl_ctrl_title, "Controller");
lv_obj_set_style_text_font(lbl_ctrl_title, &font_tiempos_56, 0);
lv_obj_set_style_text_color(lbl_ctrl_title, COL_TEXT, 0);
lv_obj_align(lbl_ctrl_title, LV_ALIGN_TOP_MID, 16, TITLE_Y);
// Initialize icon descriptors
init_icon_dsc(&icon_escape_dsc, ICON_ESCAPE_W, ICON_ESCAPE_H, icon_escape_data);
init_icon_dsc(&icon_delete_dsc, ICON_DELETE_W, ICON_DELETE_H, icon_delete_data);
init_icon_dsc(&icon_arrow_left_dsc, ICON_ARROW_LEFT_W, ICON_ARROW_LEFT_H, icon_arrow_left_data);
init_icon_dsc(&icon_arrow_right_dsc, ICON_ARROW_RIGHT_W, ICON_ARROW_RIGHT_H, icon_arrow_right_data);
// Left column: ESC (top), < (bottom)
make_zone_icon(ctrl_container, MARGIN, CONTENT_Y, CTRL_SIDE_W, CTRL_SIDE_H, &icon_escape_dsc);
make_zone_icon(ctrl_container, MARGIN, CONTENT_Y + CTRL_SIDE_H + CTRL_GAP, CTRL_SIDE_W, CTRL_SIDE_H, &icon_arrow_left_dsc);
// Right column: DEL (top), > (bottom)
int right_x = SCR_W - MARGIN - CTRL_SIDE_W;
make_zone_icon(ctrl_container, right_x, CONTENT_Y, CTRL_SIDE_W, CTRL_SIDE_H, &icon_delete_dsc);
make_zone_icon(ctrl_container, right_x, CONTENT_Y + CTRL_SIDE_H + CTRL_GAP, CTRL_SIDE_W, CTRL_SIDE_H, &icon_arrow_right_dsc);
// Center hints box
int cx = MARGIN + CTRL_SIDE_W + CTRL_GAP;
int cw = CONTENT_W - 2 * (CTRL_SIDE_W + CTRL_GAP);
lv_obj_t* center = make_zone(ctrl_container, cx, CONTENT_Y, cw, CTRL_CONTENT_H, "");
// Vertically centered hint list
lv_obj_t* hint_list = lv_obj_create(center);
lv_obj_set_size(hint_list, cw - 24, LV_SIZE_CONTENT);
lv_obj_center(hint_list);
lv_obj_set_style_bg_opa(hint_list, LV_OPA_TRANSP, 0);
lv_obj_set_style_border_width(hint_list, 0, 0);
lv_obj_set_style_pad_all(hint_list, 0, 0);
lv_obj_set_style_pad_row(hint_list, 6, 0);
lv_obj_set_flex_flow(hint_list, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align(hint_list, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_clear_flag(hint_list, LV_OBJ_FLAG_SCROLLABLE);
// Hand icon + "Gestures" header row
static lv_image_dsc_t icon_hand_dsc;
init_icon_dsc(&icon_hand_dsc, ICON_HAND_W, ICON_HAND_H, icon_hand_data);
lv_obj_t* header_row = lv_obj_create(hint_list);
lv_obj_set_width(header_row, lv_pct(100));
lv_obj_set_height(header_row, LV_SIZE_CONTENT);
lv_obj_set_style_bg_opa(header_row, LV_OPA_TRANSP, 0);
lv_obj_set_style_border_width(header_row, 0, 0);
lv_obj_set_style_pad_all(header_row, 0, 0);
lv_obj_set_style_pad_column(header_row, 8, 0);
lv_obj_set_flex_flow(header_row, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(header_row, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_set_style_pad_bottom(header_row, 8, 0);
lv_obj_clear_flag(header_row, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_t* hand_img = lv_image_create(header_row);
lv_image_set_src(hand_img, &icon_hand_dsc);
lv_obj_t* gestures_lbl = lv_label_create(header_row);
lv_label_set_text(gestures_lbl, "Gestures");
lv_obj_set_style_text_font(gestures_lbl, &font_styrene_28, 0);
lv_obj_set_style_text_color(gestures_lbl, COL_TEXT, 0);
// Hint entries: gesture (white) + action (dim) on separate lines
lv_obj_set_style_pad_row(hint_list, 12, 0);
make_hint_pair(hint_list, "Swipe up/down", "Arrow keys");
make_hint_pair(hint_list, "Swipe left", "Toggle mode");
make_hint_pair(hint_list, "Swipe right", "Enter key");
make_hint_pair(hint_list, "Hold", "Voice dictation");
// Usage info below content area
int info_y = CONTENT_Y + CTRL_CONTENT_H + CTRL_GAP + 4;
ctrl_session_lbl = lv_label_create(ctrl_container);
lv_label_set_text(ctrl_session_lbl, "---%");
lv_obj_set_style_text_font(ctrl_session_lbl, &font_styrene_24, 0);
lv_obj_set_style_text_color(ctrl_session_lbl, COL_DIM, 0);
lv_obj_set_pos(ctrl_session_lbl, MARGIN, info_y);
ctrl_reset_lbl = lv_label_create(ctrl_container);
lv_label_set_text(ctrl_reset_lbl, "---");
lv_obj_set_style_text_font(ctrl_reset_lbl, &font_styrene_24, 0);
lv_obj_set_style_text_color(ctrl_reset_lbl, COL_DIM, 0);
lv_obj_align(ctrl_reset_lbl, LV_ALIGN_TOP_RIGHT, -MARGIN, info_y);
int bar_y = info_y + 28;
ctrl_session_bar = make_bar(ctrl_container, MARGIN, bar_y, CONTENT_W, 16);
// Start hidden
lv_obj_add_flag(ctrl_container, LV_OBJ_FLAG_HIDDEN);
}
// ======== Bluetooth Screen (480x480) ========
static void init_bluetooth_screen(lv_obj_t* scr) {
@@ -529,6 +352,7 @@ static void init_bluetooth_screen(lv_obj_t* scr) {
lv_obj_set_flex_flow(reset_zone, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(reset_zone, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_clear_flag(reset_zone, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_add_event_cb(reset_zone, ble_reset_click_cb, LV_EVENT_CLICKED, NULL);
static lv_image_dsc_t icon_trash_dsc;
init_icon_dsc(&icon_trash_dsc, ICON_TRASH2_W, ICON_TRASH2_H, icon_trash2_data);
@@ -576,10 +400,14 @@ void ui_init(void) {
init_battery_icons();
init_usage_screen(scr);
init_controller_screen(scr);
init_bluetooth_screen(scr);
splash_init(scr);
// Splash is touch-toggled — tap anywhere on the splash dismisses it
if (splash_get_root()) {
lv_obj_add_event_cb(splash_get_root(), global_click_cb, LV_EVENT_CLICKED, NULL);
}
// Logo on top of all containers (inset for rounded corners)
logo_img = lv_image_create(scr);
lv_image_set_src(logo_img, &logo_dsc);
@@ -612,15 +440,6 @@ void ui_update(const UsageData* data) {
format_reset_time(data->weekly_reset_mins, buf, sizeof(buf));
lv_label_set_text(lbl_weekly_reset, buf);
// Controller screen session info
lv_bar_set_value(ctrl_session_bar, s_pct, LV_ANIM_ON);
lv_obj_set_style_bg_color(ctrl_session_bar, pct_color(data->session_pct), LV_PART_INDICATOR);
lv_label_set_text_fmt(ctrl_session_lbl, "%d%%", s_pct);
char rbuf[48];
format_reset_time(data->session_reset_mins, rbuf, sizeof(rbuf));
lv_label_set_text(ctrl_reset_lbl, rbuf);
}
void ui_tick_anim(void) {
@@ -647,16 +466,41 @@ void ui_tick_anim(void) {
}
}
static screen_t prev_non_splash_screen = SCREEN_USAGE;
static int last_battery_idx = 0;
// Hide the battery indicator on the splash screen when it's in the low state —
// the small icon is visually noisy over the pixel-art creature animations.
static void apply_battery_visibility(void) {
if (!battery_img) return;
bool hide = (current_screen == SCREEN_SPLASH && last_battery_idx == 1);
if (hide) lv_obj_add_flag(battery_img, LV_OBJ_FLAG_HIDDEN);
else lv_obj_clear_flag(battery_img, LV_OBJ_FLAG_HIDDEN);
}
// LVGL handles click debouncing internally. Screen-level handler fires when
// no child consumed the event (children only consume if they have their own
// event callback, e.g. the Reset Bluetooth zone). On BT screen we skip the
// splash toggle so only the reset zone is interactive there.
static void global_click_cb(lv_event_t* e) {
(void)e;
if (ui_get_current_screen() == SCREEN_BLUETOOTH) return;
ui_toggle_splash();
}
static void ble_reset_click_cb(lv_event_t* e) {
(void)e;
ble_clear_bonds();
}
void ui_show_screen(screen_t screen) {
lv_obj_add_flag(usage_container, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(ctrl_container, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(ble_container, LV_OBJ_FLAG_HIDDEN);
splash_hide();
switch (screen) {
case SCREEN_SPLASH: splash_show(); break;
case SCREEN_USAGE: lv_obj_clear_flag(usage_container, LV_OBJ_FLAG_HIDDEN); break;
case SCREEN_CONTROLLER: lv_obj_clear_flag(ctrl_container, LV_OBJ_FLAG_HIDDEN); break;
case SCREEN_BLUETOOTH: lv_obj_clear_flag(ble_container, LV_OBJ_FLAG_HIDDEN); break;
default: break;
}
@@ -667,11 +511,19 @@ void ui_show_screen(screen_t screen) {
else lv_obj_clear_flag(logo_img, LV_OBJ_FLAG_HIDDEN);
}
if (screen != SCREEN_SPLASH) prev_non_splash_screen = screen;
current_screen = screen;
apply_battery_visibility();
}
void ui_cycle_screen(void) {
ui_show_screen((screen_t)((current_screen + 1) % SCREEN_COUNT));
screen_t next = (current_screen == SCREEN_USAGE) ? SCREEN_BLUETOOTH : SCREEN_USAGE;
ui_show_screen(next);
}
void ui_toggle_splash(void) {
if (current_screen == SCREEN_SPLASH) ui_show_screen(prev_non_splash_screen);
else ui_show_screen(SCREEN_SPLASH);
}
screen_t ui_get_current_screen(void) {
@@ -726,4 +578,6 @@ void ui_update_battery(int percent, bool charging) {
idx = 3; // full
}
lv_image_set_src(battery_img, &battery_dscs[idx]);
last_battery_idx = idx;
apply_battery_visibility();
}
+1 -1
View File
@@ -5,7 +5,6 @@
enum screen_t {
SCREEN_SPLASH,
SCREEN_USAGE,
SCREEN_CONTROLLER,
SCREEN_BLUETOOTH,
SCREEN_COUNT,
};
@@ -15,6 +14,7 @@ void ui_update(const UsageData* data);
void ui_tick_anim(void);
void ui_show_screen(screen_t screen);
void ui_cycle_screen(void);
void ui_toggle_splash(void);
screen_t ui_get_current_screen(void);
void ui_update_ble_status(ble_state_t state, const char* name, const char* mac);
void ui_update_battery(int percent, bool charging);