This commit is contained in:
Lurkars 2020-12-29 21:37:39 +01:00
parent f7fc8069bd
commit 648a719c31
2 changed files with 430 additions and 35 deletions

402
images.h Normal file
View File

@ -0,0 +1,402 @@
const PROGMEM uint8_t palette_1[][3] = {
{128,128,128}, // 0
{0,0,0}, // 1
{32,32,32}, // 2
{64,64,64}, // 3
{192,192,192}, // 4
{160,160,160}, // 5
{224,224,224}, // 6
{96,96,96}, // 7
{0,224,64}, // 8
{224,64,224}, // 9
{224,32,224}, // 10
{0,224,128}, // 11
{224,64,192}, // 12
{0,224,224}, // 13
{224,32,192}, // 14
{224,64,64}, // 15
{224,0,0}, // 16
{64,32,32}, // 17
{192,128,128}, // 18
{224,128,64}, // 19
{64,0,32}, // 20
{32,0,0}, // 21
{32,0,32}, // 22
{96,0,32}, // 23
{224,192,192} // 24
};
const PROGMEM uint8_t pixels_1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 10
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 11
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 12
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 13
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 14
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 15
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 16
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, // 17
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 17, 17, 17, // 18
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 17, 17, 19, 19, 19, // 19
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 17, 17, 19, 19, 19, 19, // 20
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 17, 0, 19, 19, 19, 19, 19, // 21
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 19, 19, 19, 19, 19, 19, // 22
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 18, 19, 19, 19, 19, 19, 19, // 23
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, 19, // 24
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, 19, // 25
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, 19, // 26
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, // 27
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, // 28
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 19, // 29
1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, 4, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, // 30
1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, // 31
1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 7, 5, 5, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 19, 19, // 32
1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 7, 5, 4, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, // 33
1, 1, 1, 1, 1, 1, 1, 2, 2, 5, 4, 7, 5, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 19, // 34
1, 1, 1, 1, 1, 1, 2, 2, 0, 5, 4, 7, 5, 5, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, // 35
1, 1, 1, 1, 1, 1, 2, 2, 0, 5, 4, 7, 7, 5, 4, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, // 36
1, 1, 1, 1, 1, 2, 2, 4, 0, 5, 5, 4, 7, 5, 4, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 37
1, 1, 1, 1, 1, 2, 2, 4, 0, 0, 5, 4, 7, 5, 5, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, // 38
1, 1, 1, 1, 1, 2, 4, 4, 4, 0, 5, 4, 4, 7, 5, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 4, 4, 6, // 39
1, 1, 1, 1, 2, 2, 4, 4, 4, 0, 5, 5, 4, 7, 5, 5, 4, 0, 5, 0, 0, 0, 0, 0, 4, 4, 6, 6, // 40
1, 1, 1, 1, 2, 7, 7, 4, 4, 0, 0, 5, 4, 7, 7, 5, 4, 0, 0, 5, 0, 0, 0, 0, 4, 6, 6, 6, // 41
1, 1, 1, 2, 2, 4, 7, 4, 4, 4, 0, 5, 4, 4, 7, 5, 4, 4, 0, 5, 0, 0, 0, 4, 6, 6, 6, 6, // 42
1, 1, 1, 2, 2, 4, 7, 4, 4, 4, 0, 5, 5, 4, 7, 7, 5, 4, 0, 0, 5, 0, 4, 4, 6, 6, 6, 6, // 43
1, 1, 1, 2, 4, 4, 7, 7, 4, 4, 4, 0, 5, 4, 4, 7, 5, 4, 4, 0, 5, 4, 4, 6, 6, 6, 6, 6, // 44
1, 1, 2, 2, 4, 4, 4, 7, 4, 4, 4, 0, 5, 5, 4, 7, 7, 5, 4, 0, 0, 4, 6, 6, 6, 6, 6, 6, // 45
1, 1, 2, 2, 4, 4, 4, 7, 7, 4, 4, 0, 0, 5, 4, 4, 7, 5, 5, 4, 4, 4, 6, 6, 6, 6, 6, 6, // 46
1, 1, 2, 0, 0, 4, 4, 7, 7, 4, 4, 4, 0, 5, 5, 4, 7, 7, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, // 47
1, 1, 2, 0, 0, 4, 4, 4, 7, 4, 4, 4, 0, 0, 5, 4, 4, 7, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 48
1, 3, 2, 4, 0, 4, 4, 4, 7, 7, 4, 4, 4, 0, 5, 5, 4, 4, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 49
1, 3, 4, 4, 0, 0, 4, 4, 4, 7, 4, 4, 4, 4, 0, 5, 5, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 50
1, 3, 4, 4, 4, 0, 4, 4, 4, 7, 7, 4, 4, 4, 0, 0, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 51
1, 2, 4, 4, 4, 0, 0, 4, 4, 4, 7, 4, 4, 4, 4, 0, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 52
1, 2, 4, 4, 4, 0, 0, 4, 4, 4, 7, 7, 4, 4, 4, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 53
0, 2, 7, 4, 4, 4, 0, 0, 4, 4, 4, 7, 7, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 54
2, 7, 7, 4, 4, 4, 0, 0, 4, 4, 4, 4, 7, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 55
2, 5, 7, 4, 4, 4, 4, 0, 0, 4, 4, 4, 7, 7, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 56
2, 5, 7, 7, 4, 4, 4, 4, 0, 4, 4, 4, 4, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 57
0, 5, 7, 7, 4, 4, 4, 4, 0, 0, 4, 4, 4, 4, 7, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 58
3, 5, 5, 7, 7, 4, 4, 4, 4, 0, 0, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 59
3, 5, 5, 7, 7, 4, 4, 4, 4, 0, 0, 4, 4, 4, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 60
0, 4, 5, 5, 7, 7, 4, 4, 4, 4, 0, 0, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 61
4, 4, 4, 5, 5, 7, 7, 4, 4, 4, 4, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 62
0, 4, 4, 5, 5, 7, 7, 7, 4, 4, 4, 4, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 63
0, 4, 4, 4, 5, 5, 7, 7, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 64
0, 0, 4, 4, 5, 5, 5, 7, 7, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, // 65
0, 0, 0, 4, 4, 5, 5, 5, 7, 7, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, // 66
0, 0, 0, 4, 4, 4, 5, 5, 5, 7, 7, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, // 67
5, 5, 0, 0, 4, 4, 4, 5, 5, 5, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, // 68
5, 5, 0, 0, 0, 4, 4, 4, 5, 5, 5, 7, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, // 69
5, 5, 5, 0, 0, 0, 4, 4, 4, 5, 5, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, // 70
4, 5, 5, 5, 0, 0, 0, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, // 71
4, 4, 5, 5, 5, 0, 0, 0, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, // 72
4, 4, 4, 5, 5, 5, 0, 0, 0, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, // 73
4, 4, 4, 4, 5, 5, 5, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, // 74
0, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, // 75
0, 0, 4, 4, 4, 4, 5, 5, 5, 5, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, // 76
0, 0, 0, 4, 4, 4, 4, 4, 5, 5, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 21, 21, 21, // 77
0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, 21, // 78
0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, 21, // 79
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, 21, // 80
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, 21, // 81
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, 21, 21, 21, // 82
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 21, 21, 21, // 83
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 22, 21, 21, 21, // 84
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 22, 22, 22, 22, // 85
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 22, 22, 22, 22, // 86
4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 7, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 6, 22, 22, 22, 22, // 87
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 6, 20, 20, 20, 20, // 88
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, 1, 0, 4, 6, 6, 6, 6, 20, 20, 20, 20, // 89
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, 1, 0, 4, 6, 6, 6, 6, 0, 20, 20, 20, 20, // 90
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 7, 4, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 91
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 92
4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 7, 7, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 93
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 94
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 95
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 96
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 97
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 98
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 99
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 100
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 101
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 102
0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, 20, // 103
0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, // 104
0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 20, 20, 20, // 105
0, 0, 0, 0, 6, 6, 6, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 23, 23, // 106
0, 0, 0, 6, 6, 6, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, 23, // 107
0, 0, 6, 6, 6, 0, 0, 0, 6, 6, 6, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, 23, // 108
0, 6, 6, 6, 0, 0, 0, 6, 6, 6, 5, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, // 109
0, 6, 6, 0, 0, 0, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, // 110
6, 6, 0, 0, 0, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, // 111
6, 6, 0, 0, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 23, // 112
6, 0, 0, 6, 6, 6, 5, 5, 5, 6, 6, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, // 113
0, 0, 0, 6, 6, 5, 5, 5, 6, 6, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, // 114
0, 0, 6, 6, 5, 5, 5, 6, 6, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, // 115
0, 6, 6, 6, 5, 5, 6, 6, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 116
0, 6, 6, 5, 5, 6, 6, 6, 4, 4, 4, 4, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 117
6, 6, 6, 5, 5, 6, 6, 4, 4, 4, 4, 6, 6, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 118
6, 6, 5, 5, 6, 6, 4, 4, 4, 4, 6, 6, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 119
3, 6, 5, 5, 6, 6, 4, 4, 4, 4, 6, 6, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 120
3, 5, 5, 6, 6, 4, 4, 4, 4, 6, 6, 0, 0, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 121
3, 5, 6, 6, 4, 4, 4, 4, 6, 6, 0, 0, 6, 6, 7, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 122
2, 5, 6, 6, 4, 4, 4, 4, 6, 0, 0, 6, 6, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 123
2, 5, 6, 4, 4, 4, 4, 6, 6, 0, 0, 6, 7, 7, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 124
2, 6, 6, 4, 4, 4, 6, 6, 0, 0, 6, 6, 7, 6, 6, 0, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 125
2, 3, 6, 4, 4, 4, 6, 6, 0, 6, 6, 7, 7, 6, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 126
1, 3, 4, 4, 4, 6, 6, 0, 0, 6, 7, 7, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 127
1, 3, 4, 4, 4, 6, 6, 0, 6, 6, 7, 6, 6, 0, 0, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 128
1, 3, 4, 4, 4, 6, 0, 0, 6, 7, 7, 6, 6, 0, 6, 6, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 129
1, 3, 4, 4, 6, 6, 0, 6, 6, 7, 6, 6, 0, 0, 6, 5, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 130
1, 3, 2, 4, 6, 0, 0, 6, 7, 7, 6, 0, 0, 6, 5, 5, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, // 131
1, 1, 2, 6, 6, 0, 6, 6, 7, 6, 6, 0, 6, 6, 5, 4, 4, 4, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6, // 132
1, 1, 2, 6, 6, 0, 6, 7, 7, 6, 0, 0, 6, 5, 5, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, // 133
1, 1, 2, 3, 0, 0, 6, 7, 7, 6, 0, 6, 6, 5, 4, 4, 4, 5, 5, 6, 4, 6, 6, 6, 6, 6, 6, 6, // 134
1, 1, 3, 3, 0, 6, 6, 7, 6, 6, 0, 6, 5, 5, 4, 4, 4, 5, 6, 0, 0, 6, 6, 6, 6, 6, 6, 6, // 135
1, 1, 1, 3, 0, 6, 7, 7, 6, 0, 0, 6, 5, 4, 4, 4, 5, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, // 136
1, 1, 1, 2, 2, 6, 7, 6, 6, 0, 6, 5, 5, 4, 4, 4, 5, 6, 0, 0, 6, 5, 4, 4, 6, 6, 6, 6, // 137
1, 1, 1, 2, 3, 6, 7, 6, 0, 0, 6, 5, 4, 4, 4, 5, 6, 6, 0, 6, 5, 5, 0, 4, 6, 6, 6, 6, // 138
1, 1, 1, 1, 3, 7, 7, 6, 0, 6, 6, 5, 4, 4, 4, 5, 6, 0, 0, 6, 5, 0, 0, 0, 4, 6, 6, 6, // 139
1, 1, 1, 1, 3, 2, 6, 6, 0, 6, 5, 5, 4, 4, 5, 5, 6, 0, 6, 5, 5, 0, 0, 0, 4, 4, 6, 6, // 140
1, 1, 1, 1, 1, 2, 6, 0, 0, 6, 5, 4, 4, 4, 5, 6, 0, 0, 6, 5, 0, 0, 0, 0, 0, 4, 4, 6, // 141
1, 1, 1, 1, 1, 2, 3, 0, 6, 6, 5, 4, 4, 5, 5, 6, 0, 6, 5, 5, 0, 0, 0, 0, 0, 0, 4, 6, // 142
1, 1, 1, 1, 1, 2, 3, 0, 6, 5, 5, 4, 4, 5, 6, 6, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, // 143
1, 1, 1, 1, 1, 1, 3, 2, 6, 5, 4, 4, 4, 5, 6, 0, 6, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 4, // 144
1, 1, 1, 1, 1, 1, 2, 3, 6, 5, 4, 4, 5, 5, 6, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, // 145
1, 1, 1, 1, 1, 1, 1, 3, 2, 5, 4, 4, 5, 6, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, // 146
1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 4, 5, 6, 0, 6, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, // 147
1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 5, 6, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, // 148
1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 5, 6, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, // 149
1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 5, 6, 0, 6, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, // 150
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 6, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, // 151
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, // 152
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 6, 5, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, // 153
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 5, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 6, // 154
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 1, // 155
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 4, 6, 6, 6, 6, 1, // 156
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 4, 6, 6, 6, 6, 6, 1, // 157
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 4, 6, 6, 6, 6, 1, 1, // 158
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 6, 6, 6, 6, 1, 1, // 159
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 6, 6, 1, 1, // 160
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 6, 1, 1, // 161
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, // 162
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, // 163
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 164
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 165
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 166
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 167
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 168
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 169
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 170
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 171
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 172
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 173
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 174
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 175
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 176
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 177
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 178
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 179
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 180
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, // 181
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 182
5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 183
0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 184
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 185
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 186
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 187
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 188
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 189
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 190
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 191
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 192
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, // 193
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, // 194
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, // 195
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, // 196
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, // 197
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, // 198
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, // 199
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, // 200
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, // 201
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, // 202
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, // 203
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, // 204
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, // 205
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 206
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 207
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 208
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 209
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 210
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 211
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 212
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 213
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 214
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 215
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 216
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, // 217
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, // 218
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, // 219
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, // 220
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, // 221
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, // 222
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, // 223
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, // 224
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, // 225
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, // 226
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, // 227
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 228
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 229
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 230
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 231
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 232
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 233
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 234
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 235
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, // 236
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 11, 13, 13, 13, 13, 13, 13, 13, 13, // 237
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 11, 11, 13, 13, 13, 13, 13, 13, 13, // 238
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 11, 11, 13, 13, 13, 13, 13, 13, // 239
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 11, 11, 13, 13, 13, 13, // 240
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 11, 11, 13, 13, 13, // 241
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 11, 11, 13, 13, // 242
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 11, 11, 13, // 243
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 11, // 244
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 245
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 246
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 247
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 248
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 249
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 250
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 251
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 252
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 253
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 254
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 255
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 256
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 257
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 258
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 259
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 260
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 261
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 262
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 263
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 264
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 265
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 266
5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 267
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 268
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // 269
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 8, 8, 8, 8, // 270
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 271
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 272
4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 273
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 274
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 275
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 276
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 277
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 278
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 279
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 280
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 281
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 282
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 283
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 284
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 285
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 286
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 287
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 288
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 289
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 290
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 291
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 292
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 293
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 294
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // 295
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, // 296
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 16, // 297
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 16, 16, // 298
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 16, 16, 16, // 299
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 9, 10, 10, 10, 10, 10, 14, 14, 16, 16, 16, 16, 16, // 300
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 10, 14, 14, 16, 16, 16, 16, 16, 16, // 301
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 10, 10, 14, 14, 16, 16, 16, 16, 16, 16, 16, // 302
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 9, 10, 10, 14, 16, 16, 16, 16, 16, 16, 16, 16, // 303
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 10, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 304
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 0, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 305
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 12, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 306
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 307
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 308
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 309
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 310
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, 16, // 311
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, 16, // 312
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, 16, // 313
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, 16, 16, 16, 16, 16, 16, // 314
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, 16, 16, // 315
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, 16, 16, 16, 16, 16, // 316
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, 16, 16, 16, 16, // 317
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, 16, // 318
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 16, 16, 16, // 319
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, 16, 16, // 320
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, 16, // 321
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 15, // 322
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 15, // 323
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 324
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 325
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 326
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 327
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 328
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 329
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 330
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 331
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 332
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 333
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 334
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, // 335
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, // 336
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, // 337
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, // 338
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, // 339
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, // 340
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, // 341
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, // 342
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, // 343
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, // 344
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, // 345
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, // 346
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 347
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 348
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 349
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 350
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 351
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 352
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 353
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 354
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 355
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 356
4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 357
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 6, // 358
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6 // 359
};
typedef struct {
const uint8_t *palette;
const uint8_t *pixels;
} image;
const image PROGMEM images[] = {
{ (const uint8_t *)palette_1, pixels_1 } // Testbild
};
#define NUM_IMAGES (sizeof(images) / sizeof(images[0]))

