Merge branch 'release/2.1'

# Conflicts:
#	src/assets/version.h
#	src/main.cpp
#	web/dist/bundle.js
This commit is contained in:
Mark van Renswoude 2018-04-29 11:04:48 +02:00
commit a236588ebb
26 changed files with 17280 additions and 1427 deletions

2
API.md
View File

@ -269,7 +269,7 @@ enabled: whether or not this trigger is enabled
```json ```json
{ {
"enabled": true, "enabled": true,
"enabledDuringTimeTrigger": true, "enabledDuringTimeTrigger": 0,
"enabledDuringDay": false, "enabledDuringDay": false,
"transitionTime": 1000, "transitionTime": 1000,
"delay": 30000, "delay": 30000,

View File

@ -26,7 +26,7 @@ To get started:
1. Install [Node.js](https://nodejs.org/en/) 1. Install [Node.js](https://nodejs.org/en/)
1. Install the [GitVersion command line](http://gitversion.readthedocs.io/en/stable/usage/command-line/) tool 1. Install the [GitVersion command line](http://gitversion.readthedocs.io/en/stable/usage/command-line/) tool
1. Open a command line and navigate to the Stairs folder 1. Open a command line and navigate to the Stairs folder
1. Run ```npm update``` to install all the dependencies 1. Run ```npm install``` to install all the dependencies
### Compiling the assets ### Compiling the assets

View File

@ -207,7 +207,7 @@ app.post('/api/triggers/time', function(req, res)
var motionTriggers = { var motionTriggers = {
enabled: true, enabled: true,
enabledDuringTimeTrigger: false, enabledDuringTimeTrigger: 0,
enabledDuringDay: true, enabledDuringDay: true,
transitionTime: 1000, transitionTime: 1000,
delay: 30000, delay: 30000,

View File

@ -207,7 +207,7 @@ gulp.task('embedVersion', function(cb)
headerFile += "const uint8_t VersionMajor = " + version.Major + ";\r\n"; headerFile += "const uint8_t VersionMajor = " + version.Major + ";\r\n";
headerFile += "const uint8_t VersionMinor = " + version.Minor + ";\r\n"; headerFile += "const uint8_t VersionMinor = " + version.Minor + ";\r\n";
headerFile += "const uint8_t VersionPatch = " + version.Patch + ";\r\n"; headerFile += "const uint8_t VersionPatch = " + version.Patch + ";\r\n";
headerFile += "const uint8_t VersionMetadata = " + version.BuildMetaData + ";\r\n"; headerFile += "const uint8_t VersionMetadata = " + (version.BuildMetaData ? version.BuildMetaData : '0') + ";\r\n";
headerFile += "const char VersionBranch[] = \"" + version.BranchName + "\";\r\n"; headerFile += "const char VersionBranch[] = \"" + version.BranchName + "\";\r\n";

15686
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -35,5 +35,8 @@
"vue": "^2.5.13", "vue": "^2.5.13",
"vue-i18n": "^7.3.3", "vue-i18n": "^7.3.3",
"yargs": "^10.0.3" "yargs": "^10.0.3"
},
"dependencies": {
"npm": "^5.8.0"
} }
} }

View File

@ -4,102 +4,103 @@
#include <pgmspace.h> #include <pgmspace.h>
const uint8_t EmbeddedBundleCSS[] PROGMEM = { const uint8_t EmbeddedBundleCSS[] PROGMEM = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xad,0x59,0xdb,0x6e,0xa3,0x38,0x18,0x7e,0x95,0x48, 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xad,0x59,0xdd,0x6e,0xa3,0x38,0x14,0x7e,0x95,0x48,
0xd5,0x48,0xd3,0x15,0x20,0x92,0x94,0xb4,0x05,0xcd,0x6a,0x57,0xfb,0x06,0x7b,0xb1,0x37,0xa3,0x5e,0x18, 0xd5,0x48,0xd3,0x15,0x20,0x92,0x94,0xb4,0x05,0xcd,0x6a,0x57,0xfb,0x06,0x7b,0xb1,0x37,0xa3,0x5e,0x18,
0x30,0xc1,0x2a,0xc1,0xc8,0x38,0x4d,0x5b,0xc4,0xbb,0xef,0xef,0x13,0xb1,0xc1,0xc9,0x64,0x46,0x23,0xd4, 0x30,0xc1,0x2a,0xc1,0xc8,0x76,0x9a,0xb6,0x88,0x77,0xdf,0x63,0x1b,0x13,0x1b,0x9c,0x4c,0x66,0x34,0x42,
0x26,0xd8,0xfe,0x8f,0xfe,0x0f,0x9f,0x9d,0x9a,0x1f,0x9a,0x21,0xa7,0xef,0x61,0x4f,0x3e,0x49,0xbb,0x4f, 0x6d,0x82,0xed,0xf3,0xeb,0xf3,0xf3,0xd9,0xa9,0xc5,0xa1,0xe9,0x73,0xfa,0x1e,0x72,0xf2,0x49,0xda,0x7d,
0x73,0xca,0x4a,0xcc,0x42,0x18,0xc9,0x2a,0xda,0x72,0x31,0x8c,0xd3,0xdd,0x26,0x4a,0xbe,0x8c,0x7f,0x04, 0x9a,0x53,0x56,0x62,0x16,0xc2,0x48,0x56,0xd1,0x56,0xc8,0x61,0x9c,0xee,0x36,0x51,0xf2,0x65,0xf8,0x23,
0x29,0xaa,0x38,0x66,0x41,0x9a,0xe3,0x8a,0x32,0x6c,0x93,0x91,0xb6,0xc6,0x8c,0xf0,0x31,0xa7,0xe5,0xc7, 0x48,0x51,0x25,0x30,0x0b,0xd2,0x1c,0x57,0x94,0x61,0x9b,0x8c,0xb4,0x35,0x66,0x44,0x0c,0x39,0x2d,0x3f,
0x90,0xa3,0xe2,0x75,0xcf,0xe8,0xb1,0x2d,0xc3,0x82,0x36,0x94,0xa5,0x77,0x71,0x1c,0x67,0xfa,0x6b,0x55, 0xfa,0x1c,0x15,0xaf,0x7b,0x46,0x8f,0x6d,0x19,0x16,0xb4,0xa1,0x2c,0xbd,0x8b,0xe3,0x38,0x1b,0xbf,0x56,
0x55,0x8a,0x73,0x85,0x0e,0xa4,0xf9,0x48,0xff,0xc3,0xac,0x44,0x2d,0x0a,0xfe,0x66,0x04,0x35,0x41,0x8f, 0x55,0xa5,0x39,0x57,0xe8,0x40,0x9a,0x8f,0xf4,0x3f,0xcc,0x4a,0xd4,0xa2,0xe0,0x6f,0x46,0x50,0x13,0x70,
0xda,0x3e,0xec,0x81,0x55,0x65,0x89,0x5f,0x47,0x5b,0x7c,0x50,0xef,0x27,0x4c,0xf6,0x35,0x4f,0xb7,0xc0, 0xd4,0xf2,0x90,0x03,0xab,0xca,0x12,0xbf,0x8e,0xb6,0xf8,0xa0,0xdf,0x4f,0x98,0xec,0x6b,0x91,0x6e,0x81,
0xaf,0xc1,0x1c,0x94,0x09,0xfb,0x0e,0x15,0x42,0x83,0x28,0x5e,0xc3,0xa2,0x86,0xb4,0x38,0xac,0xd5,0x22, 0x5f,0x83,0x05,0x28,0x13,0xf2,0x0e,0x15,0x52,0x83,0x28,0x5e,0xc3,0xa2,0x86,0xb4,0x38,0xac,0xf5,0x22,
0x20,0xcb,0x3a,0x54,0x96,0x30,0x0b,0xf6,0x70,0x4e,0x0f,0xe9,0x96,0xe1,0xc3,0xf8,0xd7,0x01,0x97,0x04, 0x20,0xcb,0x3a,0x54,0x96,0x30,0x0b,0xf6,0x08,0x41,0x0f,0xe9,0x96,0xe1,0xc3,0xf0,0xd7,0x01,0x97,0x04,
0xad,0xfa,0x82,0x61,0xdc,0xae,0x50,0x5b,0xae,0xbe,0x1e,0x48,0x1b,0x9e,0x48,0xc9,0xeb,0xf4,0x71,0xf7, 0xad,0x78,0xc1,0x30,0x6e,0x57,0xa8,0x2d,0x57,0x5f,0x0f,0xa4,0x0d,0x4f,0xa4,0x14,0x75,0xfa,0xb8,0x7b,
0xd4,0xbd,0xdf,0x0f,0xd2,0x0e,0x43,0xcc,0x69,0xa7,0x28,0x47,0x34,0x70,0xfc,0xce,0xc3,0x12,0x17,0x94, 0xea,0xde,0xef,0x7b,0x65,0x87,0x21,0x16,0xb4,0xd3,0x94,0x03,0xea,0x05,0x7e,0x17,0x61,0x89,0x0b,0xca,
0x21,0x4e,0x68,0x9b,0xb6,0xb4,0xc5,0xe3,0xf7,0xb7,0xb0,0x68,0x28,0x7a,0x7d,0x19,0x4a,0xd2,0x77,0x0d, 0x90,0x20,0xb4,0x4d,0x5b,0xda,0xe2,0xe1,0xfb,0x5b,0x58,0x34,0x14,0xbd,0xbe,0xf4,0x25,0xe1,0x5d,0x83,
0xfa,0x50,0xc3,0x77,0x05,0xa8,0x8c,0x40,0x23,0x66,0xb9,0x24,0xbd,0xdb,0xc4,0xe2,0xc9,0x0e,0x88,0xed, 0x3e,0xf4,0xf0,0x5d,0x01,0x2a,0x23,0xd0,0x88,0x59,0x2e,0x49,0xef,0x36,0xb1,0x7c,0xb2,0x03,0x62,0x7b,
0x41,0xac,0x60,0xbe,0x01,0xe6,0x46,0xd5,0x74,0x2d,0x5e,0xa4,0x6b,0x6b,0x54,0xd2,0x53,0x1a,0xaf,0xe2, 0x10,0x2b,0x99,0x6f,0x80,0xb9,0x51,0x35,0x5d,0xcb,0x17,0xe5,0xda,0x1a,0x95,0xf4,0x94,0xc6,0xab,0x78,
0x55,0x12,0x77,0xef,0xab,0xbb,0xaa,0xa8,0x76,0x45,0x95,0xa9,0x2d,0x4a,0x7b,0xda,0x90,0x72,0xb5,0x16, 0x95,0xc4,0xdd,0xfb,0xea,0xae,0x2a,0xaa,0x5d,0x51,0x65,0x7a,0x8b,0x52,0x4e,0x1b,0x52,0xae,0xd6,0x72,
0x13,0xe0,0xde,0x9b,0xac,0xb2,0x14,0xb2,0xc6,0x8d,0x26,0x0d,0xae,0x78,0x8a,0x8e,0x9c,0x9a,0x01,0x26, 0x02,0xdc,0x7b,0x93,0x55,0x96,0x42,0xd6,0xb8,0xd1,0xa4,0xc1,0x95,0x48,0xd1,0x51,0x50,0x33,0xc0,0x94,
0xdd,0x28,0x46,0xc6,0x31,0xaa,0x31,0x02,0xa9,0x43,0x47,0x7b,0x22,0x0d,0x67,0xb8,0x01,0x0f,0xbc,0x61, 0x1b,0xe5,0xc8,0x30,0x44,0x35,0x46,0x20,0xb5,0xef,0x28,0x27,0xca,0x70,0x86,0x1b,0xf0,0xc0,0x1b,0x36,
0x33,0xb3,0x22,0x87,0xfd,0x50,0x81,0x17,0x78,0x2a,0x18,0xb9,0x3c,0xd6,0x97,0xfc,0x8e,0xde,0x27,0x0d, 0x33,0x2b,0x72,0xd8,0xf7,0x15,0x78,0x41,0xa4,0x92,0x91,0xcb,0x63,0x7d,0xc9,0xef,0xe8,0x7d,0xd2,0xf0,
0x1f,0x85,0x86,0x86,0x59,0x74,0x22,0x15,0xe9,0x39,0xe2,0xc7,0x7e,0x28,0x1a,0x8c,0x18,0x04,0x26,0xaf, 0x51,0x6a,0x68,0x98,0x45,0x27,0x52,0x11,0x2e,0x90,0x38,0xf2,0xbe,0x68,0x30,0x62,0x10,0x98,0xa2,0xb6,
0x6d,0x9f,0xa9,0x0d,0xb9,0xc5,0x6a,0x1f,0xcf,0xc9,0x0c,0x94,0x83,0x1f,0x8f,0x1c,0x67,0x4a,0xd1,0x38, 0x7d,0xa6,0x37,0xe4,0x16,0xab,0x7d,0x3c,0x27,0x33,0x50,0x0e,0x7e,0x3c,0x0a,0x9c,0x69,0x45,0xe3,0x4c,
0x13,0xbc,0xe3,0xc9,0x5e,0x9b,0x68,0x15,0x91,0xb6,0x24,0x05,0xe2,0x94,0x4d,0xfb,0x4c,0x5a,0x19,0x71, 0xf2,0x8e,0x27,0x7b,0x6d,0xa2,0x55,0x44,0xda,0x92,0x14,0x48,0x50,0x36,0xed,0x33,0x69,0x55,0xc4,0xe5,
0x79,0x43,0x8b,0xd7,0x4c,0x49,0x95,0xfb,0x67,0x42,0x50,0xed,0xa5,0x4c,0x29,0x86,0x4a,0x72,0xec,0xd3, 0x0d,0x2d,0x5e,0x33,0x2d,0x55,0xed,0x9f,0x09,0x41,0xbd,0x97,0x2a,0xa5,0x18,0x2a,0xc9,0x91,0xa7,0x49,
0x24,0xfe,0xe2,0xfa,0x26,0x4a,0x84,0x25,0xd7,0xe5,0x7d,0x2f,0x11,0x47,0xa1,0x1a,0xfe,0x06,0x9b,0xd8, 0xfc,0xc5,0xf5,0x4d,0x94,0x48,0x4b,0xae,0xcb,0xfb,0x5e,0x22,0x81,0x42,0x3d,0xfc,0x0d,0x36,0xb1,0xc5,
0xe2,0x82,0xe3,0xf2,0xc5,0x93,0x69,0xdb,0xe7,0xdd,0xcf,0xf0,0x02,0x3b,0x6c,0x76,0xf3,0xc8,0xda,0x33, 0x85,0xc0,0xe5,0x8b,0x27,0xd3,0xb6,0xcf,0xbb,0x9f,0xe1,0x05,0x76,0xd8,0xec,0xe6,0x91,0xb5,0x67,0xf8,
0xfc,0xf1,0x0b,0xaa,0x41,0x18,0xfb,0x74,0xab,0x9e,0xb7,0x3f,0xc3,0x0c,0x33,0x46,0x99,0x8f,0x4f,0x01, 0xe3,0x17,0x54,0x83,0x30,0xf6,0xe9,0x56,0x3d,0x6f,0x7f,0x86,0x19,0x66,0x8c,0x32,0x1f,0x9f,0x02,0xc2,
0xe1,0x1e,0xe5,0x47,0xc8,0xe8,0x36,0x88,0x8a,0x1a,0x17,0xaf,0xab,0x48,0x44,0x36,0xa3,0x4d,0x10,0xb5, 0x3d,0xca,0x8f,0x90,0xd1,0x6d,0x10,0x15,0x35,0x2e,0x5e,0x57,0x91,0x8c,0x6c,0x46,0x9b,0x20,0x6a,0xa9,
0x94,0x03,0xe7,0x42,0x66,0x67,0x10,0x75,0xa8,0xc5,0xcd,0x4a,0x7d,0x84,0x22,0xa9,0x67,0x43,0x4a,0x9b, 0x00,0xce,0x85,0xca,0xce,0x20,0xea,0x50,0x8b,0x9b,0x95,0xfe,0x08,0x65,0x52,0xcf,0x86,0xb4,0x36,0x41,
0x20,0x12,0x9b,0x43,0x2d,0x2e,0x27,0xc4,0x5a,0xb0,0x22,0xd0,0x52,0xea,0x6d,0x40,0xda,0xee,0xc8,0xbf, 0x24,0x37,0x87,0x5a,0x5c,0x4e,0x88,0xb5,0x60,0x45,0x30,0x4a,0xa9,0xb7,0x01,0x69,0xbb,0xa3,0xf8,0x2e,
0xf3,0x8f,0x0e,0x7f,0xeb,0x8f,0xf9,0x81,0xf0,0x97,0xa0,0xc7,0x0d,0x18,0x6b,0xbc,0x26,0xfc,0xa5,0x3c, 0x3e,0x3a,0xfc,0x8d,0x1f,0xf3,0x03,0x11,0x2f,0x01,0xc7,0x0d,0x18,0x6b,0xbc,0x26,0xfd,0xa5,0x3d,0x77,
0x77,0xb7,0x5e,0xaf,0x67,0xbb,0xbe,0x85,0x34,0xb3,0x72,0x9a,0xb4,0x3d,0xe6,0x90,0xd7,0x82,0x86,0xed, 0xb7,0x5e,0xaf,0x67,0xbb,0xbe,0x85,0x34,0xb3,0x72,0x9a,0xb4,0x1c,0x0b,0xc8,0x6b,0x49,0xc3,0xf6,0x39,
0x73,0xf4,0x75,0x93,0x24,0x81,0xf9,0x8b,0xd6,0xf7,0x81,0x59,0x10,0x8a,0x15,0x5b,0xb3,0x2a,0x0e,0xc4, 0xfa,0xba,0x49,0x92,0xc0,0xfc,0x45,0xeb,0xfb,0xc0,0x2c,0x08,0xe5,0x8a,0xad,0x59,0x15,0x07,0xf2,0x89,
0x13,0x6d,0xcf,0xf3,0xf1,0x45,0x26,0xf1,0xd3,0x7d,0xa0,0xe6,0x36,0x33,0xf2,0x75,0x72,0x6f,0xdc,0x17, 0xb6,0xe7,0xf9,0xf8,0x22,0x93,0xf8,0xe9,0x3e,0xd0,0x73,0x9b,0x19,0xf9,0x3a,0xb9,0x37,0xee,0x8b,0x50,
0xa1,0x42,0xe4,0x70,0xa0,0x5f,0x53,0xfd,0xea,0x4e,0xba,0x73,0x96,0x1f,0xda,0xe3,0x21,0xc7,0xec,0xc5, 0x21,0x73,0x38,0x18,0x5f,0xd3,0xf1,0xd5,0x9d,0x74,0xe7,0x2c,0x3f,0xb4,0xc7,0x43,0x8e,0xd9,0x8b,0x3d,
0x1e,0xea,0x50,0xdf,0x9f,0xc0,0xf2,0x17,0x8f,0xbf,0xa2,0x25,0x07,0x3d,0xe3,0xe1,0x2d,0xea,0xec,0x4b, 0xd4,0x21,0xce,0x4f,0x60,0xf9,0x8b,0xc7,0x5f,0xd1,0x92,0xc3,0x38,0xe3,0xe1,0x2d,0xeb,0xec,0x4b,0x20,
0x20,0xfe,0x23,0x86,0xd1,0x75,0x1f,0x9f,0x9b,0x8c,0x1c,0x36,0x73,0x5e,0x6f,0xcf,0x9d,0xb1,0x49,0x8c, 0xff,0x23,0x86,0xd1,0x75,0x1f,0x9f,0x9b,0x8c,0x1a,0x36,0x73,0x5e,0x6f,0xcf,0x9d,0xb1,0x49,0x8c,0x9b,
0x9b,0xbc,0x2e,0x1c,0x75,0x00,0x48,0xcd,0x86,0x5b,0xfa,0xd6,0x14,0x99,0x36,0xa5,0x63,0xad,0xbf,0x78, 0xbc,0x2e,0x1c,0xc6,0x00,0x50,0x9a,0xf5,0xb7,0xf4,0xad,0x41,0x2f,0x85,0x4e,0x95,0xbf,0x12,0x11,0xa2,
0x98,0xf2,0x0f,0xca,0x80,0x8e,0xa6,0x5b,0x96,0x65,0x99,0xd9,0xbd,0xe3,0x21,0x16,0x4f,0x56,0x1c,0x59, 0xae,0x83,0xea,0x85,0xda,0x02,0xab,0x9e,0x90,0x85,0x07,0xfa,0xb9,0x18,0x9c,0xbd,0x4f,0xc1,0x6d,0x0b,
0x0f,0xd3,0x1d,0x25,0x2d,0xf4,0x40,0xa7,0xeb,0xc9,0xba,0x68,0xb6,0xb7,0xa2,0xc5,0xb1,0x9f,0x76,0xd7, 0x77,0x1c,0xe6,0xaf,0x3f,0xa6,0x83,0x80,0x3d,0x60,0xa6,0x69,0xb8,0x65,0x59,0x66,0x76,0xfb,0x79,0x88,
0x7d,0xab,0xe9,0x1b,0x44,0xbe,0xb3,0xd0,0x59,0xe7,0x2c,0xf3,0xec,0xa6,0x5a,0xe5,0xd9,0xcc,0x8b,0x13, 0xe5,0x93,0x15,0x47,0xc6,0x61,0xba,0xa3,0xa4,0x85,0x36,0xea,0x34,0x4e,0x55,0x5a,0x4d,0x84,0x54,0xb4,
0x92,0xd5,0x70,0xc1,0xb2,0x24,0x16,0x4f,0x46,0x8f,0x5c,0x58,0x93,0xc6,0xbf,0x27,0x44,0x6f,0x0d,0x3d, 0x38,0xf2,0x29,0x40,0xdc,0xb7,0x9a,0xbe,0x41,0xf2,0x38,0x0b,0x9d,0x75,0xce,0x32,0x4f,0x40,0xe8,0x55,
0xa3,0x55,0x51,0x14,0x8e,0x56,0x9b,0x27,0xf1,0x18,0x5d,0xc2,0x8e,0x11,0xa8,0xdd,0x1f,0xbe,0x4d,0x75, 0x9e,0x78,0xb8,0x38,0xa1,0x58,0xf5,0x17,0x2c,0x4b,0x62,0xf9,0x64,0xf4,0x28,0xa4,0x35,0x69,0xfc,0x7b,
0xa8,0x36,0xbb,0x04,0xad,0xe7,0x54,0xee,0x6e,0x98,0xd1,0xd4,0x3f,0xfa,0xdb,0xdd,0xee,0xe8,0xb7,0x7b, 0xa2,0xfc,0xd6,0xe8,0x35,0x5a,0x15,0x45,0xe1,0x68,0xb5,0x79,0x92,0x8f,0xd1,0x25,0xec,0x18,0x81,0xf2,
0xdc,0xe4,0xbb,0x11,0x69,0xa1,0x7e,0x50,0x13,0xb5,0xe8,0x8d,0xec,0xe5,0xc0,0xb5,0x16,0x1c,0x71,0x68, 0xff,0xe1,0xdb,0x54,0x87,0x6a,0xb3,0x4b,0xd0,0x7a,0x4e,0xe5,0xee,0x86,0x19,0x4d,0xfd,0xa3,0xbf,0xdd,
0xa1,0x7f,0x1a,0x4e,0x36,0x94,0x10,0xb5,0x6b,0x56,0x06,0x63,0x77,0x79,0x5a,0x11,0xd6,0xf3,0xb0,0xa8, 0xed,0x8e,0x7e,0xbb,0xc7,0x4d,0xbe,0x1b,0xd0,0x28,0xd4,0x8f,0x8b,0xa2,0x16,0xbd,0x91,0xbd,0x1a,0xb8,
0x49,0x53,0x3a,0xa4,0xf1,0xb2,0x7c,0xca,0x52,0x07,0x9f,0x33,0x0e,0x0d,0x9a,0x18,0xcc,0x44,0xc9,0xb2, 0xd6,0xc5,0x23,0x01,0x5d,0xf8,0x4f,0xc3,0xc9,0x46,0x23,0xb2,0xfc,0xcd,0x2a,0x69,0xec,0x2e,0x4f,0x2b,
0x29,0x09,0xe7,0x42,0x85,0xa3,0x96,0x40,0x26,0xfb,0x0c,0xa1,0x0f,0xe1,0xf7,0x14,0x36,0x0e,0x1c,0xd6, 0xc2,0xb8,0x08,0x8b,0x9a,0x34,0xa5,0x43,0x1a,0x2f,0x2b,0xb0,0xaa,0x96,0xf0,0x39,0xe3,0xd0,0xa0,0x89,
0x4b,0xbb,0x65,0x54,0x88,0x2e,0x68,0xc1,0xd1,0xa7,0x8e,0x67,0xd2,0x63,0xa8,0x21,0xfb,0x36,0x2d,0xb0, 0xc1,0x4c,0x94,0xaa,0xbc,0x8a,0x70,0x2e,0x54,0x3a,0x6a,0x89,0x85,0xb2,0xcf,0x10,0x5a,0x19,0x7e,0x4f,
0xcc,0xc1,0x19,0x9c,0x1b,0x9d,0x46,0xf4,0xcf,0x84,0xbb,0x26,0xb1,0x15,0x79,0xc7,0x65,0x36,0xa1,0x3f, 0x61,0xe3,0xc0,0x61,0x5c,0xd9,0xad,0xa2,0x42,0x36,0x52,0x0b,0xd1,0x3e,0x75,0x22,0x53,0x1e,0x43,0x0d,
0x23,0x7c,0xb7,0xdb,0xdd,0x06,0x6a,0xfc,0xec,0xd5,0x9a,0x44,0x96,0x10,0xe9,0x49,0x80,0x1b,0xa3,0xab, 0xd9,0xb7,0x69,0x81,0x55,0x0e,0xce,0x10,0xe1,0xe0,0xf4,0xb2,0x7f,0x26,0xe8,0x36,0x89,0xad,0xc8,0x3b,
0x8b,0x1b,0x09,0xcf,0x8f,0x28,0x7f,0x9a,0xc3,0xcd,0x75,0xac,0x51,0xa5,0x0d,0xda,0x67,0x35,0xc7,0xd4, 0x2e,0xb3,0x09,0x40,0x1a,0xe1,0xbb,0xdd,0xee,0x36,0x5c,0xe4,0x67,0xaf,0xd7,0x24,0xaa,0x84,0x28,0x4f,
0xab,0x28,0x01,0xed,0xb5,0xf1,0x1a,0x65,0x2b,0x38,0xbb,0x00,0x8a,0x3f,0x6d,0xd6,0xa0,0xc2,0x68,0x69, 0x02,0x62,0x19,0x5c,0x5d,0xdc,0x48,0x78,0x7e,0x44,0xf9,0xd3,0x1c,0xb1,0xae,0xe3,0x11,0x98,0xda,0xb8,
0xc2,0x2a,0x3a,0xe0,0xbe,0x47,0x7b,0x3c,0x9c,0x6a,0xc2,0xb1,0x3c,0x03,0xe0,0xb4,0x63,0xd8,0x5d,0x16, 0x7f,0x56,0x73,0x4c,0xbd,0x8a,0x12,0xd0,0x7e,0x34,0x7e,0x04,0xea,0x1a,0x11,0x2f,0xb0,0xe6,0x4f,0x9b,
0x49,0x04,0xe1,0xd8,0xfb,0xfc,0xb8,0x45,0x5b,0xc8,0x67,0x89,0x1a,0x74,0xdb,0xf7,0xd7,0xe3,0x99,0xb9, 0xd5,0xeb,0x30,0x5a,0x9a,0xb0,0x8a,0x0e,0x98,0x73,0xb4,0xc7,0xfd,0xa9,0x26,0x02,0xab,0x63,0x04,0x4e,
0xc7,0x5e,0x9c,0x35,0x64,0xc3,0x97,0xe9,0x91,0xd9,0x92,0x5b,0x7a,0x62,0xa8,0x1b,0x17,0x58,0xc4,0x45, 0x3b,0x86,0xdd,0x65,0x91,0x02,0x21,0x8e,0xbd,0xcf,0x8f,0x5b,0xb4,0x85,0x7c,0x56,0xc0,0x63,0x44,0x0e,
0x15,0x83,0xa7,0x90,0x5f,0xc3,0x91,0x3b,0xd8,0x43,0x83,0x23,0xc5,0x77,0x0f,0xf4,0xd6,0x02,0x1b,0x94, 0xfe,0x7a,0x3c,0x33,0xf7,0xc8,0xe5,0x71,0x45,0x61,0x06,0x5d,0xf6,0x6d,0xc9,0x2d,0x3d,0x31,0xd4,0xd9,
0xe3,0xb3,0x38,0xf9,0xe6,0x37,0xca,0xce,0x31,0xb9,0x71,0x10,0xe8,0x1c,0xbc,0xd5,0xe8,0x58,0x86,0x70, 0x21,0xe0,0xf1,0x8a,0x1c,0x1a,0x16,0x88,0xc7,0xc5,0x2e,0xbd,0xa7,0xd6,0x5f,0x43,0xab,0x3b,0xd8,0x66,
0xd4,0x4c,0xd5,0x7f,0x5c,0xce,0xad,0x59,0x8c,0x3b,0x56,0xed,0x62,0xf1,0x18,0x16,0xa0,0x02,0xca,0x1b, 0x83,0x56,0xe5,0x77,0x0f,0xc0,0x1f,0x05,0x36,0x28,0xc7,0x67,0x71,0xea,0xcd,0x6f,0xb7,0x9d,0x86,0xca,
0x5c,0x1a,0x52,0xf3,0x3e,0x68,0xdf,0xc2,0x5e,0x81,0xdc,0x86,0x9e,0x70,0x39,0x2e,0x10,0x98,0xfb,0x2e, 0x0a,0xc8,0x05,0x01,0x0e,0x6d,0xc6,0x70,0x07,0xeb,0x46,0xa6,0xfa,0x3f,0x2e,0xe7,0xd6,0x2c,0xc6,0x1d,
0x30,0xa2,0x3c,0x47,0xcd,0xb1,0xf4,0x9c,0xd0,0x2c,0xb4,0x0e,0x9e,0x4b,0xac,0x2f,0xb2,0xee,0xc1,0x64, 0xab,0x76,0xb1,0x7c,0x0c,0x0b,0x50,0x01,0xe5,0x0d,0x2e,0x0d,0xa9,0x79,0xef,0x47,0xf7,0xc3,0x76,0x82,
0x88,0xf8,0xa2,0x3c,0x6e,0x39,0x7c,0x27,0x0a,0x8d,0xdf,0xe0,0x49,0x15,0xcb,0x6e,0xd9,0x36,0xec,0x1c, 0xdc,0x86,0x9e,0x70,0x39,0x27,0x71,0x6d,0x9a,0x0f,0x5b,0xa9,0x3b,0x2c,0x00,0xa2,0xfb,0x2e,0x21,0xac,
0x5a,0xcf,0x60,0x86,0x80,0x5c,0x6e,0x74,0x18,0x36,0x7e,0xed,0x92,0xab,0xda,0xc9,0x32,0xe8,0xdf,0x26, 0x3a,0xe6,0xcd,0xa1,0xfe,0x9c,0xd0,0x2c,0xb4,0xce,0xc5,0xcb,0xa3,0x88,0xdc,0xfd,0x07,0x93,0x7d,0xf2,
0xd7,0x51,0x1a,0xca,0x2f,0xa1,0xcd,0xd3,0xbd,0xa9,0xb0,0x8a,0xb9,0xc8,0xfa,0x8d,0x82,0x47,0x19,0x67, 0x8b,0xde,0x2a,0x6b,0xa7,0x76,0xb2,0x88,0xf9,0x3d,0x35,0xa9,0x62,0x39,0x4c,0xb5,0x24,0x3b,0x3f,0xd7,
0x00,0x66,0xe0,0x80,0x7f,0x48,0x19,0x05,0x24,0x8e,0xbf,0x86,0x0f,0x49,0x89,0xf7,0xf7,0xb6,0x85,0x12, 0x33,0x14,0x24,0x11,0xa1,0x1b,0x56,0x86,0x8d,0x5f,0xbb,0xe4,0xaa,0x76,0xaa,0xc4,0xfa,0xf7,0xd7,0x75,
0x97,0xc6,0x2e,0x92,0x72,0x80,0x94,0x65,0xb7,0x60,0x15,0x9a,0x68,0xb1,0xca,0x24,0x9c,0xd7,0xc7,0x5f, 0xd4,0x78,0xd2,0x58,0x22,0xaf,0xa7,0x7b,0x53,0xbd,0x35,0x73,0x59,0x51,0x36,0x1a,0xbd,0x65,0x02,0x80,
0x40,0x93,0x73,0x64,0xe8,0x41,0x47,0xe7,0xa2,0xe5,0x54,0x29,0x9d,0x57,0x31,0x44,0x8d,0x81,0xee,0x37, 0x12,0xaf,0x28,0x3b,0xa4,0x8c,0xc2,0x41,0x01,0x7f,0x0d,0x1f,0x92,0x12,0xef,0xef,0x6d,0x0b,0x15,0x6c,
0x13,0xdb,0x9a,0x82,0x7f,0xf6,0xf8,0xc5,0x31,0x85,0x2d,0x8a,0xa0,0x3c,0xf2,0xd6,0xeb,0xe1,0xdc,0x37, 0x8e,0x5d,0xa0,0xe7,0xe0,0x3c,0xcb,0x6e,0xc9,0x2a,0x34,0x61,0x66,0xe5,0xdf,0x1a,0x72,0xed,0x17,0xc0,
0x36,0xe7,0x45,0xd0,0x08,0xeb,0x8d,0x8e,0xd1,0x9e,0x34,0x90,0x85,0xce,0x75,0xc7,0x6c,0xe5,0xd6,0xee, 0xee,0x1c,0xb8,0x7a,0x90,0xd7,0xb9,0x20,0x3a,0x15,0x70,0x4c,0xc8,0x18,0xa2,0xc6,0x9c,0x2c,0xae,0x12,
0x43,0x4b,0x74,0xb2,0x24,0x3d,0x2b,0x2e,0x95,0x78,0x18,0xec,0x15,0x0f,0x6c,0xb2,0xc6,0x24,0xe4,0x8b, 0xdf,0x74,0x8b,0x62,0x4b,0xb0,0xcd,0x01,0x27,0xee,0xf1,0x8b,0x63,0x2f,0x5b,0xd4,0x1b,0x75,0x6c,0xaf,
0x27,0x23,0xb3,0x4b,0x32,0x77,0xe2,0x19,0xdd,0x22,0xe3,0x54,0x17,0xe1,0x10,0x4f,0x57,0x90,0x5e,0x54, 0xd7,0xfd,0xb9,0x71,0x6d,0xce,0x8b,0xa0,0x13,0xd7,0x9b,0x31,0x90,0x39,0x69,0x20,0xc7,0x9d,0x2b,0x9b,
0xc5,0x29,0x54,0x45,0x69,0x70,0xce,0xc1,0x9b,0x5b,0xef,0x66,0xa2,0x9a,0x32,0xf2,0x29,0x5a,0x5e,0x63, 0xd9,0xca,0xad,0xdd,0x08,0x97,0xf0,0x68,0x49,0x7a,0x56,0x5c,0x29,0xf1,0xd0,0xdb,0x2b,0x1e,0xd8,0x64,
0x01,0x93,0xd1,0x1a,0x5e,0x5d,0x2e,0x81,0xce,0x32,0x4f,0xf4,0x5d,0x98,0x3e,0x47,0xe2,0x85,0x05,0x2a, 0x8d,0x49,0xda,0x17,0x4f,0xbe,0x67,0x97,0x64,0xee,0xe4,0x33,0xb8,0x25,0xcc,0xa9,0x5d,0x57,0x0b,0xb0,
0x2a,0xed,0xc9,0x29,0x42,0xbd,0x95,0x58,0xdd,0x94,0x48,0xcb,0x75,0x5c,0xca,0x62,0x76,0xa6,0x57,0x77, 0xa2,0x0b,0x75,0xc9,0xeb,0x9d,0xb3,0xfc,0xe6,0xd6,0xfb,0xa5,0xa8,0xa6,0x8c,0x7c,0xca,0x9e,0xdb,0x58,
0x6d,0xb6,0x81,0x30,0x0b,0xbd,0x68,0xe6,0x73,0x17,0x96,0x58,0x7b,0x36,0x8b,0x46,0x7d,0xcb,0x00,0x52, 0xc8,0x68,0xb0,0x86,0x57,0x97,0x0b,0xac,0xb3,0xcc,0x13,0xa2,0x17,0xa6,0xcf,0xe1,0x7a,0x61,0x81,0x0e,
0x45,0x64,0x0c,0x33,0x14,0xb7,0xc4,0x33,0x63,0x04,0xf0,0x91,0x76,0xa2,0x32,0xf5,0x0e,0x34,0x4b,0xac, 0x5d,0x7b,0x72,0x0a,0x63,0x6f,0x9d,0xd7,0xb7,0x3d,0xca,0xf2,0x31,0x78,0x55,0xc5,0x3b,0xd3,0xeb,0xfb,
0xf3,0x85,0x73,0x37,0x73,0x15,0x12,0xc9,0x6c,0x88,0x7a,0x28,0x46,0x80,0xac,0x86,0x05,0x56,0xea,0x39, 0x42,0xdb,0x40,0x98,0x85,0x66,0x38,0xf3,0xb9,0x8b,0x8b,0xac,0x3d,0x9b,0x45,0xe3,0x78,0x53,0x02,0x52,
0xee,0x1c,0x29,0x5b,0x2b,0xa1,0xd8,0x74,0xae,0xf1,0xb5,0x40,0x41,0xba,0xd2,0x9c,0xcf,0xd7,0x5b,0x0e, 0x65,0x64,0xf4,0x33,0x18,0xb9,0x04,0x54,0x43,0x04,0xf8,0x95,0x76,0xb2,0x7c,0x71,0x07,0x1b,0x26,0xd6,
0xe9,0x83,0x11,0xb1,0x8a,0xde,0x50,0x73,0xc4,0x3f,0xb8,0xfd,0x89,0x64,0x36,0x9f,0x5d,0x39,0x5e,0xe2, 0x01,0xc7,0xb9,0x5f,0xba,0x8a,0xc9,0x54,0x36,0x44,0x1c,0x2a,0x16,0x40,0xbb,0x7e,0x01,0xd6,0xb8,0xc0,
0x3e,0x37,0x6c,0x08,0x4f,0x38,0x7f,0x25,0xe0,0x85,0xae,0x03,0xb7,0xa0,0x56,0x42,0x03,0x81,0x15,0xa6, 0x9d,0x23,0x65,0x6b,0x25,0x14,0x9b,0x0e,0x56,0xbe,0x06,0x2b,0x49,0x57,0x23,0xe7,0xf3,0x15,0x9d,0x43,
0xc2,0x63,0x2a,0xb8,0xdc,0x8e,0x19,0xc8,0x85,0xb3,0xa8,0x1c,0x5c,0xd6,0x24,0xeb,0x50,0xa4,0x24,0xa5, 0xfa,0x60,0x44,0xac,0xa2,0x37,0xd4,0x1c,0xf1,0x0f,0x6e,0xb0,0x22,0x95,0xcd,0x76,0x03,0xbb,0xc0,0x7d,
0xa9,0x11,0xa5,0xde,0x43,0x5e,0x43,0xfc,0x5e,0x94,0xef,0xd7,0x67,0x63,0x5d,0x54,0x6d,0xfc,0x17,0x55, 0x6e,0xd8,0xc5,0x83,0xeb,0xb9,0x3a,0x99,0x32,0xaf,0xb6,0x63,0x86,0xb2,0xe1,0x3c,0xad,0x06,0x97,0x85,
0xb6,0x2e,0xfa,0xf6,0xd1,0xc5,0x45,0x96,0x42,0x07,0xfa,0x19,0xca,0xca,0xa8,0x95,0xf9,0x9d,0x42,0xf4, 0xcb,0x3a,0x95,0x69,0x49,0x69,0x6a,0x44,0xe9,0xf7,0x50,0xd4,0x10,0xbf,0x17,0xe5,0xfb,0xf5,0xd9,0x58,
0x75,0x8c,0x07,0xca,0xfd,0x10,0x87,0x2e,0xf6,0xaa,0xa5,0xe2,0x92,0xc9,0x2e,0xa9,0x9e,0xe0,0x97,0x71, 0x97,0x6d,0x1b,0xff,0x65,0x9b,0xad,0xcb,0x78,0x83,0xea,0x02,0x33,0x4b,0x21,0x79,0x38,0x57,0x95,0x71,
0xed,0x54,0x17,0x79,0x5f,0x34,0xf8,0x80,0xae,0x39,0xb8,0x8f,0xbe,0xab,0xa5,0x61,0x79,0x90,0xd1,0x87, 0x54,0xe6,0x77,0x0a,0x19,0xaf,0x94,0x3c,0x58,0xf2,0x87,0x40,0x78,0xb1,0x57,0x2d,0x95,0x17,0x65,0x76,
0x99,0x6c,0xba,0x6a,0x17,0xbc,0x4c,0x1f,0x76,0xed,0xb9,0xda,0x9f,0xbc,0xf2,0x74,0xe9,0xb3,0x0a,0xbe, 0x49,0xf5,0x04,0xbf,0x8a,0x6b,0xa7,0xba,0xa8,0x3b,0xaf,0xde,0x87,0xb4,0xcd,0xcd,0xc1,0xe0,0xbb,0x1e,
0xb0,0xd9,0xb7,0x50,0x9e,0x89,0x45,0x0e,0x5b,0xa5,0xe8,0xc2,0x4a,0x8d,0x2f,0x7d,0x73,0xc6,0x91,0x1e, 0xeb,0x97,0x27,0xa9,0xf1,0x34,0x95,0x4d,0x3f,0x17,0x48,0x5e,0xa6,0x59,0xbb,0xf6,0x5c,0x6d,0x62,0x5e,
0x85,0xd4,0x6f,0x01,0xb3,0x43,0xd9,0x74,0x2c,0x73,0x6c,0xdb,0xc6,0xe2,0x99,0x6c,0x57,0x45,0x41,0x72, 0x79,0x63,0xe9,0xb3,0x0a,0xbe,0xb4,0xd9,0xb7,0x50,0x1d,0xca,0x65,0x0e,0x5b,0xa5,0xe8,0xc2,0xca,0x11,
0xd1,0x27,0xf7,0xb9,0x53,0x6d,0xda,0xfc,0x01,0x25,0x4f,0x8e,0x5f,0x74,0x7b,0xb9,0x02,0xae,0xe5,0xa5, 0xe9,0xf9,0xe6,0x8c,0x23,0x3d,0x0a,0xe9,0xdf,0x33,0x66,0xa7,0xc2,0xe9,0x5c,0xe8,0xd8,0xb6,0x8d,0xe5,
0x76,0x74,0xc2,0xf8,0xb5,0x44,0x1f,0xfd,0x32,0xa1,0xcd,0x8c,0x41,0xd3,0x8a,0xea,0x49,0x4c,0x55,0xa0, 0x33,0xd9,0xae,0x8b,0x82,0xe2,0x32,0x5e,0x1d,0xcc,0x9d,0x6a,0xd3,0xe6,0x0f,0x28,0x79,0x72,0xfc,0x32,
0x41,0x28,0xc3,0x24,0x34,0x57,0x13,0x72,0x08,0x62,0xe5,0x0d,0xeb,0xa1,0x41,0x62,0x28,0x55,0x63,0xa8, 0xb6,0x97,0x2b,0xd0,0x5d,0x5d,0xcc,0x47,0x27,0x8c,0x5f,0x4b,0xf4,0xc1,0x97,0x09,0x6d,0x66,0x0c,0x9c,
0xf8,0x81,0x82,0x7f,0xac,0xa2,0xa4,0xb7,0x89,0x1d,0x2a,0x4e,0x07,0xbd,0x4c,0x84,0x91,0xcc,0x22,0x27, 0xd5,0x54,0x4f,0x72,0xaa,0x02,0x0d,0x42,0x15,0x26,0xa1,0xb9,0x1b,0x51,0x43,0x10,0x2b,0x6f,0x78,0x1c,
0xf8,0xe4,0x08,0x54,0x39,0x68,0x28,0xdc,0x73,0x72,0xbd,0x62,0xe8,0xc3,0xf3,0x17,0x97,0xfc,0x96,0x5a, 0xea,0x15,0xd0,0xd2,0x35,0x86,0xca,0x1f,0x59,0xc4,0xc7,0x2a,0x4a,0xb8,0x4d,0xec,0x50,0x09,0xda,0x8f,
0xe9,0xae,0xbf,0xa5,0x66,0xaa,0xfe,0xe2,0x14,0x4d,0xcd,0x04,0xb7,0xe5,0xad,0x1a,0x5f,0xe8,0x89,0x67, 0xcb,0x64,0x18,0xa9,0x2c,0x72,0x82,0x4f,0x8d,0x40,0x95,0x83,0x86,0x22,0x3c,0x47,0xe7,0x2b,0x86,0x3e,
0x46,0x17,0x75,0x57,0x50,0xd9,0x52,0x5d,0x2e,0xbe,0xa4,0xb8,0xbe,0x62,0xb8,0xa6,0xf7,0xb2,0xfb,0x46, 0x3c,0x7f,0x71,0xc9,0x6f,0xa9,0x95,0xee,0xfa,0x5b,0x6a,0xa6,0xee,0x2f,0x99,0x8b,0xfa,0x15,0x13,0xdc,
0x0c,0xf7,0x98,0xff,0x8b,0x51,0x3f,0xbb,0xe6,0xd8,0x80,0xd8,0xff,0x01,0xe8,0x09,0xf1,0xde,0x46,0x1b, 0x96,0xb7,0x6a,0x7c,0xa1,0x27,0x9e,0x19,0x5d,0xd4,0x5d,0xe3,0x69,0x4b,0x75,0xb5,0xf8,0x92,0xe2,0xe3,
0x00,0x00}; 0x1d,0xc7,0x35,0xbd,0x97,0xdd,0x37,0x62,0x98,0x63,0xf1,0x2f,0x46,0x7c,0x76,0xcf,0xb2,0x01,0xb1,0xff,
0x03,0xb4,0x53,0x9f,0xac,0x0a,0x1c,0x00,0x00};
#endif #endif

View File

@ -4,178 +4,181 @@
#include <pgmspace.h> #include <pgmspace.h>
const uint8_t EmbeddedIndex[] PROGMEM = { const uint8_t EmbeddedIndex[] PROGMEM = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xed,0x5b,0xe9,0x57,0xe3,0x38,0x12,0xff,0x57,0x4c, 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xed,0x5b,0x6b,0x57,0xe3,0x38,0x12,0xfd,0x2b,0xee,
0x66,0x77,0xa0,0xb7,0x9b,0x23,0x90,0x66,0x1a,0x06,0x98,0x09,0x39,0x20,0x40,0x42,0x48,0xc2,0xf9,0x65, 0xcc,0xee,0x40,0x6f,0x0f,0x8f,0x00,0xcd,0x34,0x0c,0xb0,0x13,0xf2,0x80,0x00,0x09,0x21,0x09,0xcf,0x2f,
0x9f,0x62,0x2b,0xb1,0xc0,0xb1,0x8d,0x64,0x27,0xa4,0x67,0xfa,0x7f,0x5f,0x1d,0x3e,0x64,0x5b,0x4e,0x1c, 0x7b,0x14,0x5b,0x89,0x05,0x8e,0x6d,0x24,0x3b,0x21,0x3d,0xd3,0xff,0x7d,0xf5,0xf0,0x43,0xb6,0x65,0xc7,
0xb6,0xf7,0xf5,0xcc,0x7b,0xdb,0x1f,0x3a,0x58,0x75,0xe8,0xa7,0x52,0x55,0xa9,0x24,0xcb,0x47,0x6b,0xf5, 0x61,0x7b,0x4f,0xcf,0x9e,0xb3,0xfd,0xa1,0x83,0x55,0xa5,0xab,0xab,0x52,0xa9,0x54,0x92,0xe5,0xa3,0x0f,
0xeb,0xda,0xe0,0xb1,0xdb,0xd0,0x4c,0x6f,0x62,0x9d,0x1c,0x05,0xff,0x43,0x60,0x9c,0x1c,0x4d,0xa0,0x07, 0x8d,0xeb,0xfa,0xf0,0xb1,0xd7,0xd4,0x4c,0x6f,0x6a,0x9d,0x1c,0x05,0xff,0x43,0x60,0x9c,0x1c,0x4d,0xa1,
0x34,0xdd,0x04,0x98,0x40,0xef,0xb8,0x74,0x3b,0x68,0x6e,0x7e,0x29,0x9d,0x1c,0x79,0xc8,0xb3,0xe0,0xc9, 0x07,0x34,0xdd,0x04,0x98,0x40,0xef,0xb8,0x72,0x3b,0x6c,0x6d,0x7c,0xa9,0x9c,0x1c,0x79,0xc8,0xb3,0xe0,
0xd1,0x76,0xf0,0xcb,0x99,0x6c,0x30,0x81,0xc7,0x25,0xcf,0x84,0x13,0xb8,0xa9,0x3b,0x96,0x83,0x4b,0x9a, 0xc9,0xd1,0x56,0xf0,0xcb,0x95,0x6c,0x30,0x85,0xc7,0x15,0xcf,0x84,0x53,0xb8,0xa1,0x3b,0x96,0x83,0x2b,
0xee,0xd8,0x1e,0xb4,0xa9,0xdc,0x4f,0x3b,0xfc,0x5f,0x29,0xc1,0x3a,0x45,0x70,0xe6,0x3a,0xd8,0x93,0xf8, 0x9a,0xee,0xd8,0x1e,0xb4,0x69,0xbd,0x9f,0xb6,0xf9,0xbf,0x4a,0x42,0x75,0x86,0xe0,0xdc,0x75,0xb0,0x27,
0x66,0xc8,0xf0,0xcc,0x63,0x03,0x4e,0x91,0x0e,0x37,0xf9,0xc3,0x27,0x64,0x23,0x0f,0x01,0x6b,0x93,0xe8, 0xe9,0xcd,0x91,0xe1,0x99,0xc7,0x06,0x9c,0x21,0x1d,0x6e,0xf0,0x87,0x5f,0x90,0x8d,0x3c,0x04,0xac,0x0d,
0xc0,0x82,0xc7,0x65,0xaa,0xc2,0x42,0xf6,0x8b,0x86,0xa1,0x75,0x5c,0x22,0xde,0xdc,0x82,0xc4,0x84,0x90, 0xa2,0x03,0x0b,0x1e,0x57,0x29,0x84,0x85,0xec,0x17,0x0d,0x43,0xeb,0xb8,0x42,0xbc,0x85,0x05,0x89,0x09,
0xea,0x30,0x31,0x1c,0x1d,0x97,0x86,0xbe,0x6d,0x58,0x70,0x4b,0x27,0x84,0x32,0x12,0x1d,0x23,0xd7,0xd3, 0x21,0xc5,0x30,0x31,0x1c,0x1f,0x57,0x46,0xbe,0x6d,0x58,0x70,0x53,0x27,0x84,0x2a,0x12,0x1d,0x23,0xd7,
0x08,0xd6,0x23,0xc2,0x33,0x6b,0xdf,0x16,0x04,0xfa,0x87,0x18,0xe3,0xd0,0x31,0xe6,0x27,0x47,0x06,0x9a, 0xd3,0x08,0xd6,0x23,0xc1,0x33,0x2b,0xdf,0x12,0x02,0xfa,0x87,0xe8,0xe3,0xc8,0x31,0x16,0x27,0x47,0x06,
0x6a,0xc8,0x38,0x2e,0x01,0xd7,0x2d,0x89,0xa7,0xe9,0xa6,0x6e,0x39,0xe0,0x45,0x3c,0xe8,0x16,0x20,0xe4, 0x9a,0x69,0xc8,0x38,0xae,0x00,0xd7,0xad,0x88,0xa7,0xd9,0x86,0x6e,0x39,0xe0,0x45,0x3c,0xe8,0x16,0x20,
0xb8,0x64,0x3b,0x1e,0x1a,0x21,0x1d,0x78,0xc8,0xb1,0x6b,0x14,0x36,0x40,0x36,0xc4,0xa5,0x5c,0x96,0x92, 0xe4,0xb8,0x62,0x3b,0x1e,0x1a,0x23,0x1d,0x78,0xc8,0xb1,0xeb,0x94,0x36,0x40,0x36,0xc4,0x95,0x5c,0x95,
0x76,0x18,0xb4,0xfe,0xa1,0x41,0x8c,0x1d,0x7c,0xa8,0xc9,0x64,0x6d,0xed,0x58,0xb3,0x7d,0xcb,0xd2,0x7e, 0x8a,0x76,0x18,0x94,0xfe,0xa1,0x41,0x8c,0x1d,0x7c,0xa8,0xc9,0x62,0xed,0xc3,0xb1,0x66,0xfb,0x96,0xa5,
0xfe,0x39,0xd1,0xbe,0xc5,0x79,0xb5,0x6f,0x25,0x8a,0x01,0x8d,0x92,0x2a,0x43,0x99,0x92,0xf6,0xbb,0x6e, 0xfd,0xfc,0x73,0xa2,0x7c,0x93,0xeb,0x6a,0xdf,0x2a,0x94,0x03,0x1a,0x27,0x21,0xc3,0x3a,0x15,0xed,0x77,
0x21,0xfd,0x65,0xcb,0xc5,0x70,0xca,0xad,0x67,0x22,0x03,0x76,0xe4,0xce,0xa9,0x09,0x5c,0x60,0x87,0xb8, 0xdd,0x42,0xfa,0xcb,0xa6,0x8b,0xe1,0x8c,0x5b,0xcf,0x44,0x06,0xec,0xca,0x8d,0x53,0x13,0xb8,0xc0,0x0e,
0x26,0x90,0x10,0x30,0x86,0xa5,0x93,0x3f,0xfe,0x48,0x76,0x16,0x10,0xb4,0x6f,0xdf,0xa8,0x69,0xa8,0x00, 0x79,0x4d,0x21,0x21,0x60,0x02,0x2b,0x27,0x7f,0xfc,0x91,0x6c,0x2c,0x10,0x68,0xdf,0xbe,0x51,0xd3,0xd0,
0x35,0x0c,0x1d,0x4e,0xf8,0x7f,0x68,0x17,0x5d,0x3d,0x5a,0x66,0x42,0xde,0x86,0x26,0x63,0x61,0x6a,0x03, 0x0a,0xd4,0x30,0xb4,0x3b,0xe1,0xff,0xa1,0x5d,0x74,0x75,0x6f,0x99,0x09,0x79,0x19,0x9a,0x4e,0x84,0xa9,
0x78,0xe0,0x10,0x4d,0xa8,0xc6,0x6d,0xd7,0x1e,0xff,0x3a,0x04,0x04,0xee,0x57,0x3e,0xa1,0xbb,0xd3,0xeb, 0x0d,0xe0,0x81,0x43,0x34,0xa5,0x88,0x5b,0xae,0x3d,0xf9,0x6d,0x04,0x08,0xdc,0xdf,0xfb,0x05,0xdd,0x9d,
0xde,0x6c,0xe7,0xf2,0x6c,0xec,0x54,0xe9,0xbf,0x4e,0xff,0xd6,0x6c,0xdc,0x8e,0xe9,0x5f,0x75,0xf6,0x58, 0x5e,0xf7,0xe7,0xdb,0x97,0x67,0x13,0xa7,0x46,0xff,0x75,0x07,0xb7,0x66,0xf3,0x76,0x42,0xff,0x6a,0xb0,
0x9d,0xd5,0xaa,0x8f,0xf4,0xe7,0xf4,0xa1,0x3a,0x9d,0x9c,0xb3,0x86,0xb3,0x87,0x5e,0xf3,0xfe,0xbc,0x37, 0xc7,0xda,0xbc,0x5e,0x7b,0xa4,0x3f,0xa7,0x0f,0xb5,0xd9,0xf4,0x9c,0x15,0x9c,0x3d,0xf4,0x5b,0xf7,0xe7,
0x18,0xee,0x3e,0xed,0x18,0xbb,0xcd,0xf9,0xd3,0xcd,0xe9,0xe9,0xd3,0xd9,0x01,0x7a,0xea,0x9f,0x5e,0x0c, 0xfd,0xe1,0x68,0xe7,0x69,0xdb,0xd8,0x69,0x2d,0x9e,0x6e,0x4e,0x4f,0x9f,0xce,0x0e,0xd0,0xd3,0xe0,0xf4,
0xef,0x9b,0xf6,0xd3,0xdd,0x85,0xf5,0x78,0xdf,0xfb,0xac,0xeb,0x96,0xd5,0x65,0x02,0x0f,0xa7,0x17,0xbd, 0x62,0x74,0xdf,0xb2,0x9f,0xee,0x2e,0xac,0xc7,0xfb,0xfe,0x67,0x5d,0xb7,0xac,0x1e,0xab,0xf0,0x70,0x7a,
0x46,0xf3,0x16,0x76,0x30,0xb9,0x37,0x1a,0x9d,0xf1,0x73,0xf5,0xe6,0x4a,0x7f,0x3c,0xd5,0xab,0x5d,0xbd, 0xd1,0x6f,0xb6,0x6e,0x61,0x17,0x93,0x7b,0xa3,0xd9,0x9d,0x3c,0xd7,0x6e,0xae,0xf4,0xc7,0x53,0xbd,0xd6,
0x5a,0x33,0x6e,0x3a,0x95,0x6a,0x67,0xb7,0x5d,0xab,0x8c,0x7b,0xe4,0xf1,0xe2,0xa0,0xd1,0x31,0xaa,0xdd, 0xd3,0x6b,0x75,0xe3,0xa6,0xbb,0x57,0xeb,0xee,0x74,0xea,0x7b,0x93,0x3e,0x79,0xbc,0x38,0x68,0x76,0x8d,
0xc7,0x6a,0x1d,0x54,0xeb,0xd0,0x35,0x6e,0xcd,0x76,0xf9,0xb5,0xf9,0xec,0xe3,0xb1,0x7b,0xd0,0xd7,0xdb, 0x5a,0xef,0xb1,0xd6,0x00,0xb5,0x06,0x74,0x8d,0x5b,0xb3,0x53,0x7d,0x6d,0x3d,0xfb,0x78,0xe2,0x1e,0x0c,
0xe7,0x63,0xe3,0x97,0xf2,0xde,0xdd,0xde,0xc8,0xbb,0x75,0x3f,0xc3,0xf3,0x71,0xbb,0x59,0xc6,0xf8,0xac, 0xf4,0xce,0xf9,0xc4,0xf8,0xb5,0xba,0x7b,0xb7,0x3b,0xf6,0x6e,0xdd,0xcf,0xf0,0x7c,0xd2,0x69,0x55,0x31,
0x01,0xfc,0xfd,0xbb,0xf3,0xfa,0xee,0x79,0x7b,0x78,0xfe,0xf9,0xf5,0xe2,0xfa,0xea,0x1c,0x83,0x8f,0xa3, 0x3e,0x6b,0x02,0x7f,0xff,0xee,0xbc,0xb1,0x73,0xde,0x19,0x9d,0x7f,0x7e,0xbd,0xb8,0xbe,0x3a,0xc7,0xe0,
0x97,0xaf,0x43,0xf2,0xd8,0x23,0x66,0xfb,0x8b,0x7b,0x35,0x18,0xdf,0xb6,0xc6,0xfd,0xf1,0xd4,0x6f,0xb7, 0xd3,0xf8,0xe5,0xeb,0x88,0x3c,0xf6,0x89,0xd9,0xf9,0xe2,0x5e,0x0d,0x27,0xb7,0xed,0xc9,0x60,0x32,0xf3,
0x9d,0xc7,0xd9,0x47,0xd4,0x7e,0x1c,0xe0,0xfd,0x1b,0xb3,0xf3,0xd8,0xc6,0x1d,0xd4,0x99,0xcf,0x5a,0x57, 0x3b,0x1d,0xe7,0x71,0xfe,0x09,0x75,0x1e,0x87,0x78,0xff,0xc6,0xec,0x3e,0x76,0x70,0x17,0x75,0x17,0xf3,
0xd6,0xfc,0xee,0xd2,0xd0,0xe7,0xf3,0x2e,0x99,0xe8,0x3d,0x32,0xbf,0xfd,0xbc,0xf3,0x32,0x3e,0xf7,0x6e, 0xf6,0x95,0xb5,0xb8,0xbb,0x34,0xf4,0xc5,0xa2,0x47,0xa6,0x7a,0x9f,0x2c,0x6e,0x3f,0x6f,0xbf,0x4c,0xce,
0x6e,0xfc,0xdd,0xaa,0xd1,0xb9,0x68,0xba,0xf5,0x97,0xea,0x65,0xa5,0xb5,0x7d,0xd5,0xba,0x6f,0x0f,0x77, 0xbd,0x9b,0x1b,0x7f,0xa7,0x66,0x74,0x2f,0x5a,0x6e,0xe3,0xa5,0x76,0xb9,0xd7,0xde,0xba,0x6a,0xdf,0x77,
0xab,0xa4,0x75,0xaa,0xbf,0xee,0xa0,0xde,0x19,0xbc,0x39,0xeb,0x0e,0x9e,0x46,0x77,0xfb,0x37,0x8d,0x9d, 0x46,0x3b,0x35,0xd2,0x3e,0xd5,0x5f,0xb7,0x51,0xff,0x0c,0xde,0x9c,0xf5,0x86,0x4f,0xe3,0xbb,0xfd,0x9b,
0x8f,0xe3,0xfa,0x59,0x73,0x17,0x3b,0xe4,0xac,0x31,0x6e,0xdf,0xbc,0xb5,0xaa,0xa6,0xfd,0x54,0x45,0xdd, 0xe6,0xf6,0xa7,0x49,0xe3,0xac,0xb5,0x83,0x1d,0x72,0xd6,0x9c,0x74,0x6e,0xde,0xda,0x35,0xd3,0x7e,0xaa,
0xce,0x97,0x8a,0xef,0xf6,0x46,0x3b,0xdb,0xd7,0x96,0x4b,0xae,0x6a,0xa7,0xee,0xde,0xfc,0x75,0x47,0x37, 0xa1,0x5e,0xf7,0xcb,0x9e,0xef,0xf6,0xc7,0xdb,0x5b,0xd7,0x96,0x4b,0xae,0xea,0xa7,0xee,0xee,0xe2,0x75,
0xc7,0x5e,0xed,0xf6,0xf6,0x09,0xf7,0x66,0xfb,0x37,0xf5,0xeb,0xbd,0xc6,0xfd,0x79,0xff,0xb5,0x79,0xe0, 0x5b,0x37,0x27,0x5e,0xfd,0xf6,0xf6,0x09,0xf7,0xe7,0xfb,0x37,0x8d,0xeb,0xdd,0xe6,0xfd,0xf9,0xe0,0xb5,
0x01,0xfc,0x04,0xfa,0x97,0x17,0x0f,0xf0,0xa2,0x6e,0x0c,0x6f,0x2c,0xd2,0xd8,0xb9,0xac,0xef,0x5f,0x74, 0x75,0xe0,0x01,0xfc,0x04,0x06,0x97,0x17,0x0f,0xf0,0xa2,0x61,0x8c,0x6e,0x2c,0xd2,0xdc,0xbe,0x6c,0xec,
0xb6,0x2f,0x9d,0x1e,0x39,0x33,0xdf,0x1e,0x2e,0x6b,0x56,0xed,0xf2,0xfc,0xa2,0x35,0x7a,0x19,0x98,0xb3, 0x5f,0x74,0xb7,0x2e,0x9d,0x3e,0x39,0x33,0xdf,0x1e,0x2e,0xeb,0x56,0xfd,0xf2,0xfc,0xa2,0x3d,0x7e,0x19,
0xf6,0xbd,0x59,0xdd,0x37,0x4e,0xfb,0x8e,0xd5,0x43,0xcf,0x2f,0x17,0xd7,0x46,0xf9,0xe9,0x76,0x7a,0x30, 0x9a,0xf3,0xce,0xbd,0x59,0xdb,0x37,0x4e,0x07,0x8e,0xd5,0x47,0xcf,0x2f,0x17,0xd7,0x46,0xf5,0xe9,0x76,
0xbf,0x39,0xb8,0x76,0x5f,0x87,0xe7,0x2e,0x02,0xb7,0x77,0xa0,0x31,0x7c,0x6a,0xfc,0xe2,0xb5,0x5a,0xcf, 0x76,0xb0,0xb8,0x39,0xb8,0x76,0x5f,0x47,0xe7,0x2e,0x02,0xb7,0x77,0xa0,0x39,0x7a,0x6a,0xfe,0xea,0xb5,
0xce,0xe9,0xe5,0xc3,0x9c,0x38,0xa4,0xac,0x57,0xee,0xbe,0xc0,0xe1,0x55,0xc3,0x18,0x4e,0x77,0x87,0x7a, 0xdb,0xcf,0xce,0xe9,0xe5,0xc3,0x82,0x38,0xa4,0xaa,0xef,0xdd,0x7d,0x81,0xa3,0xab,0xa6,0x31,0x9a,0xed,
0x9b,0x34,0x7e,0x19,0x3f,0xfb,0xa7,0xc6,0xf4,0xa1,0xd7,0xbf,0xa8,0x34,0x3f,0x6e,0xcf,0x5e,0x5b,0x0f, 0x8c,0xf4,0x0e,0x69,0xfe,0x3a,0x79,0xf6,0x4f,0x8d,0xd9,0x43,0x7f,0x70,0xb1,0xd7,0xfa,0xb4,0x35,0x7f,
0x0f,0xb8,0x75,0x36,0x9b,0x3c,0xec,0x7d,0x9d,0x01,0xfd,0xaa,0x6e,0xc2,0xce,0xf5,0x41,0xf9,0xfa,0xf9, 0x6d,0x3f,0x3c,0xe0,0xf6,0xd9,0x7c,0xfa,0xb0,0xfb,0x75,0x0e,0xf4,0xab,0x86,0x09,0xbb,0xd7,0x07,0xd5,
0xea,0xe6,0xd2,0x28,0x57,0xee,0xda,0xf5,0x9a,0xfd,0x38,0xae,0xbd,0xdd,0x3d,0xb7,0xf6,0x3a,0x03,0x58, 0xeb,0xe7,0xab,0x9b,0x4b,0xa3,0xba,0x77,0xd7,0x69,0xd4,0xed,0xc7,0x49,0xfd,0xed,0xee,0xb9,0xbd,0xdb,
0x9e,0xf4,0x9d,0x6e,0xbd,0x72,0xf0,0x56,0xe9,0x63,0xea,0x1c,0x07,0xaf,0x5d,0xbb,0x02,0x9d,0x69,0xad, 0x1d,0xc2,0xea,0x74,0xe0,0xf4,0x1a,0x7b,0x07,0x6f,0x7b,0x03,0x4c,0x9d,0xe3,0xe0,0xb5,0x67,0xef,0x41,
0xcd,0xbd,0xa7,0x61,0x35,0x07,0x2f,0x7d,0xff,0x66,0x52,0xab,0x51,0x4f,0x34,0xcb,0xcc,0xc5,0xff,0xe1, 0x67,0x56,0xef,0x70,0xef,0x69,0x5a,0xad,0xe1,0xcb,0xc0,0xbf,0x99,0xd6,0xeb,0xd4,0x13,0xcd,0x2a,0x73,
0x6d,0xac,0xf3,0xfc,0xb4,0xfe,0x81,0x7b,0x36,0x6d,0x3d,0x32,0x77,0x19,0x85,0x78,0xc0,0xf3,0xc9,0x16, 0xf1,0xbf,0x79,0xeb,0x6b,0x3c,0x3e,0xad,0x7d,0xe4,0x9e,0x4d,0x4b,0x8f,0xcc,0x1d,0x26,0x21,0x1e,0xf0,
0x99,0x13,0x0f,0x4e,0x5a,0x75,0x1a,0x50,0x41,0x14,0xfe,0xc6,0x85,0xc2,0x76,0x2a,0xf7,0x51,0x5b,0x3f, 0x7c,0xb2,0x49,0x16,0xc4,0x83,0xd3,0x76,0x83,0x4e,0xa8,0x60,0x16,0xfe,0x93,0x57,0x0a,0xcb,0x69,0xbd,
0xd4,0xd6,0xe9,0x4f,0x5a,0x84,0xb6,0xae,0x0b,0xad,0xbb,0x89,0x68,0x98,0xd1,0xa8,0x12,0xbc,0xc9,0x28, 0x4f,0xda,0xda,0xa1,0xb6,0x46,0x7f,0xd2,0x55,0x68,0xe9,0x9a,0x40,0xdd,0x49,0xcc,0x86,0x39,0x9d,0x55,
0xa1,0xc1,0x63,0x43,0x3d,0x08,0x4a,0xa9,0x1d,0xd9,0x06,0x8b,0x42,0x96,0x2c,0x0f,0x59,0xdc,0x6c,0x0a, 0x42,0x37,0x39,0x4b,0xe8,0xe4,0xb1,0xa1,0x1e,0x4c,0x4a,0xa9,0x1c,0xd9,0x06,0x9b,0x85,0x2c,0x58,0x1e,
0x61,0xa1,0xa8,0x2f,0x3a,0x05,0xee,0x16,0xb4,0xc1,0xd0,0x82,0x06,0x05,0xb8,0x1e,0x68,0x82,0xc6,0x3a, 0xb2,0x79,0xb3,0x21,0x2a,0x0b,0xa0,0x81,0x68,0x14,0xb8,0x9b,0xd0,0x06,0x23,0x0b,0x1a,0x94,0xe0,0x5a,
0x03,0x61,0x20,0x12,0x37,0x94,0x82,0x90,0x0d,0x06,0x2f,0xab,0xd0,0x75,0x1a,0xe3,0xae,0x83,0x6c,0x6f, 0x80,0x04,0x8d,0x35,0x46,0xc2,0x40,0x24,0x2e,0xa8,0x04,0x53,0x36,0xe8,0xbc,0x0c,0xa1,0xeb,0x74,0x8e,
0x2b,0xb6,0x89,0x46,0x19,0xf3,0xfa,0x49,0xb6,0x23,0x97,0x76,0xb6,0x40,0x27,0x85,0xc1,0x05,0x03,0x53, 0xbb,0x0e,0xb2,0xbd,0xcd,0xd8,0x26,0x1a,0x55,0xcc,0x6b,0x27,0x59,0x8e,0x5c,0xda,0x58,0x01,0x26,0xa5,
0x47,0x79,0xe3,0xbd,0xa3,0x1f,0x43,0xef,0x1e,0x35,0x79,0x4f,0x54,0x48,0x74,0xb8,0xf1,0x21,0x7f,0x7c, 0xc1,0x2b,0x06,0xa6,0x8e,0xe2,0xc6,0x7b,0x7b,0x3f,0x81,0xde,0x3d,0x6a,0xf1,0x96,0x68,0x25,0xd1,0xe0,
0x44,0x30,0x4e,0x1c,0x03,0xa6,0xc6,0xa7,0xd2,0x34,0x80,0x6f,0xde,0xc6,0xbb,0x91,0x26,0x80,0xca,0xf6, 0xfa,0xc7,0xfc,0xfe,0x11,0xa1,0x38,0x75,0x0c,0x98,0xea,0x9f,0x0a,0x69,0x08,0xdf,0xbc,0xf5,0x77,0x33,
0x4f,0xc1,0x13,0xab,0xd8,0x00,0x4d,0x04,0x18,0x81,0xa5,0x1e,0x35,0xc6,0xdd,0xa7,0x93,0xad,0x48,0xf9, 0x4d,0x10,0x95,0xed,0x9f,0xa2,0x27,0x56,0xb1,0x21,0x9a,0x0a,0x32,0x82,0x4b,0x23,0x2a,0x8c,0x9b,0x4f,
0x74,0xe5,0x31,0x90,0x3d,0x2e,0x85,0x08,0xc2,0xe7,0x50,0x7d,0xf0,0x1c,0x0d,0x34,0x78,0x6e,0x85,0x40, 0x07,0x5b,0x11,0xf2,0xe9,0xca,0x63,0x20,0x7b,0x52,0x09,0x19,0x84,0xcf,0x21,0x7c,0xf0,0x1c,0x75,0x34,
0x93,0xc3,0x13,0x3a,0xd7,0x02,0x26,0xb6,0xdc,0xd0,0xe5,0x14,0x0d,0xb1,0x58,0x51,0x8e,0x83,0x00,0x48, 0x78,0x6e,0x87,0x44,0x93,0xdd,0x13,0x98,0x1f,0x02,0x25,0xb6,0xdc,0xd0,0xe5,0x14,0x8d,0xb0,0x58,0x51,
0x8e,0x79,0x06,0xb0,0xcd,0x11,0x08,0x61,0x13,0x90,0x1e,0xa4,0x55,0x40,0x83,0x2d,0x4d,0x94,0xd3,0x0d, 0x8e,0x83,0x09,0x90,0xec,0xf3,0x1c,0x60,0x9b,0x33,0x10,0x95,0x4d,0x40,0xfa,0x90,0x66,0x01,0x4d,0xb6,
0x91,0xf0,0xb5,0x6a,0x0b,0x47,0xb4,0xc0,0x09,0x5c,0xca,0x12,0xaa,0xe2,0xc4,0x1e,0x04,0x84,0xd9,0x35, 0x34,0x51,0x4d,0x37,0x64,0xc2,0xd7,0xaa,0x4d,0x1c,0xc9,0x02,0x27,0x70,0xa9,0x4a,0x08,0xc5,0x85,0x7d,
0x2b,0x26,0x28,0x5b,0x52,0xa0,0x49,0xcd,0x92,0x36,0x01,0x84,0x44,0x73,0xae,0xbf,0x0c,0x30,0xd0,0x61, 0x08,0x08,0xb3,0x6b,0xb6,0x9a,0x90,0x6c,0x4a,0x13,0x4d,0x2a,0x96,0xd0,0x04,0x11,0x12,0x8d,0xb9,0xfe,
0x4a,0x65,0x4c,0x88,0x91,0xc4,0x36,0x50,0x48,0x1f,0x81,0x10,0xe7,0xd0,0xf7,0x3c,0x6a,0x0f,0xf1,0xb3, 0x32,0xc4,0x40,0x87,0x29,0xc8,0x58,0x10,0x33,0x89,0x6d,0xa0,0xa8,0x7d,0x04,0x42,0x9e,0x23,0xdf,0xf3,
0xe9,0x62,0xba,0x8a,0xe1,0x79,0x58,0x5b,0x6c,0x03,0x17,0x6d,0x73,0x39,0x8f,0xc9,0x6d,0xd3,0xe9,0xcc, 0xa8,0x3d,0xc4,0xcf,0x86,0x8b,0xe9,0x2a,0x86,0x17,0x61,0x6e,0xb1,0x05,0x5c,0xb4,0xc5,0xeb,0x79,0xac,
0xed,0xb9,0xee,0xcc,0x6c,0x66,0xec,0x00,0x01,0x38,0xd1,0xd2,0x9d,0x84,0xcb,0x37,0xf5,0x21,0x68,0x41, 0xde,0x16,0x1d,0xce,0xdc,0x96,0x1b,0xce,0xdc,0x66,0xc6,0x0e,0x18,0x80,0x13,0x2d,0xdd,0x48,0xb8,0x7c,
0x0f,0xf6,0x97,0x0f,0xa7,0xce,0x19,0x23,0x95,0x19,0xc7,0x09,0xeb,0x0f,0x30,0x45,0x63,0x31,0xb1,0x1e, 0x53,0x1f,0x82,0x16,0xf4,0xe0,0x60,0x79,0x77,0x1a,0x5c,0x31,0x82,0xcc,0x38,0x4e,0x98,0x7f,0x80,0x19,
0x18,0x92,0xec,0xf8,0xe4,0xa2,0x64,0x1d,0x50,0x6f,0x9f,0x42,0x9a,0xe6,0xc4,0x1f,0x03,0x30,0xa4,0xee, 0x9a,0x88,0x81,0xf5,0xc0,0x88,0x64,0xfb,0x27,0x27,0x25,0x6b,0x80,0x7a,0xfb,0x0c,0xd2,0x30,0x27,0xfe,
0xa0,0xad,0x0b,0x33,0xad,0xb3,0x12,0x24,0xc4,0x29,0x31,0x44,0xf4,0x08,0x6b,0x60,0x56,0xda,0xe1,0x40, 0x18,0x82,0x11,0x75,0x07,0x6d,0x4d,0x98,0x69,0x8d,0xa5,0x20,0x21,0x4f,0x49,0x21,0x92,0x47,0x5c,0x03,
0xca,0xb9,0xe0,0x5d,0x7d,0x7b,0x18,0x8d,0xc7,0x10,0x2f,0xe8,0x3d,0xe2,0x88,0xfa,0x0f,0x5b,0xbe,0x0f, 0xb3,0xd2,0x06,0x87,0x52,0xcc,0x05,0xef,0x6a,0xdb,0xc3,0x68,0x32,0x81,0xb8,0xa0,0xf5,0x48,0x23,0x6a,
0x82,0x38,0x0d,0xe4,0x63,0x90,0x78,0x22,0x14,0x71,0xdb,0xf7,0xc1,0x21,0xd6,0x9b,0x05,0xb3,0x20,0xe8, 0x3f,0x2c,0xf9,0x3e,0x0c,0xe2,0x30,0x90,0xcf,0x41,0xd2,0x89,0x58,0xc4,0x65,0xdf,0x87,0x87,0x58,0x6f,
0xf1,0x2c,0xf0,0x67,0x45,0xdf,0xe9,0x4c,0xa0,0x9c,0x6c,0xb6,0x74,0xee,0xa5,0x27,0x54,0x5e,0x41,0xf7, 0x0a,0x46,0x41,0xc8,0xe3,0x51,0xe0,0xcf,0x8a,0xb6,0xd3,0x91,0x40,0x39,0xd8,0x6c,0xe9,0xdc,0x4d,0x0f,
0xb8,0x8a,0x93,0x23,0x4c,0xb3,0x88,0xa3,0x1d,0x72,0xda,0x71,0x49,0xe2,0x06,0x96,0xd5,0xf7,0xa0,0x4b, 0xa8,0xbc,0x82,0xee,0x72,0x88,0x93,0x23,0x4c,0xa3,0x88,0xa3,0x1d,0x72,0xd9,0x71,0x45,0xd2,0x06,0x96,
0x06,0xd8,0xa7,0x42,0x2c,0x73,0xb0,0x94,0x4c,0x2b,0xf5,0x90,0x40,0x07,0xcd,0x6a,0x49,0x8f,0xd2,0x59, 0x35,0xf0,0xa0,0x4b,0x86,0xd8,0xa7,0x95,0x58,0xe4,0x60,0x21,0x99,0x66,0xea,0xa1,0x80,0x76,0x9a,0xe5,
0xba,0xe4,0x8a,0x24,0x74,0x05,0x54,0x37,0x81,0x45,0x16,0xea,0x1e,0x31,0x06,0x95,0xf2,0xd0,0xfc,0xc4, 0x92,0x1e,0x95,0xb3,0x70,0xc9,0x81,0x24,0x76,0x25,0xa0,0x5b,0xc0,0x22,0x85,0xd8,0x63,0xa6,0xa0,0x02,
0xa2,0x75,0x32,0x4e,0x2d,0xd0,0xd4,0x6e,0x6e,0x98,0xe9,0x22,0x85,0xc9,0xfa,0x79,0x0a,0x2c,0x5f,0x04, 0x0f,0xcd,0x4f,0x2c,0x9a,0x27,0xe3,0xd4,0x02,0x4d,0xed,0xe6,0x86,0x91,0x2e,0x02,0x4c,0xe6,0xcf,0x33,
0x67,0x1b,0x78,0xe6,0xd6,0xc8,0x72,0x1c,0xbc,0x11,0xf2,0xde,0x31,0xa2,0xb6,0xad,0xed,0x7e,0xfe,0xac, 0x60,0xf9,0x62,0x72,0x76,0x80,0x67,0x6e,0x8e,0x2d,0xc7,0xc1,0xeb,0xa1,0xee,0x1d,0x13,0x6a,0x5b,0xda,
0xfd,0x4b,0x2b,0xef,0xec,0x30,0x93,0xfd,0x33,0xac,0xa7,0x33,0xbd,0xcb,0xc5,0x34,0xb2,0x5d,0xdf,0xd3, 0xce,0xe7,0xcf,0xda,0x3f,0xb4,0xea,0xf6,0x36,0x33,0xd9,0xdf,0xc3,0x7c,0x3a,0xd3,0xba,0x9c,0x4c,0x23,
0xbc,0xb9,0x4b,0x07,0x8c,0x81,0x4d,0x2b,0x74,0x6d,0x82,0xec,0xe3,0xd2,0x0e,0xfd,0x05,0x6f,0xc7,0x25, 0xdb,0xf5,0x3d,0xcd,0x5b,0xb8,0xb4,0xc3,0x18,0xd8,0x34,0x43,0xd7,0xa6,0xc8,0x3e,0xae,0x6c,0xd3,0x5f,
0xaa,0xb2,0x94,0x94,0x8e,0x06,0xbf,0x65,0xfb,0x93,0x21,0xc4,0x31,0xe4,0x3b,0x81,0x31,0x2f,0x35,0xc8, 0xf0,0x76,0x5c,0xa1,0x90,0x95,0x64,0xed,0xa8,0xf3,0x9b,0xb6,0x3f,0x1d,0x41,0x1c,0x53,0xbe,0x13,0x1c,
0xa3,0x5c,0x8b,0xed,0x36,0xdd,0x1c,0x39,0x54,0xc9,0x06,0x23,0x7f,0xd2,0xe8,0x5a,0x07,0xdf,0x3e,0xd0, 0xf3,0x42,0x83,0xdc,0xcb,0x0f,0xb1,0xdd,0x66,0x1b,0x63,0x87,0x82,0xac,0x33,0xf1,0x2f,0x1a,0x5d,0xeb,
0x1f,0x8d,0x14,0xb5,0x02,0x63,0xdc,0x9a,0xfe,0x58,0x13,0xc4,0x18,0x52,0xe3,0x57,0xaf,0xaf,0x39,0x29, 0xe0,0xdb,0x47,0xfa,0xa3,0x91,0xb2,0x56,0x60,0x8a,0x9b,0xb3,0x1f,0x6b,0x82,0x98,0x43,0xaa,0xff,0xea,
0x87,0xca,0x52,0x5b,0x4c,0xb4,0xdf,0x89,0x3f,0x9c,0x20,0x2f,0xde,0x5c,0xd1,0x6d,0xa1,0x35,0x67,0x0b, 0xf5,0x35,0x27,0xe4,0xd0,0xba,0xd4,0x16,0x53,0xed,0x77,0xe2,0x8f,0xa6,0xc8,0x8b,0x37,0x57,0x74,0x5b,
0xf7,0x20,0x60,0x4d,0x44,0x4b,0x9c,0x7e,0x18,0x47,0x2a,0x66,0x74,0x13,0xea,0x2f,0x11,0xde,0xa1,0xe3, 0x68,0x2d,0xd8,0xc2,0x3d,0x0c,0x54,0x13,0xb3,0x25,0x0e,0x3f,0x4c,0x23,0x35,0x67,0x74,0x13,0xea,0x2f,
0x58,0x10,0xd8,0x2c,0x08,0x24,0x99,0xb0,0xf4,0x2a,0x25,0x7c,0x3f,0xc1,0xd2,0xb0,0x83,0x1a,0x8b,0x8d, 0x11,0xdf,0x91,0xe3,0x58,0x10,0xd8,0x6c,0x12,0x48,0x75,0xc2,0xd4,0xab,0x92,0xf0,0xfd,0x84,0x4a,0xd3,
0x8f,0xeb,0x94,0xc7,0xa3,0xd6,0xb6,0x68,0x41,0x5f,0xcb,0x16,0x50,0x51,0x01,0xf8,0xe7,0x9f,0x9a,0x82, 0x0e,0x72,0x2c,0xd6,0x3f,0x8e,0x29,0xf7,0x47,0x8d,0x56,0xb4,0xa0,0x7f,0xc8,0x26,0x50,0x51,0x02,0xf8,
0x2a,0x42,0x91,0x6d,0x40,0xf7,0x14,0x89,0x97,0xf6,0xdb,0xa2,0xfb,0x78,0x6c,0x43,0x4f,0xae,0x03,0x2d, 0xe7,0x9f,0x9a,0x42,0x2a,0xa6,0x22,0xdb,0x80,0xee,0x2a,0x02,0x2f,0x6d,0xb7,0x4d,0xf7,0xf1,0xd8,0x86,
0x30,0x84,0x96,0xc6,0x1d,0x8c,0x1b,0x87,0xce,0x2f,0x41,0x4c,0x1d,0x33,0xa6,0x5a,0x4d,0x92,0x27,0x50, 0x9e,0x9c,0x07,0x5a,0x60,0x04,0x2d,0x8d,0x3b,0x18,0x37,0x0e,0x1d,0x5f,0x82,0x18,0x1c,0x33,0xa6,0x1a,
0xc6,0xf5,0x24,0x5d,0x45,0x4c,0x7d,0x89,0x6f,0x4f,0x15,0xba,0x33,0x2e,0x92,0xb4,0x91,0x97,0x42,0x72, 0x26,0xa9,0x13,0x80,0x71,0x9c,0xa4,0xab,0x88,0xa1,0xaf,0xf0,0xed,0xa9,0x02,0x3b,0xe3,0x22,0x49,0x1b,
0x64,0x56,0x4e,0x7a,0x70,0x0c,0x2d,0x42,0xa7,0xad,0x92,0x6f,0xdb,0xe8,0xc9,0x82,0xf6,0xd8,0x33,0xa3, 0x79,0x29,0x26,0x47,0xe6,0xde,0x49,0x1f,0x4e,0xa0,0x45,0xe8,0xb0,0xed,0xe5,0xdb,0x36,0x7a,0xb2,0xa0,
0xc3,0x02,0x11,0x43,0x01,0x55,0x0e,0x23,0xb5,0x78,0xe4,0xd0,0x34,0x3c,0xa0,0x25,0xaf,0x06,0xc2,0x35, 0x3d,0xf1,0xcc,0xe8,0xb0,0x40,0xcc,0xa1,0x40,0x2a,0x4f,0x23,0x75,0xf5,0xc8,0xa1,0xe9,0xf4,0x80,0x96,
0x0f,0x43,0xb9,0x68,0x52,0xbe,0x25,0xa7,0x93,0xcb,0x6d,0x46,0xfb,0xef,0xc5,0x5e,0x56,0xc0,0xbf,0x02, 0xbc,0x1a,0x08,0xd7,0x3c,0x0c,0xeb,0x45,0x83,0xf2,0x2d,0x39,0x9c,0xbc,0xde,0x46,0xb4,0xff,0x2e,0xf6,
0xc7,0x56,0xb9,0x99,0x9c,0x00,0x00,0x5f,0xdf,0x44,0x59,0x21,0x0a,0xa3,0x9f,0xb2,0x47,0x11,0xa2,0xa6, 0xb2,0x12,0xfe,0x15,0x38,0xb6,0xca,0xcd,0xe4,0x00,0x00,0xf8,0xfa,0x26,0xd2,0x0a,0x91,0x18,0xfd,0x94,
0x91,0xc2,0x65,0x43,0x98,0x43,0x3d,0xdf,0x99,0xc2,0x26,0x93,0x32,0x74,0x3a,0x18,0x9c,0x9f,0xd7,0x84, 0x3d,0x8a,0x10,0x39,0x8d,0x34,0x5d,0xd6,0x85,0x39,0xd4,0xe3,0x9d,0x49,0x6c,0x32,0x21,0x43,0xa7,0x9d,
0x29,0xd8,0x39,0x0e,0xcb,0x56,0x54,0x9b,0xee,0xe5,0x4d,0x7e,0x68,0xff,0x01,0xf5,0xa0,0x52,0x5c,0xde, 0xc1,0xf9,0x71,0x4d,0x98,0x82,0x9d,0xe3,0xb0,0x68,0x45,0xd1,0x74,0x2f,0x6f,0xf0,0x43,0xfb,0x0f,0xa9,
0x5b,0x34,0x13,0x51,0x59,0xc7,0xe5,0x75,0x13,0x4f,0x23,0x2c,0xfd,0x28,0xe1,0x36,0xd1,0x1b,0x34,0x24, 0x07,0x55,0xe2,0xf4,0xde,0xa2,0x91,0x88,0xd6,0x75,0x5c,0x9e,0x37,0xf1,0x30,0xc2,0xc2,0x8f,0x92,0x6e,
0xcf,0x14,0x42,0x69,0xe1,0xb2,0x5a,0xb8,0xef,0xdb,0x18,0x91,0xc5,0xa2,0xbb,0xb9,0xa2,0x24,0x8a,0xad, 0x0b,0xbd,0x41,0x43,0xf2,0x4c,0x51,0x29,0x5d,0xb9,0xaa,0xae,0x3c,0xf0,0x6d,0x8c,0x48,0x71,0xd5,0x9d,
0x50,0x72,0x5b,0x0c,0x77,0xe9,0xb0,0x47,0x21,0xe8,0xf4,0xa0,0x93,0x3e,0x2e,0x9b,0x87,0x65,0xc6,0x1d, 0xdc,0xaa,0x24,0x9a,0x5b,0x61,0xcd,0x2d,0xd1,0xdd,0xa5,0xdd,0x1e,0x87,0xa4,0xd3,0x9d,0x4e,0xfa,0xb8,
0xc9,0x28,0x9b,0x51,0x10,0x33,0xaf,0x8e,0x14,0xb2,0x85,0x37,0x00,0xee,0x85,0x21,0xcd,0xb6,0x3a,0x88, 0x6c,0x1e,0x16,0x19,0xb7,0x25,0xa3,0x6c,0x44,0x93,0x98,0x79,0x75,0x04,0xc8,0x16,0xde,0x80,0xb8,0x17,
0xb8,0x16,0xe0,0x29,0x73,0x83,0xb5,0x7f,0xd2,0xf8,0xca,0xfc,0x3e,0xf4,0x18,0x5a,0x80,0xe7,0x6b,0xf5, 0x4e,0x69,0xb6,0xd5,0x41,0xc4,0xb5,0x00,0x0f,0x99,0xeb,0xac,0xfc,0x17,0x8d,0xaf,0xcc,0xef,0x63,0x8f,
0x00,0x68,0xcc,0xc2,0x3c,0x9c,0xb2,0x68,0x61,0xa8,0xac,0x40,0xc9,0x41,0x2a,0x27,0x54,0x08,0x5f,0x0c, 0xa1,0x05,0x78,0xbc,0x56,0x77,0x80,0xce,0x59,0x98,0xc7,0x53,0xae,0x5a,0x9a,0x2a,0x4b,0x50,0x72,0x98,
0x30,0x27,0xcb,0xa3,0x6f,0xe2,0xd8,0x94,0x71,0x41,0xf0,0xb5,0x39,0x43,0x22,0xe8,0x96,0xa8,0xf4,0x7c, 0xca,0x01,0x15,0xc2,0x17,0x03,0x2c,0xc8,0xf2,0xd9,0x37,0x75,0x6c,0xaa,0x58,0x30,0xf9,0x3a,0x5c,0x21,
0x48,0x16,0xeb,0x1c,0x08,0x8e,0x55,0x94,0xce,0xa0,0x61,0x2f,0x53,0x7b,0x1f,0xf2,0xac,0x84,0xd6,0xf4, 0x31,0xe9,0x96,0x40,0x7a,0x3e,0x24,0xc5,0x98,0x43,0xa1,0xb1,0x0a,0xe8,0x1c,0x1a,0xf6,0x32,0xd8,0xfb,
0xf1,0x32,0xb8,0x01,0xcb,0x2a,0x6a,0x47,0x18,0x2d,0x56,0xda,0xe4,0x0c,0xab,0xa8,0x24,0x74,0x8d,0xc3, 0x50,0x67,0x25,0xb6,0xa6,0x8f,0x97,0xd1,0x0d,0x54,0x56,0x81,0x1d,0x63,0x54,0x0c,0xda,0xe2,0x0a,0xab,
0x8b,0x95,0xf6,0x03,0x96,0x95,0xd4,0xfa,0x4b,0x3c,0xa0,0xef,0x67,0x3c,0x40,0x5d,0xbf,0x15,0xa8,0xc7, 0x40,0x12,0xba,0xc6,0xe1,0x62,0xd0,0x41,0xa0,0xb2,0x12,0xac,0xbf,0xc4,0x03,0x06,0x7e,0xc6,0x03,0xd4,
0xc2,0x4e,0x87,0xf4,0xd7,0xf4,0xe8,0x6c,0x91,0x1f,0x57,0x97,0x65,0xb1,0x2c,0xa8,0xcf,0xe4,0x2a,0x8d, 0xf9,0x5b,0x89,0x7c,0x2c,0x6c,0x74,0x44,0x7f,0x4d,0x8f,0x8e,0x16,0xf9,0x71,0x79,0x59,0x96,0x4b,0x41,
0x05,0x75,0x7c,0xa6,0xce,0x8e,0x5d,0xd4,0x69,0xb1,0xe3,0xd4,0x29,0x2d,0xe7,0xe8,0x49,0xec,0xb5,0x58, 0x7e,0x26,0x67,0x69,0x6c,0x52,0xc7,0x67,0xea,0xec,0xd8,0x45,0x1d,0x16,0xbb,0x4e,0x83,0xca,0x72,0x8e,
0x97,0xc1,0xde,0xfe,0x30,0x3c,0xab,0xa2,0x88,0xe9,0x46,0x99,0x95,0x43,0xe9,0xc5,0x0b,0x18,0x86,0xb4, 0x9e,0xc4,0x5e,0x8b,0x35,0x19,0xec,0xed,0x0f,0xc3,0xb3,0x2a,0xca,0x98,0x6e,0x94,0x59,0x3a,0x94,0x5e,
0x72,0xa9,0x3b,0xad,0x1a,0xe1,0xde,0x5e,0xe8,0xcd,0x5d,0x9a,0x62,0x00,0xb2,0x31,0x45,0x75,0x59,0x52, 0xbc,0x80,0x61,0x48,0x2b,0x97,0xba,0xd1,0x9a,0x11,0xee,0xed,0x05,0x6e,0xee,0xd2,0x14,0x13,0x90,0x8d,
0xa1,0x09,0x13,0x94,0x78,0x0e,0xce,0x24,0x79,0xf5,0x79,0xca,0x55,0xf5,0x79,0x3b,0xed,0xfc,0x30,0x4d, 0x29,0xb2,0xcb,0x8a,0x8a,0x4d,0x18,0xa0,0xc4,0x73,0x70,0x26,0xc9,0xb3,0xcf,0x53,0x0e,0x35,0xe0,0xe5,
0x59,0xff,0x10,0x5b,0x96,0x15,0xb1,0x0b,0x4b,0xd9,0xb6,0xc3,0x2b,0x9f,0x85,0xc5,0xec,0x44,0xf0,0xac, 0xb4,0xf1,0xc3,0xb4,0x64,0xed,0x63,0x6c,0x59,0x96,0xc4,0x16,0xa6,0xb2,0x1d,0x87,0x67,0x3e,0x85,0xc9,
0x58,0xce,0x0a,0xa9,0x25,0x05,0x87,0x60,0x2a,0x58,0xd2,0xa6,0x34,0xae,0x0a,0xa1,0xee,0x63,0x6a,0xb1, 0xec,0x54,0xe8,0xac,0x98,0xce,0x8a,0x5a,0x4b,0x12,0x0e,0xa1,0x54,0x32,0xa5,0x4d,0x21,0x26,0x72,0xca,
0x7a,0x6e,0xf4,0x25,0xb0,0x44,0xcc,0x2b,0x04,0xb7,0xba,0x43,0xd9,0x87,0x0a,0x77,0x2c,0x09,0x25,0x00, 0x04,0x50,0xc3,0xc7,0xd4,0x36,0x85,0x83,0x57,0xac,0x9f,0xcc,0x35,0x93,0x8b,0x52,0x2e,0xa1,0x6c,0xab,
0x48,0x55,0x74,0x30,0x2b,0x4b,0xea,0x68,0x15,0x57,0xb1,0x4a,0x5a,0xa9,0x3f,0xbf,0x96,0x0e,0x86,0x9e, 0x3c,0x23,0x5d,0xc6,0x6c,0x79,0xb2,0x51,0x8c,0xd0,0xa5,0xc3,0x89,0x57,0x4d,0x41,0x8a,0x21,0x6b,0xd6,
0xa9,0xa6,0x33,0x88,0x69,0x95,0x47,0xa7,0x20,0x07,0x28,0x27,0xae,0x82,0x4f,0x68,0x5b,0x0a,0xcb,0x10, 0x9c,0x2e,0x67,0xab,0xe6,0x26,0xc5,0x98,0xd7,0xb6,0xb5,0xc8,0xcb,0x59,0xb8,0xaf,0xae,0xe6,0x4f,0x02,
0x9d,0x16,0xa8,0xed,0xa3,0x71,0xbc,0xb7,0xba,0x4f,0x29,0xf8,0x4b,0xd5,0xf7,0x13,0x39,0xda,0xbf,0x63, 0xbf,0xc1,0x43,0x69,0x3c,0x79,0xca,0x8e,0x0c,0x4b,0x69,0x76,0xca,0xb8,0x64,0xd4,0x8c,0x22,0x20,0x67,
0x85,0x9f,0xc8,0x22,0xb9,0x35,0x7e,0x34,0x63,0xdf,0xb1,0xca,0x17,0xee,0x75,0xc8,0xa7,0x65,0x5d,0x74, 0xbc,0x6f,0xd9,0x9e,0x46,0xa5,0x55,0x6e,0x57,0xa3,0xc4,0xcf,0xdf,0xd7,0x04,0xbd,0xcf,0xec,0x6c,0x32,
0xc0,0xce,0x8f,0x39,0x04,0xf6,0xde,0xe6,0xdf,0x2e,0xb2,0x15,0xc7,0x83,0x82,0xb3,0x4b,0x69,0x4b,0x7d, 0x8c,0x69,0xc6,0x4d,0x2d,0x98,0x43,0x94,0x0b,0x57,0xe1,0x27,0xd0,0x96,0xd2,0x32,0x44,0xa3,0x25,0xf6,
0x8d,0x9f,0x26,0xe5,0xab,0xce,0x5d,0xe8,0x28,0xb5,0x08,0x3e,0x03,0xe1,0xf4,0xf1,0x61,0xda,0x60,0x11, 0x59,0x51,0x3f,0xde,0xbb,0xd3,0x4a,0x01,0xfc,0xa5,0xf6,0x5a,0x53,0x39,0xf2,0x7e,0xc7,0xdd,0x56,0x22,
0x47,0x02,0x6b,0x50,0x2a,0xe7,0xc3,0x93,0x34,0xe7,0x82,0x8c,0x78,0x32,0x9b,0x1e,0xc5,0xbe,0x25,0x05, 0xa2,0xe7,0xee,0xb7,0xa2,0x11,0xfb,0x8e,0x3b,0x2e,0xe1,0x5e,0x87,0x7c,0x58,0xd6,0x44,0x03,0xec,0x2c,
0xa7,0x23,0xfd,0x0d,0xac,0x55,0x77,0x32,0x29,0x65,0x03,0xc7,0x65,0x87,0xe5,0x0b,0xb5,0x28,0x4e,0x1b, 0x9f,0x53,0x60,0xef,0xd0,0xfe,0xe5,0x22,0x5b,0x71,0x54,0x2b,0x34,0x7b,0x54,0xb6,0xd4,0xd7,0xf8,0xc9,
0x52,0x5a,0x4e,0x1d,0xba,0x00,0x4e,0x6e,0xdd,0xbc,0xcd,0xd1,0xff,0x6b,0xa8,0xfc,0x1a,0x4a,0x98,0xf2, 0x5e,0x3e,0x74,0x6e,0xd2,0x41,0xa5,0x65,0xf8,0x19,0x08,0xa7,0x8f,0x72,0xd3,0x06,0x8b,0x34,0x54,0x2b,
0x7f,0x51,0x45,0x25,0xb2,0x43,0x5e,0xc7,0x7f,0x8f,0x4a,0x6a,0xf1,0xf1,0x61,0xe2,0x5d,0xc0,0xa2,0xaa, 0x44,0x3e,0x3d,0x09,0x39,0x97,0x64,0xa4,0x93,0x59,0x13,0x72,0x03,0x78,0x44,0xa7,0x2b,0xfd,0x0d,0xac,
0xab,0x26,0xbf,0x5f,0x8c,0x2b,0x2e,0xf9,0xbd,0x41,0xb1,0x6a,0x4b,0x92,0x90,0x5e,0xc4,0x26,0xb3,0xbf, 0xf7,0x45,0xee,0x08,0x60,0xe8,0xb8,0xec,0xc5,0x45,0x21,0x8a,0xe2,0xe4,0x27,0x85,0x72,0xea,0xd0,0x64,
0x9a,0x27,0x37,0xed,0x9b,0x4c,0x81,0x02,0x91,0x24,0x7b,0xce,0xe5,0xa5,0x8b,0x22,0xcb,0xd1,0x05,0x67, 0x64,0x7a,0xeb,0x16,0x04,0xfd,0xff,0xe7,0xb3,0x39,0xf9,0xac,0x30,0xe5,0x7f,0x23,0xa3,0x4d,0x44,0x87,
0x87,0xb9,0xc8,0xa4,0x57,0xb7,0x2b,0x23,0x93,0x64,0x33,0xc8,0xa4,0xf2,0x83,0x10,0x64,0x28,0xc5,0x69, 0xbc,0x86,0xff,0x37,0xb2,0xda,0xe2,0xa3,0xdc,0xc4,0x7b,0x99,0xa2,0x0c,0xb8,0x2e,0xbf,0xeb,0x8d,0xb3,
0x7b,0xfe,0x32,0xe0,0xc1,0x37,0x4f,0x14,0x1c,0x5c,0x3e,0x7e,0xdf,0x90,0xd2,0x90,0x70,0xbd,0x35,0xc5, 0x5f,0xf9,0x1d,0x4e,0xb9,0xcc,0x57,0xaa,0x21,0xbd,0x14,0x4f,0x46,0x7f,0xb5,0x4e,0x6e,0xd8,0x37,0x19,
0xc8,0x13,0x58,0x5c,0x3a,0xa0,0x99,0x83,0x95,0x78,0x42,0x5a,0x3e,0xa6,0x48,0x9a,0xe3,0x8a,0x9f,0x54, 0x80,0x82,0x91,0x54,0xf7,0x9c,0xd7,0x97,0x2e,0xed,0x2c,0x67,0x17,0x9c,0xe3,0xe6,0x32,0x93,0x5e,0xa3,
0xd8,0x62,0xea,0x52,0x7c,0xcb,0x67,0xd1,0x30,0x75,0x77,0xa9,0xa2,0xbc,0x29,0x66,0xc2,0xec,0x8d,0x4d, 0xaf,0xcc,0x4c,0xaa,0x9b,0x61,0x26,0xa5,0x1f,0x84,0x20,0x43,0x59,0x9d,0x96,0xe7,0x2f,0x03,0x1e,0x7c,
0x30,0x9b,0x2c,0x3c,0x36,0x59,0x86,0xc4,0x8e,0xb5,0xe2,0x84,0x33,0x4d,0x99,0x99,0x96,0xb3,0xaf,0x3f, 0xf3,0x44,0xc2,0xc1,0xeb,0xc7,0x19,0x79,0x0a,0x21,0xe1,0x7a,0x1f,0x14,0x3d,0x4f,0x70,0x71,0x69,0x87,
0x14,0xa9,0x9f,0x24,0xad,0x8e,0x5c,0x95,0x36,0xe4,0xd2,0x1c,0x85,0xa9,0x6f,0x17,0x71,0x02,0xe4,0xaa, 0xe6,0x0e,0x56,0xf2,0x09,0x65,0xf9,0x9c,0xa2,0xda,0x9c,0x57,0xfc,0xa4,0xe2,0x16,0x4b,0x97,0xf2,0x5b,
0xcd,0x8c,0x96,0xda,0x85,0x1d,0xa6,0xa7,0x4d,0x99,0xf4,0x4f,0x7f,0x68,0x43,0x6f,0x02,0xc8,0x8b,0xd2, 0x3e,0x8a,0x86,0xa9,0xbb,0x4b,0x81,0xf2,0x86,0x98,0x55,0x66,0x6f,0xcf,0x82,0xd1,0x64,0xd3,0x63,0x83,
0x4b,0x23,0x6a,0x21,0x5f,0x8d,0x75,0xa9,0x3d,0x56,0xa2,0xff,0x97,0xb0,0xc7,0xc0,0x83,0x33,0xa9,0xa2, 0x45,0x48,0xec,0x58,0x2b,0x0e,0x38,0x43,0xca,0x8c,0xb4,0x1c,0x7d,0xfd,0x91,0x08,0xfd,0x24,0x69,0x75,
0x97,0x98,0x03,0x52,0x11,0xc0,0xa1,0x16,0x25,0xda,0x88,0xf8,0x1e,0xa8,0x99,0xd7,0x0f,0xa6,0x43,0x3c, 0xe4,0xaa,0xd0,0x90,0x4b,0x63,0x14,0xa6,0xbe,0x5d,0xc6,0x09,0x90,0xab,0x36,0x33,0x5a,0x6a,0x17,0xf6,
0x76,0xf5,0x50,0x85,0x38,0xa4,0x2d,0x83,0x7c,0xe8,0x5a,0x40,0x87,0xa6,0x63,0x19,0x6c,0x5d,0xce,0x51, 0x62,0x23,0x6d,0xca,0xa4,0x7f,0xfa,0x23,0x1b,0x7a,0x53,0x40,0x5e,0x94,0x5e,0x1a,0x49,0x4b,0xf9,0x6a,
0xd2,0x8d,0x79,0x98,0xdf,0xb3,0x61,0x46,0x7d,0x2b,0xc7,0x19,0x53,0x97,0xc6,0xea,0xdf,0x63,0x41,0x8c, 0x8c,0xa5,0xf6,0x58,0x49,0xfe,0x1f,0xd2,0x9e,0x00,0x0f,0xce,0xa5,0x8c,0x5e,0x52,0x0e,0x44,0x65,0x08,
0x5e,0x4c,0xe7,0x2c,0x86,0xbe,0xcb,0x6e,0x47,0x34,0x11,0x9e,0xcc,0x00,0x86,0xc9,0x17,0xcf,0xe2,0x1d, 0x87,0x28,0x4a,0xb6,0x91,0xf0,0x3d,0x54,0x33,0x1b,0x27,0xd3,0x21,0x1e,0xbb,0x06,0xaa,0x62,0x1c,0xca,
0xf6,0x28,0xa0,0xa5,0x4f,0x1f,0xe4,0xa1,0x8e,0x90,0x05,0x85,0x79,0x43,0xee,0x26,0x6b,0xf9,0x0b,0x18, 0x96,0x51,0x3e,0x74,0x2d,0xa0,0x43,0xd3,0xb1,0x0c,0xb6,0x2e,0xe7,0x80,0xf4,0x62,0x1d,0xe6,0xf7,0xac,
0x29,0xb6,0x8b,0x18,0x69,0x17,0x3b,0x63,0x96,0x69,0xf8,0x5d,0xb3,0xe0,0x0d,0x35,0x1d,0x6f,0x8a,0xc8, 0x9b,0x51,0xdb,0xca,0x7e,0xc6,0xd2,0xa5,0x73,0xf5,0x7f,0x63,0x41,0x8c,0x2e,0x09,0xe4,0x2c,0x86,0xbe,
0x4b,0x4a,0xd9,0xc8,0x19,0xab,0x84,0xb7,0x76,0x32,0x66,0xc9,0xcd,0x9e,0x69,0xc1,0x45,0xe9,0x33,0xb6, 0xcb,0x6e,0xaa,0xb4,0x10,0x9e,0xce,0x01,0x86,0xc9,0x4b,0x00,0xe2,0x3e,0xc1,0x38,0x90,0xa5,0x4f,0x82,
0xd5,0xb2,0x1b,0x31,0xe9,0x62,0x8f,0xfa,0x27,0xf6,0x6a,0xf1,0x95,0xa2,0xdc,0xee,0x43,0x4b,0x25,0x2f, 0xe4,0xae,0x8e,0x91,0x05,0x85,0x79,0x43,0xed,0x16,0x2b,0xf9,0x0b,0x18,0x29,0xb6,0x8b,0xe8,0x69,0x0f,
0x26,0x2c,0xa8,0x98,0xfa,0x5c,0x81,0xca,0x43,0x6c,0xcf,0x4d,0x5b,0xe1,0x87,0xbf,0xec,0x94,0x2f,0xc6, 0x3b,0x13,0x16,0x69,0xf8,0xbd,0xbf,0xe0,0xb6,0x00,0xed,0x6f,0x4a,0xc8,0x53,0x4a,0xd9,0xc8,0x19,0xab,
0x3a,0x18,0x7d,0x65,0xfb,0x00,0x2b,0x99,0x36,0x29,0xec,0x3e,0xc4,0x53,0xa9,0x20,0x8e,0xc7,0x23,0x08, 0x84,0x37,0xa8,0x32,0x66,0xc9,0x8d,0x9e,0xe9,0x8a,0x45,0xe1,0x33,0xb6,0xd5,0xb2,0xdb,0x49,0xe9,0x64,
0x45,0xd2,0x66,0xac,0x25,0x4e,0x28,0x69,0x3d,0x25,0x45,0x11,0xbd,0x00,0x15,0x1f,0xcf,0x94,0x11,0x32, 0x8f,0xfa,0x27,0xf6,0xea,0xf1,0xf5,0xae,0xdc,0xe6,0x43,0x4b,0x25,0x2f,0x89,0x14,0x64,0x4c,0x03,0x0e,
0xb8,0x42,0x52,0xb1,0x03,0x1a,0x59,0x97,0x0a,0x5d,0xdc,0x51,0x71,0x7c,0x16,0xc8,0xb8,0x34,0xd5,0x74, 0xa0,0xf2,0x10,0xdb,0x73,0xd3,0x56,0xf8,0xe1,0x2f,0x9e,0xe5,0x4b,0xca,0x0e,0x46,0x5f,0xd9,0x3e,0xc0,
0x05,0xbc,0x22,0xc6,0x62,0xc2,0x19,0x20,0x5c,0xe3,0x0a,0x00,0xa4,0xbb,0x77,0x12,0x80,0xe0,0x06,0xde, 0x4a,0x86,0x4d,0x4a,0x7b,0x00,0xf1,0x4c,0x4a,0x88,0xe3,0xfe,0x08,0x41,0x99,0xb0,0x19,0xa3,0xc4,0x01,
0x32,0x00,0xc2,0x11,0x53,0x00,0x98,0x46,0xc5,0x19,0x7f,0x4e,0x0d,0x63,0x39,0xe1,0x95,0xf2,0xf0,0x46, 0x25,0x8d,0x53,0x51,0x24,0xd1,0x05,0xac,0x78,0x7f,0x66,0x4c,0x90,0xe1,0x15,0x8a,0xca,0x1d,0xd0,0xc8,
0x20,0xa3,0x6d,0x86,0xaf,0x2e,0xb3,0xd0,0x02,0xfe,0x42,0xf8,0x22,0xdd,0x11,0xc8,0xa8,0xe9,0x44,0x0b, 0x58,0x2a,0x76,0x71,0x43,0xe5,0xf9,0x59,0x20,0xe3,0xd2,0x14,0xe9,0x0a,0x78,0x65,0x8c,0xc5,0x2a,0x67,
0x37,0x7d,0x99,0xa0,0x87,0x00,0xeb,0xe6,0x55,0x24,0x2b,0x27,0x53,0x4e,0xa2,0xf1,0x17,0x51,0xf3,0x01, 0x88,0x70,0xc4,0x15,0x08,0x48,0xf7,0x20,0x25,0x02,0xc1,0x6d,0xc8,0x65,0x04,0x84,0x23,0xa6,0x08,0x30,
0xf6,0x39,0xaf,0x72,0x0f,0x98,0x89,0x79,0x17,0xd9,0x64,0x41,0xd0,0xe7,0x4d,0x1e,0x15,0xbb,0x6a,0xd4, 0x44,0xc5,0xfb,0x96,0x9c,0x1c,0xc6,0x72,0xc2,0xeb,0xfd,0xe1,0xed,0x4c,0x26,0xdb,0x08,0x5f,0x23,0x67,
0xab,0xdd,0x34,0x8a,0xb0,0xbd,0x98,0x5f,0x47,0x5a,0xb2,0x77,0x4f,0x62,0x74,0x5b,0x74,0xfc,0xac,0xa3, 0xa9,0x05,0xfa,0xa5,0xf8,0x45,0xd8,0x11,0xc9,0xa8,0xe8,0x44,0x0b,0x37,0x7d,0x99,0x49,0x0f,0x01,0xd6,
0xe2,0x9e,0x25,0xd4,0xf6,0x07,0x55,0x35,0x3a,0x4a,0x58,0x05,0x1e,0xd3,0xb3,0x0c,0x1f,0xef,0x6b,0x25, 0xcd,0xab,0xa8,0xae,0x1c,0x4c,0xb9,0x88,0xce,0xbf,0x48,0x9a,0x4f,0x70,0xc0,0x75,0x95,0x7b,0xc0,0xcc,
0x80,0xd5,0xae,0x48,0xdc,0x0a,0x88,0x21,0xa9,0x30,0xc8,0x48,0xd7,0x42,0x98,0xc0,0x0d,0x7b,0x5c,0x09, 0x9c,0x77,0x91,0x4d,0x0a,0x26,0x7d,0xde,0xe0,0xd1,0x6a,0x57,0xcd,0x46,0xad,0x97,0x66,0x11,0x96,0x97,
0x68,0xf7,0xbe,0x5d,0xc7,0xb4,0x10,0xc1,0xfd,0xba,0xca,0x9e,0x32,0xb9,0x30,0xe0,0x84,0xce,0x85,0xa0, 0xf3,0xeb,0x08,0x25,0x7b,0x0f,0x28,0x66,0xb7,0x49,0xfb,0xcf,0x1a,0x2a,0xef,0x59,0x02,0x76,0x30,0xac,
0xdd,0xd9,0x84,0xf7,0xfb,0x4e,0xc8,0xb5,0xab,0x85,0x90,0x6b,0x57,0xef,0x80,0x4c,0x75,0x2e,0x85,0xcc, 0xa9,0xd9,0x51,0xc1,0x2a,0xf4,0x18,0xce,0x32,0x7e,0xbc,0xad,0x95,0x08,0xd6,0x7a,0x22,0x70,0x2b,0x28,
0xfa,0x5d,0x01,0xf2,0x6c,0x52,0x15,0xfb,0xa6,0x0c,0xda,0x88,0x52,0x10,0x68,0xac,0x29,0x17,0xa3,0xd4, 0x86,0xa2,0xd2,0x24,0x23,0xac,0x42,0x9a,0xc0,0x0d,0x5b,0x5c,0x89,0x68,0xef,0xbe,0xd3,0xc0,0x34,0x11,
0xd9,0x4a,0x10,0x9b,0x18,0xbe,0xfa,0xd0,0xd6,0xe7,0x0a,0x90,0x11,0xad,0x30,0xcc,0x58,0xdb,0x02,0xa0, 0xc1,0x83,0x86,0xca,0x9e,0xb2,0xb8,0x34,0xe1,0x04,0x66,0x21,0x69,0x77,0x3e,0xe5,0xed,0xbe,0x93,0x72,
0x52,0x97,0x79,0xf9,0x6b,0x02,0xdc,0x4c,0xfe,0x92,0x5f,0x94,0x50,0x72,0xb5,0xdb,0xba,0x84,0x19,0xd4, 0xfd,0xaa,0x90,0x72,0xfd,0xea,0x1d,0x94,0x29,0xe6,0x52,0xca,0xac,0xdd,0x15,0x28,0xcf,0xa7,0x35,0xb1,
0x31,0xa5,0x48,0x3e,0x97,0xf4,0xe4,0xe1,0x95,0xbb,0xd2,0x96,0x96,0x8f,0x31,0xb7,0x59,0xa8,0x7e,0xfc, 0x6f,0xca,0xb0,0x8d,0x24,0x25,0x89,0xc6,0x48,0xb9,0x1c,0xa5,0xc6,0x56,0xa2,0xd8,0xc2,0xf0,0xd5,0x87,
0x61,0x1b,0x92,0xa2,0x57,0xde,0xd7,0x94,0x57,0xde,0xe3,0xab,0xd3,0xaa,0x5b,0xd3,0xd9,0xa2,0xd7,0x71, 0xb6,0xbe,0x50,0x90,0x8c,0x64,0xa5,0x69,0xc6,0x68,0x05,0x44,0xa5,0x26,0xf3,0xe2,0xd7,0x14,0xb8,0x99,
0x13,0x35,0xef,0xcf,0x16,0x78,0xf5,0x9d,0x5f,0xb5,0x70,0x7b,0x19,0xd3,0xb6,0x86,0x40,0x7f,0x51,0xd7, 0xf8,0x25,0xbf,0x28,0xa1,0xe2,0x5a,0xaf,0x7d,0x09,0x33,0xac,0x63,0x49,0x99,0x78,0x2e,0xe1,0xe4,0xf1,
0xbe,0xd2,0x29,0xa0,0xc4,0xaf,0xb8,0x77,0xbb,0xcc,0xe9,0xd9,0xc1,0x76,0xcd,0xf1,0xe5,0x93,0x13,0x49, 0x95,0x9b,0xd2,0x96,0xa6,0x8f,0xb1,0xb6,0x59,0x2a,0x7f,0xfc,0x61,0x1b,0x92,0xb2,0x9f,0x1f,0x7c,0x50,
0xa1,0xce,0x28,0xc5,0xfc,0x3d,0x56,0x94,0x71,0x9e,0x8c,0xc6,0xe0,0x30,0xbb,0x1c,0x1c,0x66,0x97,0xf7, 0x7e,0x7e,0x10,0x5f,0x63,0x57,0xdd,0x60,0xcf,0x26,0xbd,0x8e,0x9b,0xc8,0x79,0x7f,0xb6,0xc0,0xab,0xef,
0x13,0xf3,0x2c,0xb3,0xcf,0xd0,0x57,0x80,0x0d,0x76,0xe3,0x54,0x3b,0x39,0xd6,0xca,0x8a,0xad,0xd2,0x62, 0xfc,0xa6,0x85,0xdb,0xcb,0x58,0xb6,0x39,0x02,0xfa,0x8b,0x3a,0xf7,0x95,0x4e,0x01,0x25,0x7d,0xc5,0x1d,
0x6e,0xb3,0xa2,0x1a,0x56,0xe2,0xe2,0x6b,0x68,0xaf,0xca,0x0f,0xbb,0x71,0x9b,0x77,0x92,0x26,0x21,0xf6, 0xe8,0x65,0x4e,0xcf,0x0e,0xb6,0xeb,0x8e,0x2f,0x9f,0x9c,0x48,0x80,0x3a,0x93,0x94,0xf3,0xf7,0x18,0x28,
0x09,0xac,0xf9,0xb4,0x3c,0x4f,0x1d,0x97,0x29,0x38,0x96,0x9f,0x99,0xa9,0x6d,0xc2,0x87,0x44,0xd4,0xc6, 0xe3,0x3c,0x19,0xc4,0xe0,0x30,0xbb,0x1a,0x1c,0x66,0x57,0xf7,0x13,0xe3,0x2c,0xab,0xcf,0xd1,0x57,0x80,
0x08,0x86,0x9b,0x77,0xe3,0x37,0xab,0xa6,0xc4,0xee,0x64,0xd3,0x3f,0xa4,0xf2,0x55,0xbc,0x40,0xd9,0xe6, 0x0d,0x76,0xfb,0x57,0x3b,0x39,0xd6,0xaa,0x8a,0xad,0x52,0xb1,0xb6,0xb9,0xa7,0xea,0x56,0xe2,0x12,0x72,
0xcd,0x05,0x4e,0xeb,0x57,0xdd,0x4b,0xda,0x34,0x8d,0x49,0x61,0xd5,0xe7,0xdd,0x89,0x61,0x9a,0x80,0x74, 0x68,0xaf,0xbd,0x1f,0x76,0xfb,0x39,0xef,0x24,0x4d,0x62,0xec,0x13,0x58,0xf7,0x69,0x7a,0x9e,0x3a,0x2e,
0xb2,0xd4,0x8d,0x0f,0xfc,0xc3,0x28,0x09,0x3a,0x53,0x11,0x44,0x1b,0xfb,0x4a,0x2a,0xe1,0x30,0x72,0x0e, 0x53,0x68,0x2c,0x3f,0x33,0x53,0xdb,0x84,0x77,0x89,0xa8,0x8d,0x11,0x74,0x37,0xef,0xf6,0x75,0x16,0xa6,
0x59,0xf2,0x25,0x05,0x7f,0x1f,0x39,0x42,0x6f,0xf9,0xaf,0x24,0xe9,0x0a,0x4b,0xe4,0xea,0x56,0x77,0xdc, 0xc2,0xee,0xc7,0xd3,0x3f,0xa4,0xf4,0x55,0xbc,0x40,0xd9,0xe2,0xc5,0x25,0x4e,0xeb,0x57,0xdd,0x4b,0xda,
0x39,0x7f,0x47,0x23,0x74,0x0f,0xb1,0xf4,0xbd,0x59,0xc0,0x9b,0xfe,0xdc,0x2c,0x3c,0xba,0xb8,0x13,0x64, 0x34,0x8c,0x49,0xd3,0x6a,0xc0,0x9b,0x13,0xdd,0x34,0x01,0xe9,0x66,0xa5,0xeb,0x1f,0xf9,0x47,0x6a,0x12,
0xfe,0xd5,0x59,0x4a,0x22,0xfa,0xda,0x2c,0xf3,0x96,0x27,0xf8,0xc4,0xd5,0xa2,0x53,0xe1,0x83,0x31,0xf5, 0x75,0x06,0x11,0xcc,0x36,0xf6,0xc5,0x5a,0xc2,0x61,0xe4,0x18,0xb2,0xe4,0xab,0x16,0xfe,0x3e,0x72,0x8c,
0xa5,0x67,0x30,0x05,0xa2,0xb1,0x74,0xc2,0x37,0xe5,0x55,0x97,0xda,0x47,0xfa,0xe4,0x55,0x7c,0xec,0xba, 0xde,0xf2,0x5f,0x49,0xd2,0x15,0x96,0xc8,0xd9,0xad,0xee,0xb8,0x0b,0xfe,0x8e,0x46,0x60,0x8f,0xb0,0xf4,
0xcd,0xbf,0xf1,0xfd,0x0f,0x58,0xcc,0x40,0x6c,0xf9,0x3b,0x00,0x00}; 0xed,0x5f,0xa0,0x9b,0xfe,0xf4,0x2f,0x3c,0xba,0xb8,0x13,0x62,0xfe,0x05,0x60,0xaa,0x46,0xf4,0xe5,0x5f,
0xe6,0x2d,0x4f,0xf0,0xb9,0xb1,0x45,0x87,0xc2,0x07,0x13,0xea,0x4b,0xcf,0x60,0x06,0x44,0x61,0xe5,0x84,
0x6f,0xca,0x6b,0x2e,0xb5,0x8f,0xf4,0xf9,0xb1,0xf8,0xf0,0x78,0x8b,0x7f,0x6f,0xfd,0x6f,0x98,0x74,0xa6,
0x4d,0x85,0x3d,0x00,0x00};
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,12 @@
#define __assets_version #define __assets_version
const uint8_t VersionMajor = 2; const uint8_t VersionMajor = 2;
const uint8_t VersionMinor = 0; const uint8_t VersionMinor = 1;
const uint8_t VersionPatch = 0; const uint8_t VersionPatch = 0;
const uint8_t VersionMetadata = 0; const uint8_t VersionMetadata = 2;
const char VersionBranch[] = "master"; const char VersionBranch[] = "release/2.1";
const char VersionSemVer[] = "2.0.0"; const char VersionSemVer[] = "2.1.0-beta.1";
const char VersionFullSemVer[] = "2.0.0+0"; const char VersionFullSemVer[] = "2.1.0-beta.1+2";
const char VersionCommitDate[] = "2018-02-17"; const char VersionCommitDate[] = "2018-04-29";
#endif #endif

46
src/config.cpp Normal file
View File

@ -0,0 +1,46 @@
/*
* Stairs
* Copyright 2017 (c) Mark van Renswoude
*
* https://git.x2software.net/pub/Stairs
*/
#include "./config.h"
#ifdef SerialDebug
const uint32_t SerialDebugBaudrate = 115200;
const uint32_t SerialDebugStartupDelay = 2000;
#endif
const char* ConnectionSettingsFile = "/connection.json";
const char* SystemSettingsFile = "/system.json";
const char* StepsSettingsFile = "/steps.json";
const char* TimeTriggerSettingsFile = "/timetriggers.json";
const char* MotionTriggerSettingsFile = "/motiontriggers.json";
const char* DefaultAPSSIDPrefix = "Stairs-";
const char* DefaultNTPServer = "pool.ntp.org";
// Timeout when in AP + station mode (otherwise trying to connect
// to the STA will block the AP)
const uint32_t StationModeTimeout = 30000;
const uint16_t APButtonHoldTime = 2000;
// Only used if the timezone has not been succesfully retrieved yet, otherwise
// the configurable NTP interval is used
const uint32_t TimezoneRetryInterval = 60000;
#ifdef MapsAPIViaProxyScript
const char* TimezoneProxyScriptHost = "api.x2software.net";
const char* TimezoneProxyScriptPath = "/timezone.php";
#endif
const uint8_t InitialisationBrightness = 128;
const uint8_t InitialisationFadeTime = 250;
const uint8_t InitialisationBlinkCount = 2;

View File

@ -1,3 +1,9 @@
/*
* Stairs
* Copyright 2017 (c) Mark van Renswoude
*
* https://git.x2software.net/pub/Stairs
*/
#ifndef __config #ifndef __config
#define __config #define __config
@ -14,32 +20,27 @@
#ifdef SerialDebug #ifdef SerialDebug
static const uint32_t SerialDebugBaudrate = 115200; extern const uint32_t SerialDebugBaudrate;
static const uint32_t SerialDebugStartupDelay = 2000; extern const uint32_t SerialDebugStartupDelay;
#endif #endif
static const char* ConnectionSettingsFile = "/connection.json"; extern const char* ConnectionSettingsFile;
static const char* SystemSettingsFile = "/system.json"; extern const char* SystemSettingsFile;
static const char* StepsSettingsFile = "/steps.json"; extern const char* StepsSettingsFile;
static const char* TimeTriggerSettingsFile = "/timetriggers.json"; extern const char* TimeTriggerSettingsFile;
static const char* MotionTriggerSettingsFile = "/motiontriggers.json"; extern const char* MotionTriggerSettingsFile;
static const char* DefaultAPSSIDPrefix = "Stairs-"; extern const char* DefaultAPSSIDPrefix;
static const char* DefaultNTPServer = "pool.ntp.org"; extern const char* DefaultNTPServer;
// Timeout when in AP + station mode (otherwise trying to connect extern const uint32_t StationModeTimeout;
// to the STA will block the AP) extern const uint16_t APButtonHoldTime;
static const uint32_t StationModeTimeout = 30000;
static const uint16_t APButtonHoldTime = 2000;
// Only used if the timezone has not been succesfully retrieved yet, otherwise extern const uint32_t TimezoneRetryInterval;
// the configurable NTP interval is used
static const uint32_t TimezoneRetryInterval = 60000;
// SSL takes quite a bit of memory (and I haven't been optimizing much), // SSL takes quite a bit of memory (and I haven't been optimizing much),
@ -60,8 +61,13 @@ static const uint32_t TimezoneRetryInterval = 60000;
#define MapsAPIViaProxyScript #define MapsAPIViaProxyScript
#ifdef MapsAPIViaProxyScript #ifdef MapsAPIViaProxyScript
static const char* TimezoneProxyScriptHost = "api.x2software.net"; extern const char* TimezoneProxyScriptHost;
static const char* TimezoneProxyScriptPath = "/timezone.php"; extern const char* TimezoneProxyScriptPath;
#endif #endif
extern const uint8_t InitialisationBrightness;
extern const uint8_t InitialisationFadeTime;
extern const uint8_t InitialisationBlinkCount;
#endif #endif

View File

@ -44,6 +44,17 @@ AsyncWebServer server(80);
PCA9685* pwmDriver; PCA9685* pwmDriver;
inline void waitForTransition()
{
while (stairs->inTransition())
{
currentTime = millis();
stairs->tick();
delay(1);
}
}
void setup() void setup()
{ {
_dinit(); _dinit();
@ -75,21 +86,17 @@ void setup()
stairs = new Stairs(); stairs = new Stairs();
stairs->init(pwmDriver); stairs->init(pwmDriver);
/*
_dln("Setup :: starting initialization sequence"); _dln("Setup :: starting initialization sequence");
stairs->set(0, 255); uint8_t bottomStep = stepsSettings->count() - 1;
delay(300);
uint8_t stepCount = stepsSettings->count(); for (uint8_t i = 0; i < InitialisationBlinkCount; i++)
for (int step = 1; step < stepCount; step++)
{ {
stairs->set(step - 1, 0); stairs->set(bottomStep, InitialisationBrightness, InitialisationFadeTime);
stairs->set(step, 255); waitForTransition();
delay(300);
}
stairs->set(stepCount - 1, 0); stairs->set(bottomStep, 0, InitialisationFadeTime);
*/ waitForTransition();
}
_dln("Setup :: initializing WiFi"); _dln("Setup :: initializing WiFi");
WiFi.persistent(false); WiFi.persistent(false);

View File

@ -41,6 +41,9 @@ void wifiEvent(WiFiEvent_t event)
case WIFI_EVENT_SOFTAPMODE_STADISCONNECTED: case WIFI_EVENT_SOFTAPMODE_STADISCONNECTED:
_dln("WiFi:: soft AP mode: station disconnected"); break; _dln("WiFi:: soft AP mode: station disconnected"); break;
default:
break;
} }
} }

