commit 6ed47b6

ohmu  ·  2026-09-07 03:50:38 +0300 MSK
parent c228f8c
added catclock
4 files changed,  +895, -0
+481, -0
  1@@ -0,0 +1,481 @@
  2+#define catback_width 150
  3+#define catback_height 300
  4+#define catback_x_hot -1
  5+#define catback_y_hot -1
  6+static uchar catback_bits[] = {
  7+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  8+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  9+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 10+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 11+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 12+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 13+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 14+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 15+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 16+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 17+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 18+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 19+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 20+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 21+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 22+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 23+   0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
 24+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
 25+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
 26+   0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 27+   0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 28+   0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00,
 29+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
 30+   0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 31+   0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00,
 32+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xfe, 0x00,
 33+   0x07, 0xff, 0xc0, 0x00, 0x7f, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 34+   0x00, 0x00, 0x00, 0x00, 0xf7, 0xff, 0x80, 0x7f, 0xff, 0xfc, 0x01, 0xff,
 35+   0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb,
 36+   0xff, 0xe7, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xd7, 0x00, 0x00, 0x00, 0x00,
 37+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x7f, 0xff, 0xff, 0xff, 0xff,
 38+   0xff, 0xfe, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 39+   0x00, 0xea, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x57, 0x00, 0x00,
 40+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x5f, 0xff, 0xff,
 41+   0xff, 0xff, 0xff, 0xfa, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 42+   0x00, 0x00, 0x00, 0xea, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x57,
 43+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x57,
 44+   0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00,
 45+   0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff,
 46+   0xf5, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 47+   0xf5, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xaf, 0x00, 0x00, 0x00,
 48+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbf, 0xff, 0xff, 0xff,
 49+   0xff, 0xff, 0xfd, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 50+   0x00, 0x00, 0xf5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xaf, 0x00,
 51+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xff, 0xff,
 52+   0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 53+   0x00, 0x00, 0x00, 0x00, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 54+   0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb,
 55+   0xff, 0x80, 0xff, 0xff, 0xff, 0x01, 0xff, 0xd7, 0x00, 0x00, 0x00, 0x00,
 56+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xfc, 0x00, 0x1f, 0xff, 0xf8,
 57+   0x00, 0x3f, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 58+   0x00, 0xef, 0xf8, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x1f, 0xf7, 0x00, 0x00,
 59+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x07,
 60+   0xff, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 61+   0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x07, 0xff,
 62+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0,
 63+   0x00, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
 64+   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00,
 65+   0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 66+   0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00,
 67+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0xff,
 68+   0x00, 0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 69+   0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0xff, 0x00,
 70+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00,
 71+   0x00, 0xff, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
 72+   0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01,
 73+   0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
 74+   0x80, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00,
 75+   0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0xff, 0x00,
 76+   0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 77+   0x07, 0xff, 0x80, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00,
 78+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x01,
 79+   0xff, 0x80, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 80+   0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff,
 81+   0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
 82+   0x00, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
 83+   0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x03, 0xff, 0xc0, 0x00,
 84+   0x07, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
 85+   0xff, 0xf0, 0x00, 0x07, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00,
 86+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x0f, 0xff,
 87+   0xf0, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 88+   0x00, 0x1f, 0xff, 0xfc, 0x00, 0x1f, 0xab, 0xf8, 0x00, 0x3f, 0xff, 0xf0,
 89+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x80,
 90+   0xff, 0x55, 0xff, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
 91+   0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0xaa, 0xff, 0xff, 0xff,
 92+   0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff,
 93+   0xff, 0xff, 0xfd, 0x55, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
 94+   0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0xaa, 0xff,
 95+   0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 96+   0x1f, 0xff, 0xff, 0xff, 0xfd, 0x55, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00,
 97+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe,
 98+   0xaa, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 99+   0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x1f,
100+   0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x20,
101+   0x00, 0x02, 0xaa, 0x80, 0x00, 0x08, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00,
102+   0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x30, 0x00, 0x31, 0x55, 0x18, 0x00,
103+   0x18, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
104+   0xf8, 0x18, 0x00, 0x60, 0xaa, 0x0c, 0x00, 0x30, 0x3f, 0xf0, 0x00, 0x00,
105+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x0c, 0x00, 0xc0, 0x54,
106+   0x06, 0x00, 0xe0, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
107+   0x00, 0x0f, 0xf8, 0x07, 0xff, 0xc6, 0x00, 0x63, 0xff, 0x80, 0x3f, 0xe0,
108+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x03, 0xff,
109+   0x0c, 0x00, 0x30, 0xff, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
110+   0x00, 0x00, 0x00, 0x0f, 0xfc, 0x40, 0x00, 0x08, 0x00, 0x18, 0x00, 0x08,
111+   0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc,
112+   0x70, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x38, 0x7f, 0xe0, 0x00, 0x00, 0x00,
113+   0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x1f, 0xff, 0xf0, 0x00, 0x07,
114+   0xff, 0xe0, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
115+   0x07, 0xfe, 0x07, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x00, 0xff, 0xc0, 0x00,
116+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00,
117+   0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
118+   0x00, 0x00, 0x07, 0xff, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x01, 0xff,
119+   0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00,
120+   0x0f, 0x00, 0x00, 0x01, 0xf0, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
121+   0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x0f, 0xf8, 0x00, 0x0f, 0xf0,
122+   0x03, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
123+   0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xff, 0x00, 0x00, 0x00,
124+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x01, 0xff, 0xff,
125+   0xff, 0x80, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126+   0x00, 0x00, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xfe, 0x00,
127+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00,
128+   0x7f, 0xff, 0xfe, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
129+   0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x3f,
130+   0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
131+   0xfc, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00,
132+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x00, 0x03, 0xff, 0xc0,
133+   0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
134+   0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00,
135+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x80, 0x00,
136+   0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137+   0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0,
138+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
139+   0xf8, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140+   0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0xff,
141+   0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
142+   0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xff, 0x80, 0x00, 0x70, 0x00, 0x00,
143+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0f, 0xff, 0xfc, 0x00,
144+   0x7f, 0xf8, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145+   0x00, 0x04, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x10,
146+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x1f,
147+   0xff, 0xff, 0xff, 0x80, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
148+   0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x0f, 0xc0,
149+   0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
150+   0xe0, 0x00, 0x7f, 0x01, 0xf0, 0xf8, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
151+   0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3f, 0xff, 0x8f, 0x03, 0x87,
152+   0x80, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
153+   0x30, 0x00, 0x00, 0x00, 0xe9, 0x86, 0x8c, 0x00, 0x00, 0x00, 0x00, 0xc0,
154+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x38,
155+   0x84, 0xb8, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
156+   0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x18, 0x00, 0xc0, 0xff, 0xfc, 0x00,
157+   0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00,
158+   0x00, 0x08, 0x00, 0xff, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
159+   0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0xff, 0xff, 0xf8, 0x00, 0xc0, 0x00,
160+   0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
161+   0x00, 0x00, 0x00, 0x08, 0x00, 0xff, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
162+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x86,
163+   0x81, 0xf8, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
164+   0x00, 0x08, 0x00, 0x00, 0x1f, 0xfd, 0x83, 0xc0, 0x0f, 0x00, 0x00, 0x08,
165+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xf0,
166+   0x0e, 0x01, 0xf0, 0x01, 0xf8, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
167+   0x00, 0x00, 0x00, 0x18, 0x00, 0x0f, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x00,
168+   0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
169+   0xf8, 0x00, 0xff, 0xff, 0xff, 0x80, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00,
170+   0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
171+   0xf0, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172+   0xdf, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x00,
173+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff,
174+   0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175+   0x00, 0x01, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
176+   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xff, 0xff,
177+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00,
178+   0x00, 0x00, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
179+   0xff, 0xfc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
180+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x02, 0x00, 0x00,
181+   0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff, 0xff, 0xff, 0xe0, 0x01,
182+   0xff, 0xff, 0xff, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183+   0x04, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x01,
184+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7f, 0xff, 0xf8,
185+   0x01, 0x38, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
186+   0x00, 0x00, 0x08, 0x00, 0x3f, 0xff, 0xe0, 0x03, 0x24, 0x00, 0xff, 0xff,
187+   0xe0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x3f,
188+   0xff, 0xc0, 0x01, 0x04, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x40, 0x00, 0x00,
189+   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x3f, 0xff, 0x00, 0x01, 0x08, 0x00,
190+   0x1f, 0xff, 0xc0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
191+   0x00, 0x1f, 0xfc, 0x00, 0x01, 0x10, 0x00, 0x0f, 0xff, 0x80, 0x00, 0x40,
192+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x1f, 0xf8, 0x42, 0x01,
193+   0x20, 0x00, 0x03, 0xff, 0x80, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
194+   0x00, 0x20, 0x00, 0x1f, 0xf0, 0xc6, 0x03, 0xbc, 0x00, 0x81, 0xff, 0x08,
195+   0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x1f, 0xe0,
196+   0x42, 0x00, 0x00, 0x01, 0x80, 0xff, 0x18, 0x00, 0x20, 0x00, 0x00, 0x00,
197+   0x00, 0x00, 0x00, 0x40, 0x01, 0x8f, 0xe0, 0x42, 0x00, 0x00, 0x00, 0x80,
198+   0xff, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
199+   0xef, 0xc0, 0x42, 0x00, 0x00, 0x00, 0x80, 0x7f, 0xe0, 0x00, 0x10, 0x00,
200+   0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3f, 0xc0, 0x42, 0x00, 0x00,
201+   0x00, 0x80, 0x3f, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202+   0x80, 0x00, 0x1f, 0x80, 0xe7, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x06, 0x00,
203+   0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x1f, 0x00, 0x00,
204+   0x00, 0x00, 0x01, 0xc0, 0x1f, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
205+   0x00, 0x00, 0x80, 0x06, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
206+   0x18, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1e,
207+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80, 0x08, 0x00, 0x00,
208+   0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
209+   0x00, 0x07, 0xc1, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
210+   0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x81, 0x00, 0x18,
211+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x18, 0x3c, 0x00, 0x00, 0x00,
212+   0x00, 0x00, 0x00, 0x07, 0x86, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
213+   0x00, 0x80, 0x0c, 0x38, 0x47, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xcc,
214+   0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x38, 0xc8,
215+   0x80, 0x00, 0x00, 0x00, 0x01, 0x23, 0xf8, 0x20, 0x38, 0x00, 0x00, 0x00,
216+   0x00, 0x00, 0x00, 0x80, 0x41, 0xf8, 0x48, 0x80, 0x00, 0x00, 0x00, 0x00,
217+   0x23, 0xe0, 0x60, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60,
218+   0x78, 0x48, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0xe0, 0xc0, 0x38, 0x00,
219+   0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x70, 0x48, 0x80, 0x00, 0x00,
220+   0x00, 0x00, 0x81, 0xf3, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221+   0xe0, 0x18, 0x70, 0x48, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0xfb, 0x00,
222+   0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x06, 0xf0, 0xe7, 0x00,
223+   0x00, 0x00, 0x00, 0x01, 0xe1, 0xfe, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
224+   0x00, 0x00, 0xf8, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
225+   0xfe, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc7, 0xf0,
226+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00,
227+   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
228+   0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
229+   0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8,
230+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
231+   0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
232+   0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
233+   0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00,
234+   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
235+   0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236+   0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
237+   0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00,
238+   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0xc0, 0x00, 0x00, 0x00,
239+   0x00, 0x00, 0x79, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240+   0xff, 0xff, 0xf2, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xff, 0xff,
241+   0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x20, 0x00,
242+   0x00, 0xe0, 0x00, 0x00, 0x09, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
243+   0x00, 0x00, 0xff, 0xff, 0xf1, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x31,
244+   0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0,
245+   0x20, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x09, 0xff, 0xff, 0xf8, 0x00, 0x00,
246+   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x20, 0x00, 0x00, 0x00, 0x00,
247+   0x00, 0x89, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
248+   0xff, 0xf1, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xff, 0xff, 0xf8,
249+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
250+   0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
251+   0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
252+   0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00,
253+   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
254+   0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255+   0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
256+   0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00,
257+   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
258+   0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259+   0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff,
260+   0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
261+   0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
262+   0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
263+   0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0,
264+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00,
265+   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
266+   0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
267+   0xff, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xff, 0xff, 0xf8,
268+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x10, 0x00, 0x00,
269+   0x00, 0x00, 0x00, 0xa1, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
270+   0x00, 0xff, 0xff, 0xf1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0xff,
271+   0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xe0,
272+   0x00, 0x00, 0x00, 0x00, 0x02, 0x21, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
273+   0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03,
274+   0xf1, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
275+   0xf1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xf8, 0x00,
276+   0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xe0, 0x00, 0x00, 0x00,
277+   0x00, 0x00, 0x21, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
278+   0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff,
279+   0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
280+   0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
281+   0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
282+   0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf8,
283+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf8, 0x00, 0x00,
284+   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
285+   0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
286+   0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8,
287+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
288+   0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
289+   0x00, 0xff, 0xff, 0xfe, 0x01, 0xf8, 0x00, 0x00, 0x03, 0xe0, 0x0f, 0xf8,
290+   0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0xff, 0x00,
291+   0x10, 0x00, 0x00, 0x02, 0x00, 0x1f, 0xe8, 0x03, 0xf8, 0x00, 0x00, 0x00,
292+   0x00, 0x00, 0x00, 0xf4, 0x31, 0xff, 0x80, 0x20, 0x00, 0x00, 0x03, 0xc0,
293+   0x3f, 0xc8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x10,
294+   0xff, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x60, 0x7f, 0x8c, 0x00, 0x78, 0x00,
295+   0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x10, 0x7f, 0xe0, 0x40, 0x00, 0x00,
296+   0x02, 0x20, 0xff, 0x84, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297+   0xc4, 0x10, 0x7f, 0xf0, 0x40, 0x00, 0x00, 0x02, 0x20, 0xff, 0x86, 0x00,
298+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x6f, 0xf8, 0x40,
299+   0x00, 0xf0, 0x01, 0xc1, 0xff, 0x43, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
300+   0x00, 0x00, 0x84, 0x10, 0x67, 0xfc, 0x00, 0x01, 0x00, 0x00, 0x03, 0xfe,
301+   0x61, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x63,
302+   0xfe, 0x00, 0x01, 0x00, 0x00, 0x0f, 0xfe, 0x30, 0x80, 0x08, 0x00, 0x00,
303+   0x00, 0x00, 0x00, 0x00, 0x84, 0x30, 0x43, 0xff, 0x00, 0x01, 0xe0, 0x00,
304+   0x1f, 0xfe, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
305+   0x20, 0x43, 0xff, 0x80, 0x01, 0x10, 0x00, 0x3f, 0xfe, 0x18, 0x00, 0x08,
306+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0xc3, 0xff, 0xe0, 0x01,
307+   0x10, 0x00, 0xff, 0xfe, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
308+   0x00, 0x80, 0x01, 0x83, 0xff, 0xf8, 0x00, 0xe0, 0x03, 0xff, 0xfb, 0x00,
309+   0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x03, 0xff,
310+   0xff, 0x00, 0x00, 0x1f, 0xff, 0xf9, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
311+   0x00, 0x00, 0x00, 0x80, 0x02, 0x06, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff,
312+   0xf9, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
313+   0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xc0, 0x00, 0x08, 0x00,
314+   0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x10, 0xff, 0xff, 0xff, 0xff,
315+   0xff, 0xff, 0xfc, 0x60, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
316+   0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00,
317+   0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff,
318+   0xff, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
319+   0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2,
320+   0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
321+   0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x08, 0x00, 0x00,
322+   0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
323+   0xff, 0xf0, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
324+   0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x08,
325+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff,
326+   0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
327+   0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
328+   0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f,
329+   0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
330+   0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
331+   0xf8, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
332+   0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x08, 0x00,
333+   0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
334+   0xff, 0xff, 0xf8, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
335+   0xc0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
336+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xff, 0xff,
337+   0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
338+   0x00, 0x00, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
339+   0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff,
340+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
341+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
342+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
343+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
344+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
345+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
346+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
347+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
348+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
349+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
350+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
351+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
352+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
353+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
354+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
355+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
356+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
357+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
358+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
359+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
360+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
361+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
362+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
363+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
364+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
368+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
369+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
370+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
372+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
375+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
376+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
377+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
378+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
379+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
380+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
381+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
383+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
384+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
385+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
386+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
387+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
388+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
389+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
390+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
391+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
392+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
393+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
394+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
395+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
396+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
398+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
399+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
400+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
401+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
402+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
403+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
404+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
405+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
406+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
407+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
408+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
409+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
410+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
411+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
412+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
413+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
414+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
415+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
416+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
417+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
418+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
419+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
420+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
421+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
422+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
424+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
425+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
426+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
427+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
428+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
429+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
430+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
431+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
432+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
433+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
434+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
435+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
436+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
437+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
438+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
439+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
440+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
441+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
442+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
443+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
444+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
445+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
446+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
447+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
448+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
449+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
450+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
451+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
452+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
453+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
454+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
455+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
456+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
457+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
458+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
459+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
460+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
461+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
462+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
463+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
464+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
465+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
466+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
467+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
468+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
469+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
470+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
471+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
472+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
473+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
474+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
475+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
476+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
477+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
478+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
479+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
480+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
481+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
482+};
+387, -0
  1@@ -0,0 +1,387 @@
  2+/* Copyright 1985 Massachusetts Institute of Technology */
  3+#include <u.h>
  4+#include <libc.h>
  5+#include <draw.h>
  6+#include <event.h>
  7+
  8+#define add addpt
  9+#define sub subpt
 10+int wind = 1;
 11+
 12+typedef enum{
 13+	Odd=1,
 14+	Nonzero=~0
 15+}Windrule;
 16+#include "catback.p"
 17+#include "eyes.p"
 18+#define CATWID	150		/* width of body bitmap */
 19+#define CATHGT	300		/* height of body bitmap */
 20+#define	TAILWID	150		/* width of tail bitmap */
 21+#define	TAILHGT	89		/* height of tail bitmap */
 22+#define	MINULEN	27		/* length of minute hand */
 23+#define	HOURLEN	15		/* length of hour hand */
 24+#define	HANDWID	4		/* width of clock hands */
 25+#define	UPDATE	(1000/NTAIL)	/* ms/update -- tail waves at roughly 1/2 hz */
 26+#define	BLACK	(~0)
 27+#define	WHITE	0
 28+#define NTP	7
 29+Point tp[NTP]={			/* tail polygon */
 30+	 0, 0,
 31+	 0,76,
 32+	 3,82,
 33+	10,84,
 34+	18,82,
 35+	21,76,
 36+	21,70,
 37+};
 38+#define	NTAIL	16
 39+Image *eye[NTAIL+1];
 40+Image *tail[NTAIL+1];
 41+Image *cat;			/* cat body */
 42+Image *eyes;			/* eye background */
 43+Point toffs={ 74, -15 };	/* tail polygon offset */
 44+Point tailoffs={0, 211};	/* tail bitmap offset, relative to body */
 45+Point eyeoffs={49, 30};		/* eye bitmap offset, relative to body */
 46+Point catoffs;			/* cat offset, relative to screen */
 47+int xredraw;
 48+int crosseyed;
 49+void drawclock(void);
 50+void drawhand(int, int, double);
 51+void init(void);
 52+Image *draweye(double);
 53+Image *drawtail(double);
 54+Image *eballoc(Rectangle, int);
 55+//int myfillpoly(Image *, Point [], int, Windrule, int, Fcode);
 56+//void mydrawpoly(Image *, Point [], int, int, Fcode);
 57+Image *eballoc(Rectangle r, int chan){
 58+	Image *b=allocimage(display, r, chan, 0, DWhite);
 59+	if(b==0){
 60+		fprint(2, "catclock: can't allocate bitmap\n");
 61+		exits("allocimage");
 62+	}
 63+	return b;
 64+}
 65+
 66+void
 67+eloadimage(Image *i, Rectangle r, uchar *d, int nd)
 68+{
 69+	int n;
 70+	n = loadimage(i, r, d, nd);
 71+	if(n < nd) {
 72+		fprint(2, "loadimage fails: %r\n");
 73+		exits("loadimage");
 74+	}
 75+}
 76+
 77+int round_x(double x){
 78+	return x>=0.?x+.5:x-.5;
 79+}
 80+
 81+void
 82+redraw(Image *screen)
 83+{
 84+	Rectangle r = Rect(0,0,Dx(screen->r), Dy(screen->r));
 85+	catoffs.x=(Dx(r)-CATWID)/2;
 86+	catoffs.y=(Dy(r)-CATHGT)/2;
 87+	xredraw=1;
 88+}
 89+
 90+void
 91+eresized(int new)
 92+{
 93+	if(new && getwindow(display, Refmesg) < 0)
 94+		fprint(2,"can't reattach to window");
 95+	redraw(screen);
 96+}
 97+
 98+void main(int argc, char *argv[]){
 99+	int i;
100+	ARGBEGIN{
101+	case 'c': crosseyed++; break;
102+	default:
103+		fprint(2, "Usage: %s [-c]\n", argv0);
104+		exits("usage");
105+	}ARGEND
106+	if(initdraw(0, 0, "cat clock") < 0)
107+		sysfatal("initdraw: %r");
108+	einit(Emouse);
109+	redraw(screen);
110+	for(i=0; i<nelem(catback_bits); i++)
111+		catback_bits[i] ^= 0xFF;
112+	for(i=0; i<nelem(eyes_bits); i++)
113+		eyes_bits[i] ^= 0xFF;
114+	cat=eballoc(Rect(0, 0, CATWID, CATHGT), GREY1);
115+	eloadimage(cat, cat->r, catback_bits, sizeof(catback_bits));
116+//	wrbitmap(cat, cat->r.min.y, cat->r.max.y, catback_bits);
117+	for(i=0;i<=NTAIL;i++){
118+		tail[i]=drawtail(i*PI/NTAIL);
119+		eye[i]=draweye(i*PI/NTAIL);
120+	}
121+	for(;;){
122+		while(ecanmouse()) emouse();	/* don't get resize events without this! */
123+		drawclock();
124+		flushimage(display, 1);
125+//		bflush();
126+		sleep(UPDATE);
127+	}
128+}
129+/*
130+ * Draw a clock hand, theta is clockwise angle from noon
131+ */
132+void drawhand(int length, int width, double theta){
133+	double c=cos(theta), s=sin(theta);
134+	double ws=width*s, wc=width*c;
135+	Point vhand[4];
136+	vhand[0]=add(screen->r.min, add(catoffs, Pt(CATWID/2+round_x(length*s), CATHGT/2-round_x(length*c))));
137+	vhand[1]=add(screen->r.min, add(catoffs, Pt(CATWID/2-round_x(ws+wc), CATHGT/2+round_x(wc-ws))));
138+	vhand[2]=add(screen->r.min, add(catoffs, Pt(CATWID/2-round_x(ws-wc), CATHGT/2+round_x(wc+ws))));
139+	vhand[3] = vhand[0];
140+	fillpoly(screen, vhand, 4, wind, display->white, 
141+		addpt(screen->r.min, vhand[0]));
142+	poly(screen, vhand, 4, Endsquare, Endsquare, 0, display->black,
143+		addpt(screen->r.min, vhand[0]));
144+//	myfillpoly(&screen, vhand, 3, Nonzero, WHITE, S);
145+//	mydrawpoly(&screen, vhand, 3, BLACK, S);
146+}
147+/*
148+ * draw a cat tail, t is time (mod 1 second)
149+ */
150+Image *drawtail(double t){
151+	Image *bp;
152+	double theta=.4*sin(t+3.*PIO2)-.08;	/* an assymetric tail leans to one side */
153+	double s=sin(theta), c=cos(theta);
154+	Point rtp[NTP];
155+	int i;
156+	bp=eballoc(Rect(0, 0, TAILWID, TAILHGT), GREY1);
157+	for(i=0;i!=NTP;i++)
158+		rtp[i]=add(Pt(tp[i].x*c+tp[i].y*s, -tp[i].x*s+tp[i].y*c), toffs);
159+	fillpoly(bp, rtp, NTP, wind, display->black, rtp[0]);
160+	return bp;
161+}
162+/*
163+ * draw the cat's eyes, t is time (mod 1 second)
164+ */
165+Image *draweye(double t){
166+	Image *bp;
167+	double u;
168+	double angle=0.7*sin(t+3*PIO2)+PI/2.0;	/* direction eyes point */
169+	Point pts[100];
170+	int i, j;
171+	struct{
172+		double	x, y, z;
173+	}pt;
174+	if(eyes==0){
175+		eyes=eballoc(Rect(0, 0, eyes_width, eyes_height), GREY1);
176+		eloadimage(eyes, eyes->r, eyes_bits, sizeof(eyes_bits));
177+//		wrbitmap(eyes, eyes->r.min.y, eyes->r.max.y, eyes_bits);
178+	}
179+	bp=eballoc(eyes->r, GREY1);
180+	draw(bp, bp->r, eyes, nil, ZP);
181+//	bitblt(bp, bp->r.min, eyes, eyes->r, S);
182+	for(i=0,u=-PI/2.0;u<PI/2.0;i++,u+=0.25){
183+		pt.x=cos(u)*cos(angle+PI/7.0);
184+		pt.y=sin(u);
185+		pt.z=2.+cos(u)*sin(angle+PI/7.0);
186+		pts[i].x=(pt.z==0.0?pt.x:pt.x/pt.z)*23.0+12.0;
187+		pts[i].y=(pt.z==0.0?pt.y:pt.y/pt.z)*23.0+11.0;
188+	}
189+	for(u=PI/2.0;u>-PI/2.0;i++,u-=0.25){
190+		pt.x=cos(u)*cos(angle-PI/7.0);
191+		pt.y=sin(u);
192+		pt.z=2.+cos(u)*sin(angle-PI/7.0);
193+		pts[i].x=(pt.z==0.0?pt.x:pt.x/pt.z)*23.0+12.0;
194+		pts[i].y=(pt.z==0.0?pt.y:pt.y/pt.z)*23.0+11.0;
195+	}
196+	fillpoly(bp, pts, i, wind, display->black, pts[0]);
197+//	fillpoly(bp, pts, i, Nonzero, BLACK, S);
198+	if(crosseyed){
199+		angle=0.7*sin(PI-t+3*PIO2)+PI/2.0;
200+		for(i=0,u=-PI/2.0;u<PI/2.0;i++,u+=0.25){
201+			pt.x=cos(u)*cos(angle+PI/7.0);
202+			pt.y=sin(u);
203+			pt.z=2.+cos(u)*sin(angle+PI/7.0);
204+			pts[i].x=(pt.z==0.0?pt.x:pt.x/pt.z)*23.0+12.0;
205+			pts[i].y=(pt.z==0.0?pt.y:pt.y/pt.z)*23.0+11.0;
206+		}
207+		for(u=PI/2.0;u>-PI/2.0;i++,u-=0.25){
208+			pt.x=cos(u)*cos(angle-PI/7.0);
209+			pt.y=sin(u);
210+			pt.z=2.+cos(u)*sin(angle-PI/7.0);
211+			pts[i].x=(pt.z==0.0?pt.x:pt.x/pt.z)*23.0+12.0;
212+			pts[i].y=(pt.z==0.0?pt.y:pt.y/pt.z)*23.0+11.0;
213+		}
214+	}
215+	for(j=0;j<i;j++) pts[j].x+=31;
216+	fillpoly(bp, pts, i, wind, display->black, pts[0]);
217+//	fillpoly(bp, pts, i, Nonzero, BLACK, S);
218+	return bp;
219+}
220+void
221+drawclock(void){
222+	static int t=0, dt=1;
223+	static Tm otm;
224+	Tm tm=*localtime(time(0));
225+	tm.hour%=12;
226+	if(xredraw || tm.min!=otm.min || tm.hour!=otm.hour){
227+		if(xredraw){
228+			draw(screen, screen->r, display->white, nil, ZP);
229+			border(screen, screen->r, 4, display->black, ZP);
230+			replclipr(screen, 0, insetrect(screen->r, 4));
231+			//bitblt(&screen, screen.r.min, &screen, screen.r, Zero);
232+			//border(&screen, screen.r, 4, F);
233+		}
234+		draw(screen, screen->r, cat, nil, mulpt(catoffs, -1));
235+		flushimage(display, 1);
236+		//bitblt(&screen, catoffs, cat, cat->r, S);
237+		drawhand(MINULEN, HANDWID, 2.*PI*tm.min/60.);
238+		drawhand(HOURLEN, HANDWID, 2.*PI*(tm.hour+tm.min/60.)/12.);
239+		xredraw=0;
240+	}
241+	draw(screen, screen->r, tail[t], nil, 
242+		mulpt(add(catoffs, tailoffs), -1));
243+	draw(screen, screen->r, eye[t], nil, 
244+		mulpt(add(catoffs, eyeoffs), -1));
245+	//bitblt(&screen, add(catoffs, tailoffs), tail[t], tail[t]->r, S);
246+	//bitblt(&screen, add(catoffs, eyeoffs), eye[t], eye[t]->r, S);
247+	t+=dt;
248+	if(t<0 || t>NTAIL){
249+		t-=2*dt;
250+		dt=-dt;
251+	}
252+	otm=tm;
253+}
254+#ifdef NOTDEF
255+void drawpoly(Bitmap *dst, Point p[], int np, int v, Fcode f){
256+	int i;
257+	Point q=p[np-1];
258+	for(i=0;i!=np;i++){
259+		segment(dst, p[i], q, v, f);
260+		q=p[i];
261+	}
262+}
263+/*
264+ * Fillpoly -- a polygon tiler
265+ * Updating the edgelist from scanline to scanline could be quicker if no
266+ * edges cross:  we can just merge the incoming edges.  The code can handle
267+ * multiply-connected polygons with holes, but the interface can't.  If
268+ * the scan-line filling routine were a parameter, we could do textured
269+ * polygons, polyblt, and other such stuff.
270+ */
271+typedef struct edge Edge;
272+struct edge{
273+	Point p;	/* point of crossing current scan-line */
274+	int maxy;	/* scan line at which to discard edge */
275+	int dx;		/* x increment if x fraction<1 */
276+	int dx1;	/* x increment if x fraction>=1 */
277+	int x;		/* x fraction, scaled by den */
278+	int num;	/* x fraction increment for unit y change, scaled by den */
279+	int den;	/* x fraction increment for unit x change, scaled by num */
280+	int dwind;	/* increment of winding number on passing this edge */
281+	Edge *next;	/* next edge on current scanline */
282+	Edge *prev;	/* previous edge on current scanline */
283+};
284+void insert(Edge *ep, Edge **yp){
285+	while(*yp && (*yp)->p.x<ep->p.x) yp=&(*yp)->next;
286+	ep->next=*yp;
287+	*yp=ep;
288+	if(ep->next){
289+		ep->prev=ep->next->prev;
290+		ep->next->prev=ep;
291+		if(ep->prev)
292+			ep->prev->next=ep;
293+	}
294+	else
295+		ep->prev=0;
296+}
297+int myfillpoly(Bitmap *b, Point vert[], int nvert, Windrule w, int v, Fcode f){
298+	Edge *edges, *ep, *nextep, **ylist, **eylist, **yp;
299+	Point *p, *q, *evert, p0, p1, p10;
300+	int dy, nbig, y, left, right, wind, nwind;
301+	edges=(Edge *)malloc(nvert*sizeof(Edge));
302+	if(edges==0){
303+	NoSpace:
304+		return 0;
305+	}
306+	ylist=(Edge **)malloc((b->r.max.y-b->r.min.y)*sizeof(Edge *));
307+	if(ylist==0) goto NoSpace;
308+	eylist=ylist+(b->r.max.y-b->r.min.y);
309+	for(yp=ylist;yp!=eylist;yp++) *yp=0;
310+	evert=vert+nvert;
311+	for(p=evert-1, q=vert, ep=edges;q!=evert;p=q, q++, ep++){
312+		if(p->y==q->y) continue;
313+		if(p->y<q->y){
314+			p0=*p;
315+			p1=*q;
316+			ep->dwind=1;
317+		}
318+		else{
319+			p0=*q;
320+			p1=*p;
321+			ep->dwind=-1;
322+		}
323+		if(p1.y<=b->r.min.y) continue;
324+		if(p0.y>=b->r.max.y) continue;
325+		ep->p=p0;
326+		if(p1.y>b->r.max.y)
327+			ep->maxy=b->r.max.y;
328+		else
329+			ep->maxy=p1.y;
330+		p10=sub(p1, p0);
331+		if(p10.x>=0){
332+			ep->dx=p10.x/p10.y;
333+			ep->dx1=ep->dx+1;
334+		}
335+		else{
336+			p10.x=-p10.x;
337+			ep->dx=-(p10.x/p10.y); /* this nonsense rounds toward zero */
338+			ep->dx1=ep->dx-1;
339+		}
340+		ep->x=0;
341+		ep->num=p10.x%p10.y;
342+		ep->den=p10.y;
343+		if(ep->p.y<b->r.min.y){
344+			dy=b->r.min.y-ep->p.y;
345+			ep->x+=dy*ep->num;
346+			nbig=ep->x/ep->den;
347+			ep->p.x+=ep->dx1*nbig+ep->dx*(dy-nbig);
348+			ep->x%=ep->den;
349+			ep->p.y=b->r.min.y;
350+		}
351+		insert(ep, ylist+(ep->p.y-b->r.min.y));
352+	}
353+	left=0;
354+	for(yp=ylist,y=b->r.min.y;yp!=eylist;yp++,y++){
355+		wind=0;
356+		for(ep=*yp;ep;ep=nextep){
357+			nwind=wind+ep->dwind;
358+			if(nwind&w){	/* inside */
359+				if(!(wind&w)){
360+					left=ep->p.x;
361+					if(left<b->r.min.x) left=b->r.min.x;
362+				}
363+			}
364+			else if(wind&w){
365+				right=ep->p.x;
366+				if(right>=b->r.max.x) right=b->r.max.x;
367+				if(right>left)
368+					segment(b, Pt(left, y), Pt(right, y), v, f);
369+			}
370+			wind=nwind;
371+			nextep=ep->next;
372+			if(++ep->p.y!=ep->maxy){
373+				ep->x+=ep->num;
374+				if(ep->x>=ep->den){
375+					ep->x-=ep->den;
376+					ep->p.x+=ep->dx1;
377+				}
378+				else
379+					ep->p.x+=ep->dx;
380+				insert(ep, yp+1);
381+			}
382+		}
383+	}
384+	free((char *)edges);
385+	free((char *)ylist);
386+	return 1;
387+}
388+#endif
+20, -0
 1@@ -0,0 +1,20 @@
 2+#define eyes_width 54
 3+#define eyes_height 23
 4+#define eyes_x_hot -1
 5+#define eyes_y_hot -1
 6+static uchar eyes_bits[] = {
 7+   0xff, 0x01, 0xff, 0xff, 0xfe, 0x03, 0xfc, 0xf8, 0x00, 0x3f, 0xff, 0xf0,
 8+   0x00, 0x7c, 0xf0, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x3c, 0xe0, 0x00, 0x0f,
 9+   0xff, 0xc0, 0x00, 0x1c, 0xc0, 0x00, 0x07, 0xff, 0x80, 0x00, 0x0c, 0x80,
10+   0x00, 0x03, 0xff, 0x00, 0x00, 0x04, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00,
11+   0x04, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0xfe,
12+   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
13+   0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00,
14+   0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00,
15+   0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x80, 0x00, 0x03,
16+   0xff, 0x00, 0x00, 0x04, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0x04, 0x80,
17+   0x00, 0x03, 0xff, 0x00, 0x00, 0x04, 0xc0, 0x00, 0x07, 0xff, 0x80, 0x00,
18+   0x0c, 0xe0, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x1c, 0xf0, 0x00, 0x1f, 0xff,
19+   0xe0, 0x00, 0x3c, 0xf8, 0x00, 0x3f, 0x57, 0xf0, 0x00, 0x7c, 0xff, 0x01,
20+   0xfe, 0xab, 0xfe, 0x03, 0xfc
21+};
+7, -0
1@@ -0,0 +1,7 @@
2+<$PLAN9/src/mkhdr
3+
4+TARG=catclock
5+OFILES=catclock.$O
6+
7+<$PLAN9/src/mkone
8+