Flac + arduino
- Войдите на сайт для отправки комментариев
Втр, 18/06/2013 - 11:03
Добрый день.
Нашел программу по проигрыванию флака. А сайт с описанием работы программы закрылся =(
теперь остался только код. Нсть непонятные моменты. Подскажите пожалуйста
/*----------------------------------------------------------------------------- Source file for interfacing the Arduino microcontroller with VS1053 mp3 decoder chip and a SD card Written By - Kalum <kalum_slk@gmx.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -----------------------------------------------------------------------------*/ #include <Bounce.h> #include <SD.h> #include <SPI.h> #include<avr/pgmspace.h> #ifndef SKIP_PLUGIN_VARNAME #define PLUGIN_SIZE 6676 PROGMEM prog_uint16_t plugin[6676] = { /* Compressed plugin */ #endif 0x0007, 0x0001, 0x8300, 0x0006, 0x0358, 0xb080, 0x1402, 0x0fdf, /* 0 */ 0xffc1, 0x0007, 0x9257, 0xb212, 0x3c00, 0x3d00, 0x4024, 0x0030, /* 8 */ 0x0297, 0x3f00, 0x0024, 0x0000, 0x0401, 0x000a, 0x1055, 0x0006, /* 10 */ 0x0017, 0x3f10, 0x3401, 0x000a, 0x2795, 0x3f00, 0x3401, 0x0001, /* 18 */ 0x19d7, 0xf400, 0x55c0, 0x0000, 0x0817, 0xf400, 0x57c0, 0xc090, /* 20 */ 0x0024, 0x0006, 0x0297, 0x3f00, 0x0024, 0x0000, 0x0000, 0x0007, /* 28 */ 0x81d7, 0x3f10, 0x0024, 0x3f10, 0x0024, 0x0006, 0x01d7, 0x3f00, /* 30 */ 0x0024, 0x0000, 0x190d, 0x000f, 0xf94f, 0x0000, 0xc8ce, 0x280f, /* 38 */ 0xe100, 0x0006, 0x2016, 0x0006, 0x0197, 0x0006, 0xa115, 0xb080, /* 40 */ 0x0024, 0x3f00, 0x3400, 0x0006, 0xa157, 0x3009, 0x1c00, 0x0006, /* 48 */ 0x01d7, 0x0000, 0x190d, 0x000a, 0x708f, 0x0000, 0xd1ce, 0x290b, /* 50 */ 0x1a80, 0x3f00, 0x184c, 0x0030, 0x0017, 0x4080, 0x1c01, 0x0000, /* 58 */ 0x0200, 0x2800, 0xc7d5, 0xb102, 0x0024, 0x0000, 0xc8c8, 0x2800, /* 60 */ 0xc7d5, 0x0000, 0xcdce, 0x0011, 0x210f, 0x0000, 0x190d, 0x280f, /* 68 */ 0xcb00, 0x3613, 0x0024, 0x0006, 0xa115, 0x0006, 0x01d7, 0x37f0, /* 70 */ 0x1401, 0x6100, 0x1c01, 0x4012, 0x0024, 0x0000, 0x8000, 0x6010, /* 78 */ 0x0024, 0x34f3, 0x0400, 0x2800, 0xd098, 0x0000, 0x0024, 0x0000, /* 80 */ 0x8001, 0x6010, 0x3c01, 0x0000, 0x000d, 0x2811, 0x8259, 0x0000, /* 88 */ 0x0024, 0x2a11, 0x2100, 0x0030, 0x0257, 0x3700, 0x8024, 0x4284, /* 90 */ 0x0024, 0x0000, 0x0024, 0x2800, 0xd3d5, 0x0006, 0x0197, 0x0006, /* 98 */ 0xa115, 0x3f00, 0xb402, 0x4d86, 0x0024, 0x0000, 0x190d, 0x2800, /* a0 */ 0xd815, 0x0014, 0x1b01, 0x0020, 0x480f, 0x0000, 0xd6ce, 0x2920, /* a8 */ 0x41c0, 0x0000, 0x190d, 0x000a, 0x708f, 0x0000, 0xd1ce, 0x280a, /* b0 */ 0xcac0, 0x0000, 0x190d, 0x0039, 0x324f, 0x0000, 0xefce, 0x2820, /* b8 */ 0x4a18, 0xb882, 0x0024, 0x2a20, 0x48c0, 0x003f, 0xfd00, 0xb700, /* c0 */ 0x0024, 0x003f, 0xf901, 0x6010, 0x0024, 0x0014, 0x1b01, 0x280a, /* c8 */ 0xc505, 0x0000, 0x190d, 0x0015, 0x59c0, 0x6fc2, 0x0024, 0x0019, /* d0 */ 0x9301, 0x2800, 0xe795, 0x0018, 0x50c0, 0x0000, 0x18c2, 0x290c, /* d8 */ 0x4840, 0x3613, 0x0024, 0x290c, 0x4840, 0x4086, 0x184c, 0x6234, /* e0 */ 0x0024, 0x0000, 0x1d02, 0x2800, 0xde15, 0x6234, 0x0024, 0x0030, /* e8 */ 0x0317, 0x2800, 0xe280, 0x3f00, 0x0024, 0x0000, 0x1d82, 0x2800, /* f0 */ 0xe0d5, 0x6234, 0x0024, 0x2912, 0x0d00, 0x4084, 0x184c, 0xf200, /* f8 */ 0x0024, 0x6200, 0x0024, 0x0006, 0x0017, 0xb080, 0x3c40, 0x2800, /* 100 */ 0xe280, 0x3f00, 0x0024, 0x0000, 0x0202, 0x2800, 0xe295, 0xa024, /* 108 */ 0x0024, 0xc020, 0x0024, 0x0030, 0x02d7, 0x2800, 0xe280, 0x3f00, /* 110 */ 0x0024, 0x000a, 0x8c8f, 0x0000, 0xe3ce, 0x000c, 0x0981, 0x280a, /* 118 */ 0x71c0, 0x002c, 0x9d40, 0x000a, 0x708f, 0x0000, 0xd1ce, 0x280a, /* 120 */ 0xc0d5, 0x0012, 0x5182, 0x3613, 0x0024, 0x3e11, 0xb807, 0x0000, /* 128 */ 0x330e, 0x0027, 0x9e0f, 0x290a, 0x6040, 0x0000, 0x190d, 0x36f1, /* 130 */ 0x9807, 0x0000, 0x190d, 0x000a, 0x708f, 0x280a, 0xc0c0, 0x0000, /* 138 */ 0xd1ce, 0x6fc2, 0x0024, 0x0000, 0x0024, 0x2800, 0xe295, 0x0000, /* 140 */ 0x0024, 0x2800, 0xa000, 0x000a, 0xcac8, 0x3613, 0x0024, 0x3e10, /* 148 */ 0xb803, 0x3e14, 0x3811, 0x3e11, 0x3805, 0x3e00, 0x3801, 0x0007, /* 150 */ 0xc390, 0x0006, 0xa011, 0x3010, 0x0444, 0x3050, 0x4405, 0x6458, /* 158 */ 0x0302, 0xff94, 0x4081, 0x0003, 0xffc5, 0x48b6, 0x0024, 0xff82, /* 160 */ 0x0024, 0x42b2, 0x0042, 0xb458, 0x0003, 0x4cd6, 0x9801, 0xf248, /* 168 */ 0x1bc0, 0xb58a, 0x0024, 0x6de6, 0x1804, 0x0006, 0x0010, 0x3810, /* 170 */ 0x9bc5, 0x3800, 0xc024, 0x36f4, 0x1811, 0x36f0, 0x9803, 0x283e, /* 178 */ 0x2d80, 0x0fff, 0xffc3, 0x003e, 0x2d4f, 0x2801, 0x0140, 0x0000, /* 180 */ 0xe90e, 0x3413, 0x0024, 0x2800, 0xf1c5, 0xf400, 0x4510, 0x2800, /* 188 */ 0xf580, 0x6894, 0x13cc, 0x3000, 0x184c, 0x6090, 0x93cc, 0x38b0, /* 190 */ 0x3812, 0x3004, 0x4024, 0x0000, 0x0910, 0x3183, 0x0024, 0x3100, /* 198 */ 0x4024, 0x6016, 0x0024, 0x000c, 0x8012, 0x2800, 0xf4d1, 0xb884, /* 1a0 */ 0x104c, 0x6894, 0x3002, 0x2939, 0xb0c0, 0x3e10, 0x93cc, 0x4084, /* 1a8 */ 0x9bd2, 0x4282, 0x0024, 0x0000, 0x0041, 0x2800, 0xf785, 0x6212, /* 1b0 */ 0x0024, 0x0000, 0x0040, 0x2800, 0xfc85, 0x000c, 0x8390, 0x2a01, /* 1b8 */ 0x0000, 0x34c3, 0x0024, 0x3444, 0x0024, 0x3073, 0x0024, 0x3053, /* 1c0 */ 0x0024, 0x3000, 0x0024, 0x6092, 0x098c, 0x0000, 0x0241, 0x2801, /* 1c8 */ 0x0005, 0x32a0, 0x0024, 0x6012, 0x0024, 0x0000, 0x0024, 0x2801, /* 1d0 */ 0x0015, 0x0000, 0x0024, 0x3613, 0x0024, 0x3001, 0x3844, 0x2920, /* 1d8 */ 0x0580, 0x3009, 0x3852, 0xc090, 0x9bd2, 0x2801, 0x0000, 0x3800, /* 1e0 */ 0x1bc4, 0x000c, 0x4113, 0xb880, 0x2380, 0x3304, 0x4024, 0x3800, /* 1e8 */ 0x05cc, 0xcc92, 0x05cc, 0x3910, 0x0024, 0x3910, 0x4024, 0x000c, /* 1f0 */ 0x8110, 0x3910, 0x0024, 0x39f0, 0x4024, 0x3810, 0x0024, 0x38d0, /* 1f8 */ 0x4024, 0x3810, 0x0024, 0x38f0, 0x4024, 0x34c3, 0x0024, 0x3444, /* 200 */ 0x0024, 0x3073, 0x0024, 0x3063, 0x0024, 0x3000, 0x0024, 0x4080, /* 208 */ 0x0024, 0x0000, 0x0024, 0x2839, 0x53d5, 0x4284, 0x0024, 0x3613, /* 210 */ 0x0024, 0x2801, 0x0345, 0x6898, 0xb804, 0x0000, 0x0084, 0x293b, /* 218 */ 0x1cc0, 0x3613, 0x0024, 0x000c, 0x8117, 0x3711, 0x0024, 0x37d1, /* 220 */ 0x4024, 0x4e8a, 0x0024, 0x0000, 0x0015, 0x2801, 0x0605, 0xce9a, /* 228 */ 0x0024, 0x3f11, 0x0024, 0x3f01, 0x4024, 0x000c, 0x8197, 0x408a, /* 230 */ 0x9bc4, 0x3f15, 0x4024, 0x2801, 0x0845, 0x4284, 0x3c15, 0x6590, /* 238 */ 0x0024, 0x0000, 0x0024, 0x2839, 0x53d5, 0x4284, 0x0024, 0x0000, /* 240 */ 0x0024, 0x2800, 0xf098, 0x458a, 0x0024, 0x2a39, 0x53c0, 0x3009, /* 248 */ 0x3851, 0x3e14, 0xf812, 0x3e12, 0xb817, 0x3e11, 0x8024, 0x0006, /* 250 */ 0x0293, 0x3301, 0x8024, 0x468c, 0x3804, 0x0006, 0xa057, 0x2801, /* 258 */ 0x0f84, 0x0006, 0x0011, 0x469c, 0x0024, 0x3be1, 0x8024, 0x2801, /* 260 */ 0x0f95, 0x0006, 0xc392, 0x3311, 0x0024, 0x33f1, 0x2844, 0x3009, /* 268 */ 0x2bc4, 0x0030, 0x04d2, 0x3311, 0x0024, 0x3a11, 0x0024, 0x3201, /* 270 */ 0x8024, 0x003f, 0xfc04, 0xb64c, 0x0fc4, 0xc648, 0x0024, 0x3a01, /* 278 */ 0x0024, 0x3111, 0x1fd3, 0x6498, 0x07c6, 0x868c, 0x2444, 0x0023, /* 280 */ 0xffd2, 0x3901, 0x8e06, 0x0030, 0x0551, 0x3911, 0x8e06, 0x3961, /* 288 */ 0x9c44, 0xf400, 0x44c6, 0xd46c, 0x1bc4, 0x36f1, 0xbc13, 0x2801, /* 290 */ 0x1915, 0x36f2, 0x9817, 0x002b, 0xffd2, 0x3383, 0x188c, 0x3e01, /* 298 */ 0x8c06, 0x0006, 0xa097, 0x3009, 0x1c12, 0x3213, 0x0024, 0x468c, /* 2a0 */ 0xbc12, 0x002b, 0xffd2, 0xf400, 0x4197, 0x2801, 0x1604, 0x3713, /* 2a8 */ 0x0024, 0x2801, 0x1645, 0x37e3, 0x0024, 0x3009, 0x2c17, 0x3383, /* 2b0 */ 0x0024, 0x3009, 0x0c06, 0x468c, 0x4197, 0x0006, 0xa052, 0x2801, /* 2b8 */ 0x1844, 0x3713, 0x2813, 0x2801, 0x1885, 0x37e3, 0x0024, 0x3009, /* 2c0 */ 0x2c17, 0x36f1, 0x8024, 0x36f2, 0x9817, 0x36f4, 0xd812, 0x2100, /* 2c8 */ 0x0000, 0x3904, 0x5bd1, 0x2a01, 0x094e, 0x3e11, 0x7804, 0x0030, /* 2d0 */ 0x0257, 0x3701, 0x0024, 0x0013, 0x4d05, 0xd45b, 0xe0e1, 0x0007, /* 2d8 */ 0xc795, 0x2801, 0x2095, 0x0fff, 0xff45, 0x3511, 0x184c, 0x4488, /* 2e0 */ 0xb808, 0x0006, 0x8a97, 0x2801, 0x2045, 0x3009, 0x1c40, 0x3511, /* 2e8 */ 0x1fc1, 0x0000, 0x0020, 0xac52, 0x1405, 0x6ce2, 0x0024, 0x0000, /* 2f0 */ 0x0024, 0x2801, 0x2041, 0x68c2, 0x0024, 0x291a, 0x8a40, 0x3e10, /* 2f8 */ 0x0024, 0x2921, 0xca80, 0x3e00, 0x4024, 0x36f3, 0x0024, 0x3009, /* 300 */ 0x1bc8, 0x36f0, 0x1801, 0x3601, 0x5804, 0x3e13, 0x780f, 0x3e13, /* 308 */ 0xb808, 0x0008, 0x9b0f, 0x0001, 0x234e, 0x2908, 0x9300, 0x0000, /* 310 */ 0x004d, 0x36f3, 0x9808, 0x2000, 0x0000, 0x36f3, 0x580f, 0x0006, /* 318 */ 0xc610, 0x0007, 0x81d7, 0x3710, 0x0024, 0x3700, 0x4024, 0x0034, /* 320 */ 0x0002, 0x0000, 0x01c3, 0x6dc6, 0x8001, 0xff32, 0x4043, 0x48b2, /* 328 */ 0x0024, 0xffa6, 0x0024, 0x40b2, 0x0024, 0xb386, 0x4142, 0x0000, /* 330 */ 0x0106, 0x2914, 0xaa80, 0xad66, 0x0024, 0x6c96, 0x0024, 0x0000, /* 338 */ 0x0201, 0xf1d6, 0x0024, 0x61de, 0x0024, 0x0006, 0xc612, 0x2801, /* 340 */ 0x2901, 0x0006, 0xc713, 0x4c86, 0x0024, 0x2912, 0x1180, 0x0006, /* 348 */ 0xc351, 0x0006, 0x0210, 0x2912, 0x0d00, 0x3810, 0x984c, 0xf200, /* 350 */ 0x2043, 0x2808, 0xa000, 0x3800, 0x0024, 0x0007, 0x0001, 0x802e, /* 358 */ 0x0006, 0x0002, 0x2801, 0x1a00, 0x0007, 0x0001, 0x8050, 0x0006, /* 360 */ 0x009c, 0x3e12, 0x3800, 0x3e00, 0xb804, 0x0030, 0x0015, 0x0008, /* 368 */ 0x0002, 0x3511, 0x184c, 0xb428, 0x1402, 0x0000, 0x8004, 0x2910, /* 370 */ 0x0195, 0x0000, 0x1488, 0xb428, 0x0024, 0x0006, 0x0095, 0x2800, /* 378 */ 0x1f45, 0x3e13, 0x780e, 0x3e11, 0x7803, 0x3e13, 0xf806, 0x3e01, /* 380 */ 0xf801, 0x3510, 0x8024, 0x3510, 0xc024, 0x0000, 0x0021, 0xf2d6, /* 388 */ 0x1444, 0x4090, 0x1745, 0x0000, 0x0022, 0xf2ea, 0x4497, 0x2400, /* 390 */ 0x1b00, 0x6090, 0x1c46, 0xfe6c, 0x0024, 0xcdb6, 0x1c46, 0xfe6c, /* 398 */ 0x0024, 0xceba, 0x1c46, 0x4d86, 0x3442, 0x0000, 0x09c7, 0x2800, /* 3a0 */ 0x1c85, 0xf5d4, 0x3443, 0x6724, 0x0024, 0x4e8a, 0x3444, 0x0000, /* 3a8 */ 0x0206, 0x2800, 0x1dc5, 0xf5e8, 0x3705, 0x6748, 0x0024, 0xa264, /* 3b0 */ 0x9801, 0xc248, 0x1bc7, 0x0030, 0x03d5, 0x3d01, 0x0024, 0x36f3, /* 3b8 */ 0xd806, 0x3601, 0x5803, 0x36f3, 0x0024, 0x36f3, 0x580e, 0x0007, /* 3c0 */ 0x8257, 0x3700, 0x8024, 0xf224, 0x0024, 0x0000, 0x0024, 0x2800, /* 3c8 */ 0x21d1, 0x3600, 0x9844, 0x2900, 0x2780, 0x0000, 0x2248, 0x2911, /* 3d0 */ 0xf140, 0x0000, 0x0024, 0x0030, 0x0057, 0x3700, 0x0024, 0xf200, /* 3d8 */ 0x4595, 0x0fff, 0xfe02, 0xa024, 0x164c, 0x8000, 0x17cc, 0x3f00, /* 3e0 */ 0x0024, 0x3500, 0x0024, 0x0021, 0x6d82, 0xd024, 0x44c0, 0x0006, /* 3e8 */ 0xa402, 0x2800, 0x2695, 0xd024, 0x0024, 0x0000, 0x0000, 0x2800, /* 3f0 */ 0x2695, 0x000b, 0x6d57, 0x3009, 0x3c00, 0x36f0, 0x8024, 0x36f2, /* 3f8 */ 0x1800, 0x2000, 0x0000, 0x0000, 0x0024, 0x0007, 0x0001, 0x8030, /* 400 */ 0x0006, 0x0002, 0x2800, 0x1400, 0x0007, 0x0001, 0x809e, 0x0006, /* 408 */ 0x0040, 0x3e14, 0x7810, 0x3e13, 0xb80d, 0x3e13, 0xf80a, 0x3e10, /* 410 */ 0xb803, 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e14, 0xf801, 0x0001, /* 418 */ 0x000a, 0x0006, 0xc4d5, 0xbf8e, 0x9442, 0x3e01, 0x9403, 0x0006, /* 420 */ 0xa017, 0x0023, 0xffd1, 0x0000, 0x0053, 0x3281, 0xf806, 0x4091, /* 428 */ 0x2d64, 0x2400, 0x2d00, 0x4efa, 0x9c10, 0xf1eb, 0x6061, 0xfe55, /* 430 */ 0x2f66, 0x5653, 0x2d64, 0x48b2, 0xa201, 0x4efa, 0xa201, 0x36f3, /* 438 */ 0x3c10, 0x36f4, 0xd801, 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, /* 440 */ 0x9803, 0x36f3, 0xd80a, 0x36f3, 0x980d, 0x2000, 0x0000, 0x36f4, /* 448 */ 0x5810, 0x0007, 0x0001, 0x80be, 0x0006, 0x001c, 0x3e12, 0xb817, /* 450 */ 0x3e14, 0xf812, 0x3e01, 0xb811, 0x0007, 0x9717, 0x0020, 0xffd2, /* 458 */ 0x0030, 0x11d1, 0x3111, 0x8024, 0x3704, 0xc024, 0x3b81, 0x8024, /* 460 */ 0x3101, 0x8024, 0x3b81, 0x8024, 0x3f04, 0xc024, 0x2808, 0x4800, /* 468 */ 0x36f1, 0x9811, 0x0007, 0x0001, 0x8028, 0x0006, 0x0002, 0x2a00, /* 470 */ 0x2f8e, 0x0007, 0x0001, 0x8032, 0x0006, 0x0002, 0x2800, 0x38c0, /* 478 */ 0x0007, 0x0001, 0x80cc, 0x0006, 0x002e, 0x36f3, 0x0024, 0x3009, /* 480 */ 0x3848, 0x3e14, 0x3811, 0x3e00, 0x0024, 0x0000, 0x4000, 0x0001, /* 488 */ 0x0010, 0x2915, 0x94c0, 0x0001, 0xcc11, 0x36f0, 0x0024, 0x2927, /* 490 */ 0x9e40, 0x3604, 0x1811, 0x3613, 0x0024, 0x3e14, 0x3811, 0x3e00, /* 498 */ 0x0024, 0x0000, 0x4000, 0x0001, 0x0010, 0x2915, 0x94c0, 0x0001, /* 4a0 */ 0xcc11, 0x36f0, 0x0024, 0x36f4, 0x1811, 0x3009, 0x1808, 0x2000, /* 4a8 */ 0x0000, 0x0000, 0x190d, 0x0007, 0x0001, 0x80e3, 0x0006, 0x0172, /* 4b0 */ 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3625, 0x0024, /* 4b8 */ 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, 0x3e11, 0x3805, /* 4c0 */ 0x3e11, 0xb807, 0x3e14, 0x3811, 0x0006, 0xa090, 0x2912, 0x0d00, /* 4c8 */ 0x3e14, 0xc024, 0x4088, 0x8000, 0x4080, 0x0024, 0x0007, 0x90d1, /* 4d0 */ 0x2800, 0x3e85, 0x0000, 0x0024, 0x0007, 0x9051, 0x3100, 0x4024, /* 4d8 */ 0x4100, 0x0024, 0x3900, 0x0024, 0x0007, 0x90d1, 0x0004, 0x0000, /* 4e0 */ 0x31f0, 0x4024, 0x6014, 0x0400, 0x0007, 0x9051, 0x2800, 0x4291, /* 4e8 */ 0x4080, 0x0024, 0x0000, 0x0000, 0x2800, 0x4245, 0x0000, 0x0024, /* 4f0 */ 0x0007, 0x9053, 0x3300, 0x0024, 0x4080, 0x0024, 0x0000, 0x0000, /* 4f8 */ 0x2800, 0x4298, 0x0000, 0x0024, 0x3900, 0x0024, 0x3200, 0x504c, /* 500 */ 0x6410, 0x0024, 0x3cf0, 0x0000, 0x4080, 0x0024, 0x0006, 0xc691, /* 508 */ 0x2800, 0x5b05, 0x0000, 0x1001, 0x0007, 0x9051, 0x3100, 0x0024, /* 510 */ 0x6012, 0x0024, 0x0006, 0xc6d0, 0x2800, 0x4fc9, 0x003f, 0xe000, /* 518 */ 0x0006, 0xc693, 0x3900, 0x0c00, 0x3009, 0x0001, 0x6014, 0x0024, /* 520 */ 0x0007, 0x1ad0, 0x2800, 0x4fd5, 0x3009, 0x0000, 0x4080, 0x0024, /* 528 */ 0x0000, 0x0301, 0x2800, 0x4945, 0x4090, 0x0024, 0x0000, 0x0024, /* 530 */ 0x2800, 0x4a55, 0x0000, 0x0024, 0x3009, 0x0000, 0xc012, 0x0024, /* 538 */ 0x2800, 0x4fc0, 0x3009, 0x2001, 0x3009, 0x0000, 0x6012, 0x0024, /* 540 */ 0x0000, 0x0024, 0x2800, 0x4c55, 0x0000, 0x0024, 0x0000, 0x0380, /* 548 */ 0x2800, 0x4fc0, 0x3009, 0x2000, 0x0000, 0x0341, 0x6012, 0x0024, /* 550 */ 0x0000, 0x0024, 0x2800, 0x4e55, 0x0000, 0x0024, 0x0000, 0x03c0, /* 558 */ 0x2800, 0x4fc0, 0x3009, 0x2000, 0x0000, 0x0381, 0x6012, 0x0024, /* 560 */ 0x0000, 0x00c0, 0x2800, 0x4fd5, 0x0000, 0x0024, 0x3009, 0x2000, /* 568 */ 0x0006, 0xa090, 0x3009, 0x0000, 0x4080, 0x0024, 0x0000, 0x0081, /* 570 */ 0x2800, 0x5455, 0x0007, 0x8c13, 0x3300, 0x104c, 0xb010, 0x0024, /* 578 */ 0x0002, 0x8001, 0x2800, 0x5705, 0x34f0, 0x0024, 0x2800, 0x5440, /* 580 */ 0x0000, 0x0024, 0x3009, 0x0000, 0x6090, 0x0024, 0x3009, 0x2000, /* 588 */ 0x2900, 0x0b80, 0x3009, 0x0405, 0x0006, 0xc6d1, 0x0006, 0xc690, /* 590 */ 0x3009, 0x0000, 0x3009, 0x0401, 0x6014, 0x0024, 0x0006, 0xc351, /* 598 */ 0x2800, 0x5311, 0x0006, 0xa093, 0xb880, 0x0024, 0x2800, 0x6380, /* 5a0 */ 0x3009, 0x2c00, 0x4040, 0x0024, 0x6012, 0x0024, 0x0006, 0xc6d0, /* 5a8 */ 0x2800, 0x6398, 0x0006, 0xc693, 0x3009, 0x0c00, 0x3009, 0x0001, /* 5b0 */ 0x6014, 0x0024, 0x0006, 0xc350, 0x2800, 0x6381, 0x0000, 0x0024, /* 5b8 */ 0x6090, 0x0024, 0x3009, 0x2c00, 0x3009, 0x0005, 0x2900, 0x0b80, /* 5c0 */ 0x0000, 0x6388, 0x3009, 0x0400, 0x4080, 0x0024, 0x0003, 0x8000, /* 5c8 */ 0x2800, 0x6385, 0x0000, 0x0024, 0x6400, 0x0024, 0x0000, 0x0081, /* 5d0 */ 0x2800, 0x6389, 0x0007, 0x8c13, 0x3300, 0x0024, 0xb010, 0x0024, /* 5d8 */ 0x0006, 0xc650, 0x2800, 0x6395, 0x0001, 0x0002, 0x3413, 0x0000, /* 5e0 */ 0x3009, 0x0401, 0x4010, 0x8406, 0x0000, 0x0281, 0xa010, 0x13c1, /* 5e8 */ 0x4122, 0x0024, 0x0000, 0x03c2, 0x6122, 0x8002, 0x462c, 0x0024, /* 5f0 */ 0x469c, 0x0024, 0xfee2, 0x0024, 0x48be, 0x0024, 0x6066, 0x8400, /* 5f8 */ 0x0006, 0xc350, 0x2800, 0x6381, 0x0000, 0x0024, 0x4090, 0x0024, /* 600 */ 0x3009, 0x2400, 0x2900, 0x0b80, 0x3009, 0x0005, 0x2912, 0x0d00, /* 608 */ 0x3613, 0x0024, 0x3a00, 0x0024, 0x36f4, 0xc024, 0x36f4, 0x1811, /* 610 */ 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, /* 618 */ 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, /* 620 */ 0x36f2, 0x9817, 0x0007, 0x0001, 0x819c, 0x0006, 0x0052, 0x3613, /* 628 */ 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3635, /* 630 */ 0x0024, 0x0000, 0x800a, 0x3e10, 0x7802, 0x3e14, 0x0024, 0x2902, /* 638 */ 0xd900, 0x0000, 0x0201, 0x0000, 0x0601, 0x3413, 0x184c, 0x2900, /* 640 */ 0xba40, 0x3cf0, 0x0024, 0x3413, 0x184c, 0x3400, 0x3040, 0x3009, /* 648 */ 0x33c1, 0x0000, 0x1fc1, 0xb010, 0x0024, 0x6014, 0x9040, 0x0006, /* 650 */ 0x8010, 0x2800, 0x6dd5, 0x0000, 0x0024, 0x34e3, 0x1bcc, 0x6890, /* 658 */ 0x0024, 0x2800, 0x6f80, 0xb880, 0x2000, 0x3e10, 0x1381, 0x2903, /* 660 */ 0x1e40, 0x3e00, 0x4024, 0x003f, 0xfe41, 0x36e3, 0x104c, 0x34f0, /* 668 */ 0x0024, 0xa010, 0x0024, 0x36f4, 0x0024, 0x36f0, 0x5802, 0x3405, /* 670 */ 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, /* 678 */ 0x9817, 0x0007, 0x0001, 0x81c5, 0x0006, 0x004a, 0x3613, 0x0024, /* 680 */ 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, /* 688 */ 0x0000, 0x800a, 0x3e10, 0xb804, 0x3e01, 0x534c, 0xbe8a, 0x10c0, /* 690 */ 0x4080, 0x0024, 0x0000, 0x0024, 0x2800, 0x78c5, 0x0000, 0x0024, /* 698 */ 0x2900, 0xba40, 0x4082, 0x184c, 0x4c8a, 0x134c, 0x0000, 0x0001, /* 6a0 */ 0x6890, 0x10c2, 0x4294, 0x0024, 0xac22, 0x0024, 0xbec2, 0x0024, /* 6a8 */ 0x0000, 0x0024, 0x2800, 0x78c5, 0x0000, 0x0024, 0x6890, 0x134c, /* 6b0 */ 0xb882, 0x10c2, 0xac22, 0x0024, 0x4c92, 0x0024, 0xdc92, 0x0024, /* 6b8 */ 0xceca, 0x0024, 0x4e82, 0x1bc5, 0x36f0, 0x9804, 0x3405, 0x9014, /* 6c0 */ 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, /* 6c8 */ 0x0007, 0x0001, 0x81ea, 0x0006, 0x00e4, 0x3613, 0x0024, 0x3e12, /* 6d0 */ 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3645, 0x0024, 0x0000, /* 6d8 */ 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, 0x3e11, 0x3805, 0x3e11, /* 6e0 */ 0xb807, 0x3e14, 0x104c, 0x2902, 0xd900, 0x0000, 0x0081, 0x4080, /* 6e8 */ 0x3040, 0x0000, 0x0101, 0x2800, 0x8005, 0x0000, 0x0024, 0x4090, /* 6f0 */ 0x138c, 0x0006, 0x8050, 0x2800, 0x9415, 0x0000, 0x0024, 0x3423, /* 6f8 */ 0x0024, 0x2902, 0xd900, 0x3613, 0x0024, 0xb880, 0x3000, 0x2800, /* 700 */ 0x91c0, 0x3009, 0x3380, 0x2902, 0xd900, 0x4122, 0x10cc, 0x3cf0, /* 708 */ 0x0024, 0x3001, 0x0024, 0x3400, 0x0024, 0x6800, 0x0024, 0xa408, /* 710 */ 0x9040, 0x4080, 0x0024, 0x0000, 0x07c1, 0x2800, 0x8595, 0x6894, /* 718 */ 0x1380, 0x6894, 0x130c, 0x3460, 0x0024, 0x6408, 0x4481, 0x4102, /* 720 */ 0x1380, 0xf400, 0x4052, 0x0000, 0x07c1, 0x34f0, 0xc024, 0x6234, /* 728 */ 0x0024, 0x6824, 0x0024, 0xa122, 0x0024, 0x6014, 0x0024, 0x0000, /* 730 */ 0x0141, 0x2800, 0x8c95, 0x0000, 0x0024, 0x2902, 0xd900, 0x3613, /* 738 */ 0x0024, 0x2800, 0x8b00, 0xb88a, 0x4002, 0x2900, 0x7140, 0x3e00, /* 740 */ 0x8024, 0x4c8e, 0xa801, 0x0000, 0x0201, 0x3a10, 0x1bcc, 0x3000, /* 748 */ 0x0024, 0xb010, 0x0024, 0x0000, 0x0024, 0x2800, 0x9095, 0x659a, /* 750 */ 0x0024, 0x6540, 0x184c, 0x0030, 0x0010, 0x2800, 0x8888, 0x0000, /* 758 */ 0x0024, 0x2800, 0x9080, 0x36f3, 0x0024, 0x2800, 0x8f40, 0xb88a, /* 760 */ 0x0024, 0x2902, 0xa140, 0x34d0, 0x4024, 0x4c8f, 0xa0a1, 0x0000, /* 768 */ 0x0201, 0x3000, 0x084c, 0xb010, 0x0024, 0x0000, 0x0024, 0x2800, /* 770 */ 0x9095, 0x659a, 0x0024, 0x6540, 0x10cc, 0x0030, 0x0010, 0x2800, /* 778 */ 0x8d08, 0x0000, 0x0024, 0x34d3, 0x0024, 0x3423, 0x0024, 0xf400, /* 780 */ 0x4510, 0x3009, 0x1380, 0x6090, 0x0024, 0x3009, 0x2000, 0x6892, /* 788 */ 0x108c, 0x34f0, 0x9000, 0xa122, 0x984c, 0x6016, 0x13c1, 0x0000, /* 790 */ 0x0102, 0x2800, 0x8148, 0x0006, 0x8150, 0x2800, 0x9480, 0x3009, /* 798 */ 0x1bcc, 0x6890, 0x0024, 0x3800, 0x0024, 0x36f4, 0x0024, 0x36f1, /* 7a0 */ 0x9807, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, /* 7a8 */ 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, /* 7b0 */ 0x9817, 0x0007, 0x0001, 0x825c, 0x0006, 0x0048, 0x3613, 0x0024, /* 7b8 */ 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, /* 7c0 */ 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb804, 0x3e11, 0xb807, /* 7c8 */ 0x3e14, 0x3811, 0x3e04, 0x934c, 0x3430, 0x0024, 0x4080, 0x0024, /* 7d0 */ 0x0000, 0x0206, 0x2800, 0x9d85, 0x0006, 0x8151, 0x3101, 0x130c, /* 7d8 */ 0xff0c, 0x1102, 0x6408, 0x0024, 0x4204, 0x0024, 0xb882, 0x4092, /* 7e0 */ 0x1006, 0x0e02, 0x48be, 0x0024, 0x4264, 0x0024, 0x2902, 0x8cc0, /* 7e8 */ 0xf400, 0x4090, 0x36f4, 0x8024, 0x36f4, 0x1811, 0x36f1, 0x9807, /* 7f0 */ 0x36f0, 0x9804, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, /* 7f8 */ 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, /* 800 */ 0x180b, 0x0006, 0x0002, 0x04ea, 0x0505, 0x0006, 0x8006, 0x054c, /* 808 */ 0x0006, 0x0027, 0x0521, 0x0521, 0x0521, 0x0521, 0x0521, 0x073a, /* 810 */ 0x071e, 0x0722, 0x0726, 0x072a, 0x072e, 0x0732, 0x0736, 0x0769, /* 818 */ 0x076d, 0x0770, 0x0770, 0x0770, 0x0770, 0x0778, 0x078b, 0x0856, /* 820 */ 0x07c2, 0x07c7, 0x07cd, 0x07d3, 0x07d8, 0x07dd, 0x07e2, 0x07e7, /* 828 */ 0x07ec, 0x07f1, 0x07f6, 0x07fb, 0x0814, 0x0833, 0x0852, 0x5a82, /* 830 */ 0x5a82, 0x0006, 0x8006, 0x0000, 0x0006, 0x0018, 0x6fb8, 0xc180, /* 838 */ 0xc180, 0x6fb8, 0x0000, 0x0000, 0x0000, 0x0000, 0x5a82, 0x5a82, /* 840 */ 0x6fb8, 0xc180, 0xc180, 0x6fb8, 0x0000, 0x0000, 0x5a82, 0x5a82, /* 848 */ 0x5a82, 0x5a82, 0x6fb8, 0xc180, 0xc180, 0x6fb8, 0x0007, 0x0001, /* 850 */ 0x84ac, 0x0006, 0x0236, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, /* 858 */ 0x3815, 0x3e05, 0xb814, 0x3675, 0x0024, 0x3633, 0x0024, 0x0000, /* 860 */ 0x800a, 0x3e10, 0x3801, 0x0000, 0x0181, 0x3e10, 0xb803, 0x3e11, /* 868 */ 0x3806, 0x3e11, 0xf810, 0x3e14, 0x7812, 0x3e13, 0xf80e, 0x2902, /* 870 */ 0xaa40, 0x3e03, 0x4024, 0x2902, 0xd900, 0x4088, 0x184c, 0x3413, /* 878 */ 0x184c, 0x2902, 0xd900, 0x6892, 0x33c0, 0x3423, 0x0024, 0x4080, /* 880 */ 0x3040, 0x0000, 0x0000, 0x2801, 0x3645, 0x0000, 0x0024, 0x6890, /* 888 */ 0x0024, 0x2902, 0xaa40, 0x3cd0, 0x0024, 0x4080, 0x0024, 0x0000, /* 890 */ 0x0024, 0x2801, 0x3695, 0x0000, 0x0024, 0x3433, 0x0024, 0xf400, /* 898 */ 0x4510, 0x34d0, 0x0024, 0x6090, 0x0024, 0x2902, 0xaa40, 0x3800, /* 8a0 */ 0x0024, 0x4080, 0x10cc, 0xf400, 0x4510, 0x2801, 0x3405, 0x34d0, /* 8a8 */ 0x0024, 0x2801, 0x3680, 0x0000, 0x0024, 0x3cd0, 0x0024, 0x3433, /* 8b0 */ 0x0024, 0x34a0, 0x0024, 0xf400, 0x4510, 0x3430, 0x4024, 0x6100, /* 8b8 */ 0x0024, 0x0000, 0x0341, 0x3840, 0x0024, 0x3000, 0x0024, 0x6012, /* 8c0 */ 0x0024, 0x0006, 0x02c1, 0x2801, 0x5301, 0x4012, 0x0024, 0xf400, /* 8c8 */ 0x4057, 0x3702, 0x0024, 0x2000, 0x0000, 0x0000, 0x0024, 0x34d3, /* 8d0 */ 0x184c, 0x3430, 0x8024, 0x2900, 0x7140, 0x3e00, 0x8024, 0x36f3, /* 8d8 */ 0x11cc, 0xb888, 0x104c, 0x3c10, 0x0024, 0x3c90, 0x4024, 0x2801, /* 8e0 */ 0x3f40, 0x34e3, 0x0024, 0x4f82, 0x128c, 0x3400, 0x4024, 0x4142, /* 8e8 */ 0x0024, 0xf400, 0x4050, 0x3800, 0x0024, 0x3440, 0x4024, 0x4142, /* 8f0 */ 0x0024, 0x6498, 0x4050, 0x3009, 0x2007, 0x0006, 0x8150, 0x3000, /* 8f8 */ 0x11cc, 0x6402, 0x104c, 0x3411, 0x8024, 0x2801, 0x3d08, 0x3491, /* 900 */ 0xc024, 0x2801, 0x6ec0, 0x34e3, 0x0024, 0x2801, 0x4640, 0xb888, /* 908 */ 0x0024, 0x2900, 0x7140, 0x3e00, 0x8024, 0x4c8e, 0x130c, 0x3400, /* 910 */ 0x5bcc, 0x4142, 0x0024, 0xf400, 0x4050, 0x3800, 0x0024, 0x3440, /* 918 */ 0x4024, 0x4142, 0x0024, 0xf400, 0x4050, 0x0000, 0x0201, 0x3009, /* 920 */ 0x2007, 0x0030, 0x0010, 0x3000, 0x0024, 0xb010, 0x0024, 0x0000, /* 928 */ 0x0024, 0x2801, 0x6ed5, 0x6498, 0x0024, 0x0006, 0x8150, 0x3000, /* 930 */ 0x134c, 0x6402, 0x10c2, 0x0000, 0x0024, 0x2801, 0x41c8, 0x3009, /* 938 */ 0x184c, 0x2801, 0x6ec0, 0x3009, 0x1bcc, 0x0000, 0x0201, 0xb888, /* 940 */ 0x104c, 0x3430, 0x184c, 0x6010, 0x0024, 0x6402, 0x3000, 0x0000, /* 948 */ 0x0201, 0x2801, 0x4ed8, 0x0030, 0x0010, 0x4090, 0x124c, 0x2401, /* 950 */ 0x4dc0, 0x0000, 0x0024, 0x3430, 0x8024, 0x2900, 0x7140, 0x3e00, /* 958 */ 0x8024, 0x4c8e, 0x130c, 0x3400, 0x4024, 0x4142, 0x0024, 0xf400, /* 960 */ 0x4050, 0x3800, 0x0024, 0x3410, 0x4024, 0x4142, 0x0024, 0x6498, /* 968 */ 0x4050, 0x3009, 0x2007, 0x0030, 0x0010, 0x0000, 0x0201, 0x3473, /* 970 */ 0x0024, 0x3490, 0x0024, 0x3e00, 0x13cc, 0x2900, 0x7a80, 0x3444, /* 978 */ 0x8024, 0x3000, 0x1bcc, 0xb010, 0x0024, 0x0000, 0x0024, 0x2801, /* 980 */ 0x6ed5, 0x0000, 0x0024, 0x34c3, 0x184c, 0x3470, 0x0024, 0x3e10, /* 988 */ 0x104c, 0x34c0, 0x4024, 0x2900, 0x9700, 0x3e00, 0x4024, 0x2801, /* 990 */ 0x6ec0, 0x36e3, 0x0024, 0x0000, 0x0801, 0x3413, 0x0024, 0x34f0, /* 998 */ 0x0024, 0x6012, 0x0024, 0x0000, 0x07c1, 0x2801, 0x6e08, 0x0000, /* 9a0 */ 0x0024, 0x6010, 0x114c, 0xb888, 0x32c0, 0x6402, 0x0024, 0x0000, /* 9a8 */ 0x0101, 0x2801, 0x5a98, 0x0000, 0x0024, 0x4090, 0x134c, 0x2401, /* 9b0 */ 0x59c0, 0x3009, 0x184c, 0x3430, 0x8024, 0x2900, 0x7140, 0x3e00, /* 9b8 */ 0x8024, 0x4c8e, 0x130c, 0x3400, 0x4024, 0x4142, 0x0024, 0xf400, /* 9c0 */ 0x4050, 0x3800, 0x0024, 0x3410, 0x4024, 0x4142, 0x0024, 0x6498, /* 9c8 */ 0x4050, 0x3009, 0x2007, 0x0000, 0x0101, 0x3433, 0x1bcc, 0x2902, /* 9d0 */ 0xd900, 0x3613, 0x0024, 0x0000, 0x0141, 0x6090, 0x118c, 0x2902, /* 9d8 */ 0xd900, 0x3ca0, 0x184c, 0x3473, 0x184c, 0xb888, 0x3380, 0x3400, /* 9e0 */ 0x0024, 0x6402, 0x0024, 0x0000, 0x0201, 0x2801, 0x6158, 0x0000, /* 9e8 */ 0x0024, 0x4090, 0x104c, 0x2401, 0x6080, 0x0000, 0x0024, 0x34a0, /* 9f0 */ 0x8024, 0x2900, 0x7140, 0x3e00, 0x8024, 0x0006, 0x0002, 0x4244, /* 9f8 */ 0x118c, 0x4244, 0x0024, 0x6498, 0x4095, 0x3009, 0x3440, 0x3009, /* a00 */ 0x37c1, 0x0000, 0x0201, 0x34f3, 0x0024, 0x0030, 0x0010, 0x3490, /* a08 */ 0x0024, 0x3e00, 0x138c, 0x2900, 0x7a80, 0x3444, 0x8024, 0x3000, /* a10 */ 0x1bcc, 0xb010, 0x0024, 0x0000, 0x0024, 0x2801, 0x6ed5, 0x4112, /* a18 */ 0x0024, 0x3463, 0x0024, 0x34a0, 0x0024, 0x6012, 0x0024, 0x0006, /* a20 */ 0x8111, 0x2801, 0x6a99, 0x0000, 0x0024, 0x3100, 0x11cc, 0x3490, /* a28 */ 0x4024, 0x4010, 0x0024, 0x0000, 0x0a01, 0x6012, 0x0024, 0x0006, /* a30 */ 0x8151, 0x2801, 0x6a98, 0x0000, 0x0024, 0x3613, 0x114c, 0x3101, /* a38 */ 0x3804, 0x3490, 0x8024, 0x6428, 0x138c, 0x3470, 0x8024, 0x3423, /* a40 */ 0x0024, 0x3420, 0xc024, 0x4234, 0x1241, 0x4380, 0x4092, 0x2902, /* a48 */ 0x8cc0, 0x0006, 0x0010, 0x2801, 0x6ec0, 0x3009, 0x1bcc, 0x0006, /* a50 */ 0x8151, 0x3613, 0x114c, 0x3101, 0x3804, 0x3490, 0x8024, 0x6428, /* a58 */ 0x138c, 0x3470, 0x8024, 0x3423, 0x0024, 0x3420, 0xc024, 0x4234, /* a60 */ 0x1241, 0x4380, 0x4092, 0x2902, 0x9680, 0x0006, 0x0010, 0x2801, /* a68 */ 0x6ec0, 0x3009, 0x1bcc, 0x0006, 0x8050, 0x6890, 0x0024, 0x3800, /* a70 */ 0x0024, 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f4, 0x5812, 0x36f1, /* a78 */ 0xd810, 0x36f1, 0x1806, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, /* a80 */ 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, /* a88 */ 0x9817, 0x0007, 0x0001, 0x85c7, 0x0006, 0x016e, 0x3613, 0x0024, /* a90 */ 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, /* a98 */ 0x0000, 0x800a, 0x3e10, 0x7802, 0x3e10, 0xf804, 0x0000, 0x3fc3, /* aa0 */ 0x3e11, 0x7806, 0x3e11, 0xf810, 0xbc82, 0x12cc, 0x3404, 0x0024, /* aa8 */ 0x3023, 0x0024, 0x3810, 0x0024, 0x38f0, 0x4024, 0x3454, 0x0024, /* ab0 */ 0x3810, 0x0024, 0x38f0, 0x4024, 0x2902, 0xd900, 0x0000, 0x0201, /* ab8 */ 0x0006, 0x9301, 0x4088, 0x134c, 0x3400, 0x8024, 0xd204, 0x0024, /* ac0 */ 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x3500, 0x0024, /* ac8 */ 0x3c30, 0x0024, 0x0000, 0x2000, 0xb400, 0x0024, 0x0000, 0x3001, /* ad0 */ 0x2801, 0x7c55, 0x0000, 0x3800, 0x0000, 0x0041, 0xfe42, 0x12cc, /* ad8 */ 0x48b2, 0x1090, 0x3810, 0x0024, 0x38f0, 0x4024, 0x2801, 0x9d40, /* ae0 */ 0x3430, 0x0024, 0xb400, 0x0024, 0x6012, 0x0024, 0x0000, 0x3801, /* ae8 */ 0x2801, 0x7f95, 0x0000, 0x3c00, 0x0000, 0x07c0, 0x0000, 0x0041, /* af0 */ 0xb400, 0x12cc, 0xfe02, 0x1150, 0x48b2, 0x0024, 0x689a, 0x2040, /* af8 */ 0x2801, 0x9bc0, 0x38f0, 0x4024, 0xb400, 0x0024, 0x6012, 0x0024, /* b00 */ 0x0000, 0x3c01, 0x2801, 0x8315, 0x0000, 0x3e00, 0x0000, 0x03c0, /* b08 */ 0x0000, 0x0085, 0x4592, 0x12cc, 0xb400, 0x1150, 0xfe02, 0x0024, /* b10 */ 0x48b2, 0x0024, 0x3810, 0x0024, 0x2801, 0x9bc0, 0x38f0, 0x4024, /* b18 */ 0xb400, 0x0024, 0x6012, 0x0024, 0x0000, 0x3e01, 0x2801, 0x8695, /* b20 */ 0x0000, 0x3f00, 0x0000, 0x01c0, 0xf20a, 0x12cc, 0xb400, 0x1150, /* b28 */ 0xf252, 0x0024, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, /* b30 */ 0x2801, 0x9bc0, 0x38f0, 0x4024, 0xb400, 0x130c, 0x6012, 0x0024, /* b38 */ 0x0000, 0x3f01, 0x2801, 0x8a15, 0x4390, 0x0024, 0x0000, 0x0041, /* b40 */ 0x0000, 0x0105, 0x4590, 0x13cc, 0xb400, 0x1150, 0xfe02, 0x0024, /* b48 */ 0x48b2, 0x0024, 0x3810, 0x0024, 0x2801, 0x9bc0, 0x38f0, 0x4024, /* b50 */ 0xb400, 0x0024, 0x6012, 0x1100, 0x0000, 0x01c1, 0x2801, 0x8d95, /* b58 */ 0x0000, 0x0024, 0x0000, 0x0041, 0x0000, 0x0145, 0x6890, 0x12cc, /* b60 */ 0xb400, 0x1150, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, /* b68 */ 0x2801, 0x9bc0, 0x38f0, 0x4024, 0x6012, 0x0024, 0x0000, 0x3f81, /* b70 */ 0x2801, 0x9015, 0xb430, 0x0024, 0x6012, 0x0024, 0x0000, 0x0024, /* b78 */ 0x2801, 0x9015, 0x0000, 0x0024, 0x2801, 0x9bc0, 0x0000, 0x0185, /* b80 */ 0x2801, 0x9d40, 0xc890, 0x0024, 0x0000, 0x3fc3, 0x0000, 0x0201, /* b88 */ 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, 0x9301, 0x4088, 0x134c, /* b90 */ 0x3400, 0x8024, 0xd204, 0x0024, 0xb234, 0x0024, 0x4122, 0x0024, /* b98 */ 0xf400, 0x4055, 0x0000, 0x2001, 0x3500, 0x0024, 0x3c30, 0x0024, /* ba0 */ 0x0000, 0x3000, 0xb400, 0x0024, 0x6012, 0x0024, 0x0000, 0x0182, /* ba8 */ 0x2801, 0x9605, 0x0000, 0x0024, 0x2801, 0x9d40, 0xc890, 0x0024, /* bb0 */ 0x459a, 0x12cc, 0x3404, 0x0024, 0x3023, 0x0024, 0x3010, 0x0024, /* bb8 */ 0x30d0, 0x4024, 0xac22, 0x0046, 0x003f, 0xf982, 0x3011, 0xc024, /* bc0 */ 0x0000, 0x0023, 0xaf2e, 0x0024, 0x0000, 0x0182, 0xccf2, 0x0024, /* bc8 */ 0x0000, 0x0fc6, 0x0000, 0x0047, 0xb46c, 0x2040, 0xfe6e, 0x23c1, /* bd0 */ 0x3454, 0x0024, 0x3010, 0x0024, 0x30f0, 0x4024, 0xac22, 0x0024, /* bd8 */ 0xccb2, 0x0024, 0x3810, 0x0024, 0x38f0, 0x4024, 0x458a, 0x0024, /* be0 */ 0x0000, 0x0201, 0x2801, 0x9115, 0x0000, 0x3fc3, 0x34d3, 0x0024, /* be8 */ 0x3430, 0x0024, 0x36f1, 0xd810, 0x36f1, 0x5806, 0x36f0, 0xd804, /* bf0 */ 0x36f0, 0x5802, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, /* bf8 */ 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x867e, 0x0006, /* c00 */ 0x076a, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, /* c08 */ 0xb814, 0x3675, 0x0024, 0x3633, 0x0024, 0x0000, 0x800a, 0x3e10, /* c10 */ 0x3801, 0x3e10, 0xb803, 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e14, /* c18 */ 0x3811, 0x3e14, 0xb813, 0x3e13, 0xf80e, 0x3e03, 0x4024, 0x2903, /* c20 */ 0x11c0, 0x0000, 0x0381, 0x000f, 0xff81, 0x6012, 0x0024, 0x0000, /* c28 */ 0x0201, 0x2801, 0xa5c5, 0x0000, 0x0024, 0x3613, 0x0024, 0x2902, /* c30 */ 0xd900, 0x0002, 0x8988, 0x0000, 0x0401, 0x0006, 0x8a10, 0x2900, /* c38 */ 0xbf40, 0xb880, 0x0024, 0xb880, 0x11cc, 0x3413, 0x184c, 0x3c90, /* c40 */ 0x0024, 0x2902, 0xd900, 0x34f3, 0x0024, 0x3473, 0x184c, 0x3c00, /* c48 */ 0x0000, 0x4080, 0x0024, 0x0006, 0x9301, 0x2801, 0xab45, 0x003f, /* c50 */ 0xfe04, 0x3490, 0x8024, 0xa244, 0x0024, 0x2902, 0xf4c0, 0xb880, /* c58 */ 0x0024, 0x2900, 0xbf40, 0x003f, 0xfe04, 0x3473, 0x184c, 0x0006, /* c60 */ 0x8091, 0x3413, 0x0024, 0x34f0, 0x8024, 0x3400, 0xc024, 0xa346, /* c68 */ 0x0024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, /* c70 */ 0x1042, 0xf400, 0x4055, 0x0006, 0x9301, 0x3500, 0x0024, 0xd024, /* c78 */ 0x3000, 0xb234, 0x0024, 0x4122, 0x0024, 0x6892, 0x4055, 0x3500, /* c80 */ 0x0024, 0x3cf0, 0x0024, 0x34a0, 0x0024, 0xf100, 0x0024, 0xb010, /* c88 */ 0x0024, 0x3c60, 0x0024, 0x34b0, 0x0024, 0xb010, 0x0024, 0x0000, /* c90 */ 0x0201, 0x2902, 0xd900, 0x3ce0, 0x0024, 0x0006, 0x9301, 0x3473, /* c98 */ 0x184c, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3410, 0xc024, 0xd234, /* ca0 */ 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, /* ca8 */ 0x4055, 0x003f, 0xff01, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x34c0, /* cb0 */ 0x0024, 0xa010, 0x0024, 0x0000, 0x03c1, 0x3c40, 0x0024, 0x34d0, /* cb8 */ 0x0024, 0xb010, 0x0024, 0x0000, 0x0201, 0x2902, 0xd900, 0x3cc0, /* cc0 */ 0x0024, 0x0006, 0x9301, 0x3473, 0x0024, 0x3c10, 0x0024, 0x34f0, /* cc8 */ 0x8024, 0x3410, 0xc024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, /* cd0 */ 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x003f, 0xff01, 0x3500, /* cd8 */ 0x0024, 0x3cf0, 0x0024, 0x3400, 0x0024, 0xa010, 0x0024, 0x0000, /* ce0 */ 0x01c1, 0x3900, 0x0024, 0x34e0, 0x0024, 0xf100, 0x0024, 0xb010, /* ce8 */ 0x0024, 0x6892, 0x3080, 0x34f0, 0x0024, 0xb010, 0x0024, 0x3cb0, /* cf0 */ 0x0024, 0x3450, 0x0024, 0x34a0, 0x4024, 0xc010, 0x0024, 0x0000, /* cf8 */ 0x0181, 0x2801, 0xbfc5, 0x3100, 0x0024, 0x6890, 0x07cc, 0x2802, /* d00 */ 0x8980, 0x3900, 0x0024, 0x6012, 0x0024, 0x0000, 0x0201, 0x2801, /* d08 */ 0xc158, 0x0000, 0x0024, 0x2801, 0xc440, 0x6090, 0x044c, 0x6012, /* d10 */ 0x0024, 0x0000, 0x0281, 0x2801, 0xc388, 0x6012, 0x0024, 0x0000, /* d18 */ 0x0080, 0x2801, 0xc399, 0x0000, 0x0024, 0x2801, 0xc440, 0x3113, /* d20 */ 0x0024, 0x6890, 0x07cc, 0x2802, 0x8980, 0x3900, 0x0024, 0x0000, /* d28 */ 0x0201, 0x3900, 0x114c, 0x34b0, 0x0024, 0x6012, 0x0024, 0x0006, /* d30 */ 0x0601, 0x2801, 0xce81, 0x4012, 0x0024, 0xf400, 0x4057, 0x3702, /* d38 */ 0x0024, 0x2000, 0x0000, 0x0000, 0x0024, 0x2801, 0xce80, 0x0000, /* d40 */ 0x0024, 0x0000, 0x0200, 0x0006, 0x8110, 0x2801, 0xce80, 0x3800, /* d48 */ 0x0024, 0x0000, 0x0300, 0x0006, 0x8110, 0x2801, 0xce80, 0x3800, /* d50 */ 0x0024, 0x0006, 0x8050, 0x6890, 0x0024, 0x2802, 0x8980, 0x3800, /* d58 */ 0x0024, 0x0000, 0x0400, 0x0006, 0x8110, 0x2801, 0xce80, 0x3800, /* d60 */ 0x0024, 0x0000, 0x0500, 0x0006, 0x8110, 0x2801, 0xce80, 0x3800, /* d68 */ 0x0024, 0x0000, 0x0600, 0x0006, 0x8110, 0x2801, 0xce80, 0x3800, /* d70 */ 0x0024, 0x0006, 0x8050, 0x6890, 0x0024, 0x2802, 0x8980, 0x3800, /* d78 */ 0x0024, 0x3423, 0x184c, 0x3460, 0x0024, 0x4080, 0x0024, 0x0006, /* d80 */ 0x8200, 0x2801, 0xd3c5, 0x3e10, 0x0024, 0x0000, 0x01c0, 0x3e10, /* d88 */ 0x0024, 0x3490, 0x0024, 0x2901, 0x71c0, 0x3e00, 0x13cc, 0x36d3, /* d90 */ 0x11cc, 0x3413, 0x0024, 0x4080, 0x3240, 0x34f3, 0x0024, 0x2801, /* d98 */ 0xd798, 0x0000, 0x0024, 0x0006, 0x8010, 0x6890, 0x0024, 0x2802, /* da0 */ 0x8980, 0x3800, 0x0024, 0x0000, 0x0180, 0x3e10, 0x0024, 0x3490, /* da8 */ 0x0024, 0x2901, 0x71c0, 0x3e00, 0x13cc, 0x36d3, 0x11cc, 0x3413, /* db0 */ 0x0024, 0x4080, 0x3240, 0x34f3, 0x0024, 0x2801, 0xd798, 0x0000, /* db8 */ 0x0024, 0x0006, 0x8010, 0x6890, 0x0024, 0x2802, 0x8980, 0x3800, /* dc0 */ 0x0024, 0x0000, 0x0201, 0x3433, 0x0024, 0x34d0, 0x0024, 0x6012, /* dc8 */ 0x0024, 0x0006, 0x0801, 0x2801, 0xe981, 0x4012, 0x0024, 0xf400, /* dd0 */ 0x4057, 0x3702, 0x0024, 0x2000, 0x0000, 0x0000, 0x0024, 0x0006, /* dd8 */ 0x8050, 0x6890, 0x0024, 0x2802, 0x8980, 0x3800, 0x0024, 0x0000, /* de0 */ 0x3000, 0x2801, 0xeb40, 0x0006, 0x8150, 0x0000, 0x9000, 0x0006, /* de8 */ 0x8150, 0x3433, 0x0024, 0x34d0, 0x4024, 0x4192, 0x0024, 0x4192, /* df0 */ 0x0024, 0x2801, 0xeb40, 0xa010, 0x0024, 0x0000, 0x0201, 0x0006, /* df8 */ 0x8150, 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, 0x9301, 0x3473, /* e00 */ 0x0024, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3410, 0xc024, 0xd234, /* e08 */ 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, /* e10 */ 0x4055, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x3490, 0x0024, 0x2801, /* e18 */ 0xeb40, 0x6090, 0x0024, 0x003f, 0xfe04, 0x0000, 0x0401, 0x0006, /* e20 */ 0x8150, 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, 0x9301, 0x3473, /* e28 */ 0x0024, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3400, 0xc024, 0xa346, /* e30 */ 0x0024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, /* e38 */ 0x1042, 0xf400, 0x4055, 0x0006, 0x9301, 0x3500, 0x0024, 0xd024, /* e40 */ 0x3000, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x3500, /* e48 */ 0x0024, 0x3cf0, 0x0024, 0x3490, 0x0024, 0x2801, 0xeb40, 0x6090, /* e50 */ 0x0024, 0x0000, 0x4000, 0x0000, 0x0202, 0x0006, 0x8150, 0x3433, /* e58 */ 0x0024, 0x34d0, 0x4024, 0x6122, 0x0024, 0xa010, 0x0024, 0x0004, /* e60 */ 0x8001, 0x3800, 0x110c, 0x0006, 0x8150, 0x3000, 0x0024, 0x6012, /* e68 */ 0x1300, 0x0000, 0x0401, 0x2801, 0xee09, 0x0000, 0x0024, 0x6890, /* e70 */ 0x82cc, 0x2802, 0x8980, 0x3800, 0x0024, 0x6012, 0x0024, 0x0006, /* e78 */ 0x0a01, 0x2802, 0x1581, 0x4012, 0x0024, 0xf400, 0x4057, 0x3702, /* e80 */ 0x0024, 0x2000, 0x0000, 0x0000, 0x0024, 0x2802, 0x1580, 0x0000, /* e88 */ 0x0024, 0x0016, 0x2200, 0x0006, 0x8190, 0x6892, 0x2040, 0x2802, /* e90 */ 0x1580, 0x38f0, 0x4024, 0x002c, 0x4400, 0x0000, 0x0081, 0x0006, /* e98 */ 0x8190, 0x3810, 0x0024, 0x2802, 0x1580, 0x38f0, 0x4024, 0x003b, /* ea0 */ 0x8000, 0x0000, 0x0081, 0x0006, 0x8190, 0x3810, 0x0024, 0x2802, /* ea8 */ 0x1580, 0x38f0, 0x4024, 0x0007, 0xd000, 0x0006, 0x8190, 0xb882, /* eb0 */ 0x2040, 0x2802, 0x1580, 0x38f0, 0x4024, 0x000f, 0xa000, 0x0006, /* eb8 */ 0x8190, 0xb882, 0x2040, 0x2802, 0x1580, 0x38f0, 0x4024, 0x0015, /* ec0 */ 0x8880, 0x0006, 0x8190, 0xb882, 0x2040, 0x2802, 0x1580, 0x38f0, /* ec8 */ 0x4024, 0x0017, 0x7000, 0x0006, 0x8190, 0xb882, 0x2040, 0x2802, /* ed0 */ 0x1580, 0x38f0, 0x4024, 0x001f, 0x4000, 0x0006, 0x8190, 0xb882, /* ed8 */ 0x2040, 0x2802, 0x1580, 0x38f0, 0x4024, 0x002b, 0x1100, 0x0006, /* ee0 */ 0x8190, 0xb882, 0x2040, 0x2802, 0x1580, 0x38f0, 0x4024, 0x002e, /* ee8 */ 0xe000, 0x0006, 0x8190, 0xb882, 0x2040, 0x2802, 0x1580, 0x38f0, /* ef0 */ 0x4024, 0x001d, 0xc000, 0x0006, 0x8190, 0x6892, 0x2040, 0x2802, /* ef8 */ 0x1580, 0x38f0, 0x4024, 0x0006, 0x8190, 0x0000, 0x0201, 0x0000, /* f00 */ 0xfa04, 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, 0x9301, 0xb88a, /* f08 */ 0x11cc, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3410, 0xc024, 0xd234, /* f10 */ 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, /* f18 */ 0x4055, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x3490, 0x0024, 0xfe50, /* f20 */ 0x4005, 0x48b2, 0x0024, 0xfeca, 0x0024, 0x40b2, 0x0024, 0x3810, /* f28 */ 0x0024, 0x2802, 0x1580, 0x38f0, 0x4024, 0x003f, 0xfe04, 0x0000, /* f30 */ 0x0401, 0x0006, 0x8190, 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, /* f38 */ 0x9301, 0x3473, 0x0024, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3400, /* f40 */ 0xc024, 0xa346, 0x0024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, /* f48 */ 0x0024, 0x4122, 0x1042, 0xf400, 0x4055, 0x0006, 0x9301, 0x3500, /* f50 */ 0x0024, 0xd024, 0x3000, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, /* f58 */ 0x4055, 0x0000, 0x0041, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x3490, /* f60 */ 0x0024, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, 0x2802, /* f68 */ 0x1580, 0x38f0, 0x4024, 0x003f, 0xfe04, 0x0000, 0x0401, 0x0006, /* f70 */ 0x8190, 0x2902, 0xd900, 0x3613, 0x0024, 0x0006, 0x9301, 0x3473, /* f78 */ 0x0024, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3400, 0xc024, 0xa346, /* f80 */ 0x0024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, /* f88 */ 0x1042, 0xf400, 0x4055, 0x0006, 0x9301, 0x3500, 0x0024, 0xd024, /* f90 */ 0x3000, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x3500, /* f98 */ 0x0024, 0x3cf0, 0x0024, 0x0000, 0x0280, 0x3490, 0x4024, 0xfe02, /* fa0 */ 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, 0x2802, 0x1580, 0x38f0, /* fa8 */ 0x4024, 0x0006, 0x8010, 0x6890, 0x0024, 0x2802, 0x8980, 0x3800, /* fb0 */ 0x0024, 0x0000, 0x0201, 0x2902, 0xd900, 0x3613, 0x11cc, 0x3c10, /* fb8 */ 0x0024, 0x3490, 0x4024, 0x6014, 0x13cc, 0x0000, 0x0081, 0x2802, /* fc0 */ 0x18c5, 0x0006, 0x80d0, 0x0006, 0x8010, 0x6890, 0x0024, 0x2802, /* fc8 */ 0x8980, 0x3800, 0x0024, 0x3010, 0x0024, 0x6012, 0x0024, 0x0000, /* fd0 */ 0x0241, 0x2802, 0x3849, 0x0006, 0x8112, 0x0008, 0x0001, 0x3009, /* fd8 */ 0x184c, 0x3e10, 0x4024, 0x3000, 0x8024, 0x2901, 0x2b00, 0x3e00, /* fe0 */ 0x8024, 0x36f3, 0x004c, 0x3000, 0x3844, 0x0008, 0x0010, 0xb884, /* fe8 */ 0x3840, 0x0000, 0x0400, 0x3e00, 0x8024, 0x3201, 0x0024, 0x2902, /* ff0 */ 0xb900, 0x6408, 0x4091, 0x0001, 0x0000, 0x000b, 0x8011, 0x0004, /* ff8 */ 0x0010, 0x36e3, 0x0024, 0x2915, 0x8300, 0x3009, 0x1bc4, 0x000b, /* 1000 */ 0x8000, 0x3613, 0x0024, 0x3e10, 0x0024, 0x3200, 0xc024, 0x2901, /* 1008 */ 0x2b00, 0x3e00, 0xc024, 0x36f3, 0x084c, 0x32f0, 0xf844, 0x3e10, /* 1010 */ 0xc024, 0x3e00, 0x8024, 0x2b01, 0x0091, 0x0000, 0x0400, 0xf204, /* 1018 */ 0x0804, 0x2902, 0xb900, 0x6408, 0x0024, 0x000b, 0x8011, 0x0008, /* 1020 */ 0x0010, 0x0000, 0x0084, 0x36d3, 0x0024, 0x2915, 0x8300, 0x0003, /* 1028 */ 0x8000, 0x0005, 0x0010, 0x0001, 0x0000, 0x2915, 0x8300, 0x000f, /* 1030 */ 0x0011, 0x1006, 0x0800, 0x32f3, 0x11cc, 0x3200, 0xd08c, 0xff34, /* 1038 */ 0x0024, 0x48b6, 0x0024, 0x4020, 0x0024, 0x3c90, 0x0024, 0x2802, /* 1040 */ 0x3480, 0x34e3, 0x0024, 0x0006, 0x8112, 0x3613, 0x0024, 0x3e10, /* 1048 */ 0x0024, 0x3000, 0x4024, 0x2901, 0x2b00, 0x3e00, 0x4024, 0x36f3, /* 1050 */ 0x004c, 0x3000, 0x7844, 0xb884, 0x3841, 0x2b01, 0x0091, 0x0000, /* 1058 */ 0x0400, 0x3e00, 0x8024, 0x3201, 0x0024, 0x2902, 0xb900, 0x6408, /* 1060 */ 0x0024, 0x0003, 0x8000, 0x000b, 0x8011, 0x0008, 0x0010, 0x36e3, /* 1068 */ 0x11cc, 0x3423, 0x0024, 0x3494, 0xc024, 0x2902, 0xe040, 0x3301, /* 1070 */ 0x138c, 0x0001, 0x0000, 0x000f, 0x0011, 0x0004, 0x0010, 0x2902, /* 1078 */ 0xe580, 0x3301, 0x0024, 0xf400, 0x4510, 0x000b, 0x8011, 0x3073, /* 1080 */ 0x0024, 0x3023, 0x0024, 0x3000, 0x0024, 0x6090, 0x0024, 0x3800, /* 1088 */ 0x0024, 0x0003, 0x8000, 0x3004, 0xc024, 0x0008, 0x0010, 0x2902, /* 1090 */ 0xe580, 0x3301, 0x0024, 0x0001, 0x0000, 0x000f, 0x0011, 0x0005, /* 1098 */ 0x0010, 0x2902, 0xe580, 0x3301, 0x0024, 0xf400, 0x4510, 0x3073, /* 10a0 */ 0x1bc4, 0x6498, 0x008c, 0x3000, 0x0024, 0x6090, 0x0024, 0x3800, /* 10a8 */ 0x0024, 0x0006, 0x80d0, 0x3000, 0x0024, 0x6402, 0x0024, 0x0006, /* 10b0 */ 0x8110, 0x2802, 0x27c8, 0x000b, 0x8000, 0x000b, 0x8010, 0x0001, /* 10b8 */ 0x0000, 0x2903, 0x2ac0, 0x0004, 0x0011, 0x0005, 0x0011, 0x000b, /* 10c0 */ 0x8010, 0x0001, 0x0000, 0x291f, 0xc6c0, 0x0002, 0x4988, 0x30e1, /* 10c8 */ 0x184c, 0x3000, 0x0024, 0x6012, 0x0024, 0x0008, 0x0001, 0x2802, /* 10d0 */ 0x3a15, 0x0000, 0x0024, 0x6498, 0x0024, 0x3e10, 0x4024, 0x0000, /* 10d8 */ 0x0081, 0x2901, 0x2b00, 0x3e01, 0x0024, 0x36e3, 0x004c, 0x3000, /* 10e0 */ 0x0024, 0x6012, 0x0024, 0x000b, 0x8011, 0x2802, 0x4655, 0x0006, /* 10e8 */ 0x8112, 0x0000, 0x0201, 0x0004, 0x0010, 0x2915, 0x8300, 0x0001, /* 10f0 */ 0x0000, 0x000b, 0x8011, 0x0005, 0x0010, 0x291f, 0xc6c0, 0x0001, /* 10f8 */ 0x0000, 0x0006, 0x8110, 0x30e1, 0x0024, 0x3000, 0x0024, 0x6012, /* 1100 */ 0x0024, 0x0000, 0x0281, 0x2802, 0x4145, 0x6012, 0x0024, 0x000b, /* 1108 */ 0x8001, 0x2802, 0x41d5, 0x3613, 0x0024, 0x36f3, 0x0024, 0x000b, /* 1110 */ 0x8001, 0x6498, 0x184c, 0x0006, 0x8112, 0x0003, 0x8000, 0x3e10, /* 1118 */ 0x4024, 0x2901, 0x2b00, 0x3e01, 0x0024, 0x36f3, 0x0024, 0x3009, /* 1120 */ 0x3844, 0x3e10, 0x0024, 0x0000, 0x0400, 0x3000, 0x8024, 0x0008, /* 1128 */ 0x0010, 0x3e00, 0x8024, 0x3201, 0x0024, 0x2902, 0xb900, 0x6408, /* 1130 */ 0x4051, 0x36e3, 0x0024, 0x2802, 0x4980, 0x3009, 0x1bc4, 0x0000, /* 1138 */ 0x0400, 0x0000, 0x0011, 0x3613, 0x008c, 0x30d0, 0x7844, 0x3e10, /* 1140 */ 0x4024, 0x3000, 0x8024, 0x0008, 0x0010, 0x3e00, 0x8024, 0x3201, /* 1148 */ 0x0024, 0x2902, 0xb900, 0x6408, 0x0024, 0x36e3, 0x0024, 0x3009, /* 1150 */ 0x1bc4, 0x0006, 0x8a10, 0x0000, 0x01c1, 0x3009, 0x0000, 0xb010, /* 1158 */ 0x0024, 0x0000, 0x0024, 0x2802, 0x4d85, 0x6192, 0x0024, 0x2902, /* 1160 */ 0xd900, 0x6102, 0x184c, 0x4088, 0x0024, 0x0000, 0x0024, 0x2802, /* 1168 */ 0x4d85, 0x0000, 0x0024, 0x0006, 0x8051, 0x6890, 0x0024, 0x3900, /* 1170 */ 0x0024, 0x3009, 0x0000, 0x4080, 0x0024, 0x0000, 0x0024, 0x2902, /* 1178 */ 0xf405, 0x0002, 0x5248, 0x0006, 0x9f92, 0x0000, 0x4003, 0x3009, /* 1180 */ 0x0811, 0x3100, 0x8024, 0xffa6, 0x0024, 0x48b6, 0x0024, 0x2902, /* 1188 */ 0xf400, 0x4384, 0x0024, 0x2902, 0xf4c0, 0x3613, 0x0024, 0x2900, /* 1190 */ 0xbf40, 0x0000, 0x0024, 0x2902, 0xf400, 0x0000, 0x0024, 0x0000, /* 1198 */ 0x0401, 0x3473, 0x184c, 0x2902, 0xd900, 0x3c90, 0x0024, 0x3473, /* 11a0 */ 0x0024, 0x3413, 0x0024, 0x3c90, 0x0024, 0x290b, 0x1400, 0x34f3, /* 11a8 */ 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, 0x2802, 0x8615, 0x0000, /* 11b0 */ 0x0024, 0x3473, 0x0024, 0x3410, 0x0024, 0x34a0, 0x4024, 0x6014, /* 11b8 */ 0x1380, 0x0000, 0x0024, 0x2802, 0x5ac5, 0x4080, 0x0024, 0x0006, /* 11c0 */ 0x8011, 0x6890, 0x0024, 0xb882, 0x2400, 0x0004, 0x8000, 0x2914, /* 11c8 */ 0xbec0, 0x0008, 0x0010, 0x0000, 0x0400, 0x3143, 0x108c, 0x6890, /* 11d0 */ 0x27c0, 0x3920, 0x0024, 0x0004, 0x8000, 0x3900, 0x0024, 0x34e0, /* 11d8 */ 0x0024, 0x4080, 0x0024, 0x0006, 0x8150, 0x2802, 0x5ec5, 0x0000, /* 11e0 */ 0x3200, 0x0000, 0x0142, 0x0006, 0x8210, 0x3613, 0x0024, 0x3e00, /* 11e8 */ 0x7800, 0x3011, 0x8024, 0x30d1, 0xc024, 0xfef4, 0x4087, 0x48b6, /* 11f0 */ 0x0040, 0xfeee, 0x03c1, 0x2914, 0xa580, 0x42b6, 0x0024, 0x2802, /* 11f8 */ 0x62c0, 0x0007, 0x89d0, 0x0000, 0x0142, 0x3613, 0x0024, 0x3e00, /* 1200 */ 0x7800, 0x3031, 0x8024, 0x3010, 0x0024, 0x30d0, 0x4024, 0xfe9c, /* 1208 */ 0x4181, 0x48be, 0x0024, 0xfe82, 0x0040, 0x46be, 0x03c1, 0xfef4, /* 1210 */ 0x4087, 0x48b6, 0x0024, 0xfeee, 0x0024, 0x2914, 0xa580, 0x42b6, /* 1218 */ 0x0024, 0x0007, 0x89d0, 0x0006, 0x8191, 0x4c8a, 0x9800, 0xfed0, /* 1220 */ 0x4005, 0x48b2, 0x0024, 0xfeca, 0x0024, 0x40b2, 0x0024, 0x3810, /* 1228 */ 0x0024, 0x38f0, 0x4024, 0x3111, 0x8024, 0x468a, 0x0707, 0x2908, /* 1230 */ 0xbe80, 0x3101, 0x0024, 0x3123, 0x11cc, 0x3100, 0x108c, 0x3009, /* 1238 */ 0x3000, 0x0004, 0x8000, 0x3009, 0x1241, 0x6014, 0x138c, 0x000b, /* 1240 */ 0x8011, 0x2802, 0x6901, 0x0000, 0x0024, 0x3473, 0x0024, 0x3423, /* 1248 */ 0x0024, 0x3009, 0x3240, 0x34e3, 0x0024, 0x2802, 0x8440, 0x0008, /* 1250 */ 0x0012, 0x0000, 0x0081, 0x2802, 0x6a89, 0x0006, 0x80d0, 0xf400, /* 1258 */ 0x4004, 0x3000, 0x0024, 0x6012, 0x0024, 0x0000, 0x0005, 0x2802, /* 1260 */ 0x7009, 0x0000, 0x0024, 0x6540, 0x0024, 0x0000, 0x0024, 0x2802, /* 1268 */ 0x8058, 0x4490, 0x0024, 0x2402, 0x6f40, 0x0000, 0x0024, 0x0006, /* 1270 */ 0x8301, 0x4554, 0x0800, 0x4122, 0x0024, 0x659a, 0x4055, 0x0006, /* 1278 */ 0x8341, 0x3d00, 0x0840, 0x4122, 0x0024, 0xf400, 0x4055, 0x3d00, /* 1280 */ 0x0024, 0x2802, 0x8040, 0x0000, 0x0024, 0x4090, 0x0024, 0xf400, /* 1288 */ 0x4480, 0x2802, 0x7555, 0x000b, 0x8001, 0x6540, 0x0024, 0x0000, /* 1290 */ 0x0024, 0x2802, 0x8058, 0x4490, 0x0024, 0x2402, 0x7480, 0x0000, /* 1298 */ 0x0024, 0x0006, 0x8301, 0x4554, 0x0800, 0x4122, 0x0024, 0x659a, /* 12a0 */ 0x4055, 0x0006, 0x8341, 0x4122, 0x3400, 0xf400, 0x4055, 0x3210, /* 12a8 */ 0x0024, 0x3d00, 0x0024, 0x2802, 0x8040, 0x0000, 0x0024, 0x6014, /* 12b0 */ 0x0024, 0x0001, 0x0000, 0x2802, 0x7c95, 0x0003, 0x8001, 0x0008, /* 12b8 */ 0x0012, 0x0008, 0x0010, 0x0006, 0x8153, 0x3613, 0x0024, 0x3009, /* 12c0 */ 0x3811, 0x2903, 0x2ac0, 0x0004, 0x0011, 0x0008, 0x0010, 0x0001, /* 12c8 */ 0x0000, 0x291f, 0xc6c0, 0x0005, 0x0011, 0x000f, 0x0011, 0x0008, /* 12d0 */ 0x0010, 0x33d0, 0x184c, 0x6010, 0xb844, 0x3e10, 0x0024, 0x0000, /* 12d8 */ 0x0400, 0x3320, 0x4024, 0x3e00, 0x4024, 0x3301, 0x0024, 0x2902, /* 12e0 */ 0xb900, 0x6408, 0x0024, 0x36e3, 0x0024, 0x3009, 0x1bc4, 0x3009, /* 12e8 */ 0x1bd1, 0x6540, 0x0024, 0x0000, 0x0024, 0x2802, 0x8058, 0x4490, /* 12f0 */ 0x0024, 0x2402, 0x8000, 0x0000, 0x0024, 0x0006, 0x8301, 0x4554, /* 12f8 */ 0x0840, 0x4122, 0x0024, 0x659a, 0x4055, 0x0006, 0x8341, 0x4122, /* 1300 */ 0x3400, 0xf400, 0x4055, 0x3110, 0x0024, 0x3d00, 0x0024, 0xf400, /* 1308 */ 0x4510, 0x0030, 0x0013, 0x3073, 0x184c, 0x3e11, 0x008c, 0x3009, /* 1310 */ 0x0001, 0x6140, 0x0024, 0x0000, 0x0201, 0x3009, 0x2000, 0x0006, /* 1318 */ 0x8300, 0x290c, 0x7300, 0x3e10, 0x0024, 0x3300, 0x1b8c, 0xb010, /* 1320 */ 0x0024, 0x0000, 0x0024, 0x2802, 0x8615, 0x0000, 0x0024, 0x3473, /* 1328 */ 0x0024, 0x3423, 0x0024, 0x3009, 0x1240, 0x4080, 0x138c, 0x0000, /* 1330 */ 0x0804, 0x2802, 0x6995, 0x6402, 0x0024, 0x0006, 0xd312, 0x0006, /* 1338 */ 0xd310, 0x0006, 0x8191, 0x3010, 0x984c, 0x30f0, 0xc024, 0x0000, /* 1340 */ 0x0021, 0xf2d6, 0x07c6, 0x290a, 0xf5c0, 0x4682, 0x0400, 0x6894, /* 1348 */ 0x0840, 0xb886, 0x0bc1, 0xbcd6, 0x0024, 0x3a10, 0x8024, 0x3af0, /* 1350 */ 0xc024, 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f4, 0x9813, 0x36f4, /* 1358 */ 0x1811, 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, /* 1360 */ 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, /* 1368 */ 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8280, 0x0006, 0x00d2, /* 1370 */ 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, /* 1378 */ 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x0019, 0x9300, /* 1380 */ 0x3e14, 0x3811, 0x0030, 0x0250, 0x3e04, 0xb813, 0x2902, 0xf1c0, /* 1388 */ 0x3800, 0x0024, 0x2903, 0x05c0, 0x0000, 0x0300, 0xb882, 0x0024, /* 1390 */ 0x2914, 0xbec0, 0x0006, 0x8010, 0x0000, 0x1540, 0x0007, 0x8190, /* 1398 */ 0x2900, 0x6700, 0x3800, 0x0024, 0x4080, 0x0024, 0x0006, 0x8011, /* 13a0 */ 0x2800, 0xabd5, 0x0000, 0x0024, 0x3100, 0x0024, 0x4080, 0x0024, /* 13a8 */ 0x0030, 0x0010, 0x2800, 0xabd5, 0x0000, 0x0201, 0x3000, 0x0024, /* 13b0 */ 0xb010, 0x0024, 0x0000, 0x0024, 0x2800, 0xabd5, 0x0000, 0x0024, /* 13b8 */ 0x2900, 0x6700, 0x0000, 0x0024, 0x4080, 0x0024, 0x0006, 0x8010, /* 13c0 */ 0x2800, 0xabd5, 0x0000, 0x0024, 0x3000, 0x0024, 0x4080, 0x0024, /* 13c8 */ 0x0000, 0x0201, 0x2800, 0xa7c5, 0x0030, 0x0010, 0x0030, 0x0010, /* 13d0 */ 0x0000, 0x0201, 0x3000, 0x0024, 0xb010, 0x0024, 0x0000, 0x0024, /* 13d8 */ 0x2900, 0xbed5, 0x0000, 0xb488, 0x0006, 0x8011, 0x3100, 0x0024, /* 13e0 */ 0x4080, 0x0024, 0x0000, 0x0024, 0x2800, 0xb2c5, 0x0000, 0x0024, /* 13e8 */ 0x0007, 0x8a52, 0x3200, 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, /* 13f0 */ 0x2800, 0xb2c9, 0x0000, 0x0024, 0xf292, 0x0800, 0x6012, 0x0024, /* 13f8 */ 0x0000, 0x0000, 0x2800, 0xb285, 0x0000, 0x0024, 0x3200, 0x0024, /* 1400 */ 0x4090, 0x0024, 0xb880, 0x2800, 0x3900, 0x0024, 0x3100, 0x0024, /* 1408 */ 0x4080, 0x0024, 0x0000, 0x0024, 0x2901, 0x9f85, 0x0000, 0xabc8, /* 1410 */ 0x2900, 0xbec0, 0x0000, 0x0024, 0x0000, 0x0010, 0x0006, 0x9f51, /* 1418 */ 0x0006, 0x9f92, 0x0030, 0x0493, 0x0000, 0x0201, 0x6890, 0xa410, /* 1420 */ 0x3b00, 0x2810, 0x0006, 0x8a10, 0x3009, 0x0000, 0x6012, 0x0024, /* 1428 */ 0x0006, 0x9fd0, 0x2800, 0xb808, 0xb880, 0x0024, 0x6890, 0x0024, /* 1430 */ 0x3009, 0x2000, 0x36f4, 0x9813, 0x36f4, 0x1811, 0x36f0, 0x1801, /* 1438 */ 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, /* 1440 */ 0x36f2, 0x9817, 0x0007, 0x0001, 0x5840, 0x0006, 0x0001, 0x0001, /* 1448 */ 0x0006, 0x8007, 0x0000, 0x0006, 0x0018, 0x0002, 0x0000, 0xffff, /* 1450 */ 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x0000, 0xfffd, /* 1458 */ 0xffff, 0x0001, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0xfffa, /* 1460 */ 0xffff, 0x0004, 0x0000, 0xffff, 0xffff, 0x0007, 0x0001, 0x8a33, /* 1468 */ 0x0006, 0x004e, 0x3613, 0x0024, 0x3e12, 0xb815, 0x0000, 0x800a, /* 1470 */ 0x3e14, 0x7813, 0x3e10, 0xb803, 0x3e11, 0x3805, 0x3e11, 0xb807, /* 1478 */ 0x3e13, 0xf80e, 0x6812, 0x0024, 0x3e03, 0x7810, 0x0fff, 0xffd3, /* 1480 */ 0x0000, 0x0091, 0xbd86, 0x9850, 0x3e10, 0x3804, 0x3e00, 0x7812, /* 1488 */ 0xbe8a, 0x8bcc, 0x409e, 0x8086, 0x2402, 0x91c7, 0xfe49, 0x2821, /* 1490 */ 0x526a, 0x8801, 0x5c87, 0x280e, 0x4eba, 0x9812, 0x4286, 0x40e1, /* 1498 */ 0xb284, 0x1bc1, 0x4de6, 0x0024, 0xad17, 0x2627, 0x4fde, 0x9804, /* 14a0 */ 0x4498, 0x1bc0, 0x0000, 0x0024, 0x2802, 0x8fd5, 0x3a11, 0xa807, /* 14a8 */ 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f1, 0x9807, 0x36f1, 0x1805, /* 14b0 */ 0x36f0, 0x9803, 0x36f4, 0x5813, 0x2000, 0x0000, 0x36f2, 0x9815, /* 14b8 */ 0x0007, 0x0001, 0x8a5a, 0x0006, 0x0056, 0x3613, 0x0024, 0x3e12, /* 14c0 */ 0xb815, 0x0000, 0x800a, 0x3e10, 0xb803, 0x3e11, 0x3805, 0x3e11, /* 14c8 */ 0xb807, 0x3e13, 0xf80e, 0x6812, 0x0024, 0x3e03, 0x7810, 0x3009, /* 14d0 */ 0x1850, 0x3e10, 0x3804, 0x3e10, 0x7812, 0x32f3, 0x0024, 0xbd86, /* 14d8 */ 0x0024, 0x4091, 0xe2e3, 0x3009, 0x0046, 0x2402, 0x9d40, 0x3009, /* 14e0 */ 0x0047, 0x32f0, 0x0801, 0xfe1f, 0x6465, 0x5e8a, 0x0024, 0x44ba, /* 14e8 */ 0x0024, 0xfee2, 0x0024, 0x5d8a, 0x1800, 0x4482, 0x4160, 0x48ba, /* 14f0 */ 0x8046, 0x4dc6, 0x1822, 0x4de6, 0x8047, 0x36f3, 0x0024, 0x36f0, /* 14f8 */ 0x5812, 0xad17, 0x2627, 0x4fde, 0x9804, 0x4498, 0x1bc0, 0x0000, /* 1500 */ 0x0024, 0x2802, 0x98d5, 0x3a11, 0xa807, 0x36f3, 0x4024, 0x36f3, /* 1508 */ 0xd80e, 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x2000, /* 1510 */ 0x0000, 0x36f2, 0x9815, 0x0007, 0x0001, 0x8a85, 0x0006, 0x0048, /* 1518 */ 0x3613, 0x0024, 0x3e10, 0xb810, 0x3e11, 0x3805, 0x3e02, 0x0024, /* 1520 */ 0x0030, 0x0010, 0xce9a, 0x0002, 0x0000, 0x0200, 0x2902, 0xaa40, /* 1528 */ 0xb024, 0x0024, 0xc020, 0x0024, 0x0000, 0x0200, 0x2802, 0xa305, /* 1530 */ 0x6e9a, 0x0002, 0x4182, 0x0024, 0x0000, 0x0400, 0x2802, 0xa8c5, /* 1538 */ 0xae1a, 0x0024, 0x6104, 0x984c, 0x0000, 0x0024, 0x2902, 0xd909, /* 1540 */ 0x0002, 0xa888, 0x6103, 0xe4e5, 0x2902, 0xd900, 0x408a, 0x188c, /* 1548 */ 0x2902, 0xd900, 0x408a, 0x4141, 0x4583, 0x6465, 0x2802, 0xa8c0, /* 1550 */ 0xceca, 0x1bcc, 0xc408, 0x0024, 0xf2e2, 0x1bc8, 0x36f1, 0x1805, /* 1558 */ 0x2000, 0x0011, 0x36f0, 0x9810, 0x2000, 0x0000, 0xdc92, 0x0024, /* 1560 */ 0x0007, 0x0001, 0x8aa9, 0x0006, 0x0076, 0x0006, 0x8a17, 0x3613, /* 1568 */ 0x1c00, 0x6093, 0xe1e3, 0x0000, 0x03c3, 0x0006, 0x9f95, 0xb132, /* 1570 */ 0x9415, 0x3500, 0xfc01, 0x2802, 0xb855, 0xa306, 0x0024, 0x0006, /* 1578 */ 0xd397, 0x003f, 0xc001, 0x3500, 0x184c, 0xb011, 0xe4e5, 0xb182, /* 1580 */ 0x1c04, 0xd400, 0x184c, 0x0000, 0x0205, 0xac52, 0x3802, 0x0006, /* 1588 */ 0xd3c2, 0x4212, 0x0024, 0xf400, 0x4057, 0xb182, 0x1c04, 0xd400, /* 1590 */ 0x0024, 0xac52, 0x1404, 0xd142, 0x0024, 0x0000, 0x3fc4, 0xb142, /* 1598 */ 0x0024, 0x4122, 0x1bc2, 0xf400, 0x4057, 0x3700, 0x4024, 0xd101, /* 15a0 */ 0x6465, 0x0006, 0xd397, 0x3f00, 0x3814, 0x0025, 0xffd4, 0x0006, /* 15a8 */ 0xd317, 0x3710, 0x160c, 0x0006, 0x9f94, 0x37f0, 0x73d5, 0x6c92, /* 15b0 */ 0x3808, 0x3f10, 0x0024, 0x3ff0, 0x4024, 0x3009, 0x1040, 0x3009, /* 15b8 */ 0x13c1, 0x6010, 0x0024, 0x0000, 0x0024, 0x2903, 0x0e85, 0x0002, /* 15c0 */ 0xb448, 0x2802, 0xb694, 0x0006, 0x0001, 0x4010, 0x0024, 0x0005, /* 15c8 */ 0xf601, 0x6010, 0x0024, 0x0000, 0x0040, 0x2802, 0xb814, 0x0030, /* 15d0 */ 0x0497, 0x3f00, 0x0024, 0x36f2, 0x1814, 0x4330, 0x9803, 0x2000, /* 15d8 */ 0x0000, 0x8880, 0x1bc1, 0x0007, 0x0001, 0x8ae4, 0x0006, 0x00a4, /* 15e0 */ 0x3613, 0x0024, 0x3e22, 0xb806, 0x3e05, 0xb814, 0x3615, 0x0024, /* 15e8 */ 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, 0x3e11, 0x7807, /* 15f0 */ 0x6848, 0x930c, 0x3411, 0x780d, 0x459a, 0x10c0, 0x0000, 0x0201, /* 15f8 */ 0x6012, 0x384e, 0x0000, 0x0241, 0x2802, 0xbf95, 0x6012, 0x380f, /* 1600 */ 0x2402, 0xbec5, 0x0000, 0x0024, 0x3000, 0x0001, 0x3101, 0x8407, /* 1608 */ 0x6cfe, 0x0024, 0xac42, 0x0024, 0xaf4e, 0x2040, 0x3911, 0x8024, /* 1610 */ 0x2802, 0xcb40, 0x0000, 0x0024, 0x0000, 0x0281, 0x2802, 0xc2d5, /* 1618 */ 0x6012, 0x4455, 0x2402, 0xc205, 0x0000, 0x0024, 0x3000, 0x0001, /* 1620 */ 0x3101, 0x8407, 0x4cf2, 0x0024, 0xac42, 0x0024, 0xaf4e, 0x2040, /* 1628 */ 0x3911, 0x8024, 0x2802, 0xcb40, 0x0000, 0x0024, 0x0000, 0x0024, /* 1630 */ 0x2802, 0xc715, 0x4080, 0x0024, 0x3110, 0x0401, 0xf20f, 0x0203, /* 1638 */ 0x2402, 0xc645, 0x8dd6, 0x0024, 0x4dce, 0x0024, 0xf1fe, 0x0024, /* 1640 */ 0xaf4e, 0x0024, 0x6dc6, 0x2046, 0xf1df, 0x0203, 0xaf4f, 0x1011, /* 1648 */ 0xf20e, 0x07cc, 0x8dd6, 0x2486, 0x2802, 0xcb40, 0x0000, 0x0024, /* 1650 */ 0x0000, 0x0024, 0x2802, 0xc995, 0x0000, 0x0024, 0x0fff, 0xffd1, /* 1658 */ 0x2402, 0xc8c5, 0x3010, 0x0001, 0xac4f, 0x0801, 0x3821, 0x8024, /* 1660 */ 0x2802, 0xcb40, 0x0000, 0x0024, 0x0fff, 0xffd1, 0x2402, 0xcb05, /* 1668 */ 0x3010, 0x0001, 0x3501, 0x9407, 0xac47, 0x0801, 0xaf4e, 0x2082, /* 1670 */ 0x3d11, 0x8024, 0x36f3, 0xc024, 0x36f3, 0x980d, 0x36f1, 0x5807, /* 1678 */ 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36e3, 0x0024, /* 1680 */ 0x2000, 0x0000, 0x36f2, 0x9806, 0x0007, 0x0001, 0x8b36, 0x0006, /* 1688 */ 0x005c, 0x0006, 0x9f97, 0x3e00, 0x5c15, 0x0006, 0xd397, 0x003f, /* 1690 */ 0xc001, 0x3500, 0x3840, 0xb011, 0xe4e5, 0xb182, 0x1c04, 0xd400, /* 1698 */ 0x184c, 0x0000, 0x0205, 0xac52, 0x3802, 0x0006, 0xd3c2, 0x4212, /* 16a0 */ 0x0024, 0xb182, 0x4057, 0x3701, 0x0024, 0xd400, 0x0024, 0xac52, /* 16a8 */ 0x1404, 0xd142, 0x0024, 0x0000, 0x3fc4, 0xb142, 0x0024, 0x4122, /* 16b0 */ 0x1bc2, 0xf400, 0x4057, 0x3700, 0x4024, 0xd101, 0x6465, 0x0006, /* 16b8 */ 0xd397, 0x3f00, 0x3814, 0x0025, 0xffd4, 0x0006, 0xd317, 0x3710, /* 16c0 */ 0x160c, 0x0006, 0x9f94, 0x37f0, 0x73d5, 0x6c92, 0x0024, 0x3f10, /* 16c8 */ 0x1040, 0x3ff0, 0x53c1, 0x6010, 0x0024, 0x0000, 0x0024, 0x2802, /* 16d0 */ 0xd714, 0x0006, 0x0001, 0x4010, 0x0024, 0x0005, 0xf601, 0x6010, /* 16d8 */ 0x9bd4, 0x0000, 0x0040, 0x2802, 0xd894, 0x0030, 0x0497, 0x3f00, /* 16e0 */ 0x0024, 0x2000, 0x0000, 0x36f0, 0x5800, 0x0007, 0x0001, 0x8b64, /* 16e8 */ 0x0006, 0x003a, 0x3e10, 0xb812, 0x3e11, 0xb810, 0x3e12, 0x0024, /* 16f0 */ 0x0006, 0x9f92, 0x0025, 0xffd0, 0x3e04, 0x4bd1, 0x3181, 0xf847, /* 16f8 */ 0xb68c, 0x4440, 0x3009, 0x0802, 0x6024, 0x3806, 0x0006, 0x8a10, /* 1700 */ 0x2903, 0x0e85, 0x0002, 0xdb08, 0x0000, 0x0800, 0x6101, 0x1602, /* 1708 */ 0xaf2e, 0x0024, 0x4214, 0x1be3, 0xaf0e, 0x1811, 0x0fff, 0xfc00, /* 1710 */ 0xb200, 0x9bc7, 0x0000, 0x03c0, 0x2802, 0xdf45, 0xb204, 0xa002, /* 1718 */ 0x2902, 0xcd80, 0x3613, 0x2002, 0x4680, 0x1bc8, 0x36f1, 0x9810, /* 1720 */ 0x2000, 0x0000, 0x36f0, 0x9812, 0x0007, 0x0001, 0x82e9, 0x0006, /* 1728 */ 0x0022, 0x0000, 0x0400, 0x6102, 0x0024, 0x3e11, 0x3805, 0x2800, /* 1730 */ 0xbd49, 0x3e02, 0x0024, 0x2902, 0xd900, 0x408a, 0x188c, 0x2902, /* 1738 */ 0xd900, 0x408a, 0x4141, 0x4582, 0x1bc8, 0x2000, 0x0000, 0x36f1, /* 1740 */ 0x1805, 0x2902, 0xd900, 0x4102, 0x184c, 0xb182, 0x1bc8, 0x2000, /* 1748 */ 0x0000, 0x36f1, 0x1805, 0x0007, 0x0001, 0x8b81, 0x0006, 0x002a, /* 1750 */ 0x3613, 0x0024, 0x3e12, 0xb815, 0x3e11, 0xb807, 0x3e13, 0xf80e, /* 1758 */ 0x3e03, 0x4024, 0x680c, 0x0024, 0x0000, 0x0024, 0x2802, 0xe458, /* 1760 */ 0x409c, 0x0024, 0x2402, 0xe406, 0x0000, 0x000a, 0x3111, 0xc024, /* 1768 */ 0xfe4e, 0x0007, 0x47be, 0x0024, 0xf6fe, 0x0024, 0x3811, 0xc024, /* 1770 */ 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f1, 0x9807, 0x2000, 0x0000, /* 1778 */ 0x36f2, 0x9815, 0x0007, 0x0001, 0x8b96, 0x0006, 0x002a, 0x3613, /* 1780 */ 0x0024, 0x3e12, 0xb815, 0x3e11, 0xb807, 0x3e13, 0xf80e, 0x3e03, /* 1788 */ 0x4024, 0x680c, 0x0024, 0x0000, 0x0024, 0x2802, 0xe998, 0x409c, /* 1790 */ 0x0024, 0x2402, 0xe946, 0x0000, 0x000a, 0x3111, 0xc024, 0xfe4e, /* 1798 */ 0x8007, 0x47be, 0x0024, 0xf6fe, 0x0024, 0x3009, 0x2047, 0x36f3, /* 17a0 */ 0x4024, 0x36f3, 0xd80e, 0x36f1, 0x9807, 0x2000, 0x0000, 0x36f2, /* 17a8 */ 0x9815, 0x0007, 0x0001, 0x8bab, 0x0006, 0x0038, 0x2a02, 0xeb0e, /* 17b0 */ 0x3e12, 0xb817, 0x3e10, 0x3802, 0x0000, 0x800a, 0x0006, 0x9f97, /* 17b8 */ 0x3009, 0x1fc2, 0x3e04, 0x5c00, 0x6020, 0xb810, 0x0030, 0x0451, /* 17c0 */ 0x2802, 0xedd4, 0x0006, 0x0002, 0x4020, 0x0024, 0x0005, 0xfb02, /* 17c8 */ 0x6024, 0x0024, 0x0025, 0xffd0, 0x2802, 0xf011, 0x3100, 0x1c11, /* 17d0 */ 0xb284, 0x0024, 0x0030, 0x0490, 0x3800, 0x8024, 0x0025, 0xffd0, /* 17d8 */ 0x3980, 0x1810, 0x36f4, 0x7c11, 0x36f0, 0x1802, 0x0030, 0x0717, /* 17e0 */ 0x3602, 0x8024, 0x2100, 0x0000, 0x3f05, 0xdbd7, 0x0007, 0x0001, /* 17e8 */ 0x8bc7, 0x0006, 0x0012, 0x0002, 0xead7, 0x3613, 0x0024, 0x3e00, /* 17f0 */ 0x3801, 0xf400, 0x55c0, 0x0000, 0x0897, 0xf400, 0x57c0, 0x0000, /* 17f8 */ 0x0024, 0x2000, 0x0000, 0x36f0, 0x1801, 0x0007, 0x0001, 0x82fa, /* 1800 */ 0x0006, 0x0006, 0x2a08, 0x1b8e, 0x2802, 0xf200, 0x0000, 0xbe97, /* 1808 */ 0x0007, 0x0001, 0x82fd, 0x0006, 0x0006, 0x0006, 0xd397, 0x2000, /* 1810 */ 0x0000, 0x3f00, 0x0024, 0x0007, 0x0001, 0x8bd0, 0x0006, 0x0006, /* 1818 */ 0x0006, 0xd397, 0x2000, 0x0000, 0x3700, 0x0024, 0x0007, 0x0001, /* 1820 */ 0x8bd3, 0x0006, 0x0018, 0xb183, 0xe1e3, 0x0000, 0x0203, 0xac32, /* 1828 */ 0x40d5, 0xd122, 0x0024, 0x0000, 0x3fc3, 0xb132, 0x0024, 0x0006, /* 1830 */ 0xd3c3, 0x4316, 0x0024, 0xf400, 0x40d5, 0x3500, 0x5803, 0x2000, /* 1838 */ 0x0000, 0xd010, 0x1bc1, 0x0007, 0x0001, 0x8bdf, 0x0006, 0x0070, /* 1840 */ 0x3613, 0x0024, 0x3e22, 0xb815, 0x3e05, 0xb814, 0x3615, 0x0024, /* 1848 */ 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, 0xb884, 0xb805, /* 1850 */ 0xb888, 0x3844, 0x3e11, 0xb80d, 0x3e03, 0xf80e, 0x0000, 0x03ce, /* 1858 */ 0xf400, 0x4083, 0x2403, 0x004e, 0xf400, 0x4105, 0x0000, 0x0206, /* 1860 */ 0xa562, 0x0024, 0x455a, 0x0024, 0x0020, 0x0006, 0xd312, 0x0024, /* 1868 */ 0xb16c, 0x0024, 0x0020, 0x0006, 0x2802, 0xfec5, 0xd342, 0x0024, /* 1870 */ 0x0000, 0x01c6, 0xd342, 0x0024, 0xd56a, 0x0024, 0x0020, 0x0006, /* 1878 */ 0x4448, 0x0024, 0xb16c, 0x0024, 0x0020, 0x0146, 0x2803, 0x0045, /* 1880 */ 0x0000, 0x0024, 0xd468, 0x0024, 0x4336, 0x0024, 0x0000, 0x4000, /* 1888 */ 0x0006, 0xd3c1, 0x0006, 0x9306, 0x4122, 0x0024, 0x462c, 0x4055, /* 1890 */ 0x4092, 0x3404, 0xb512, 0x4195, 0x6294, 0x3401, 0x6200, 0x0024, /* 1898 */ 0x0000, 0x03ce, 0x2802, 0xfad1, 0xb888, 0x0024, 0x36f3, 0xd80e, /* 18a0 */ 0x36f1, 0x980d, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, /* 18a8 */ 0x3405, 0x9014, 0x36e3, 0x0024, 0x2000, 0x0000, 0x36f2, 0x9815, /* 18b0 */ 0x0007, 0x0001, 0x8c17, 0x0006, 0x0046, 0x3613, 0x0024, 0x3e12, /* 18b8 */ 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, /* 18c0 */ 0x800a, 0x3e10, 0x3801, 0xb880, 0xb810, 0x0006, 0x9fd0, 0x3e10, /* 18c8 */ 0x8001, 0x4182, 0x3811, 0x0006, 0xd311, 0x2803, 0x0985, 0x0006, /* 18d0 */ 0x8a10, 0x0000, 0x0200, 0xbc82, 0xa000, 0x3910, 0x0024, 0x2902, /* 18d8 */ 0xf7c0, 0x39f0, 0x4024, 0x0006, 0x9f90, 0x0006, 0x9f51, 0x3009, /* 18e0 */ 0x0000, 0x3009, 0x0401, 0x6014, 0x0024, 0x0000, 0x0024, 0x2903, /* 18e8 */ 0x0e85, 0x0003, 0x0a88, 0x36f4, 0x4024, 0x36f0, 0x9810, 0x36f0, /* 18f0 */ 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, /* 18f8 */ 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8c3a, 0x0006, 0x001a, /* 1900 */ 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, /* 1908 */ 0x290a, 0xd900, 0x3605, 0x0024, 0x2910, 0x0180, 0x3613, 0x0024, /* 1910 */ 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, /* 1918 */ 0x36f2, 0x9817, 0x0007, 0x0001, 0x8c47, 0x0006, 0x0064, 0x3613, /* 1920 */ 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, /* 1928 */ 0x0024, 0x0000, 0x800a, 0x3e10, 0xb803, 0x0006, 0x0002, 0x3e11, /* 1930 */ 0x3805, 0x3e11, 0xb807, 0x3e14, 0x3811, 0x0006, 0x9f90, 0x3e04, /* 1938 */ 0xb813, 0x3009, 0x0012, 0x3213, 0x0024, 0xf400, 0x4480, 0x6026, /* 1940 */ 0x0024, 0x0000, 0x0024, 0x2803, 0x1715, 0x0000, 0x0024, 0x0000, /* 1948 */ 0x0012, 0xf400, 0x4480, 0x0006, 0x9f50, 0x3009, 0x0002, 0x6026, /* 1950 */ 0x0024, 0x0000, 0x0024, 0x2903, 0x0e85, 0x0003, 0x1708, 0x0006, /* 1958 */ 0x9f93, 0x3201, 0x0c11, 0xb58a, 0x0406, 0x0006, 0x8a11, 0x468e, /* 1960 */ 0x8400, 0xb68c, 0x9813, 0xcfee, 0x1bd2, 0x0000, 0x0804, 0xaf0e, /* 1968 */ 0x9811, 0x4f86, 0x1bd0, 0x0000, 0x0021, 0x6418, 0x9807, 0x6848, /* 1970 */ 0x1bc6, 0xad46, 0x9805, 0xf400, 0x4080, 0x36f1, 0x0024, 0x36f0, /* 1978 */ 0x9803, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, /* 1980 */ 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8c79, 0x0006, 0x0064, /* 1988 */ 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, /* 1990 */ 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, /* 1998 */ 0x3e11, 0x3805, 0x2803, 0x2540, 0x3e04, 0x3811, 0x0000, 0x0401, /* 19a0 */ 0x2902, 0xd900, 0x3613, 0x0024, 0x0000, 0x0080, 0xb882, 0x130c, /* 19a8 */ 0xf400, 0x4510, 0x3010, 0x910c, 0x30f0, 0xc024, 0x6dc2, 0x0024, /* 19b0 */ 0x3810, 0x0024, 0x38f0, 0x4024, 0x0000, 0x0201, 0x3100, 0x0024, /* 19b8 */ 0xb010, 0x0024, 0x0000, 0x0024, 0x2803, 0x2895, 0x0000, 0x0024, /* 19c0 */ 0x6894, 0x130c, 0xb886, 0x1040, 0x3430, 0x4024, 0x6dca, 0x0024, /* 19c8 */ 0x0030, 0x0011, 0x2803, 0x2111, 0x0000, 0x0024, 0xbcd2, 0x0024, /* 19d0 */ 0x0000, 0x0201, 0x2803, 0x2885, 0x0000, 0x0024, 0x2902, 0xd900, /* 19d8 */ 0x3613, 0x0024, 0x36f4, 0x1811, 0x36f1, 0x1805, 0x36f0, 0x9803, /* 19e0 */ 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, /* 19e8 */ 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8cab, 0x0006, /* 19f0 */ 0x0018, 0x4080, 0x184c, 0x3e13, 0x780f, 0x2803, 0x2cc5, 0x4090, /* 19f8 */ 0xb80e, 0x2403, 0x2c40, 0x3e04, 0x0440, 0x3810, 0x0440, 0x3604, /* 1a00 */ 0x0024, 0x3009, 0x1bce, 0x3603, 0x5bcf, 0x2000, 0x0000, 0x0000, /* 1a08 */ 0x0024, 0x000a, 0x0001, 0x0300, #ifndef SKIP_PLUGIN_VARNAME }; #endif Sd2Card card; SdVolume volume; SdFile root; SdFile file; /** Control Chip Select Pin (for accessing SPI Control/Status registers) */ #define MP3_XCS 2 /** Data Chip Select / BSYNC Pin */ #define MP3_XDCS 9 #define SD_CS 53 // ** Data Request Pin: Player asks for more data */ #define MP3_DREQ 8 /** VS10xx SCI Registers */ #define SPI_MODE 0x0 /**< VS10xx register */ #define SPI_STATUS 0x1 /**< VS10xx register */ #define SPI_BASS 0x2 /**< VS10xx register */ #define SPI_CLOCKF 0x3 /**< VS10xx register */ #define SPI_DECODE_TIME 0x4 /**< VS10xx register */ #define SPI_AUDATA 0x5 /**< VS10xx register */ #define SPI_WRAM 0x6 /**< VS10xx register */ #define SPI_WRAMADDR 0x7 /**< VS10xx register */ #define SPI_HDAT0 0x8 /**< VS10xx register */ #define SPI_HDAT1 0x9 /**< VS10xx register */ #define SPI_AIADDR 0xa /**< VS10xx register */ #define SPI_VOL 0xb /**< VS10xx register */ #define SPI_AICTRL0 0xc /**< VS10xx register */ #define SPI_AICTRL1 0xd /**< VS10xx register */ #define SPI_AICTRL2 0xe /**< VS10xx register */ #define SPI_AICTRL3 0xf /**< VS10xx register */ #define SPI_DEFAULT_SPEED SPI_CLOCK_DIV2 const int FORWARD_PIN = A1; const int BACK_PIN = A0; Bounce forward_button = Bounce (FORWARD_PIN, 25); Bounce backward_button = Bounce (BACK_PIN, 25); // store error strings in flash to save RAM #define error(s) error_P(s) void error_P (const char *str) { if (card.errorCode ()) { Serial.print (card.errorCode (), HEX); Serial.print (','); Serial.println (card.errorData (), HEX); } while (1); } /** Pull the VS10xx Control Chip Select line Low */ void inline __attribute__ ((always_inline)) vs1053_select_control () { fastDigitalWrite (MP3_XCS, LOW); } /** Pull the VS10xx Control Chip Select line High */ void inline __attribute__ ((always_inline)) vs1053_deselect_control () { fastDigitalWrite (MP3_XCS, HIGH); } /** Pull the VS10xx Data Chip Select line Low */ void inline __attribute__ ((always_inline)) vs1053_select_data () { fastDigitalWrite (MP3_XDCS, LOW); } /** Pull the VS10xx Data Chip Select line High */ void inline __attribute__ ((always_inline)) vs1053_deselect_data () { fastDigitalWrite (MP3_XDCS, HIGH); } void inline __attribute__ ((always_inline)) select_sd () { fastDigitalWrite (SD_CS, LOW); } void inline __attribute__ ((always_inline)) deselect_sd () { fastDigitalWrite (SD_CS, HIGH); } void vs1053_write_register (unsigned char addressbyte, unsigned char highbyte, unsigned char lowbyte) { // SPIInit (); init_spi (); // SPI.setClockDivider (SCI_WRITE_SPEED); deselect_sd (); vs1053_deselect_data (); vs1053_select_control (); delay (1); SPI.transfer (0x02); // write command SPI.transfer (addressbyte); SPI.transfer (highbyte); SPI.transfer (lowbyte); vs1053_deselect_control (); while (!fastDigitalRead (MP3_DREQ)); SPI.setClockDivider (SPI_DEFAULT_SPEED); } /** Read the 16-bit value of a VS10xx register */ unsigned int vs1053_read_register (unsigned char addressbyte) { unsigned int resultvalue = 0; unsigned int aux = 0; init_spi (); deselect_sd (); vs1053_deselect_data (); vs1053_select_control (); SPI.transfer (0x03); // read command SPI.transfer (addressbyte); aux = SPI.transfer (0xff); resultvalue = aux << 8; aux = SPI.transfer (0xff); resultvalue |= aux; vs1053_deselect_control (); SPI.setClockDivider (SPI_DEFAULT_SPEED); return resultvalue; } /** Set VS10xx Volume Register */ void vs1053_set_volume (unsigned char leftchannel, unsigned char rightchannel) { vs1053_write_register (SPI_VOL, leftchannel, rightchannel); } unsigned int vs1053_get_endfillbyte () { unsigned int reg; vs1053_write_register (SPI_WRAMADDR, 0x1e, 0x06); reg = vs1053_read_register (SPI_WRAM); return reg; } unsigned int vs1053_get_byterate () { vs1053_write_register (SPI_WRAMADDR, 0x1e, 0x05); return (vs1053_read_register (SPI_WRAM)); } void vs1053_toggle_bass_boost () { unsigned int reg = vs1053_read_register (SPI_BASS); if ((reg & B11110000)) { vs1053_write_register (SPI_BASS, 0, 0); } else vs1053_write_register (SPI_BASS, 0x00, 0xf6); } void init_spi () { SPI.setBitOrder (MSBFIRST); SPI.setDataMode (SPI_MODE0); SPI.setClockDivider (SPI_CLOCK_DIV16); // slow SPI bus speed SPI.transfer (0xFF); } void vs1053_load_patch (void) { int i = 0; while (i < sizeof (plugin) / sizeof (pgm_read_word (plugin))) { unsigned short addr, n, val; addr = pgm_read_word (plugin + i++); n = pgm_read_word (plugin + i++); if (n & 0x8000U) { /* RLE run, replicate n samples */ n &= 0x7FFF; val = pgm_read_word (plugin + i++); while (n--) { vs1053_write_register (addr, val >> 8, val & 0xff); } } else { /* Copy run, copy n samples */ while (n--) { val = pgm_read_word (plugin + i++); vs1053_write_register (addr, val >> 8, val & 0xff); } } } } /** Soft Reset of VS10xx with patching the code */ void vs1053_softreset_and_patch () { unsigned int sci_status = 0; init_spi (); // slow speed // software reset the VS vs1053_write_register (SPI_MODE, 0x08, 0x04); delay (1); while (!fastDigitalRead (MP3_DREQ)); // /upload patch vs1053_load_patch (); vs1053_write_register (SPI_CLOCKF, 0xc0, 0x00); // VS1053 delay (1); vs1053_write_register (SPI_MODE, B00001000, B10000000); vs1053_set_volume (0x00, 0x00); // ram up the SPI speed now that the VS internal clock has been set SPI.setClockDivider (SPI_DEFAULT_SPEED); } void vs1053_softreset_without_patch () { vs1053_write_register (SPI_AIADDR, 0x03, 0x00); delay (1); while (!fastDigitalRead (MP3_DREQ)); vs1053_write_register (SPI_CLOCKF, 0xc0, 0x00); // VS1003 delay (1); vs1053_write_register (SPI_MODE, B00001000, B10000000); } // Transfers 32 bytes of data void transfer_32bytes (unsigned char *buf) { deselect_sd (); vs1053_deselect_control (); vs1053_select_data (); while (!fastDigitalRead (MP3_DREQ)); for (unsigned char i = 0; i < 32; i++) { SPI.transfer (buf[i]); // Send out 32 bytes } vs1053_deselect_data (); } //transfer's a user specified number of bytes (<255) to the vs1053 void transfer_xbytes (unsigned char *buf, unsigned char num_bytes) { deselect_sd (); vs1053_deselect_control (); vs1053_select_data (); while (!fastDigitalRead (MP3_DREQ)); for (unsigned char i = 0; i < num_bytes; i++) { SPI.transfer (buf[i]); // Send out num bytes } vs1053_deselect_data (); } // transfers a maximum of 32 bytes of a specified value to the mp3 decoder void transfer_value_bytes (unsigned char value, unsigned int num) { if (num > 32) Serial.println ("error invalid byte number"); deselect_sd (); vs1053_deselect_control (); vs1053_select_data (); while (!fastDigitalRead (MP3_DREQ)); for (int i = 0; i < num; i++) { SPI.transfer (value); // Send out 32 bytes // delayMicroseconds(10); } vs1053_deselect_data (); } // Transfer's num_bytes of value to the VS1053 void transfer_num_bytes (unsigned char value, unsigned int num_bytes) { unsigned int i; if (num_bytes == 0) return; for (i = 0; i < num_bytes / 32; i++) { transfer_value_bytes (value, 32); } if (num_bytes % 32 == 0) return; else transfer_value_bytes (value, num_bytes % 32); } void init_vs () { Serial.println ("Initing VS"); vs1053_softreset_and_patch (); Serial.println ("Init VS - Done"); } int init_sd () { Serial.print ("Starting SD Card... "); // initialize the SD card at SPI_HALF_SPEED to avoid bus errors with // breadboards. use SPI_FULL_SPEED for better performance. vs1053_deselect_control (); vs1053_deselect_data (); delay (10); if (!card.init (SPI_FULL_SPEED, SD_CS)) { error ("card init failed"); return -1; } else Serial.println ("Success!"); // initialize a FAT volume if (!volume.init (&card)) { error ("volume.init failed"); return -1; } // open the root directory if (!root.openRoot (&volume)) { error ("openRoot failed"); return -1; } deselect_sd (); vs1053_deselect_control (); vs1053_deselect_data (); return 1; } void vs1053_terminate_stream () { int sci_mode; int hdat0; int hdat1; // Send proper VS commands at EOF unsigned int endfillbyte = vs1053_get_endfillbyte (); transfer_num_bytes (endfillbyte, 2052); sci_mode = vs1053_read_register (SPI_MODE); sci_mode |= 0x8; vs1053_write_register (SPI_MODE, sci_mode >> 8, sci_mode & 0xff); // send up 2048 bytes of endFillByte[7:0]. for (unsigned char i = 0; i < 64; i++) { // send at least 32 bytes of endFillByte[7:0] transfer_num_bytes (endfillbyte, 32); // read SPI MODE; if SM CANCEL is still set, repeat sci_mode = vs1053_read_register (SPI_MODE); if ((sci_mode & 0x08) == 0x0000) { break; } } if (sci_mode & 0x8) { Serial.println ("Software reset at EOF"); vs1053_softreset_without_patch (); } hdat0 = vs1053_read_register (SPI_HDAT0); hdat1 = vs1053_read_register (SPI_HDAT1); Serial.print ("HDAT0 - "); Serial.println (hdat0); Serial.print ("HDAT1 - "); Serial.println (hdat1); } typedef enum { P_PLAYING, P_PAUSE, P_NEXT_TRACK, P_PREV_TRACK, P_DONE, P_STOPPED, P_ERROR } play_status; unsigned long button_down_millis=0; int get_user_input () { if (forward_button.update () && (forward_button.read () == LOW)) { return P_NEXT_TRACK; } if (backward_button.update () && (backward_button.read () == LOW)) { return P_PREV_TRACK; } if (Serial.available ()) { int c = Serial.read (); if (c == 'n') { Serial.println ("next track"); return P_NEXT_TRACK; } if (c == 'p') { Serial.println ("prev track"); return P_PREV_TRACK; } if (c == 'b') { Serial.println ("bass_boost"); vs1053_toggle_bass_boost (); return -1; return P_PREV_TRACK; } } return -1; } unsigned long prev_time = 0; void extra_cpu_time () { } // This will play a opened file sent to it and call a function to handle // user input, processing accordingly int play_file (SdFile * file_p) { unsigned char buf[32]; unsigned long file_size = 0; unsigned char n; byte end_fill_byte = 0; unsigned int sci_mode; unsigned int hdat0; unsigned int hdat1; char cancel_flag = 0; unsigned int cancel_byte_count = 0; unsigned char user_input; file_size = file_p->fileSize (); Serial.print ("File size= "); Serial.println (file_size); //reset the start time for the file to zero vs1053_write_register (SPI_DECODE_TIME, 0, 0); vs1053_write_register (SPI_DECODE_TIME, 0, 0); while ((n = file_p->read (buf, sizeof (buf))) > 0) { // extra_cpu_time(); if (cancel_flag == 0) user_input = get_user_input (); if (user_input == P_NEXT_TRACK || user_input == P_PREV_TRACK || cancel_flag == 1) { // is program in cancel loop already if (cancel_flag == 0) { sci_mode = vs1053_read_register (SPI_MODE); sci_mode |= 0x8; vs1053_write_register (SPI_MODE, sci_mode >> 8, sci_mode & 0xff); cancel_flag = 1; } transfer_xbytes (buf, n); cancel_byte_count += n; sci_mode = vs1053_read_register (SPI_MODE); if ((sci_mode & B1000) == 0) { unsigned int endfillbyte = vs1053_get_endfillbyte (); Serial.print ("endFillByte ="); Serial.println (endfillbyte, DEC); transfer_num_bytes (endfillbyte, 2052); hdat0 = vs1053_read_register (SPI_HDAT0); hdat1 = vs1053_read_register (SPI_HDAT1); Serial.print ("HDAT0 - "); Serial.println (hdat0); Serial.print ("HDAT1 - "); Serial.println (hdat1); return user_input; } if (cancel_byte_count >= 2048) { Serial.print ("sci mode in cancel"); Serial.println (sci_mode); Serial.println ("Software reseting in cancel"); vs1053_softreset_without_patch (); return user_input; } continue; } if (n < sizeof (buf)) { transfer_xbytes (buf, n); Serial.println ("End of file reached"); vs1053_terminate_stream (); return P_DONE; } transfer_32bytes (buf); } if (n == 0) { Serial.println ("End of file reached"); vs1053_terminate_stream (); return P_DONE; } else return P_ERROR; } void setup () { Serial.begin (9600); pinMode (10, OUTPUT); pinMode (MP3_DREQ, INPUT); pinMode (SD_CS, OUTPUT); pinMode (MP3_XCS, OUTPUT); pinMode (MP3_XDCS, OUTPUT); //Forward backward buttons etc.... pinMode (FORWARD_PIN, INPUT); digitalWrite (FORWARD_PIN, HIGH); pinMode (BACK_PIN, INPUT); digitalWrite (BACK_PIN, HIGH); SPI.begin (); init_sd (); init_vs (); deselect_sd (); vs1053_deselect_control (); vs1053_deselect_data (); } // goes to a specific file number..... int goto_file_num (int num) { dir_t dir; root.rewind (); for (int i = 0; i <= num; i++) { root.readDir (&dir); } Serial.println ("At file"); file.printDirName (dir, 10); } //Goes to the next file number in the SD card int next_file (int cur_number, int num_entries) { if (cur_number + 1 >= num_entries) { goto_file_num (0); return 0; } else { goto_file_num (cur_number + 1); return cur_number + 1; } } //Goes to the previous file number in the SD card int prev_file (int cur_number, int num_entries) { if (cur_number - 1 < 0) { goto_file_num (num_entries - 1); return num_entries - 1; } else { goto_file_num (cur_number - 1); return cur_number - 1; } } void loop () { unsigned int num_files = 0; int num_dirs = 0; int num_entries = 0; int cur_file_num = 0; int ret = P_NEXT_TRACK; dir_t dir; while (root.readDir (&dir) > 0) { if (file.open (&root, root.curPosition () / 32 - 1, O_READ)) { num_entries++; if (file.isDir ()) num_dirs++; else if (file.isFile ()) num_files++; file.close (); } } Serial.print ("Number of files in root "); Serial.println (num_files); Serial.print ("Number of dirs in root "); Serial.println (num_dirs); if (num_files == 0) { Serial.print ("No FILES in SD"); while (1); } root.rewind (); goto_file_num (0); while (1) { if (file.open (&root, root.curPosition () / 32 - 1, O_READ)) { Serial.print ("Opened "); } else { Serial.print ("file.open failed for "); file.printDirName (dir, 10); file.close (); delay (500); } if (file.isDir ()) { Serial.print ("Is directory"); file.close (); if (ret == P_PREV_TRACK) cur_file_num = prev_file (cur_file_num, num_entries); else cur_file_num = next_file (cur_file_num, num_entries); continue; } // play file switch (ret = play_file (&file)) { case P_DONE: cur_file_num = next_file (cur_file_num, num_entries); break; case P_NEXT_TRACK: cur_file_num = next_file (cur_file_num, num_entries); break; case P_PREV_TRACK: cur_file_num = prev_file (cur_file_num, num_entries); break; case P_ERROR: Serial.println ("error occured while playing file"); cur_file_num = next_file (cur_file_num, num_entries); break; default: cur_file_num = next_file (cur_file_num, num_entries); break; } file.close (); } Serial.println ("All files played"); while (1); }
Не нашел как редактировать свое сообщение.
Суть проблемы - прога проходит инициализацию карты и инициализацию VS1053.
А дальше пишет что нет файлов на карте и директория пуста.
Подскажите как узнать - как правильно записывать файлы на карту что бы их видела эта прога
сд карта в FAT16?
форматировал в винде - выбрал FAT
Форматнул скетчем для ардуины. теперь точно фат16 и все равно не работает
про 8.3 не забыли?
что такое 8.3 ?
формат имени фаила.
8 букв точка 3 буквы
папки то должен видеть ? файлы и папки называл 111
111.mp3
если после точки 3 буквы то как вообще флак проигрывать ?
а зачем флаку .flac называться?
переименуй в fla
>> папки то должен видеть ?
это не факт. Переместите файл в корень.
>> если после точки 3 буквы то как вообще флак проигрывать ?
переименуйте файл в .FLC или .FLA. Не важно
>> все равно не работает
подробнее. Что-то в сериал пишет?
в корень кидал.
все переименовывал
в сериал пишет что нет ни папок ни файлов на карточке =(
Карточка была какая то левая. Поменял и все вроде норм
Папки определились, файлы тоже, даже что то шлет по SPI.
Но звука в наушниках нет (
По коду вроде управлять можно только вперед назад и какой то басс буст. А как громкость регулировать непонятно.
Нажиметь кнопку "Start", на"cmd"<enter>
В открывшемся окошке командной строки набираете
Где e: - имя диска вашей карточки (нужно поменять на букву вашей карты)
Потом в корне диска c: находите файл my_card.txt - и показываете его содержимое тут.
То же самое и с "в серил пишет" - показывайте что именно пишет. делайте copy-paste.
Далее. Забейте (временно) на ваш FLAC. Разберитесь вначале с карточкой. Возмите пример из стандартной SD либы и проверте что она вообще читается (мега скетч с FLAC потом перельете).
Можно взять, ну к примеру Arduino - CardInfo . И опять-таки - показать что он выводит.
А еще, рекомендуется указывать какой шилд вы используете (желательно со ссылкой) и какую именно ардуину вы используете. От это го же тоже зависит является, скажем, строчка "#define SD_CS 53" ошибкой или нет.
P.S. Кроме того, проверте самый тупой вариант: возмите другую карточку. желательно размером поскромнее.
Но звука в наушниках нет (
По коду вроде управлять можно только вперед назад и какой то басс буст. А как громкость регулировать непонятно.
Попробуйте, где-то, скажем в строке 2509 сделато что-то типа:
Спасибо что помогаете.
Использую Mega256 + Ethernet 5100 + http://www.aliexpress.com/item/development-board-for-VS1053-MP3-module-decorder-mic/593670351.html (распаянная макетка по сути)
SD_CS редактировал, пины соединил по объявленным переменным в коде, простые примеры из стандартных библиотек проделал первым делом.
Та карточка то работала то нет. Странная в общем была.
Set_volume завтра попробую, мне кажется должно получиться
Та карточка то работала то нет. Странная в общем была.
Я упомянул это как "проверте самый тупой вариант", но пока набирал.... вы уже сами догадались :)
Еще можете посмтореть на либы/примеры вот к этому шилду Music Shield - Wiki
у v1.0 в примиерах был music player
(но если вам действительно нужен FLAC, то, возможно прийдется его скрещивать с вашим скетчем для патчинга плагина)
> Mega256 + Ethernet 5100
опять-таки "возможно", нужно будет внимательно почитать доку на нее, на предмет того как "вырубать" Ethernet. Что-бы он не "шумел в шину" .
или еще одни грабли могут быть, по этому поводу, вот тут Arduino - ArduinoEthernetShield
On the Mega, the hardware SS pin, 53, is not used to select either the W5100 or the SD card, but it must be kept as an output or the SPI interface won't work.
Что, опять-таки "возможно, нужно проверять, подводит нас к мысли о том, что для "#define SD_CS 53" прийдется искать какой-то другой пин свободный пин.
vs1053_set_volume(0x7F,0x7F); - попробовал, звука нет =(
в CS для SD поставил 4 пин - так написанно в стандартной библиотеке
Файлы записываются на карточку и читаются, проходил бенчмарк библиотекой SDfat
придется читать даташит )))) надеюсь функции обращения к этой микрухе написанны правильно )
проверил читается и записывается ли регистр. Все нормально. Значит связь с микрухой есть
Попробуйте wav или mp3 проиграть. Все-таки легче начинать с дефолтного, а уж потом морочится с тем что требует патчей.
пробовал, даже пробовал примеры без использования флешки, все равно звука нет. Уши работают ))
А вот те либы от Music шилда, пробовали?
Wiznet у вас точно вырублен?
Вообщем версии из msg#17 проверяли?
я пробовал библиотеки где семпл мр3 хранится в РАМ контроллера, снимал w5100. И все равно не работает ))
завтра буду писать свою прогу из кусков библиотек. Начну просто с опроса регистров))
Если китайская плата окажется просто не рабочей то будет ваще обидно.