View File

@ -1,7 +1,10 @@
#include <FastGPIO.h>
#define APA102_USE_FAST_GPIO
#include <APA102.h>
#include "images.h"
const int HALL_PIN = 2;
const int ROUND_COUNT = 2;
@ -9,27 +12,31 @@ const int ROUND_COUNT = 2;
const uint8_t dataPin = 10;
const uint8_t clockPin = 11;
// Create an object for writing to the LED strip.
APA102<dataPin, clockPin> ledStrip;
const int num_segments = 360;
const uint16_t led_count = 28;
const uint16_t ledCount = 28;
const uint8_t brightness = 1;
const rgb_color RED = rgb_color(255, 0, 0);
const rgb_color GREEN = rgb_color(0, 255, 0);
const rgb_color BLUE = rgb_color(0, 0, 255);
const rgb_color WHITE = rgb_color(255, 255, 255);
const int state_count = 4;
rgb_color colors[ledCount];
rgb_color color_buffer[led_count];
float passed = 0;
int state = 0;
int current_image_index = 0;
uint8_t *current_palette;
uint8_t *current_pixels;
// Create an object for writing to the LED strip.
APA102<dataPin, clockPin> ledStrip;
void setup()
{
Serial.begin(115200);
pinMode(HALL_PIN, INPUT);
pinMode(LED_BUILTIN, INPUT);
current_palette = (uint8_t *)pgm_read_word(&images[current_image_index].palette);
current_pixels = (uint8_t *)pgm_read_word(&images[current_image_index].pixels);
}
void loop()
@ -58,35 +65,21 @@ void loop()
// calc led for last turn
float current_diff = micros() - start;
for (int i = 0; i < state_count; i++)
int state = ((float)passed / current_diff * num_segments);
uint8_t pixel_color_index;
uint8_t *current_pixel = (uint8_t *)&current_pixels[state * led_count];
for (int i = 0; i < led_count; i++)
{
if (current_diff > ((passed / state_count) * i))
{
state = i;
}
pixel_color_index = pgm_read_byte(current_pixel++) * 3;
color_buffer[i] = rgb_color(
pgm_read_byte(&current_palette[pixel_color_index]),
pgm_read_byte(&current_palette[pixel_color_index + 1]),
pgm_read_byte(&current_palette[pixel_color_index + 2]));
}
rgb_color color = WHITE;
switch (state)
{
case 1:
color = RED;
break;
case 2:
color = GREEN;
break;
case 3:
color = BLUE;
break;
}
for (uint16_t i = 0; i < ledCount; i++)
{
colors[i] = color;
}
ledStrip.write(colors, ledCount, brightness);
ledStrip.write(color_buffer, led_count, brightness);
}
passed = (micros() - start);