View File

@ -66,7 +66,8 @@ void parseResponse()
return; return;
} }
timezoneOffset = root["rawOffset"]; timezoneOffset = root["rawOffset"].as<uint32_t>() + root["dstOffset"].as<uint32_t>();
hasTimezone = true; hasTimezone = true;
} }
@ -284,6 +285,7 @@ void updateTimeTrigger()
{ {
case RelativeToSunrise: _d("sunrise "); break; case RelativeToSunrise: _d("sunrise "); break;
case RelativeToSunset: _d("sunset "); break; case RelativeToSunset: _d("sunset "); break;
default: break;
} }
_dln(activeTimeTrigger->time); _dln(activeTimeTrigger->time);
} }
@ -358,9 +360,30 @@ void checkTriggers()
bool timeTriggerChanged = activeTimeTrigger != lastTimeTrigger; bool timeTriggerChanged = activeTimeTrigger != lastTimeTrigger;
lastTimeTrigger = activeTimeTrigger; lastTimeTrigger = activeTimeTrigger;
bool inMotionTrigger = (activeMotionStart > 0) && (!inTimeTrigger || motionTriggerSettings->enabledDuringTimeTrigger());
bool motionChanged = (activeMotionStart > 0) != lastMotion; bool inMotionTrigger = false;
lastMotion = (activeMotionStart > 0);
if (activeMotionStart > 0)
{
switch (motionTriggerSettings->enabledDuringTimeTrigger())
{
case Never:
inMotionTrigger = !inTimeTrigger;
break;
case Always:
inMotionTrigger = true;
break;
case Only:
inMotionTrigger = inTimeTrigger;
break;
}
}
bool motionChanged = inMotionTrigger != lastMotion;
lastMotion = inMotionTrigger;
if (motionTriggerSettingsChanged) if (motionTriggerSettingsChanged)
{ {
@ -373,6 +396,10 @@ void checkTriggers()
return; return;
_d("Triggers :: motionChanged = "); _dln(motionChanged);
_d("Triggers :: timeTriggerChanged = "); _dln(timeTriggerChanged);
if (motionChanged) if (motionChanged)
{ {
if (inMotionTrigger) if (inMotionTrigger)

View File

@ -21,6 +21,9 @@ extern "C" {
} }
bool clearedResetReason = false;
void handleStatus(AsyncWebServerRequest *request) void handleStatus(AsyncWebServerRequest *request)
{ {
_dln("API :: status"); _dln("API :: status");
@ -42,7 +45,7 @@ void handleStatus(AsyncWebServerRequest *request)
root["timeOffset"] = 0; root["timeOffset"] = 0;
} }
root["resetReason"] = ESP.getResetInfoPtr()->reason; root["resetReason"] = clearedResetReason ? 0 : ESP.getResetInfoPtr()->reason;
root["stackTrace"] = SaveCrash.count() > 0; root["stackTrace"] = SaveCrash.count() > 0;
AsyncResponseStream *response = request->beginResponseStream("application/json"); AsyncResponseStream *response = request->beginResponseStream("application/json");
@ -186,6 +189,7 @@ void handleDeleteStackTrace(AsyncWebServerRequest *request)
{ {
_dln("API :: delete stack trace"); _dln("API :: delete stack trace");
clearedResetReason = true;
SaveCrash.clear(); SaveCrash.clear();
request->send(200); request->send(200);
} }

View File

@ -48,10 +48,10 @@ class StepsSettings : public AbstractJsonSettings
void useCurve(bool value) { mUseCurve = value; } void useCurve(bool value) { mUseCurve = value; }
uint16_t rangeStart(uint8_t step) { return step < MaxStepCount ? mRange[step].start : 0; } uint16_t rangeStart(uint8_t step) { return step < MaxStepCount ? mRange[step].start : 0; }
uint16_t rangeStart(uint8_t step, uint16_t value) { if (step < MaxStepCount) mRange[step].start = value; } void rangeStart(uint8_t step, uint16_t value) { if (step < MaxStepCount) mRange[step].start = value; }
uint16_t rangeEnd(uint8_t step) { return step < MaxStepCount ? mRange[step].end : 0; } uint16_t rangeEnd(uint8_t step) { return step < MaxStepCount ? mRange[step].end : 0; }
uint16_t rangeEnd(uint8_t step, uint16_t value) { if (step < MaxStepCount) mRange[step].end = value; } void rangeEnd(uint8_t step, uint16_t value) { if (step < MaxStepCount) mRange[step].end = value; }
}; };
#endif #endif

View File

@ -17,7 +17,7 @@ void MotionTriggerSettings::toJson(Print &print)
JsonObject& root = jsonBuffer.createObject(); JsonObject& root = jsonBuffer.createObject();
root["enabled"] = enabled(); root["enabled"] = enabled();
root["enabledDuringTimeTrigger"] = enabledDuringTimeTrigger(); root["enabledDuringTimeTrigger"] = (uint8_t)enabledDuringTimeTrigger();
root["enabledDuringDay"] = enabledDuringDay(); root["enabledDuringDay"] = enabledDuringDay();
root["transitionTime"] = transitionTime(); root["transitionTime"] = transitionTime();
root["delay"] = delay(); root["delay"] = delay();
@ -52,8 +52,28 @@ bool MotionTriggerSettings::fromJson(char* data, bool* changed)
enabled(root["enabled"]); enabled(root["enabled"]);
enabledDuringTimeTrigger(root["enabledDuringTimeTrigger"]);
enabledDuringDay(root["enabledDuringDay"]); enabledDuringDay(root["enabledDuringDay"]);
JsonVariant jsonEnabledDuringTimeTrigger = root["enabledDuringTimeTrigger"];
if (jsonEnabledDuringTimeTrigger.success())
{
if (jsonEnabledDuringTimeTrigger.is<bool>())
{
// Backwards compatibility
if (jsonEnabledDuringTimeTrigger.as<bool>())
enabledDuringTimeTrigger(MotionDuringTimeTrigger::Always);
else
enabledDuringTimeTrigger(MotionDuringTimeTrigger::Never);
}
else
{
enabledDuringTimeTrigger((MotionDuringTimeTrigger)jsonEnabledDuringTimeTrigger.as<uint8_t>());
}
}
else
enabledDuringTimeTrigger(MotionDuringTimeTrigger::Never);
transitionTime(root["transitionTime"]); transitionTime(root["transitionTime"]);
delay(root["delay"]); delay(root["delay"]);

View File

@ -20,6 +20,14 @@ enum MotionDirection
}; };
enum MotionDuringTimeTrigger
{
Never = 0,
Always = 1,
Only = 2
};
struct MotionTrigger struct MotionTrigger
{ {
uint8_t pin; uint8_t pin;
@ -33,7 +41,7 @@ class MotionTriggerSettings : public AbstractJsonSettings
{ {
private: private:
bool mEnabled = false; bool mEnabled = false;
bool mEnabledDuringTimeTrigger = false; MotionDuringTimeTrigger mEnabledDuringTimeTrigger = MotionDuringTimeTrigger::Never;
bool mEnabledDuringDay = false; bool mEnabledDuringDay = false;
uint16_t mTransitionTime = 500; uint16_t mTransitionTime = 500;
uint32_t mDelay = 30000; uint32_t mDelay = 30000;
@ -52,8 +60,8 @@ class MotionTriggerSettings : public AbstractJsonSettings
bool enabled() { return mEnabled; } bool enabled() { return mEnabled; }
void enabled(bool value) { mEnabled = value; } void enabled(bool value) { mEnabled = value; }
bool enabledDuringTimeTrigger() { return mEnabledDuringTimeTrigger; } MotionDuringTimeTrigger enabledDuringTimeTrigger() { return mEnabledDuringTimeTrigger; }
void enabledDuringTimeTrigger(bool value) { mEnabledDuringTimeTrigger = value; } void enabledDuringTimeTrigger(MotionDuringTimeTrigger value) { mEnabledDuringTimeTrigger = value; }
bool enabledDuringDay() { return mEnabledDuringDay; } bool enabledDuringDay() { return mEnabledDuringDay; }
void enabledDuringDay(bool value) { mEnabledDuringDay = value; } void enabledDuringDay(bool value) { mEnabledDuringDay = value; }

View File

@ -39,9 +39,8 @@ DayOfWeek toDayOfWeek(timeDayOfWeek_t timeDay)
case dowThursday: return Thursday; case dowThursday: return Thursday;
case dowFriday: return Friday; case dowFriday: return Friday;
case dowSaturday: return Saturday; case dowSaturday: return Saturday;
default: return Monday;
} }
return Monday;
} }
@ -163,6 +162,10 @@ TimeTrigger* TimeTriggerSettings::getActiveTrigger(tmElements_t &time)
case RelativeToSunset: case RelativeToSunset:
triggerTime += sunsetMinutes; triggerTime += sunsetMinutes;
break; break;
case FixedTime:
// No changes (but eliminates warning)
break;
} }
// Check if the current time is after the time set in the trigger, and // Check if the current time is after the time set in the trigger, and

View File

@ -204,7 +204,7 @@ function startApp()
motion: { motion: {
enabled: false, enabled: false,
enabledDuringTimeTrigger: false, enabledDuringTimeTrigger: 0,
enabledDuringDay: false, enabledDuringDay: false,
transitionTime: null, transitionTime: null,
delay: null, delay: null,

2
web/dist/bundle.css vendored

File diff suppressed because one or more lines are too long

2
web/dist/bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@ -176,9 +176,16 @@
<check v-model.boolean="triggers.motion.enabled" :title="$t('triggers.motionEnabled')"></check> <check v-model.boolean="triggers.motion.enabled" :title="$t('triggers.motionEnabled')"></check>
<div v-if="triggers.motion.enabled"> <div v-if="triggers.motion.enabled">
<check v-model.boolean="triggers.motion.enabledDuringDay" :title="$t('triggers.motionEnabledDuringDay')"></check> <label for="motionEnabledDuringTimeTrigger">{{ $t('triggers.motionEnabledDuringTimeTrigger') }}</label>
<select v-model="triggers.motion.enabledDuringTimeTrigger" id="motionEnabledDuringTimeTrigger">
<option value="0">{{ $t('triggers.motionEnabledDuringTimeTriggerNever') }}</option>
<option value="1">{{ $t('triggers.motionEnabledDuringTimeTriggerAlways') }}</option>
<option value="2">{{ $t('triggers.motionEnabledDuringTimeTriggerOnly') }}</option>
</select>
<check v-model.boolean="triggers.motion.enabledDuringTimeTrigger" :title="$t('triggers.motionEnabledDuringTimeTrigger')"></check> <div>
<check v-model.boolean="triggers.motion.enabledDuringDay" :disabled="triggers.motion.enabledDuringTimeTrigger == 2" :title="$t('triggers.motionEnabledDuringDay')"></check>
</div>
<label for="motionTransitionTime">{{ $t('triggers.motionTransitionTime') }}</label> <label for="motionTransitionTime">{{ $t('triggers.motionTransitionTime') }}</label>
<input type="number" id="motionTransitionTime" v-model.number="triggers.motion.transitionTime"> <input type="number" id="motionTransitionTime" v-model.number="triggers.motion.transitionTime">

View File

@ -67,7 +67,10 @@ var messages = {
motionNoData: 'No motion triggers defined yet', motionNoData: 'No motion triggers defined yet',
motionEnabled: 'Enable motion triggers', motionEnabled: 'Enable motion triggers',
motionEnabledDuringTimeTrigger: 'Activate even if a time trigger is already active', motionEnabledDuringTimeTrigger: 'Activate when a time trigger is active',
motionEnabledDuringTimeTriggerNever: 'Do not activate when a time trigger is active',
motionEnabledDuringTimeTriggerAlways: 'Activate even if a time trigger is active',
motionEnabledDuringTimeTriggerOnly: 'Activate only when a time trigger is active',
motionEnabledDuringDay: 'Activate during the day (between sunrise and sunset)', motionEnabledDuringDay: 'Activate during the day (between sunrise and sunset)',
motionTransitionTime: 'Transition time in milliseconds', motionTransitionTime: 'Transition time in milliseconds',
motionDelay: 'Keep on time in milliseconds', motionDelay: 'Keep on time in milliseconds',
@ -250,7 +253,10 @@ var messages = {
motionNoData: 'Nog geen beweging triggers geconfigureerd', motionNoData: 'Nog geen beweging triggers geconfigureerd',
motionEnabled: 'Beweging triggers inschakelen', motionEnabled: 'Beweging triggers inschakelen',
motionEnabledDuringTimeTrigger: 'Ook inschakelen als er al een tijd trigger actief is', motionEnabledDuringTimeTrigger: 'Inschakelen als er een tijd trigger actief is',
motionEnabledDuringTimeTriggerNever: 'Niet activeren als er een tijd trigger actief is',
motionEnabledDuringTimeTriggerAlways: 'Activeer ook als er een tijd trigger actief is',
motionEnabledDuringTimeTriggerOnly: 'Alleen activeren als er een tijd trigger actief is',
motionEnabledDuringDay: 'Ook overdag inschakelen (tussen zonsopgang en zonsondergang)', motionEnabledDuringDay: 'Ook overdag inschakelen (tussen zonsopgang en zonsondergang)',
motionTransitionTime: 'Transitie tijd in milliseconden', motionTransitionTime: 'Transitie tijd in milliseconden',
motionDelay: 'Tijd aan in milliseconden', motionDelay: 'Tijd aan in milliseconden',

View File

@ -128,6 +128,18 @@ button, input
} }
@mixin removeSafariStyling
{
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
input
{
@include removeSafariStyling;
}
button, .button, input[type=submit] button, .button, input[type=submit]
{ {
@extend %outset; @extend %outset;
@ -265,6 +277,8 @@ a.button
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
white-space: nowrap; white-space: nowrap;
margin-top: .5em;
margin-bottom: .5em;
.control .control
{ {
@ -298,6 +312,11 @@ a.button
&.disabled &.disabled
{ {
cursor: not-allowed; cursor: not-allowed;
.label
{
color: $inputDisabledTextColor;
}
} }
} }
@ -368,6 +387,7 @@ select
@extend %outset; @extend %outset;
background: $selectBackground; background: $selectBackground;
color: $inputTextColor; color: $inputTextColor;
font-family: 'Verdana', 'Arial', sans-serif;
padding: .5em; padding: .5em;
} }