diff --git a/.gitignore b/.gitignore index bb02e36e..789de0a9 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ node_modules wled-update.sh esp01-update.sh /wled00/LittleFS -replace_fs.py \ No newline at end of file +replace_fs.py +wled00/wled00.ino.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index c99fe417..69129061 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,91 @@ ## WLED changelog +#### Build 2303240 +- Peek scaling of large 2D matrices +- Added 0D (1 pixel) metadata for effects & enhance 0D (analog strip) UI handling +- Added ability to disable ADAlight (-D WLED_DISABLE_ADALIGHT) +- Fixed APA102 output on Ethernet enabled controllers +- Added ArtNet virtual/network output (#3121) +- Klipper usermod (#3106) +- Remove DST from CST timezone +- various fixes and enhancements + +#### Build 2302180 + +- Removed Blynk support (servers shut down on 31st Dec 2022) +- Added `ledgap.json` to complement ledmaps for 2D matrices +- Added support for white addressable strips (#3073) +- Ability to use SHT temperature usermod with PWM fan usermod +- Added `onStateChange()` callback to usermods (#3081) +- Refactored `bus_manager` [internal] +- Dual 1D & 2D mode (add 1D strip after the matrix) +- Removed 1D -> 2D mapping for individual pixel control +- effect tweak: Fireworks 1D +- various bugfixes + +#### Build 2301240 + +- Version bump to v0.14.0-b2 "Hoshi" +- PixelArt converter (convert any image to pixel art and display it on a matrix) (PR #3042) +- various effect updates and optimisations + - added Overlay option to some effects (allows overlapping segments) + - added gradient text on Scrolling Text + - added #DDMM, #MMDD & #HHMM date and time options for Scrolling Text effect (PR #2990) + - deprecated: Dynamic Smooth, Dissolve Rnd, Solid Glitter + - optimised & enhanced loading of default values + - new effect: Distortion Waves (2D) + - 2D support for Ripple effect + - slower minimum speed for Railway effect +- DMX effect mode & segment controls (PR #2891) +- Optimisations for conditional compiles (further reduction of code size) +- better UX with effect sliders (PR #3012) +- enhanced support for ESP32 variants: C3, S2 & S3 +- usermod enhancements (PIR, Temperature, Battery (PR #2975), Analog Clock (PR #2993)) +- new usermod SHT (PR #2963) +- 2D matrix set up with gaps or irregular panels (breaking change!) (PR #2892) +- palette blending/transitions +- random palette smooth changes +- hex color notations in custom palettes +- allow more virtual buses +- plethora of bugfixes + ### WLED release 0.14.0-b1 #### Build 2212222 - Version bump to v0.14.0-b1 "Hoshi" -- Full changelog TBD +- 2D matrix support (including mapping 1D effects to 2D and 2D peek) +- [internal] completely rewritten Segment & WS2812FX handling code +- [internal] ability to add custom effects via usermods +- [internal] set of 2D drawing functions +- transitions on every segment (including ESP8266) +- enhanced old and new 2D effects (metadata: default values) +- custom palettes (up to 10; upload palette0.json, palette1.json, ...) +- custom effect sliders and options, quick filters +- global I2C and SPI GPIO allocation (for usermods) +- usermod settings page enhancements (dropdown & info) +- asynchronous preset loading (and added "pd" JSON API call for direct preset apply) +- new usermod Boblight (PR #2917) +- new usermod PWM Outputs (PR #2912) +- new usermod Audioreactive +- new usermod Word Clock Matrix (PR #2743) +- new usermod Ping Pong Clock (PR #2746) +- new usermod ADS1115 (PR #2752) +- new usermod Analog Clock (PR #2736) +- various usermod enhancements and updates +- allow disabling pull-up resistors on buttons +- SD card support (PR #2877) +- enhanced HTTP API to support custom effect sliders & options (X1, X2, X3, M1, M2, M3) +- multiple UDP sync message retries (PR #2830) +- network debug printer (PR #2870) +- automatic UI PC mode on large displays +- removed support for upgrading from pre-0.10 (EEPROM) +- support for setting GPIO level when LEDs are off (RMT idle level, ESP32 only) (PR #2478) +- Pakistan time-zone (PKT) +- ArtPoll support +- TM1829 LED support +- experimental support for ESP32 S2, S3 and C3 +- general improvements and bugfixes ### WLED release 0.13.3 diff --git a/package-lock.json b/package-lock.json index 59c4b368..2ec2d887 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,27 +1,9 @@ { "name": "wled", - "version": "0.14.0-b1", + "version": "0.14.0-b2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -48,39 +30,6 @@ "repeat-string": "^1.5.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-escapes": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", @@ -97,9 +46,9 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -147,9 +96,9 @@ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -160,68 +109,15 @@ } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -244,35 +140,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", @@ -322,25 +189,20 @@ } }, "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.6.0" } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", @@ -364,11 +226,6 @@ } } }, - "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" - }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", @@ -379,14 +236,6 @@ "wordwrap": "0.0.2" } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "coa": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", @@ -395,19 +244,6 @@ "q": "^1.1.2" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -429,7 +265,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "configstore": { "version": "1.4.0", @@ -458,11 +294,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, "css-select": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", @@ -509,24 +340,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -590,19 +408,6 @@ } } }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -657,11 +462,6 @@ "safer-buffer": "^2.1.0" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -680,11 +480,6 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=" }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -739,19 +534,11 @@ } }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -768,14 +555,6 @@ "is-glob": "^4.0.1" } }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "requires": { - "ini": "^1.3.5" - } - }, "got": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", @@ -830,12 +609,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "he": { "version": "1.2.0", @@ -909,11 +683,6 @@ } } }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -935,12 +704,7 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" }, "imurmurhash": { "version": "0.1.4", @@ -1001,46 +765,24 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", @@ -1051,16 +793,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -1076,11 +808,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -1110,11 +837,6 @@ "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz", "integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==" }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -1141,14 +863,6 @@ "verror": "1.10.0" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -1292,21 +1006,6 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1325,15 +1024,10 @@ "mime-db": "1.44.0" } }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -1365,152 +1059,34 @@ } }, "nodemon": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", - "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^4.0.0" + "undefsafe": "^2.0.5" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "supports-color": { "version": "5.5.0", @@ -1519,49 +1095,13 @@ "requires": { "has-flag": "^3.0.0" } - }, - "update-notifier": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", - "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" } } }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "requires": { "abbrev": "1" } @@ -1571,11 +1111,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -1621,11 +1156,6 @@ "os-tmpdir": "^1.0.0" } }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, "package-json": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", @@ -1669,9 +1199,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pinkie": { "version": "2.0.4", @@ -1714,28 +1244,11 @@ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, - "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", - "requires": { - "escape-goat": "^2.0.0" - } - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -1812,21 +1325,13 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } }, - "registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", - "requires": { - "rc": "^1.2.8" - } - }, "registry-url": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", @@ -1880,14 +1385,6 @@ "uuid": "^3.3.2" } }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -1924,10 +1421,20 @@ "semver": "^5.0.3" } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } }, "slide": { "version": "1.1.6", @@ -1989,41 +1496,6 @@ "strip-ansi": "^3.0.0" } }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -2061,11 +1533,6 @@ "whet.extend": "~0.9.9" } }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, "terser": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", @@ -2096,11 +1563,6 @@ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2144,19 +1606,6 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -2174,20 +1623,9 @@ "optional": true }, "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "requires": { - "debug": "^2.2.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" }, "update-notifier": { "version": "0.5.0", @@ -2211,21 +1649,6 @@ "punycode": "^2.1.0" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - }, - "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2251,14 +1674,6 @@ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", diff --git a/package.json b/package.json index d9468756..5c4cfde4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.14.0-b1", + "version": "0.14.0-b2", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { @@ -25,7 +25,7 @@ "clean-css": "^4.2.3", "html-minifier-terser": "^5.1.1", "inliner": "^1.13.1", - "nodemon": "^2.0.4", + "nodemon": "^2.0.20", "zlib": "^1.0.5" } } diff --git a/platformio.ini b/platformio.ini index 3b8489d8..da8eb85e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ # ------------------------------------------------------------------------------ # Release / CI binaries -default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32s2_saola, esp32c3, esp32s3dev_8MB +default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32s2_saola, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB # Build everything ; default_envs = esp32dev, esp8285_4CH_MagicHome, codm-controller-0.6-rev2, codm-controller-0.6, esp32s2_saola, d1_mini_5CH_Shojo_PCB, d1_mini, sp501e, nodemcuv2, esp32_eth, anavi_miracle_controller, esp07, esp01_1m_full, m5atom, h803wf, d1_mini_ota, heltec_wifi_kit_8, esp8285_H801, d1_mini_debug, wemos_shield_esp32, elekstube_ips @@ -55,18 +55,28 @@ arduino_core_2_6_3 = espressif8266@2.3.3 arduino_core_2_7_4 = espressif8266@2.6.2 arduino_core_3_0_0 = espressif8266@3.0.0 arduino_core_3_2_0 = espressif8266@3.2.0 +arduino_core_4_1_0 = espressif8266@4.1.0 # Development platforms arduino_core_develop = https://github.com/platformio/platform-espressif8266#develop arduino_core_git = https://github.com/platformio/platform-espressif8266#feature/stage # Platform to use for ESP8266 -platform_wled_default = ${common.arduino_core_3_2_0} +platform_wled_default = ${common.arduino_core_4_1_0} # We use 2.7.4.7 for all, includes PWM flicker fix and Wstring optimization -platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7 - platformio/toolchain-xtensa @ ~2.40802.200502 - platformio/tool-esptool @ ~1.413.0 - platformio/tool-esptoolpy @ ~1.30000.0 +#platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7 +platform_packages = platformio/framework-arduinoespressif8266 + platformio/toolchain-xtensa @ ~2.100300.220621 #2.40802.200502 + platformio/tool-esptool #@ ~1.413.0 + platformio/tool-esptoolpy #@ ~1.30000.0 + +## previous platform for 8266, in case of problems with the new one +## you'll need makuna/NeoPixelBus@ 2.6.9 for arduino_core_3_2_0, which does not support Ucs890x +;; platform_wled_default = ${common.arduino_core_3_2_0} +;; platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7 +;; platformio/toolchain-xtensa @ ~2.40802.200502 +;; platformio/tool-esptool @ ~1.413.0 +;; platformio/tool-esptoolpy @ ~1.30000.0 # ------------------------------------------------------------------------------ # FLAGS: DEBUG @@ -104,6 +114,7 @@ build_flags = -DBEARSSL_SSL_BASIC -D CORE_DEBUG_LEVEL=0 -D NDEBUG + -Wno-attributes ;; silence warnings about unknown attribute 'maybe_unused' in NeoPixelBus #build_flags for the IRremoteESP8266 library (enabled decoders have to appear here) -D _IR_ENABLE_DEFAULT_=false -D DECODE_HASH=true @@ -111,7 +122,7 @@ build_flags = -D DECODE_SONY=true -D DECODE_SAMSUNG=true -D DECODE_LG=true - ; -Dregister= # remove warnings in C++17 due to use of deprecated register keyword by the FastLED library + ;-Dregister= # remove warnings in C++17 due to use of deprecated register keyword by the FastLED library ;; warning: this breaks framework code on ESP32-C3 and ESP32-S2 -DWLED_USE_MY_CONFIG ; -D USERMOD_SENSORSTOMQTT #For ADS1115 sensor uncomment following @@ -121,6 +132,7 @@ build_unflags = build_flags_esp8266 = ${common.build_flags} ${esp8266.build_flags} build_flags_esp32 = ${common.build_flags} ${esp32.build_flags} +build_flags_esp32_V4= ${common.build_flags} ${esp32_idf_V4.build_flags} ldscript_1m128k = eagle.flash.1m128.ld ldscript_2m512k = eagle.flash.2m512.ld @@ -150,8 +162,8 @@ upload_speed = 115200 # LIBRARIES: required dependencies # Please note that we don't always use the latest version of a library. # -# The following libraries have been included (and some of them changd) in the source: -# ArduinoJson@5.13.5, Blynk@0.5.4(changed), E131@1.0.0(changed), Time@1.5, Timezone@1.2.1 +# The following libraries have been included (and some of them changed) in the source: +# ArduinoJson@5.13.5, E131@1.0.0(changed), Time@1.5, Timezone@1.2.1 # ------------------------------------------------------------------------------ lib_compat_mode = strict lib_deps = @@ -182,25 +194,26 @@ build_flags = -DESP8266 -DFP_IN_IROM ;-Wno-deprecated-declarations - ;-Wno-register - ;-Wno-misleading-indentation -; NONOSDK22x_190703 = 2.2.2-dev(38a443e) + -Wno-register ;; leaves some warnings when compiling C files: command-line option '-Wno-register' is valid for C++/ObjC++ but not for C + ;-Dregister= # remove warnings in C++17 due to use of deprecated register keyword by the FastLED library ;; warning: this can be dangerous + -Wno-misleading-indentation + ; NONOSDK22x_190703 = 2.2.2-dev(38a443e) -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703 -; lwIP 2 - Higher Bandwidth no Features -; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH -; lwIP 1.4 - Higher Bandwidth (Aircoookie has) - -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH -; VTABLES in Flash + ; lwIP 2 - Higher Bandwidth no Features + ; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH + ; lwIP 1.4 - Higher Bandwidth (Aircoookie has) + -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH + ; VTABLES in Flash -DVTABLES_IN_FLASH -; restrict to minimal mime-types + ; restrict to minimal mime-types -DMIMETYPE_MINIMAL -lib_deps = +lib_deps = ${env.lib_deps} #https://github.com/lorol/LITTLEFS.git ESPAsyncTCP @ 1.2.2 ESPAsyncUDP - makuna/NeoPixelBus @ 2.6.9 + makuna/NeoPixelBus @ 2.7.3 [esp32] #platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip @@ -212,9 +225,9 @@ build_flags = -g -DARDUINO_ARCH_ESP32 #-DCONFIG_LITTLEFS_FOR_IDF_3_2 -D CONFIG_ASYNC_TCP_USE_WDT=0 -#use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x + #use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x -D LOROL_LITTLEFS - ; -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when builing with arduino-esp32 >=2.0.3 + ; -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3 default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv @@ -224,27 +237,54 @@ lib_deps = makuna/NeoPixelBus @ 2.6.9 https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 + +[esp32_idf_V4] +;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5 +;; very similar to the normal ESP32 flags, but omitting Lorol LittleFS, as littlefs is included in the new framework already. +;; +;; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly. +;; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio. +platform = espressif32@5.2.0 +platform_packages = +build_flags = -g + -DARDUINO_ARCH_ESP32 -DESP32 + #-DCONFIG_LITTLEFS_FOR_IDF_3_2 + -D CONFIG_ASYNC_TCP_USE_WDT=0 + -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3 +default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv +lib_deps = + ${env.lib_deps} + makuna/NeoPixelBus @ 2.7.3 + https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 + [esp32s2] +;; generic definitions for all ESP32-S2 boards +platform = espressif32@5.2.0 +platform_packages = build_flags = -g -DARDUINO_ARCH_ESP32 -DARDUINO_ARCH_ESP32S2 - -DCONFIG_IDF_TARGET_ESP32S2 + -DCONFIG_IDF_TARGET_ESP32S2=1 -D CONFIG_ASYNC_TCP_USE_WDT=0 + -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 -DCO -DARDUINO_USB_MODE=0 ;; this flag is mandatory for ESP32-S2 ! ;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry: - ;; ARDUINO_USB_CDC_ON_BOOT, ARDUINO_USB_MSC_ON_BOOT, ARDUINO_USB_DFU_ON_BOOT + ;; ARDUINO_USB_CDC_ON_BOOT lib_deps = ${env.lib_deps} - makuna/NeoPixelBus @ 2.6.9 + makuna/NeoPixelBus @ 2.7.3 https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 [esp32c3] +;; generic definitions for all ESP32-C3 boards +platform = espressif32@5.2.0 +platform_packages = build_flags = -g -DARDUINO_ARCH_ESP32 -DARDUINO_ARCH_ESP32C3 - -DCONFIG_IDF_TARGET_ESP32C3 + -DCONFIG_IDF_TARGET_ESP32C3=1 -D CONFIG_ASYNC_TCP_USE_WDT=0 -DCO -DARDUINO_USB_MODE=1 ;; this flag is mandatory for ESP32-C3 @@ -253,25 +293,28 @@ build_flags = -g lib_deps = ${env.lib_deps} - makuna/NeoPixelBus @ 2.6.9 + makuna/NeoPixelBus @ 2.7.3 https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 [esp32s3] ;; generic definitions for all ESP32-S3 boards +platform = espressif32@5.2.0 +platform_packages = build_flags = -g -DESP32 -DARDUINO_ARCH_ESP32 -DARDUINO_ARCH_ESP32S3 - -DCONFIG_IDF_TARGET_ESP32S3 + -DCONFIG_IDF_TARGET_ESP32S3=1 -D CONFIG_ASYNC_TCP_USE_WDT=0 + -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_DFU_ON_BOOT=0 -DCO ;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry: - ;; ARDUINO_USB_MODE, ARDUINO_USB_CDC_ON_BOOT, ARDUINO_USB_MSC_ON_BOOT, ARDUINO_USB_DFU_ON_BOOT + ;; ARDUINO_USB_MODE, ARDUINO_USB_CDC_ON_BOOT lib_deps = ${env.lib_deps} ;; NeoPixelBus 2.7.1 is the first that has official support for ESP32-S3 - makuna/NeoPixelBus @ ~2.7.1 + makuna/NeoPixelBus @ ~2.7.3 https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 @@ -285,7 +328,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D WLED_DISABLE_BLYNK #-DWLED_DISABLE_2D +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 #-DWLED_DISABLE_2D lib_deps = ${esp8266.lib_deps} monitor_filters = esp8266_exception_decoder @@ -295,7 +338,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_2m512k} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02 -D WLED_DISABLE_BLYNK +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02 lib_deps = ${esp8266.lib_deps} [env:esp01_1m_full] @@ -304,7 +347,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA -D WLED_DISABLE_BLYNK +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA lib_deps = ${esp8266.lib_deps} [env:esp07] @@ -350,7 +393,7 @@ board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 #-D WLED_DISABLE_BROWNOUT_DET lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} @@ -360,20 +403,35 @@ board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_qio80 -D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_qio80 #-D WLED_DISABLE_BROWNOUT_DET lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} board_build.f_flash = 80000000L board_build.flash_mode = qio +[env:esp32dev_V4_dio80] +;; experimental ESP32 env using ESP-IDF V4.4.x +;; Warning: this build environment is not stable!! +;; please erase your device before installing. +board = esp32dev +platform = ${esp32_idf_V4.platform} +platform_packages = ${esp32_idf_V4.platform_packages} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=ESP32_V4_qio80 #-D WLED_DISABLE_BROWNOUT_DET +lib_deps = ${esp32_idf_V4.lib_deps} +monitor_filters = esp32_exception_decoder +board_build.partitions = ${esp32_idf_V4.default_partitions} +board_build.f_flash = 80000000L +board_build.flash_mode = dio + [env:esp32_eth] board = esp32-poe platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_BLYNK +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.default_partitions} @@ -387,17 +445,20 @@ board_build.flash_mode = qio upload_speed = 460800 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=S2_saola + -DARDUINO_USB_CDC_ON_BOOT=1 lib_deps = ${esp32s2.lib_deps} -[env:esp32c3] -platform = espressif32@5.1.1 ;; well-tested on -C3, good compatibility with WLED -; platform = espressif32@~5.2.0 ;; might help in case you experience bootloops due to corrupted flash filesystem +[env:esp32c3dev] +extends = esp32c3 +platform = ${esp32c3.platform} +platform_packages = ${esp32c3.platform_packages} framework = arduino board = esp32-c3-devkitm-1 board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3 -D WLED_WATCHDOG_TIMEOUT=0 - ; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual USB + ; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB + -DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip upload_speed = 460800 build_unflags = ${common.build_unflags} lib_deps = ${esp32c3.lib_deps} @@ -405,14 +466,14 @@ lib_deps = ${esp32c3.lib_deps} [env:esp32s3dev_8MB] ;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM (flash_mode: qio) board = esp32-s3-devkitc-1 -platform = espressif32@5.1.1 -platform_packages = +platform = ${esp32s3.platform} +platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 ; or 460800 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32s3.build_flags} +build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 - -D ARDUINO_USB_CDC_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0 -D ARDUINO_DFU_ON_BOOT=0 -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip - ;-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MSC_ON_BOOT=0 -D ARDUINO_DFU_ON_BOOT=0 ; -D ARDUINO_USB_MODE=0 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") + -D ARDUINO_USB_CDC_ON_BOOT=0 ;; -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip + ;-D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=0 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") ;-D WLED_DEBUG lib_deps = ${esp32s3.lib_deps} board_build.partitions = tools/WLED_ESP32_8MB.csv @@ -426,13 +487,14 @@ monitor_filters = esp32_exception_decoder ;board = um_tinys3 ; -> needs workaround from https://github.com/Aircoookie/WLED/pull/2905#issuecomment-1328049860 ;board = esp32s3box ; -> error: 'esp32_adc2gpio' was not declared in this scope board = esp32-s3-devkitc-1 ; -> compiles, but does not support PSRAM -platform = espressif32 @ ~5.2.0 -platform_packages = +platform = ${esp32s3.platform} +platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32s3.build_flags} +build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 - -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_MSC_ON_BOOT=0 ; -D ARDUINO_USB_CDC_ON_BOOT=0 + ;-D ARDUINO_USB_CDC_ON_BOOT=0 ;; -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip + -D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=0 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") ; -D WLED_RELEASE_NAME=ESP32-S3_PSRAM -D WLED_USE_PSRAM -DBOARD_HAS_PSRAM ; tells WLED that PSRAM shall be used lib_deps = ${esp32s3.lib_deps} @@ -504,13 +566,14 @@ build_flags = ${common.build_flags_esp8266} -D LEDPIN=12 -D IRPIN=-1 -D RLYPIN=2 lib_deps = ${esp8266.lib_deps} [env:lolin_s2_mini] -platform = espressif32@5.1.1 +platform = ${esp32s2.platform} +platform_packages = ${esp32s2.platform_packages} board = lolin_s2_mini board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv -build_unflags = ${common.build_unflags} +build_unflags = ${common.build_unflags} -DARDUINO_USB_CDC_ON_BOOT=1 build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=LolinS2 -DBOARD_HAS_PSRAM - -D ARDUINO_USB_CDC_ON_BOOT + -DARDUINO_USB_CDC_ON_BOOT=0 -D WLED_USE_PSRAM -D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0 @@ -530,9 +593,28 @@ lib_deps = ${esp32s2.lib_deps} # custom board configurations # ------------------------------------------------------------------------------ +[env:esp32c3dev_2MB] +;; for ESP32-C3 boards with 2MB flash (instead of 4MB). +;; this board need a specific partition file. OTA not possible. +extends = esp32c3 +platform = ${esp32c3.platform} +platform_packages = ${esp32c3.platform_packages} +board = esp32-c3-devkitm-1 +build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3 + -D WLED_WATCHDOG_TIMEOUT=0 + -D WLED_DISABLE_OTA + ; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB + -DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip +build_unflags = ${common.build_unflags} +upload_speed = 115200 +lib_deps = ${esp32c3.lib_deps} +board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv +board_build.flash_mode = dio + [env:wemos_shield_esp32] board = esp32dev -platform = espressif32@3.2 +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} upload_speed = 460800 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} @@ -557,7 +639,8 @@ board = esp32dev build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D LEDPIN=27 -D BTNPIN=39 lib_deps = ${esp32.lib_deps} -platform = espressif32@3.2 +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} board_build.partitions = ${esp32.default_partitions} [env:sp501e] @@ -574,20 +657,58 @@ board_build.ldscript = ${common.ldscript_2m512k} build_flags = ${common.build_flags_esp8266} -D LEDPIN=3 -D BTNPIN=2 -D IRPIN=5 -D WLED_MAX_BUTTONS=3 lib_deps = ${esp8266.lib_deps} -[env:athom7w] -board = esp_wroom_02 +[env:Athom_RGBCW] ;7w and 5w(GU10) bulbs +board = esp8285 platform = ${common.platform_wled_default} +platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_2m512k} -build_flags = ${common.build_flags_esp8266} -D WLED_MAX_CCT_BLEND=0 -D BTNPIN=-1 -D IRPIN=-1 -D WLED_DISABLE_INFRARED +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D BTNPIN=-1 -D RLYPIN=-1 -D DATA_PINS=4,12,14,13,5 + -D DEFAULT_LED_TYPE=TYPE_ANALOG_5CH -D WLED_DISABLE_INFRARED -D WLED_MAX_CCT_BLEND=0 lib_deps = ${esp8266.lib_deps} -[env:athom15w] -board = esp_wroom_02 + +[env:Athom_15w_RGBCW] ;15w bulb +board = esp8285 platform = ${common.platform_wled_default} +platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_2m512k} -build_flags = ${common.build_flags_esp8266} -D WLED_USE_IC_CCT -D BTNPIN=-1 -D IRPIN=-1 -D WLED_DISABLE_INFRARED +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D BTNPIN=-1 -D RLYPIN=-1 -D DATA_PINS=4,12,14,5,13 + -D DEFAULT_LED_TYPE=TYPE_ANALOG_5CH -D WLED_DISABLE_INFRARED -D WLED_MAX_CCT_BLEND=0 -D WLED_USE_IC_CCT lib_deps = ${esp8266.lib_deps} + +[env:Athom_3Pin_Controller] ;small controller with only data +board = esp8285 +platform = ${common.platform_wled_default} +platform_packages = ${common.platform_packages} +board_build.ldscript = ${common.ldscript_2m512k} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D BTNPIN=0 -D RLYPIN=-1 -D LEDPIN=1 -D WLED_DISABLE_INFRARED +lib_deps = ${esp8266.lib_deps} + + +[env:Athom_4Pin_Controller] ; With clock and data interface +board = esp8285 +platform = ${common.platform_wled_default} +platform_packages = ${common.platform_packages} +board_build.ldscript = ${common.ldscript_2m512k} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D BTNPIN=0 -D RLYPIN=12 -D LEDPIN=1 -D WLED_DISABLE_INFRARED +lib_deps = ${esp8266.lib_deps} + + +[env:Athom_5Pin_Controller] ;Analog light strip controller +board = esp8285 +platform = ${common.platform_wled_default} +platform_packages = ${common.platform_packages} +board_build.ldscript = ${common.ldscript_2m512k} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D BTNPIN=0 -D RLYPIN=-1 DATA_PINS=4,12,14,13 -D WLED_DISABLE_INFRARED +lib_deps = ${esp8266.lib_deps} + + [env:MY9291] board = esp01_1m platform = ${common.platform_wled_default} @@ -625,7 +746,8 @@ lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ [env:elekstube_ips] board = esp32dev -platform = espressif32@3.2 +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_BROWNOUT_DET -D WLED_DISABLE_INFRARED -D USERMOD_RTC @@ -633,7 +755,6 @@ build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_BROWNOUT_DET -D WLED_D -D LEDPIN=12 -D RLYPIN=27 -D BTNPIN=34 - -D WLED_DISABLE_BLYNK -D DEFAULT_LED_COUNT=6 # Display config -D ST7789_DRIVER diff --git a/platformio_override.ini.sample b/platformio_override.ini.sample index cd81c517..d6ea5d96 100644 --- a/platformio_override.ini.sample +++ b/platformio_override.ini.sample @@ -26,7 +26,6 @@ build_flags = ${common.build_flags_esp8266} ; disable specific features ; -D WLED_DISABLE_OTA ; -D WLED_DISABLE_ALEXA -; -D WLED_DISABLE_BLYNK ; -D WLED_DISABLE_HUESYNC ; -D WLED_DISABLE_INFRARED ; -D WLED_DISABLE_WEBSOCKETS diff --git a/readme.md b/readme.md index c35e6319..dda6634a 100644 --- a/readme.md +++ b/readme.md @@ -34,8 +34,7 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control ## 💡 Supported light control interfaces - WLED app for [Android](https://play.google.com/store/apps/details?id=com.aircoookie.WLED) and [iOS](https://apps.apple.com/us/app/wled/id1475695033) - JSON and HTTP request APIs -- MQTT -- Blynk IoT +- MQTT - E1.31, Art-Net, DDP and TPM2.net - [diyHue](https://github.com/diyhue/diyHue) (Wled is supported by diyHue, including Hue Sync Entertainment under udp. Thanks to [Gregory Mallios](https://github.com/gmallios)) - [Hyperion](https://github.com/hyperion-project/hyperion.ng) diff --git a/tools/WLED_ESP32_2MB_noOTA.csv b/tools/WLED_ESP32_2MB_noOTA.csv new file mode 100644 index 00000000..7a1cf15f --- /dev/null +++ b/tools/WLED_ESP32_2MB_noOTA.csv @@ -0,0 +1,5 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 20K, +otadata, data, ota, 0xe000, 8K, +app0, app, ota_0, 0x10000, 1536K, +spiffs, data, spiffs, 0x190000, 384K, diff --git a/usermods/EXAMPLE_v2/usermod_v2_example.h b/usermods/EXAMPLE_v2/usermod_v2_example.h index a4fe9389..43648b58 100644 --- a/usermods/EXAMPLE_v2/usermod_v2_example.h +++ b/usermods/EXAMPLE_v2/usermod_v2_example.h @@ -22,8 +22,12 @@ //class name. Use something descriptive and leave the ": public Usermod" part :) class MyExampleUsermod : public Usermod { + private: - //Private class members. You can declare variables and functions only accessible to your usermod here + + // Private class members. You can declare variables and functions only accessible to your usermod here + bool enabled = false; + bool initDone = false; unsigned long lastTime = 0; // set your config variables to their boot default value (this can also be done in readFromConfig() or a constructor if you prefer) @@ -37,15 +41,56 @@ class MyExampleUsermod : public Usermod { long testLong; int8_t testPins[2]; + // string that are used multiple time (this will save some flash memory) + static const char _name[]; + static const char _enabled[]; + + + // any private methods should go here (non-inline methosd should be defined out of class) + void publishMqtt(const char* state, bool retain = false); // example for publishing MQTT message + + public: - //Functions called by WLED + + // non WLED related methods, may be used for data exchange between usermods (non-inline methods should be defined out of class) + + /** + * Enable/Disable the usermod + */ + inline void enable(bool enable) { enabled = enable; } + + /** + * Get usermod enabled/disabled state + */ + inline bool isEnabled() { return enabled; } + + // in such case add the following to another usermod: + // in private vars: + // #ifdef USERMOD_EXAMPLE + // MyExampleUsermod* UM; + // #endif + // in setup() + // #ifdef USERMOD_EXAMPLE + // UM = (MyExampleUsermod*) usermods.lookup(USERMOD_ID_EXAMPLE); + // #endif + // somewhere in loop() or other member method + // #ifdef USERMOD_EXAMPLE + // if (UM != nullptr) isExampleEnabled = UM->isEnabled(); + // if (!isExampleEnabled) UM->enable(true); + // #endif + + + // methods called by WLED (can be inlined as they are called only once but if you call them explicitly define them out of class) /* * setup() is called once at boot. WiFi is not yet connected at this point. + * readFromConfig() is called prior to setup() * You can use it to initialize variables, sensors or similar. */ void setup() { + // do your set-up here //Serial.println("Hello from my usermod!"); + initDone = true; } @@ -69,6 +114,11 @@ class MyExampleUsermod : public Usermod { * Instead, use a timer check as shown here. */ void loop() { + // if usermod is disabled or called during strip updating just exit + // NOTE: on very long strips strip.isUpdating() may always return true so update accordingly + if (!enabled || strip.isUpdating()) return; + + // do your magic here if (millis() - lastTime > 1000) { //Serial.println("I'm alive!"); lastTime = millis(); @@ -81,19 +131,25 @@ class MyExampleUsermod : public Usermod { * Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI. * Below it is shown how this could be used for e.g. a light sensor */ - /* void addToJsonInfo(JsonObject& root) { - int reading = 20; - //this code adds "u":{"Light":[20," lux"]} to the info object + // if "u" object does not exist yet wee need to create it JsonObject user = root["u"]; if (user.isNull()) user = root.createNestedObject("u"); - JsonArray lightArr = user.createNestedArray("Light"); //name - lightArr.add(reading); //value - lightArr.add(" lux"); //unit + //this code adds "u":{"ExampleUsermod":[20," lux"]} to the info object + //int reading = 20; + //JsonArray lightArr = user.createNestedArray(FPSTR(_name))); //name + //lightArr.add(reading); //value + //lightArr.add(F(" lux")); //unit + + // if you are implementing a sensor usermod, you may publish sensor data + //JsonObject sensor = root[F("sensor")]; + //if (sensor.isNull()) sensor = root.createNestedObject(F("sensor")); + //temp = sensor.createNestedArray(F("light")); + //temp.add(reading); + //temp.add(F("lux")); } - */ /* @@ -102,7 +158,12 @@ class MyExampleUsermod : public Usermod { */ void addToJsonState(JsonObject& root) { - //root["user0"] = userVar0; + if (!initDone || !enabled) return; // prevent crash on boot applyPreset() + + JsonObject usermod = root[FPSTR(_name)]; + if (usermod.isNull()) usermod = root.createNestedObject(FPSTR(_name)); + + //usermod["user0"] = userVar0; } @@ -112,7 +173,14 @@ class MyExampleUsermod : public Usermod { */ void readFromJsonState(JsonObject& root) { - userVar0 = root["user0"] | userVar0; //if "user0" key exists in JSON, update, else keep old value + if (!initDone) return; // prevent crash on boot applyPreset() + + JsonObject usermod = root[FPSTR(_name)]; + if (!usermod.isNull()) { + // expect JSON usermod data in usermod name object: {"ExampleUsermod:{"user0":10}"} + userVar0 = usermod["user0"] | userVar0; //if "user0" key exists in JSON, update, else keep old value + } + // you can as well check WLED state JSON keys //if (root["bri"] == 255) Serial.println(F("Don't burn down your garage!")); } @@ -154,8 +222,10 @@ class MyExampleUsermod : public Usermod { */ void addToConfig(JsonObject& root) { - JsonObject top = root.createNestedObject("exampleUsermod"); - top["great"] = userVar0; //save these vars persistently whenever settings are saved + JsonObject top = root.createNestedObject(FPSTR(_name)); + top[FPSTR(_enabled)] = enabled; + //save these vars persistently whenever settings are saved + top["great"] = userVar0; top["testBool"] = testBool; top["testInt"] = testInt; top["testLong"] = testLong; @@ -188,7 +258,7 @@ class MyExampleUsermod : public Usermod { // default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor // setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed) - JsonObject top = root["exampleUsermod"]; + JsonObject top = root[FPSTR(_name)]; bool configComplete = !top.isNull(); @@ -201,6 +271,8 @@ class MyExampleUsermod : public Usermod { // A 3-argument getJsonValue() assigns the 3rd argument as a default value if the Json value is missing configComplete &= getJsonValue(top["testInt"], testInt, 42); configComplete &= getJsonValue(top["testLong"], testLong, -42424242); + + // "pin" fields have special handling in settings page (or some_pin as well) configComplete &= getJsonValue(top["pin"][0], testPins[0], -1); configComplete &= getJsonValue(top["pin"][1], testPins[1], -1); @@ -208,6 +280,21 @@ class MyExampleUsermod : public Usermod { } + /* + * appendConfigData() is called when user enters usermod settings page + * it may add additional metadata for certain entry fields (adding drop down is possible) + * be careful not to add too much as oappend() buffer is limited to 3k + */ + void appendConfigData() + { + oappend(SET_F("addInfo('")); oappend(String(FPSTR(_name)).c_str()); oappend(SET_F(":great")); oappend(SET_F("',1,'(this is a great config value)');")); + oappend(SET_F("addInfo('")); oappend(String(FPSTR(_name)).c_str()); oappend(SET_F(":testString")); oappend(SET_F("',1,'enter any string you want');")); + oappend(SET_F("dd=addDropdown('")); oappend(String(FPSTR(_name)).c_str()); oappend(SET_F("','testInt');")); + oappend(SET_F("addOption(dd,'Nothing',0);")); + oappend(SET_F("addOption(dd,'Everything',42);")); + } + + /* * handleOverlayDraw() is called just before every show() (LED strip update frame) after effects have set the colors. * Use this to blank out some LEDs or set them to a different color regardless of the set effect mode. @@ -218,7 +305,72 @@ class MyExampleUsermod : public Usermod { //strip.setPixelColor(0, RGBW32(0,0,0,0)) // set the first pixel to black } - + + /** + * handleButton() can be used to override default button behaviour. Returning true + * will prevent button working in a default way. + * Replicating button.cpp + */ + bool handleButton(uint8_t b) { + yield(); + // ignore certain button types as they may have other consequences + if (!enabled + || buttonType[b] == BTN_TYPE_NONE + || buttonType[b] == BTN_TYPE_RESERVED + || buttonType[b] == BTN_TYPE_PIR_SENSOR + || buttonType[b] == BTN_TYPE_ANALOG + || buttonType[b] == BTN_TYPE_ANALOG_INVERTED) { + return false; + } + + bool handled = false; + // do your button handling here + return handled; + } + + +#ifndef WLED_DISABLE_MQTT + /** + * handling of MQTT message + * topic only contains stripped topic (part after /wled/MAC) + */ + bool onMqttMessage(char* topic, char* payload) { + // check if we received a command + //if (strlen(topic) == 8 && strncmp_P(topic, PSTR("/command"), 8) == 0) { + // String action = payload; + // if (action == "on") { + // enabled = true; + // return true; + // } else if (action == "off") { + // enabled = false; + // return true; + // } else if (action == "toggle") { + // enabled = !enabled; + // return true; + // } + //} + return false; + } + + /** + * onMqttConnect() is called when MQTT connection is established + */ + void onMqttConnect(bool sessionPresent) { + // do any MQTT related initialisation here + //publishMqtt("I am alive!"); + } +#endif + + + /** + * onStateChanged() is used to detect WLED state change + * @mode parameter is CALL_MODE_... parameter used for notifications + */ + void onStateChange(uint8_t mode) { + // do something if WLED state changed (color, brightness, effect, preset, etc) + } + + /* * getId() allows you to optionally give your V2 usermod an unique ID (please define it in const.h!). * This could be used in the future for the system to determine whether your usermod is installed. @@ -230,4 +382,25 @@ class MyExampleUsermod : public Usermod { //More methods can be added in the future, this example will then be extended. //Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class! -}; \ No newline at end of file +}; + + +// add more strings here to reduce flash memory usage +const char MyExampleUsermod::_name[] PROGMEM = "ExampleUsermod"; +const char MyExampleUsermod::_enabled[] PROGMEM = "enabled"; + + +// implementation of non-inline member methods + +void MyExampleUsermod::publishMqtt(const char* state, bool retain) +{ +#ifndef WLED_DISABLE_MQTT + //Check if MQTT Connected, otherwise it will crash the 8266 + if (WLED_MQTT_CONNECTED) { + char subuf[64]; + strcpy(subuf, mqttDeviceTopic); + strcat_P(subuf, PSTR("/example")); + mqtt->publish(subuf, 0, retain, state); + } +#endif +} diff --git a/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h b/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h index af81170a..7903fc9e 100644 --- a/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h +++ b/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h @@ -114,6 +114,7 @@ private: if (m_offOnly && bri && (switchOn || (!PIRtriggered && !switchOn))) return; //if lights on and off only, do nothing if (PIRtriggered && switchOn) return; //if already on and triggered before, do nothing PIRtriggered = switchOn; + DEBUG_PRINT(F("PIR: strip=")); DEBUG_PRINTLN(switchOn?"on":"off"); if (switchOn) { if (m_onPreset) { if (currentPlaylist>0 && !offMode) { @@ -370,6 +371,20 @@ public: sensor[F("motion")] = sensorPinState || offTimerStart>0 ? true : false; } + /** + * onStateChanged() is used to detect WLED state change + */ + void onStateChange(uint8_t mode) { + if (!initDone) return; + DEBUG_PRINT(F("PIR: offTimerStart=")); DEBUG_PRINTLN(offTimerStart); + if (PIRtriggered && offTimerStart) { + // checking PIRtriggered and offTimerStart will prevent cancellation upon On trigger + DEBUG_PRINTLN(F("PIR: Canceled.")); + offTimerStart = 0; + PIRtriggered = false; + } + } + /** * addToJsonState() can be used to add custom entries to the /json/state part of the JSON API (state object). * Values in the state object may be modified by connected clients diff --git a/usermods/PWM_fan/usermod_PWM_fan.h b/usermods/PWM_fan/usermod_PWM_fan.h index 153a5f63..f7fe0e10 100644 --- a/usermods/PWM_fan/usermod_PWM_fan.h +++ b/usermods/PWM_fan/usermod_PWM_fan.h @@ -1,7 +1,7 @@ #pragma once -#ifndef USERMOD_DALLASTEMPERATURE -#error The "PWM fan" usermod requires "Dallas Temeprature" usermod to function properly. +#if !defined(USERMOD_DALLASTEMPERATURE) && !defined(USERMOD_SHT) +#error The "PWM fan" usermod requires "Dallas Temeprature" or "SHT" usermod to function properly. #endif #include "wled.h" @@ -42,6 +42,8 @@ class PWMFanUsermod : public Usermod { #ifdef USERMOD_DALLASTEMPERATURE UsermodTemperature* tempUM; + #elif defined(USERMOD_SHT) + ShtUsermod* tempUM; #endif // configurable parameters @@ -145,7 +147,7 @@ class PWMFanUsermod : public Usermod { } float getActualTemperature(void) { - #ifdef USERMOD_DALLASTEMPERATURE + #if defined(USERMOD_DALLASTEMPERATURE) || defined(USERMOD_SHT) if (tempUM != nullptr) return tempUM->getTemperatureC(); #endif @@ -189,6 +191,8 @@ class PWMFanUsermod : public Usermod { #ifdef USERMOD_DALLASTEMPERATURE // This Usermod requires Temperature usermod tempUM = (UsermodTemperature*) usermods.lookup(USERMOD_ID_TEMPERATURE); + #elif defined(USERMOD_SHT) + tempUM = (ShtUsermod*) usermods.lookup(USERMOD_ID_SHT); #endif initTacho(); initPWMfan(); diff --git a/usermods/blynk_relay_control/README.md b/usermods/blynk_relay_control/README.md deleted file mode 100644 index f4832c08..00000000 --- a/usermods/blynk_relay_control/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Blynk controllable relay -Enables controlling a relay state via user variables. Allows the user variables to be set via Blynk. - -Optionally, the servo can have a reset timer to return to its default state after a user definable interval. The interval is set via userVar1. - -## Instalation - -Replace the WLED06_usermod.ino file in Aircoookies WLED folder, with the one here. - -## Customizations - -Update the following parameters in WLED06_usermod.ino to configure the mod's behavior: - -```cpp -//Which pin is the relay connected to -#define RELAY_PIN 5 -//Which pin state should the relay default to -#define RELAY_PIN_DEFAULT LOW -//If >0 The controller returns to RELAY_PIN_DEFAULT after this time, in milliseconds -#define RELAY_PIN_TIMER_DEFAULT 3000 - -//Blynk virtual pin for controlling relay -#define BLYNK_USER_VAR0_PIN V9 -//Blynk virtual pin for controlling relay timer -#define BLYNK_USER_VAR1_PIN V10 -//Number of milliseconds between Blynk updates -#define BLYNK_RELAY_UPDATE_INTERVAL 5000 -``` diff --git a/usermods/blynk_relay_control/wled06_usermod.ino b/usermods/blynk_relay_control/wled06_usermod.ino deleted file mode 100644 index d4028ea5..00000000 --- a/usermods/blynk_relay_control/wled06_usermod.ino +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file allows you to add own functionality to WLED more easily - * See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality - * EEPROM bytes 2750+ are reserved for your custom use case. (if you extend #define EEPSIZE in wled_eeprom.h) - * bytes 2400+ are currently ununsed, but might be used for future wled features - */ - -//Use userVar0 (API calls &U0=, uint16_t) to set relay state -#define relayPinState userVar0 -//Use userVar1 (API calls &U1=, uint16_t) to set relay timer duration -//Ignored if 0, otherwise number of milliseconds to allow relay to stay in -//non default state. -#define relayTimerInterval userVar1 - -//Which pin is the relay connected to -#define RELAY_PIN 5 -//Which pin state should the relay default to -#define RELAY_PIN_DEFAULT LOW -//If >0 The controller returns to RELAY_PIN_DEFAULT after this time in milliseconds -#define RELAY_PIN_TIMER_DEFAULT 3000 - -//Blynk virtual pin for controlling relay -#define BLYNK_USER_VAR0_PIN V9 -//Blynk virtual pin for controlling relay timer -#define BLYNK_USER_VAR1_PIN V10 -//Number of milliseconds between updating blynk -#define BLYNK_RELAY_UPDATE_INTERVAL 5000 - -//Is the timer for resetting the relay active -bool relayTimerStarted = false; -//millis() time after which relay will be reset -unsigned long relayTimeToDefault = 0; -//millis() time after which relay vars in Blynk will be sent -unsigned long relayBlynkUpdateTime = 0; - -//gets called once at boot. Do all initialization that doesn't depend on network here -void userSetup() -{ - relayPinState = RELAY_PIN_DEFAULT; - relayTimerInterval = RELAY_PIN_TIMER_DEFAULT; - pinMode(RELAY_PIN, OUTPUT); - digitalWrite(RELAY_PIN, relayPinState); -} - -//gets called every time WiFi is (re-)connected. Initialize own network interfaces here -void userConnected() -{ -} - -//loop. You can use "if (WLED_CONNECTED)" to check for successful connection -void userLoop() -{ - //Normalize relayPinState to an accepted value - if (relayPinState != HIGH && relayPinState != LOW) { - relayPinState = RELAY_PIN_DEFAULT; - } - //If relay changes and relayTimerInterval is set, start a timer to change back - if (relayTimerInterval != 0 && - relayPinState != RELAY_PIN_DEFAULT && - !relayTimerStarted ) { - relayTimerStarted = true; - relayTimeToDefault = millis() + relayTimerInterval; - } - //If manually changed back to default, cancel timer - if (relayTimerStarted && relayPinState == RELAY_PIN_DEFAULT ) { - relayTimerStarted = false; - } - //If timer completes, set relay back to default - if (relayTimerStarted && millis() > relayTimeToDefault) { - relayPinState = RELAY_PIN_DEFAULT; - relayTimerStarted = false; - } - digitalWrite(RELAY_PIN, relayPinState); - updateRelayBlynk(); -} - -//Update Blynk with state of userVars at BLYNK_RELAY_UPDATE_INTERVAL -void updateRelayBlynk() -{ - if (!WLED_CONNECTED) return; - if (relayBlynkUpdateTime > millis()) return; - Blynk.virtualWrite(BLYNK_USER_VAR0_PIN, userVar0); - Blynk.virtualWrite(BLYNK_USER_VAR1_PIN, userVar1); - relayBlynkUpdateTime = millis() + BLYNK_RELAY_UPDATE_INTERVAL; -} - -//Add Blynk callback for setting userVar0 -BLYNK_WRITE(BLYNK_USER_VAR0_PIN) -{ - userVar0 = param.asInt(); -} -//Add Blynk callback for setting userVar1 -BLYNK_WRITE(BLYNK_USER_VAR1_PIN) -{ - userVar1 = param.asInt(); -} diff --git a/usermods/mpu6050_imu/usermod_mpu6050_imu.h b/usermods/mpu6050_imu/usermod_mpu6050_imu.h index 283c986e..b4dc01a4 100644 --- a/usermods/mpu6050_imu/usermod_mpu6050_imu.h +++ b/usermods/mpu6050_imu/usermod_mpu6050_imu.h @@ -209,7 +209,7 @@ class MPU6050Driver : public Usermod { JsonObject user = root["u"]; if (user.isNull()) user = root.createNestedObject("u"); - JsonArray imu_meas = user.createNestedObject("IMU"); + JsonObject imu_meas = user.createNestedObject("IMU"); JsonArray quat_json = imu_meas.createNestedArray("Quat"); quat_json.add(qat.w); quat_json.add(qat.x); @@ -287,4 +287,4 @@ class MPU6050Driver : public Usermod { return USERMOD_ID_IMU; } -}; \ No newline at end of file +}; diff --git a/usermods/sht/usermod_sht.h b/usermods/sht/usermod_sht.h index 4637d7a3..1123a10a 100644 --- a/usermods/sht/usermod_sht.h +++ b/usermods/sht/usermod_sht.h @@ -62,9 +62,9 @@ class ShtUsermod : public Usermod bool isEnabled() { return enabled; } float getTemperature(); - float getTemperatureC() { return shtCurrentTempC; } - float getTemperatureF() { return (shtCurrentTempC * 1.8f) + 32.0f; } - float getHumidity() { return shtCurrentHumidity; } + float getTemperatureC() { return roundf(shtCurrentTempC * 10.0f) / 10.0f; } + float getTemperatureF() { return (getTemperatureC() * 1.8f) + 32.0f; } + float getHumidity() { return roundf(shtCurrentHumidity * 10.0f) / 10.0f; } const char* getUnitString(); uint16_t getId() { return USERMOD_ID_SHT; } diff --git a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h index 372830b9..ab244ef2 100644 --- a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h +++ b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h @@ -106,6 +106,7 @@ class FourLineDisplayUsermod : public Usermod { static FourLineDisplayUsermod *instance; bool initDone = false; volatile bool drawing = false; + volatile bool lockRedraw = false; // HW interface & configuration U8X8 *u8x8 = nullptr; // pointer to U8X8 display object @@ -198,25 +199,33 @@ class FourLineDisplayUsermod : public Usermod { } void drawString(uint8_t col, uint8_t row, const char *string, bool ignoreLH=false) { if (type == NONE || !enabled) return; + drawing = true; u8x8->setFont(u8x8_font_chroma48medium8_r); if (!ignoreLH && lineHeight==2) u8x8->draw1x2String(col, row, string); else u8x8->drawString(col, row, string); + drawing = false; } void draw2x2String(uint8_t col, uint8_t row, const char *string) { if (type == NONE || !enabled) return; + drawing = true; u8x8->setFont(u8x8_font_chroma48medium8_r); u8x8->draw2x2String(col, row, string); + drawing = false; } void drawGlyph(uint8_t col, uint8_t row, char glyph, const uint8_t *font, bool ignoreLH=false) { if (type == NONE || !enabled) return; + drawing = true; u8x8->setFont(font); if (!ignoreLH && lineHeight==2) u8x8->draw1x2Glyph(col, row, glyph); else u8x8->drawGlyph(col, row, glyph); + drawing = false; } void draw2x2Glyph(uint8_t col, uint8_t row, char glyph, const uint8_t *font) { if (type == NONE || !enabled) return; + drawing = true; u8x8->setFont(font); u8x8->draw2x2Glyph(col, row, glyph); + drawing = false; } uint8_t getCols() { if (type==NONE || !enabled) return 0; @@ -224,7 +233,9 @@ class FourLineDisplayUsermod : public Usermod { } void clear() { if (type == NONE || !enabled) return; + drawing = true; u8x8->clear(); + drawing = false; } void setPowerSave(uint8_t save) { if (type == NONE || !enabled) return; @@ -238,6 +249,7 @@ class FourLineDisplayUsermod : public Usermod { } void draw2x2GlyphIcons() { + drawing = true; if (lineHeight == 2) { drawGlyph( 1, 0, 1, u8x8_4LineDisplay_WLED_icons_2x2, true); //brightness icon drawGlyph( 5, 0, 2, u8x8_4LineDisplay_WLED_icons_2x2, true); //speed icon @@ -251,6 +263,7 @@ class FourLineDisplayUsermod : public Usermod { drawGlyph(15, 2, 4, u8x8_4LineDisplay_WLED_icons_1x1); //palette icon drawGlyph(15, 3, 5, u8x8_4LineDisplay_WLED_icons_1x1); //effect icon } + drawing = false; } /** @@ -262,8 +275,8 @@ class FourLineDisplayUsermod : public Usermod { if (type == NONE || !enabled || !displayTurnedOff) return; unsigned long now = millis(); - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + while (drawing && millis()-now < 125) delay(1); // wait if someone else is drawing + if (drawing) return; char lineBuffer[LINE_BUFFER_SIZE]; static byte lastSecond; @@ -299,7 +312,23 @@ class FourLineDisplayUsermod : public Usermod { sprintf_P(lineBuffer, PSTR("%02d"), secondCurrent); drawString(12, lineHeight*2+1, lineBuffer, true); // even with double sized rows print seconds in 1 line } - drawing = false; + } + + /** + * Enable sleep (turn the display off) or clock mode. + */ + void sleepOrClock(bool enabled) { + if (enabled) { + displayTurnedOff = true; + if (clockMode && ntpEnabled) { + knownMinute = knownHour = 99; + showTime(); + } else + setPowerSave(1); + } else { + displayTurnedOff = false; + setPowerSave(0); + } } public: @@ -483,7 +512,8 @@ class FourLineDisplayUsermod : public Usermod { } } - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + while (drawing && millis()-now < 25) delay(1); // wait if someone else is drawing + if (drawing || lockRedraw) return; if (apActive && WLED_WIFI_CONFIGURED && now<15000) { knownSsid = apSSID; @@ -546,7 +576,7 @@ class FourLineDisplayUsermod : public Usermod { } lastRedraw = now; - + // Turn the display back on wakeDisplay(); @@ -580,44 +610,49 @@ class FourLineDisplayUsermod : public Usermod { void updateBrightness() { knownBrightness = bri; if (overlayUntil == 0) { + lockRedraw = true; brightness100 = ((uint16_t)bri*100)/255; char lineBuffer[4]; sprintf_P(lineBuffer, PSTR("%-3d"), brightness100); drawString(1, lineHeight, lineBuffer); - //lastRedraw = millis(); + lockRedraw = false; } } void updateSpeed() { knownEffectSpeed = effectSpeed; if (overlayUntil == 0) { + lockRedraw = true; fxspeed100 = ((uint16_t)effectSpeed*100)/255; char lineBuffer[4]; sprintf_P(lineBuffer, PSTR("%-3d"), fxspeed100); drawString(5, lineHeight, lineBuffer); - //lastRedraw = millis(); + lockRedraw = false; } } void updateIntensity() { knownEffectIntensity = effectIntensity; if (overlayUntil == 0) { + lockRedraw = true; fxintensity100 = ((uint16_t)effectIntensity*100)/255; char lineBuffer[4]; sprintf_P(lineBuffer, PSTR("%-3d"), fxintensity100); drawString(9, lineHeight, lineBuffer); - //lastRedraw = millis(); + lockRedraw = false; } } void drawStatusIcons() { uint8_t col = 15; uint8_t row = 0; + lockRedraw = true; drawGlyph(col, row, (wificonnected ? 20 : 0), u8x8_4LineDisplay_WLED_icons_1x1, true); // wifi icon if (lineHeight==2) { col--; } else { row++; } drawGlyph(col, row, (bri > 0 ? 9 : 0), u8x8_4LineDisplay_WLED_icons_1x1, true); // power icon if (lineHeight==2) { col--; } else { col = row = 0; } drawGlyph(col, row, (nightlightActive ? 6 : 0), u8x8_4LineDisplay_WLED_icons_1x1, true); // moon icon for nighlight mode + lockRedraw = false; } /** @@ -632,7 +667,9 @@ class FourLineDisplayUsermod : public Usermod { //Draw the arrow for the current setting beiong changed void drawArrow() { + lockRedraw = true; if (markColNum != 255 && markLineNum !=255) drawGlyph(markColNum, markLineNum*lineHeight, 21, u8x8_4LineDisplay_WLED_icons_1x1); + lockRedraw = false; } //Display the current effect or palette (desiredEntry) @@ -640,6 +677,7 @@ class FourLineDisplayUsermod : public Usermod { void showCurrentEffectOrPalette(int inputEffPal, const char *qstring, uint8_t row) { char lineBuffer[MAX_JSON_CHARS]; if (overlayUntil == 0) { + lockRedraw = true; // Find the mode name in JSON uint8_t printedChars = extractModeName(inputEffPal, qstring, lineBuffer, MAX_JSON_CHARS-1); if (lineBuffer[0]=='*' && lineBuffer[1]==' ') { @@ -692,6 +730,7 @@ class FourLineDisplayUsermod : public Usermod { smallBuffer3[smallChars3] = 0; drawString(1, row*lineHeight, smallBuffer3, true); } + lockRedraw = false; } } @@ -706,12 +745,12 @@ class FourLineDisplayUsermod : public Usermod { if (displayTurnedOff) { unsigned long now = millis(); while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + if (drawing) return false; + lockRedraw = true; clear(); // Turn the display back on sleepOrClock(false); - //lastRedraw = millis(); - drawing = false; + lockRedraw = false; return true; } return false; @@ -724,8 +763,9 @@ class FourLineDisplayUsermod : public Usermod { */ void overlay(const char* line1, long showHowLong, byte glyphType) { unsigned long now = millis(); - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + while (drawing && millis()-now < 125) delay(1); // wait if someone else is drawing + if (drawing) return; + lockRedraw = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -739,7 +779,7 @@ class FourLineDisplayUsermod : public Usermod { drawString(0, (glyphType<255?3:0)*lineHeight, buf.c_str()); } overlayUntil = millis() + showHowLong; - drawing = false; + lockRedraw = false; } /** @@ -748,8 +788,9 @@ class FourLineDisplayUsermod : public Usermod { */ void overlayLogo(long showHowLong) { unsigned long now = millis(); - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + while (drawing && millis()-now < 125) delay(1); // wait if someone else is drawing + if (drawing) return; + lockRedraw = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -799,7 +840,7 @@ class FourLineDisplayUsermod : public Usermod { } } overlayUntil = millis() + showHowLong; - drawing = false; + lockRedraw = false; } /** @@ -809,8 +850,9 @@ class FourLineDisplayUsermod : public Usermod { */ void overlay(const char* line1, const char* line2, long showHowLong) { unsigned long now = millis(); - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + while (drawing && millis()-now < 125) delay(1); // wait if someone else is drawing + if (drawing) return; + lockRedraw = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -825,13 +867,14 @@ class FourLineDisplayUsermod : public Usermod { drawString(0, 2*lineHeight, buf.c_str()); } overlayUntil = millis() + showHowLong; - drawing = false; + lockRedraw = false; } void networkOverlay(const char* line1, long showHowLong) { unsigned long now = millis(); - while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing - drawing = true; + while (drawing && millis()-now < 125) delay(1); // wait if someone else is drawing + if (drawing) return; + lockRedraw = true; String line; // Turn the display back on @@ -863,27 +906,10 @@ class FourLineDisplayUsermod : public Usermod { center(line, getCols()); drawString(0, lineHeight*3, line.c_str()); overlayUntil = millis() + showHowLong; - drawing = false; + lockRedraw = false; } - /** - * Enable sleep (turn the display off) or clock mode. - */ - void sleepOrClock(bool enabled) { - if (enabled) { - displayTurnedOff = true; - if (clockMode && ntpEnabled) { - knownMinute = knownHour = 99; - showTime(); - } else - setPowerSave(1); - } else { - displayTurnedOff = false; - setPowerSave(0); - } - } - /** * handleButton() can be used to override default button behaviour. Returning true * will prevent button working in a default way. diff --git a/usermods/usermod_v2_klipper_percentage/readme.md b/usermods/usermod_v2_klipper_percentage/readme.md new file mode 100644 index 00000000..0619bf85 --- /dev/null +++ b/usermods/usermod_v2_klipper_percentage/readme.md @@ -0,0 +1,40 @@ +# Klipper Percentage Usermod +This usermod polls the Klipper API every 10s for the progressvalue. +The leds are then filled with a solid color according to that progress percentage. +the solid color is the secondary color of the segment. + +A corresponding curl command would be: +``` +curl --location --request GET 'http://[]/printer/objects/query?virtual_sdcard=progress' +``` +## Usage +Compile the source with the buildflag `-D USERMOD_KLIPPER_PERCENTAGE` added. + +You can also use the WLBD bot in the Discord by simply extending an exsisting build enviroment: +``` +[env:esp32klipper] +extends = env:esp32dev +build_flags = ${common.build_flags_esp32} -D USERMOD_KLIPPER_PERCENTAGE +``` + +## Settings + +### Enabled: +Checkbox to enable or disable the overlay + +### Klipper IP: +IP adress of your Klipper instance you want to poll. ESP has to be restarted after change + +### Direction : +0 = normal + +1 = reversed + +2 = center + +----- +Author: + +Sören Willrodt + +Discord: Sören#5281 \ No newline at end of file diff --git a/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h b/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h new file mode 100644 index 00000000..0e19cc80 --- /dev/null +++ b/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h @@ -0,0 +1,222 @@ +#pragma once + +#include "wled.h" + +class klipper_percentage : public Usermod +{ +private: + unsigned long lastTime = 0; + String ip = "192.168.25.207"; + WiFiClient wifiClient; + char errorMessage[100] = ""; + int printPercent = 0; + int direction = 0; // 0 for along the strip, 1 for reversed direction + + static const char _name[]; + static const char _enabled[]; + bool enabled = false; + + void httpGet(WiFiClient &client, char *errorMessage) + { + // https://arduinojson.org/v6/example/http-client/ + // is this the most compact way to do http get and put it in arduinojson object??? + // would like async response ... ??? + client.setTimeout(10000); + if (!client.connect(ip.c_str(), 80)) + { + strcat(errorMessage, PSTR("Connection failed")); + } + else + { + // Send HTTP request + client.println(F("GET /printer/objects/query?virtual_sdcard=progress HTTP/1.0")); + client.println("Host: " + ip); + client.println(F("Connection: close")); + if (client.println() == 0) + { + strcat(errorMessage, PSTR("Failed to send request")); + } + else + { + // Check HTTP status + char status[32] = {0}; + client.readBytesUntil('\r', status, sizeof(status)); + if (strcmp(status, "HTTP/1.1 200 OK") != 0) + { + strcat(errorMessage, PSTR("Unexpected response: ")); + strcat(errorMessage, status); + } + else + { + // Skip HTTP headers + char endOfHeaders[] = "\r\n\r\n"; + if (!client.find(endOfHeaders)) + { + strcat(errorMessage, PSTR("Invalid response")); + } + } + } + } + } + +public: + void setup() + { + } + + void connected() + { + } + + void loop() + { + if (enabled) + { + if (WLED_CONNECTED) + { + if (millis() - lastTime > 10000) + { + httpGet(wifiClient, errorMessage); + if (strcmp(errorMessage, "") == 0) + { + PSRAMDynamicJsonDocument klipperDoc(4096); // in practive about 2673 + DeserializationError error = deserializeJson(klipperDoc, wifiClient); + if (error) + { + strcat(errorMessage, PSTR("deserializeJson() failed: ")); + strcat(errorMessage, error.c_str()); + } + printPercent = (int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as() * 100); + + DEBUG_PRINT("Percent: "); + DEBUG_PRINTLN((int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as() * 100)); + DEBUG_PRINT("LEDs: "); + DEBUG_PRINTLN(direction == 2 ? (strip.getLengthTotal() / 2) * printPercent / 100 : strip.getLengthTotal() * printPercent / 100); + } + else + { + DEBUG_PRINTLN(errorMessage); + DEBUG_PRINTLN(ip); + } + lastTime = millis(); + } + } + } + } + + void addToConfig(JsonObject &root) + { + JsonObject top = root.createNestedObject("Klipper Printing Percentage"); + top["Enabled"] = enabled; + top["Klipper IP"] = ip; + top["Direction"] = direction; + } + + bool readFromConfig(JsonObject &root) + { + // default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor + // setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed) + + JsonObject top = root["Klipper Printing Percentage"]; + + bool configComplete = !top.isNull(); + configComplete &= getJsonValue(top["Klipper IP"], ip); + configComplete &= getJsonValue(top["Enabled"], enabled); + configComplete &= getJsonValue(top["Direction"], direction); + return configComplete; + } + + /* + * addToJsonInfo() can be used to add custom entries to the /json/info part of the JSON API. + * Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI. + * Below it is shown how this could be used for e.g. a light sensor + */ + void addToJsonInfo(JsonObject &root) + { + JsonObject user = root["u"]; + if (user.isNull()) + user = root.createNestedObject("u"); + + JsonArray infoArr = user.createNestedArray(FPSTR(_name)); + String uiDomString = F(""); + infoArr.add(uiDomString); + } + + void addToJsonState(JsonObject &root) + { + JsonObject usermod = root[FPSTR(_name)]; + if (usermod.isNull()) + { + usermod = root.createNestedObject(FPSTR(_name)); + } + usermod["on"] = enabled; + } + void readFromJsonState(JsonObject &root) + { + JsonObject usermod = root[FPSTR(_name)]; + if (!usermod.isNull()) + { + if (usermod[FPSTR(_enabled)].is()) + { + enabled = usermod[FPSTR(_enabled)].as(); + } + } + } + + /* + * handleOverlayDraw() is called just before every show() (LED strip update frame) after effects have set the colors. + * Use this to blank out some LEDs or set them to a different color regardless of the set effect mode. + * Commonly used for custom clocks (Cronixie, 7 segment) + */ + void handleOverlayDraw() + { + if (enabled) + { + if (direction == 0) // normal + { + for (int i = 0; i < strip.getLengthTotal() * printPercent / 100; i++) + { + strip.setPixelColor(i, strip.getSegment(0).colors[1]); + } + } + else if (direction == 1) // reversed + { + for (int i = 0; i < strip.getLengthTotal() * printPercent / 100; i++) + { + strip.setPixelColor(strip.getLengthTotal() - i, strip.getSegment(0).colors[1]); + } + } + else if (direction == 2) // center + { + for (int i = 0; i < (strip.getLengthTotal() / 2) * printPercent / 100; i++) + { + strip.setPixelColor((strip.getLengthTotal() / 2) + i, strip.getSegment(0).colors[1]); + strip.setPixelColor((strip.getLengthTotal() / 2) - i, strip.getSegment(0).colors[1]); + } + } + else + { + direction = 0; + } + } + } + + /* + * getId() allows you to optionally give your V2 usermod an unique ID (please define it in const.h!). + * This could be used in the future for the system to determine whether your usermod is installed. + */ + uint16_t getId() + { + return USERMOD_ID_KLIPPER; + } +}; +const char klipper_percentage::_name[] PROGMEM = "Klipper_Percentage"; +const char klipper_percentage::_enabled[] PROGMEM = "enabled"; \ No newline at end of file diff --git a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h index 1068cd96..c825a7af 100644 --- a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h +++ b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h @@ -25,6 +25,7 @@ class WordClockUsermod : public Usermod bool displayItIs = false; int ledOffset = 100; bool meander = false; + bool nord = false; // defines for mask sizes #define maskSizeLeds 114 @@ -37,7 +38,7 @@ class WordClockUsermod : public Usermod // "minute" masks // Normal wiring - const int maskMinutes[12][maskSizeMinutes] = + const int maskMinutes[14][maskSizeMinutes] = { {107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // :00 { 7, 8, 9, 10, 40, 41, 42, 43, -1, -1, -1, -1}, // :05 fünf nach @@ -50,11 +51,13 @@ class WordClockUsermod : public Usermod { 15, 16, 17, 18, 19, 20, 21, 33, 34, 35, -1, -1}, // :40 zwanzig vor { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1}, // :45 dreiviertel { 11, 12, 13, 14, 33, 34, 35, -1, -1, -1, -1, -1}, // :50 zehn vor - { 7, 8, 9, 10, 33, 34, 35, -1, -1, -1, -1, -1} // :55 fünf vor + { 7, 8, 9, 10, 33, 34, 35, -1, -1, -1, -1, -1}, // :55 fünf vor + { 26, 27, 28, 29, 30, 31, 32, 40, 41, 42, 43, -1}, // :15 alternative viertel nach + { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1} // :45 alternative viertel vor }; // Meander wiring - const int maskMinutesMea[12][maskSizeMinutesMea] = + const int maskMinutesMea[14][maskSizeMinutesMea] = { { 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // :00 { 7, 8, 9, 10, 33, 34, 35, 36, -1, -1, -1, -1}, // :05 fünf nach @@ -67,9 +70,12 @@ class WordClockUsermod : public Usermod { 11, 12, 13, 14, 15, 16, 17, 41, 42, 43, -1, -1}, // :40 zwanzig vor { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1}, // :45 dreiviertel { 18, 19, 20, 21, 41, 42, 43, -1, -1, -1, -1, -1}, // :50 zehn vor - { 7, 8, 9, 10, 41, 42, 43, -1, -1, -1, -1, -1} // :55 fünf vor + { 7, 8, 9, 10, 41, 42, 43, -1, -1, -1, -1, -1}, // :55 fünf vor + { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1}, // :15 alternative viertel nach + { 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, -1, -1} // :45 alternative viertel vor }; + // hour masks // Normal wiring const int maskHours[13][maskSizeHours] = @@ -242,9 +248,15 @@ class WordClockUsermod : public Usermod setHours(hours, false); break; case 3: - // viertel - setMinutes(3); - setHours(hours + 1, false); + if (nord) { + // viertel nach + setMinutes(12); + setHours(hours, false); + } else { + // viertel + setMinutes(3); + setHours(hours + 1, false); + }; break; case 4: // 20 nach @@ -272,8 +284,13 @@ class WordClockUsermod : public Usermod setHours(hours + 1, false); break; case 9: - // viertel vor - setMinutes(9); + // viertel vor bzw dreiviertel + if (nord) { + setMinutes(9); + } + else { + setMinutes(12); + } setHours(hours + 1, false); break; case 10: @@ -410,6 +427,7 @@ class WordClockUsermod : public Usermod top["displayItIs"] = displayItIs; top["ledOffset"] = ledOffset; top["Meander wiring?"] = meander; + top["Norddeutsch"] = nord; } /* @@ -440,6 +458,7 @@ class WordClockUsermod : public Usermod configComplete &= getJsonValue(top["displayItIs"], displayItIs); configComplete &= getJsonValue(top["ledOffset"], ledOffset); configComplete &= getJsonValue(top["Meander wiring?"], meander); + configComplete &= getJsonValue(top["Norddeutsch"], nord); return configComplete; } diff --git a/wled00/FX.cpp b/wled00/FX.cpp index f44d2605..2f5e9fdc 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -29,7 +29,11 @@ #include "fcn_declare.h" #define IBN 5100 -#define PALETTE_SOLID_WRAP (strip.paletteBlend == 1 || strip.paletteBlend == 3) + +// paletteBlend: 0 - wrap when moving, 1 - always wrap, 2 - never wrap, 3 - none (undefined) +#define PALETTE_SOLID_WRAP (strip.paletteBlend == 1 || strip.paletteBlend == 3) +#define PALETTE_MOVING_WRAP !(strip.paletteBlend == 2 || (strip.paletteBlend == 0 && SEGMENT.speed == 0)) + #define indexToVStrip(index, stripNr) ((index) | (int((stripNr)+1)<<16)) // effect utility functions @@ -120,7 +124,7 @@ uint16_t blink(uint32_t color1, uint32_t color2, bool strobe, bool do_palette) { uint16_t mode_blink(void) { return blink(SEGCOLOR(0), SEGCOLOR(1), false, true); } -static const char _data_FX_MODE_BLINK[] PROGMEM = "Blink@!,Duty cycle;!,!;!"; +static const char _data_FX_MODE_BLINK[] PROGMEM = "Blink@!,Duty cycle;!,!;!;01"; /* @@ -129,7 +133,7 @@ static const char _data_FX_MODE_BLINK[] PROGMEM = "Blink@!,Duty cycle;!,!;!"; uint16_t mode_blink_rainbow(void) { return blink(SEGMENT.color_wheel(SEGENV.call & 0xFF), SEGCOLOR(1), false, false); } -static const char _data_FX_MODE_BLINK_RAINBOW[] PROGMEM = "Blink Rainbow@Frequency,Blink duration;!,!;!"; +static const char _data_FX_MODE_BLINK_RAINBOW[] PROGMEM = "Blink Rainbow@Frequency,Blink duration;!,!;!;01"; /* @@ -138,7 +142,7 @@ static const char _data_FX_MODE_BLINK_RAINBOW[] PROGMEM = "Blink Rainbow@Frequen uint16_t mode_strobe(void) { return blink(SEGCOLOR(0), SEGCOLOR(1), true, true); } -static const char _data_FX_MODE_STROBE[] PROGMEM = "Strobe@!;!,!;!"; +static const char _data_FX_MODE_STROBE[] PROGMEM = "Strobe@!;!,!;!;01"; /* @@ -147,7 +151,7 @@ static const char _data_FX_MODE_STROBE[] PROGMEM = "Strobe@!;!,!;!"; uint16_t mode_strobe_rainbow(void) { return blink(SEGMENT.color_wheel(SEGENV.call & 0xFF), SEGCOLOR(1), true, false); } -static const char _data_FX_MODE_STROBE_RAINBOW[] PROGMEM = "Strobe Rainbow@!;,!;!"; +static const char _data_FX_MODE_STROBE_RAINBOW[] PROGMEM = "Strobe Rainbow@!;,!;!;01"; /* @@ -346,7 +350,7 @@ uint16_t mode_breath(void) { return FRAMETIME; } -static const char _data_FX_MODE_BREATH[] PROGMEM = "Breathe@!;!,!;!"; +static const char _data_FX_MODE_BREATH[] PROGMEM = "Breathe@!;!,!;!;01"; /* @@ -362,7 +366,7 @@ uint16_t mode_fade(void) { return FRAMETIME; } -static const char _data_FX_MODE_FADE[] PROGMEM = "Fade@!;!,!;!"; +static const char _data_FX_MODE_FADE[] PROGMEM = "Fade@!;!,!;!;01"; /* @@ -750,7 +754,7 @@ uint16_t mode_multi_strobe(void) { return FRAMETIME; } -static const char _data_FX_MODE_MULTI_STROBE[] PROGMEM = "Strobe Mega@!,!;!,!;!"; +static const char _data_FX_MODE_MULTI_STROBE[] PROGMEM = "Strobe Mega@!,!;!,!;!;01"; /* @@ -972,6 +976,7 @@ static const char _data_FX_MODE_COLORFUL[] PROGMEM = "Colorful@!,Saturation;1,2, * Emulates a traffic light. */ uint16_t mode_traffic_light(void) { + if (SEGLEN == 1) return mode_static(); for (int i=0; i < SEGLEN; i++) SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); uint32_t mdelay = 500; @@ -1004,6 +1009,7 @@ static const char _data_FX_MODE_TRAFFIC_LIGHT[] PROGMEM = "Traffic Light@!,US st */ #define FLASH_COUNT 4 uint16_t mode_chase_flash(void) { + if (SEGLEN == 1) return mode_static(); uint8_t flash_step = SEGENV.call % ((FLASH_COUNT * 2) + 1); for (int i = 0; i < SEGLEN; i++) { @@ -1033,6 +1039,7 @@ static const char _data_FX_MODE_CHASE_FLASH[] PROGMEM = "Chase Flash@!;Bg,Fx;!"; * Prim flashes running, followed by random color. */ uint16_t mode_chase_flash_random(void) { + if (SEGLEN == 1) return mode_static(); uint8_t flash_step = SEGENV.call % ((FLASH_COUNT * 2) + 1); for (int i = 0; i < SEGENV.aux1; i++) { @@ -1166,6 +1173,7 @@ static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!, * Firing comets from one end. "Lighthouse" */ uint16_t mode_comet(void) { + if (SEGLEN == 1) return mode_static(); uint16_t counter = strip.now * ((SEGMENT.speed >>2) +1); uint16_t index = (counter * SEGLEN) >> 16; if (SEGENV.call == 0) SEGENV.aux0 = index; @@ -1193,7 +1201,8 @@ static const char _data_FX_MODE_COMET[] PROGMEM = "Lighthouse@!,Fade rate;!,!;!" * Fireworks function. */ uint16_t mode_fireworks() { - const uint16_t width = strip.isMatrix ? SEGMENT.virtualWidth() : SEGMENT.virtualLength(); + if (SEGLEN == 1) return mode_static(); + const uint16_t width = SEGMENT.is2D() ? SEGMENT.virtualWidth() : SEGMENT.virtualLength(); const uint16_t height = SEGMENT.virtualHeight(); if (SEGENV.call == 0) { @@ -1207,18 +1216,18 @@ uint16_t mode_fireworks() { bool valid1 = (SEGENV.aux0 < width*height); bool valid2 = (SEGENV.aux1 < width*height); uint32_t sv1 = 0, sv2 = 0; - if (valid1) sv1 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width) : SEGMENT.getPixelColor(SEGENV.aux0); // get spark color - if (valid2) sv2 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width) : SEGMENT.getPixelColor(SEGENV.aux1); + if (valid1) sv1 = SEGMENT.is2D() ? SEGMENT.getPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width) : SEGMENT.getPixelColor(SEGENV.aux0); // get spark color + if (valid2) sv2 = SEGMENT.is2D() ? SEGMENT.getPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width) : SEGMENT.getPixelColor(SEGENV.aux1); if (!SEGENV.step) SEGMENT.blur(16); - if (valid1) { if (strip.isMatrix) SEGMENT.setPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width, sv1); else SEGMENT.setPixelColor(SEGENV.aux0, sv1); } // restore spark color after blur - if (valid2) { if (strip.isMatrix) SEGMENT.setPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width, sv2); else SEGMENT.setPixelColor(SEGENV.aux1, sv2); } // restore old spark color after blur + if (valid1) { if (SEGMENT.is2D()) SEGMENT.setPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width, sv1); else SEGMENT.setPixelColor(SEGENV.aux0, sv1); } // restore spark color after blur + if (valid2) { if (SEGMENT.is2D()) SEGMENT.setPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width, sv2); else SEGMENT.setPixelColor(SEGENV.aux1, sv2); } // restore old spark color after blur for (int i=0; i> 1)) == 0) { uint16_t index = random16(width*height); uint16_t j = index % width, k = index / width; uint32_t col = SEGMENT.color_from_palette(random8(), false, false, 0); - if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, col); + if (SEGMENT.is2D()) SEGMENT.setPixelColorXY(j, k, col); else SEGMENT.setPixelColor(index, col); SEGENV.aux1 = SEGENV.aux0; // old spark SEGENV.aux0 = index; // remember where spark occured @@ -1230,8 +1239,8 @@ static const char _data_FX_MODE_FIREWORKS[] PROGMEM = "Fireworks@,Frequency;!,!; //Twinkling LEDs running. Inspired by https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Rain.h -uint16_t mode_rain() -{ +uint16_t mode_rain() { + if (SEGLEN == 1) return mode_static(); const uint16_t width = SEGMENT.virtualWidth(); const uint16_t height = SEGMENT.virtualHeight(); SEGENV.step += FRAMETIME; @@ -1290,7 +1299,7 @@ uint16_t mode_fire_flicker(void) { SEGENV.step = it; return FRAMETIME; } -static const char _data_FX_MODE_FIRE_FLICKER[] PROGMEM = "Fire Flicker@!,!;!;!"; +static const char _data_FX_MODE_FIRE_FLICKER[] PROGMEM = "Fire Flicker@!,!;!;!;01"; /* @@ -1341,8 +1350,8 @@ static const char _data_FX_MODE_LOADING[] PROGMEM = "Loading@!,Fade;!,!;!;;ix=16 //American Police Light with all LEDs Red and Blue -uint16_t police_base(uint32_t color1, uint32_t color2) -{ +uint16_t police_base(uint32_t color1, uint32_t color2) { + if (SEGLEN == 1) return mode_static(); uint16_t delay = 1 + (FRAMETIME<<3) / SEGLEN; // longer segments should change faster uint32_t it = strip.now / map(SEGMENT.speed, 0, 255, delay<<4, delay); uint16_t offset = it % SEGLEN; @@ -1790,9 +1799,9 @@ uint16_t mode_oscillate(void) { } } - for (int i=0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint32_t color = BLACK; - for (int j=0; j < numOscillators; j++) { + for (int j = 0; j < numOscillators; j++) { if(i >= oscillators[j].pos - oscillators[j].size && i <= oscillators[j].pos + oscillators[j].size) { color = (color == BLACK) ? SEGCOLOR(j) : color_blend(color, SEGCOLOR(j), 128); } @@ -1808,6 +1817,7 @@ static const char _data_FX_MODE_OSCILLATE[] PROGMEM = "Oscillate"; //TODO uint16_t mode_lightning(void) { + if (SEGLEN == 1) return mode_static(); uint16_t ledstart = random16(SEGLEN); // Determine starting location of flash uint16_t ledlen = 1 + random16(SEGLEN -ledstart); // Determine length of flash (not to go beyond NUM_LEDS-1) uint8_t bri = 255/random8(1, 3); @@ -1868,7 +1878,6 @@ uint16_t mode_pride_2015(void) { sPseudotime += duration * msmultiplier; sHue16 += duration * beatsin88( 400, 5,9); uint16_t brightnesstheta16 = sPseudotime; - CRGB fastled_col; for (int i = 0 ; i < SEGLEN; i++) { hue16 += hueinc16; @@ -1894,6 +1903,7 @@ static const char _data_FX_MODE_PRIDE_2015[] PROGMEM = "Pride 2015@!;;"; //eight colored dots, weaving in and out of sync with each other uint16_t mode_juggle(void) { + if (SEGLEN == 1) return mode_static(); if (SEGENV.call == 0) { SEGMENT.setUpLeds(); //lossless getPixelColor() SEGMENT.fill(BLACK); @@ -1923,11 +1933,10 @@ uint16_t mode_palette() { counter = counter >> 8; } - bool noWrap = (strip.paletteBlend == 2 || (strip.paletteBlend == 0 && SEGMENT.speed == 0)); for (int i = 0; i < SEGLEN; i++) { uint8_t colorIndex = (i * 255 / SEGLEN) - counter; - SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(colorIndex, false, noWrap, 255)); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(colorIndex, false, PALETTE_MOVING_WRAP, 255)); } return FRAMETIME; @@ -1964,41 +1973,42 @@ static const char _data_FX_MODE_PALETTE[] PROGMEM = "Palette@Cycle speed;;!;;c3= // feel of your fire: COOLING (used in step 1 above) (Speed = COOLING), and SPARKING (used // in step 3 above) (Effect Intensity = Sparking). uint16_t mode_fire_2012() { - uint16_t strips = SEGMENT.nrOfVStrips(); + if (SEGLEN == 1) return mode_static(); + const uint16_t strips = SEGMENT.nrOfVStrips(); if (!SEGENV.allocateData(strips * SEGLEN)) return mode_static(); //allocation failed byte* heat = SEGENV.data; - uint32_t it = strip.now >> 5; //div 32 + const uint32_t it = strip.now >> 6; //div 64 struct virtualStrip { static void runStrip(uint16_t stripNr, byte* heat, uint32_t it) { + const uint8_t ignition = max(3,SEGLEN/10); // ignition area: 10% of segment length or minimum 3 pixels + + // Step 1. Cool down every cell a little + for (int i = 0; i < SEGLEN; i++) { + uint8_t cool = (it != SEGENV.step) ? random8((((20 + SEGMENT.speed/3) * 16) / SEGLEN)+2) : random(8); + uint8_t minTemp = 0; + if (i 1; k--) { heat[k] = (heat[k - 1] + (heat[k - 2]<<1) ) / 3; // heat[k-2] multiplied by 2 } + } - // Step 3. Randomly ignite new 'sparks' of heat near the bottom - if (random8() <= SEGMENT.intensity) { - uint8_t y = random8(ignition); - heat[y] = qadd8(heat[y], random8(160,255)); - } + // Step 3. Randomly ignite new 'sparks' of heat near the bottom + if (random8() <= SEGMENT.intensity) { + uint8_t y = random8(ignition); + uint8_t boost = (32+SEGMENT.custom3*2) * (2*ignition-y) / (2*ignition); + heat[y] = qadd8(heat[y], random8(64+boost,128+boost)); } // Step 4. Map from heat cells to LED colors @@ -2011,12 +2021,14 @@ uint16_t mode_fire_2012() { for (int stripNr=0; stripNr> 2; @@ -2771,6 +2790,7 @@ typedef struct Ball { * Bouncing Balls Effect */ uint16_t mode_bouncing_balls(void) { + if (SEGLEN == 1) return mode_static(); //allocate segment data const uint16_t strips = SEGMENT.nrOfVStrips(); // adapt for 2D const size_t maxNumBalls = 16; @@ -2843,6 +2863,7 @@ static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravit * Sinelon stolen from FASTLED examples */ uint16_t sinelon_base(bool dual, bool rainbow=false) { + if (SEGLEN == 1) return mode_static(); SEGMENT.fade_out(SEGMENT.intensity); uint16_t pos = beatsin16(SEGMENT.speed/10,0,SEGLEN-1); if (SEGENV.call == 0) SEGENV.aux0 = pos; @@ -2940,6 +2961,7 @@ typedef struct Spark { * modified from https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Popcorn.h */ uint16_t mode_popcorn(void) { + if (SEGLEN == 1) return mode_static(); //allocate segment data uint16_t strips = SEGMENT.nrOfVStrips(); uint16_t dataSize = sizeof(spark) * maxNumPopcorn; @@ -3082,7 +3104,7 @@ uint16_t mode_candle() { return candle(false); } -static const char _data_FX_MODE_CANDLE[] PROGMEM = "Candle@!,!;!,!;!;1;sx=96,ix=224,pal=0"; +static const char _data_FX_MODE_CANDLE[] PROGMEM = "Candle@!,!;!,!;!;01;sx=96,ix=224,pal=0"; uint16_t mode_candle_multi() @@ -3113,6 +3135,7 @@ typedef struct particle { } star; uint16_t mode_starburst(void) { + if (SEGLEN == 1) return mode_static(); uint16_t maxData = FAIR_DATA_PER_SEG; //ESP8266: 256 ESP32: 640 uint8_t segs = strip.getActiveSegmentsNum(); if (segs <= (strip.getMaxSegments() /2)) maxData *= 2; //ESP8266: 512 if <= 8 segs ESP32: 1280 if <= 16 segs @@ -3232,6 +3255,7 @@ static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chanc */ uint16_t mode_exploding_fireworks(void) { + if (SEGLEN == 1) return mode_static(); const uint16_t cols = strip.isMatrix ? SEGMENT.virtualWidth() : 1; const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength(); @@ -3264,11 +3288,11 @@ uint16_t mode_exploding_fireworks(void) if (SEGENV.aux0 < 2) { //FLARE if (SEGENV.aux0 == 0) { //init flare flare->pos = 0; - flare->posX = strip.isMatrix ? random16(2,cols-1) : (SEGMENT.intensity > random8()); // will enable random firing side on 1D + flare->posX = strip.isMatrix ? random16(2,cols-3) : (SEGMENT.intensity > random8()); // will enable random firing side on 1D uint16_t peakHeight = 75 + random8(180); //0-255 peakHeight = (peakHeight * (rows -1)) >> 8; flare->vel = sqrtf(-2.0f * gravity * peakHeight); - flare->velX = strip.isMatrix ? (random8(8)-4)/32.f : 0; // no X velocity on 1D + flare->velX = strip.isMatrix ? (random8(9)-4)/32.f : 0; // no X velocity on 1D flare->col = 255; //brightness SEGENV.aux0 = 1; } @@ -3295,16 +3319,16 @@ uint16_t mode_exploding_fireworks(void) * Size is proportional to the height. */ int nSparks = flare->pos + random8(4); - nSparks = constrain(nSparks, 1, numSparks); + nSparks = constrain(nSparks, 4, numSparks); // initialize sparks if (SEGENV.aux0 == 2) { for (int i = 1; i < nSparks; i++) { sparks[i].pos = flare->pos; sparks[i].posX = flare->posX; - sparks[i].vel = (float(random16(0, 20000)) / 10000.0f) - 0.9f; // from -0.9 to 1.1 + sparks[i].vel = (float(random16(20001)) / 10000.0f) - 0.9f; // from -0.9 to 1.1 sparks[i].vel *= rows<32 ? 0.5f : 1; // reduce velocity for smaller strips - sparks[i].velX = strip.isMatrix ? (float(random16(0, 4000)) / 10000.0f) - 0.2f : 0; // from -0.2 to 0.2 + sparks[i].velX = strip.isMatrix ? (float(random16(10001)) / 10000.0f) - 0.5f : 0; // from -0.5 to 0.5 sparks[i].col = 345;//abs(sparks[i].vel * 750.0); // set colors before scaling velocity to keep them bright //sparks[i].col = constrain(sparks[i].col, 0, 345); sparks[i].colIndex = random8(); @@ -3366,6 +3390,7 @@ static const char _data_FX_MODE_EXPLODING_FIREWORKS[] PROGMEM = "Fireworks 1D@Gr */ uint16_t mode_drip(void) { + if (SEGLEN == 1) return mode_static(); //allocate segment data uint16_t strips = SEGMENT.nrOfVStrips(); const int maxNumDrops = 4; @@ -3461,6 +3486,7 @@ typedef struct Tetris { } tetris; uint16_t mode_tetrix(void) { + if (SEGLEN == 1) return mode_static(); uint16_t strips = SEGMENT.nrOfVStrips(); // allow running on virtual strips (columns in 2D segment) uint16_t dataSize = sizeof(tetris); if (!SEGENV.allocateData(dataSize * strips)) return mode_static(); //allocation failed @@ -3503,7 +3529,7 @@ uint16_t mode_tetrix(void) { if (drop->pos > drop->stack) { // fall until top of stack drop->pos -= drop->speed; // may add gravity as: speed += gravity if (int(drop->pos) < int(drop->stack)) drop->pos = drop->stack; - for (int i=int(drop->pos); ipos); i < SEGLEN; i++) { uint32_t col = ipos)+drop->brick ? SEGMENT.color_from_palette(drop->col, false, false, 0) : SEGCOLOR(1); SEGMENT.setPixelColor(indexToVStrip(i, stripNr), col); } @@ -3518,7 +3544,7 @@ uint16_t mode_tetrix(void) { drop->brick = 0; // reset brick size (no more growing) if (drop->step > millis()) { // allow fading of virtual strip - for (int i=0; istack = 0; // reset brick stack size drop->step = 0; // proceed with next brick @@ -3645,7 +3671,7 @@ uint16_t mode_heartbeat(void) { return FRAMETIME; } -static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;;m12=1"; +static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;01;m12=1"; // "Pacifica" @@ -3769,6 +3795,7 @@ static const char _data_FX_MODE_PACIFICA[] PROGMEM = "Pacifica@!,Angle;;!;;pal=5 * Mode simulates a gradual sunrise */ uint16_t mode_sunrise() { + if (SEGLEN == 1) return mode_static(); //speed 0 - static sun //speed 1 - 60: sunrise time in minutes //speed 60 - 120 : sunset time in minutes - 60; @@ -3862,7 +3889,7 @@ static const char _data_FX_MODE_PHASEDNOISE[] PROGMEM = "Phased Noise@!,!;!,!;!" uint16_t mode_twinkleup(void) { // A very short twinkle routine with fade-in and dual controls. By Andrew Tuline. random16_set_seed(535); // The randomizer needs to be re-set each time through the loop in order for the same 'random' numbers to be the same each time through. - for (int i = 0; i SEGMENT.intensity) pixBri = 0; @@ -3924,7 +3951,7 @@ uint16_t mode_sinewave(void) { // Adjustable sinewave. By Andrew Tul SEGENV.step += SEGMENT.speed/16; // Speed of animation. uint16_t freq = SEGMENT.intensity/4;//SEGMENT.fft2/8; // Frequency of the signal. - for (int i=0; i> 4)); uint16_t numBirds = 2 + (SEGLEN >> 3); // 2 + 1/8 of a segment @@ -4030,6 +4058,7 @@ typedef struct Spotlight { */ uint16_t mode_dancing_shadows(void) { + if (SEGLEN == 1) return mode_static(); uint8_t numSpotlights = map(SEGMENT.intensity, 0, 255, 2, SPOT_MAX_COUNT); // 49 on 32 segment ESP32, 17 on 16 segment ESP8266 bool initialize = SEGENV.aux0 != numSpotlights; SEGENV.aux0 = numSpotlights; @@ -4156,7 +4185,7 @@ uint16_t mode_washing_machine(void) { SEGENV.step += (speed * 128.0f); - for (int i=0; i> 7)); SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(col, false, PALETTE_SOLID_WRAP, 3)); } @@ -4493,7 +4522,7 @@ static const char _data_FX_MODE_AURORA[] PROGMEM = "Aurora@!,!;1,2,3;!;;sx=24,pa // 16 bit perlinmove. Use Perlin Noise instead of sinewaves for movement. By Andrew Tuline. // Controls are speed, # of pixels, faderate. uint16_t mode_perlinmove(void) { - + if (SEGLEN == 1) return mode_static(); SEGMENT.fade_out(255-SEGMENT.custom1); for (int i = 0; i < SEGMENT.intensity/16 + 1; i++) { uint16_t locn = inoise16(millis()*128/(260-SEGMENT.speed)+i*15000, millis()*128/(260-SEGMENT.speed)); // Get a new pixel location from moving noise. @@ -5787,8 +5816,8 @@ uint16_t mode_2Dfloatingblobs(void) { } } uint32_t c = SEGMENT.color_from_palette(blob->color[i], false, false, 0); - if (blob->r[i] > 1.f) SEGMENT.fill_circle(blob->y[i], blob->x[i], roundf(blob->r[i]), c); - else SEGMENT.setPixelColorXY(blob->y[i], blob->x[i], c); + if (blob->r[i] > 1.f) SEGMENT.fill_circle(blob->x[i], blob->y[i], roundf(blob->r[i]), c); + else SEGMENT.setPixelColorXY(blob->x[i], blob->y[i], c); // move x if (blob->x[i] + blob->r[i] >= cols - 1) blob->x[i] += (blob->sX[i] * ((cols - 1 - blob->x[i]) / blob->r[i] + 0.005f)); else if (blob->x[i] - blob->r[i] <= 0) blob->x[i] += (blob->sX[i] * (blob->x[i] / blob->r[i] + 0.005f)); @@ -6349,7 +6378,7 @@ uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline. SEGENV.aux0 = secondHand; int pixBri = volumeRaw * SEGMENT.intensity / 64; - for (int i=0; ithisphase += beatsin8(6,-4,4); // You can change direction and speed individually. plasmoip->thatphase += beatsin8(7,-4,4); // Two phase values to make a complex pattern. By Andrew Tuline. - for (int i=0; ithisphase) & 0xFF)/2; thisbright += cos8(((i*(97 +(5*SEGMENT.speed/32)))+plasmoip->thatphase) & 0xFF)/2; // Let's munge the brightness a bit and animate it all with the phases. @@ -7073,7 +7102,7 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin } else { SEGMENT.setPixelColor(SEGLEN-1, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(pixCol+SEGMENT.intensity, false, PALETTE_SOLID_WRAP, 0), (int)my_magnitude)); } - for (int i=0; i start; } inline bool is2D(void) const { return (width()>1 && height()>1); } + inline bool hasRGB(void) const { return _isRGB; } + inline bool hasWhite(void) const { return _hasW; } + inline bool isCCT(void) const { return _isCCT; } inline uint16_t width(void) const { return stop - start; } // segment width in physical pixels (length if 1D) inline uint16_t height(void) const { return stopY - startY; } // segment height (if 2D) in physical pixels inline uint16_t length(void) const { return width() * height(); } // segment length (count) in physical pixels @@ -659,7 +666,6 @@ class WS2812FX { // 96 bytes isMatrix(false), #ifndef WLED_DISABLE_2D panels(1), - matrix{0,0,0,0}, #endif // semi-private (just obscured) used in effect functions through macros _currentPalette(CRGBPalette16(CRGB::Black)), @@ -712,7 +718,6 @@ class WS2812FX { // 96 bytes finalizeInit(), service(void), setMode(uint8_t segid, uint8_t m), - setColor(uint8_t slot, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0), setColor(uint8_t slot, uint32_t c), setCCT(uint16_t k), setBrightness(uint8_t b, bool direct = false), @@ -727,10 +732,10 @@ class WS2812FX { // 96 bytes fixInvalidSegments(), setPixelColor(int n, uint32_t c), show(void), - setTargetFps(uint8_t fps), - deserializeMap(uint8_t n=0); + setTargetFps(uint8_t fps); - void fill(uint32_t c) { for (int i = 0; i < _length; i++) setPixelColor(i, c); } // fill whole strip with color (inline) + void setColor(uint8_t slot, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0) { setColor(slot, RGBW32(r,g,b,w)); } + void fill(uint32_t c) { for (int i = 0; i < getLengthTotal(); i++) setPixelColor(i, c); } // fill whole strip with color (inline) void addEffect(uint8_t id, mode_ptr mode_fn, const char *mode_name); // add effect to the list; defined in FX.cpp void setupEffectData(void); // add default effects to the list; defined in FX.cpp @@ -748,6 +753,7 @@ class WS2812FX { // 96 bytes hasCCTBus(void), // return true if the strip is being sent pixel updates isUpdating(void), + deserializeMap(uint8_t n=0), useLedsArray = false; inline bool isServicing(void) { return _isServicing; } @@ -777,17 +783,17 @@ class WS2812FX { // 96 bytes ablMilliampsMax, currentMilliamps, getLengthPhysical(void), + getLengthTotal(void), // will include virtual/nonexistent pixels in matrix getFps(); inline uint16_t getFrameTime(void) { return _frametime; } inline uint16_t getMinShowDelay(void) { return MIN_SHOW_DELAY; } - inline uint16_t getLengthTotal(void) { return _length; } + inline uint16_t getLength(void) { return _length; } // 2D matrix may have less pixels than W*H inline uint16_t getTransition(void) { return _transitionDur; } uint32_t now, timebase, - currentColor(uint32_t colorNew, uint8_t tNr), getPixelColor(uint16_t); inline uint32_t getLastShow(void) { return _lastShow; } @@ -813,13 +819,6 @@ class WS2812FX { // 96 bytes uint8_t panels; - struct { - bool bottomStart : 1; - bool rightStart : 1; - bool vertical : 1; - bool serpentine : 1; - } matrix; - typedef struct panel_t { uint16_t xOffset; // x offset relative to the top left of matrix in LEDs uint16_t yOffset; // y offset relative to the top left of matrix in LEDs @@ -834,6 +833,13 @@ class WS2812FX { // 96 bytes bool serpentine : 1; // is serpentine? }; }; + panel_t() + : xOffset(0) + , yOffset(0) + , width(8) + , height(8) + , options(0) + {} } Panel; std::vector panel; #endif diff --git a/wled00/FX_2Dfcn.cpp b/wled00/FX_2Dfcn.cpp index ad7f3a10..30e0fa19 100644 --- a/wled00/FX_2Dfcn.cpp +++ b/wled00/FX_2Dfcn.cpp @@ -78,21 +78,60 @@ void WS2812FX::setUpMatrix() { customMappingTable[i] = (uint16_t)-1; } + // we will try to load a "gap" array (a JSON file) + // the array has to have the same amount of values as mapping array (or larger) + // "gap" array is used while building ledmap (mapping array) + // and discarded afterwards as it has no meaning after the process + // content of the file is just raw JSON array in the form of [val1,val2,val3,...] + // there are no other "key":"value" pairs in it + // allowed values are: -1 (missing pixel/no LED attached), 0 (inactive/unused pixel), 1 (active/used pixel) + char fileName[32]; strcpy_P(fileName, PSTR("/2d-gaps.json")); // reduce flash footprint + bool isFile = WLED_FS.exists(fileName); + size_t gapSize = 0; + int8_t *gapTable = nullptr; + + if (isFile && requestJSONBufferLock(20)) { + DEBUG_PRINT(F("Reading LED gap from ")); + DEBUG_PRINTLN(fileName); + // read the array into global JSON buffer + if (readObjectFromFile(fileName, nullptr, &doc)) { + // the array is similar to ledmap, except it has only 3 values: + // -1 ... missing pixel (do not increase pixel count) + // 0 ... inactive pixel (it does count, but should be mapped out (-1)) + // 1 ... active pixel (it will count and will be mapped) + JsonArray map = doc.as(); + gapSize = map.size(); + if (!map.isNull() && gapSize >= customMappingSize) { // not an empty map + gapTable = new int8_t[gapSize]; + if (gapTable) for (size_t i = 0; i < gapSize; i++) { + gapTable[i] = constrain(map[i], -1, 1); + } + } + } + DEBUG_PRINTLN(F("Gaps loaded.")); + releaseJSONBufferLock(); + } + uint16_t x, y, pix=0; //pixel for (size_t pan = 0; pan < panel.size(); pan++) { Panel &p = panel[pan]; uint16_t h = p.vertical ? p.height : p.width; uint16_t v = p.vertical ? p.width : p.height; for (size_t j = 0; j < v; j++){ - for(size_t i = 0; i < h; i++, pix++) { + for(size_t i = 0; i < h; i++) { y = (p.vertical?p.rightStart:p.bottomStart) ? v-j-1 : j; x = (p.vertical?p.bottomStart:p.rightStart) ? h-i-1 : i; x = p.serpentine && j%2 ? h-x-1 : x; - customMappingTable[(p.yOffset + (p.vertical?x:y)) * Segment::maxWidth + p.xOffset + (p.vertical?y:x)] = pix; + size_t index = (p.yOffset + (p.vertical?x:y)) * Segment::maxWidth + p.xOffset + (p.vertical?y:x); + if (!gapTable || (gapTable && gapTable[index] > 0)) customMappingTable[index] = pix; // a useful pixel (otherwise -1 is retained) + if (!gapTable || (gapTable && gapTable[index] >= 0)) pix++; // not a missing pixel } } } + // delete gap array as we no longer need it + if (gapTable) delete[] gapTable; + #ifdef WLED_DEBUG DEBUG_PRINT(F("Matrix ledmap:")); for (uint16_t i=0; i= customMappingSize) return; #else uint16_t index = x; - if (index >= _length) return; #endif if (index < customMappingSize) index = customMappingTable[index]; + if (index >= _length) return; busses.setPixelColor(index, col); } @@ -135,12 +173,11 @@ void IRAM_ATTR WS2812FX::setPixelColorXY(int x, int y, uint32_t col) uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) { #ifndef WLED_DISABLE_2D uint16_t index = (y * Segment::maxWidth + x); - if (index >= customMappingSize) return 0; // customMappingSize is always W * H of matrix in 2D setup #else uint16_t index = x; - if (index >= _length) return 0; #endif if (index < customMappingSize) index = customMappingTable[index]; + if (index >= _length) return 0; return busses.getPixelColor(index); } @@ -151,13 +188,13 @@ uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) { #ifndef WLED_DISABLE_2D // XY(x,y) - gets pixel index within current segment (often used to reference leds[] array element) -uint16_t IRAM_ATTR Segment::XY(uint16_t x, uint16_t y) { +uint16_t /*IRAM_ATTR*/ Segment::XY(uint16_t x, uint16_t y) { uint16_t width = virtualWidth(); // segment width in logical pixels uint16_t height = virtualHeight(); // segment height in logical pixels return (x%width) + (y%height) * width; } -void IRAM_ATTR Segment::setPixelColorXY(int x, int y, uint32_t col) +void /*IRAM_ATTR*/ Segment::setPixelColorXY(int x, int y, uint32_t col) { if (Segment::maxHeight==1) return; // not a matrix set-up if (x >= virtualWidth() || y >= virtualHeight() || x<0 || y<0) return; // if pixel would fall out of virtual segment just exit diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 235c61d0..a9dabafe 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -81,7 +81,7 @@ uint16_t Segment::maxHeight = 1; // copy constructor Segment::Segment(const Segment &orig) { //DEBUG_PRINTLN(F("-- Copy segment constructor --")); - memcpy(this, &orig, sizeof(Segment)); + memcpy((void*)this, (void*)&orig, sizeof(Segment)); name = nullptr; data = nullptr; _dataLen = 0; @@ -96,7 +96,7 @@ Segment::Segment(const Segment &orig) { // move constructor Segment::Segment(Segment &&orig) noexcept { //DEBUG_PRINTLN(F("-- Move segment constructor --")); - memcpy(this, &orig, sizeof(Segment)); + memcpy((void*)this, (void*)&orig, sizeof(Segment)); orig.name = nullptr; orig.data = nullptr; orig._dataLen = 0; @@ -114,7 +114,7 @@ Segment& Segment::operator= (const Segment &orig) { if (leds && !Segment::_globalLeds) free(leds); deallocateData(); // copy source - memcpy(this, &orig, sizeof(Segment)); + memcpy((void*)this, (void*)&orig, sizeof(Segment)); // erase pointers to allocated data name = nullptr; data = nullptr; @@ -138,7 +138,7 @@ Segment& Segment::operator= (Segment &&orig) noexcept { deallocateData(); // free old runtime data if (_t) delete _t; if (leds && !Segment::_globalLeds) free(leds); - memcpy(this, &orig, sizeof(Segment)); + memcpy((void*)this, (void*)&orig, sizeof(Segment)); orig.name = nullptr; orig.data = nullptr; orig._dataLen = 0; @@ -184,7 +184,8 @@ void Segment::deallocateData() { void Segment::resetIfRequired() { if (reset) { if (leds && !Segment::_globalLeds) { free(leds); leds = nullptr; } - //if (_t) { delete _t; _t = nullptr; transitional = false; } + if (transitional && _t) { transitional = false; delete _t; _t = nullptr; } + deallocateData(); next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0; reset = false; // setOption(SEG_OPTION_RESET, false); } @@ -226,14 +227,14 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { case FX_MODE_NOISE16_4 : pal = 26; break; // landscape 33 case FX_MODE_GLITTER : pal = 11; break; // rainbow colors case FX_MODE_SUNRISE : pal = 35; break; // heat palette - case FX_MODE_FLOW : pal = 6; break; // party + case FX_MODE_RAILWAY : pal = 3; break; // prim + sec } switch (pal) { case 0: //default palette. Exceptions for specific effects above targetPalette = PartyColors_p; break; case 1: {//periodically replace palette with a random one. Transition palette change in 500ms uint32_t timeSinceLastChange = millis() - _lastPaletteChange; - if (timeSinceLastChange > 5000 /*+ ((uint32_t)(255-intensity))*100*/) { + if (timeSinceLastChange > randomPaletteChangeTime * 1000U) { prevRandomPalette = randomPalette; randomPalette = CRGBPalette16( CHSV(random8(), random8(160, 255), random8(128, 255)), @@ -393,8 +394,8 @@ void Segment::set(uint16_t i1, uint16_t i2, uint8_t grp, uint8_t spc, uint16_t o markForReset(); return; } - if (i1 < Segment::maxWidth) start = i1; // Segment::maxWidth equals strip.getLengthTotal() for 1D - stop = i2 > Segment::maxWidth ? Segment::maxWidth : MAX(1,i2); + if (i1 < Segment::maxWidth || (i1 >= Segment::maxWidth*Segment::maxHeight && i1 < strip.getLengthTotal())) start = i1; // Segment::maxWidth equals strip.getLengthTotal() for 1D + stop = i2 > Segment::maxWidth*Segment::maxHeight ? MIN(i2,strip.getLengthTotal()) : (i2 > Segment::maxWidth ? Segment::maxWidth : MAX(1,i2)); startY = 0; stopY = 1; #ifndef WLED_DISABLE_2D @@ -415,6 +416,10 @@ void Segment::set(uint16_t i1, uint16_t i2, uint8_t grp, uint8_t spc, uint16_t o bool Segment::setColor(uint8_t slot, uint32_t c) { //returns true if changed if (slot >= NUM_COLORS || c == colors[slot]) return false; + if (!_isRGB && !_hasW) { + if (slot == 0 && c == BLACK) return false; // on/off segment cannot have primary color black + if (slot == 1 && c != BLACK) return false; // on/off segment cannot have secondary color non black + } if (fadeTransition) startTransition(strip.getTransition()); // start transition prior to change colors[slot] = c; stateChanged = true; // send UDP/WS broadcast @@ -546,7 +551,9 @@ uint16_t Segment::virtualLength() const { void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) { +#ifndef WLED_DISABLE_2D int vStrip = i>>16; // hack to allow running on virtual strips (2D segment columns/rows) +#endif i &= 0xFFFF; if (i >= virtualLength() || i<0) return; // if pixel would fall out of segment just exit @@ -600,12 +607,14 @@ void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) } return; } else if (Segment::maxHeight!=1 && (width()==1 || height()==1)) { - // we have a vertical or horizontal 1D segment (WARNING: virtual...() may be transposed) - int x = 0, y = 0; - if (virtualHeight()>1) y = i; - if (virtualWidth() >1) x = i; - setPixelColorXY(x, y, col); - return; + if (start < Segment::maxWidth*Segment::maxHeight) { + // we have a vertical or horizontal 1D segment (WARNING: virtual...() may be transposed) + int x = 0, y = 0; + if (virtualHeight()>1) y = i; + if (virtualWidth() >1) x = i; + setPixelColorXY(x, y, col); + return; + } } #endif @@ -684,7 +693,9 @@ void Segment::setPixelColor(float i, uint32_t col, bool aa) uint32_t Segment::getPixelColor(int i) { +#ifndef WLED_DISABLE_2D int vStrip = i>>16; +#endif i &= 0xFFFF; #ifndef WLED_DISABLE_2D @@ -747,29 +758,46 @@ uint8_t Segment::differs(Segment& b) const { } void Segment::refreshLightCapabilities() { - uint8_t capabilities = 0x01; + uint8_t capabilities = 0; + uint16_t segStartIdx = 0xFFFFU; + uint16_t segStopIdx = 0; + + if (start < Segment::maxWidth * Segment::maxHeight) { + // we are withing 2D matrix (includes 1D segments) + for (int y = startY; y < stopY; y++) for (int x = start; x < stop; x++) { + uint16_t index = x + Segment::maxWidth * y; + if (index < strip.customMappingSize) index = strip.customMappingTable[index]; // convert logical address to physical + if (index < 0xFFFFU) { + if (segStartIdx > index) segStartIdx = index; + if (segStopIdx < index) segStopIdx = index; + } + if (segStartIdx == segStopIdx) segStopIdx++; // we only have 1 pixel segment + } + } else { + // we are on the strip located after the matrix + segStartIdx = start; + segStopIdx = stop; + } for (uint8_t b = 0; b < busses.getNumBusses(); b++) { Bus *bus = busses.getBus(b); if (bus == nullptr || bus->getLength()==0) break; if (!bus->isOk()) continue; - if (bus->getStart() >= stop) continue; - if (bus->getStart() + bus->getLength() <= start) continue; + if (bus->getStart() >= segStopIdx) continue; + if (bus->getStart() + bus->getLength() <= segStartIdx) continue; - uint8_t type = bus->getType(); - if (type == TYPE_ONOFF || type == TYPE_ANALOG_1CH || (!cctFromRgb && type == TYPE_ANALOG_2CH)) capabilities &= 0xFE; // does not support RGB - if (bus->isRgbw()) capabilities |= 0x02; // segment supports white channel - if (!cctFromRgb) { - switch (type) { - case TYPE_ANALOG_5CH: - case TYPE_ANALOG_2CH: - capabilities |= 0x04; //segment supports white CCT - } + //uint8_t type = bus->getType(); + if (bus->hasRGB() || (cctFromRgb && bus->hasCCT())) capabilities |= SEG_CAPABILITY_RGB; + if (!cctFromRgb && bus->hasCCT()) capabilities |= SEG_CAPABILITY_CCT; + if (correctWB && (bus->hasRGB() || bus->hasCCT())) capabilities |= SEG_CAPABILITY_CCT; //white balance correction (CCT slider) + if (bus->hasWhite()) { + uint8_t aWM = Bus::getGlobalAWMode() == AW_GLOBAL_DISABLED ? bus->getAutoWhiteMode() : Bus::getGlobalAWMode(); + bool whiteSlider = (aWM == RGBW_MODE_DUAL || aWM == RGBW_MODE_MANUAL_ONLY); // white slider allowed + // if auto white calculation from RGB is active (Accurate/Brighter), force RGB controls even if there are no RGB busses + if (!whiteSlider) capabilities |= SEG_CAPABILITY_RGB; + // if auto white calculation from RGB is disabled/optional (None/Dual), allow white channel adjustments + if ( whiteSlider) capabilities |= SEG_CAPABILITY_W; } - if (correctWB && !(type == TYPE_ANALOG_1CH || type == TYPE_ONOFF)) capabilities |= 0x04; //white balance correction (uses CCT slider) - uint8_t aWM = Bus::getAutoWhiteMode()<255 ? Bus::getAutoWhiteMode() : bus->getAWMode(); - bool whiteSlider = (aWM == RGBW_MODE_DUAL || aWM == RGBW_MODE_MANUAL_ONLY); // white slider allowed - if (bus->isRgbw() && (whiteSlider || !(capabilities & 0x01))) capabilities |= 0x08; // allow white channel adjustments (AWM allows or is not RGB) } _capabilities = capabilities; } @@ -998,7 +1026,7 @@ void WS2812FX::finalizeInit(void) if (bus == nullptr) continue; if (bus->getStart() + bus->getLength() > MAX_LEDS) break; //RGBW mode is enabled if at least one of the strips is RGBW - _hasWhiteChannel |= bus->isRgbw(); + _hasWhiteChannel |= bus->hasWhite(); //refresh is required to remain off if at least one of the strips requires the refresh. _isOffRefreshRequired |= bus->isOffRefreshRequired(); uint16_t busEnd = bus->getStart() + bus->getLength(); @@ -1012,10 +1040,11 @@ void WS2812FX::finalizeInit(void) #endif } - if (!isMatrix) { // if 2D then max values defined in setUpMatrix() using panel set-up + if (isMatrix) setUpMatrix(); + else { Segment::maxWidth = _length; Segment::maxHeight = 1; - } + } //initialize leds array. TBD: realloc if nr of leds change if (Segment::_globalLeds) { @@ -1024,17 +1053,20 @@ void WS2812FX::finalizeInit(void) Segment::_globalLeds = nullptr; } if (useLedsArray) { + size_t arrSize = sizeof(CRGB) * getLengthTotal(); #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) if (psramFound()) - Segment::_globalLeds = (CRGB*) ps_malloc(sizeof(CRGB) * _length); + Segment::_globalLeds = (CRGB*) ps_malloc(arrSize); else #endif - Segment::_globalLeds = (CRGB*) malloc(sizeof(CRGB) * _length); - memset(Segment::_globalLeds, 0, sizeof(CRGB) * _length); + Segment::_globalLeds = (CRGB*) malloc(arrSize); + memset(Segment::_globalLeds, 0, arrSize); } //segments are created in makeAutoSegments(); + DEBUG_PRINTLN(F("Loading custom palettes")); loadCustomPalettes(); // (re)load all custom palettes + DEBUG_PRINTLN(F("Loading custom ledmaps")); deserializeMap(); // (re)load default ledmap } @@ -1095,15 +1127,15 @@ void WS2812FX::service() { void IRAM_ATTR WS2812FX::setPixelColor(int i, uint32_t col) { - if (i >= _length) return; if (i < customMappingSize) i = customMappingTable[i]; + if (i >= _length) return; busses.setPixelColor(i, col); } uint32_t WS2812FX::getPixelColor(uint16_t i) { - if (i >= _length) return 0; if (i < customMappingSize) i = customMappingTable[i]; + if (i >= _length) return 0; return busses.getPixelColor(i); } @@ -1165,7 +1197,7 @@ void WS2812FX::estimateCurrentAndLimitBri() { } } - if (bus->isRgbw()) { //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less + if (bus->hasWhite()) { //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less busPowerSum *= 3; busPowerSum = busPowerSum >> 2; //same as /= 4 } @@ -1316,6 +1348,12 @@ uint8_t WS2812FX::getActiveSegmentsNum(void) { return c; } +uint16_t WS2812FX::getLengthTotal(void) { + uint16_t len = Segment::maxWidth * Segment::maxHeight; // will be _length for 1D (see finalizeInit()) but should cover whole matrix for 2D + if (isMatrix && _length > len) len = _length; // for 2D with trailing strip + return len; +} + uint16_t WS2812FX::getLengthPhysical(void) { uint16_t len = 0; for (size_t b = 0; b < busses.getNumBusses(); b++) { @@ -1333,12 +1371,7 @@ bool WS2812FX::hasRGBWBus(void) { for (size_t b = 0; b < busses.getNumBusses(); b++) { Bus *bus = busses.getBus(b); if (bus == nullptr || bus->getLength()==0) break; - switch (bus->getType()) { - case TYPE_SK6812_RGBW: - case TYPE_TM1814: - case TYPE_ANALOG_4CH: - return true; - } + if (bus->hasRGB() && bus->hasWhite()) return true; } return false; } @@ -1363,7 +1396,6 @@ void WS2812FX::purgeSegments(bool force) { if (_segments.size() <= 1) return; for (size_t i = _segments.size()-1; i > 0; i--) if (_segments[i].stop == 0 || force) { - DEBUG_PRINT(F("Purging segment segment: ")); DEBUG_PRINTLN(i); deleted++; _segments.erase(_segments.begin() + i); } @@ -1398,31 +1430,31 @@ void WS2812FX::resetSegments() { } void WS2812FX::makeAutoSegments(bool forceReset) { - if (isMatrix) { - #ifndef WLED_DISABLE_2D - // only create 1 2D segment - if (forceReset || getSegmentsNum() == 0) resetSegments(); // initialises 1 segment - else if (getActiveSegmentsNum() == 1) { - size_t i = getLastActiveSegmentId(); - _segments[i].start = 0; - _segments[i].stop = Segment::maxWidth; - _segments[i].startY = 0; - _segments[i].stopY = Segment::maxHeight; - _segments[i].grouping = 1; - _segments[i].spacing = 0; - _mainSegment = i; - } - #endif - } else if (autoSegments) { //make one segment per bus + if (autoSegments) { //make one segment per bus uint16_t segStarts[MAX_NUM_SEGMENTS] = {0}; uint16_t segStops [MAX_NUM_SEGMENTS] = {0}; - uint8_t s = 0; - for (uint8_t i = 0; i < busses.getNumBusses(); i++) { + size_t s = 0; + + #ifndef WLED_DISABLE_2D + // 2D segment is the 1st one using entire matrix + if (isMatrix) { + segStarts[0] = 0; + segStops[0] = Segment::maxWidth*Segment::maxHeight; + s++; + } + #endif + + for (size_t i = s; i < busses.getNumBusses(); i++) { Bus* b = busses.getBus(i); segStarts[s] = b->getStart(); segStops[s] = segStarts[s] + b->getLength(); + #ifndef WLED_DISABLE_2D + if (isMatrix && segStops[s] < Segment::maxWidth*Segment::maxHeight) continue; // ignore buses comprising matrix + if (isMatrix && segStarts[s] < Segment::maxWidth*Segment::maxHeight) segStarts[s] = Segment::maxWidth*Segment::maxHeight; + #endif + //check for overlap with previous segments for (size_t j = 0; j < s; j++) { if (segStops[j] > segStarts[s] && segStarts[j] < segStops[s]) { @@ -1434,23 +1466,40 @@ void WS2812FX::makeAutoSegments(bool forceReset) { } s++; } + _segments.clear(); - for (size_t i = 0; i < s; i++) { - Segment seg = Segment(segStarts[i], segStops[i]); - seg.selected = true; - _segments.push_back(seg); + _segments.reserve(s); // prevent reallocations + // there is always at least one segment (but we need to differentiate between 1D and 2D) + #ifndef WLED_DISABLE_2D + if (isMatrix) + _segments.push_back(Segment(0, Segment::maxWidth, 0, Segment::maxHeight)); + else + #endif + _segments.push_back(Segment(segStarts[0], segStops[0])); + for (size_t i = 1; i < s; i++) { + _segments.push_back(Segment(segStarts[i], segStops[i])); } - _mainSegment = 0; + } else { + if (forceReset || getSegmentsNum() == 0) resetSegments(); //expand the main seg to the entire length, but only if there are no other segments, or reset is forced else if (getActiveSegmentsNum() == 1) { size_t i = getLastActiveSegmentId(); + #ifndef WLED_DISABLE_2D + _segments[i].start = 0; + _segments[i].stop = Segment::maxWidth; + _segments[i].startY = 0; + _segments[i].stopY = Segment::maxHeight; + _segments[i].grouping = 1; + _segments[i].spacing = 0; + #else _segments[i].start = 0; _segments[i].stop = _length; - _mainSegment = 0; + #endif } } + _mainSegment = 0; fixInvalidSegments(); } @@ -1458,14 +1507,30 @@ void WS2812FX::makeAutoSegments(bool forceReset) { void WS2812FX::fixInvalidSegments() { //make sure no segment is longer than total (sanity check) for (size_t i = getSegmentsNum()-1; i > 0; i--) { - if (_segments[i].start >= _length) { _segments.erase(_segments.begin()+i); continue; } - if (_segments[i].stop > _length) _segments[i].stop = _length; - // this is always called as the last step after finalizeInit(), update covered bus types - _segments[i].refreshLightCapabilities(); + if (isMatrix) { + #ifndef WLED_DISABLE_2D + if (_segments[i].start >= Segment::maxWidth * Segment::maxHeight) { + // 1D segment at the end of matrix + if (_segments[i].start >= _length || _segments[i].startY > 0 || _segments[i].stopY > 1) { _segments.erase(_segments.begin()+i); continue; } + if (_segments[i].stop > _length) _segments[i].stop = _length; + continue; + } + if (_segments[i].start >= Segment::maxWidth || _segments[i].startY >= Segment::maxHeight) { _segments.erase(_segments.begin()+i); continue; } + if (_segments[i].stop > Segment::maxWidth) _segments[i].stop = Segment::maxWidth; + if (_segments[i].stopY > Segment::maxHeight) _segments[i].stopY = Segment::maxHeight; + #endif + } else { + if (_segments[i].start >= _length) { _segments.erase(_segments.begin()+i); continue; } + if (_segments[i].stop > _length) _segments[i].stop = _length; + } } + // this is always called as the last step after finalizeInit(), update covered bus types + for (segment &seg : _segments) + seg.refreshLightCapabilities(); } //true if all segments align with a bus, or if a segment covers the total length +//irrelevant in 2D set-up bool WS2812FX::checkSegmentAlignment() { bool aligned = false; for (segment &seg : _segments) { @@ -1482,8 +1547,7 @@ bool WS2812FX::checkSegmentAlignment() { //After this function is called, setPixelColor() will use that segment (offsets, grouping, ... will apply) //Note: If called in an interrupt (e.g. JSON API), original segment must be restored, //otherwise it can lead to a crash on ESP32 because _segment_index is modified while in use by the main thread -uint8_t WS2812FX::setPixelSegment(uint8_t n) -{ +uint8_t WS2812FX::setPixelSegment(uint8_t n) { uint8_t prevSegId = _segment_index; if (n < _segments.size()) { _segment_index = n; @@ -1492,8 +1556,7 @@ uint8_t WS2812FX::setPixelSegment(uint8_t n) return prevSegId; } -void WS2812FX::setRange(uint16_t i, uint16_t i2, uint32_t col) -{ +void WS2812FX::setRange(uint16_t i, uint16_t i2, uint32_t col) { if (i2 >= i) { for (uint16_t x = i; x <= i2; x++) setPixelColor(x, col); @@ -1503,26 +1566,24 @@ void WS2812FX::setRange(uint16_t i, uint16_t i2, uint32_t col) } } -void WS2812FX::setTransitionMode(bool t) -{ +void WS2812FX::setTransitionMode(bool t) { for (segment &seg : _segments) if (!seg.transitional) seg.startTransition(t ? _transitionDur : 0); } #ifdef WLED_DEBUG -void WS2812FX::printSize() -{ +void WS2812FX::printSize() { size_t size = 0; for (const Segment &seg : _segments) size += seg.getSize(); DEBUG_PRINTF("Segments: %d -> %uB\n", _segments.size(), size); DEBUG_PRINTF("Modes: %d*%d=%uB\n", sizeof(mode_ptr), _mode.size(), (_mode.capacity()*sizeof(mode_ptr))); DEBUG_PRINTF("Data: %d*%d=%uB\n", sizeof(const char *), _modeData.size(), (_modeData.capacity()*sizeof(const char *))); DEBUG_PRINTF("Map: %d*%d=%uB\n", sizeof(uint16_t), (int)customMappingSize, customMappingSize*sizeof(uint16_t)); - if (useLedsArray) DEBUG_PRINTF("Buffer: %d*%d=%uB\n", sizeof(CRGB), (int)_length, _length*sizeof(CRGB)); + size = getLengthTotal(); + if (useLedsArray) DEBUG_PRINTF("Buffer: %d*%u=%uB\n", sizeof(CRGB), size, size*sizeof(CRGB)); } #endif -void WS2812FX::loadCustomPalettes() -{ +void WS2812FX::loadCustomPalettes() { byte tcp[72]; //support gradient palettes with up to 18 entries CRGBPalette16 targetPalette; customPalettes.clear(); // start fresh @@ -1570,8 +1631,8 @@ void WS2812FX::loadCustomPalettes() } //load custom mapping table from JSON file (called from finalizeInit() or deserializeState()) -void WS2812FX::deserializeMap(uint8_t n) { - if (isMatrix) return; // 2D support creates its own ledmap +bool WS2812FX::deserializeMap(uint8_t n) { + // 2D support creates its own ledmap (on the fly) if a ledmap.json exists it will overwrite built one. char fileName[32]; strcpy_P(fileName, PSTR("/ledmap")); @@ -1581,24 +1642,24 @@ void WS2812FX::deserializeMap(uint8_t n) { if (!isFile) { // erase custom mapping if selecting nonexistent ledmap.json (n==0) - if (!n && customMappingTable != nullptr) { + if (!isMatrix && !n && customMappingTable != nullptr) { customMappingSize = 0; delete[] customMappingTable; customMappingTable = nullptr; } - return; + return false; } - if (!requestJSONBufferLock(7)) return; - - DEBUG_PRINT(F("Reading LED map from ")); - DEBUG_PRINTLN(fileName); + if (!requestJSONBufferLock(7)) return false; if (!readObjectFromFile(fileName, nullptr, &doc)) { releaseJSONBufferLock(); - return; //if file does not exist just exit + return false; //if file does not exist just exit } + DEBUG_PRINT(F("Reading LED map from ")); + DEBUG_PRINTLN(fileName); + // erase old custom ledmap if (customMappingTable != nullptr) { customMappingSize = 0; @@ -1611,21 +1672,17 @@ void WS2812FX::deserializeMap(uint8_t n) { customMappingSize = map.size(); customMappingTable = new uint16_t[customMappingSize]; for (uint16_t i=0; i HSB convert here - Blynk.virtualWrite(V3, bri? 1:0); - Blynk.virtualWrite(V4, effectCurrent); - Blynk.virtualWrite(V5, effectSpeed); - Blynk.virtualWrite(V6, effectIntensity); - Blynk.virtualWrite(V7, nightlightActive); - Blynk.virtualWrite(V8, notifyDirect); - #endif -} - -#ifndef WLED_DISABLE_BLYNK -BLYNK_WRITE(V0) -{ - bri = param.asInt();//bri - stateUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V1) -{ - blHue = param.asInt();//hue - colorHStoRGB(blHue*10,blSat,col); - colorUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V2) -{ - blSat = param.asInt();//sat - colorHStoRGB(blHue*10,blSat,col); - colorUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V3) -{ - bool on = (param.asInt()>0); - if (!on != !bri) {toggleOnOff(); stateUpdated(CALL_MODE_BLYNK);} -} - -BLYNK_WRITE(V4) -{ - effectCurrent = param.asInt()-1;//fx - colorUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V5) -{ - effectSpeed = param.asInt();//sx - colorUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V6) -{ - effectIntensity = param.asInt();//ix - colorUpdated(CALL_MODE_BLYNK); -} - -BLYNK_WRITE(V7) -{ - nightlightActive = (param.asInt()>0); -} - -BLYNK_WRITE(V8) -{ - notifyDirect = (param.asInt()>0); //send notifications -} -#endif diff --git a/wled00/bus_manager.cpp b/wled00/bus_manager.cpp new file mode 100644 index 00000000..c1cf2d46 --- /dev/null +++ b/wled00/bus_manager.cpp @@ -0,0 +1,562 @@ +/* + * Class implementation for addressing various light types + */ + +#include +#include +#include "const.h" +#include "pin_manager.h" +#include "bus_wrapper.h" +#include "bus_manager.h" + +//colors.cpp +uint32_t colorBalanceFromKelvin(uint16_t kelvin, uint32_t rgb); +uint16_t approximateKelvinFromRGB(uint32_t rgb); +void colorRGBtoRGBW(byte* rgb); + +//udp.cpp +uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, byte *buffer, uint8_t bri=255, bool isRGBW=false); + +// enable additional debug output +#if defined(WLED_DEBUG_HOST) + #include "net_debug.h" + #define DEBUGOUT NetDebug +#else + #define DEBUGOUT Serial +#endif + +#ifdef WLED_DEBUG + #ifndef ESP8266 + #include + #endif + #define DEBUG_PRINT(x) DEBUGOUT.print(x) + #define DEBUG_PRINTLN(x) DEBUGOUT.println(x) + #define DEBUG_PRINTF(x...) DEBUGOUT.printf(x) +#else + #define DEBUG_PRINT(x) + #define DEBUG_PRINTLN(x) + #define DEBUG_PRINTF(x...) +#endif + +//color mangling macros +#define RGBW32(r,g,b,w) (uint32_t((byte(w) << 24) | (byte(r) << 16) | (byte(g) << 8) | (byte(b)))) +#define R(c) (byte((c) >> 16)) +#define G(c) (byte((c) >> 8)) +#define B(c) (byte(c)) +#define W(c) (byte((c) >> 24)) + + +void ColorOrderMap::add(uint16_t start, uint16_t len, uint8_t colorOrder) { + if (_count >= WLED_MAX_COLOR_ORDER_MAPPINGS) { + return; + } + if (len == 0) { + return; + } + if (colorOrder > COL_ORDER_MAX) { + return; + } + _mappings[_count].start = start; + _mappings[_count].len = len; + _mappings[_count].colorOrder = colorOrder; + _count++; +} + +uint8_t IRAM_ATTR ColorOrderMap::getPixelColorOrder(uint16_t pix, uint8_t defaultColorOrder) const { + if (_count == 0) return defaultColorOrder; + // upper nibble containd W swap information + uint8_t swapW = defaultColorOrder >> 4; + for (uint8_t i = 0; i < _count; i++) { + if (pix >= _mappings[i].start && pix < (_mappings[i].start + _mappings[i].len)) { + return _mappings[i].colorOrder | (swapW << 4); + } + } + return defaultColorOrder; +} + + +uint32_t Bus::autoWhiteCalc(uint32_t c) { + uint8_t aWM = _autoWhiteMode; + if (_gAWM < 255) aWM = _gAWM; + if (aWM == RGBW_MODE_MANUAL_ONLY) return c; + uint8_t w = W(c); + //ignore auto-white calculation if w>0 and mode DUAL (DUAL behaves as BRIGHTER if w==0) + if (w > 0 && aWM == RGBW_MODE_DUAL) return c; + uint8_t r = R(c); + uint8_t g = G(c); + uint8_t b = B(c); + if (aWM == RGBW_MODE_MAX) return RGBW32(r, g, b, r > g ? (r > b ? r : b) : (g > b ? g : b)); // brightest RGB channel + w = r < g ? (r < b ? r : b) : (g < b ? g : b); + if (aWM == RGBW_MODE_AUTO_ACCURATE) { r -= w; g -= w; b -= w; } //subtract w in ACCURATE mode + return RGBW32(r, g, b, w); +} + + +BusDigital::BusDigital(BusConfig &bc, uint8_t nr, const ColorOrderMap &com) : Bus(bc.type, bc.start, bc.autoWhite), _colorOrderMap(com) { + if (!IS_DIGITAL(bc.type) || !bc.count) return; + if (!pinManager.allocatePin(bc.pins[0], true, PinOwner::BusDigital)) return; + _pins[0] = bc.pins[0]; + if (IS_2PIN(bc.type)) { + if (!pinManager.allocatePin(bc.pins[1], true, PinOwner::BusDigital)) { + cleanup(); return; + } + _pins[1] = bc.pins[1]; + } + reversed = bc.reversed; + _needsRefresh = bc.refreshReq || bc.type == TYPE_TM1814; + _skip = bc.skipAmount; //sacrificial pixels + _len = bc.count + _skip; + _iType = PolyBus::getI(bc.type, _pins, nr); + if (_iType == I_NONE) return; + uint16_t lenToCreate = _len; + if (bc.type == TYPE_WS2812_1CH_X3) lenToCreate = NUM_ICS_WS2812_1CH_3X(_len); // only needs a third of "RGB" LEDs for NeoPixelBus + _busPtr = PolyBus::create(_iType, _pins, lenToCreate, nr); + _valid = (_busPtr != nullptr); + _colorOrder = bc.colorOrder; + DEBUG_PRINTF("%successfully inited strip %u (len %u) with type %u and pins %u,%u (itype %u)\n", _valid?"S":"Uns", nr, _len, bc.type, _pins[0],_pins[1],_iType); +} + +void BusDigital::show() { + PolyBus::show(_busPtr, _iType); +} + +bool BusDigital::canShow() { + return PolyBus::canShow(_busPtr, _iType); +} + +void BusDigital::setBrightness(uint8_t b) { + //Fix for turning off onboard LED breaking bus + #ifdef LED_BUILTIN + if (_bri == 0 && b > 0) { + if (_pins[0] == LED_BUILTIN || _pins[1] == LED_BUILTIN) PolyBus::begin(_busPtr, _iType, _pins); + } + #endif + Bus::setBrightness(b); + PolyBus::setBrightness(_busPtr, _iType, b); +} + +//If LEDs are skipped, it is possible to use the first as a status LED. +//TODO only show if no new show due in the next 50ms +void BusDigital::setStatusPixel(uint32_t c) { + if (_skip && canShow()) { + PolyBus::setPixelColor(_busPtr, _iType, 0, c, _colorOrderMap.getPixelColorOrder(_start, _colorOrder)); + PolyBus::show(_busPtr, _iType); + } +} + +void IRAM_ATTR BusDigital::setPixelColor(uint16_t pix, uint32_t c) { + if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814 || _type == TYPE_WS2812_1CH_X3) c = autoWhiteCalc(c); + if (_cct >= 1900) c = colorBalanceFromKelvin(_cct, c); //color correction from CCT + if (reversed) pix = _len - pix -1; + else pix += _skip; + uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder); + if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs + uint16_t pOld = pix; + pix = IC_INDEX_WS2812_1CH_3X(pix); + uint32_t cOld = PolyBus::getPixelColor(_busPtr, _iType, pix, co); + switch (pOld % 3) { // change only the single channel (TODO: this can cause loss because of get/set) + case 0: c = RGBW32(R(cOld), W(c) , B(cOld), 0); break; + case 1: c = RGBW32(W(c) , G(cOld), B(cOld), 0); break; + case 2: c = RGBW32(R(cOld), G(cOld), W(c) , 0); break; + } + } + PolyBus::setPixelColor(_busPtr, _iType, pix, c, co); +} + +uint32_t BusDigital::getPixelColor(uint16_t pix) { + if (reversed) pix = _len - pix -1; + else pix += _skip; + uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder); + if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs + uint16_t pOld = pix; + pix = IC_INDEX_WS2812_1CH_3X(pix); + uint32_t c = PolyBus::getPixelColor(_busPtr, _iType, pix, co); + switch (pOld % 3) { // get only the single channel + case 0: c = RGBW32(G(c), G(c), G(c), G(c)); break; + case 1: c = RGBW32(R(c), R(c), R(c), R(c)); break; + case 2: c = RGBW32(B(c), B(c), B(c), B(c)); break; + } + return c; + } + return PolyBus::getPixelColor(_busPtr, _iType, pix, co); +} + +uint8_t BusDigital::getPins(uint8_t* pinArray) { + uint8_t numPins = IS_2PIN(_type) ? 2 : 1; + for (uint8_t i = 0; i < numPins; i++) pinArray[i] = _pins[i]; + return numPins; +} + +void BusDigital::setColorOrder(uint8_t colorOrder) { + // upper nibble contains W swap information + if ((colorOrder & 0x0F) > 5) return; + _colorOrder = colorOrder; +} + +void BusDigital::reinit() { + PolyBus::begin(_busPtr, _iType, _pins); +} + +void BusDigital::cleanup() { + DEBUG_PRINTLN(F("Digital Cleanup.")); + PolyBus::cleanup(_busPtr, _iType); + _iType = I_NONE; + _valid = false; + _busPtr = nullptr; + pinManager.deallocatePin(_pins[1], PinOwner::BusDigital); + pinManager.deallocatePin(_pins[0], PinOwner::BusDigital); +} + + +BusPwm::BusPwm(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { + _valid = false; + if (!IS_PWM(bc.type)) return; + uint8_t numPins = NUM_PWM_PINS(bc.type); + + #ifdef ESP8266 + analogWriteRange(255); //same range as one RGB channel + analogWriteFreq(WLED_PWM_FREQ); + #else + _ledcStart = pinManager.allocateLedc(numPins); + if (_ledcStart == 255) { //no more free LEDC channels + deallocatePins(); return; + } + #endif + + for (uint8_t i = 0; i < numPins; i++) { + uint8_t currentPin = bc.pins[i]; + if (!pinManager.allocatePin(currentPin, true, PinOwner::BusPwm)) { + deallocatePins(); return; + } + _pins[i] = currentPin; //store only after allocatePin() succeeds + #ifdef ESP8266 + pinMode(_pins[i], OUTPUT); + #else + ledcSetup(_ledcStart + i, WLED_PWM_FREQ, 8); + ledcAttachPin(_pins[i], _ledcStart + i); + #endif + } + reversed = bc.reversed; + _valid = true; +} + +void BusPwm::setPixelColor(uint16_t pix, uint32_t c) { + if (pix != 0 || !_valid) return; //only react to first pixel + if (_type != TYPE_ANALOG_3CH) c = autoWhiteCalc(c); + if (_cct >= 1900 && (_type == TYPE_ANALOG_3CH || _type == TYPE_ANALOG_4CH)) { + c = colorBalanceFromKelvin(_cct, c); //color correction from CCT + } + uint8_t r = R(c); + uint8_t g = G(c); + uint8_t b = B(c); + uint8_t w = W(c); + uint8_t cct = 0; //0 - full warm white, 255 - full cold white + if (_cct > -1) { + if (_cct >= 1900) cct = (_cct - 1900) >> 5; + else if (_cct < 256) cct = _cct; + } else { + cct = (approximateKelvinFromRGB(c) - 1900) >> 5; + } + + uint8_t ww, cw; + #ifdef WLED_USE_IC_CCT + ww = w; + cw = cct; + #else + //0 - linear (CCT 127 = 50% warm, 50% cold), 127 - additive CCT blending (CCT 127 = 100% warm, 100% cold) + if (cct < _cctBlend) ww = 255; + else ww = ((255-cct) * 255) / (255 - _cctBlend); + + if ((255-cct) < _cctBlend) cw = 255; + else cw = (cct * 255) / (255 - _cctBlend); + + ww = (w * ww) / 255; //brightness scaling + cw = (w * cw) / 255; + #endif + + switch (_type) { + case TYPE_ANALOG_1CH: //one channel (white), relies on auto white calculation + _data[0] = w; + break; + case TYPE_ANALOG_2CH: //warm white + cold white + _data[1] = cw; + _data[0] = ww; + break; + case TYPE_ANALOG_5CH: //RGB + warm white + cold white + _data[4] = cw; + w = ww; + case TYPE_ANALOG_4CH: //RGBW + _data[3] = w; + case TYPE_ANALOG_3CH: //standard dumb RGB + _data[0] = r; _data[1] = g; _data[2] = b; + break; + } +} + +//does no index check +uint32_t BusPwm::getPixelColor(uint16_t pix) { + if (!_valid) return 0; + return RGBW32(_data[0], _data[1], _data[2], _data[3]); +} + +void BusPwm::show() { + if (!_valid) return; + uint8_t numPins = NUM_PWM_PINS(_type); + for (uint8_t i = 0; i < numPins; i++) { + uint8_t scaled = (_data[i] * _bri) / 255; + if (reversed) scaled = 255 - scaled; + #ifdef ESP8266 + analogWrite(_pins[i], scaled); + #else + ledcWrite(_ledcStart + i, scaled); + #endif + } +} + +uint8_t BusPwm::getPins(uint8_t* pinArray) { + if (!_valid) return 0; + uint8_t numPins = NUM_PWM_PINS(_type); + for (uint8_t i = 0; i < numPins; i++) { + pinArray[i] = _pins[i]; + } + return numPins; +} + +void BusPwm::deallocatePins() { + uint8_t numPins = NUM_PWM_PINS(_type); + for (uint8_t i = 0; i < numPins; i++) { + pinManager.deallocatePin(_pins[i], PinOwner::BusPwm); + if (!pinManager.isPinOk(_pins[i])) continue; + #ifdef ESP8266 + digitalWrite(_pins[i], LOW); //turn off PWM interrupt + #else + if (_ledcStart < 16) ledcDetachPin(_pins[i]); + #endif + } + #ifdef ARDUINO_ARCH_ESP32 + pinManager.deallocateLedc(_ledcStart, numPins); + #endif +} + + +BusOnOff::BusOnOff(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { + _valid = false; + if (bc.type != TYPE_ONOFF) return; + + uint8_t currentPin = bc.pins[0]; + if (!pinManager.allocatePin(currentPin, true, PinOwner::BusOnOff)) { + return; + } + _pin = currentPin; //store only after allocatePin() succeeds + pinMode(_pin, OUTPUT); + reversed = bc.reversed; + _valid = true; +} + +void BusOnOff::setPixelColor(uint16_t pix, uint32_t c) { + if (pix != 0 || !_valid) return; //only react to first pixel + c = autoWhiteCalc(c); + uint8_t r = R(c); + uint8_t g = G(c); + uint8_t b = B(c); + uint8_t w = W(c); + + _data = bool(r|g|b|w) && bool(_bri) ? 0xFF : 0; +} + +uint32_t BusOnOff::getPixelColor(uint16_t pix) { + if (!_valid) return 0; + return RGBW32(_data, _data, _data, _data); +} + +void BusOnOff::show() { + if (!_valid) return; + digitalWrite(_pin, reversed ? !(bool)_data : (bool)_data); +} + +uint8_t BusOnOff::getPins(uint8_t* pinArray) { + if (!_valid) return 0; + pinArray[0] = _pin; + return 1; +} + + +BusNetwork::BusNetwork(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { + _valid = false; + switch (bc.type) { + case TYPE_NET_ARTNET_RGB: + _rgbw = false; + _UDPtype = 2; + break; + case TYPE_NET_E131_RGB: + _rgbw = false; + _UDPtype = 1; + break; + default: // TYPE_NET_DDP_RGB / TYPE_NET_DDP_RGBW + _rgbw = bc.type == TYPE_NET_DDP_RGBW; + _UDPtype = 0; + break; + } + _UDPchannels = _rgbw ? 4 : 3; + _data = (byte *)malloc(bc.count * _UDPchannels); + if (_data == nullptr) return; + memset(_data, 0, bc.count * _UDPchannels); + _len = bc.count; + _client = IPAddress(bc.pins[0],bc.pins[1],bc.pins[2],bc.pins[3]); + _broadcastLock = false; + _valid = true; +} + +void BusNetwork::setPixelColor(uint16_t pix, uint32_t c) { + if (!_valid || pix >= _len) return; + if (hasWhite()) c = autoWhiteCalc(c); + if (_cct >= 1900) c = colorBalanceFromKelvin(_cct, c); //color correction from CCT + uint16_t offset = pix * _UDPchannels; + _data[offset] = R(c); + _data[offset+1] = G(c); + _data[offset+2] = B(c); + if (_rgbw) _data[offset+3] = W(c); +} + +uint32_t BusNetwork::getPixelColor(uint16_t pix) { + if (!_valid || pix >= _len) return 0; + uint16_t offset = pix * _UDPchannels; + return RGBW32(_data[offset], _data[offset+1], _data[offset+2], _rgbw ? (_data[offset+3] << 24) : 0); +} + +void BusNetwork::show() { + if (!_valid || !canShow()) return; + _broadcastLock = true; + realtimeBroadcast(_UDPtype, _client, _len, _data, _bri, _rgbw); + _broadcastLock = false; +} + +uint8_t BusNetwork::getPins(uint8_t* pinArray) { + for (uint8_t i = 0; i < 4; i++) { + pinArray[i] = _client[i]; + } + return 4; +} + +void BusNetwork::cleanup() { + _type = I_NONE; + _valid = false; + if (_data != nullptr) free(_data); + _data = nullptr; +} + + +//utility to get the approx. memory usage of a given BusConfig +uint32_t BusManager::memUsage(BusConfig &bc) { + uint8_t type = bc.type; + uint16_t len = bc.count + bc.skipAmount; + if (type > 15 && type < 32) { + #ifdef ESP8266 + if (bc.pins[0] == 3) { //8266 DMA uses 5x the mem + if (type > 29) return len*20; //RGBW + return len*15; + } + if (type > 29) return len*4; //RGBW + return len*3; + #else //ESP32 RMT uses double buffer? + if (type > 29) return len*8; //RGBW + return len*6; + #endif + } + if (type > 31 && type < 48) return 5; + if (type == 44 || type == 45) return len*4; //RGBW + return len*3; //RGB +} + +int BusManager::add(BusConfig &bc) { + if (getNumBusses() - getNumVirtualBusses() >= WLED_MAX_BUSSES) return -1; + if (bc.type >= TYPE_NET_DDP_RGB && bc.type < 96) { + busses[numBusses] = new BusNetwork(bc); + } else if (IS_DIGITAL(bc.type)) { + busses[numBusses] = new BusDigital(bc, numBusses, colorOrderMap); + } else if (bc.type == TYPE_ONOFF) { + busses[numBusses] = new BusOnOff(bc); + } else { + busses[numBusses] = new BusPwm(bc); + } + return numBusses++; +} + +//do not call this method from system context (network callback) +void BusManager::removeAll() { + DEBUG_PRINTLN(F("Removing all.")); + //prevents crashes due to deleting busses while in use. + while (!canAllShow()) yield(); + for (uint8_t i = 0; i < numBusses; i++) delete busses[i]; + numBusses = 0; +} + +void BusManager::show() { + for (uint8_t i = 0; i < numBusses; i++) { + busses[i]->show(); + } +} + +void BusManager::setStatusPixel(uint32_t c) { + for (uint8_t i = 0; i < numBusses; i++) { + busses[i]->setStatusPixel(c); + } +} + +void IRAM_ATTR BusManager::setPixelColor(uint16_t pix, uint32_t c, int16_t cct) { + for (uint8_t i = 0; i < numBusses; i++) { + Bus* b = busses[i]; + uint16_t bstart = b->getStart(); + if (pix < bstart || pix >= bstart + b->getLength()) continue; + busses[i]->setPixelColor(pix - bstart, c); + } +} + +void BusManager::setBrightness(uint8_t b) { + for (uint8_t i = 0; i < numBusses; i++) { + busses[i]->setBrightness(b); + } +} + +void BusManager::setSegmentCCT(int16_t cct, bool allowWBCorrection) { + if (cct > 255) cct = 255; + if (cct >= 0) { + //if white balance correction allowed, save as kelvin value instead of 0-255 + if (allowWBCorrection) cct = 1900 + (cct << 5); + } else cct = -1; + Bus::setCCT(cct); +} + +uint32_t BusManager::getPixelColor(uint16_t pix) { + for (uint8_t i = 0; i < numBusses; i++) { + Bus* b = busses[i]; + uint16_t bstart = b->getStart(); + if (pix < bstart || pix >= bstart + b->getLength()) continue; + return b->getPixelColor(pix - bstart); + } + return 0; +} + +bool BusManager::canAllShow() { + for (uint8_t i = 0; i < numBusses; i++) { + if (!busses[i]->canShow()) return false; + } + return true; +} + +Bus* BusManager::getBus(uint8_t busNr) { + if (busNr >= numBusses) return nullptr; + return busses[busNr]; +} + +//semi-duplicate of strip.getLengthTotal() (though that just returns strip._length, calculated in finalizeInit()) +uint16_t BusManager::getTotalLength() { + uint16_t len = 0; + for (uint8_t i=0; igetLength(); + return len; +} + +// Bus static member definition +int16_t Bus::_cct = -1; +uint8_t Bus::_cctBlend = 0; +uint8_t Bus::_gAWM = 255; diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index 8250695f..ffb3bd14 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -6,44 +6,17 @@ */ #include "const.h" -#include "pin_manager.h" -#include "bus_wrapper.h" -#include - -//colors.cpp -uint32_t colorBalanceFromKelvin(uint16_t kelvin, uint32_t rgb); -void colorRGBtoRGBW(byte* rgb); - -// enable additional debug output -#if defined(WLED_DEBUG_HOST) - #define DEBUGOUT NetDebug -#else - #define DEBUGOUT Serial -#endif - -#ifdef WLED_DEBUG - #ifndef ESP8266 - #include - #endif - #define DEBUG_PRINT(x) DEBUGOUT.print(x) - #define DEBUG_PRINTLN(x) DEBUGOUT.println(x) - #define DEBUG_PRINTF(x...) DEBUGOUT.printf(x) -#else - #define DEBUG_PRINT(x) - #define DEBUG_PRINTLN(x) - #define DEBUG_PRINTF(x...) -#endif #define GET_BIT(var,bit) (((var)>>(bit))&0x01) #define SET_BIT(var,bit) ((var)|=(uint16_t)(0x0001<<(bit))) #define UNSET_BIT(var,bit) ((var)&=(~(uint16_t)(0x0001<<(bit)))) -//color mangling macros -#define RGBW32(r,g,b,w) (uint32_t((byte(w) << 24) | (byte(r) << 16) | (byte(g) << 8) | (byte(b)))) -#define R(c) (byte((c) >> 16)) -#define G(c) (byte((c) >> 8)) -#define B(c) (byte(c)) -#define W(c) (byte((c) >> 24)) +#define NUM_ICS_WS2812_1CH_3X(len) (((len)+2)/3) // 1 WS2811 IC controls 3 zones (each zone has 1 LED, W) +#define IC_INDEX_WS2812_1CH_3X(i) ((i)/3) + +#define NUM_ICS_WS2812_2CH_3X(len) (((len)+1)*2/3) // 2 WS2811 ICs control 3 zones (each zone has 2 LEDs, CW and WW) +#define IC_INDEX_WS2812_2CH_3X(i) ((i)*2/3) +#define WS2812_2CH_3X_SPANS_2_ICS(i) ((i)&0x01) // every other LED zone is on two different ICs //temporary struct for passing bus configuration to bus struct BusConfig { @@ -88,53 +61,29 @@ struct ColorOrderMapEntry { }; struct ColorOrderMap { - void add(uint16_t start, uint16_t len, uint8_t colorOrder) { - if (_count >= WLED_MAX_COLOR_ORDER_MAPPINGS) { - return; - } - if (len == 0) { - return; - } - if (colorOrder > COL_ORDER_MAX) { - return; - } - _mappings[_count].start = start; - _mappings[_count].len = len; - _mappings[_count].colorOrder = colorOrder; - _count++; - } + void add(uint16_t start, uint16_t len, uint8_t colorOrder); - uint8_t count() const { - return _count; - } - - void reset() { - _count = 0; - memset(_mappings, 0, sizeof(_mappings)); - } - - const ColorOrderMapEntry* get(uint8_t n) const { - if (n > _count) { - return nullptr; + uint8_t count() const { + return _count; } - return &(_mappings[n]); - } - inline uint8_t IRAM_ATTR getPixelColorOrder(uint16_t pix, uint8_t defaultColorOrder) const { - if (_count == 0) return defaultColorOrder; - // upper nibble containd W swap information - uint8_t swapW = defaultColorOrder >> 4; - for (uint8_t i = 0; i < _count; i++) { - if (pix >= _mappings[i].start && pix < (_mappings[i].start + _mappings[i].len)) { - return _mappings[i].colorOrder | (swapW << 4); + void reset() { + _count = 0; + memset(_mappings, 0, sizeof(_mappings)); + } + + const ColorOrderMapEntry* get(uint8_t n) const { + if (n > _count) { + return nullptr; } + return &(_mappings[n]); } - return defaultColorOrder; - } + + uint8_t getPixelColorOrder(uint16_t pix, uint8_t defaultColorOrder) const; private: - uint8_t _count; - ColorOrderMapEntry _mappings[WLED_MAX_COLOR_ORDER_MAPPINGS]; + uint8_t _count; + ColorOrderMapEntry _mappings[WLED_MAX_COLOR_ORDER_MAPPINGS]; }; //parent class of BusDigital, BusPwm, and BusNetwork @@ -148,7 +97,7 @@ class Bus { { _type = type; _start = start; - _autoWhiteMode = Bus::isRgbw(_type) ? aw : RGBW_MODE_MANUAL_ONLY; + _autoWhiteMode = Bus::hasWhite(_type) ? aw : RGBW_MODE_MANUAL_ONLY; }; virtual ~Bus() {} //throw the bus under the bus @@ -172,37 +121,37 @@ class Bus { inline bool isOffRefreshRequired() { return _needsRefresh; } bool containsPixel(uint16_t pix) { return pix >= _start && pix < _start+_len; } - virtual bool isRgbw() { return Bus::isRgbw(_type); } - static bool isRgbw(uint8_t type) { - if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true; - if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true; - if (type == TYPE_NET_DDP_RGBW) return true; - return false; - } virtual bool hasRGB() { - if (_type == TYPE_WS2812_1CH || _type == TYPE_WS2812_WWA || _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ONOFF) return false; + if ((_type >= TYPE_WS2812_1CH && _type <= TYPE_WS2812_WWA) || _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ONOFF) return false; return true; } - virtual bool hasWhite() { - if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814 || _type == TYPE_WS2812_1CH || _type == TYPE_WS2812_WWA || - _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_4CH || _type == TYPE_ANALOG_5CH || _type == TYPE_NET_DDP_RGBW) return true; + virtual bool hasWhite() { return Bus::hasWhite(_type); } + static bool hasWhite(uint8_t type) { + if ((type >= TYPE_WS2812_1CH && type <= TYPE_WS2812_WWA) || type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true; // digital types with white channel + if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true; // analog types with white channel + if (type == TYPE_NET_DDP_RGBW) return true; // network types with white channel + return false; + } + virtual bool hasCCT() { + if (_type == TYPE_WS2812_2CH_X3 || _type == TYPE_WS2812_WWA || + _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_5CH) return true; return false; } static void setCCT(uint16_t cct) { _cct = cct; } - static void setCCTBlend(uint8_t b) { - if (b > 100) b = 100; - _cctBlend = (b * 127) / 100; - //compile-time limiter for hardware that can't power both white channels at max - #ifdef WLED_MAX_CCT_BLEND - if (_cctBlend > WLED_MAX_CCT_BLEND) _cctBlend = WLED_MAX_CCT_BLEND; - #endif - } - inline void setAWMode(uint8_t m) { if (m < 4) _autoWhiteMode = m; } - inline uint8_t getAWMode() { return _autoWhiteMode; } - inline static void setAutoWhiteMode(uint8_t m) { if (m < 4) _gAWM = m; else _gAWM = 255; } - inline static uint8_t getAutoWhiteMode() { return _gAWM; } + static void setCCTBlend(uint8_t b) { + if (b > 100) b = 100; + _cctBlend = (b * 127) / 100; + //compile-time limiter for hardware that can't power both white channels at max + #ifdef WLED_MAX_CCT_BLEND + if (_cctBlend > WLED_MAX_CCT_BLEND) _cctBlend = WLED_MAX_CCT_BLEND; + #endif + } + inline void setAutoWhiteMode(uint8_t m) { if (m < 5) _autoWhiteMode = m; } + inline uint8_t getAutoWhiteMode() { return _autoWhiteMode; } + inline static void setGlobalAWMode(uint8_t m) { if (m < 5) _gAWM = m; else _gAWM = AW_GLOBAL_DISABLED; } + inline static uint8_t getGlobalAWMode() { return _gAWM; } bool reversed = false; @@ -214,440 +163,151 @@ class Bus { bool _valid; bool _needsRefresh; uint8_t _autoWhiteMode; - static uint8_t _gAWM; // definition in FX_fcn.cpp - static int16_t _cct; // definition in FX_fcn.cpp - static uint8_t _cctBlend; // definition in FX_fcn.cpp + static uint8_t _gAWM; + static int16_t _cct; + static uint8_t _cctBlend; - uint32_t autoWhiteCalc(uint32_t c) { - uint8_t aWM = _autoWhiteMode; - if (_gAWM < 255) aWM = _gAWM; - if (aWM == RGBW_MODE_MANUAL_ONLY) return c; - uint8_t w = W(c); - //ignore auto-white calculation if w>0 and mode DUAL (DUAL behaves as BRIGHTER if w==0) - if (w > 0 && aWM == RGBW_MODE_DUAL) return c; - uint8_t r = R(c); - uint8_t g = G(c); - uint8_t b = B(c); - w = r < g ? (r < b ? r : b) : (g < b ? g : b); - if (aWM == RGBW_MODE_AUTO_ACCURATE) { r -= w; g -= w; b -= w; } //subtract w in ACCURATE mode - return RGBW32(r, g, b, w); - } + uint32_t autoWhiteCalc(uint32_t c); }; class BusDigital : public Bus { public: - BusDigital(BusConfig &bc, uint8_t nr, const ColorOrderMap &com) : Bus(bc.type, bc.start, bc.autoWhite), _colorOrderMap(com) { - if (!IS_DIGITAL(bc.type) || !bc.count) return; - if (!pinManager.allocatePin(bc.pins[0], true, PinOwner::BusDigital)) return; - _pins[0] = bc.pins[0]; - if (IS_2PIN(bc.type)) { - if (!pinManager.allocatePin(bc.pins[1], true, PinOwner::BusDigital)) { - cleanup(); return; - } - _pins[1] = bc.pins[1]; + BusDigital(BusConfig &bc, uint8_t nr, const ColorOrderMap &com); + + inline void show(); + + bool canShow(); + + void setBrightness(uint8_t b); + + void setStatusPixel(uint32_t c); + + void setPixelColor(uint16_t pix, uint32_t c); + + uint32_t getPixelColor(uint16_t pix); + + uint8_t getColorOrder() { + return _colorOrder; } - reversed = bc.reversed; - _needsRefresh = bc.refreshReq || bc.type == TYPE_TM1814; - _skip = bc.skipAmount; //sacrificial pixels - _len = bc.count + _skip; - _iType = PolyBus::getI(bc.type, _pins, nr); - if (_iType == I_NONE) return; - _busPtr = PolyBus::create(_iType, _pins, _len, nr); - _valid = (_busPtr != nullptr); - _colorOrder = bc.colorOrder; - DEBUG_PRINTF("%successfully inited strip %u (len %u) with type %u and pins %u,%u (itype %u)\n", _valid?"S":"Uns", nr, _len, bc.type, _pins[0],_pins[1],_iType); - }; - inline void show() { - PolyBus::show(_busPtr, _iType); - } - - inline bool canShow() { - return PolyBus::canShow(_busPtr, _iType); - } - - void setBrightness(uint8_t b) { - //Fix for turning off onboard LED breaking bus - #ifdef LED_BUILTIN - if (_bri == 0 && b > 0) { - if (_pins[0] == LED_BUILTIN || _pins[1] == LED_BUILTIN) PolyBus::begin(_busPtr, _iType, _pins); + uint16_t getLength() { + return _len - _skip; } - #endif - Bus::setBrightness(b); - PolyBus::setBrightness(_busPtr, _iType, b); - } - //If LEDs are skipped, it is possible to use the first as a status LED. - //TODO only show if no new show due in the next 50ms - void setStatusPixel(uint32_t c) { - if (_skip && canShow()) { - PolyBus::setPixelColor(_busPtr, _iType, 0, c, _colorOrderMap.getPixelColorOrder(_start, _colorOrder)); - PolyBus::show(_busPtr, _iType); + uint8_t getPins(uint8_t* pinArray); + + void setColorOrder(uint8_t colorOrder); + + uint8_t skippedLeds() { + return _skip; } - } - void setPixelColor(uint16_t pix, uint32_t c) { - if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814) c = autoWhiteCalc(c); - if (_cct >= 1900) c = colorBalanceFromKelvin(_cct, c); //color correction from CCT - if (reversed) pix = _len - pix -1; - else pix += _skip; - PolyBus::setPixelColor(_busPtr, _iType, pix, c, _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder)); - } + void reinit(); - uint32_t getPixelColor(uint16_t pix) { - if (reversed) pix = _len - pix -1; - else pix += _skip; - return PolyBus::getPixelColor(_busPtr, _iType, pix, _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder)); - } + void cleanup(); - inline uint8_t getColorOrder() { - return _colorOrder; - } - - uint16_t getLength() { - return _len - _skip; - } - - uint8_t getPins(uint8_t* pinArray) { - uint8_t numPins = IS_2PIN(_type) ? 2 : 1; - for (uint8_t i = 0; i < numPins; i++) pinArray[i] = _pins[i]; - return numPins; - } - - void setColorOrder(uint8_t colorOrder) { - // upper nibble contains W swap information - if ((colorOrder & 0x0F) > 5) return; - _colorOrder = colorOrder; - } - - inline uint8_t skippedLeds() { - return _skip; - } - - inline void reinit() { - PolyBus::begin(_busPtr, _iType, _pins); - } - - void cleanup() { - DEBUG_PRINTLN(F("Digital Cleanup.")); - PolyBus::cleanup(_busPtr, _iType); - _iType = I_NONE; - _valid = false; - _busPtr = nullptr; - pinManager.deallocatePin(_pins[1], PinOwner::BusDigital); - pinManager.deallocatePin(_pins[0], PinOwner::BusDigital); - } - - ~BusDigital() { - cleanup(); - } + ~BusDigital() { + cleanup(); + } private: - uint8_t _colorOrder = COL_ORDER_GRB; - uint8_t _pins[2] = {255, 255}; - uint8_t _iType = I_NONE; - uint8_t _skip = 0; - void * _busPtr = nullptr; - const ColorOrderMap &_colorOrderMap; + uint8_t _colorOrder = COL_ORDER_GRB; + uint8_t _pins[2] = {255, 255}; + uint8_t _iType = 0; //I_NONE; + uint8_t _skip = 0; + void * _busPtr = nullptr; + const ColorOrderMap &_colorOrderMap; }; class BusPwm : public Bus { public: - BusPwm(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { - _valid = false; - if (!IS_PWM(bc.type)) return; - uint8_t numPins = NUM_PWM_PINS(bc.type); + BusPwm(BusConfig &bc); - #ifdef ESP8266 - analogWriteRange(255); //same range as one RGB channel - analogWriteFreq(WLED_PWM_FREQ); - #else - _ledcStart = pinManager.allocateLedc(numPins); - if (_ledcStart == 255) { //no more free LEDC channels - deallocatePins(); return; - } - #endif + void setPixelColor(uint16_t pix, uint32_t c); - for (uint8_t i = 0; i < numPins; i++) { - uint8_t currentPin = bc.pins[i]; - if (!pinManager.allocatePin(currentPin, true, PinOwner::BusPwm)) { - deallocatePins(); return; - } - _pins[i] = currentPin; //store only after allocatePin() succeeds - #ifdef ESP8266 - pinMode(_pins[i], OUTPUT); - #else - ledcSetup(_ledcStart + i, WLED_PWM_FREQ, 8); - ledcAttachPin(_pins[i], _ledcStart + i); - #endif - } - reversed = bc.reversed; - _valid = true; - }; + //does no index check + uint32_t getPixelColor(uint16_t pix); - void setPixelColor(uint16_t pix, uint32_t c) { - if (pix != 0 || !_valid) return; //only react to first pixel - if (_type != TYPE_ANALOG_3CH) c = autoWhiteCalc(c); - if (_cct >= 1900 && (_type == TYPE_ANALOG_3CH || _type == TYPE_ANALOG_4CH)) { - c = colorBalanceFromKelvin(_cct, c); //color correction from CCT - } - uint8_t r = R(c); - uint8_t g = G(c); - uint8_t b = B(c); - uint8_t w = W(c); - uint8_t cct = 0; //0 - full warm white, 255 - full cold white - if (_cct > -1) { - if (_cct >= 1900) cct = (_cct - 1900) >> 5; - else if (_cct < 256) cct = _cct; - } else { - cct = (approximateKelvinFromRGB(c) - 1900) >> 5; + void show(); + + uint8_t getPins(uint8_t* pinArray); + + void cleanup() { + deallocatePins(); } - uint8_t ww, cw; - #ifdef WLED_USE_IC_CCT - ww = w; - cw = cct; - #else - //0 - linear (CCT 127 = 50% warm, 50% cold), 127 - additive CCT blending (CCT 127 = 100% warm, 100% cold) - if (cct < _cctBlend) ww = 255; - else ww = ((255-cct) * 255) / (255 - _cctBlend); - - if ((255-cct) < _cctBlend) cw = 255; - else cw = (cct * 255) / (255 - _cctBlend); - - ww = (w * ww) / 255; //brightness scaling - cw = (w * cw) / 255; - #endif - - switch (_type) { - case TYPE_ANALOG_1CH: //one channel (white), relies on auto white calculation - _data[0] = w; - break; - case TYPE_ANALOG_2CH: //warm white + cold white - _data[1] = cw; - _data[0] = ww; - break; - case TYPE_ANALOG_5CH: //RGB + warm white + cold white - _data[4] = cw; - w = ww; - case TYPE_ANALOG_4CH: //RGBW - _data[3] = w; - case TYPE_ANALOG_3CH: //standard dumb RGB - _data[0] = r; _data[1] = g; _data[2] = b; - break; + ~BusPwm() { + cleanup(); } - } - - //does no index check - uint32_t getPixelColor(uint16_t pix) { - if (!_valid) return 0; - return RGBW32(_data[0], _data[1], _data[2], _data[3]); - } - - void show() { - if (!_valid) return; - uint8_t numPins = NUM_PWM_PINS(_type); - for (uint8_t i = 0; i < numPins; i++) { - uint8_t scaled = (_data[i] * _bri) / 255; - if (reversed) scaled = 255 - scaled; - #ifdef ESP8266 - analogWrite(_pins[i], scaled); - #else - ledcWrite(_ledcStart + i, scaled); - #endif - } - } - - uint8_t getPins(uint8_t* pinArray) { - if (!_valid) return 0; - uint8_t numPins = NUM_PWM_PINS(_type); - for (uint8_t i = 0; i < numPins; i++) { - pinArray[i] = _pins[i]; - } - return numPins; - } - - void cleanup() { - deallocatePins(); - } - - ~BusPwm() { - cleanup(); - } private: - uint8_t _pins[5] = {255, 255, 255, 255, 255}; - uint8_t _data[5] = {0}; - #ifdef ARDUINO_ARCH_ESP32 - uint8_t _ledcStart = 255; - #endif - - void deallocatePins() { - uint8_t numPins = NUM_PWM_PINS(_type); - for (uint8_t i = 0; i < numPins; i++) { - pinManager.deallocatePin(_pins[i], PinOwner::BusPwm); - if (!pinManager.isPinOk(_pins[i])) continue; - #ifdef ESP8266 - digitalWrite(_pins[i], LOW); //turn off PWM interrupt - #else - if (_ledcStart < 16) ledcDetachPin(_pins[i]); - #endif - } + uint8_t _pins[5] = {255, 255, 255, 255, 255}; + uint8_t _data[5] = {0}; #ifdef ARDUINO_ARCH_ESP32 - pinManager.deallocateLedc(_ledcStart, numPins); + uint8_t _ledcStart = 255; #endif - } + + void deallocatePins(); }; class BusOnOff : public Bus { public: - BusOnOff(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { - _valid = false; - if (bc.type != TYPE_ONOFF) return; + BusOnOff(BusConfig &bc); - uint8_t currentPin = bc.pins[0]; - if (!pinManager.allocatePin(currentPin, true, PinOwner::BusOnOff)) { - return; + void setPixelColor(uint16_t pix, uint32_t c); + + uint32_t getPixelColor(uint16_t pix); + + void show(); + + uint8_t getPins(uint8_t* pinArray); + + void cleanup() { + pinManager.deallocatePin(_pin, PinOwner::BusOnOff); } - _pin = currentPin; //store only after allocatePin() succeeds - pinMode(_pin, OUTPUT); - reversed = bc.reversed; - _valid = true; - }; - void setPixelColor(uint16_t pix, uint32_t c) { - if (pix != 0 || !_valid) return; //only react to first pixel - c = autoWhiteCalc(c); - uint8_t r = R(c); - uint8_t g = G(c); - uint8_t b = B(c); - uint8_t w = W(c); - - _data = bool((r+g+b+w) && _bri) ? 0xFF : 0; - } - - uint32_t getPixelColor(uint16_t pix) { - if (!_valid) return 0; - return RGBW32(_data, _data, _data, _data); - } - - void show() { - if (!_valid) return; - digitalWrite(_pin, reversed ? !(bool)_data : (bool)_data); - } - - uint8_t getPins(uint8_t* pinArray) { - if (!_valid) return 0; - pinArray[0] = _pin; - return 1; - } - - void cleanup() { - pinManager.deallocatePin(_pin, PinOwner::BusOnOff); - } - - ~BusOnOff() { - cleanup(); - } + ~BusOnOff() { + cleanup(); + } private: - uint8_t _pin = 255; - uint8_t _data = 0; + uint8_t _pin = 255; + uint8_t _data = 0; }; class BusNetwork : public Bus { public: - BusNetwork(BusConfig &bc) : Bus(bc.type, bc.start, bc.autoWhite) { - _valid = false; -// switch (bc.type) { -// case TYPE_NET_ARTNET_RGB: -// _rgbw = false; -// _UDPtype = 2; -// break; -// case TYPE_NET_E131_RGB: -// _rgbw = false; -// _UDPtype = 1; -// break; -// case TYPE_NET_DDP_RGB: -// _rgbw = false; -// _UDPtype = 0; -// break; -// default: // TYPE_NET_DDP_RGB / TYPE_NET_DDP_RGBW - _rgbw = bc.type == TYPE_NET_DDP_RGBW; - _UDPtype = 0; -// break; -// } - _UDPchannels = _rgbw ? 4 : 3; - _data = (byte *)malloc(bc.count * _UDPchannels); - if (_data == nullptr) return; - memset(_data, 0, bc.count * _UDPchannels); - _len = bc.count; - _client = IPAddress(bc.pins[0],bc.pins[1],bc.pins[2],bc.pins[3]); - _broadcastLock = false; - _valid = true; - }; + BusNetwork(BusConfig &bc); - bool hasRGB() { return true; } - bool hasWhite() { return _rgbw; } + bool hasRGB() { return true; } + bool hasWhite() { return _rgbw; } - void setPixelColor(uint16_t pix, uint32_t c) { - if (!_valid || pix >= _len) return; - if (isRgbw()) c = autoWhiteCalc(c); - if (_cct >= 1900) c = colorBalanceFromKelvin(_cct, c); //color correction from CCT - uint16_t offset = pix * _UDPchannels; - _data[offset] = R(c); - _data[offset+1] = G(c); - _data[offset+2] = B(c); - if (_rgbw) _data[offset+3] = W(c); - } + void setPixelColor(uint16_t pix, uint32_t c); - uint32_t getPixelColor(uint16_t pix) { - if (!_valid || pix >= _len) return 0; - uint16_t offset = pix * _UDPchannels; - return RGBW32(_data[offset], _data[offset+1], _data[offset+2], _rgbw ? (_data[offset+3] << 24) : 0); - } + uint32_t getPixelColor(uint16_t pix); - void show() { - if (!_valid || !canShow()) return; - _broadcastLock = true; - realtimeBroadcast(_UDPtype, _client, _len, _data, _bri, _rgbw); - _broadcastLock = false; - } + void show(); - inline bool canShow() { - // this should be a return value from UDP routine if it is still sending data out - return !_broadcastLock; - } - - uint8_t getPins(uint8_t* pinArray) { - for (uint8_t i = 0; i < 4; i++) { - pinArray[i] = _client[i]; + bool canShow() { + // this should be a return value from UDP routine if it is still sending data out + return !_broadcastLock; } - return 4; - } - inline bool isRgbw() { - return _rgbw; - } + uint8_t getPins(uint8_t* pinArray); - inline uint16_t getLength() { - return _len; - } + uint16_t getLength() { + return _len; + } - void cleanup() { - _type = I_NONE; - _valid = false; - if (_data != nullptr) free(_data); - _data = nullptr; - } + void cleanup(); - ~BusNetwork() { - cleanup(); - } + ~BusNetwork() { + cleanup(); + } private: IPAddress _client; @@ -661,154 +321,56 @@ class BusNetwork : public Bus { class BusManager { public: - BusManager() {}; + BusManager() {}; - //utility to get the approx. memory usage of a given BusConfig - static uint32_t memUsage(BusConfig &bc) { - uint8_t type = bc.type; - uint16_t len = bc.count + bc.skipAmount; - if (type > 15 && type < 32) { - #ifdef ESP8266 - if (bc.pins[0] == 3) { //8266 DMA uses 5x the mem - if (type > 29) return len*20; //RGBW - return len*15; - } - if (type > 29) return len*4; //RGBW - return len*3; - #else //ESP32 RMT uses double buffer? - if (type > 29) return len*8; //RGBW - return len*6; - #endif + //utility to get the approx. memory usage of a given BusConfig + static uint32_t memUsage(BusConfig &bc); + + int add(BusConfig &bc); + + //do not call this method from system context (network callback) + void removeAll(); + + void show(); + + void setStatusPixel(uint32_t c); + + void IRAM_ATTR setPixelColor(uint16_t pix, uint32_t c, int16_t cct=-1); + + void setBrightness(uint8_t b); + + void setSegmentCCT(int16_t cct, bool allowWBCorrection = false); + + uint32_t getPixelColor(uint16_t pix); + + bool canAllShow(); + + Bus* getBus(uint8_t busNr); + + //semi-duplicate of strip.getLengthTotal() (though that just returns strip._length, calculated in finalizeInit()) + uint16_t getTotalLength(); + + inline void updateColorOrderMap(const ColorOrderMap &com) { + memcpy(&colorOrderMap, &com, sizeof(ColorOrderMap)); } - if (type > 31 && type < 48) return 5; - if (type == 44 || type == 45) return len*4; //RGBW - return len*3; //RGB - } -/* - int add(BusConfig &bc); - void removeAll(); //do not call this method from system context (network callback) - void setStatusPixel(uint32_t c); - void setPixelColor(uint16_t pix, uint32_t c, int16_t cct=-1); - void setBrightness(uint8_t b); - void setSegmentCCT(int16_t cct, bool allowWBCorrection = false); - uint32_t getPixelColor(uint16_t pix); - bool canAllShow(); - Bus* getBus(uint8_t busNr); - void show(); - uint16_t getTotalLength(); //semi-duplicate of strip.getLengthTotal() (though that just returns strip._length, calculated in finalizeInit()) -*/ - // the following functions are inlined by compiler since they are defined within class definition - // they should be placed in cpp file instead - int add(BusConfig &bc) { - if (getNumBusses() - getNumVirtualBusses() >= WLED_MAX_BUSSES) return -1; - if (bc.type >= TYPE_NET_DDP_RGB && bc.type < 96) { - busses[numBusses] = new BusNetwork(bc); - } else if (IS_DIGITAL(bc.type)) { - busses[numBusses] = new BusDigital(bc, numBusses, colorOrderMap); - } else if (bc.type == TYPE_ONOFF) { - busses[numBusses] = new BusOnOff(bc); - } else { - busses[numBusses] = new BusPwm(bc); + inline const ColorOrderMap& getColorOrderMap() const { + return colorOrderMap; } - return numBusses++; - } - //do not call this method from system context (network callback) - void removeAll() { - DEBUG_PRINTLN(F("Removing all.")); - //prevents crashes due to deleting busses while in use. - while (!canAllShow()) yield(); - for (uint8_t i = 0; i < numBusses; i++) delete busses[i]; - numBusses = 0; - } - - void show() { - for (uint8_t i = 0; i < numBusses; i++) { - busses[i]->show(); + inline uint8_t getNumBusses() { + return numBusses; } - } - - void setStatusPixel(uint32_t c) { - for (uint8_t i = 0; i < numBusses; i++) { - busses[i]->setStatusPixel(c); - } - } - - void IRAM_ATTR setPixelColor(uint16_t pix, uint32_t c, int16_t cct=-1) { - for (uint8_t i = 0; i < numBusses; i++) { - Bus* b = busses[i]; - uint16_t bstart = b->getStart(); - if (pix < bstart || pix >= bstart + b->getLength()) continue; - busses[i]->setPixelColor(pix - bstart, c); - } - } - - void setBrightness(uint8_t b) { - for (uint8_t i = 0; i < numBusses; i++) { - busses[i]->setBrightness(b); - } - } - - void setSegmentCCT(int16_t cct, bool allowWBCorrection = false) { - if (cct > 255) cct = 255; - if (cct >= 0) { - //if white balance correction allowed, save as kelvin value instead of 0-255 - if (allowWBCorrection) cct = 1900 + (cct << 5); - } else cct = -1; - Bus::setCCT(cct); - } - - uint32_t getPixelColor(uint16_t pix) { - for (uint8_t i = 0; i < numBusses; i++) { - Bus* b = busses[i]; - uint16_t bstart = b->getStart(); - if (pix < bstart || pix >= bstart + b->getLength()) continue; - return b->getPixelColor(pix - bstart); - } - return 0; - } - - bool canAllShow() { - for (uint8_t i = 0; i < numBusses; i++) { - if (!busses[i]->canShow()) return false; - } - return true; - } - - Bus* getBus(uint8_t busNr) { - if (busNr >= numBusses) return nullptr; - return busses[busNr]; - } - - //semi-duplicate of strip.getLengthTotal() (though that just returns strip._length, calculated in finalizeInit()) - uint16_t getTotalLength() { - uint16_t len = 0; - for (uint8_t i=0; igetLength(); - return len; - } - - inline void updateColorOrderMap(const ColorOrderMap &com) { - memcpy(&colorOrderMap, &com, sizeof(ColorOrderMap)); - } - - inline const ColorOrderMap& getColorOrderMap() const { - return colorOrderMap; - } - - inline uint8_t getNumBusses() { - return numBusses; - } private: - uint8_t numBusses = 0; - Bus* busses[WLED_MAX_BUSSES+WLED_MIN_VIRTUAL_BUSSES]; - ColorOrderMap colorOrderMap; + uint8_t numBusses = 0; + Bus* busses[WLED_MAX_BUSSES+WLED_MIN_VIRTUAL_BUSSES]; + ColorOrderMap colorOrderMap; - inline uint8_t getNumVirtualBusses() { - int j = 0; - for (int i=0; igetType() >= TYPE_NET_DDP_RGB && busses[i]->getType() < 96) j++; - return j; - } + inline uint8_t getNumVirtualBusses() { + int j = 0; + for (int i=0; igetType() >= TYPE_NET_DDP_RGB && busses[i]->getType() < 96) j++; + return j; + } }; -#endif +#endif \ No newline at end of file diff --git a/wled00/bus_wrapper.h b/wled00/bus_wrapper.h index 323f75af..bbf38d2e 100644 --- a/wled00/bus_wrapper.h +++ b/wled00/bus_wrapper.h @@ -182,7 +182,12 @@ #endif //APA102 -#define B_HS_DOT_3 NeoPixelBrightnessBus //hardware SPI +#ifdef WLED_USE_ETHERNET +// fix for #2542 (by @BlackBird77) +#define B_HS_DOT_3 NeoPixelBrightnessBus //hardware HSPI with DMA (ESP32 only) +#else +#define B_HS_DOT_3 NeoPixelBrightnessBus //hardware HSPI +#endif #define B_SS_DOT_3 NeoPixelBrightnessBus //soft SPI //LPD8806 @@ -894,6 +899,8 @@ class PolyBus { uint8_t offset = pins[0] -1; //for driver: 0 = uart0, 1 = uart1, 2 = dma, 3 = bitbang if (offset > 3) offset = 3; switch (busType) { + case TYPE_WS2812_1CH_X3: + case TYPE_WS2812_2CH_X3: case TYPE_WS2812_RGB: case TYPE_WS2812_WWA: return I_8266_U0_NEO_3 + offset; @@ -926,6 +933,8 @@ class PolyBus { if (num > 7) offset = num -7; #endif switch (busType) { + case TYPE_WS2812_1CH_X3: + case TYPE_WS2812_2CH_X3: case TYPE_WS2812_RGB: case TYPE_WS2812_WWA: return I_32_RN_NEO_3 + offset; diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index a547642e..f1d1e878 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -84,7 +84,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { uint8_t autoWhiteMode = RGBW_MODE_MANUAL_ONLY; CJSON(strip.ablMilliampsMax, hw_led[F("maxpwr")]); CJSON(strip.milliampsPerLed, hw_led[F("ledma")]); - Bus::setAutoWhiteMode(hw_led[F("rgbwm")] | 255); + Bus::setGlobalAWMode(hw_led[F("rgbwm")] | 255); CJSON(correctWB, hw_led["cct"]); CJSON(cctFromRgb, hw_led[F("cr")]); CJSON(strip.cctBlending, hw_led[F("cb")]); @@ -97,12 +97,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { JsonObject matrix = hw_led[F("matrix")]; if (!matrix.isNull()) { strip.isMatrix = true; - CJSON(strip.panels, matrix[F("mpc")]); - CJSON(strip.matrix.bottomStart, matrix[F("pb")]); - CJSON(strip.matrix.rightStart, matrix[F("pr")]); - CJSON(strip.matrix.vertical, matrix[F("pv")]); - CJSON(strip.matrix.serpentine, matrix["ps"]); - + CJSON(strip.panels, matrix[F("mpc")]); strip.panel.clear(); JsonArray panels = matrix[F("panels")]; uint8_t s = 0; @@ -130,8 +125,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { p.options = 0; strip.panel.push_back(p); } - - strip.setUpMatrix(); + // cannot call strip.setUpMatrix() here due to already locked JSON buffer } #endif @@ -333,18 +327,27 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { CJSON(strip.paletteBlend, light[F("pal-mode")]); CJSON(autoSegments, light[F("aseg")]); + CJSON(gammaCorrectVal, light["gc"]["val"]); // default 2.8 float light_gc_bri = light["gc"]["bri"]; - float light_gc_col = light["gc"]["col"]; // 2.8 - if (light_gc_bri > 1.5) gammaCorrectBri = true; - else if (light_gc_bri > 0.5) gammaCorrectBri = false; - if (light_gc_col > 1.5) gammaCorrectCol = true; - else if (light_gc_col > 0.5) gammaCorrectCol = false; + float light_gc_col = light["gc"]["col"]; + if (light_gc_bri > 1.0f) gammaCorrectBri = true; + else gammaCorrectBri = false; + if (light_gc_col > 1.0f) gammaCorrectCol = true; + else gammaCorrectCol = false; + if (gammaCorrectVal > 1.0f && gammaCorrectVal <= 3) { + if (gammaCorrectVal != 2.8f) calcGammaTable(gammaCorrectVal); + } else { + gammaCorrectVal = 1.0f; // no gamma correction + gammaCorrectBri = false; + gammaCorrectCol = false; + } JsonObject light_tr = light["tr"]; CJSON(fadeTransition, light_tr["mode"]); int tdd = light_tr["dur"] | -1; if (tdd >= 0) transitionDelay = transitionDelayDefault = tdd * 100; CJSON(strip.paletteFade, light_tr["pal"]); + CJSON(randomPaletteChangeTime, light_tr[F("rpc")]); JsonObject light_nl = light["nl"]; CJSON(nightlightMode, light_nl["mode"]); @@ -406,6 +409,8 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { if (!DMXAddress || DMXAddress > 510) DMXAddress = 1; CJSON(DMXSegmentSpacing, if_live_dmx[F("dss")]); if (DMXSegmentSpacing > 150) DMXSegmentSpacing = 0; + CJSON(e131Priority, if_live_dmx[F("e131prio")]); + if (e131Priority > 200) e131Priority = 200; CJSON(DMXMode, if_live_dmx["mode"]); tdd = if_live[F("timeout")] | -1; @@ -421,17 +426,6 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { CJSON(alexaNumPresets, interfaces["va"]["p"]); -#ifndef WLED_DISABLE_BLYNK - const char* apikey = interfaces["blynk"][F("token")] | "Hidden"; - tdd = strnlen(apikey, 36); - if (tdd > 20 || tdd == 0) - getStringFromJson(blynkApiKey, apikey, 36); //normally not present due to security - - JsonObject if_blynk = interfaces["blynk"]; - getStringFromJson(blynkHost, if_blynk[F("host")], 33); - CJSON(blynkPort, if_blynk["port"]); -#endif - #ifdef WLED_ENABLE_MQTT JsonObject if_mqtt = interfaces["mqtt"]; CJSON(mqttEnabled, if_mqtt["en"]); @@ -700,7 +694,7 @@ void serializeConfig() { hw_led[F("cr")] = cctFromRgb; hw_led[F("cb")] = strip.cctBlending; hw_led["fps"] = strip.getTargetFps(); - hw_led[F("rgbwm")] = Bus::getAutoWhiteMode(); // global override + hw_led[F("rgbwm")] = Bus::getGlobalAWMode(); // global auto white mode override hw_led[F("ld")] = strip.useLedsArray; #ifndef WLED_DISABLE_2D @@ -708,11 +702,6 @@ void serializeConfig() { if (strip.isMatrix) { JsonObject matrix = hw_led.createNestedObject(F("matrix")); matrix[F("mpc")] = strip.panels; - matrix[F("pb")] = strip.matrix.bottomStart; - matrix[F("pr")] = strip.matrix.rightStart; - matrix[F("pv")] = strip.matrix.vertical; - matrix["ps"] = strip.matrix.serpentine; - JsonArray panels = matrix.createNestedArray(F("panels")); for (uint8_t i=0; iskippedLeds(); ins["type"] = bus->getType() & 0x7F; ins["ref"] = bus->isOffRefreshRequired(); - ins[F("rgbwm")] = bus->getAWMode(); + ins[F("rgbwm")] = bus->getAutoWhiteMode(); } JsonArray hw_com = hw.createNestedArray(F("com")); @@ -810,13 +799,15 @@ void serializeConfig() { light[F("aseg")] = autoSegments; JsonObject light_gc = light.createNestedObject("gc"); - light_gc["bri"] = (gammaCorrectBri) ? 2.8 : 1.0; - light_gc["col"] = (gammaCorrectCol) ? 2.8 : 1.0; + light_gc["bri"] = (gammaCorrectBri) ? gammaCorrectVal : 1.0f; // keep compatibility + light_gc["col"] = (gammaCorrectCol) ? gammaCorrectVal : 1.0f; // keep compatibility + light_gc["val"] = gammaCorrectVal; JsonObject light_tr = light.createNestedObject("tr"); light_tr["mode"] = fadeTransition; light_tr["dur"] = transitionDelayDefault / 100; light_tr["pal"] = strip.paletteFade; + light_tr[F("rpc")] = randomPaletteChangeTime; JsonObject light_nl = light.createNestedObject("nl"); light_nl["mode"] = nightlightMode; @@ -865,6 +856,7 @@ void serializeConfig() { JsonObject if_live_dmx = if_live.createNestedObject("dmx"); if_live_dmx[F("uni")] = e131Universe; if_live_dmx[F("seqskip")] = e131SkipOutOfSequence; + if_live_dmx[F("e131prio")] = e131Priority; if_live_dmx[F("addr")] = DMXAddress; if_live_dmx[F("dss")] = DMXSegmentSpacing; if_live_dmx["mode"] = DMXMode; @@ -883,13 +875,6 @@ void serializeConfig() { if_va["p"] = alexaNumPresets; -#ifndef WLED_DISABLE_BLYNK - JsonObject if_blynk = interfaces.createNestedObject("blynk"); - if_blynk[F("token")] = strlen(blynkApiKey) ? "Hidden":""; - if_blynk[F("host")] = blynkHost; - if_blynk["port"] = blynkPort; -#endif - #ifdef WLED_ENABLE_MQTT JsonObject if_mqtt = interfaces.createNestedObject("mqtt"); if_mqtt["en"] = mqttEnabled; @@ -1020,13 +1005,6 @@ bool deserializeConfigSec() { JsonObject interfaces = doc["if"]; -#ifndef WLED_DISABLE_BLYNK - const char* apikey = interfaces["blynk"][F("token")] | "Hidden"; - int tdd = strnlen(apikey, 36); - if (tdd > 20 || tdd == 0) - getStringFromJson(blynkApiKey, apikey, 36); -#endif - #ifdef WLED_ENABLE_MQTT JsonObject if_mqtt = interfaces["mqtt"]; getStringFromJson(mqttPass, if_mqtt["psk"], 65); @@ -1065,10 +1043,6 @@ void serializeConfigSec() { ap["psk"] = apPass; JsonObject interfaces = doc.createNestedObject("if"); -#ifndef WLED_DISABLE_BLYNK - JsonObject if_blynk = interfaces.createNestedObject("blynk"); - if_blynk[F("token")] = blynkApiKey; -#endif #ifdef WLED_ENABLE_MQTT JsonObject if_mqtt = interfaces.createNestedObject("mqtt"); if_mqtt["psk"] = mqttPass; diff --git a/wled00/colors.cpp b/wled00/colors.cpp index 5ab8a6f3..9874c314 100644 --- a/wled00/colors.cpp +++ b/wled00/colors.cpp @@ -57,39 +57,42 @@ void setRandomColor(byte* rgb) void colorHStoRGB(uint16_t hue, byte sat, byte* rgb) //hue, sat to rgb { - float h = ((float)hue)/65535.0; - float s = ((float)sat)/255.0; - byte i = floor(h*6); - float f = h * 6-i; - float p = 255 * (1-s); - float q = 255 * (1-f*s); - float t = 255 * (1-(1-f)*s); + float h = ((float)hue)/65535.0f; + float s = ((float)sat)/255.0f; + int i = floorf(h*6); + float f = h * 6.0f - i; + int p = int(255.0f * (1.0f-s)); + int q = int(255.0f * (1.0f-f*s)); + int t = int(255.0f * (1.0f-(1.0f-f)*s)); + p = constrain(p, 0, 255); + q = constrain(q, 0, 255); + t = constrain(t, 0, 255); switch (i%6) { - case 0: rgb[0]=255,rgb[1]=t,rgb[2]=p;break; - case 1: rgb[0]=q,rgb[1]=255,rgb[2]=p;break; - case 2: rgb[0]=p,rgb[1]=255,rgb[2]=t;break; - case 3: rgb[0]=p,rgb[1]=q,rgb[2]=255;break; - case 4: rgb[0]=t,rgb[1]=p,rgb[2]=255;break; - case 5: rgb[0]=255,rgb[1]=p,rgb[2]=q; + case 0: rgb[0]=255,rgb[1]=t, rgb[2]=p; break; + case 1: rgb[0]=q, rgb[1]=255,rgb[2]=p; break; + case 2: rgb[0]=p, rgb[1]=255,rgb[2]=t; break; + case 3: rgb[0]=p, rgb[1]=q, rgb[2]=255;break; + case 4: rgb[0]=t, rgb[1]=p, rgb[2]=255;break; + case 5: rgb[0]=255,rgb[1]=p, rgb[2]=q; break; } } //get RGB values from color temperature in K (https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html) void colorKtoRGB(uint16_t kelvin, byte* rgb) //white spectrum to rgb, calc { - float r = 0, g = 0, b = 0; - float temp = kelvin / 100; - if (temp <= 66) { + int r = 0, g = 0, b = 0; + float temp = kelvin / 100.0f; + if (temp <= 66.0f) { r = 255; - g = round(99.4708025861 * log(temp) - 161.1195681661); - if (temp <= 19) { + g = roundf(99.4708025861f * logf(temp) - 161.1195681661f); + if (temp <= 19.0f) { b = 0; } else { - b = round(138.5177312231 * log((temp - 10)) - 305.0447927307); + b = roundf(138.5177312231f * logf((temp - 10.0f)) - 305.0447927307f); } } else { - r = round(329.698727446 * pow((temp - 60), -0.1332047592)); - g = round(288.1221695283 * pow((temp - 60), -0.0755148492)); + r = roundf(329.698727446f * powf((temp - 60.0f), -0.1332047592f)); + g = roundf(288.1221695283f * powf((temp - 60.0f), -0.0755148492f)); b = 255; } //g += 12; //mod by Aircoookie, a bit less accurate but visibly less pinkish @@ -147,9 +150,9 @@ void colorXYtoRGB(float x, float y, byte* rgb) //coordinates to rgb (https://www b = 1.0f; } // Apply gamma correction - r = r <= 0.0031308f ? 12.92f * r : (1.0f + 0.055f) * pow(r, (1.0f / 2.4f)) - 0.055f; - g = g <= 0.0031308f ? 12.92f * g : (1.0f + 0.055f) * pow(g, (1.0f / 2.4f)) - 0.055f; - b = b <= 0.0031308f ? 12.92f * b : (1.0f + 0.055f) * pow(b, (1.0f / 2.4f)) - 0.055f; + r = r <= 0.0031308f ? 12.92f * r : (1.0f + 0.055f) * powf(r, (1.0f / 2.4f)) - 0.055f; + g = g <= 0.0031308f ? 12.92f * g : (1.0f + 0.055f) * powf(g, (1.0f / 2.4f)) - 0.055f; + b = b <= 0.0031308f ? 12.92f * b : (1.0f + 0.055f) * powf(b, (1.0f / 2.4f)) - 0.055f; if (r > b && r > g) { // red is biggest @@ -173,9 +176,9 @@ void colorXYtoRGB(float x, float y, byte* rgb) //coordinates to rgb (https://www b = 1.0f; } } - rgb[0] = 255.0*r; - rgb[1] = 255.0*g; - rgb[2] = 255.0*b; + rgb[0] = byte(255.0f*r); + rgb[1] = byte(255.0f*g); + rgb[2] = byte(255.0f*b); } void colorRGBtoXY(byte* rgb, float* xy) //rgb to coordinates (https://www.developers.meethue.com/documentation/color-conversions-rgb-xy) @@ -242,35 +245,13 @@ float maxf (float v, float w) return v; } -/* -uint32_t colorRGBtoRGBW(uint32_t c) -{ - byte rgb[4]; - rgb[0] = R(c); - rgb[1] = G(c); - rgb[2] = B(c); - rgb[3] = W(c); - colorRGBtoRGBW(rgb); - return RGBW32(rgb[0], rgb[1], rgb[2], rgb[3]); -} - -void colorRGBtoRGBW(byte* rgb) //rgb to rgbw (http://codewelt.com/rgbw). (RGBW_MODE_LEGACY) -{ - float low = minf(rgb[0],minf(rgb[1],rgb[2])); - float high = maxf(rgb[0],maxf(rgb[1],rgb[2])); - if (high < 0.1f) return; - float sat = 100.0f * ((high - low) / high); // maximum saturation is 100 (corrected from 255) - rgb[3] = (byte)((255.0f - sat) / 255.0f * (rgb[0] + rgb[1] + rgb[2]) / 3); -} -*/ - -byte correctionRGB[4] = {0,0,0,0}; -uint16_t lastKelvin = 0; - // adjust RGB values based on color temperature in K (range [2800-10200]) (https://en.wikipedia.org/wiki/Color_balance) +// called from bus manager when color correction is enabled! uint32_t colorBalanceFromKelvin(uint16_t kelvin, uint32_t rgb) { //remember so that slow colorKtoRGB() doesn't have to run for every setPixelColor() + static byte correctionRGB[4] = {0,0,0,0}; + static uint16_t lastKelvin = 0; if (lastKelvin != kelvin) colorKtoRGB(kelvin, correctionRGB); // convert Kelvin to RGB lastKelvin = kelvin; byte rgbw[4]; diff --git a/wled00/const.h b/wled00/const.h index cb2353f2..cab89a96 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -79,6 +79,17 @@ #define WLED_MAX_COLOR_ORDER_MAPPINGS 10 #endif +#if defined(WLED_MAX_LEDMAPS) && (WLED_MAX_LEDMAPS > 32 || WLED_MAX_LEDMAPS < 10) + #undef WLED_MAX_LEDMAPS +#endif +#ifndef WLED_MAX_LEDMAPS + #ifdef ESP8266 + #define WLED_MAX_LEDMAPS 10 + #else + #define WLED_MAX_LEDMAPS 16 + #endif +#endif + //Usermod IDs #define USERMOD_ID_RESERVED 0 //Unused. Might indicate no usermod present #define USERMOD_ID_UNSPECIFIED 1 //Default value for a general user mod that does not specify a custom ID @@ -120,6 +131,7 @@ #define USERMOD_ID_SD_CARD 37 //Usermod "usermod_sd_card.h" #define USERMOD_ID_PWM_OUTPUTS 38 //Usermod "usermod_pwm_outputs.h #define USERMOD_ID_SHT 39 //Usermod "usermod_sht.h +#define USERMOD_ID_KLIPPER 40 // Usermod Klipper percentage //Access point behavior #define AP_BEHAVIOR_BOOT_NO_CONN 0 //Open AP when no connection after boot @@ -137,17 +149,19 @@ #define CALL_MODE_FX_CHANGED 6 //no longer used #define CALL_MODE_HUE 7 #define CALL_MODE_PRESET_CYCLE 8 -#define CALL_MODE_BLYNK 9 +#define CALL_MODE_BLYNK 9 //no longer used #define CALL_MODE_ALEXA 10 #define CALL_MODE_WS_SEND 11 //special call mode, not for notifier, updates websocket only #define CALL_MODE_BUTTON_PRESET 12 //button/IR JSON preset/macro //RGB to RGBW conversion mode -#define RGBW_MODE_MANUAL_ONLY 0 //No automatic white channel calculation. Manual white channel slider -#define RGBW_MODE_AUTO_BRIGHTER 1 //New algorithm. Adds as much white as the darkest RGBW channel -#define RGBW_MODE_AUTO_ACCURATE 2 //New algorithm. Adds as much white as the darkest RGBW channel and subtracts this amount from each RGB channel -#define RGBW_MODE_DUAL 3 //Manual slider + auto calculation. Automatically calculates only if manual slider is set to off (0) -#define RGBW_MODE_LEGACY 4 //Old floating algorithm. Too slow for realtime and palette support +#define RGBW_MODE_MANUAL_ONLY 0 // No automatic white channel calculation. Manual white channel slider +#define RGBW_MODE_AUTO_BRIGHTER 1 // New algorithm. Adds as much white as the darkest RGBW channel +#define RGBW_MODE_AUTO_ACCURATE 2 // New algorithm. Adds as much white as the darkest RGBW channel and subtracts this amount from each RGB channel +#define RGBW_MODE_DUAL 3 // Manual slider + auto calculation. Automatically calculates only if manual slider is set to off (0) +#define RGBW_MODE_MAX 4 // Sets white to the value of the brightest RGB channel (good for white-only LEDs without any RGB) +//#define RGBW_MODE_LEGACY 4 // Old floating algorithm. Too slow for realtime and palette support (unused) +#define AW_GLOBAL_DISABLED 255 // Global auto white mode override disabled. Per-bus setting is used //realtime modes #define REALTIME_MODE_INACTIVE 0 @@ -193,7 +207,9 @@ #define TYPE_NONE 0 //light is not configured #define TYPE_RESERVED 1 //unused. Might indicate a "virtual" light //Digital types (data pin only) (16-31) -#define TYPE_WS2812_1CH 20 //white-only chips +#define TYPE_WS2812_1CH 18 //white-only chips (1 channel per IC) (unused) +#define TYPE_WS2812_1CH_X3 19 //white-only chips (3 channels per IC) +#define TYPE_WS2812_2CH_X3 20 //CCT chips (1st IC controls WW + CW of 1st zone and CW of 2nd zone, 2nd IC controls WW of 2nd zone and WW + CW of 3rd zone) #define TYPE_WS2812_WWA 21 //amber + warm + cold white #define TYPE_WS2812_RGB 22 #define TYPE_GS8608 23 //same driver as WS2812, but will require signal 2x per second (else displays test pattern) @@ -290,6 +306,11 @@ //Playlist option byte #define PL_OPTION_SHUFFLE 0x01 +// Segment capability byte +#define SEG_CAPABILITY_RGB 0x01 +#define SEG_CAPABILITY_W 0x02 +#define SEG_CAPABILITY_CCT 0x04 + // WLED Error modes #define ERR_NONE 0 // All good :) #define ERR_EEP_COMMIT 2 // Could not commit to EEPROM (wrong flash layout?) @@ -383,8 +404,8 @@ #define JSON_BUFFER_SIZE 24576 #endif -//#define MIN_HEAP_SIZE (MAX_LED_MEMORY+2048) -#define MIN_HEAP_SIZE (8192) +//#define MIN_HEAP_SIZE (8k for AsyncWebServer) +#define MIN_HEAP_SIZE 8192 // Maximum size of node map (list of other WLED instances) #ifdef ESP8266 diff --git a/wled00/data/index.css b/wled00/data/index.css index 0908ed86..e7bd22c2 100644 --- a/wled00/data/index.css +++ b/wled00/data/index.css @@ -392,12 +392,16 @@ button { } .slider { - background-color: var(--c-2); max-width: 300px; - min-width: 280px; + min-width: 260px; margin: 0 auto; /* add 5px; if you want some vertical space but looks ugly */ border-radius: 24px; position: relative; + padding-bottom: 2px; +} + +#sliders .slider, #info .slider { + background-color: var(--c-2); } .filter, .option { @@ -425,14 +429,14 @@ button { box-shadow: 4px 4px 10px 4px var(--c-1); color: var(--c-f); text-align: center; - padding: 5px 10px; + padding: 4px 8px; border-radius: 6px; /* Position the tooltip text */ width: 160px; position: absolute; z-index: 1; - bottom: 100%; + bottom: 80%; left: 50%; margin-left: -92px; @@ -647,7 +651,7 @@ img { #wbal .sliderdisplay { background: linear-gradient(90deg, #ff8f1f 0%, #fff 50%, #cbdbff); } /* wrapper divs hidden by default */ -#rgbwrap, #kwrap, #wwrap, #wbal, #qcs-w, #hexw { +#rgbwrap, #swrap, #hwrap, #kwrap, #wwrap, #wbal, #qcs-w, #hexw { display: none; } @@ -731,7 +735,11 @@ input[type=range]::-moz-range-thumb { #Colors .sliderwrap { width: 260px; - margin: 10px 0 0; + margin: 4px 0 0; +} + +#Colors { + padding-top: 18px; } /* Dynamically hide brightness slider label */ @@ -744,13 +752,14 @@ input[type=range]::-moz-range-thumb { margin-top: var(--bmt); } -#picker, #rgbwrap, #kwrap, #wwrap, #wbal, #vwrap, #qcs-w, #hexw, #pall, #ledmap { +#picker, #qcs-w, #hexw, #pall, #ledmap { margin: 0 auto; width: 260px; + /*background-color: unset;*/ } #picker { - margin-top: 10px; + margin-top: -10px !important; } /* buttons */ @@ -1409,6 +1418,9 @@ TD .checkmark, TD .radiomark { .expanded { display: inline-block !important; } +.expanded .segin.hide, .expanded .presin.hide, .expanded .sbs.hide { + display: none !important; +} .m6 { margin: 6px 0; diff --git a/wled00/data/index.htm b/wled00/data/index.htm index 2553ba23..050ea5db 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -88,68 +88,73 @@
-
- +
-

+
+ Hue
-
- +
-

+
+ Saturation
-
- +
-

+
+ Value/Brightness
-
- +
+ Kelvin/Temperature
-

RGB color

-
+ +
+ Red channel
-
+
+ Green channel
-
+
+ Blue channel
-
-

White channel

+
+
+ White channel
-
-

White balance

+
+
+ White balance
@@ -310,7 +315,7 @@
-

Transition:  s

+

Transition:  s

diff --git a/wled00/data/index.js b/wled00/data/index.js index 68a66e3e..32b52279 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -4,6 +4,7 @@ var isOn = false, nlA = false, isLv = false, isInfo = false, isNodes = false, sy var hasWhite = false, hasRGB = false, hasCCT = false; var nlDur = 60, nlTar = 0; var nlMode = false; +var segLmax = 0; // size (in pixels) of largest selected segment var selectedFx = 0; var selectedPal = 0; var csel = 0; // selected color slot (0-2) @@ -60,13 +61,10 @@ function setCSL(cs) let w = cs.dataset.w ? parseInt(cs.dataset.w) : 0; let hasShadow = getComputedStyle(cs).textShadow !== "none"; if (hasRGB && !isRgbBlack(cs.dataset)) { - cs.style.backgroundColor = rgbStr(cs.dataset); if (!hasShadow) cs.style.color = rgbBri(cs.dataset) > 127 ? "#000":"#fff"; // if text has no CSS "shadow" - if (hasWhite && w > 0) { - cs.style.background = `linear-gradient(180deg, ${rgbStr(cs.dataset)} 30%, rgb(${w},${w},${w}))`; - } + cs.style.background = (hasWhite && w > 0) ? `linear-gradient(180deg, ${rgbStr(cs.dataset)} 30%, rgb(${w},${w},${w}))` : rgbStr(cs.dataset); } else { - if (!hasWhite) w = 0; + if (hasRGB && !hasWhite) w = 0; cs.style.background = `rgb(${w},${w},${w})`; if (!hasShadow) cs.style.color = w > 127 ? "#000":"#fff"; } @@ -713,7 +711,7 @@ function populateSegments(s) let rvXck = ``; let miXck = ``; let rvYck = "", miYck =""; - if (isM) { + if (isM && staXReverse`; miYck = ``; } @@ -746,42 +744,43 @@ function populateSegments(s) ${cfg.comp.segpwr?segp:''}
- + - - - + - - - + + + - ${isM ? ''+ + ${isM&&staX'+ ''+ - ''+ - ''+ + ''+ + ''+ ''+ '':''} - + - - - + + +
${isM?'Start X':'Start LED'}${isM?(cfg.comp.seglen?"Width":"Stop X"):(cfg.comp.seglen?"LED count":"Stop LED")}${isM?'':'Offset'}${isM&&staX + ${isM&&staX + ${isM&&staX
${isM?miXck+'
'+rvXck:''}
${isM&&staX'+rvXck:''}
Start Y'+(cfg.comp.seglen?'Height':'Stop Y')+'
Start Y'+(cfg.comp.seglen?'Height':'Stop Y')+'
'+miYck+'
'+rvYck+'
Grouping Spacing
- ${!isM?rvXck:''} - ${isM&&stoY-staY>1&&stoX-staX>1?map2D:''} + ${!(isM&&staX1&&stoX-staX>1?map2D:''} ${s.AudioReactive && s.AudioReactive.on ? "" : sndSim}
@@ -800,16 +799,19 @@ function populateSegments(s) for (var i = 0; i <= lSeg; i++) { updateLen(i); updateTrail(gId(`seg${i}bri`)); - gId(`segr${i}`).style.display = "none"; + gId(`segr${i}`).classList.add("hide"); if (!gId(`seg${i}sel`).checked && gId('selall')) gId('selall').checked = false; // uncheck if at least one is unselected. } - if (segCount < 2) gId(`segd${lSeg}`).style.display = "none"; + if (segCount < 2) { + gId(`segd${lSeg}`).classList.add("hide"); + gId(`segp0`).classList.add("hide"); + } if (!isM && !noNewSegs && (cfg.comp.seglen?parseInt(gId(`seg${lSeg}s`).value):0)+parseInt(gId(`seg${lSeg}e`).value) 1) ? "block":"none"; // rsbtn parent - if (!isM && Array.isArray(li.maps) && li.maps.length>1) { + if (Array.isArray(li.maps) && li.maps.length>1) { let cont = `Ledmap: 
"; gId("ledmap").innerHTML = cont; gId("ledmap").classList.remove('hide'); @@ -851,6 +853,7 @@ function populateEffects() let m = (eP.length<4 || eP[3]==='')?'1':eP[3]; // flags if (id == 0) m = ''; // solid has no flags if (m.length>0) { + if (m.includes('0')) nm += "•"; // 0D effects (PWM & On/Off) if (m.includes('1')) nm += "⋮"; // 1D effects if (m.includes('2')) nm += "▦"; // 2D effects if (m.includes('v')) nm += "♪"; // volume effects @@ -1049,29 +1052,50 @@ function updateLen(s) var start = parseInt(gId(`seg${s}s`).value); var stop = parseInt(gId(`seg${s}e`).value) + (cfg.comp.seglen?start:0); var len = stop - start; + let sY = gId(`seg${s}sY`); + let eY = gId(`seg${s}eY`); + let sX = gId(`seg${s}s`); + let eX = gId(`seg${s}e`); + let of = gId(`seg${s}of`); + let mySH = gId("mkSYH"); + let mySD = gId("mkSYD"); if (isM) { - // matrix setup - let startY = parseInt(gId(`seg${s}sY`).value); - let stopY = parseInt(gId(`seg${s}eY`).value) + (cfg.comp.seglen?startY:0); - len *= (stopY-startY); - let tPL = gId(`seg${s}lbtm`); - if (stop-start>1 && stopY-startY>1) { - // 2D segment - if (tPL) tPL.classList.remove('hide'); // unhide transpose checkbox - let sE = gId('fxlist').querySelector(`.lstI[data-id="${selectedFx}"]`); - if (sE) { - let sN = sE.querySelector(".lstIname").innerText; - let seg = gId(`seg${s}map2D`); - if (seg) { - if(sN.indexOf("\u25A6")<0) seg.classList.remove('hide'); // unhide mapping for 1D effects (| in name) - else seg.classList.add('hide'); // hide mapping otherwise - } - } + // do we have 1D segment *after* the matrix? + if (start >= mw*mh) { + if (sY) { sY.value = 0; sY.max = 0; sY.min = 0; } + if (eY) { eY.value = 1; eY.max = 1; eY.min = 0; } + sX.min = mw*mh; sX.max = ledCount-1; + eX.min = mw*mh+1; eX.max = ledCount; + if (mySH) mySH.classList.add("hide"); + if (mySD) mySD.classList.add("hide"); + if (of) of.classList.remove("hide"); } else { - // 1D segment in 2D set-up - if (tPL) { - tPL.classList.add('hide'); // hide transpose checkbox - gId(`seg${s}tp`).checked = false; // and uncheck it + // matrix setup + if (mySH) mySH.classList.remove("hide"); + if (mySD) mySD.classList.remove("hide"); + if (of) of.classList.add("hide"); + let startY = parseInt(sY.value); + let stopY = parseInt(eY.value) + (cfg.comp.seglen?startY:0); + len *= (stopY-startY); + let tPL = gId(`seg${s}lbtm`); + if (stop-start>1 && stopY-startY>1) { + // 2D segment + if (tPL) tPL.classList.remove('hide'); // unhide transpose checkbox + let sE = gId('fxlist').querySelector(`.lstI[data-id="${selectedFx}"]`); + if (sE) { + let sN = sE.querySelector(".lstIname").innerText; + let seg = gId(`seg${s}map2D`); + if (seg) { + if(sN.indexOf("\u25A6")<0) seg.classList.remove('hide'); // unhide mapping for 1D effects (| in name) + else seg.classList.add('hide'); // hide mapping otherwise + } + } + } else { + // 1D segment in 2D set-up + if (tPL) { + tPL.classList.add('hide'); // hide transpose checkbox + gId(`seg${s}tp`).checked = false; // and uncheck it + } } } } @@ -1090,6 +1114,7 @@ function updateLen(s) var virt = Math.ceil(len/(grp + spc)); if (!isNaN(virt) && (grp > 1 || spc > 0)) out += ` (${virt} virtual)`; } + if (isM && start >= mw*mh) out += " [strip]"; gId(`seg${s}len`).innerHTML = out; } @@ -1142,18 +1167,19 @@ function updateUI() } if (hasWhite) updateTrail(gId('sliderW')); - gId('wwrap').style.display = (hasWhite) ? "block":"none"; // white channel - gId('wbal').style.display = (hasCCT) ? "block":"none"; // white balance var ccfg = cfg.comp.colors; - gId('hexw').style.display = ccfg.hex ? "block":"none"; // HEX input - gId('picker').style.display = (hasRGB && ccfg.picker) ? "block":"none"; // color picker wheel - gId('hwrap').style.display = (hasRGB && !ccfg.picker) ? "block":"none"; // color picker wheel - gId('swrap').style.display = (hasRGB && !ccfg.picker) ? "block":"none"; // color picker wheel - gId('vwrap').style.display = (hasRGB /*&& ccfg.picker*/) ? "block":"none"; // brightness (value) slider - gId('kwrap').style.display = (hasRGB && !hasCCT /*&& ccfg.picker*/) ? "block":"none"; // Kelvin slider - gId('rgbwrap').style.display = (hasRGB && ccfg.rgb) ? "block":"none"; // RGB sliders - gId('qcs-w').style.display = (hasRGB && ccfg.quick) ? "block":"none"; // quick selection - //gId('palw').style.display = hasRGB ? "block":"none"; // palettes + gId('wwrap').style.display = (hasWhite) ? "block":"none"; // white channel + gId('wbal').style.display = (hasCCT) ? "block":"none"; // white balance + gId('hexw').style.display = (ccfg.hex) ? "block":"none"; // HEX input + gId('picker').style.display = (hasRGB && ccfg.picker) ? "block":"none"; // color picker wheel + gId('hwrap').style.display = (hasRGB && !ccfg.picker) ? "block":"none"; // hue slider + gId('swrap').style.display = (hasRGB && !ccfg.picker) ? "block":"none"; // saturation slider + gId('vwrap').style.display = (hasRGB) ? "block":"none"; // brightness (value) slider + gId('kwrap').style.display = (hasRGB && !hasCCT) ? "block":"none"; // Kelvin slider + gId('rgbwrap').style.display = (hasRGB && ccfg.rgb) ? "block":"none"; // RGB sliders + gId('qcs-w').style.display = (hasRGB && ccfg.quick) ? "block":"none"; // quick selection + //gId('csl').style.display = (hasRGB || hasWhite) ? "block":"none"; // color selectors (hide for On/Off bus) + //gId('palw').style.display = (hasRGB) ? "inline-block":"none"; // palettes are shown/hidden in setEffectParameters() updatePA(); updatePSliders(); @@ -1198,7 +1224,19 @@ function updateSelectedFx() if (selectedEffect) { selectedEffect.classList.add('selected'); setEffectParameters(selectedFx); - + // hide non-0D effects if segment only has 1 pixel (0D) + var fxs = parent.querySelectorAll('.lstI'); + for (const fx of fxs) { + let opts = fx.dataset.opt.split(";"); + if (fx.dataset.id>0) { + if (segLmax==0) fx.classList.add('hide'); // none of the segments selected (hide all effects) + else { + if (segLmax==1 && (!opts[3] || opts[3].indexOf("0")<0)) fx.classList.add('hide'); + else fx.classList.remove('hide'); + } + } + } + // hide 2D mapping and/or sound simulation options var selectedName = selectedEffect.querySelector(".lstIname").innerText; var segs = gId("segcont").querySelectorAll(`div[data-map="map2D"]`); for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove('hide'); else seg.classList.add('hide'); @@ -1285,6 +1323,7 @@ function readState(s,command=false) var selc=0; var sellvl=0; // 0: selc is invalid, 1: selc is mainseg, 2: selc is first selected hasRGB = hasWhite = hasCCT = false; + segLmax = 0; for (let i = 0; i < (s.seg||[]).length; i++) { if (sellvl == 0 && s.seg[i].id == s.mainseg) { @@ -1296,15 +1335,17 @@ function readState(s,command=false) sellvl = 2; var lc = lastinfo.leds.seglc[s.seg[i].id]; hasRGB |= !!(lc & 0x01); - hasWhite |= !!(lc & 0x08); // & 0x02 contains W channel + hasWhite |= !!(lc & 0x02); hasCCT |= !!(lc & 0x04); + let sLen = (s.seg[i].stop - s.seg[i].start)*(s.seg[i].stopY?(s.seg[i].stopY - s.seg[i].startY):1); + segLmax = segLmax < sLen ? sLen : segLmax; } } var i=s.seg[selc]; if (sellvl == 1) { var lc = lastinfo.leds.seglc[i.id]; hasRGB = !!(lc & 0x01); - hasWhite = !!(lc & 0x08); // & 0x02 contains W channel + hasWhite = !!(lc & 0x02); hasCCT = !!(lc & 0x04); } if (!i) { @@ -1318,7 +1359,7 @@ function readState(s,command=false) cd[e].dataset.r = i.col[e][0]; cd[e].dataset.g = i.col[e][1]; cd[e].dataset.b = i.col[e][2]; - if (hasWhite) { cd[e].dataset.w = i.col[e][3]; } + if (hasWhite || (!hasRGB && !hasWhite)) { cd[e].dataset.w = i.col[e][3]; } setCSL(cd[e]); } selectSlot(csel); @@ -1470,8 +1511,8 @@ function setEffectParameters(idx) var palw = gId("palw"); // wrapper var pall = gId("pall"); // label // if not controlDefined or palette has a value - if ((!controlDefined) || (paOnOff.length>0 && paOnOff[0]!="" && isNaN(paOnOff[0]))) { - palw.style.display = hasRGB ? "inline-block" : "none"; + if (hasRGB && ((!controlDefined) || (paOnOff.length>0 && paOnOff[0]!="" && isNaN(paOnOff[0])))) { + palw.style.display = "inline-block"; if (paOnOff.length>0 && paOnOff[0].indexOf("=")>0) { // embeded default values var dPos = paOnOff[0].indexOf("="); @@ -1681,22 +1722,22 @@ function makeSeg() }); var cn = `
- + - - + + - ${isM ? ''+ - ''+ - ''+ - ''+ - '':''} + + + + +
${isM?'Start X':'Start LED'} ${isM?(cfg.comp.seglen?"Width":"Stop X"):(cfg.comp.seglen?"LED count":"Stop LED")}
Start Y'+(cfg.comp.seglen?'Height':'Stop Y')+'
Start Y${cfg.comp.seglen?'Height':'Stop Y'}
${ledCount - ns} LEDs
@@ -1820,7 +1861,7 @@ function makeP(i,pl)
-
Repeat 0?rep:1}> times
+
Repeat 0?rep:1}> times
End preset:
`; - if (!isM && Array.isArray(lastinfo.maps) && lastinfo.maps.length>1) { + if (Array.isArray(lastinfo.maps) && lastinfo.maps.length>1) { content += `
Ledmap: 
"; } } - return ` -
Quick load label:
+ return ` +
Quick load label:
(leave empty for no Quick load button)
-
API command
+
API command
${content}
-
Save to ID 0)?i:getLowestUnusedP()}>
+
Save to ID 0)?i:getLowestUnusedP()}>
${(i>0)?' @@ -1918,8 +1959,8 @@ function makePlEntry(p,i) #${i+1} - s - s + s + s
@@ -2026,29 +2067,30 @@ function setSeg(s) let sX = gId(`seg${s}s`); let eX = gId(`seg${s}e`); var start = parseInt(sX.value); - var stop = parseInt(eX.value); + var stop = parseInt(eX.value) + (cfg.comp.seglen?start:0); if (startsX.max) {sX.value=sX.min; return;} // prevent out of bounds - if (stopeX.max) {eX.value=eX.max; return;} // prevent out of bounds + if (stopeX.max) {eX.value=eX.max; return;} // prevent out of bounds if ((cfg.comp.seglen && stop == 0) || (!cfg.comp.seglen && stop <= start)) {delSeg(s); return;} - var obj = {"seg": {"id": s, "n": name, "start": start, "stop": (cfg.comp.seglen?start:0)+stop}}; - if (isM) { + var obj = {"seg": {"id": s, "n": name, "start": start, "stop": stop}}; + if (isM && startsY.max) {sY.value=sY.min; return;} // prevent out of bounds if (stopYeY.max) {eY.value=eY.max; return;} // prevent out of bounds obj.seg.startY = startY; - obj.seg.stopY = (cfg.comp.seglen?startY:0)+stopY; + obj.seg.stopY = stopY; } - if (gId(`seg${s}grp`)) { // advanced options, not present in new segment dialog (makeSeg()) - var grp = parseInt(gId(`seg${s}grp`).value); - var spc = parseInt(gId(`seg${s}spc`).value); - var ofs = parseInt(gId(`seg${s}of` ).value); + let g = gId(`seg${s}grp`); + if (g) { // advanced options, not present in new segment dialog (makeSeg()) + let grp = parseInt(g.value); + let spc = parseInt(gId(`seg${s}spc`).value); + let ofs = parseInt(gId(`seg${s}of` ).value); obj.seg.grp = grp; obj.seg.spc = spc; obj.seg.of = ofs; - if (isM) obj.seg.tp = gId(`seg${s}tp`).checked; + if (isM && gId(`seg${s}tp`)) obj.seg.tp = gId(`seg${s}tp`).checked; } resetUtil(); // close add segment dialog just in case requestJson(obj); @@ -2210,7 +2252,7 @@ function setLor(i) function setPreset(i) { var obj = {"ps":i}; - if (pJson && pJson[i] && (!pJson[i].win || pJson[i].win.indexOf("Please") <= 0)) { + if (!isPlaylist(i) && pJson && pJson[i] && (!pJson[i].win || pJson[i].win.indexOf("Please") <= 0)) { // we will send the complete preset content as to avoid delay introduced by // async nature of applyPreset() and having to read the preset from file system. obj = {"pd":i}; // use "pd" instead of "ps" to indicate that we are sending the preset content directly @@ -2716,7 +2758,7 @@ function hasIroClass(classList) } return false; } - +//required by rangetouch.js function lock(e) { if (pcMode) return; @@ -2730,7 +2772,7 @@ function lock(e) _C.classList.toggle('smooth', !(locked = true)); } - +//required by rangetouch.js function move(e) { if(!locked || pcMode) return; diff --git a/wled00/data/settings_2D.htm b/wled00/data/settings_2D.htm index ffac029d..5258439b 100644 --- a/wled00/data/settings_2D.htm +++ b/wled00/data/settings_2D.htm @@ -7,11 +7,13 @@ 2D Set-up @@ -141,46 +295,55 @@ Y:
-
+

2D setup

- Strip or panel: + Strip or panel:

- + +
diff --git a/wled00/data/settings_dmx.htm b/wled00/data/settings_dmx.htm index 8ee8e1b2..7b14dcda 100644 --- a/wled00/data/settings_dmx.htm +++ b/wled00/data/settings_dmx.htm @@ -1,72 +1,72 @@ - - - - DMX Settings - - + + + + DMX Settings + +
diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 45eb4980..6637ff9c 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -1,327 +1,327 @@ - + - + LED Settings -
+

-
-

LED & Hardware setup

- Total LEDs: ?
- Recommended power supply for brightest white:
- ?
-
-
- Enable automatic brightness limiter:
-
- Maximum Current: mA
- - Automatically limits brightness to stay close to the limit.
- Keep at <1A if powering LEDs directly from the ESP 5V pin!
- If you are using an external power supply, enter its rating.
- (Current estimated usage: unknown)


- LED voltage (Max. current for a single LED):
-
- - Keep at default if you are unsure about your type of LEDs.
-
-

Hardware setup

-
LED outputs:
-
- -
- LED Memory Usage: 0 / ? B
-

- -
- Make a segment for each output:
- Custom bus start indices:
- Use global LED buffer:
-
-
- Color Order Override: -
-
- -
-
-
-
- Disable internal pull-up/down:
- Touch threshold:
- IR GPIO:  ✕
- Apply IR change to main segment only:
- - IR info
- Relay GPIO: Invert  ✕
-
+
+

LED & Hardware setup

+ Total LEDs: ?
+ Recommended power supply for brightest white:
+ ?
+
+
+ Enable automatic brightness limiter:
+
+ Maximum Current: mA
+ + Automatically limits brightness to stay close to the limit.
+ Keep at <1A if powering LEDs directly from the ESP 5V pin!
+ If you are using an external power supply, enter its rating.
+ (Current estimated usage: unknown)


+ LED voltage (Max. current for a single LED):
+
+ + Keep at default if you are unsure about your type of LEDs.
+
+

Hardware setup

+
LED outputs:
+
+ +
+ LED Memory Usage: 0 / ? B
+

+ +
+ Make a segment for each output:
+ Custom bus start indices:
+ Use global LED buffer:
+
+
+ Color Order Override: +
+
+ +
+
+
+
+ Disable internal pull-up/down:
+ Touch threshold:
+ IR GPIO:  ✕
+ Apply IR change to main segment only:
+ + IR info
+ Relay GPIO: Invert  ✕
+

Defaults

Turn LEDs on after power up/reset:
- Default brightness: (0-255)

- Apply preset at boot (0 uses defaults) -

+ Default brightness: (0-255)

+ Apply preset at boot (0 uses defaults) +

Use Gamma correction for color: (strongly recommended)
- Use Gamma correction for brightness: (not recommended)

+ Use Gamma correction for brightness: (not recommended)
+ Use Gamma value:

Brightness factor: %

Transitions

Crossfade:
Transition Time: ms
- Enable Palette transitions: + Enable Palette transitions:
+ Random Cycle Palette Time: s

Timed light

Default Duration: min
Default Target brightness:
Mode: -

White management

- White Balance correction:
- - Global override for Auto-calculate white:
- -
- Calculate CCT from RGB:
- CCT additive blending: %
-

Advanced

+ White Balance correction:
+
+ Global override for Auto-calculate white:
+ +
+ Calculate CCT from RGB:
+ CCT additive blending: % +
+

Advanced

Palette blending: None (not recommended)
Target refresh rate: FPS -
-
Config template:
-
- +
+
Config template:
+
+
-
+
diff --git a/wled00/data/settings_pin.htm b/wled00/data/settings_pin.htm index 67eb1b26..5c70d423 100644 --- a/wled00/data/settings_pin.htm +++ b/wled00/data/settings_pin.htm @@ -17,7 +17,7 @@

Please enter settings PIN code

-
+
diff --git a/wled00/data/settings_sec.htm b/wled00/data/settings_sec.htm index 16f2f64b..95061496 100644 --- a/wled00/data/settings_sec.htm +++ b/wled00/data/settings_sec.htm @@ -53,7 +53,7 @@ req.send(formData); fO.value = ''; return false; - } + } function checkNum(o) { const specialkeys = ["Backspace", "Tab", "Enter", "Shift", "Control", "Alt", "Pause", "CapsLock", "Escape", "Space", "PageUp", "PageDown", "End", "Home", "ArrowLeft", "ArrowUp", "ArrowRight", "ArrowDown", "Insert", "Delete"]; // true if key is a number or a special key diff --git a/wled00/data/settings_sync.htm b/wled00/data/settings_sync.htm index 30d79479..3f175f0b 100644 --- a/wled00/data/settings_sync.htm +++ b/wled00/data/settings_sync.htm @@ -1,74 +1,74 @@ - - - - Sync Settings - - + } + var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=4'; + loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed + } + +
@@ -84,39 +84,39 @@ UDP Port: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
12345678
Send:
Receive:
12345678
Send:
Receive:

Receive: Brightness, Color, and Effects
Segment options, bounds
@@ -149,6 +149,7 @@ Start universe:
Skip out-of-sequence packets:
DMX start address:
DMX segment spacing:
+E1.31 port priority:
DMX mode:

Alexa Voice Assistant

- This firmware build does not include Alexa support.

+ This firmware build does not include Alexa support.

Emulate Alexa device:
@@ -179,25 +180,15 @@ Alexa invocation name:
Also emulate devices to call the first presets


-
Blynk, MQTT and Hue sync all connect to external hosts!
+
MQTT and Hue sync all connect to external hosts!
This may impact the responsiveness of WLED.

For best results, only use one of these services at a time.
(alternatively, connect a second ESP to them and use the UDP sync)
-

Blynk

-
- This firmware build does not include Blynk support.
-
-
-Host: -Port:
-Device Auth token:
-Clear the token field to disable. Setup info -

MQTT

- This firmware build does not include MQTT support.
+ This firmware build does not include MQTT support.
Enable MQTT:
@@ -215,7 +206,7 @@ Publish on button press:

Philips Hue

- This firmware build does not include Philips Hue support.
+ This firmware build does not include Philips Hue support.
You can find the bridge IP and the light number in the 'About' section of the hue app.
diff --git a/wled00/data/settings_time.htm b/wled00/data/settings_time.htm index d6d7a052..7dd7adc5 100644 --- a/wled00/data/settings_time.htm +++ b/wled00/data/settings_time.htm @@ -6,8 +6,8 @@ Time Settings diff --git a/wled00/data/simple.htm b/wled00/data/simple.htm index d051b13e..955bd65d 100644 --- a/wled00/data/simple.htm +++ b/wled00/data/simple.htm @@ -127,19 +127,19 @@

RGB channels

- +

- +

- +

@@ -147,14 +147,14 @@

White channel

- +

White balance

- +
diff --git a/wled00/data/simple.js b/wled00/data/simple.js index 79db2714..993ba9fb 100644 --- a/wled00/data/simple.js +++ b/wled00/data/simple.js @@ -551,7 +551,7 @@ function populateSegments(s)
- +
@@ -1379,7 +1379,7 @@ function hasIroClass(classList) } return false; } - +//required by rangetouch.js function lock(e) { var l = e.target.classList; @@ -1392,7 +1392,7 @@ function lock(e) _C.classList.toggle('smooth', !(locked = true)); } - +//required by rangetouch.js function move(e) { if(!locked) return; diff --git a/wled00/e131.cpp b/wled00/e131.cpp index e4c3fabb..ababf8d8 100644 --- a/wled00/e131.cpp +++ b/wled00/e131.cpp @@ -70,10 +70,20 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){ seq = p->art_sequence_number; mde = REALTIME_MODE_ARTNET; } else if (protocol == P_E131) { + // Ignore PREVIEW data (E1.31: 6.2.6) + if ((p->options & 0x80) != 0) return; + dmxChannels = htons(p->property_value_count) - 1; + // DMX level data is zero start code. Ignore everything else. (E1.11: 8.5) + if (dmxChannels == 0 || p->property_values[0] != 0) return; uni = htons(p->universe); - dmxChannels = htons(p->property_value_count) -1; e131_data = p->property_values; seq = p->sequence_number; + if (e131Priority != 0) { + if (p->priority < e131Priority ) return; + // track highest priority & skip all lower priorities + if (p->priority >= highPriority.get()) highPriority.set(p->priority); + if (p->priority < highPriority.get()) return; + } } else { //DDP realtimeIP = clientIP; handleDDPPacket(p); diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index 1f7823a7..0b5974f8 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -13,13 +13,6 @@ void handleAlexa(); void onAlexaChange(EspalexaDevice* dev); #endif -//blynk.cpp -#ifndef WLED_DISABLE_BLYNK -void initBlynk(const char* auth, const char* host, uint16_t port); -void handleBlynk(); -void updateBlynk(); -#endif - //button.cpp void shortPressAction(uint8_t b=0); void longPressAction(uint8_t b=0); @@ -131,7 +124,7 @@ void handleIR(); #include "src/dependencies/json/AsyncJson-v6.h" #include "FX.h" -void deserializeSegment(JsonObject elem, byte it, byte presetId = 0); +bool deserializeSegment(JsonObject elem, byte it, byte presetId = 0); bool deserializeState(JsonObject root, byte callMode = CALL_MODE_DIRECT_CHANGE, byte presetId = 0); void serializeSegment(JsonObject& root, Segment& seg, byte id, bool forPreset = false, bool segmentBounds = true); void serializeState(JsonObject root, bool forPreset = false, bool includeBri = true, bool segmentBounds = true, bool selectedSegmentsOnly = false); @@ -264,19 +257,20 @@ class Usermod { virtual ~Usermod() { if (um_data) delete um_data; } virtual void setup() = 0; // pure virtual, has to be overriden virtual void loop() = 0; // pure virtual, has to be overriden - virtual void handleOverlayDraw() {} - virtual bool handleButton(uint8_t b) { return false; } - virtual bool getUMData(um_data_t **data) { if (data) *data = nullptr; return false; }; - virtual void connected() {} - virtual void appendConfigData() {} - virtual void addToJsonState(JsonObject& obj) {} - virtual void addToJsonInfo(JsonObject& obj) {} - virtual void readFromJsonState(JsonObject& obj) {} - virtual void addToConfig(JsonObject& obj) {} + virtual void handleOverlayDraw() {} // called after all effects have been processed, just before strip.show() + virtual bool handleButton(uint8_t b) { return false; } // button overrides are possible here + virtual bool getUMData(um_data_t **data) { if (data) *data = nullptr; return false; }; // usermod data exchange [see examples for audio effects] + virtual void connected() {} // called when WiFi is (re)connected + virtual void appendConfigData() {} // helper function called from usermod settings page to add metadata for entry fields + virtual void addToJsonState(JsonObject& obj) {} // add JSON objects for WLED state + virtual void addToJsonInfo(JsonObject& obj) {} // add JSON objects for UI Info page + virtual void readFromJsonState(JsonObject& obj) {} // process JSON messages received from web server + virtual void addToConfig(JsonObject& obj) {} // add JSON entries that go to cfg.json virtual bool readFromConfig(JsonObject& obj) { return true; } // Note as of 2021-06 readFromConfig() now needs to return a bool, see usermod_v2_example.h - virtual void onMqttConnect(bool sessionPresent) {} - virtual bool onMqttMessage(char* topic, char* payload) { return false; } - virtual void onUpdateBegin(bool) {} + virtual void onMqttConnect(bool sessionPresent) {} // fired when MQTT connection is established (so usermod can subscribe) + virtual bool onMqttMessage(char* topic, char* payload) { return false; } // fired upon MQTT message received (wled topic) + virtual void onUpdateBegin(bool) {} // fired prior to and after unsuccessful firmware update + virtual void onStateChange(uint8_t mode) {} // fired upon WLED state change virtual uint16_t getId() {return USERMOD_ID_UNSPECIFIED;} }; @@ -301,6 +295,7 @@ class UsermodManager { void onMqttConnect(bool sessionPresent); bool onMqttMessage(char* topic, char* payload); void onUpdateBegin(bool); + void onStateChange(uint8_t); bool add(Usermod* um); Usermod* lookup(uint16_t mod_id); byte getModCount() {return numMods;}; diff --git a/wled00/html_other.h b/wled00/html_other.h index 6df271b9..3412b517 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -44,7 +44,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; const uint16_t PAGE_update_length = 615; const uint8_t PAGE_update[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30, - 0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x4e, 0x8b, 0x78, 0xa1, 0x24, 0x29, 0x1c, + 0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x4e, 0xa9, 0x78, 0xa1, 0x24, 0x29, 0x1c, 0xad, 0x50, 0x25, 0xa4, 0x56, 0x6a, 0x0b, 0xe2, 0x09, 0x39, 0xf6, 0xe6, 0x62, 0xce, 0xb1, 0x53, 0x7b, 0x73, 0xa7, 0xa8, 0xea, 0x7f, 0x67, 0xe3, 0xdc, 0x15, 0xc4, 0xc7, 0x4b, 0x14, 0x67, 0x67, 0xc7, 0xbb, 0x33, 0x93, 0xe2, 0xe4, 0xf2, 0xe6, 0xe3, 0xfd, 0xb7, 0xdb, 0x2b, 0xd6, 0x62, 0x67, @@ -60,13 +60,13 @@ const uint8_t PAGE_update[] PROGMEM = { 0x95, 0x3c, 0x8f, 0x80, 0x68, 0xdc, 0x26, 0xe6, 0x51, 0xfc, 0x88, 0x17, 0x7d, 0xf9, 0x96, 0x57, 0xbf, 0x21, 0x27, 0xaa, 0x2a, 0x7b, 0x6f, 0xba, 0x49, 0x00, 0x36, 0x04, 0xbb, 0xe0, 0x33, 0xbd, 0x8a, 0x91, 0x2f, 0xdf, 0x11, 0x32, 0x21, 0x8a, 0x7c, 0x96, 0xb4, 0xf6, 0x7a, 0x64, 0xde, 0x59, - 0x2f, 0x75, 0xc9, 0x3f, 0x01, 0x7e, 0x59, 0x2c, 0x89, 0xae, 0x7d, 0x5d, 0x65, 0x49, 0xb2, 0x3b, - 0xdf, 0xe0, 0x5e, 0x06, 0x78, 0xd1, 0x8e, 0x2a, 0x45, 0xe3, 0x43, 0xc7, 0xc8, 0x8b, 0xd6, 0x53, - 0xcf, 0xed, 0xcd, 0xdd, 0x3d, 0x67, 0x32, 0xc9, 0x43, 0xc3, 0x0d, 0x09, 0xc7, 0x99, 0xa1, 0x12, - 0xe9, 0xc1, 0x32, 0x20, 0xe5, 0xc6, 0x9e, 0x4c, 0xe9, 0x06, 0x8b, 0xa6, 0x97, 0x01, 0xf3, 0xa9, - 0x7f, 0x45, 0x30, 0xc9, 0xe9, 0xe6, 0x38, 0xd4, 0x9d, 0x21, 0x37, 0x1f, 0xa6, 0x8b, 0xaf, 0x5d, - 0x44, 0x69, 0x2d, 0x68, 0xb6, 0x83, 0x10, 0x89, 0xf1, 0x9c, 0x15, 0xb1, 0x97, 0x8e, 0x65, 0xca, - 0xca, 0x18, 0x4b, 0x1e, 0x4d, 0xcf, 0xab, 0x53, 0x71, 0xf6, 0x46, 0x9c, 0xae, 0xea, 0x33, 0x5a, + 0x2f, 0x75, 0xc9, 0x3f, 0x01, 0x7e, 0x59, 0x2c, 0x89, 0xae, 0x3d, 0xab, 0xb2, 0x24, 0xd9, 0x9d, + 0x6f, 0x70, 0x2f, 0x03, 0xbc, 0x68, 0x47, 0x95, 0xa2, 0xf1, 0xa1, 0x63, 0xe4, 0x45, 0xeb, 0xa9, + 0xe7, 0xf6, 0xe6, 0xee, 0x9e, 0x33, 0x99, 0xe4, 0xa1, 0xe1, 0x86, 0x84, 0xe3, 0xcc, 0x50, 0x89, + 0xf4, 0x60, 0x19, 0x90, 0x72, 0x63, 0x4f, 0xa6, 0x74, 0x83, 0x45, 0xd3, 0xcb, 0x80, 0xf9, 0xd4, + 0xbf, 0x22, 0x98, 0xe4, 0x74, 0x73, 0x1c, 0xea, 0xce, 0x90, 0x9b, 0x0f, 0xd3, 0xc5, 0xd7, 0x2e, + 0xa2, 0xb4, 0x16, 0x34, 0xdb, 0x41, 0x88, 0xc4, 0x78, 0xce, 0x8a, 0xd8, 0x4b, 0xc7, 0x32, 0x65, + 0x65, 0x8c, 0x25, 0x8f, 0xa6, 0xe7, 0xd5, 0xa9, 0x78, 0xfd, 0x46, 0x9c, 0xae, 0xea, 0x33, 0x5a, 0x86, 0x8a, 0xb4, 0x44, 0xa8, 0x2e, 0xfd, 0x3e, 0x2d, 0xc1, 0xb0, 0x05, 0x66, 0x69, 0x84, 0x88, 0xac, 0x36, 0x4e, 0x86, 0x91, 0x28, 0x24, 0xcb, 0xda, 0x00, 0x4d, 0xc9, 0x5b, 0xc4, 0x3e, 0x9e, 0xe7, 0xf9, 0xc6, 0x60, 0x3b, 0xd4, 0x42, 0xf9, 0x2e, 0xff, 0x60, 0x82, 0xf2, 0xde, 0x6f, 0x0d, @@ -80,8 +80,8 @@ const uint8_t PAGE_update[] PROGMEM = { 0x9a, 0x92, 0xfe, 0xab, 0x29, 0x79, 0x54, 0x15, 0xda, 0xec, 0xb2, 0x64, 0xe5, 0x94, 0x53, 0xa2, 0xa9, 0x12, 0x3b, 0x85, 0x4f, 0x08, 0x41, 0xe0, 0x44, 0x7e, 0x9b, 0x96, 0x65, 0xda, 0x33, 0xe7, 0x91, 0x29, 0xeb, 0xe9, 0xe0, 0x03, 0xcd, 0xda, 0x04, 0x88, 0x6d, 0xf2, 0xa3, 0x97, 0x1b, 0x60, - 0xe7, 0xcb, 0x22, 0x27, 0xbe, 0x69, 0xdd, 0x29, 0x74, 0x53, 0x02, 0xa7, 0x5f, 0xfb, 0x27, 0xff, - 0x66, 0x0a, 0x46, 0xf0, 0x03, 0x00, 0x00 + 0xe7, 0xcb, 0x22, 0x27, 0xbe, 0x69, 0xdd, 0x29, 0x74, 0x53, 0x02, 0xa7, 0x5f, 0xfb, 0x27, 0x3b, + 0x01, 0xc5, 0x54, 0xf0, 0x03, 0x00, 0x00 }; diff --git a/wled00/html_pixart.h b/wled00/html_pixart.h index 29f5fffc..47febff3 100644 --- a/wled00/html_pixart.h +++ b/wled00/html_pixart.h @@ -7,526 +7,476 @@ */ // Autogenerated from wled00/data/pixart/pixart.htm, do not edit!! -const uint16_t PAGE_pixart_L = 8313; +const uint16_t PAGE_pixart_L = 7510; const uint8_t PAGE_pixart[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x3c, 0x6b, 0x7b, 0xda, 0x38, - 0xb3, 0xdf, 0xf3, 0x2b, 0x54, 0xb7, 0xdb, 0xe2, 0xc5, 0x18, 0xdb, 0x5c, 0x03, 0x71, 0xfa, 0x10, - 0x72, 0x21, 0xdb, 0x5c, 0x21, 0x49, 0x93, 0xe6, 0xcd, 0xd3, 0x1a, 0x2c, 0xc0, 0x89, 0xb1, 0xa9, - 0x6d, 0x20, 0x84, 0xf2, 0xdf, 0xcf, 0x8c, 0x64, 0x83, 0xb9, 0xa4, 0x49, 0x7b, 0xba, 0xef, 0x73, - 0xce, 0x76, 0x83, 0x6d, 0x69, 0x24, 0x8d, 0xe6, 0x3e, 0x23, 0xc3, 0xd6, 0x9b, 0xdd, 0xd3, 0xea, - 0xc5, 0xcd, 0xd9, 0x1e, 0xe9, 0x06, 0x3d, 0x7b, 0x9b, 0x6c, 0x45, 0x17, 0x6a, 0x98, 0x70, 0xe9, - 0xd1, 0xc0, 0x80, 0x9e, 0xa0, 0x9f, 0xa2, 0xdf, 0x07, 0xd6, 0x50, 0x17, 0xaa, 0x46, 0xab, 0x4b, - 0x53, 0x55, 0xd7, 0x09, 0x3c, 0xd7, 0x16, 0xc8, 0x46, 0x0b, 0xee, 0xa8, 0x13, 0xe8, 0x82, 0xe3, - 0xa6, 0x5a, 0xd8, 0x27, 0x11, 0xb8, 0xf3, 0x03, 0xd7, 0x83, 0xbb, 0xde, 0xc0, 0x0f, 0x52, 0x1e, - 0x1d, 0x1a, 0xb6, 0x65, 0x1a, 0x01, 0x15, 0xd6, 0x4d, 0x78, 0xe6, 0x19, 0x9d, 0x9e, 0xb1, 0x6e, - 0xa6, 0xb5, 0xe0, 0x7b, 0x8f, 0x7d, 0xcb, 0xa3, 0xbe, 0x40, 0x66, 0xe0, 0x0a, 0xc2, 0x05, 0x56, - 0x60, 0xd3, 0xed, 0x8d, 0xcf, 0x47, 0x7b, 0xbb, 0xe4, 0xcc, 0x7a, 0xa4, 0x36, 0xa9, 0x78, 0x01, - 0x01, 0x34, 0x87, 0xd4, 0x0b, 0xa8, 0xb7, 0x95, 0xe6, 0x00, 0x64, 0xcb, 0x0f, 0xc6, 0x08, 0x28, - 0x37, 0xdd, 0xc7, 0x49, 0xd3, 0xf5, 0x4c, 0xea, 0x95, 0xb4, 0xfe, 0x23, 0xf1, 0x5d, 0x40, 0x91, - 0xbc, 0x6d, 0xb7, 0xdb, 0xd3, 0xa6, 0x6b, 0x8e, 0x27, 0x6d, 0x98, 0x3d, 0xd5, 0x36, 0x7a, 0x96, - 0x3d, 0x2e, 0x55, 0x3c, 0xcb, 0xb0, 0x25, 0xdf, 0x70, 0xfc, 0x94, 0x4f, 0x3d, 0xab, 0x5d, 0x6e, - 0x1a, 0xad, 0x87, 0x8e, 0xe7, 0x0e, 0x1c, 0x33, 0xd5, 0x72, 0x6d, 0xd7, 0x2b, 0xbd, 0x55, 0x55, - 0x75, 0x2a, 0x07, 0x6e, 0x3f, 0xd5, 0x37, 0xbc, 0x60, 0x32, 0xb2, 0xcc, 0xa0, 0x5b, 0xca, 0x2b, - 0x4a, 0xff, 0xb1, 0xdc, 0x33, 0xbc, 0x8e, 0xe5, 0x94, 0x14, 0x62, 0x0c, 0x02, 0x77, 0x2a, 0x23, - 0xd6, 0x86, 0xe5, 0x50, 0x6f, 0xd2, 0x33, 0x1e, 0x53, 0x1c, 0x50, 0x55, 0x94, 0xbf, 0x48, 0x2a, - 0x8b, 0xd0, 0x1c, 0xa3, 0x94, 0x67, 0x98, 0xd6, 0xc0, 0x2f, 0x29, 0xe5, 0xbe, 0x61, 0x9a, 0x96, - 0xd3, 0x29, 0x69, 0xd8, 0x19, 0xd0, 0xc7, 0x20, 0x05, 0xa4, 0xec, 0x38, 0xa5, 0x16, 0xec, 0x9c, - 0x7a, 0xd3, 0xae, 0xca, 0x11, 0xf5, 0xad, 0x27, 0x5a, 0xd2, 0xe4, 0x0c, 0xed, 0x95, 0x43, 0x84, - 0x4c, 0xd3, 0x8c, 0x96, 0x56, 0x61, 0x7b, 0x4a, 0xf9, 0xa7, 0x1b, 0xb2, 0x01, 0xa3, 0x54, 0x97, - 0x5a, 0x9d, 0x6e, 0x50, 0x92, 0x73, 0xd3, 0xae, 0x16, 0x9b, 0x56, 0x95, 0xd5, 0xd9, 0xb4, 0x5e, - 0xa7, 0x69, 0x24, 0x34, 0x4d, 0x95, 0xa2, 0x3f, 0x39, 0xaf, 0x8a, 0xbf, 0xbd, 0xce, 0xba, 0x0d, - 0x65, 0x62, 0x2b, 0xcb, 0x85, 0x7f, 0x65, 0x61, 0x55, 0xce, 0xae, 0xae, 0x5c, 0x66, 0x0f, 0x29, - 0x2b, 0xa0, 0x3d, 0x3f, 0x6a, 0xba, 0x07, 0xe9, 0xb5, 0xda, 0xe3, 0x54, 0x28, 0x69, 0x51, 0xb3, - 0x69, 0xf9, 0x7d, 0xdb, 0x18, 0x97, 0xda, 0x36, 0x7d, 0x9c, 0xf6, 0xe3, 0x94, 0x9a, 0x93, 0xbf, - 0x50, 0x28, 0x2c, 0xad, 0x99, 0xfb, 0x29, 0x82, 0xd3, 0xb7, 0x6d, 0x8b, 0xda, 0xe6, 0x85, 0xd1, - 0xb4, 0x69, 0x7c, 0x46, 0xf2, 0x93, 0x29, 0x5f, 0x98, 0xd0, 0x6f, 0x19, 0x36, 0xfd, 0x93, 0x13, - 0x9a, 0x1e, 0xc8, 0xf7, 0x93, 0xeb, 0xd0, 0x49, 0x44, 0x81, 0xa6, 0xed, 0xb6, 0x1e, 0xca, 0x73, - 0x21, 0x8e, 0xcb, 0x70, 0x29, 0x03, 0x5c, 0x31, 0x0d, 0xbf, 0x4b, 0x41, 0xad, 0x50, 0x1a, 0x97, - 0x45, 0x7b, 0x95, 0x05, 0x0b, 0xc2, 0x1e, 0xe9, 0x4d, 0xb9, 0x35, 0xf0, 0x7c, 0x40, 0xb7, 0xef, - 0x5a, 0x0c, 0xe8, 0xa7, 0x6c, 0x8e, 0x6d, 0x34, 0x07, 0x73, 0xcc, 0x37, 0x8a, 0xf4, 0xb5, 0x69, - 0xaa, 0x6f, 0xb5, 0x1e, 0x40, 0xf5, 0x22, 0xfc, 0x1d, 0xd8, 0xcc, 0x54, 0x36, 0x4c, 0xa3, 0x1f, - 0x58, 0x43, 0x7a, 0xb1, 0x3b, 0x89, 0xb3, 0xb6, 0x8c, 0x1f, 0x29, 0x13, 0x8c, 0x4d, 0x2b, 0xb0, - 0x5c, 0xa7, 0xe4, 0xb9, 0x23, 0xde, 0x34, 0xf2, 0x8c, 0x3e, 0x0c, 0xc5, 0xcb, 0x1a, 0xa9, 0x99, - 0xca, 0x3d, 0xd0, 0xef, 0x06, 0xb5, 0x61, 0x98, 0xeb, 0x4d, 0x56, 0x4d, 0x85, 0xa6, 0x69, 0x71, - 0x25, 0x0d, 0xa9, 0xa5, 0xce, 0x6d, 0x50, 0x26, 0x93, 0x09, 0x77, 0x9f, 0x02, 0x8b, 0x52, 0xca, - 0xce, 0x88, 0x91, 0x6a, 0xba, 0x41, 0xe0, 0xf6, 0x58, 0x4b, 0x44, 0x2b, 0x85, 0x14, 0xe1, 0x29, - 0xe4, 0xa0, 0x86, 0xf7, 0x4b, 0x34, 0x58, 0x24, 0x7b, 0xa1, 0x1f, 0xee, 0x0b, 0x70, 0x1a, 0x01, - 0xc7, 0x17, 0x36, 0xfc, 0x6a, 0x15, 0x98, 0xd3, 0xec, 0xff, 0xdb, 0x3e, 0x39, 0xc7, 0x7d, 0xda, - 0xe9, 0xc1, 0x46, 0xfc, 0x5d, 0x6b, 0x18, 0xda, 0xea, 0x4c, 0x7e, 0xbe, 0x56, 0xca, 0xa6, 0xed, - 0xa0, 0x04, 0x73, 0x4e, 0xff, 0x26, 0x96, 0xd3, 0x1f, 0x04, 0xb7, 0xc1, 0xb8, 0x4f, 0x75, 0xcf, - 0x70, 0x3a, 0xf4, 0x6e, 0x62, 0xf4, 0xfb, 0xd4, 0x80, 0xfb, 0x16, 0x65, 0x93, 0x95, 0x53, 0x3d, - 0xf7, 0x29, 0xb5, 0xd2, 0x38, 0xa2, 0xcd, 0x07, 0x2b, 0x58, 0x69, 0x8f, 0xa3, 0x34, 0xdb, 0x59, - 0x24, 0xea, 0xb0, 0x5d, 0xdc, 0x24, 0xc9, 0x32, 0x73, 0xb6, 0x42, 0xd0, 0x00, 0xe6, 0xf1, 0xc1, - 0xbd, 0x00, 0xe2, 0xcb, 0x3a, 0x31, 0x87, 0x2d, 0xa1, 0x42, 0x1b, 0x1e, 0xac, 0x01, 0x74, 0x00, - 0xc8, 0x44, 0xe0, 0x12, 0x0f, 0x69, 0x26, 0xbd, 0x6d, 0x36, 0x9b, 0x24, 0xa7, 0xfc, 0x25, 0x21, - 0xdd, 0xf1, 0x46, 0x5c, 0x25, 0xd9, 0x74, 0x65, 0xbb, 0xa5, 0xb6, 0xdb, 0x1a, 0xf8, 0x13, 0x77, - 0x10, 0xe0, 0xc4, 0x25, 0x65, 0x0d, 0x44, 0x29, 0xda, 0xac, 0x0f, 0x5c, 0xc5, 0xe9, 0x06, 0x8e, - 0x83, 0x56, 0x27, 0x05, 0x08, 0xb7, 0x1e, 0x26, 0x71, 0x96, 0x3d, 0x8f, 0xb6, 0x82, 0x3b, 0x7e, - 0x05, 0x3a, 0xcb, 0x8b, 0x05, 0xdd, 0x41, 0xaf, 0x19, 0xad, 0xa1, 0x22, 0x13, 0x43, 0x6b, 0x94, - 0x5f, 0x11, 0x09, 0xd8, 0x72, 0x7c, 0x45, 0x74, 0xf5, 0xcb, 0x08, 0x3d, 0xc7, 0xb6, 0x25, 0x29, - 0x7d, 0x1d, 0xa2, 0x28, 0x17, 0xec, 0x61, 0x0d, 0x21, 0x56, 0x98, 0xcb, 0xfc, 0x9b, 0x22, 0xb1, - 0x7f, 0xe2, 0xaf, 0x2f, 0xc0, 0xa8, 0x10, 0x6a, 0x98, 0x12, 0xea, 0x57, 0x5c, 0x5e, 0x5e, 0x45, - 0xa0, 0xc2, 0x02, 0x62, 0x8c, 0x40, 0x53, 0x99, 0x2d, 0x70, 0x02, 0xd3, 0x83, 0xd9, 0xe4, 0x23, - 0x99, 0x75, 0xc6, 0xa8, 0xca, 0x02, 0x07, 0x13, 0x1a, 0xf0, 0x9e, 0x65, 0x9a, 0x36, 0x28, 0x56, - 0x7b, 0x60, 0xdb, 0x17, 0x60, 0xd7, 0xf7, 0xd1, 0x99, 0x71, 0x74, 0xd1, 0xcc, 0xdf, 0x3d, 0x63, - 0x1e, 0xd6, 0xdb, 0x84, 0x48, 0x0d, 0x2d, 0x87, 0x79, 0x27, 0x3f, 0x80, 0x90, 0x0a, 0xd5, 0xf1, - 0x65, 0x63, 0x11, 0x91, 0x38, 0xbb, 0x26, 0x92, 0xfa, 0x0d, 0xbf, 0xb1, 0xea, 0xb5, 0xfe, 0x94, - 0xf9, 0x6c, 0xdb, 0x8f, 0x17, 0xfb, 0xb6, 0xf9, 0x67, 0xc8, 0xf2, 0xff, 0x65, 0xd7, 0x0b, 0xd6, - 0xd4, 0x1f, 0x34, 0x7b, 0xd6, 0xef, 0x09, 0x06, 0x44, 0x8e, 0x10, 0xc4, 0xcc, 0xa3, 0x8e, 0x25, - 0x6c, 0x19, 0x1d, 0x5e, 0xbb, 0xef, 0xa5, 0x90, 0x19, 0x70, 0x6c, 0x0e, 0x40, 0x9c, 0x9c, 0xff, - 0x05, 0x67, 0x18, 0x4f, 0xfe, 0x0c, 0x76, 0x8b, 0xe1, 0xfc, 0xef, 0x91, 0x7d, 0xc9, 0xc6, 0x85, - 0x71, 0x21, 0x7a, 0xbe, 0x97, 0xe6, 0x5b, 0xaf, 0xe3, 0xa8, 0xcf, 0x60, 0x54, 0x8c, 0x49, 0xc7, - 0xb3, 0xcc, 0x14, 0x13, 0x88, 0xb4, 0x16, 0xdf, 0x6f, 0x24, 0x8e, 0x2c, 0xfb, 0xf9, 0x15, 0x32, - 0xc6, 0xd8, 0x20, 0x77, 0xc1, 0xba, 0x2f, 0x85, 0x69, 0xfe, 0x10, 0x28, 0x0c, 0x7b, 0x9b, 0xac, - 0xc7, 0xeb, 0xad, 0xd5, 0x33, 0xc0, 0x14, 0xce, 0xf3, 0xab, 0x68, 0x34, 0xe2, 0x59, 0x66, 0xc8, - 0xc2, 0xe6, 0xa0, 0x25, 0xa0, 0x88, 0xb5, 0x5f, 0x52, 0xdb, 0x1e, 0x81, 0xbf, 0xe9, 0x5b, 0xce, - 0xf1, 0x35, 0x23, 0x19, 0x61, 0x22, 0xe6, 0x86, 0x66, 0x46, 0x55, 0x62, 0x81, 0x02, 0x5a, 0x22, - 0x6c, 0x98, 0xca, 0x7c, 0x8e, 0x96, 0x6d, 0xf8, 0xfe, 0x04, 0x87, 0xcd, 0xfd, 0x3b, 0x03, 0xca, - 0xf5, 0x57, 0x26, 0xc2, 0xf8, 0x42, 0xee, 0x18, 0xfd, 0x49, 0x44, 0x3a, 0x78, 0x7e, 0xcb, 0xb5, - 0x22, 0xcc, 0x5a, 0x4b, 0xa5, 0x26, 0x6d, 0x43, 0x1a, 0x3d, 0x89, 0x18, 0x2a, 0x08, 0x33, 0x19, - 0x08, 0x8d, 0x00, 0x0f, 0xc0, 0x63, 0x44, 0x66, 0x44, 0x28, 0x0d, 0x3c, 0x3b, 0xf1, 0x01, 0x12, - 0x6e, 0xa3, 0xc4, 0x9e, 0xd3, 0x40, 0xba, 0xe4, 0x63, 0xcf, 0x2e, 0x0f, 0x82, 0x76, 0x51, 0x82, - 0x14, 0x78, 0xd8, 0x21, 0x2c, 0x0d, 0xd6, 0x85, 0xd0, 0xa4, 0x2f, 0x19, 0x4f, 0x81, 0x0c, 0x2d, - 0x3a, 0xda, 0x71, 0x1f, 0x21, 0xb9, 0x26, 0x0a, 0xd1, 0xb2, 0xf0, 0xbf, 0x40, 0xb6, 0xfa, 0x46, - 0xd0, 0x25, 0x10, 0x47, 0xdb, 0xba, 0x00, 0x42, 0x85, 0x8e, 0xa5, 0x8a, 0x2c, 0x13, 0x88, 0xa9, - 0x0b, 0xc7, 0xaa, 0x26, 0xe5, 0xaf, 0x36, 0x8f, 0xd4, 0xbc, 0x94, 0x3b, 0x82, 0x7b, 0xf5, 0x2a, - 0x5b, 0x29, 0x4a, 0x45, 0x18, 0x0d, 0x1e, 0x8d, 0x64, 0x25, 0x55, 0xab, 0xc2, 0x47, 0x46, 0xce, - 0x15, 0x48, 0x56, 0xce, 0xe6, 0x25, 0x35, 0x27, 0x2b, 0x10, 0x86, 0xc8, 0x1a, 0xb4, 0xe6, 0x65, - 0x2d, 0x7f, 0x94, 0x97, 0x0b, 0x92, 0x9a, 0x95, 0x8b, 0x55, 0x78, 0xca, 0x21, 0xe4, 0x66, 0x81, - 0x00, 0x58, 0x06, 0x3f, 0xb4, 0x4a, 0x5e, 0xca, 0xb3, 0xa9, 0x54, 0x82, 0xeb, 0x1c, 0xab, 0x45, - 0xb9, 0x90, 0x97, 0x0a, 0x72, 0x21, 0x7b, 0xa4, 0x16, 0xe4, 0x8c, 0xb4, 0x29, 0x6b, 0x55, 0x15, - 0x1f, 0x25, 0x55, 0x91, 0x95, 0x2c, 0x51, 0x8b, 0x92, 0xaa, 0xb2, 0xcf, 0xa5, 0xa1, 0x6a, 0xf1, - 0x4a, 0xcd, 0x1d, 0x41, 0xfb, 0x26, 0x22, 0xa9, 0x65, 0xae, 0x34, 0x25, 0x86, 0xa6, 0xa6, 0x20, - 0x9e, 0xf8, 0xa9, 0xc8, 0xd9, 0x0c, 0x51, 0x37, 0xe5, 0x5c, 0x56, 0x2a, 0x22, 0x26, 0xf3, 0x05, - 0xbf, 0x08, 0x24, 0xbd, 0xbd, 0x85, 0x24, 0xdd, 0xfe, 0x20, 0x96, 0x63, 0xd1, 0x63, 0x48, 0x3f, - 0xbc, 0x07, 0x46, 0x82, 0xfe, 0x82, 0x8e, 0x91, 0xbf, 0x27, 0xeb, 0x38, 0x06, 0xc2, 0x0c, 0xfd, - 0x87, 0x68, 0x0d, 0x99, 0xa7, 0xf4, 0x43, 0x21, 0xc8, 0xfd, 0xaa, 0xca, 0xbc, 0xc6, 0x55, 0xa6, - 0x7e, 0xee, 0x23, 0x0a, 0xbf, 0x60, 0x8f, 0x16, 0xbd, 0xc4, 0xd4, 0xc0, 0x68, 0xf3, 0x61, 0xf2, - 0xb3, 0x0c, 0xfd, 0xa7, 0x51, 0x2c, 0xcb, 0x00, 0x4d, 0xda, 0x72, 0x3d, 0x83, 0x65, 0x58, 0x4c, - 0xcf, 0x8d, 0xd2, 0xd0, 0xf2, 0xc1, 0x0e, 0x99, 0x7f, 0x7c, 0xde, 0xae, 0x0b, 0x5a, 0x35, 0x89, - 0x7b, 0xb9, 0xdf, 0x98, 0xc4, 0x68, 0x61, 0xda, 0xf3, 0x87, 0x71, 0xdb, 0x00, 0x79, 0x62, 0x65, - 0x29, 0xb2, 0x85, 0x14, 0x25, 0x1e, 0x05, 0x15, 0xf3, 0xbb, 0xae, 0x17, 0xb4, 0x06, 0x01, 0x41, - 0xa3, 0x27, 0x90, 0x8d, 0xae, 0x47, 0xdb, 0xba, 0x10, 0xd3, 0xea, 0xbe, 0xd3, 0x81, 0xb5, 0x7c, - 0x9a, 0xcf, 0x4a, 0xd6, 0xd5, 0xce, 0x69, 0x7d, 0xa4, 0x7c, 0x3a, 0xe8, 0xb8, 0x15, 0xf8, 0xef, - 0xa4, 0x71, 0xd9, 0xdd, 0xbb, 0xec, 0xc0, 0xdd, 0x0e, 0x3e, 0x56, 0xce, 0xab, 0x95, 0x1b, 0xbc, - 0xb6, 0x8b, 0xe9, 0xcd, 0x2e, 0x6b, 0xb9, 0x3e, 0x69, 0xd4, 0x95, 0xc3, 0x8a, 0xe7, 0x67, 0x5b, - 0xf9, 0x73, 0x78, 0x7e, 0x38, 0xf9, 0xa7, 0xbe, 0xb7, 0x7f, 0x79, 0xba, 0x97, 0xb4, 0x2f, 0xfd, - 0xe0, 0x54, 0x53, 0x2b, 0x97, 0x4e, 0xed, 0xc4, 0xdf, 0x57, 0xae, 0x92, 0xca, 0xde, 0xf5, 0x95, - 0x35, 0xac, 0x5c, 0xb7, 0x2b, 0xb4, 0xf0, 0xdd, 0x3e, 0x2a, 0xec, 0x7d, 0xd9, 0x6b, 0x9d, 0xe7, - 0x5a, 0xe7, 0x45, 0xa7, 0x7a, 0x58, 0x6d, 0xee, 0xfe, 0xb3, 0x5f, 0xb8, 0xf0, 0x86, 0x5d, 0xc3, - 0xcf, 0xdf, 0x34, 0xc7, 0xbb, 0xe6, 0xce, 0x40, 0xeb, 0x36, 0x1e, 0x0a, 0x0f, 0x56, 0xd7, 0x6f, - 0x7d, 0x52, 0xdb, 0x97, 0x9b, 0x6a, 0xad, 0xfe, 0xe9, 0x93, 0xb1, 0xdf, 0x56, 0x1f, 0xbb, 0xde, - 0x59, 0x91, 0xde, 0x1f, 0x3b, 0xd5, 0x5a, 0x31, 0xa7, 0x9c, 0xa5, 0x93, 0xc3, 0x74, 0xab, 0xaa, - 0x7d, 0x6f, 0x7d, 0x1f, 0x65, 0x3b, 0xfe, 0xc1, 0x6e, 0xa6, 0xf6, 0x90, 0x3e, 0xd0, 0x32, 0xc9, - 0xe6, 0xb0, 0x61, 0x8e, 0x0a, 0xce, 0x83, 0xfa, 0xa9, 0x58, 0x2c, 0xec, 0xd0, 0xea, 0x79, 0xb6, - 0x72, 0x70, 0x5c, 0xb1, 0xf6, 0xee, 0x5b, 0x07, 0xc6, 0x4e, 0xa1, 0xe3, 0x98, 0x7b, 0xed, 0x6e, - 0xfd, 0xbb, 0x59, 0x3f, 0x6f, 0x54, 0x37, 0x9d, 0xd6, 0xb9, 0xf5, 0x50, 0xb9, 0xb2, 0xfc, 0xca, - 0xe7, 0x83, 0x9d, 0xfd, 0x4e, 0xa7, 0x9e, 0x3b, 0x1f, 0x9e, 0x17, 0x2e, 0x5b, 0x17, 0x27, 0xe6, - 0x66, 0xef, 0x68, 0xb8, 0x6b, 0x56, 0xb5, 0xbe, 0xe6, 0x75, 0x0f, 0x4f, 0xb4, 0x83, 0xec, 0x65, - 0x7a, 0x58, 0x6f, 0x3a, 0x74, 0x3c, 0x76, 0x9e, 0xba, 0x7d, 0xbf, 0xa0, 0xb8, 0x95, 0x33, 0xbb, - 0x7b, 0x72, 0x76, 0x74, 0xff, 0xc5, 0x31, 0xd4, 0x61, 0x36, 0xfd, 0x78, 0xd5, 0x0b, 0xce, 0x6b, - 0x97, 0xc5, 0xe0, 0xe9, 0xfc, 0xfa, 0x34, 0x53, 0xad, 0x3e, 0x64, 0x1d, 0xef, 0x6c, 0xb7, 0x78, - 0x7c, 0x74, 0x92, 0xcc, 0x7f, 0x37, 0x8b, 0xb4, 0x5d, 0xa4, 0xde, 0x68, 0xe7, 0xd3, 0xb0, 0x56, - 0xc8, 0x29, 0xd7, 0x9f, 0xd4, 0xeb, 0x71, 0xd6, 0xb6, 0x36, 0xd3, 0xed, 0xf3, 0x7d, 0x6f, 0xb4, - 0x79, 0x56, 0x39, 0x68, 0xec, 0x76, 0x8a, 0xc6, 0xd3, 0x60, 0xf4, 0xcf, 0xee, 0x49, 0xfe, 0xbe, - 0x39, 0xa0, 0xfd, 0x82, 0x91, 0x3c, 0xd8, 0xdf, 0xcf, 0xd0, 0xa7, 0x13, 0x85, 0x3a, 0xb9, 0xf6, - 0xee, 0xf7, 0xe2, 0x79, 0xdb, 0x49, 0x5e, 0x7e, 0xbf, 0xea, 0xdc, 0x77, 0x3f, 0xe7, 0x9a, 0xf4, - 0xac, 0x3f, 0xaa, 0x7e, 0x1a, 0x5d, 0xd6, 0xee, 0xf3, 0x86, 0x56, 0xa9, 0xde, 0x14, 0x9e, 0xbc, - 0xaa, 0x59, 0xad, 0x66, 0xb2, 0x97, 0xf7, 0xde, 0xd3, 0x20, 0xb8, 0x3f, 0xfa, 0x62, 0x9d, 0x57, - 0xd3, 0x0f, 0x5d, 0xa5, 0x66, 0x8f, 0xcf, 0xc6, 0x83, 0xcd, 0xe0, 0xd3, 0xd3, 0x71, 0xd6, 0x3a, - 0x38, 0x6b, 0x17, 0x06, 0x07, 0x39, 0x7f, 0x77, 0x6f, 0xf4, 0xb9, 0x7f, 0xf3, 0x79, 0xe8, 0x75, - 0x8b, 0xb9, 0xfa, 0x97, 0x1b, 0xe0, 0xee, 0x61, 0xbf, 0x90, 0xbc, 0x36, 0xc6, 0x27, 0xc1, 0xf7, - 0x71, 0x70, 0x4d, 0x8f, 0xbe, 0x7f, 0x6e, 0xde, 0x5f, 0x5e, 0x9e, 0xb4, 0x8e, 0xaa, 0xc9, 0xf6, - 0xe0, 0x40, 0xeb, 0xf5, 0x8f, 0x06, 0x85, 0xe0, 0xcc, 0xce, 0xf9, 0x5f, 0x76, 0x2b, 0x4e, 0xff, - 0xe8, 0x41, 0xe9, 0x3d, 0xed, 0xef, 0x5a, 0x5e, 0x72, 0x67, 0xff, 0x1f, 0xfb, 0xa1, 0xba, 0x57, - 0x35, 0x3e, 0xed, 0x0f, 0x1a, 0x3b, 0x37, 0x0d, 0xbb, 0x92, 0xed, 0x1f, 0x7d, 0x0e, 0xac, 0xfa, - 0xfd, 0xde, 0xb8, 0x73, 0x38, 0xde, 0xf3, 0xf6, 0x9f, 0xc6, 0x87, 0x9f, 0xee, 0x3d, 0x7a, 0x73, - 0x61, 0x37, 0xbf, 0x7c, 0xea, 0x18, 0x35, 0xaf, 0x6e, 0x3f, 0xb9, 0x35, 0x37, 0x18, 0xd1, 0x6b, - 0x5a, 0xe9, 0xee, 0x75, 0x0f, 0x1f, 0xcf, 0x76, 0x2e, 0x76, 0x77, 0xba, 0xe7, 0x37, 0x9d, 0xbd, - 0x9b, 0xee, 0x49, 0x73, 0xdc, 0x3c, 0x3c, 0xe9, 0x3e, 0xde, 0xa8, 0x7e, 0xb3, 0x31, 0x1a, 0x3d, - 0x34, 0x6b, 0xa7, 0x5f, 0xbc, 0x27, 0x3f, 0x73, 0x55, 0xef, 0xdd, 0xf7, 0x9c, 0xd3, 0x87, 0x7c, - 0xf3, 0xf4, 0xc1, 0xfb, 0xfe, 0x78, 0x5c, 0xbb, 0xd8, 0x1c, 0x57, 0xbf, 0x8f, 0x1f, 0x4f, 0xc6, - 0xcd, 0xca, 0xfe, 0x71, 0x47, 0xed, 0x7d, 0xae, 0xef, 0x1c, 0xdc, 0xd8, 0x1d, 0x8d, 0x36, 0xdd, - 0xd3, 0xc6, 0xfe, 0x81, 0x79, 0x91, 0x3c, 0x1c, 0x1d, 0x67, 0xf6, 0x2c, 0x3b, 0xff, 0xb4, 0x33, - 0xba, 0xfe, 0xb2, 0xaf, 0x3e, 0x3e, 0x34, 0x3e, 0x3f, 0x9c, 0x1a, 0xf9, 0xef, 0x41, 0xcd, 0xa6, - 0x2d, 0x3a, 0x38, 0x1f, 0x56, 0x93, 0x9d, 0x6c, 0xff, 0xcb, 0xb5, 0x65, 0x9c, 0x06, 0x9b, 0xf7, - 0xe3, 0xdd, 0xa6, 0x96, 0x3d, 0xd7, 0xbe, 0x7f, 0xaa, 0xe6, 0xae, 0x2f, 0x1a, 0x43, 0xcf, 0xfe, - 0x94, 0xf9, 0x52, 0x3b, 0xfe, 0xac, 0x64, 0x9d, 0x23, 0xf3, 0xf8, 0xec, 0x53, 0x70, 0x7e, 0x7a, - 0xfc, 0xe4, 0x1e, 0x5c, 0x3c, 0x9d, 0x3d, 0xe5, 0x37, 0x6f, 0x4e, 0xce, 0xb4, 0xa1, 0x55, 0xd8, - 0x55, 0xd5, 0x76, 0x30, 0x3c, 0xff, 0x7c, 0x53, 0x7d, 0x1a, 0x07, 0x85, 0xfb, 0xf6, 0xe8, 0x54, - 0x55, 0x2e, 0xce, 0x3b, 0x47, 0xb9, 0xee, 0x05, 0xd3, 0x89, 0xca, 0xce, 0x3f, 0xf5, 0xcb, 0xdc, - 0x9e, 0xf7, 0xf0, 0x4f, 0xa7, 0xd3, 0xd1, 0x75, 0x61, 0x7b, 0x03, 0x5c, 0x67, 0xcb, 0xb3, 0xfa, - 0x01, 0x61, 0x21, 0xac, 0x80, 0xba, 0x9c, 0xbe, 0x37, 0x86, 0x06, 0x6f, 0x05, 0x80, 0xf6, 0xc0, - 0x61, 0xc5, 0x22, 0xd2, 0x39, 0x34, 0x13, 0x54, 0x9c, 0x78, 0x34, 0x18, 0x78, 0x0e, 0x31, 0xe5, - 0x0e, 0x0d, 0xf6, 0x6c, 0x8a, 0x45, 0x87, 0x9d, 0x31, 0xeb, 0x9a, 0xce, 0x40, 0x5b, 0x7b, 0x0b, - 0x90, 0x2d, 0x88, 0xad, 0x02, 0x1a, 0x02, 0x23, 0xe0, 0xd0, 0xf0, 0xc0, 0xc1, 0x9a, 0x90, 0x87, - 0x63, 0x0b, 0x9a, 0x0a, 0xb6, 0x1a, 0xd8, 0x8a, 0x74, 0x58, 0xa3, 0xc7, 0x82, 0xf5, 0xfc, 0x62, - 0x82, 0xdb, 0x61, 0x81, 0x08, 0x20, 0x18, 0x16, 0xa4, 0x85, 0xb0, 0x79, 0x23, 0xf4, 0xfa, 0x0b, - 0x01, 0xce, 0xfa, 0xb0, 0x11, 0x87, 0x74, 0xd5, 0xf5, 0x23, 0x56, 0x63, 0x45, 0x84, 0xc6, 0xa8, - 0x62, 0x63, 0x21, 0xac, 0x58, 0x76, 0x8b, 0x91, 0x57, 0x62, 0x05, 0x89, 0x52, 0x7e, 0x25, 0xce, - 0xc8, 0x68, 0xf0, 0xbf, 0xb0, 0xcd, 0xe3, 0x8c, 0x0d, 0x1e, 0x68, 0xbc, 0x55, 0x94, 0x0c, 0x24, - 0xa2, 0x3c, 0xc6, 0xc8, 0x13, 0x4d, 0xeb, 0x16, 0x87, 0xd9, 0x5a, 0xfe, 0xe9, 0x58, 0x05, 0x2f, - 0x9f, 0xed, 0x66, 0x87, 0xc5, 0x6e, 0x2a, 0x0b, 0x4f, 0x45, 0xa2, 0x2a, 0xb3, 0x27, 0x4d, 0x23, - 0x79, 0x84, 0xeb, 0xa6, 0x8a, 0x4f, 0x42, 0xe4, 0xad, 0x37, 0xc8, 0x73, 0x87, 0x03, 0x48, 0x49, - 0x15, 0xe9, 0x09, 0x34, 0xc2, 0x6d, 0x6b, 0xdb, 0x1b, 0x61, 0x1f, 0x61, 0x96, 0x96, 0x04, 0x2e, - 0x1f, 0xfb, 0x4f, 0xe3, 0xf4, 0x84, 0x24, 0xfa, 0x6c, 0x06, 0x20, 0x2b, 0x01, 0xee, 0xb1, 0xf6, - 0x9e, 0x11, 0x78, 0xd6, 0xa3, 0x08, 0xd3, 0x68, 0x30, 0xbe, 0x8f, 0xc7, 0x11, 0x58, 0x01, 0x21, - 0x1b, 0x16, 0x60, 0x3d, 0x2f, 0xec, 0x0a, 0x8b, 0x51, 0x17, 0x8b, 0x96, 0x19, 0x60, 0x0a, 0x48, - 0xeb, 0x0e, 0x82, 0x52, 0x1b, 0x66, 0x36, 0x43, 0xf2, 0xae, 0xb2, 0x23, 0xf0, 0x50, 0x02, 0x03, - 0x33, 0x9a, 0x65, 0x6d, 0x1c, 0x8c, 0x80, 0xb6, 0xd1, 0x04, 0x04, 0x21, 0x74, 0xd4, 0x05, 0x9b, - 0x9a, 0x0d, 0x90, 0xac, 0x7e, 0x54, 0xa7, 0x13, 0xb6, 0x8f, 0x28, 0x4c, 0x80, 0x4d, 0x25, 0x10, - 0x25, 0x06, 0x89, 0x3b, 0x0f, 0x50, 0x8e, 0x60, 0xea, 0x50, 0x70, 0xe6, 0x25, 0x51, 0xc6, 0x59, - 0x36, 0x98, 0xe0, 0x66, 0x56, 0xe6, 0x23, 0x1b, 0xe1, 0x90, 0x78, 0xd5, 0x13, 0x07, 0xb9, 0x7d, - 0x26, 0xdd, 0x43, 0xc3, 0x1e, 0x50, 0xec, 0x45, 0x0a, 0x01, 0x01, 0x18, 0x04, 0x85, 0x99, 0xa2, - 0x3b, 0x61, 0x5b, 0xdb, 0x25, 0xc7, 0xac, 0x1b, 0x10, 0xe2, 0xa3, 0x56, 0x86, 0x7b, 0x9a, 0x2d, - 0x6c, 0x37, 0xa8, 0xd7, 0x07, 0x62, 0x40, 0xa0, 0x23, 0x41, 0x14, 0xea, 0xf9, 0x01, 0x81, 0x38, - 0x9e, 0x57, 0xb7, 0x90, 0x43, 0x58, 0xb5, 0x23, 0xef, 0xed, 0xa0, 0x9c, 0x9a, 0x4d, 0xb3, 0xb1, - 0x3c, 0x8f, 0xad, 0x79, 0xcf, 0xcd, 0xc3, 0x86, 0x47, 0xd5, 0x32, 0x92, 0x7a, 0xdf, 0x09, 0xca, - 0x73, 0x74, 0x50, 0xeb, 0x18, 0xbe, 0x33, 0x5a, 0xa5, 0x81, 0x1b, 0x8c, 0x25, 0xbf, 0xc0, 0x91, - 0x0d, 0xc6, 0x12, 0xf8, 0x00, 0x6a, 0xcc, 0x49, 0x75, 0x3a, 0x08, 0x20, 0x0e, 0x24, 0xbc, 0xb9, - 0xf4, 0x4a, 0x9e, 0x6c, 0xc4, 0x99, 0xb2, 0x34, 0x23, 0x79, 0x15, 0x47, 0x46, 0xc0, 0x4a, 0xe0, - 0xde, 0x3a, 0x86, 0xcc, 0x64, 0xfd, 0x59, 0x7e, 0x40, 0xf8, 0x0f, 0x0c, 0xa9, 0x5e, 0xd6, 0x8f, - 0xe2, 0x34, 0x5a, 0x84, 0xe9, 0x1a, 0xc2, 0x76, 0xcd, 0xed, 0x51, 0x52, 0xf1, 0x7d, 0x0b, 0x22, - 0x53, 0x27, 0x20, 0x37, 0x95, 0xe3, 0xd8, 0x80, 0x17, 0x68, 0xba, 0xf1, 0x0b, 0x62, 0xce, 0xe2, - 0xac, 0xfd, 0x25, 0xc2, 0x6e, 0xb0, 0xec, 0x84, 0xb4, 0x5c, 0x93, 0xfe, 0x22, 0x75, 0x23, 0xe2, - 0x32, 0xfd, 0x5d, 0x37, 0xf7, 0xeb, 0x48, 0xdc, 0xa5, 0x8f, 0xcf, 0x50, 0xb8, 0xb6, 0x77, 0x4d, - 0x12, 0x6f, 0xdb, 0x59, 0xfc, 0x27, 0x3e, 0x4b, 0x65, 0x08, 0x13, 0x85, 0xed, 0xdd, 0xbd, 0x2a, - 0x49, 0x68, 0xd9, 0xac, 0x14, 0xfe, 0x89, 0x1b, 0xaf, 0xa6, 0xe0, 0xaf, 0x48, 0x25, 0x24, 0x12, - 0x1e, 0x05, 0x46, 0x39, 0x9d, 0xf9, 0x7e, 0x2a, 0xb3, 0xb6, 0xdf, 0x12, 0xcb, 0x35, 0x53, 0xbe, - 0x92, 0x6e, 0xe3, 0x26, 0xa4, 0xeb, 0xcf, 0x91, 0x8e, 0x75, 0x22, 0xf5, 0x14, 0xfc, 0x07, 0xa9, - 0x9a, 0x44, 0xd4, 0x82, 0x44, 0x9e, 0xa7, 0xe6, 0x46, 0x64, 0x44, 0xb0, 0x94, 0x29, 0x6c, 0xd7, - 0xf1, 0x42, 0x12, 0x2f, 0x8f, 0x0b, 0x87, 0xe1, 0x06, 0x90, 0x5e, 0x1b, 0x0d, 0x76, 0xb3, 0x96, - 0x6f, 0x7f, 0x4e, 0x92, 0x9b, 0xcc, 0xfe, 0x38, 0x40, 0x37, 0x5e, 0x74, 0x15, 0xb6, 0x77, 0x66, - 0x2d, 0x33, 0x2e, 0x6c, 0xc4, 0xd8, 0xf0, 0xb3, 0xb9, 0xcb, 0xaf, 0x70, 0xdb, 0xac, 0x26, 0xb7, - 0x11, 0x46, 0x34, 0x9c, 0x44, 0x8c, 0x7b, 0x2b, 0x88, 0x90, 0x9e, 0xe5, 0xe8, 0x82, 0x0a, 0x57, - 0x03, 0xfc, 0xb5, 0x96, 0xcb, 0x09, 0x11, 0x85, 0x54, 0xad, 0xc8, 0x94, 0xa6, 0x6f, 0x38, 0x5c, - 0x65, 0xe6, 0x63, 0xaf, 0x10, 0x42, 0xd8, 0x06, 0x08, 0xa0, 0x11, 0xf4, 0xff, 0x29, 0x5d, 0x3f, - 0xb2, 0x7a, 0x56, 0x10, 0x51, 0x68, 0xe3, 0xd8, 0x78, 0x24, 0x8e, 0x4b, 0xdc, 0x36, 0x61, 0x9d, - 0x7e, 0x1a, 0x8d, 0xd7, 0x3a, 0x99, 0xdd, 0xf8, 0x23, 0xd4, 0x22, 0x1b, 0x2b, 0xd4, 0x5a, 0x41, - 0x6a, 0x91, 0x5a, 0x39, 0x55, 0x9b, 0x51, 0x4b, 0xcb, 0xe5, 0x17, 0xa9, 0x35, 0x1f, 0x1b, 0x52, - 0x0b, 0x20, 0x9e, 0xa1, 0x56, 0xa4, 0x3f, 0x5d, 0x23, 0x85, 0x15, 0x32, 0xe1, 0xd7, 0xa9, 0xd7, - 0x35, 0x0e, 0x41, 0x51, 0x6b, 0x15, 0xb2, 0x4b, 0x87, 0x56, 0x8b, 0x92, 0xc3, 0xdd, 0x35, 0x74, - 0xda, 0x58, 0x6f, 0x15, 0xf9, 0xe6, 0xc3, 0xae, 0x85, 0x52, 0xbf, 0x10, 0x8b, 0x88, 0x39, 0x41, - 0xd8, 0x3a, 0x33, 0xd5, 0x63, 0x21, 0xd3, 0x57, 0x08, 0x99, 0xbe, 0xb6, 0xf8, 0x8b, 0x23, 0x36, - 0xf5, 0xbe, 0x2a, 0x8a, 0x2a, 0xfc, 0x2b, 0x3b, 0xbc, 0x5c, 0xdc, 0xe2, 0xa5, 0x63, 0x7d, 0x1f, - 0x2c, 0xee, 0x74, 0xe3, 0x05, 0xfb, 0xff, 0xda, 0x9d, 0x6e, 0xf0, 0xad, 0xe2, 0x82, 0xe4, 0x85, - 0xad, 0x1a, 0xaf, 0xd9, 0xeb, 0xc6, 0x2f, 0x86, 0x77, 0x5d, 0xe3, 0xc4, 0xe8, 0xd1, 0xf8, 0x66, - 0xf1, 0xf9, 0x5f, 0xdb, 0x27, 0x5b, 0x2c, 0xda, 0xe8, 0x3c, 0x90, 0xfe, 0x64, 0x05, 0xad, 0x2e, - 0x75, 0x84, 0x3f, 0xa1, 0xdc, 0x10, 0x58, 0x5c, 0x62, 0x6c, 0x11, 0x89, 0xe7, 0x59, 0xba, 0xeb, - 0x42, 0x84, 0xe6, 0xc4, 0xb7, 0xb5, 0x41, 0xfe, 0xe4, 0xb6, 0xa2, 0x25, 0xf9, 0xbe, 0xfe, 0x80, - 0x2b, 0x0d, 0x20, 0xcb, 0xa1, 0x10, 0x2b, 0xb0, 0x33, 0x66, 0x61, 0xfb, 0x82, 0x3d, 0x92, 0xf0, - 0xcc, 0x19, 0x94, 0xe3, 0xf5, 0xce, 0x74, 0x71, 0x1f, 0xfc, 0xcc, 0x28, 0xda, 0x81, 0x13, 0xda, - 0x19, 0x8b, 0x79, 0xc7, 0x4e, 0x4c, 0x02, 0x95, 0xd0, 0xf8, 0x28, 0xa1, 0xf1, 0xc9, 0x67, 0x96, - 0x3d, 0xf3, 0x22, 0x86, 0xcb, 0x8b, 0xc7, 0x1d, 0xf3, 0xdc, 0xb1, 0xb1, 0xfc, 0x11, 0x07, 0xcf, - 0x47, 0xe2, 0xf9, 0xf9, 0x6c, 0x74, 0xec, 0x4c, 0x1d, 0x52, 0xb8, 0x30, 0x95, 0x8a, 0x93, 0x32, - 0xcd, 0x52, 0x9d, 0x79, 0x6e, 0x14, 0x8d, 0x9b, 0xbd, 0xa6, 0x52, 0xc5, 0x86, 0x70, 0x43, 0xb3, - 0x46, 0x61, 0x29, 0xa7, 0xfc, 0x8d, 0xa4, 0xe9, 0x75, 0x42, 0x88, 0xfb, 0x9b, 0x2d, 0xcd, 0x36, - 0xf1, 0x9a, 0x94, 0x76, 0x7d, 0xa5, 0x1c, 0x4f, 0x02, 0xac, 0xd6, 0x03, 0x4c, 0x36, 0x42, 0xd5, - 0x68, 0xe0, 0x94, 0x09, 0x11, 0x73, 0x25, 0x76, 0x16, 0x03, 0x46, 0x82, 0x1f, 0xc6, 0x44, 0xb9, - 0xee, 0xba, 0x9a, 0xfa, 0x06, 0x2b, 0xaa, 0x17, 0x48, 0xa1, 0x56, 0x30, 0x72, 0x24, 0x87, 0x15, - 0x6a, 0xa2, 0xa4, 0xf0, 0x6e, 0xf6, 0x84, 0x77, 0x5d, 0x55, 0x31, 0x62, 0x0d, 0xa9, 0x58, 0x77, - 0x0a, 0x9e, 0x8e, 0x0b, 0x44, 0xcd, 0x19, 0x19, 0x92, 0x61, 0x4d, 0x6a, 0x2a, 0x93, 0xc2, 0xfb, - 0xf0, 0x89, 0x2c, 0x3d, 0x91, 0xd8, 0x13, 0xf6, 0x60, 0xee, 0xbc, 0xc1, 0x93, 0x67, 0xf2, 0xde, - 0x69, 0xfa, 0xfd, 0x32, 0xdb, 0x49, 0x98, 0x14, 0x2f, 0xf2, 0xf8, 0x15, 0x3a, 0x32, 0x93, 0xa0, - 0xb0, 0x38, 0x3e, 0x4b, 0x87, 0xe3, 0xe7, 0x3c, 0x4b, 0xf6, 0x00, 0x41, 0xaf, 0x21, 0x23, 0x21, - 0x25, 0x32, 0xd3, 0x1a, 0x8e, 0x4a, 0xe4, 0x8a, 0x23, 0x31, 0x5a, 0x2c, 0xa8, 0xaf, 0xd5, 0x12, - 0x36, 0xd7, 0xcc, 0x31, 0x47, 0xc1, 0x4b, 0x1e, 0x0b, 0x3b, 0x7c, 0xce, 0xf8, 0xe7, 0x0a, 0x1a, - 0x37, 0x60, 0x66, 0xff, 0x14, 0x1a, 0x37, 0x6b, 0xd1, 0x88, 0x48, 0xba, 0xb1, 0x5e, 0x6f, 0xd2, - 0xfd, 0xb0, 0xb8, 0x10, 0x43, 0x2c, 0xf6, 0x56, 0x53, 0x5c, 0x88, 0x67, 0xaf, 0x6a, 0xe1, 0xde, - 0x76, 0xe1, 0x21, 0xe4, 0x59, 0x97, 0x7a, 0xc0, 0xb8, 0xa6, 0xb7, 0x0d, 0x79, 0x11, 0x5e, 0x48, - 0x15, 0xe5, 0x14, 0xd3, 0xde, 0xd0, 0x3a, 0x18, 0x28, 0x8b, 0x31, 0xde, 0xce, 0x0c, 0x55, 0xb8, - 0x76, 0x64, 0x93, 0xf8, 0xb6, 0x10, 0x96, 0x6f, 0x2a, 0x8e, 0xc7, 0x73, 0x6c, 0x85, 0x39, 0x16, - 0xaa, 0x50, 0x71, 0x85, 0x5e, 0x7e, 0x17, 0x8c, 0x59, 0xf1, 0x5e, 0x87, 0xcd, 0xdd, 0xf7, 0x28, - 0x2a, 0x99, 0xb0, 0x52, 0x8c, 0x8a, 0xbd, 0x9b, 0x11, 0xbe, 0x5f, 0x09, 0x6b, 0x7b, 0xad, 0xb0, - 0x48, 0xce, 0xaa, 0x73, 0xf8, 0x32, 0x6b, 0x54, 0x24, 0x9f, 0x13, 0x78, 0x2e, 0x8a, 0x9e, 0x31, - 0x4a, 0x2d, 0x1d, 0x1c, 0x3e, 0x8b, 0x7f, 0x84, 0x0f, 0x83, 0x47, 0x6c, 0x7e, 0xb2, 0x14, 0x31, - 0xec, 0x40, 0x17, 0xea, 0xc6, 0xe8, 0x90, 0xd1, 0x9d, 0x0f, 0x99, 0xaf, 0x0f, 0x94, 0x60, 0x14, - 0x9d, 0xe1, 0xf1, 0x5a, 0x1c, 0x22, 0x06, 0x73, 0x78, 0xcb, 0x69, 0xbb, 0xeb, 0xc9, 0x32, 0x37, - 0xc1, 0xd1, 0x79, 0x2d, 0x1b, 0x86, 0x71, 0x31, 0xcb, 0xfb, 0xa1, 0xc1, 0x74, 0x1d, 0x7b, 0x0c, - 0x14, 0x08, 0xef, 0x04, 0x54, 0xf5, 0x08, 0x78, 0x91, 0x52, 0x2c, 0xa4, 0x5f, 0x3a, 0x24, 0x7d, - 0x16, 0x43, 0x0e, 0x18, 0x45, 0xb6, 0xfd, 0x71, 0xb8, 0x24, 0x6f, 0x9e, 0x79, 0x8b, 0xd8, 0x79, - 0x29, 0xa2, 0xca, 0x1f, 0x63, 0xcb, 0x75, 0x8c, 0xbe, 0x3a, 0x03, 0x86, 0x07, 0x86, 0x1d, 0xc7, - 0x28, 0x5c, 0x80, 0xfb, 0x3d, 0xc7, 0xfc, 0xb5, 0xf9, 0xe7, 0xbb, 0xc2, 0x28, 0xa2, 0x9b, 0xd9, - 0x9e, 0xad, 0x08, 0x66, 0xcb, 0x87, 0x64, 0x4e, 0xd8, 0xbe, 0xe2, 0x37, 0x44, 0x95, 0x15, 0xb9, - 0xc0, 0x07, 0x70, 0x55, 0x4f, 0x45, 0x86, 0xc1, 0x88, 0x0e, 0x63, 0xf0, 0xbd, 0x64, 0xbf, 0x94, - 0x4e, 0x77, 0xac, 0xa0, 0x3b, 0x68, 0xca, 0x2d, 0xb7, 0x97, 0x1e, 0x51, 0xef, 0xc1, 0x87, 0xb0, - 0xaf, 0x97, 0xc6, 0x2a, 0x4a, 0x8a, 0x05, 0x49, 0x10, 0x23, 0xcd, 0x6a, 0x8d, 0xe9, 0xa6, 0xed, - 0x36, 0xd3, 0x98, 0xff, 0xa6, 0xeb, 0x7b, 0x95, 0xdd, 0xe3, 0x3d, 0xb9, 0x87, 0x99, 0x2e, 0xf7, - 0xc8, 0xba, 0xf0, 0xb5, 0x69, 0x1b, 0xce, 0x03, 0x58, 0x1a, 0x6a, 0xf7, 0xd3, 0x95, 0x26, 0xf8, - 0xb7, 0xad, 0xb4, 0x01, 0x1b, 0x00, 0x4c, 0xe7, 0x4a, 0xb9, 0xc4, 0x19, 0x76, 0x9e, 0xcc, 0xeb, - 0xbc, 0xeb, 0x65, 0x61, 0x46, 0x94, 0x18, 0xe4, 0x4c, 0x3e, 0x5a, 0x86, 0x33, 0x34, 0x7c, 0xae, - 0x68, 0x88, 0x6c, 0x95, 0x3d, 0x33, 0x7a, 0xf3, 0xae, 0xed, 0x97, 0xab, 0xde, 0xae, 0x97, 0xc0, - 0x2a, 0x75, 0x07, 0x22, 0x29, 0x1d, 0x2b, 0xdf, 0xb3, 0x98, 0x4a, 0x94, 0xfc, 0xa7, 0x6b, 0xde, - 0xc4, 0xad, 0x2f, 0x36, 0xdc, 0xcc, 0x1b, 0x6e, 0x58, 0x03, 0xf8, 0x82, 0x79, 0x13, 0x3a, 0x06, - 0x51, 0xea, 0x7b, 0x23, 0xde, 0x14, 0x29, 0x3f, 0xc0, 0x1d, 0xee, 0x86, 0x50, 0x2c, 0xda, 0x11, - 0xa5, 0x7f, 0x8e, 0xc2, 0x86, 0x48, 0xaa, 0x45, 0x29, 0x68, 0x74, 0x78, 0xd3, 0x62, 0x84, 0x23, - 0x4a, 0x4d, 0xaf, 0xd3, 0xe5, 0x3d, 0x2b, 0x79, 0x2d, 0xcc, 0x4c, 0x67, 0x18, 0x2c, 0x05, 0x37, - 0xa2, 0xd4, 0xba, 0x6f, 0x86, 0x5b, 0x5a, 0x91, 0x65, 0x51, 0x6a, 0x7b, 0x3d, 0xde, 0xb9, 0x54, - 0x81, 0x83, 0x61, 0x47, 0x27, 0xd1, 0xb0, 0xa5, 0xc4, 0x50, 0x94, 0x30, 0x35, 0xa2, 0xbc, 0x97, - 0x65, 0x49, 0xd8, 0x72, 0x39, 0x6b, 0xb8, 0x0c, 0x5b, 0x4e, 0x66, 0x2d, 0x2c, 0xea, 0x16, 0x25, - 0xa3, 0xc1, 0x1b, 0xd6, 0x94, 0x55, 0x60, 0xbd, 0xfd, 0x46, 0x6c, 0xbd, 0xfd, 0x65, 0x74, 0xec, - 0x46, 0xd8, 0xbd, 0x52, 0xbf, 0x15, 0x25, 0x0b, 0x3d, 0x11, 0xeb, 0x8c, 0x19, 0x15, 0x6c, 0x6e, - 0x2d, 0x34, 0xcf, 0x35, 0x1f, 0xa8, 0x19, 0x75, 0xad, 0x58, 0x05, 0x1c, 0x17, 0x1b, 0x85, 0xc4, - 0x6d, 0xcd, 0xd9, 0x1b, 0x85, 0x56, 0xa2, 0x34, 0xd2, 0x47, 0x96, 0x63, 0xba, 0x23, 0x89, 0xcb, - 0x58, 0xc8, 0xeb, 0x98, 0xfc, 0x31, 0x96, 0x5d, 0x2d, 0xb3, 0x8c, 0x27, 0xc8, 0x48, 0xde, 0xab, - 0x65, 0xf2, 0x46, 0x5d, 0xa8, 0x93, 0x15, 0xcf, 0x33, 0xc6, 0xfa, 0xed, 0x9d, 0x84, 0x6e, 0x09, - 0x99, 0xa6, 0x0b, 0x82, 0x84, 0x29, 0x16, 0x7a, 0xd2, 0xba, 0x3b, 0xf2, 0x75, 0x53, 0x86, 0x94, - 0xd0, 0x1b, 0x47, 0x64, 0xa8, 0xd8, 0x76, 0x42, 0x90, 0xa3, 0x3c, 0x0c, 0x36, 0xa1, 0x2b, 0x65, - 0x6b, 0x2b, 0x3e, 0x42, 0xb6, 0xa9, 0xd3, 0x09, 0xba, 0x65, 0x2b, 0x99, 0x14, 0xe3, 0xed, 0xb7, - 0xd6, 0x9d, 0xcc, 0xd4, 0xeb, 0xc8, 0xf2, 0x03, 0x19, 0x78, 0x03, 0x1c, 0x63, 0x73, 0x94, 0x51, - 0x23, 0x8c, 0x56, 0x2b, 0x8a, 0xe8, 0x74, 0xe1, 0x2d, 0xa5, 0x54, 0x90, 0x78, 0x13, 0x26, 0x24, - 0x51, 0x73, 0xa1, 0x50, 0x10, 0x40, 0xe0, 0x7d, 0x78, 0x86, 0xa7, 0x56, 0xab, 0x25, 0x48, 0x1d, - 0x8f, 0x52, 0x27, 0xea, 0x57, 0x72, 0xf9, 0xa6, 0x62, 0x08, 0x92, 0x47, 0xcd, 0xa8, 0x09, 0x1a, - 0x72, 0x0a, 0xc0, 0xf1, 0x38, 0xd9, 0xed, 0x74, 0x6c, 0x7a, 0xda, 0x6e, 0xf3, 0x88, 0x51, 0x82, - 0x88, 0xb1, 0x92, 0x93, 0x72, 0xd1, 0x3b, 0x0d, 0xf8, 0x0e, 0xc4, 0xfc, 0xb1, 0x20, 0xa9, 0x85, - 0x9a, 0xba, 0x00, 0xb0, 0x04, 0x81, 0x33, 0x1c, 0x03, 0x58, 0xae, 0x92, 0x91, 0x32, 0xe1, 0x9b, - 0x13, 0xf8, 0xfe, 0x46, 0xec, 0xb1, 0x20, 0x6d, 0xc6, 0x9e, 0x54, 0x65, 0xb9, 0x57, 0xcd, 0x7d, - 0x59, 0xc4, 0xcd, 0xf9, 0x83, 0xa8, 0xa9, 0x4b, 0xb8, 0xa9, 0x4b, 0xc8, 0xa9, 0x8b, 0xd8, 0x69, - 0xca, 0x4a, 0x37, 0x47, 0x2f, 0x32, 0x15, 0x31, 0x95, 0x6f, 0x5c, 0x1d, 0x60, 0x3c, 0x2e, 0x88, - 0xf1, 0x53, 0xb6, 0x57, 0x1f, 0xf9, 0xd1, 0x80, 0x59, 0xfb, 0xfa, 0xc1, 0x0e, 0x93, 0x45, 0x1f, - 0x8f, 0xf5, 0xd6, 0x4b, 0xe3, 0xb7, 0x89, 0x00, 0xf6, 0xa3, 0x14, 0x78, 0x03, 0x2a, 0xa1, 0x74, - 0x0b, 0xa5, 0x77, 0x13, 0xb4, 0x50, 0x32, 0x0b, 0x06, 0xa7, 0x12, 0x9a, 0x38, 0xa1, 0x34, 0x11, - 0x2c, 0x13, 0x7b, 0xc0, 0xa8, 0xcd, 0x3a, 0x00, 0xf4, 0xf6, 0x5b, 0xd9, 0x86, 0x7c, 0x32, 0x00, - 0x11, 0x0d, 0x30, 0x2b, 0xa4, 0x8f, 0x82, 0xae, 0x23, 0x0c, 0x33, 0xfd, 0x72, 0x68, 0xf9, 0x3f, - 0xce, 0x46, 0x95, 0xc0, 0x70, 0xf2, 0xbb, 0x32, 0xe8, 0x29, 0xe4, 0xd2, 0xb6, 0x0e, 0x1e, 0xc0, - 0x87, 0x30, 0x35, 0x48, 0x80, 0x99, 0xe2, 0x5d, 0x22, 0x9b, 0xd3, 0xd1, 0xdf, 0xa8, 0x92, 0xa1, - 0xa7, 0xd4, 0xb2, 0xa1, 0x83, 0x6d, 0x93, 0xa3, 0xaa, 0xeb, 0xa1, 0x63, 0xd2, 0xc7, 0x70, 0xb4, - 0xc5, 0x7a, 0x78, 0xe5, 0xd3, 0xbf, 0x35, 0xee, 0xc2, 0xa9, 0x0d, 0x1d, 0x6c, 0xcc, 0xda, 0x01, - 0x2e, 0xeb, 0x59, 0x33, 0x00, 0x6c, 0xd6, 0xd2, 0x00, 0xc4, 0xc1, 0xd7, 0xdf, 0x28, 0x65, 0x56, - 0xfa, 0xd6, 0x19, 0xc4, 0xf2, 0xc0, 0xf7, 0xef, 0x13, 0x00, 0xa2, 0x82, 0x3d, 0xd4, 0x8d, 0x75, - 0xe3, 0x3d, 0x36, 0x3e, 0x2c, 0xda, 0xea, 0x08, 0xb3, 0x3c, 0xc3, 0x47, 0x00, 0x51, 0x4b, 0x51, - 0x95, 0x79, 0x2d, 0x08, 0x2c, 0x02, 0xb4, 0x50, 0x38, 0x55, 0x06, 0x68, 0x3d, 0x4c, 0xfc, 0x68, - 0xe9, 0x1f, 0x84, 0x0f, 0x52, 0x17, 0x3f, 0xcb, 0xfe, 0x8f, 0x1f, 0x09, 0x88, 0xff, 0x6e, 0xc1, - 0xb0, 0xe8, 0xc2, 0x9d, 0xc0, 0x41, 0xfb, 0x48, 0x40, 0x08, 0x0c, 0x04, 0xa6, 0xfd, 0x1d, 0xbd, - 0xb5, 0x07, 0x26, 0x2a, 0x32, 0x68, 0x60, 0x18, 0xf1, 0x1c, 0x18, 0xbf, 0x3a, 0x05, 0x52, 0x94, - 0x10, 0x34, 0x53, 0x90, 0x26, 0x23, 0x48, 0xfd, 0xea, 0x10, 0x82, 0xed, 0x7b, 0x14, 0x2c, 0x92, - 0x13, 0xd8, 0xe3, 0xd2, 0x1b, 0x65, 0x2a, 0x4a, 0x43, 0xdd, 0xa1, 0x23, 0xc2, 0xa2, 0xc7, 0xf2, - 0x50, 0xc6, 0x50, 0x93, 0x4a, 0x43, 0x19, 0x02, 0x35, 0xd7, 0x30, 0xf5, 0x48, 0xe6, 0x12, 0xe2, - 0x04, 0x57, 0xa5, 0x3a, 0x33, 0xb2, 0x72, 0xab, 0x6b, 0xd9, 0xe0, 0x1b, 0x9c, 0x5b, 0xe5, 0x6e, - 0xe1, 0x1e, 0x16, 0xad, 0x04, 0x81, 0x67, 0x81, 0xb5, 0xa6, 0x09, 0x0c, 0xd5, 0xd1, 0x31, 0x1b, - 0x3a, 0xb8, 0x66, 0xbe, 0x5b, 0x69, 0x0c, 0xf7, 0x37, 0x21, 0x5f, 0x12, 0xf4, 0x8d, 0x1e, 0x33, - 0x5b, 0x3f, 0x7e, 0x18, 0x5b, 0xea, 0x8f, 0x1f, 0xe3, 0x2d, 0x55, 0x04, 0xa2, 0x18, 0xfa, 0x50, - 0x66, 0x61, 0x3b, 0x0c, 0x19, 0xca, 0x3c, 0x0f, 0x96, 0x12, 0x61, 0xdb, 0x76, 0x4e, 0xd5, 0x7e, - 0xfc, 0x88, 0x9a, 0xf1, 0x89, 0x0f, 0x51, 0xf3, 0x00, 0xad, 0xe6, 0x45, 0x51, 0xea, 0x70, 0x40, - 0xdd, 0x80, 0x3b, 0x0e, 0xa5, 0x8f, 0x91, 0x5c, 0x10, 0x0f, 0x7f, 0x66, 0xc9, 0x00, 0x11, 0x92, - 0x46, 0x52, 0x90, 0x48, 0x8d, 0x67, 0xd8, 0xf0, 0x38, 0x4e, 0x0a, 0x24, 0xd1, 0x33, 0x1e, 0x28, - 0xf1, 0x07, 0x90, 0xbb, 0x04, 0x5d, 0xcb, 0xc7, 0xe3, 0xd6, 0x56, 0x97, 0xfa, 0x04, 0xd2, 0x7f, - 0x8f, 0x80, 0x47, 0x0b, 0xcf, 0x5f, 0xf9, 0xb1, 0xa6, 0x88, 0x91, 0xb5, 0x20, 0xf5, 0x64, 0xd3, - 0x0b, 0xa3, 0xef, 0xc4, 0x90, 0xbd, 0x57, 0x6d, 0x48, 0x63, 0x6e, 0x94, 0x1b, 0x7a, 0x0f, 0x49, - 0xc2, 0xfa, 0x76, 0x21, 0x7c, 0x4f, 0x44, 0xbd, 0x32, 0x06, 0xf3, 0xd2, 0x3b, 0x50, 0x55, 0xc6, - 0xcc, 0x91, 0xae, 0x96, 0xd9, 0x89, 0xa1, 0xae, 0xbb, 0xb0, 0x91, 0x91, 0x0e, 0xf2, 0x10, 0x85, - 0x3a, 0x87, 0xa0, 0x7d, 0x87, 0x5b, 0x8d, 0xc8, 0x2b, 0x1c, 0x26, 0xf5, 0xac, 0x38, 0xc1, 0x8e, - 0xa6, 0xde, 0xb8, 0x3d, 0xbc, 0x93, 0x1e, 0xf1, 0x92, 0x54, 0xef, 0xa4, 0x0b, 0x76, 0xa3, 0xdd, - 0x49, 0x27, 0xec, 0x26, 0xc3, 0xa7, 0xa6, 0xfa, 0x61, 0x3a, 0x2b, 0x05, 0xfa, 0x31, 0x58, 0x1b, - 0xb9, 0x6d, 0xbb, 0x30, 0x2b, 0x4d, 0x1b, 0xe0, 0xa7, 0x75, 0x5a, 0xb6, 0xda, 0x89, 0xe8, 0xb8, - 0x14, 0x16, 0x16, 0xcb, 0xd4, 0xf6, 0x21, 0x81, 0x68, 0x27, 0x12, 0x41, 0x72, 0x24, 0xfe, 0xa5, - 0xe9, 0x88, 0x06, 0xb6, 0x4d, 0x6c, 0x3d, 0xf8, 0xdb, 0x48, 0x26, 0x8c, 0x94, 0x9a, 0x4a, 0xd8, - 0x29, 0xb8, 0x17, 0xc5, 0xe9, 0x3b, 0xb9, 0x3f, 0xf0, 0xbb, 0x89, 0xdb, 0xa6, 0xf4, 0x28, 0x5d, - 0x48, 0x27, 0x92, 0x2d, 0x51, 0x29, 0xb8, 0xc3, 0x76, 0xdf, 0xf5, 0x82, 0x44, 0x02, 0x9e, 0x44, - 0x7d, 0x9b, 0xde, 0xe6, 0xee, 0x52, 0x01, 0x7c, 0x70, 0xa9, 0x3d, 0xd5, 0x6f, 0x65, 0x59, 0x7e, - 0x77, 0x57, 0x3e, 0x5d, 0x82, 0xca, 0x22, 0x54, 0x36, 0x84, 0xaa, 0xa3, 0x06, 0xdc, 0x83, 0x71, - 0x90, 0x76, 0xf5, 0xd3, 0x70, 0xe3, 0xd2, 0x57, 0x5d, 0x91, 0x2a, 0x48, 0x30, 0x24, 0x0c, 0xdf, - 0x99, 0x52, 0xa6, 0x5b, 0xbb, 0x65, 0x0a, 0x7e, 0x72, 0xc2, 0xed, 0xd4, 0xe9, 0x2d, 0xbd, 0x03, - 0x71, 0x0b, 0x40, 0x14, 0xc1, 0xb1, 0x06, 0xb7, 0x40, 0x15, 0x17, 0x2e, 0x40, 0x93, 0x01, 0x5c, - 0x32, 0x77, 0x5c, 0xb7, 0xda, 0x68, 0x76, 0x60, 0x9b, 0x9e, 0x08, 0x1f, 0xf7, 0x5b, 0x0a, 0x50, - 0xfc, 0x5e, 0xa7, 0xa2, 0x04, 0x93, 0xa5, 0xd4, 0xd8, 0x54, 0x40, 0xd4, 0x32, 0x4e, 0x05, 0x7a, - 0xfb, 0xfe, 0x3d, 0x4e, 0xa6, 0xeb, 0x16, 0xde, 0x68, 0x70, 0xe3, 0x82, 0x4e, 0xb6, 0x75, 0x00, - 0x81, 0x29, 0xef, 0x75, 0x1d, 0xd4, 0xd8, 0xf9, 0x28, 0x00, 0x15, 0xeb, 0x1f, 0x29, 0x48, 0x95, - 0x50, 0x12, 0x84, 0xd2, 0x3d, 0xde, 0x24, 0xdb, 0xf8, 0x29, 0x4e, 0x19, 0x69, 0x67, 0x03, 0x92, - 0xaa, 0xae, 0xb7, 0x7f, 0x3e, 0x84, 0x11, 0x9e, 0x75, 0x03, 0x7a, 0x75, 0x44, 0x0f, 0x70, 0x04, - 0xd4, 0x19, 0xd7, 0x06, 0x5b, 0x5a, 0x2e, 0x07, 0xed, 0x7d, 0xb4, 0x1c, 0x52, 0x7b, 0x7b, 0x8e, - 0xb6, 0xc1, 0x66, 0xb0, 0xd8, 0xa7, 0x8b, 0xa0, 0xbe, 0x38, 0x61, 0xc6, 0xf1, 0x96, 0x02, 0x87, - 0x9c, 0x3b, 0xfd, 0xd6, 0x90, 0x2c, 0xc9, 0xbd, 0x43, 0x83, 0x2e, 0x24, 0xc3, 0x46, 0xb9, 0x67, - 0xf4, 0x13, 0x14, 0xd8, 0x20, 0x07, 0x6e, 0x03, 0xc4, 0xc1, 0xe9, 0x24, 0x40, 0x89, 0xe4, 0xbe, - 0x61, 0x36, 0xf0, 0x35, 0xbf, 0x84, 0x26, 0x09, 0x8a, 0x20, 0x8a, 0xf2, 0xbd, 0x6b, 0x39, 0x09, - 0x01, 0x76, 0x53, 0x4f, 0xea, 0x66, 0xb2, 0x95, 0x0c, 0x92, 0xdd, 0xb9, 0xa7, 0xa9, 0x27, 0xa3, - 0xa6, 0xaf, 0x49, 0x5d, 0x95, 0xbe, 0xfe, 0x65, 0x83, 0xfc, 0xfc, 0xf8, 0x41, 0x75, 0x1d, 0xa8, - 0xfa, 0x31, 0x51, 0xe1, 0xe2, 0x52, 0x17, 0x25, 0xe4, 0xae, 0x58, 0x82, 0x29, 0x00, 0x47, 0xc6, - 0xe5, 0xe9, 0x14, 0x9b, 0x96, 0xf8, 0x5a, 0x89, 0x04, 0x7e, 0xc6, 0x5e, 0xfb, 0x57, 0x9d, 0x59, - 0xe8, 0xc4, 0xde, 0x4d, 0x2a, 0x20, 0x16, 0xd3, 0xbb, 0xe9, 0xf4, 0x5b, 0x79, 0xe6, 0x24, 0x39, - 0x36, 0x76, 0xe4, 0x8c, 0xbe, 0x61, 0x1a, 0x41, 0x52, 0xd7, 0xe4, 0xec, 0xb4, 0x71, 0x41, 0x58, - 0xb6, 0x05, 0xc9, 0xd6, 0xbb, 0x09, 0xe6, 0x19, 0xe1, 0xec, 0xe9, 0x7b, 0xdf, 0x75, 0xd2, 0x7e, - 0x80, 0x5f, 0x2e, 0x25, 0x29, 0x93, 0x7c, 0x78, 0x37, 0xb1, 0xa7, 0x1f, 0x48, 0xaa, 0x46, 0x84, - 0x2a, 0xaf, 0x05, 0xa6, 0x2e, 0xc0, 0x71, 0x97, 0x88, 0xd1, 0xef, 0xdb, 0x56, 0x8b, 0xbd, 0x73, - 0xc7, 0xc6, 0x08, 0xdf, 0xca, 0x74, 0x1b, 0x85, 0x0c, 0xb7, 0xfc, 0x1f, 0x47, 0x90, 0x06, 0x70, - 0x25, 0xef, 0xdf, 0x13, 0x30, 0x8d, 0xd0, 0x64, 0xe3, 0xb3, 0x33, 0x35, 0xf5, 0x6f, 0x6f, 0x2f, - 0x1d, 0xc8, 0xeb, 0x78, 0xe9, 0xb6, 0x8d, 0x26, 0x87, 0x40, 0xba, 0xfc, 0x21, 0x80, 0x04, 0xdf, - 0xc6, 0xd4, 0x79, 0x4c, 0xba, 0xc6, 0x10, 0xed, 0x12, 0x05, 0x51, 0x32, 0x69, 0x1b, 0xa2, 0x60, - 0x93, 0x58, 0x0e, 0xb7, 0x4d, 0xbc, 0xfc, 0x07, 0x76, 0x89, 0x47, 0x08, 0x6e, 0x9b, 0x37, 0x03, - 0xeb, 0xdb, 0x16, 0x6c, 0x82, 0x61, 0x23, 0x8f, 0x8d, 0x9e, 0xfd, 0x1f, 0xe7, 0x6d, 0x8a, 0xe0, - 0xbb, 0xc9, 0x98, 0x48, 0x94, 0x08, 0x2e, 0x68, 0x38, 0xe6, 0x57, 0x7c, 0xa9, 0xf3, 0x3f, 0x0e, - 0x21, 0x6f, 0xf9, 0x44, 0xd4, 0x2f, 0xe1, 0x13, 0x21, 0xef, 0x26, 0x2c, 0x87, 0x08, 0x69, 0xc0, - 0xdb, 0x08, 0x69, 0x7b, 0x16, 0xe4, 0xc3, 0xf6, 0xf8, 0x2b, 0x2b, 0x96, 0x33, 0xa0, 0x93, 0x65, - 0x98, 0x01, 0x3b, 0x0b, 0xf9, 0x6a, 0x99, 0xbc, 0xff, 0x72, 0xb9, 0x3f, 0x5a, 0xd9, 0x75, 0x4a, - 0x64, 0x3b, 0x6a, 0xc4, 0x05, 0x07, 0xab, 0x20, 0xed, 0xf6, 0x02, 0xcc, 0x6f, 0x30, 0x8b, 0x4b, - 0x4e, 0xdb, 0x00, 0xa5, 0x7a, 0x25, 0xd3, 0x30, 0xe9, 0x93, 0xe3, 0x6f, 0x30, 0x80, 0xf6, 0x7f, - 0xac, 0x97, 0xf8, 0x0b, 0x09, 0x78, 0x3f, 0x28, 0xe1, 0x8b, 0x07, 0x78, 0x67, 0x96, 0x84, 0xbd, - 0x7a, 0xfd, 0xb4, 0xfe, 0x26, 0xed, 0x30, 0xdd, 0x23, 0xe0, 0x39, 0x0c, 0x07, 0x28, 0xf0, 0xe0, - 0xb8, 0x23, 0x27, 0x7c, 0x23, 0x40, 0x16, 0x66, 0xba, 0x02, 0xfc, 0x07, 0x69, 0x14, 0x98, 0xec, - 0x55, 0x75, 0xcc, 0x8a, 0xa4, 0x1a, 0xbb, 0x94, 0xfb, 0x20, 0x26, 0xed, 0x24, 0x73, 0x53, 0x5b, - 0xcd, 0xed, 0xcf, 0x95, 0xfa, 0xc9, 0xe1, 0xc9, 0xc1, 0x9b, 0xad, 0x74, 0x73, 0x9b, 0x5c, 0xcc, - 0x5e, 0xed, 0x6c, 0x8d, 0x09, 0x66, 0x4e, 0x20, 0x03, 0x01, 0x8b, 0x48, 0x50, 0x08, 0x58, 0x0e, - 0x24, 0x2f, 0x02, 0x25, 0x0c, 0xbb, 0xdf, 0x35, 0x44, 0x10, 0x1b, 0x9f, 0x34, 0x21, 0xca, 0x27, - 0x56, 0xc7, 0x71, 0x21, 0xb4, 0x07, 0x30, 0x97, 0x50, 0x87, 0x79, 0x39, 0x94, 0x32, 0x3c, 0x33, - 0x00, 0xa9, 0x22, 0x90, 0xeb, 0x0d, 0xec, 0x80, 0x0b, 0x1e, 0xf5, 0x2d, 0xfc, 0x56, 0xf5, 0x00, - 0x44, 0x0d, 0x4b, 0x36, 0xe1, 0x9b, 0xc0, 0xfc, 0xcc, 0x73, 0x26, 0x74, 0x7c, 0x51, 0xe6, 0x05, - 0x45, 0xa9, 0x2a, 0x5b, 0x0e, 0xe4, 0x65, 0xb5, 0x8b, 0xe3, 0x23, 0xbd, 0x2d, 0xd5, 0x16, 0x63, - 0x44, 0x5d, 0x60, 0x6f, 0x23, 0x43, 0x70, 0x03, 0xae, 0x72, 0xc7, 0x7d, 0x84, 0x90, 0xf5, 0x1d, - 0x73, 0x84, 0xd3, 0xe9, 0xef, 0x04, 0xc0, 0xf3, 0x59, 0x02, 0xf0, 0x3a, 0x06, 0xf7, 0x87, 0x56, - 0x94, 0xe8, 0x39, 0x3a, 0x0f, 0x84, 0x5e, 0x1d, 0x02, 0x95, 0xad, 0x10, 0x77, 0x16, 0x0b, 0x6c, - 0x85, 0x4f, 0x2c, 0x4e, 0xf8, 0x18, 0x4e, 0xc5, 0xa3, 0x89, 0x98, 0x13, 0x95, 0x37, 0x8b, 0x7f, - 0x2f, 0x0c, 0x13, 0x4b, 0xaf, 0x00, 0x65, 0x73, 0x72, 0xa3, 0x63, 0xc7, 0x41, 0xe2, 0x43, 0xd3, - 0x60, 0xeb, 0xbb, 0x7a, 0x22, 0x3e, 0x22, 0x45, 0xff, 0xb6, 0xc5, 0xb4, 0x56, 0x0e, 0xc1, 0xc2, - 0x80, 0xc6, 0x06, 0x9f, 0xac, 0x2a, 0x33, 0xbb, 0xc9, 0x33, 0x49, 0x83, 0xe5, 0x8d, 0x51, 0x9b, - 0x01, 0x6d, 0xc6, 0x16, 0x84, 0xc0, 0x91, 0x11, 0xed, 0x82, 0x1f, 0xb4, 0xfe, 0xa6, 0x49, 0xe3, - 0x4e, 0x82, 0xec, 0xce, 0xeb, 0x34, 0x13, 0x42, 0xb2, 0x0b, 0x3e, 0x0e, 0x43, 0x21, 0xbc, 0x53, - 0x67, 0x77, 0x1a, 0xdc, 0x89, 0x2c, 0x1a, 0x45, 0x28, 0x55, 0xc3, 0x37, 0xdc, 0xd9, 0x9f, 0x28, - 0x94, 0x1d, 0x19, 0x43, 0xbb, 0x06, 0x2b, 0x00, 0x79, 0x12, 0x7f, 0xaa, 0x83, 0x2c, 0x26, 0x8c, - 0xbf, 0x6d, 0xc9, 0x82, 0x3f, 0xf8, 0x27, 0x42, 0x3b, 0x96, 0xa7, 0x1e, 0x28, 0x87, 0x13, 0xde, - 0x16, 0xd9, 0x7f, 0x02, 0xb4, 0xa3, 0xb5, 0x61, 0x1b, 0x03, 0x47, 0x11, 0x41, 0xad, 0x1b, 0x8f, - 0x2f, 0x84, 0xeb, 0x02, 0x7e, 0x61, 0x81, 0xb0, 0x97, 0xc5, 0x05, 0x29, 0xbe, 0xb2, 0x09, 0x4f, - 0xc8, 0xdc, 0x0a, 0x56, 0x73, 0x75, 0x21, 0x2c, 0xe7, 0x86, 0x8d, 0x3b, 0x06, 0x04, 0xec, 0xb0, - 0x8c, 0x2e, 0x84, 0xc7, 0x02, 0xe1, 0x50, 0x4c, 0x87, 0x13, 0x5d, 0x08, 0x35, 0xc0, 0x13, 0xc3, - 0x6a, 0x49, 0x3b, 0xad, 0xe1, 0x8a, 0x78, 0xe5, 0x2f, 0x40, 0x7a, 0xba, 0xb3, 0x1a, 0xb3, 0xc5, - 0xf9, 0x23, 0x2d, 0x70, 0x41, 0x04, 0x62, 0xb4, 0x6c, 0x6a, 0x78, 0x0c, 0xff, 0x17, 0x60, 0x17, - 0xfa, 0xf4, 0x38, 0x87, 0x01, 0xbb, 0xfe, 0x20, 0xb6, 0xa8, 0x27, 0x75, 0x25, 0x45, 0xfc, 0x15, - 0xe5, 0x40, 0xee, 0x9a, 0x74, 0x78, 0xec, 0x9a, 0x14, 0x52, 0x83, 0xf2, 0xdc, 0x18, 0xea, 0xa0, - 0x79, 0xdc, 0xfe, 0xe3, 0xf9, 0x66, 0x98, 0x2a, 0x41, 0xef, 0x99, 0xe1, 0x19, 0x3d, 0x9f, 0x05, - 0xff, 0x97, 0xf5, 0xa3, 0x06, 0x6c, 0xa1, 0xd5, 0xe5, 0x6d, 0x09, 0xae, 0x48, 0xf2, 0x6c, 0xa0, - 0xcf, 0x3a, 0x21, 0x26, 0x9d, 0x67, 0xa0, 0x98, 0x11, 0x60, 0xa8, 0x38, 0x0b, 0xed, 0xd1, 0xc5, - 0xcd, 0x62, 0xfb, 0x6d, 0xf0, 0xfc, 0x02, 0xab, 0x08, 0xea, 0x3a, 0xab, 0xba, 0x2d, 0x9a, 0x03, - 0x88, 0xd6, 0xe7, 0xf8, 0x85, 0x8e, 0x1e, 0xc7, 0xf3, 0x21, 0x6f, 0xf4, 0xbe, 0x37, 0x5a, 0x1a, - 0x10, 0x66, 0x1f, 0xac, 0xc3, 0x6b, 0x61, 0x60, 0x63, 0x61, 0x89, 0xc6, 0x32, 0x77, 0x58, 0x19, - 0xfc, 0x00, 0x1a, 0xa8, 0x28, 0x5a, 0xbd, 0x30, 0x7f, 0x59, 0x97, 0x21, 0xb3, 0x3a, 0xd3, 0x33, - 0x66, 0xa9, 0xb9, 0xda, 0x23, 0x84, 0xa1, 0x2f, 0x0b, 0xab, 0xd6, 0x19, 0xe4, 0x7d, 0x3c, 0xbe, - 0x30, 0x5d, 0xc8, 0x0e, 0x1c, 0x37, 0x20, 0xfc, 0x8b, 0x9c, 0x78, 0xbe, 0xd1, 0xa4, 0xc4, 0x20, - 0xec, 0x77, 0x28, 0xb8, 0x81, 0x64, 0xf6, 0xb1, 0x8c, 0xe6, 0x3d, 0x66, 0x21, 0x03, 0x56, 0x0c, - 0x7b, 0x06, 0x9b, 0x75, 0x88, 0x32, 0xca, 0xc4, 0x7d, 0x12, 0xa8, 0x26, 0xe7, 0xf6, 0xfb, 0xf7, - 0xc8, 0x52, 0x17, 0x80, 0x6d, 0xb7, 0x93, 0x10, 0x2e, 0xc0, 0x92, 0xfb, 0x2c, 0x88, 0x23, 0x1f, - 0x84, 0x24, 0x84, 0x96, 0x1f, 0xd0, 0x1d, 0x31, 0x14, 0x43, 0xac, 0xf8, 0xc9, 0x41, 0x68, 0xbd, - 0x21, 0x9a, 0x9b, 0x02, 0xf1, 0xd6, 0xb0, 0x43, 0xe4, 0x95, 0xb4, 0x46, 0x47, 0x10, 0x41, 0x00, - 0x56, 0xf2, 0x3a, 0x29, 0x96, 0xba, 0x85, 0x69, 0xc2, 0xab, 0x06, 0xcc, 0xea, 0x51, 0x62, 0x98, - 0x9f, 0x04, 0x8d, 0x4e, 0x99, 0xae, 0xdf, 0x2e, 0x8d, 0x51, 0x0c, 0x36, 0x8c, 0xe5, 0x85, 0x25, - 0x38, 0x56, 0x94, 0x98, 0x4e, 0x0d, 0x7f, 0xec, 0xb4, 0xc8, 0x4c, 0x3c, 0xfb, 0x20, 0xe8, 0x8c, - 0xff, 0xfe, 0x2c, 0x6f, 0x0d, 0xeb, 0xb9, 0x8e, 0xd9, 0x18, 0x76, 0xce, 0x20, 0x87, 0xa6, 0x6b, - 0x51, 0xe4, 0xb5, 0x31, 0x31, 0x2c, 0x7b, 0xbc, 0x51, 0xe7, 0x41, 0x29, 0x86, 0x54, 0xb3, 0xe8, - 0x51, 0x0c, 0xbc, 0xf1, 0x64, 0x2d, 0xf9, 0x41, 0xcc, 0xd6, 0xb7, 0x87, 0x64, 0x15, 0x43, 0xfd, - 0x83, 0x48, 0x7d, 0x64, 0x58, 0x01, 0x69, 0x53, 0x88, 0xb6, 0x12, 0x51, 0x0c, 0x23, 0x24, 0x17, - 0x6b, 0xda, 0x9c, 0x23, 0x49, 0x21, 0x1e, 0xce, 0x48, 0x93, 0x1e, 0x0d, 0xba, 0x2e, 0xc4, 0x1c, - 0x18, 0xfe, 0x08, 0x12, 0xbe, 0x99, 0x4d, 0x3d, 0x1f, 0xc2, 0xde, 0x78, 0x44, 0x03, 0xe9, 0xc4, - 0x4a, 0x48, 0x33, 0x95, 0xf0, 0xbd, 0xed, 0x12, 0x85, 0x9c, 0xdf, 0x09, 0x97, 0x0f, 0x64, 0xec, - 0x49, 0x88, 0xe5, 0xb5, 0x48, 0x3b, 0xe2, 0xb4, 0x85, 0x09, 0x30, 0x96, 0x97, 0xa2, 0x76, 0xea, - 0x79, 0x98, 0x42, 0x8a, 0x90, 0x52, 0x82, 0xeb, 0x0c, 0x3e, 0x26, 0xd6, 0x13, 0x32, 0xaa, 0x20, - 0x62, 0xc9, 0x3b, 0xb8, 0xb0, 0x7a, 0xd4, 0x1d, 0x40, 0xb6, 0x17, 0xab, 0x26, 0xd0, 0x57, 0x89, - 0x08, 0xa0, 0xaa, 0xd2, 0x8c, 0x28, 0x96, 0x9e, 0x59, 0x66, 0x5e, 0xbd, 0xfc, 0xad, 0x85, 0x16, - 0x17, 0x99, 0xae, 0x28, 0xc1, 0x96, 0x0a, 0xf1, 0x58, 0xcc, 0x92, 0x0a, 0xc7, 0x16, 0x2b, 0x87, - 0x7f, 0xad, 0x81, 0x80, 0xf1, 0x92, 0x3d, 0x16, 0x62, 0xf7, 0x86, 0x30, 0x17, 0x56, 0x65, 0x29, - 0x08, 0x2b, 0xb0, 0x0f, 0x4f, 0x3a, 0x61, 0x09, 0x94, 0xc9, 0x04, 0x64, 0xb7, 0xa1, 0x04, 0x82, - 0xee, 0x32, 0xa9, 0xc3, 0x32, 0x12, 0x50, 0x1c, 0x45, 0x88, 0x33, 0xc1, 0x31, 0x86, 0x56, 0xc7, - 0x08, 0x5c, 0x0f, 0x1c, 0x89, 0xd5, 0x6f, 0xba, 0x86, 0x67, 0xca, 0x23, 0xcf, 0x0a, 0x28, 0xf3, - 0x55, 0x61, 0xdc, 0x1c, 0x63, 0xc5, 0x7c, 0xa4, 0x29, 0xd3, 0x47, 0xda, 0xaa, 0xf2, 0x30, 0x99, - 0x1f, 0x1c, 0x08, 0xcf, 0xf2, 0x4c, 0xd8, 0x37, 0x2c, 0x2c, 0x61, 0x80, 0x89, 0x42, 0x40, 0x82, - 0x2e, 0xa4, 0x44, 0x40, 0xc9, 0xc0, 0x02, 0x4c, 0x59, 0xe1, 0x7e, 0xdd, 0x5e, 0xba, 0xec, 0xcd, - 0x33, 0x30, 0xa8, 0x0e, 0x3b, 0x50, 0x79, 0x19, 0xe4, 0xfa, 0x25, 0x10, 0x2c, 0xb5, 0xbd, 0x00, - 0x62, 0xbc, 0x08, 0xc1, 0xd2, 0xbe, 0x97, 0x16, 0x3a, 0x3a, 0x79, 0x09, 0x84, 0x27, 0x37, 0x2f, - 0x02, 0x5d, 0xbe, 0x02, 0xe6, 0xe4, 0x45, 0x18, 0x26, 0x48, 0x2f, 0xd1, 0x0f, 0x4c, 0xdc, 0x0b, - 0x20, 0xe8, 0x03, 0x57, 0x41, 0xb0, 0x5a, 0x17, 0x02, 0x60, 0x3d, 0xf6, 0xf9, 0x39, 0x98, 0x44, - 0xfa, 0x6e, 0x9f, 0x15, 0x72, 0xa3, 0x6a, 0x24, 0x2b, 0xea, 0xc6, 0x0b, 0x9c, 0x77, 0xd2, 0xcc, - 0xb1, 0xeb, 0x00, 0xcc, 0xea, 0x55, 0xa0, 0x47, 0xf2, 0xa3, 0x34, 0xf3, 0xf1, 0x0b, 0xed, 0x63, - 0x89, 0x85, 0x04, 0x20, 0x47, 0x33, 0x43, 0xbb, 0x74, 0x84, 0xf5, 0x1a, 0x45, 0x09, 0x8f, 0x39, - 0x21, 0x68, 0xd0, 0x97, 0x43, 0x90, 0xbe, 0xe7, 0x06, 0x2e, 0xe4, 0x1f, 0x1f, 0x0d, 0x9b, 0x7a, - 0x10, 0xcf, 0x7f, 0x06, 0x35, 0xe6, 0xa9, 0x09, 0xfa, 0xdb, 0x21, 0x88, 0x36, 0x7b, 0xd7, 0x67, - 0xd4, 0x85, 0x3c, 0xc7, 0xa7, 0xde, 0x10, 0x04, 0x1d, 0xbf, 0x84, 0xc7, 0x6c, 0x36, 0x49, 0xb8, - 0x1e, 0xff, 0xfa, 0x04, 0x78, 0x42, 0x6f, 0xe0, 0xcc, 0x7b, 0x7c, 0x51, 0x10, 0x4b, 0x71, 0x6f, - 0x31, 0x0d, 0x45, 0xcb, 0x75, 0xd8, 0xdb, 0x07, 0x3a, 0x43, 0x0b, 0xcf, 0x87, 0x58, 0x50, 0x19, - 0x5a, 0x58, 0x7d, 0x5e, 0x74, 0x08, 0x7d, 0x98, 0xaa, 0x28, 0x7f, 0xcf, 0x4a, 0xdd, 0xf3, 0x5e, - 0x88, 0xd9, 0x73, 0x39, 0x56, 0x09, 0x0c, 0xf4, 0x6f, 0xcb, 0xbf, 0x97, 0xb1, 0xa9, 0x98, 0xb4, - 0x23, 0x11, 0xf6, 0x6b, 0x19, 0xef, 0x26, 0x74, 0xfa, 0x97, 0xc4, 0xbe, 0x69, 0xc9, 0xef, 0xc5, - 0x6f, 0x65, 0x36, 0x0d, 0x77, 0x77, 0xf3, 0xef, 0xf9, 0xb1, 0x08, 0x51, 0x0f, 0xa6, 0x4c, 0xb8, - 0x17, 0x90, 0xe4, 0x88, 0x40, 0x73, 0xb9, 0x75, 0xb4, 0x88, 0x2d, 0x8d, 0xa1, 0x1a, 0x2c, 0xa2, - 0x1a, 0x19, 0x97, 0x74, 0x4e, 0xd5, 0x18, 0x9e, 0xce, 0x4b, 0x78, 0x06, 0x31, 0x3c, 0x03, 0x86, - 0x27, 0x7d, 0x06, 0x49, 0x67, 0x8a, 0xa7, 0x96, 0x2f, 0x49, 0x62, 0x54, 0xe6, 0xe4, 0x55, 0x9f, - 0x75, 0xe7, 0x60, 0x74, 0xf9, 0x1c, 0x8c, 0xc6, 0xcf, 0xc1, 0x02, 0x76, 0xec, 0x13, 0x1e, 0x85, - 0x49, 0x98, 0x91, 0xbf, 0xd1, 0xd9, 0xb9, 0x41, 0x68, 0x35, 0x23, 0x87, 0x8b, 0xef, 0xa9, 0x7c, - 0x81, 0xa0, 0x82, 0x07, 0x02, 0xf3, 0xb7, 0x56, 0x44, 0x96, 0x95, 0x9f, 0xb1, 0xf7, 0x49, 0xc2, - 0x13, 0xd6, 0xd8, 0x0b, 0x26, 0xa8, 0x6d, 0xec, 0x54, 0x18, 0x23, 0xcf, 0x79, 0xf8, 0x8b, 0x23, - 0xd9, 0xfb, 0x2c, 0x94, 0x7d, 0xf7, 0x8a, 0xca, 0x08, 0x05, 0x7b, 0xdc, 0xa5, 0x6d, 0x03, 0x52, - 0xe8, 0x44, 0x7c, 0x52, 0x99, 0x49, 0x79, 0x22, 0xf6, 0x35, 0x2c, 0xc8, 0x5e, 0x3b, 0x7b, 0x98, - 0xab, 0x3c, 0x33, 0x16, 0x2b, 0xcf, 0xcb, 0x27, 0x7d, 0x38, 0x26, 0x85, 0x62, 0x2b, 0x2c, 0x4d, - 0x74, 0x3a, 0x7c, 0x6e, 0x9e, 0x38, 0x9c, 0x0b, 0xd1, 0xa9, 0xf9, 0xba, 0xe5, 0x3c, 0xda, 0x83, - 0x75, 0x16, 0x56, 0x2c, 0x0f, 0xfa, 0xf8, 0x9b, 0x6a, 0x67, 0x9c, 0x14, 0x20, 0x34, 0xa8, 0xf5, - 0xac, 0xd4, 0xd0, 0x86, 0xfd, 0xe1, 0x56, 0x7d, 0x48, 0x21, 0x63, 0x0b, 0xce, 0x76, 0xcf, 0xd6, - 0x5c, 0x1e, 0xcd, 0x4f, 0xcc, 0xd7, 0x8d, 0x5b, 0x82, 0x0c, 0x4b, 0x97, 0x20, 0xb4, 0x98, 0xa4, - 0x60, 0xbc, 0x5d, 0x67, 0xc1, 0x4e, 0x39, 0x88, 0x8e, 0x27, 0x98, 0x08, 0x85, 0x2c, 0x62, 0xa1, - 0x3f, 0xe2, 0x8f, 0x55, 0x0c, 0x69, 0x25, 0x85, 0x80, 0x00, 0x72, 0x2a, 0x61, 0xb7, 0x61, 0x56, - 0x7c, 0xcc, 0xb1, 0x20, 0xe9, 0x59, 0xf8, 0x76, 0xdc, 0x9a, 0x84, 0x22, 0xfc, 0xae, 0x1c, 0x04, - 0x3a, 0x91, 0xf8, 0xac, 0x11, 0x67, 0x24, 0x54, 0x98, 0x7a, 0xce, 0x38, 0x0b, 0x51, 0xe0, 0xcf, - 0x07, 0x30, 0xc2, 0x4a, 0x11, 0x03, 0x5f, 0x00, 0x77, 0xfb, 0x82, 0x14, 0xf2, 0xf0, 0xa7, 0x90, - 0xa1, 0x3d, 0x8d, 0x49, 0xe7, 0x82, 0x20, 0x3e, 0xaf, 0x89, 0x73, 0x7e, 0xcd, 0xcf, 0x1d, 0xfe, - 0xdb, 0x87, 0xd8, 0x33, 0x3e, 0x2c, 0xbc, 0xc9, 0xf8, 0x9a, 0x53, 0x27, 0x09, 0x4d, 0xdc, 0xda, - 0x93, 0x27, 0x07, 0xd3, 0xb8, 0x00, 0xbc, 0x49, 0x2c, 0xdc, 0xfb, 0x98, 0x08, 0xf4, 0xa5, 0x30, - 0x13, 0xe0, 0x96, 0x8e, 0xb7, 0xa5, 0x35, 0x49, 0x6b, 0x98, 0x94, 0x40, 0x2c, 0x1a, 0xc4, 0xe7, - 0x5b, 0x1a, 0xec, 0x3c, 0x33, 0x16, 0xb0, 0x59, 0x1f, 0x89, 0x06, 0xab, 0x1d, 0xe0, 0xc8, 0x31, - 0x5c, 0x60, 0x0e, 0x35, 0x9e, 0x72, 0x53, 0x0f, 0xb4, 0x23, 0x3c, 0x41, 0x3e, 0xe5, 0x9e, 0x9b, - 0xc5, 0x83, 0xe0, 0xbc, 0xe3, 0x79, 0xd2, 0x8c, 0x85, 0xec, 0xe0, 0x76, 0x2b, 0x0a, 0x66, 0xcb, - 0x01, 0x16, 0x81, 0xb8, 0x91, 0xc7, 0xd3, 0x42, 0xee, 0xfb, 0x05, 0x2c, 0x60, 0x70, 0x7f, 0x4e, - 0x6f, 0x83, 0xf0, 0x50, 0x32, 0xac, 0xa1, 0xf0, 0x16, 0xbc, 0x83, 0x86, 0x59, 0x04, 0xc0, 0x5b, - 0x1f, 0x63, 0x4d, 0x63, 0xde, 0x34, 0xe6, 0x91, 0x07, 0x88, 0xa9, 0x63, 0x56, 0x91, 0x3d, 0x90, - 0x40, 0x48, 0x0a, 0x50, 0x3f, 0xc0, 0x43, 0xce, 0x59, 0x7c, 0x01, 0x79, 0x43, 0x2c, 0xb8, 0x70, - 0xd6, 0x86, 0x16, 0xb1, 0xb9, 0xc5, 0x95, 0xec, 0x2e, 0x76, 0x8c, 0xce, 0x8b, 0x10, 0xad, 0xa1, - 0x3e, 0x0f, 0xd2, 0xa5, 0xd6, 0x70, 0x9e, 0xc2, 0x62, 0xa8, 0xcc, 0xbd, 0xcb, 0xed, 0x5d, 0xe8, - 0x08, 0x9c, 0x67, 0x32, 0xaf, 0xd6, 0x70, 0x31, 0xcf, 0x8a, 0xaa, 0x74, 0x89, 0x30, 0x48, 0x0f, - 0x33, 0x25, 0x4c, 0x6d, 0x3b, 0xd1, 0x81, 0x49, 0x62, 0x62, 0x99, 0x25, 0x48, 0x52, 0x4d, 0xc9, - 0x81, 0x8b, 0x23, 0x3d, 0xfa, 0x25, 0xf4, 0x86, 0x86, 0x17, 0x48, 0x8f, 0x94, 0xdd, 0xba, 0x7d, - 0x69, 0x3c, 0x6b, 0xbc, 0x91, 0xc6, 0x51, 0xeb, 0xcd, 0x54, 0x14, 0x97, 0xf8, 0x64, 0xc7, 0xf9, - 0x44, 0xf9, 0x01, 0xc5, 0x84, 0x9f, 0xab, 0xdb, 0x48, 0x5e, 0x58, 0x85, 0x85, 0xec, 0xec, 0xc1, - 0xc1, 0xc3, 0x4a, 0x0b, 0x23, 0x35, 0x3c, 0xba, 0x0c, 0xfb, 0x59, 0xc1, 0xee, 0x91, 0x03, 0x3c, - 0xd2, 0x14, 0xbf, 0xfa, 0xd2, 0x98, 0xb7, 0x8c, 0xc3, 0x96, 0xb1, 0x0f, 0x4e, 0xf1, 0x59, 0x69, - 0x92, 0x56, 0xce, 0xf7, 0xc3, 0x24, 0x7b, 0x5d, 0xf6, 0xcd, 0xb3, 0xf4, 0x17, 0xd2, 0xfe, 0x57, - 0xe4, 0x68, 0xbf, 0x50, 0x69, 0x08, 0x93, 0xb5, 0x9f, 0x24, 0xa6, 0x2f, 0x4c, 0xf6, 0x62, 0x66, - 0xfa, 0xeb, 0xc8, 0xac, 0xa3, 0x19, 0x27, 0xcd, 0xb3, 0x15, 0x0b, 0x76, 0x1e, 0xf8, 0x5f, 0xc1, - 0x74, 0x25, 0x99, 0xfe, 0x0d, 0x6c, 0x9f, 0x33, 0x42, 0xac, 0x18, 0x82, 0x4c, 0x98, 0x4b, 0xf2, - 0xed, 0x1d, 0x18, 0x44, 0xa5, 0xec, 0x6c, 0xd1, 0xb2, 0x03, 0x72, 0x1c, 0x2c, 0xc8, 0xb1, 0xc3, - 0x25, 0x58, 0x68, 0x44, 0xdf, 0x50, 0x40, 0x01, 0x06, 0xf9, 0x75, 0x40, 0x22, 0xc3, 0xaf, 0xa5, - 0x07, 0xd3, 0xff, 0x13, 0x41, 0x23, 0xce, 0x1e, 0x7e, 0xcf, 0x00, 0x63, 0x05, 0x7d, 0xed, 0xc6, - 0x55, 0xe5, 0x59, 0x45, 0x8a, 0x8d, 0x0d, 0xdf, 0xfa, 0x8b, 0x99, 0xe8, 0x0f, 0xec, 0x75, 0x7f, - 0xcb, 0xd4, 0x17, 0x5f, 0x08, 0x22, 0x3f, 0xff, 0x4a, 0xfb, 0xe2, 0xaf, 0x2b, 0xbd, 0xf0, 0x75, - 0x80, 0x05, 0x1b, 0x19, 0xbd, 0xfc, 0x0f, 0x2b, 0x82, 0xb4, 0x3c, 0xfb, 0xbb, 0x3a, 0x79, 0x39, - 0x47, 0x34, 0xe5, 0x3c, 0x2b, 0x6b, 0x1a, 0x5c, 0x89, 0x26, 0xe7, 0xf1, 0x87, 0x6d, 0xd8, 0xcf, - 0xd3, 0x10, 0x35, 0x2f, 0x17, 0x73, 0x78, 0xcd, 0xca, 0xb9, 0x22, 0x5e, 0xa1, 0x37, 0x03, 0x20, - 0x6a, 0x81, 0xa8, 0xaa, 0xac, 0x92, 0x8c, 0x9c, 0xc9, 0x91, 0x4d, 0xfc, 0xcd, 0x9d, 0x9c, 0xac, - 0xe1, 0x9d, 0x9a, 0x83, 0xbb, 0x7c, 0x91, 0x14, 0xb0, 0x03, 0x3e, 0x8a, 0xf0, 0x58, 0xc8, 0x40, - 0x87, 0x82, 0x3f, 0xcb, 0x03, 0x13, 0xa8, 0xe1, 0x45, 0x2e, 0x66, 0xf8, 0x9d, 0x26, 0x67, 0xb1, - 0x2d, 0xbf, 0x49, 0x54, 0xf6, 0x73, 0x3d, 0x45, 0xbc, 0xe6, 0x65, 0xf5, 0x0a, 0x7a, 0xd4, 0xdc, - 0x11, 0xac, 0x9c, 0x27, 0xaa, 0x22, 0xe7, 0x8f, 0x54, 0xb8, 0x6a, 0x47, 0xaa, 0x06, 0x48, 0x1d, - 0x15, 0xf1, 0x76, 0x53, 0xce, 0x86, 0x3d, 0x6c, 0x1a, 0x35, 0x77, 0x05, 0xc3, 0xce, 0x01, 0x07, - 0x18, 0x9e, 0xcd, 0x91, 0xa2, 0xac, 0x20, 0x0a, 0x9b, 0x59, 0x52, 0x80, 0xf5, 0x61, 0x3b, 0x88, - 0x73, 0x0d, 0x76, 0x7b, 0x9e, 0xc3, 0x1e, 0x86, 0x89, 0x92, 0xc1, 0x91, 0x0a, 0x7e, 0x29, 0x41, - 0xcd, 0x60, 0x6b, 0x86, 0x6d, 0x15, 0x2f, 0x39, 0x79, 0x33, 0x17, 0x42, 0xe0, 0xee, 0x70, 0x44, - 0x91, 0x20, 0xad, 0xd4, 0x62, 0x0d, 0xc8, 0x93, 0x3b, 0xc7, 0x1f, 0xef, 0x61, 0x8d, 0x9a, 0x22, - 0x6b, 0x30, 0x77, 0x01, 0x3f, 0x35, 0x46, 0x33, 0x68, 0xc7, 0x9b, 0x9c, 0xcc, 0xaf, 0x59, 0x44, - 0x27, 0x84, 0xca, 0x20, 0x39, 0xc2, 0xa1, 0x19, 0xa4, 0x33, 0x5e, 0x6b, 0x6a, 0xe1, 0x4a, 0x55, - 0xcf, 0x55, 0x44, 0xb4, 0x88, 0x13, 0x30, 0xf4, 0x0b, 0x79, 0x86, 0x05, 0xec, 0x01, 0x87, 0xc0, - 0x5e, 0xae, 0x80, 0x16, 0xc5, 0x73, 0xce, 0x93, 0x1c, 0x9b, 0x01, 0xb6, 0x07, 0xfb, 0x92, 0x35, - 0x80, 0xdc, 0x24, 0x9b, 0xf8, 0xa1, 0xe2, 0x0b, 0x69, 0x6c, 0x80, 0x2a, 0x03, 0x3f, 0x81, 0xce, - 0x48, 0x36, 0x44, 0x84, 0x6d, 0xb1, 0x50, 0x64, 0x37, 0xb9, 0xb0, 0x81, 0x71, 0x08, 0x80, 0x90, - 0xfa, 0x45, 0xfc, 0x84, 0xb1, 0xd8, 0xa2, 0x70, 0xcc, 0x34, 0xe5, 0x18, 0xe9, 0xad, 0xc2, 0xee, - 0xe3, 0xbf, 0x4a, 0xc4, 0x0a, 0x60, 0xcb, 0x72, 0x1d, 0x7d, 0x3f, 0x21, 0xfc, 0x11, 0x2d, 0x81, - 0xfc, 0xfa, 0xd7, 0x5a, 0xb6, 0x5f, 0xfa, 0x05, 0xa8, 0x4d, 0x49, 0x53, 0x6b, 0xc5, 0xab, 0x42, - 0x4d, 0xdd, 0xc4, 0x87, 0x5c, 0xad, 0x58, 0xd1, 0x24, 0x2d, 0x7c, 0x77, 0x2f, 0x2f, 0x15, 0xae, - 0x34, 0x35, 0xd6, 0x50, 0x94, 0x34, 0xa0, 0xec, 0x66, 0xac, 0x05, 0x7f, 0x44, 0x47, 0xbd, 0x2a, - 0xc4, 0x5a, 0x70, 0x96, 0x63, 0x35, 0x2f, 0xa9, 0xb5, 0x6c, 0x1c, 0x4e, 0xca, 0x5c, 0xa9, 0x85, - 0x5a, 0xf6, 0x0a, 0xc6, 0xe7, 0xaf, 0x54, 0xb6, 0x77, 0xc2, 0x37, 0x1f, 0xbe, 0xa2, 0x5d, 0x65, - 0xa5, 0x34, 0x97, 0xcc, 0x4a, 0x77, 0x1f, 0x9e, 0xaf, 0x80, 0xfc, 0x8b, 0x94, 0x42, 0xd5, 0x0e, - 0x8b, 0xdb, 0xff, 0x45, 0xfd, 0x2e, 0xa2, 0x22, 0x14, 0x51, 0xb9, 0x0a, 0xf8, 0x98, 0x45, 0xfd, - 0x86, 0x61, 0xa0, 0x8d, 0x1a, 0x7e, 0x64, 0x51, 0x28, 0xb3, 0x38, 0xf7, 0x66, 0x1e, 0x00, 0xf1, - 0xd7, 0xb2, 0x36, 0x51, 0x1b, 0x0b, 0xff, 0x82, 0x7c, 0xd6, 0xd4, 0xcc, 0x39, 0xea, 0x3e, 0x6f, - 0x53, 0xe5, 0x1c, 0x2a, 0x01, 0x5a, 0x14, 0xf6, 0xeb, 0x5c, 0x68, 0x64, 0xd8, 0x0d, 0x1a, 0x93, - 0x62, 0x8e, 0x5b, 0x0c, 0xd0, 0x46, 0xb4, 0x1f, 0x19, 0x34, 0x25, 0x9b, 0xcc, 0xaa, 0x64, 0x42, - 0x2b, 0x83, 0x3d, 0x2a, 0xb3, 0x08, 0xc5, 0xdc, 0xd5, 0xbf, 0xaa, 0xe6, 0x45, 0x24, 0x11, 0x0e, - 0x04, 0xe3, 0x24, 0x67, 0xd9, 0xd2, 0x0a, 0x10, 0x15, 0x09, 0x98, 0x07, 0x62, 0x42, 0x67, 0x1e, - 0x60, 0xa0, 0x83, 0xf5, 0x86, 0xf0, 0x7f, 0xce, 0x7e, 0x6d, 0x5e, 0x85, 0x9a, 0x9d, 0x59, 0x23, - 0xda, 0x0d, 0x10, 0x28, 0x14, 0x6d, 0x93, 0x7d, 0x41, 0xf2, 0x83, 0xb4, 0xf6, 0xc8, 0xee, 0x17, - 0xa2, 0xa5, 0x85, 0x1f, 0x94, 0x09, 0x7f, 0x42, 0x86, 0x5f, 0xb7, 0xd8, 0x57, 0x5a, 0xb6, 0xff, - 0x07, 0x16, 0x4c, 0xe9, 0xef, 0x21, 0x5e, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xd5, 0x3c, 0x6d, 0x7b, 0xda, 0xb8, + 0xb2, 0xdf, 0xf9, 0x15, 0xaa, 0xdb, 0x6d, 0x71, 0x23, 0x1c, 0xdb, 0xbc, 0x06, 0xe2, 0xf4, 0xc9, + 0xa6, 0xed, 0xa6, 0xe7, 0xa6, 0x2f, 0x9b, 0xb4, 0xd9, 0xed, 0xc9, 0xc9, 0xd3, 0x0a, 0x2c, 0xc0, + 0xad, 0xb1, 0x39, 0xb6, 0x21, 0x61, 0x29, 0xff, 0xfd, 0xce, 0x48, 0xb2, 0x31, 0x60, 0x1a, 0xd2, + 0xdb, 0x3d, 0xcf, 0x3d, 0xdb, 0x0d, 0xb6, 0xa5, 0x91, 0x34, 0x9a, 0xf7, 0x19, 0x19, 0x0e, 0x1f, + 0x3c, 0x7f, 0x7b, 0xf2, 0xfe, 0xe3, 0xbb, 0x17, 0x64, 0x98, 0x8c, 0xfc, 0x23, 0x72, 0x98, 0x5e, + 0x38, 0x73, 0xe1, 0x32, 0xe2, 0x09, 0x83, 0x9e, 0x64, 0x5c, 0xe1, 0xff, 0x9e, 0x78, 0x53, 0x47, + 0x3b, 0x61, 0xbd, 0x21, 0xaf, 0x9c, 0x84, 0x41, 0x12, 0x85, 0xbe, 0x46, 0x4a, 0x3d, 0xb8, 0xe3, + 0x41, 0xe2, 0x68, 0x41, 0x58, 0xe9, 0x61, 0x1f, 0x25, 0x70, 0x17, 0x27, 0x61, 0x04, 0x77, 0xa3, + 0x49, 0x9c, 0x54, 0x22, 0x3e, 0x65, 0xbe, 0xe7, 0xb2, 0x84, 0x6b, 0x45, 0x13, 0xbe, 0x8b, 0xd8, + 0x60, 0xc4, 0x8a, 0x66, 0x2a, 0x04, 0x7f, 0x71, 0x3b, 0xf6, 0x22, 0x1e, 0x6b, 0x24, 0x03, 0x37, + 0x11, 0x2e, 0xf1, 0x12, 0x9f, 0x1f, 0x95, 0xfe, 0x38, 0x7b, 0xf1, 0x9c, 0xbc, 0xf3, 0x6e, 0xb9, + 0x4f, 0x8e, 0xa3, 0x84, 0x00, 0x9a, 0x53, 0x1e, 0x25, 0x3c, 0x3a, 0xdc, 0x97, 0x00, 0xe4, 0x30, + 0x4e, 0x66, 0x08, 0x68, 0x74, 0xc3, 0xdb, 0x79, 0x37, 0x8c, 0x5c, 0x1e, 0xb5, 0xed, 0xf1, 0x2d, + 0x89, 0x43, 0x40, 0x91, 0x3c, 0xec, 0xf7, 0xfb, 0x8b, 0x6e, 0xe8, 0xce, 0xe6, 0x7d, 0x98, 0xbd, + 0xd2, 0x67, 0x23, 0xcf, 0x9f, 0xb5, 0x8f, 0x23, 0x8f, 0xf9, 0x34, 0x66, 0x41, 0x5c, 0x89, 0x79, + 0xe4, 0xf5, 0x3b, 0x5d, 0xd6, 0xfb, 0x3a, 0x88, 0xc2, 0x49, 0xe0, 0x56, 0x7a, 0xa1, 0x1f, 0x46, + 0xed, 0x87, 0x96, 0x65, 0x2d, 0x8c, 0x24, 0x1c, 0x57, 0xc6, 0x2c, 0x4a, 0xe6, 0x37, 0x9e, 0x9b, + 0x0c, 0xdb, 0x0d, 0xd3, 0x1c, 0xdf, 0x76, 0x46, 0x2c, 0x1a, 0x78, 0x41, 0xdb, 0x24, 0x6c, 0x92, + 0x84, 0x0b, 0x03, 0xb1, 0x66, 0x5e, 0xc0, 0xa3, 0xf9, 0x88, 0xdd, 0x56, 0x24, 0xa0, 0x65, 0x9a, + 0xbf, 0x90, 0x4a, 0x0d, 0xa1, 0x25, 0x46, 0x95, 0x88, 0xb9, 0xde, 0x24, 0x6e, 0x9b, 0x9d, 0x31, + 0x73, 0x5d, 0x2f, 0x18, 0xb4, 0x6d, 0xec, 0x4c, 0xf8, 0x6d, 0x52, 0x01, 0x52, 0x0e, 0x82, 0x76, + 0x0f, 0x76, 0xce, 0xa3, 0xc5, 0xd0, 0x92, 0x88, 0xc6, 0xde, 0x5f, 0xbc, 0x6d, 0x1b, 0x55, 0x3e, + 0xea, 0x28, 0x84, 0x5c, 0xd7, 0x4d, 0x97, 0xb6, 0x60, 0x7b, 0x66, 0xe7, 0xbb, 0x1b, 0xf2, 0x01, + 0xa3, 0xca, 0x90, 0x7b, 0x83, 0x61, 0xd2, 0x36, 0xea, 0x8b, 0xa1, 0x9d, 0x9b, 0xd6, 0x32, 0xac, + 0x6c, 0xda, 0x68, 0xd0, 0x65, 0x65, 0xdb, 0xb6, 0x68, 0xfa, 0x67, 0x34, 0x2c, 0xfd, 0x87, 0xd7, + 0x29, 0xda, 0x50, 0x35, 0xb7, 0xb2, 0xd1, 0xfc, 0x5b, 0x16, 0xb6, 0x8c, 0xda, 0xe6, 0xca, 0x1d, + 0xf1, 0x50, 0xf1, 0x12, 0x3e, 0x8a, 0xd3, 0xa6, 0x2f, 0x20, 0xbd, 0x5e, 0x7f, 0x56, 0x51, 0x92, + 0x96, 0x36, 0xbb, 0x5e, 0x3c, 0xf6, 0xd9, 0xac, 0xdd, 0xf7, 0xf9, 0xed, 0x62, 0x9c, 0xa7, 0xd4, + 0x92, 0xfc, 0xcd, 0x66, 0x73, 0x6d, 0xcd, 0xfa, 0x77, 0x11, 0x5c, 0x3c, 0xec, 0x7b, 0xdc, 0x77, + 0xdf, 0xb3, 0xae, 0xcf, 0xf3, 0x33, 0x92, 0xef, 0x4c, 0x79, 0xc7, 0x84, 0x71, 0x8f, 0xf9, 0xfc, + 0x67, 0x4e, 0xe8, 0x46, 0x20, 0xdf, 0x7f, 0x85, 0x01, 0x9f, 0xa7, 0x14, 0xe8, 0xfa, 0x61, 0xef, + 0x6b, 0x67, 0x29, 0xc4, 0x79, 0x19, 0x6e, 0x57, 0x81, 0x2b, 0x2e, 0x8b, 0x87, 0x1c, 0xd4, 0x0a, + 0xa5, 0x71, 0x5d, 0xb4, 0x37, 0x59, 0xb0, 0x22, 0xec, 0xa9, 0xde, 0x74, 0x7a, 0x93, 0x28, 0x06, + 0x74, 0xc7, 0xa1, 0x27, 0x80, 0xbe, 0xcb, 0xe6, 0xdc, 0x46, 0xeb, 0x30, 0xc7, 0x72, 0xa3, 0x48, + 0x5f, 0x9f, 0x57, 0xc6, 0x5e, 0xef, 0x2b, 0xa8, 0x5e, 0x8a, 0x7f, 0x00, 0x9b, 0x59, 0x18, 0xcc, + 0x65, 0xe3, 0xc4, 0x9b, 0xf2, 0xf7, 0xcf, 0xe7, 0x79, 0xd6, 0x76, 0xf0, 0xa3, 0xe2, 0x82, 0xb1, + 0xe9, 0x25, 0x5e, 0x18, 0xb4, 0xa3, 0xf0, 0x46, 0x36, 0xdd, 0x44, 0x6c, 0x0c, 0x43, 0xf1, 0x52, + 0x20, 0x35, 0x0b, 0x63, 0x04, 0xfa, 0x7d, 0xc1, 0x7d, 0x18, 0x16, 0x46, 0xf3, 0x4d, 0x53, 0x61, + 0xdb, 0x76, 0x5e, 0x49, 0x15, 0xb5, 0xac, 0xa5, 0x0d, 0xaa, 0x56, 0xab, 0x6a, 0xf7, 0x15, 0xb0, + 0x28, 0xed, 0x5a, 0x46, 0x8c, 0x4a, 0x37, 0x4c, 0x92, 0x70, 0x24, 0x5a, 0x52, 0x5a, 0x99, 0xa4, + 0x05, 0x4f, 0x8a, 0x83, 0x36, 0xde, 0xaf, 0xd1, 0x60, 0x95, 0xec, 0xcd, 0xb1, 0xda, 0x17, 0xe0, + 0x74, 0x03, 0x1c, 0x5f, 0xd9, 0xf0, 0xce, 0x2a, 0xb0, 0xa4, 0xd9, 0x7f, 0xdb, 0x3e, 0x25, 0xc7, + 0x63, 0x3e, 0x18, 0xc1, 0x46, 0xe2, 0xe7, 0xde, 0x54, 0xd9, 0xea, 0x6a, 0x63, 0xb9, 0x56, 0xc5, + 0xe7, 0xfd, 0xa4, 0x0d, 0x73, 0x2e, 0x9e, 0x12, 0x2f, 0x18, 0x4f, 0x92, 0xab, 0x64, 0x36, 0xe6, + 0x4e, 0xc4, 0x82, 0x01, 0xbf, 0x9e, 0xb3, 0xf1, 0x98, 0x33, 0xb8, 0xef, 0x71, 0x31, 0x59, 0xa7, + 0x32, 0x0a, 0xff, 0xaa, 0x6c, 0x34, 0xde, 0xf0, 0xee, 0x57, 0x2f, 0xd9, 0x68, 0xcf, 0xa3, 0x94, + 0xed, 0x2c, 0x15, 0x75, 0xd8, 0x2e, 0x6e, 0x92, 0xd4, 0x84, 0x39, 0xdb, 0x20, 0x68, 0x02, 0xf3, + 0xc4, 0xe0, 0x5e, 0x00, 0xf1, 0x75, 0x9d, 0x58, 0xc2, 0xb6, 0x51, 0xa1, 0x59, 0x04, 0x6b, 0x00, + 0x1d, 0x00, 0xb2, 0x9c, 0x84, 0x24, 0x42, 0x9a, 0xd1, 0x87, 0xdd, 0x6e, 0x97, 0xd4, 0xcd, 0x5f, + 0x28, 0xd2, 0x1d, 0x6f, 0xf4, 0x4d, 0x92, 0x2d, 0x36, 0xb6, 0xdb, 0xee, 0x87, 0xbd, 0x49, 0x3c, + 0x0f, 0x27, 0x09, 0x4e, 0xdc, 0x36, 0x0b, 0x20, 0xda, 0xe9, 0x66, 0x63, 0xe0, 0x2a, 0x4e, 0x37, + 0x09, 0x02, 0xb4, 0x3a, 0x15, 0x40, 0xb8, 0xf7, 0x75, 0x9e, 0x67, 0xd9, 0x76, 0xb4, 0x4d, 0xdc, + 0xf1, 0x0e, 0xe8, 0xac, 0x2f, 0x96, 0x0c, 0x27, 0xa3, 0x6e, 0xba, 0x86, 0x85, 0x4c, 0x54, 0xd6, + 0xa8, 0xb1, 0x21, 0x12, 0xb0, 0xe5, 0xfc, 0x8a, 0xe8, 0xea, 0xd7, 0x11, 0xda, 0xc6, 0xb6, 0x35, + 0x29, 0xdd, 0x0d, 0x51, 0x94, 0x0b, 0xf1, 0x50, 0x40, 0x88, 0x0d, 0xe6, 0x0a, 0xff, 0x66, 0x52, + 0xf1, 0x4f, 0xbf, 0xff, 0x02, 0x82, 0x0a, 0x4a, 0xc3, 0x4c, 0xa5, 0x5f, 0x79, 0x79, 0xd9, 0x89, + 0x40, 0xcd, 0x15, 0xc4, 0x04, 0x81, 0x16, 0x86, 0x58, 0xe0, 0x0d, 0x4c, 0x0f, 0x66, 0x53, 0x8e, + 0x14, 0xd6, 0x19, 0xa3, 0x2a, 0x0f, 0x1c, 0x8c, 0x32, 0xe0, 0x23, 0xcf, 0x75, 0x7d, 0x50, 0xac, + 0xfe, 0xc4, 0xf7, 0xdf, 0x83, 0x5d, 0x7f, 0x89, 0xce, 0x4c, 0xa2, 0x8b, 0x66, 0xfe, 0x7a, 0x8b, + 0x79, 0x28, 0xb6, 0x09, 0xa9, 0x1a, 0x7a, 0x81, 0xf0, 0x4e, 0x71, 0x02, 0x21, 0x15, 0xaa, 0xe3, + 0xdd, 0xc6, 0x22, 0x25, 0x71, 0xad, 0x20, 0x92, 0xfa, 0x01, 0xbf, 0xb1, 0xe9, 0xb5, 0x7e, 0x96, + 0xf9, 0xec, 0xfb, 0xb7, 0xef, 0x5f, 0xfa, 0xee, 0xcf, 0x21, 0xcb, 0x7f, 0xcb, 0xae, 0x57, 0xac, + 0x69, 0x3c, 0xe9, 0x8e, 0xbc, 0x1f, 0x13, 0x0c, 0x88, 0x1c, 0x21, 0x88, 0x59, 0x46, 0x1d, 0x6b, + 0xd8, 0x0a, 0x3a, 0xec, 0xba, 0xef, 0xb5, 0x90, 0x19, 0x70, 0xec, 0x4e, 0x40, 0x9c, 0x82, 0xff, + 0x03, 0x67, 0x04, 0x4f, 0x7e, 0x0e, 0x76, 0xab, 0xe1, 0xfc, 0x8f, 0x91, 0x7d, 0xcd, 0xc6, 0xa9, + 0xb8, 0x10, 0x3d, 0xdf, 0x5d, 0xf3, 0x15, 0xeb, 0x38, 0xea, 0x33, 0x18, 0x15, 0x36, 0x1f, 0x44, + 0x9e, 0x5b, 0x11, 0x02, 0xb1, 0x6f, 0xe7, 0xf7, 0x9b, 0x8a, 0xa3, 0xc8, 0x7e, 0xee, 0x43, 0xc6, + 0x1c, 0x1b, 0x8c, 0x21, 0x58, 0xf7, 0xb5, 0x30, 0x2d, 0x9e, 0x02, 0x85, 0x61, 0x6f, 0xf3, 0x62, + 0xbc, 0x1e, 0x7a, 0x23, 0x06, 0xa6, 0x70, 0x99, 0x5f, 0xa5, 0xa3, 0x11, 0xcf, 0x8e, 0x40, 0x16, + 0x36, 0x07, 0x2d, 0x09, 0x47, 0xac, 0xe3, 0xb6, 0xd5, 0x8f, 0x08, 0xfc, 0x2d, 0x1e, 0x4a, 0x8e, + 0x17, 0x8c, 0x14, 0x84, 0x49, 0x99, 0xab, 0xcc, 0x8c, 0x65, 0xe6, 0x02, 0x05, 0xb4, 0x44, 0xd8, + 0xb0, 0x30, 0xe4, 0x1c, 0x3d, 0x9f, 0xc5, 0xf1, 0x1c, 0x87, 0x2d, 0xfd, 0xbb, 0x00, 0xaa, 0x8f, + 0x37, 0x26, 0xc2, 0xf8, 0xc2, 0x18, 0xb0, 0xf1, 0x3c, 0x25, 0x1d, 0x3c, 0x3f, 0x94, 0x5a, 0xa1, + 0xb2, 0xd6, 0x76, 0xbb, 0xcb, 0xfb, 0x90, 0x46, 0xcf, 0x53, 0x86, 0x6a, 0x5a, 0x26, 0x03, 0xca, + 0x08, 0xc8, 0x00, 0x3c, 0x47, 0x64, 0x41, 0x84, 0xf6, 0x24, 0xf2, 0xcb, 0x4f, 0x20, 0xe1, 0x66, + 0x6d, 0xf1, 0xbc, 0x0f, 0xa4, 0xdb, 0xbb, 0x1d, 0xf9, 0x9d, 0x49, 0xd2, 0x6f, 0x51, 0x48, 0x81, + 0xa7, 0x03, 0x22, 0xd2, 0x60, 0x47, 0x53, 0x26, 0x7d, 0xcd, 0x78, 0x6a, 0x64, 0xea, 0xf1, 0x9b, + 0x5f, 0xc3, 0x5b, 0x48, 0xae, 0x89, 0x49, 0xec, 0x1a, 0xfc, 0xaf, 0x91, 0xc3, 0x31, 0x4b, 0x86, + 0x04, 0xe2, 0x68, 0xdf, 0xd1, 0x40, 0xa8, 0xd0, 0xb1, 0x9c, 0x20, 0xcb, 0x34, 0xe2, 0x3a, 0xda, + 0x6b, 0xcb, 0xa6, 0x8d, 0xcb, 0x83, 0x33, 0xab, 0x41, 0xeb, 0x67, 0x70, 0x6f, 0x5d, 0xd6, 0x8e, + 0x5b, 0xb4, 0x05, 0xa3, 0xc1, 0xa3, 0x91, 0x1a, 0xb5, 0xec, 0x13, 0xf8, 0xa8, 0x1a, 0xf5, 0x26, + 0xa9, 0x19, 0xb5, 0x06, 0xb5, 0xea, 0x86, 0x09, 0x61, 0x88, 0x61, 0x43, 0x6b, 0xc3, 0xb0, 0x1b, + 0x67, 0x0d, 0xa3, 0x49, 0xad, 0x9a, 0xd1, 0x3a, 0x81, 0xa7, 0x3a, 0x42, 0x1e, 0x34, 0x09, 0x80, + 0x55, 0xf1, 0xc3, 0x3e, 0x6e, 0xd0, 0x86, 0x98, 0xca, 0x22, 0xb8, 0xce, 0x6b, 0xab, 0x65, 0x34, + 0x1b, 0xb4, 0x69, 0x34, 0x6b, 0x67, 0x56, 0xd3, 0xa8, 0xd2, 0x03, 0xc3, 0x3e, 0xb1, 0xf0, 0x91, + 0x5a, 0xa6, 0x61, 0xd6, 0x88, 0xd5, 0xa2, 0x96, 0x25, 0x3e, 0xd7, 0x86, 0x5a, 0xad, 0x4b, 0xab, + 0x7e, 0x06, 0xed, 0x07, 0x88, 0xa4, 0x5d, 0xbd, 0xb4, 0xcd, 0x1c, 0x9a, 0xb6, 0x89, 0x78, 0xe2, + 0xa7, 0x69, 0xd4, 0xaa, 0xc4, 0x3a, 0x30, 0xea, 0x35, 0xda, 0x42, 0x4c, 0x96, 0x0b, 0xfe, 0x53, + 0x23, 0xfb, 0x47, 0x87, 0x48, 0xd2, 0xa3, 0x27, 0x7a, 0x27, 0x17, 0x3d, 0x2a, 0xfa, 0xe1, 0x3d, + 0x30, 0x12, 0xf4, 0x17, 0x74, 0x8c, 0x3c, 0x9d, 0x17, 0x71, 0x0c, 0x84, 0x19, 0xfa, 0x5f, 0xa1, + 0x35, 0x14, 0x9e, 0x32, 0x56, 0x42, 0x50, 0xbf, 0xaf, 0xca, 0xec, 0xe2, 0x2a, 0x2b, 0xdf, 0xf7, + 0x11, 0xcd, 0x7b, 0xd8, 0xa3, 0x55, 0x2f, 0xb1, 0x60, 0x18, 0x6d, 0x7e, 0x9d, 0x7f, 0x2f, 0x43, + 0xff, 0x6e, 0x14, 0x2b, 0x32, 0x40, 0x97, 0xf7, 0xc2, 0x88, 0x89, 0x0c, 0x4b, 0xe8, 0x39, 0x6b, + 0x4f, 0xbd, 0x18, 0xec, 0x90, 0xfb, 0xd3, 0xe7, 0x1d, 0x86, 0xa0, 0x55, 0xf3, 0xbc, 0x97, 0xfb, + 0x81, 0x49, 0x58, 0x0f, 0xd3, 0x9e, 0x9f, 0x8c, 0x5b, 0x09, 0xe4, 0x49, 0x94, 0xa5, 0xc8, 0x21, + 0x52, 0x94, 0x44, 0x1c, 0x54, 0x2c, 0x1e, 0x86, 0x51, 0xd2, 0x9b, 0x24, 0x04, 0x8d, 0x9e, 0x46, + 0x86, 0x11, 0xef, 0x3b, 0x9a, 0x50, 0x6a, 0x08, 0x4f, 0x7d, 0x30, 0x80, 0x38, 0x7e, 0x3f, 0xec, + 0x25, 0x1c, 0xd8, 0x93, 0x80, 0x45, 0x1e, 0xc1, 0xca, 0x31, 0x6f, 0xd4, 0xa8, 0x76, 0x54, 0x02, + 0x25, 0xef, 0x45, 0xde, 0x38, 0x21, 0xc2, 0xd9, 0x6a, 0xb8, 0xea, 0xfe, 0x17, 0x36, 0x65, 0xb2, + 0x15, 0x00, 0xfa, 0x93, 0x40, 0xa4, 0xb5, 0x64, 0xf0, 0xca, 0x2d, 0x73, 0x7d, 0x1e, 0xf1, 0x64, + 0x12, 0x05, 0xc4, 0x35, 0x06, 0x3c, 0x79, 0xe1, 0x73, 0x4c, 0x8f, 0x7e, 0x9d, 0x89, 0xae, 0x45, + 0x06, 0xda, 0x7b, 0xb1, 0x02, 0xd9, 0x83, 0x35, 0x13, 0xae, 0x80, 0x11, 0x70, 0xca, 0x22, 0x30, + 0x05, 0x2e, 0x64, 0x0c, 0xd8, 0x82, 0x9b, 0x12, 0xab, 0xc1, 0xae, 0xf6, 0x55, 0x35, 0x11, 0x4b, + 0x6b, 0xcb, 0x8b, 0x0b, 0x0a, 0x22, 0x4c, 0x26, 0x20, 0xa8, 0x4a, 0x67, 0x9a, 0x6a, 0x2e, 0x29, + 0xfb, 0xb4, 0x62, 0x8a, 0x8b, 0x1d, 0x1c, 0x0e, 0x19, 0x5a, 0xc5, 0x23, 0x36, 0xbd, 0x1a, 0x42, + 0xa3, 0xfd, 0x2b, 0xad, 0x18, 0xc0, 0x75, 0x05, 0x4e, 0xf5, 0x47, 0xa4, 0x4e, 0xed, 0xc6, 0x86, + 0x45, 0xac, 0xda, 0xf0, 0xbf, 0x76, 0x24, 0x2d, 0x62, 0x49, 0x9a, 0xc4, 0x87, 0xa6, 0x59, 0x85, + 0x90, 0x59, 0x5a, 0xc3, 0x06, 0xb1, 0xed, 0x61, 0x6b, 0x5a, 0x3b, 0x6d, 0xfc, 0xf5, 0xda, 0x02, + 0x7b, 0x54, 0x1b, 0xd6, 0xa6, 0xad, 0x61, 0xa5, 0x06, 0x4f, 0x2d, 0x62, 0x99, 0xd9, 0x93, 0x6d, + 0x93, 0x06, 0xc2, 0x0d, 0x2b, 0xad, 0xbf, 0xb4, 0xd4, 0xae, 0x94, 0xc8, 0xb6, 0x32, 0x26, 0x52, + 0xd2, 0x42, 0x7a, 0x02, 0x8d, 0x70, 0xdb, 0xf6, 0x51, 0x49, 0xf5, 0x11, 0x61, 0xe9, 0x09, 0xa4, + 0x7b, 0x62, 0xec, 0x3f, 0x2e, 0xde, 0xbe, 0x21, 0xe5, 0xb1, 0x98, 0x01, 0xc8, 0x4a, 0x80, 0x7b, + 0xa2, 0x7d, 0xc4, 0x92, 0xc8, 0xbb, 0xd5, 0x61, 0x1a, 0x1b, 0xc6, 0x8f, 0xb1, 0x70, 0x8a, 0xb9, + 0x1a, 0x29, 0x79, 0x80, 0xf5, 0xb2, 0x04, 0xa5, 0xad, 0xfa, 0x07, 0xe1, 0xd7, 0x05, 0x60, 0x05, + 0x48, 0x0b, 0xc9, 0x60, 0xbb, 0x0f, 0x33, 0xbb, 0x8a, 0xbc, 0x9b, 0xec, 0x48, 0x22, 0x94, 0xc0, + 0xc4, 0x4d, 0x67, 0x29, 0xf4, 0xd8, 0x08, 0xe8, 0xb3, 0x2e, 0x20, 0x08, 0x4e, 0xce, 0xd1, 0x7c, + 0xee, 0x5e, 0x80, 0x64, 0x8d, 0xd3, 0x8a, 0x82, 0x76, 0x74, 0xc6, 0x61, 0x02, 0x6c, 0x6a, 0x83, + 0x28, 0x09, 0x48, 0xdc, 0x79, 0x82, 0x72, 0x04, 0x53, 0x2b, 0xc1, 0x59, 0x16, 0x6f, 0x04, 0x67, + 0xc5, 0x60, 0x82, 0x9b, 0xd9, 0x98, 0x8f, 0x94, 0xd4, 0x90, 0x7c, 0x7d, 0x06, 0x07, 0x85, 0x63, + 0x21, 0xdd, 0x53, 0xe6, 0x4f, 0x38, 0xf6, 0x22, 0x85, 0x80, 0x00, 0x02, 0x82, 0xc3, 0x4c, 0xe9, + 0x9d, 0x76, 0x64, 0x3f, 0x27, 0xaf, 0x45, 0x37, 0x20, 0x24, 0x47, 0x6d, 0x0c, 0x8f, 0x6c, 0x5f, + 0x3b, 0xba, 0xe0, 0xd1, 0x18, 0x88, 0x01, 0x26, 0x99, 0x82, 0xbf, 0x8c, 0xe2, 0x84, 0x40, 0xc4, + 0x21, 0xf3, 0x70, 0xe4, 0x10, 0xd6, 0x17, 0xc8, 0x63, 0x3f, 0xe9, 0x54, 0xb2, 0x69, 0x4a, 0xeb, + 0xf3, 0xf8, 0x76, 0xb4, 0x6d, 0x1e, 0x31, 0x3c, 0xcd, 0xeb, 0x49, 0xe5, 0xf1, 0x20, 0xe9, 0x2c, + 0xd1, 0x41, 0xad, 0x13, 0xf8, 0x66, 0xb4, 0xda, 0x07, 0x6e, 0x08, 0x96, 0xdc, 0x83, 0x23, 0x25, + 0xc1, 0x12, 0xf8, 0x00, 0x6a, 0x2c, 0x49, 0xf5, 0x76, 0x92, 0x80, 0xc7, 0x22, 0xb2, 0xb9, 0xbd, + 0x23, 0x4f, 0x4a, 0x79, 0xa6, 0xac, 0xcd, 0x48, 0x76, 0xe2, 0xc8, 0x0d, 0xb0, 0x12, 0xb8, 0x57, + 0xc4, 0x90, 0x4c, 0xd6, 0xb7, 0xf2, 0x03, 0x02, 0x15, 0x60, 0xc8, 0xc9, 0x87, 0xf3, 0xb3, 0x3c, + 0x8d, 0x56, 0x61, 0x86, 0x4c, 0x3b, 0x3a, 0x0d, 0x47, 0x9c, 0x1c, 0xc7, 0xb1, 0x07, 0x3e, 0x34, + 0x48, 0xc8, 0xc7, 0xe3, 0xd7, 0xb9, 0x01, 0x77, 0xd0, 0xb4, 0x74, 0x0f, 0x31, 0x17, 0x1e, 0xe1, + 0xe5, 0x1a, 0x61, 0x4b, 0x22, 0x8e, 0x22, 0xbd, 0xd0, 0xe5, 0xf7, 0xa4, 0x6e, 0x4a, 0x5c, 0xa1, + 0xbf, 0x45, 0x73, 0xef, 0x46, 0xe2, 0x21, 0xbf, 0xdd, 0x42, 0xe1, 0xd3, 0x17, 0x7f, 0x92, 0xf2, + 0xc3, 0x7e, 0x0d, 0xff, 0xe9, 0x5b, 0xa9, 0x0c, 0x0e, 0x4d, 0x3b, 0x7a, 0xfe, 0xe2, 0x84, 0x94, + 0xed, 0x5a, 0x8d, 0xaa, 0x3f, 0xbd, 0xb4, 0x33, 0x05, 0xef, 0x23, 0x95, 0x10, 0xf2, 0x44, 0x1c, + 0x18, 0x15, 0x0c, 0x96, 0xfb, 0x39, 0xce, 0xda, 0x7e, 0x48, 0x2c, 0x0b, 0xa6, 0xdc, 0x91, 0x6e, + 0xb3, 0x2e, 0x24, 0x16, 0xdb, 0x48, 0x27, 0x3a, 0x91, 0x7a, 0x26, 0xfe, 0x83, 0xa0, 0x92, 0x12, + 0xab, 0x49, 0xc9, 0x76, 0x6a, 0x96, 0x52, 0x23, 0x82, 0x45, 0x17, 0xed, 0xe8, 0x1c, 0x2f, 0xa4, + 0x7c, 0xf7, 0x38, 0x35, 0x0c, 0x37, 0x80, 0xf4, 0x2a, 0x5d, 0x88, 0x9b, 0x42, 0xbe, 0xfd, 0x3c, + 0x49, 0xee, 0x0a, 0xfb, 0x13, 0x00, 0xdd, 0x64, 0x79, 0x48, 0x3b, 0xfa, 0x35, 0x6b, 0xc9, 0xb8, + 0x50, 0xca, 0xb1, 0xe1, 0x7b, 0x73, 0x77, 0x76, 0x70, 0xdb, 0xa2, 0x7a, 0x50, 0x52, 0x11, 0x8d, + 0x24, 0x91, 0xe0, 0xde, 0x06, 0x22, 0x64, 0xe4, 0x05, 0x8e, 0x66, 0xc1, 0x95, 0x81, 0xbf, 0xb6, + 0xeb, 0x75, 0x2d, 0xa5, 0x90, 0x65, 0xb7, 0x84, 0xd2, 0x8c, 0x59, 0x20, 0x55, 0x66, 0x39, 0xf6, + 0x12, 0x21, 0xb4, 0x23, 0x80, 0x00, 0x1a, 0x41, 0xff, 0xcf, 0xd2, 0xf5, 0x33, 0x0f, 0x32, 0xba, + 0x94, 0x42, 0xa5, 0xd7, 0xec, 0x96, 0x04, 0x21, 0x09, 0xfb, 0x44, 0x74, 0xc6, 0xfb, 0x68, 0xbc, + 0x8a, 0x64, 0xb6, 0xf4, 0x53, 0xa8, 0x45, 0x4a, 0x1b, 0xd4, 0xda, 0x40, 0x6a, 0x95, 0x5a, 0x75, + 0xcb, 0xce, 0xa8, 0x65, 0xd7, 0x1b, 0xab, 0xd4, 0x5a, 0x8e, 0x55, 0xd4, 0x02, 0x88, 0x2d, 0xd4, + 0x4a, 0xf5, 0x67, 0xc8, 0x2a, 0x98, 0xcb, 0x6b, 0xf7, 0xa7, 0xde, 0x90, 0xbd, 0x02, 0x45, 0x3d, + 0x3d, 0x26, 0xcf, 0xf9, 0xd4, 0xeb, 0x71, 0xf2, 0xea, 0x79, 0x01, 0x9d, 0x4a, 0xc5, 0x56, 0x51, + 0x6e, 0x5e, 0x75, 0xad, 0x14, 0x25, 0xb5, 0x5c, 0x44, 0x2c, 0x09, 0x22, 0xd6, 0xc9, 0x54, 0x4f, + 0x84, 0x4c, 0x9f, 0x20, 0x64, 0xfa, 0xd4, 0x93, 0x47, 0xdc, 0x3e, 0x8f, 0x3e, 0x99, 0xa6, 0xa5, + 0xfd, 0x2d, 0x3b, 0xfc, 0xb0, 0xba, 0xc5, 0x0f, 0x81, 0xf7, 0xef, 0xc9, 0xea, 0x4e, 0x4b, 0x77, + 0xd8, 0xff, 0x5d, 0x77, 0x5a, 0x92, 0x5b, 0xc5, 0x05, 0xc9, 0x1d, 0x5b, 0x65, 0xbb, 0xec, 0xb5, + 0x74, 0xcf, 0xf0, 0x6e, 0xc8, 0xde, 0xb0, 0x11, 0xcf, 0x6f, 0x16, 0x9f, 0xff, 0xb6, 0x7d, 0x8a, + 0xc5, 0xd2, 0x8d, 0x2e, 0x03, 0xe9, 0xff, 0xf1, 0x92, 0xde, 0x90, 0x07, 0xda, 0xcf, 0x50, 0x6e, + 0x08, 0x2c, 0x3e, 0x60, 0x6c, 0x91, 0x8a, 0xe7, 0xbb, 0xfd, 0x61, 0x08, 0x11, 0x5a, 0x90, 0xdf, + 0x56, 0x89, 0xfc, 0xcc, 0x6d, 0xa5, 0x4b, 0xca, 0x7d, 0xfd, 0x04, 0x57, 0x9a, 0x40, 0x96, 0xc3, + 0x21, 0x56, 0x10, 0xa7, 0x61, 0xda, 0xd1, 0x7b, 0xf1, 0x48, 0xd4, 0xe9, 0x18, 0x28, 0xc7, 0xee, + 0xce, 0x74, 0x75, 0x1f, 0xb2, 0xba, 0x9d, 0xee, 0x20, 0x50, 0x76, 0xc6, 0x13, 0xde, 0x71, 0x90, + 0x93, 0x40, 0x53, 0x19, 0x1f, 0x53, 0x19, 0x9f, 0x46, 0x75, 0xdd, 0x33, 0xaf, 0x62, 0xb8, 0xbe, + 0x78, 0xde, 0x31, 0x2f, 0x1d, 0x9b, 0xc8, 0x1f, 0x71, 0xf0, 0x72, 0x24, 0x9e, 0xf4, 0x65, 0xa3, + 0x73, 0xa7, 0x7f, 0x90, 0xc2, 0xa9, 0x54, 0x2a, 0x4f, 0xca, 0x7d, 0x91, 0xea, 0x2c, 0x73, 0xa3, + 0x74, 0x5c, 0x76, 0xa0, 0x7e, 0x82, 0x0d, 0x6a, 0x43, 0x59, 0xa3, 0xb6, 0x96, 0x53, 0xfe, 0x40, + 0xd2, 0xb4, 0x9b, 0x10, 0xe2, 0xfe, 0xb2, 0xa5, 0xc5, 0x26, 0x76, 0x49, 0x69, 0x8b, 0x6b, 0x7a, + 0x58, 0xb3, 0xf4, 0x7a, 0x5f, 0x61, 0xb2, 0x1b, 0x54, 0x8d, 0x0b, 0x9c, 0xb2, 0xac, 0x63, 0xae, + 0x24, 0xaa, 0xc6, 0x60, 0x24, 0x64, 0xd9, 0x38, 0xcd, 0x75, 0x8b, 0xaa, 0x7f, 0x25, 0x51, 0xfe, + 0x6b, 0x92, 0xe6, 0x69, 0x93, 0xd5, 0x49, 0x1d, 0x6b, 0x69, 0xc4, 0xac, 0xe0, 0x5d, 0xf6, 0x84, + 0x77, 0x43, 0xcb, 0x64, 0xb9, 0x86, 0x4a, 0xae, 0xbb, 0x02, 0x4f, 0xaf, 0x9b, 0xc4, 0xaa, 0xb3, + 0x2a, 0xa9, 0x8a, 0x26, 0xab, 0x52, 0xad, 0xe0, 0xbd, 0x7a, 0x22, 0x6b, 0x4f, 0x24, 0xf7, 0x84, + 0x3d, 0x98, 0x3b, 0x97, 0x64, 0xf2, 0x4c, 0x1e, 0x07, 0xdd, 0x78, 0xdc, 0x11, 0x3b, 0x51, 0x49, + 0xf1, 0x2a, 0x8f, 0x77, 0xd0, 0x91, 0x4c, 0x82, 0x54, 0x19, 0x2f, 0x4b, 0x87, 0xf3, 0x15, 0xe9, + 0x35, 0x7b, 0x80, 0xa0, 0x7f, 0x42, 0x46, 0x42, 0xda, 0x24, 0xd3, 0x1a, 0x89, 0x4a, 0xea, 0x8a, + 0x53, 0x31, 0x5a, 0x2d, 0xfd, 0x15, 0x6a, 0x89, 0x98, 0x2b, 0x73, 0xcc, 0x69, 0xf0, 0xd2, 0xc0, + 0xc2, 0x8e, 0x9c, 0x33, 0xff, 0xb9, 0x81, 0xc6, 0x47, 0x30, 0xb3, 0x3f, 0x0b, 0x8d, 0x8f, 0x85, + 0x68, 0xa4, 0x24, 0x2d, 0x15, 0xeb, 0xcd, 0xfe, 0x58, 0x15, 0x17, 0x72, 0x88, 0xe5, 0xde, 0xbf, + 0xc8, 0x0b, 0x71, 0xf6, 0x52, 0x09, 0xee, 0xed, 0x39, 0x3c, 0x28, 0x9e, 0x0d, 0x79, 0x04, 0x8c, + 0xeb, 0x46, 0x47, 0x90, 0x17, 0xe1, 0x85, 0x9c, 0xa0, 0x9c, 0x62, 0xda, 0xab, 0xac, 0x03, 0x43, + 0x59, 0xcc, 0xf1, 0x36, 0x33, 0x54, 0x6a, 0xed, 0xd4, 0x26, 0xc9, 0x6d, 0x21, 0xac, 0xdc, 0x54, + 0x1e, 0x8f, 0x6d, 0x6c, 0x85, 0x39, 0x56, 0xaa, 0x50, 0x79, 0x85, 0x5e, 0x7f, 0x6b, 0x45, 0x58, + 0xf1, 0xd1, 0x40, 0xcc, 0x3d, 0x8e, 0x38, 0x2a, 0x99, 0xb6, 0x51, 0x8c, 0xca, 0x9d, 0x22, 0xab, + 0x37, 0xc1, 0x60, 0xed, 0xa8, 0xb7, 0x73, 0x3d, 0x0f, 0x09, 0x2d, 0xf7, 0x99, 0xd2, 0x2d, 0x62, + 0x37, 0x95, 0xb5, 0x13, 0x8f, 0xad, 0xdb, 0x49, 0xd1, 0x13, 0xf0, 0x88, 0xdc, 0xee, 0x2b, 0x13, + 0xe6, 0x27, 0x8e, 0x76, 0xce, 0x6e, 0x5e, 0x09, 0xae, 0xc8, 0x19, 0x96, 0x05, 0x28, 0xa0, 0x13, + 0xd0, 0xaa, 0xb4, 0x44, 0x6b, 0x57, 0x94, 0x56, 0xe1, 0xbd, 0xa0, 0x1f, 0x16, 0x13, 0x6d, 0x69, + 0xa0, 0xd3, 0x73, 0x27, 0x31, 0x0c, 0xa3, 0x66, 0x51, 0x15, 0x80, 0x06, 0x37, 0x0c, 0xfc, 0x19, + 0x10, 0x44, 0xdd, 0x69, 0x68, 0x08, 0x52, 0xe0, 0x25, 0xa6, 0xe9, 0x82, 0xeb, 0x87, 0x3d, 0x5b, + 0x31, 0x94, 0x80, 0x69, 0xdc, 0x3b, 0x9e, 0xa9, 0x25, 0x65, 0x73, 0xe6, 0x4b, 0x72, 0xe7, 0x3e, + 0x88, 0xaa, 0x7c, 0xcc, 0x2d, 0x37, 0x60, 0x63, 0x2b, 0x03, 0x86, 0x07, 0x81, 0x9d, 0xc4, 0x48, + 0x2d, 0x20, 0xbd, 0x62, 0xe0, 0xde, 0x6f, 0xfe, 0xe5, 0xae, 0x90, 0xfa, 0xc3, 0xea, 0x51, 0xb6, + 0x22, 0x18, 0xb5, 0x18, 0xd8, 0xa9, 0x1d, 0x5d, 0xca, 0x1b, 0x62, 0x19, 0xa6, 0xd1, 0x94, 0x03, + 0xa4, 0x21, 0xa8, 0xa4, 0x66, 0x83, 0x91, 0x92, 0xac, 0x2a, 0xe3, 0xfb, 0x95, 0x71, 0x7b, 0x7f, + 0x7f, 0xe0, 0x25, 0xc3, 0x49, 0xd7, 0xe8, 0x85, 0xa3, 0xfd, 0x1b, 0x1e, 0x7d, 0x05, 0x59, 0x80, + 0x3b, 0xac, 0xb1, 0x54, 0x44, 0x08, 0x05, 0x11, 0x54, 0x56, 0x89, 0xdc, 0xef, 0xfa, 0x61, 0x77, + 0x1f, 0xb3, 0xe3, 0xfd, 0xf3, 0x17, 0xc7, 0xcf, 0x5f, 0xbf, 0x30, 0x46, 0x98, 0x07, 0x4b, 0x7f, + 0xed, 0x68, 0x9f, 0xba, 0x3e, 0x0b, 0xbe, 0x82, 0x1d, 0xe2, 0xfe, 0x78, 0xff, 0xb8, 0x0b, 0xde, + 0xef, 0x70, 0x9f, 0xc1, 0x06, 0x00, 0xd3, 0xa5, 0xca, 0xae, 0x71, 0x46, 0x9c, 0x8b, 0xc9, 0x2a, + 0x70, 0xb1, 0x2c, 0x64, 0x44, 0xc9, 0x41, 0x66, 0xf2, 0xd1, 0x63, 0xc1, 0x94, 0xc5, 0x52, 0x0d, + 0x11, 0xd9, 0x13, 0xf1, 0x2c, 0xe8, 0x2d, 0xbb, 0x8e, 0xee, 0xae, 0x89, 0x87, 0x51, 0x19, 0x6b, + 0xd8, 0x03, 0x88, 0xb3, 0x1c, 0xac, 0x8b, 0x67, 0x11, 0x97, 0x4e, 0xe3, 0xbf, 0xfe, 0x94, 0x4d, + 0xd2, 0x36, 0x63, 0xc3, 0xc7, 0x65, 0xc3, 0x47, 0xd1, 0x00, 0x9e, 0x62, 0xd9, 0x84, 0x6e, 0x43, + 0xa7, 0xe3, 0xe8, 0x46, 0x36, 0xa5, 0xa6, 0x01, 0xe0, 0x5e, 0x3d, 0x57, 0x50, 0x22, 0x16, 0xd2, + 0xe9, 0x3f, 0xce, 0x54, 0x43, 0x2a, 0xd5, 0x3a, 0x4d, 0x2e, 0x06, 0xb2, 0x69, 0x35, 0xfe, 0xd1, + 0x69, 0x37, 0x1a, 0x0c, 0x65, 0xcf, 0x46, 0xd6, 0x0b, 0x33, 0xf3, 0x0c, 0x83, 0xb5, 0xd0, 0x47, + 0xa7, 0xbd, 0x2f, 0x5d, 0xb5, 0xa5, 0x0d, 0x59, 0xd6, 0x69, 0x3f, 0x1a, 0xc9, 0xce, 0xb5, 0xfa, + 0x1c, 0x0c, 0x3b, 0x7b, 0x93, 0x0e, 0x5b, 0x4b, 0x1b, 0x75, 0x8a, 0x89, 0x13, 0x97, 0xbd, 0x22, + 0x87, 0xc2, 0x96, 0x0f, 0x59, 0xc3, 0x07, 0xd5, 0xf2, 0x26, 0x6b, 0x11, 0x31, 0xb9, 0x4e, 0xd9, + 0x85, 0x6c, 0x28, 0x28, 0xba, 0xc0, 0x7a, 0x2f, 0x2f, 0x72, 0xeb, 0xbd, 0x5c, 0x47, 0xc7, 0xbf, + 0x50, 0xdd, 0x1b, 0xd5, 0x5d, 0x9d, 0x7a, 0xe8, 0xa7, 0x44, 0x67, 0xce, 0xa8, 0x60, 0x73, 0x6f, + 0xa5, 0x79, 0xa9, 0xf9, 0x40, 0xcd, 0xb4, 0x6b, 0xc3, 0x2a, 0xe0, 0xb8, 0xdc, 0x28, 0x24, 0x6e, + 0x6f, 0xc9, 0xde, 0x34, 0xf0, 0xd2, 0xe9, 0x8d, 0x73, 0xe3, 0x05, 0x6e, 0x78, 0x43, 0xa5, 0x8c, + 0x29, 0x5e, 0xe7, 0xe4, 0x4f, 0xb0, 0xec, 0x72, 0x9d, 0x65, 0x32, 0x7d, 0x46, 0xf2, 0x5e, 0xae, + 0x93, 0x37, 0xed, 0x42, 0x9d, 0x3c, 0x8e, 0x22, 0x36, 0x73, 0xae, 0xae, 0x29, 0x3a, 0x2d, 0x64, + 0x9a, 0xa3, 0x69, 0x14, 0x13, 0x30, 0xf4, 0xb3, 0xe7, 0xe1, 0x4d, 0xec, 0xb8, 0x06, 0x24, 0x8c, + 0xd1, 0x2c, 0x25, 0xc3, 0xb1, 0xef, 0x97, 0x35, 0x23, 0xcd, 0xd2, 0x60, 0x13, 0x8e, 0xd9, 0xf1, + 0x0e, 0xf3, 0x23, 0x0c, 0x9f, 0x07, 0x83, 0x64, 0xd8, 0xf1, 0xf6, 0xf6, 0xf4, 0x7c, 0xfb, 0x95, + 0x77, 0x6d, 0x08, 0xf5, 0x3a, 0xf3, 0xe2, 0xc4, 0x00, 0xde, 0x00, 0xc7, 0xc4, 0x1c, 0x1d, 0xd4, + 0x08, 0xd6, 0xeb, 0xa5, 0xf1, 0x9e, 0xa3, 0x3d, 0xe4, 0x9c, 0x6b, 0x54, 0x36, 0x61, 0xba, 0x92, + 0x36, 0x37, 0x9b, 0x4d, 0x0d, 0x04, 0x3e, 0x86, 0x67, 0x78, 0xea, 0xf5, 0x7a, 0x1a, 0x1d, 0x44, + 0x9c, 0x07, 0x69, 0xbf, 0x59, 0x6f, 0x74, 0x4d, 0xa6, 0xd1, 0x88, 0xbb, 0x69, 0x13, 0x34, 0xd4, + 0x4d, 0x80, 0x93, 0x51, 0x74, 0x38, 0x18, 0xf8, 0xfc, 0x6d, 0xbf, 0x2f, 0xe3, 0x49, 0x0a, 0xf1, + 0xe4, 0x71, 0x9d, 0xd6, 0xd3, 0xb3, 0x59, 0x3c, 0xcb, 0x5d, 0x3e, 0x36, 0xa9, 0xd5, 0x3c, 0xb5, + 0x56, 0x00, 0xd6, 0x20, 0x70, 0x86, 0xd7, 0x00, 0x56, 0x3f, 0xae, 0xd2, 0xaa, 0x3a, 0x01, 0xc6, + 0x73, 0xe8, 0xdc, 0x63, 0x93, 0x1e, 0xe4, 0x9e, 0x2c, 0x73, 0xbd, 0xd7, 0xaa, 0xff, 0x73, 0x15, + 0xb7, 0xe0, 0x27, 0xa2, 0x66, 0xad, 0xe1, 0x66, 0xad, 0x21, 0x67, 0xad, 0x62, 0x67, 0x9b, 0x1b, + 0xdd, 0x12, 0xbd, 0xd4, 0x54, 0xe4, 0x54, 0xfe, 0xe2, 0xf2, 0x37, 0x8c, 0xd6, 0x35, 0x3d, 0x7f, + 0x06, 0xb7, 0xf3, 0x81, 0x20, 0x4f, 0x84, 0xb5, 0x3f, 0xff, 0xed, 0x57, 0x21, 0x8b, 0x31, 0x1e, + 0xfa, 0x15, 0x4b, 0xe3, 0xe7, 0xb9, 0x06, 0xf6, 0xa3, 0x9d, 0x44, 0x13, 0x4e, 0x51, 0xba, 0xb5, + 0xf6, 0xa3, 0x39, 0x5a, 0x28, 0x43, 0x84, 0x8a, 0x0b, 0x8a, 0x26, 0x4e, 0x6b, 0xcf, 0x35, 0xcf, + 0xc5, 0x1e, 0x30, 0x6a, 0x59, 0x07, 0x80, 0x5e, 0x7d, 0xee, 0xf8, 0x90, 0x6d, 0x26, 0x20, 0xa2, + 0x09, 0xe6, 0x8c, 0xfc, 0x56, 0x73, 0x1c, 0x84, 0x11, 0xa6, 0xdf, 0x50, 0x96, 0xff, 0x59, 0x36, + 0xaa, 0x0d, 0x86, 0x53, 0xde, 0x75, 0x40, 0x4f, 0x21, 0xd3, 0xf6, 0x1d, 0xf0, 0x00, 0x31, 0x04, + 0xb1, 0x49, 0x19, 0xcc, 0x94, 0xec, 0xd2, 0xc5, 0x9c, 0x81, 0xf3, 0xc0, 0xa2, 0xcc, 0xa9, 0x58, + 0x1d, 0xe6, 0x80, 0x6d, 0x33, 0xd2, 0x9a, 0xec, 0xab, 0xc0, 0xe5, 0xb7, 0x6a, 0xb4, 0x27, 0x7a, + 0x64, 0x5d, 0x34, 0xbe, 0x62, 0xd7, 0x6a, 0x6a, 0xe6, 0x80, 0x8d, 0x29, 0x1c, 0x10, 0x8a, 0x9e, + 0x82, 0x01, 0x60, 0xb3, 0xd6, 0x06, 0x20, 0x0e, 0xb1, 0xf3, 0xc0, 0xec, 0x88, 0xc2, 0xb8, 0x23, + 0x20, 0xd6, 0x07, 0x3e, 0x7e, 0x5c, 0x06, 0x10, 0x0b, 0xec, 0xa1, 0xc3, 0x8a, 0xc6, 0x47, 0x62, + 0xbc, 0x2a, 0xe9, 0x3a, 0x08, 0xb3, 0x3e, 0xc3, 0x33, 0x00, 0xb1, 0xda, 0x69, 0x0d, 0xba, 0x10, + 0x04, 0x16, 0x01, 0x5a, 0x98, 0x92, 0x2a, 0x13, 0xb4, 0x1e, 0x2e, 0x7e, 0xf4, 0x9c, 0x27, 0xda, + 0x13, 0x3a, 0xc4, 0xcf, 0x4e, 0xfc, 0xed, 0x5b, 0x19, 0xc2, 0xc1, 0x2b, 0x30, 0x2c, 0x8e, 0x76, + 0xad, 0x49, 0xd0, 0x31, 0x12, 0x10, 0x02, 0x03, 0x4d, 0x68, 0xff, 0xc0, 0xe9, 0xbd, 0x00, 0x13, + 0x95, 0x1a, 0x34, 0x30, 0x8c, 0x78, 0x4a, 0x8c, 0x5f, 0x01, 0x01, 0x29, 0x2a, 0x6b, 0xb6, 0xab, + 0xd1, 0xf9, 0x0d, 0x24, 0x86, 0xe7, 0x10, 0x82, 0xbd, 0x8c, 0x38, 0x58, 0xa4, 0x20, 0xf1, 0x67, + 0xed, 0x07, 0xe6, 0x42, 0xa7, 0x53, 0x27, 0xe0, 0x37, 0x44, 0x44, 0x8f, 0x9d, 0xa9, 0x81, 0x91, + 0x27, 0xa7, 0x53, 0x03, 0x02, 0xb5, 0x90, 0xb9, 0x4e, 0x2a, 0x73, 0x65, 0x7d, 0x8e, 0xab, 0x72, + 0x47, 0x18, 0x59, 0xa3, 0x37, 0xf4, 0x7c, 0xf0, 0x0d, 0xc1, 0x95, 0x79, 0xbd, 0x72, 0x0f, 0x8b, + 0x1e, 0x27, 0x49, 0xe4, 0x81, 0xb5, 0xe6, 0x65, 0x0c, 0xe4, 0xd1, 0x31, 0x33, 0x07, 0x5c, 0xb3, + 0xdc, 0x2d, 0x9d, 0xc1, 0xfd, 0x47, 0xc5, 0x97, 0x32, 0x7f, 0xe0, 0xe4, 0xcc, 0xd6, 0xb7, 0x6f, + 0xec, 0xd0, 0xfa, 0xf6, 0x6d, 0x76, 0x68, 0xe9, 0x40, 0x14, 0xe6, 0x4c, 0x0d, 0x11, 0xd4, 0xc3, + 0x90, 0xa9, 0x21, 0xb3, 0x64, 0x5a, 0x56, 0x6d, 0x47, 0x75, 0xcb, 0xfe, 0xf6, 0x2d, 0x6d, 0xc6, + 0x27, 0x39, 0xc4, 0x6a, 0x00, 0xb4, 0xd5, 0xd0, 0x75, 0x3a, 0x90, 0x80, 0x0e, 0x83, 0x3b, 0x09, + 0xe5, 0xcc, 0x90, 0x5c, 0x10, 0x0f, 0xff, 0x21, 0x52, 0x05, 0xa2, 0xed, 0xb1, 0x3d, 0x8d, 0x92, + 0x53, 0x99, 0x7f, 0xc3, 0xe3, 0x6c, 0x4f, 0x23, 0xe5, 0x11, 0xfb, 0xca, 0x49, 0x3c, 0x81, 0xcc, + 0x26, 0x19, 0x7a, 0x31, 0x1e, 0xc6, 0xf6, 0x86, 0x3c, 0x26, 0xb3, 0x70, 0x12, 0x11, 0xf0, 0x68, + 0xea, 0x74, 0x56, 0x1e, 0x7a, 0xea, 0x18, 0x59, 0x6b, 0x74, 0x64, 0xb8, 0x91, 0x8a, 0xbe, 0xcb, + 0x53, 0xf1, 0x7e, 0x28, 0xa3, 0x33, 0x69, 0x94, 0x2f, 0x9c, 0x11, 0x92, 0x44, 0xf4, 0x3d, 0x87, + 0x68, 0xbe, 0x9c, 0xf6, 0x1a, 0x18, 0xdb, 0xd3, 0x47, 0xa0, 0xaa, 0x82, 0x99, 0x37, 0x8e, 0xd5, + 0x11, 0xe7, 0x89, 0x8e, 0x13, 0xc2, 0x46, 0x6e, 0x1c, 0x90, 0x87, 0x34, 0xd4, 0x79, 0x05, 0xda, + 0xf7, 0xea, 0xf0, 0x22, 0xf5, 0x0a, 0xaf, 0xf6, 0x9c, 0x9a, 0x3e, 0xc7, 0x8e, 0xae, 0x73, 0x71, + 0xf5, 0xea, 0x9a, 0xde, 0xe2, 0x65, 0xcf, 0xba, 0xa6, 0xef, 0xc5, 0x8d, 0x7d, 0x4d, 0xdf, 0x88, + 0x9b, 0xaa, 0x9c, 0x9a, 0x3b, 0xaf, 0xf6, 0x6b, 0x34, 0x71, 0x5e, 0x83, 0xb5, 0x31, 0xfa, 0x7e, + 0x08, 0xb3, 0xf2, 0x7d, 0x06, 0x7e, 0xda, 0xe1, 0x1d, 0xaf, 0x5f, 0x4e, 0x0f, 0x53, 0x61, 0x61, + 0xbd, 0xc3, 0xfd, 0x18, 0x12, 0x88, 0x7e, 0xb9, 0x9c, 0xec, 0xdd, 0xe8, 0xbf, 0xd8, 0x0e, 0xa2, + 0x81, 0x6d, 0x73, 0xdf, 0x49, 0x9e, 0xb2, 0xbd, 0x32, 0xab, 0x58, 0x95, 0xb2, 0x5f, 0x81, 0x7b, + 0x5d, 0x5f, 0x3c, 0x32, 0xc6, 0x93, 0x78, 0x58, 0xbe, 0xea, 0xd2, 0x5b, 0xfa, 0x9e, 0xbe, 0xa1, + 0x3e, 0xe5, 0x34, 0xb9, 0xc6, 0xf6, 0x38, 0x8c, 0x92, 0x72, 0x19, 0x9e, 0x74, 0xe7, 0x88, 0x5f, + 0xd5, 0xaf, 0x2b, 0x09, 0x7c, 0x48, 0xa9, 0x7d, 0xeb, 0x5c, 0x19, 0x86, 0xf1, 0xe8, 0xba, 0xf3, + 0x76, 0x0d, 0xaa, 0x86, 0x50, 0x35, 0x05, 0x75, 0x8e, 0x1a, 0xf0, 0x05, 0x8c, 0x03, 0x7d, 0xee, + 0xbc, 0x55, 0x1b, 0xa7, 0x9f, 0x1c, 0x93, 0x1e, 0x23, 0xc1, 0x90, 0x30, 0x72, 0x67, 0x66, 0x87, + 0x1f, 0x3e, 0xef, 0x70, 0xf0, 0x93, 0x73, 0x69, 0xa7, 0xde, 0x5e, 0xf1, 0x6b, 0x10, 0xb7, 0x04, + 0x44, 0x11, 0x1c, 0x6b, 0x72, 0x05, 0x54, 0x09, 0xe1, 0x02, 0x34, 0x99, 0xc0, 0xa5, 0x7a, 0x2d, + 0x75, 0xab, 0x8f, 0x66, 0x07, 0xb6, 0x19, 0xe9, 0xf0, 0xf1, 0xe5, 0xd0, 0x04, 0x8a, 0x7f, 0x71, + 0xb8, 0x4e, 0x61, 0xb2, 0x8a, 0x95, 0x9b, 0x0a, 0x88, 0xda, 0xc1, 0xa9, 0x40, 0x6f, 0x1f, 0x3f, + 0xc6, 0xc9, 0x1c, 0xc7, 0xc3, 0x1b, 0x1b, 0x6e, 0x42, 0xd0, 0xc9, 0xbe, 0x03, 0x20, 0x30, 0xe5, + 0x17, 0xc7, 0x01, 0x35, 0x0e, 0x9e, 0x69, 0x40, 0xc5, 0xf3, 0x67, 0x1c, 0xa4, 0x4a, 0x6b, 0x6b, + 0x5a, 0xfb, 0x0b, 0xde, 0xec, 0xf5, 0xf1, 0x53, 0x5f, 0x08, 0xd2, 0x66, 0x03, 0xf6, 0x2c, 0xc7, + 0xe9, 0x7f, 0x7f, 0x88, 0x20, 0xbc, 0xe8, 0x06, 0xf4, 0xce, 0x11, 0x3d, 0xc0, 0x11, 0x50, 0x17, + 0x5c, 0x9b, 0x1c, 0xda, 0xf5, 0x3a, 0xb4, 0x8f, 0xd1, 0x72, 0xd0, 0xfe, 0xd1, 0x12, 0x6d, 0x26, + 0x66, 0xf0, 0xc4, 0x67, 0x88, 0xa0, 0xb1, 0x3e, 0x17, 0xc6, 0xf1, 0x8a, 0x03, 0x87, 0x82, 0x6b, + 0xe7, 0x8a, 0x51, 0x8f, 0x86, 0xd7, 0x68, 0xd0, 0xb5, 0x3d, 0xd5, 0x68, 0x8c, 0xd8, 0xb8, 0xcc, + 0x81, 0x0d, 0x46, 0x12, 0x5e, 0x80, 0x38, 0x04, 0x83, 0x32, 0x28, 0x91, 0x31, 0x66, 0xee, 0x05, + 0xbe, 0xae, 0x54, 0xb6, 0xa9, 0x66, 0x6a, 0xba, 0x6e, 0x7c, 0x09, 0xbd, 0xa0, 0xac, 0xc1, 0x6e, + 0xce, 0xf7, 0x1c, 0x77, 0xaf, 0xb7, 0x97, 0xec, 0x0d, 0x97, 0x9e, 0xe6, 0x7c, 0x2f, 0x6d, 0xfa, + 0xb4, 0xe7, 0x58, 0xf4, 0xd3, 0x2f, 0x3e, 0xc8, 0xcf, 0xb7, 0x6f, 0xdc, 0x71, 0x80, 0xaa, 0xcf, + 0xca, 0xc7, 0x52, 0x5c, 0xce, 0x75, 0x8a, 0xdc, 0xd5, 0xdb, 0x30, 0x05, 0xe0, 0x28, 0xb8, 0xbc, + 0x58, 0x60, 0xd3, 0x1a, 0x5f, 0x8f, 0x53, 0x81, 0xcf, 0xd8, 0xeb, 0xdf, 0xd7, 0x99, 0x29, 0x27, + 0xf6, 0x68, 0x7e, 0x0c, 0x62, 0xb1, 0xb8, 0x5e, 0x2c, 0x3e, 0x77, 0x32, 0x27, 0x29, 0xb1, 0xf1, + 0x53, 0x67, 0xf4, 0x19, 0xd3, 0x08, 0x52, 0xf9, 0x93, 0xbc, 0x7b, 0x7b, 0xf1, 0x9e, 0x88, 0x6c, + 0x0b, 0x92, 0xad, 0x47, 0x73, 0xcc, 0x33, 0xd4, 0xec, 0xfb, 0x5f, 0x62, 0x48, 0xc1, 0xe3, 0x04, + 0xbf, 0x24, 0x47, 0x2a, 0x2e, 0x79, 0xf2, 0x68, 0xee, 0x2f, 0x9e, 0x90, 0xca, 0x29, 0xd1, 0x4e, + 0x64, 0xa5, 0xb0, 0xf2, 0x1e, 0x1c, 0x77, 0x9b, 0xe4, 0x33, 0x76, 0x1c, 0xa3, 0x7d, 0xee, 0xf0, + 0x23, 0x14, 0x32, 0xdc, 0xf2, 0xbf, 0x02, 0x8d, 0x4e, 0xe0, 0x4a, 0x1e, 0x3f, 0x26, 0x60, 0x1a, + 0xa1, 0xc9, 0xc7, 0xe7, 0x60, 0xe1, 0x3a, 0x9f, 0x1f, 0x7e, 0x08, 0x20, 0xaf, 0x93, 0x85, 0xdd, + 0x3e, 0x9a, 0x1c, 0x02, 0xe9, 0xf2, 0x93, 0x04, 0x12, 0x7c, 0x1f, 0x53, 0xe7, 0x19, 0x19, 0xb2, + 0x29, 0xda, 0x25, 0x0e, 0xa2, 0xe4, 0xf2, 0x3e, 0x44, 0xc1, 0x2e, 0xf1, 0x02, 0x69, 0x9b, 0x64, + 0x71, 0x10, 0xec, 0x92, 0x8c, 0x10, 0xc2, 0xbe, 0x6c, 0x06, 0xd6, 0xf7, 0x3d, 0xd8, 0x84, 0xc0, + 0xc6, 0x98, 0xb1, 0x91, 0x4f, 0xfe, 0x15, 0x3c, 0xac, 0x10, 0x7c, 0xc9, 0x12, 0x33, 0x89, 0x36, + 0xc1, 0x15, 0x59, 0xe0, 0x7e, 0xc2, 0xb7, 0xd3, 0xa0, 0x8f, 0x90, 0x87, 0x72, 0x2a, 0x1e, 0xb7, + 0xc5, 0x23, 0x21, 0x8f, 0xe6, 0x22, 0x8d, 0x50, 0x64, 0x50, 0x8d, 0x84, 0xf4, 0x23, 0x0f, 0x72, + 0x62, 0x7f, 0xf6, 0x49, 0x94, 0xd3, 0x05, 0xd4, 0x9b, 0x0d, 0xa0, 0x89, 0x38, 0x2e, 0xf9, 0xe4, + 0xb9, 0x12, 0xe0, 0xc3, 0x06, 0x40, 0xba, 0x7c, 0x18, 0xb4, 0xc9, 0x51, 0xd6, 0x8a, 0x8b, 0x4e, + 0x0a, 0x80, 0xfa, 0xfd, 0x55, 0xa8, 0x1f, 0xe0, 0x9a, 0x14, 0xa1, 0x3e, 0x03, 0xed, 0xda, 0x91, + 0x7b, 0x98, 0xfd, 0x19, 0xf9, 0x17, 0x1d, 0xc0, 0x0c, 0x3c, 0x3b, 0x6f, 0xcb, 0xf7, 0x16, 0xf0, + 0x7e, 0xd2, 0xc6, 0xf7, 0x13, 0xf0, 0xce, 0x6d, 0x6b, 0x2f, 0xce, 0xcf, 0xdf, 0x9e, 0x3f, 0xd8, + 0x0f, 0x84, 0x12, 0x12, 0x70, 0x21, 0x2c, 0x00, 0x2a, 0x7c, 0x0d, 0xc2, 0x9b, 0x40, 0xbd, 0x38, + 0x60, 0x68, 0x99, 0xd2, 0x80, 0x20, 0x80, 0x58, 0x6a, 0x42, 0x08, 0x4f, 0x1c, 0x4c, 0x8f, 0xe8, + 0xa9, 0xb8, 0x74, 0xc6, 0x20, 0x2f, 0xfd, 0x3d, 0xe1, 0xaf, 0x0e, 0xbb, 0x47, 0x7f, 0x1c, 0x9f, + 0xbf, 0x79, 0xf5, 0xe6, 0xb7, 0x07, 0x87, 0xfb, 0xdd, 0x23, 0xf2, 0x3e, 0x7b, 0x57, 0xad, 0x37, + 0x23, 0x98, 0x42, 0x81, 0x30, 0x24, 0x22, 0x34, 0x41, 0x69, 0x10, 0xc9, 0x90, 0xb1, 0x0a, 0x54, + 0x66, 0xfe, 0x78, 0xc8, 0x74, 0x90, 0x9f, 0x98, 0x74, 0x21, 0xdc, 0x27, 0xde, 0x20, 0x08, 0x21, + 0xc6, 0x07, 0xb0, 0x90, 0xf0, 0x40, 0xb8, 0x3b, 0x14, 0x37, 0x3c, 0x5a, 0x00, 0xf1, 0x22, 0x90, + 0xf4, 0x4d, 0xfc, 0x44, 0x4a, 0x20, 0x8f, 0x3d, 0xfc, 0x9a, 0xe8, 0x04, 0x64, 0x0e, 0x6b, 0x37, + 0xea, 0xd5, 0x46, 0x79, 0x34, 0x9a, 0x49, 0x9f, 0x5c, 0x54, 0xb8, 0x43, 0x9d, 0x9e, 0x18, 0x5e, + 0x00, 0x09, 0xda, 0xe9, 0xfb, 0xd7, 0x67, 0x4e, 0x9f, 0x9e, 0xae, 0x06, 0x8b, 0x8e, 0x26, 0x5e, + 0xaf, 0x84, 0x28, 0x07, 0x7c, 0xe6, 0xaf, 0xe1, 0x2d, 0xc4, 0xae, 0x8f, 0x84, 0x47, 0x5c, 0x2c, + 0x7e, 0x24, 0x12, 0x5e, 0xce, 0x92, 0x80, 0xfb, 0x61, 0xd2, 0x31, 0x7a, 0x69, 0xc6, 0x17, 0x38, + 0x32, 0x22, 0xda, 0x39, 0x16, 0xea, 0x78, 0x0a, 0x77, 0x11, 0x14, 0x1c, 0xaa, 0x27, 0x11, 0x30, + 0x3c, 0x53, 0x53, 0xc9, 0xb0, 0x22, 0xe7, 0x4d, 0x8d, 0x83, 0xd6, 0xd3, 0x95, 0x61, 0x7a, 0x7b, + 0x07, 0x50, 0x31, 0xa7, 0xb4, 0x3e, 0x7e, 0x1e, 0x24, 0x3f, 0x74, 0x1f, 0x8c, 0xfe, 0xd0, 0x29, + 0xe7, 0x47, 0x54, 0xf8, 0x53, 0x5f, 0xdf, 0xb7, 0x3b, 0x0a, 0x4c, 0x45, 0x36, 0x3e, 0x38, 0x67, + 0xcb, 0xcc, 0x0c, 0xa8, 0x4c, 0x29, 0x99, 0x48, 0x20, 0xd3, 0x36, 0x06, 0x6d, 0xec, 0x10, 0x62, + 0xe1, 0xd4, 0x9a, 0x0e, 0xc1, 0x21, 0x7a, 0x4f, 0xf9, 0x1e, 0xbb, 0xa6, 0x90, 0xe6, 0x45, 0x83, + 0x6e, 0x59, 0xdb, 0x1b, 0x82, 0xb3, 0xc3, 0x98, 0x08, 0xef, 0xac, 0xec, 0xce, 0x86, 0x3b, 0x5d, + 0x84, 0xa5, 0x08, 0x65, 0xd9, 0xf8, 0xca, 0xae, 0xf8, 0xd3, 0xb5, 0x4e, 0x60, 0x60, 0x8c, 0x77, + 0x21, 0x2a, 0x41, 0x11, 0x95, 0x4f, 0xe7, 0x20, 0x8b, 0x65, 0xf6, 0xd4, 0xa7, 0x1e, 0xfc, 0xc1, + 0x3f, 0x1d, 0xda, 0xb1, 0x4e, 0xf5, 0x95, 0x4b, 0x38, 0xed, 0x61, 0x4b, 0xfc, 0xa7, 0x41, 0x3b, + 0x5a, 0x1d, 0xb1, 0x31, 0xf0, 0x18, 0x29, 0x54, 0xd1, 0x78, 0x7c, 0xc3, 0xd5, 0xd1, 0xf0, 0x0d, + 0x6c, 0x22, 0xde, 0x7e, 0xd5, 0x68, 0x7e, 0x65, 0x17, 0x9e, 0x90, 0xb9, 0xc7, 0x58, 0xf4, 0x75, + 0x34, 0x55, 0xf5, 0x55, 0x8d, 0xbf, 0x32, 0x88, 0xdc, 0x61, 0x19, 0x47, 0x53, 0xa7, 0x07, 0x6a, + 0x28, 0xe6, 0xc5, 0xe5, 0x21, 0xc4, 0x1c, 0xe0, 0x92, 0x61, 0xb5, 0x3d, 0x7f, 0xdf, 0xc6, 0x15, + 0xf1, 0x2a, 0xdf, 0x93, 0x8c, 0x9c, 0x60, 0x33, 0x78, 0xcb, 0xf3, 0x87, 0xae, 0x70, 0x41, 0x07, + 0x62, 0xf4, 0x7c, 0xce, 0x22, 0x81, 0xff, 0x1d, 0xb0, 0x2b, 0x7d, 0x4e, 0x9e, 0xc3, 0x80, 0xdd, + 0x78, 0x92, 0x5b, 0x34, 0xa2, 0x43, 0x6a, 0xea, 0xf7, 0x51, 0x0e, 0xe4, 0xae, 0xcb, 0xa7, 0xaf, + 0x43, 0x97, 0x43, 0x8e, 0xd0, 0x59, 0x1a, 0x43, 0x07, 0x34, 0x4f, 0x3a, 0x02, 0x3c, 0x06, 0x55, + 0x39, 0x13, 0xf4, 0xbe, 0x63, 0x11, 0x1b, 0xc5, 0x22, 0x0b, 0xf8, 0x70, 0x7e, 0x76, 0x01, 0x5b, + 0xe8, 0x0d, 0x65, 0x5b, 0x59, 0x2a, 0x92, 0x91, 0x0d, 0x8c, 0x45, 0x27, 0x04, 0xa7, 0xcb, 0x54, + 0x14, 0x53, 0x03, 0x8c, 0x19, 0xb3, 0x18, 0x1f, 0x7d, 0x5d, 0x16, 0xe4, 0x1f, 0x41, 0x08, 0xa0, + 0x89, 0xd2, 0xa0, 0xe3, 0x88, 0xf2, 0xdb, 0xaa, 0x39, 0x80, 0xb0, 0x7d, 0x89, 0x9f, 0xf2, 0xf8, + 0x38, 0x5e, 0x0e, 0x79, 0xe0, 0x8c, 0xa3, 0x9b, 0xb5, 0x01, 0x2a, 0x0d, 0x11, 0x1d, 0x51, 0x0f, + 0x23, 0x1c, 0x0f, 0x6b, 0x35, 0x9e, 0xfb, 0xab, 0xa8, 0x87, 0xff, 0x06, 0x0d, 0x5c, 0xd7, 0xbd, + 0x91, 0x4a, 0x64, 0x8a, 0x52, 0x65, 0x51, 0x70, 0xda, 0x62, 0x96, 0xba, 0x9b, 0x3d, 0x9a, 0x8a, + 0x81, 0x45, 0x7c, 0x55, 0x64, 0x90, 0x5f, 0xe2, 0x29, 0x87, 0x1b, 0x42, 0x9a, 0x10, 0x84, 0x09, + 0x91, 0xdf, 0x4c, 0xc3, 0x63, 0x90, 0x2e, 0x27, 0x8c, 0x88, 0x2f, 0xd6, 0x4b, 0x03, 0x29, 0xec, + 0x63, 0x07, 0xcd, 0x7b, 0xce, 0x42, 0x26, 0xa2, 0x2a, 0xb6, 0x05, 0x9b, 0x22, 0x44, 0x05, 0x65, + 0xf2, 0x3e, 0x09, 0x54, 0x53, 0x72, 0xfb, 0xf1, 0x63, 0x64, 0x69, 0x08, 0xc0, 0x7e, 0x38, 0x28, + 0x6b, 0xef, 0xc1, 0x92, 0xc7, 0x22, 0x9a, 0x23, 0x4f, 0xb4, 0x3d, 0x88, 0x31, 0x9f, 0xa0, 0x3b, + 0x12, 0x28, 0x2a, 0xac, 0xe4, 0x11, 0x82, 0xb2, 0xde, 0x10, 0xd6, 0x2d, 0x80, 0x78, 0x05, 0xec, + 0xd0, 0x65, 0x49, 0xed, 0x62, 0xa0, 0xe9, 0x20, 0x00, 0x1b, 0x09, 0x1e, 0xcd, 0xe5, 0x70, 0x2a, + 0x5f, 0xd8, 0x69, 0x40, 0x56, 0x98, 0xd2, 0x55, 0xa2, 0x92, 0x5c, 0x0c, 0x3a, 0xbc, 0x78, 0xbb, + 0x3c, 0x47, 0x31, 0xd8, 0x30, 0xd6, 0x19, 0xd6, 0xe0, 0x44, 0x75, 0x62, 0xb1, 0x60, 0xf1, 0x2c, + 0xe8, 0x91, 0x4c, 0x3c, 0xc7, 0x20, 0xe8, 0x82, 0xff, 0x71, 0x96, 0xc0, 0xaa, 0xc2, 0x6e, 0xe0, + 0x5e, 0x4c, 0x07, 0xef, 0x20, 0x99, 0xe6, 0x85, 0x28, 0xca, 0x22, 0x99, 0xae, 0xea, 0x1f, 0x0f, + 0xac, 0x65, 0x74, 0x8a, 0xb1, 0x55, 0x16, 0x46, 0xea, 0x49, 0x34, 0x9b, 0x17, 0x92, 0x1f, 0xc4, + 0xac, 0xb8, 0x5d, 0x91, 0x55, 0x57, 0xfa, 0x07, 0x21, 0xfb, 0x0d, 0xf3, 0x12, 0xd2, 0xe7, 0x10, + 0x74, 0x95, 0xd3, 0x18, 0x46, 0xdb, 0x5b, 0x2d, 0x6e, 0x4b, 0x8e, 0xec, 0x69, 0xf9, 0x70, 0x86, + 0xce, 0x47, 0x3c, 0x19, 0x86, 0x10, 0x73, 0x60, 0xf8, 0xa3, 0x51, 0x7c, 0x81, 0x9b, 0x47, 0x31, + 0xc4, 0xbf, 0xf9, 0x88, 0x06, 0xf2, 0x8a, 0x8d, 0x90, 0x66, 0x41, 0xf1, 0xf5, 0xee, 0x36, 0x87, + 0xe4, 0x3f, 0x50, 0xcb, 0x27, 0x06, 0xf6, 0x94, 0xf5, 0x4e, 0x21, 0xd2, 0x81, 0xbe, 0xe8, 0x61, + 0x26, 0x8c, 0x75, 0xa6, 0xb4, 0x9d, 0x47, 0x11, 0xe6, 0x92, 0x3a, 0xe4, 0x96, 0xe0, 0x3a, 0x93, + 0x67, 0xe5, 0x62, 0x42, 0xa6, 0xa5, 0x44, 0xac, 0x7d, 0x27, 0xef, 0xbd, 0x11, 0x0f, 0x27, 0x90, + 0xf6, 0xe5, 0xca, 0x0a, 0x7c, 0x27, 0x11, 0x01, 0x54, 0x2d, 0x5e, 0xd5, 0xf5, 0xf6, 0x96, 0x65, + 0x96, 0x65, 0xcc, 0x1f, 0x5a, 0x68, 0x75, 0x91, 0xc5, 0x86, 0x12, 0x1c, 0x5a, 0x10, 0x8f, 0xe5, + 0x2c, 0xa9, 0xf6, 0xda, 0x13, 0x75, 0xf1, 0x4f, 0xa7, 0x20, 0x60, 0xb2, 0x76, 0x8f, 0x15, 0xd9, + 0x17, 0x53, 0x98, 0x0b, 0xcb, 0xb3, 0x1c, 0x84, 0x15, 0xd8, 0x87, 0x07, 0xa2, 0xb0, 0x04, 0xca, + 0x64, 0x19, 0xd2, 0x5c, 0x25, 0x81, 0xa0, 0xbb, 0x42, 0xea, 0xb0, 0x9e, 0x04, 0x14, 0x47, 0x11, + 0x92, 0x4c, 0x08, 0xd8, 0xd4, 0x1b, 0xb0, 0x24, 0x8c, 0xc0, 0x91, 0x78, 0xe3, 0x6e, 0xc8, 0x22, + 0xd7, 0xb8, 0x89, 0xbc, 0x84, 0x0b, 0x5f, 0xa5, 0x62, 0xe7, 0x1c, 0x2b, 0x96, 0x23, 0x5d, 0x83, + 0xdf, 0xf2, 0xde, 0x89, 0x8c, 0x93, 0xe5, 0x09, 0x82, 0xb6, 0x95, 0x67, 0xda, 0x4b, 0xe6, 0x61, + 0x2d, 0x03, 0x4c, 0x14, 0x02, 0x12, 0x74, 0x21, 0x6d, 0x02, 0x4a, 0x06, 0x16, 0x60, 0x21, 0x2a, + 0xf8, 0x45, 0x7b, 0x19, 0x8a, 0x17, 0xd4, 0xc0, 0xa0, 0x06, 0xe2, 0x64, 0xe5, 0x6e, 0x90, 0x3f, + 0xef, 0x02, 0xc1, 0x9a, 0xdb, 0x1d, 0x20, 0xec, 0x4e, 0x08, 0x91, 0xff, 0xdd, 0xb5, 0xd0, 0xd9, + 0x9b, 0xbb, 0x40, 0x64, 0x8a, 0x73, 0x27, 0xd0, 0x87, 0x1d, 0x60, 0xde, 0xdc, 0x09, 0x23, 0x04, + 0xe9, 0x2e, 0xfa, 0x81, 0x89, 0xbb, 0x03, 0x04, 0x7d, 0xe0, 0x26, 0x08, 0x96, 0xed, 0x14, 0x00, + 0x16, 0x66, 0xb7, 0xcf, 0x21, 0x24, 0x32, 0x0e, 0xc7, 0xa2, 0xa2, 0x9b, 0x96, 0x25, 0x45, 0x75, + 0x37, 0x5f, 0xe9, 0xbc, 0xa6, 0x99, 0x63, 0x77, 0x00, 0x58, 0x14, 0xae, 0x40, 0x8f, 0x8c, 0x5b, + 0x9a, 0xf9, 0xf8, 0x95, 0xf6, 0x19, 0x15, 0x21, 0x01, 0xc8, 0x51, 0x66, 0x68, 0xd7, 0xce, 0xb2, + 0x76, 0x51, 0x14, 0x75, 0xde, 0x09, 0x41, 0x83, 0xb3, 0x1e, 0x82, 0x8c, 0xa3, 0x30, 0x09, 0x21, + 0xff, 0x78, 0xc6, 0x7c, 0x1e, 0x41, 0x3c, 0xff, 0x07, 0xa8, 0xb1, 0x4c, 0x4d, 0xd0, 0xdf, 0x4e, + 0x41, 0xb4, 0xc5, 0x2b, 0x41, 0x37, 0x43, 0xc8, 0x73, 0x62, 0x1e, 0x4d, 0x41, 0xd0, 0xf1, 0x5b, + 0x45, 0xc2, 0x66, 0x93, 0x72, 0x18, 0xc9, 0x6f, 0x59, 0x80, 0x27, 0x8c, 0x26, 0xc1, 0xb2, 0x27, + 0xd6, 0x35, 0xbd, 0x9d, 0xf7, 0x16, 0x0b, 0x25, 0x5a, 0x61, 0x20, 0x5e, 0x52, 0x70, 0x04, 0x5a, + 0x78, 0x50, 0x24, 0x82, 0x4a, 0x65, 0x61, 0x9d, 0x65, 0xf5, 0x41, 0xf9, 0x30, 0xcb, 0x34, 0x9f, + 0x66, 0x35, 0xef, 0x65, 0x2f, 0xc4, 0xec, 0xf5, 0xba, 0x28, 0x09, 0x26, 0xce, 0xe7, 0xf5, 0x1f, + 0x00, 0x38, 0x30, 0x5d, 0x3e, 0xa0, 0x44, 0x7c, 0xfd, 0xff, 0xd1, 0x9c, 0x2f, 0x7e, 0xa1, 0xe2, + 0xab, 0x63, 0xf2, 0x5e, 0xff, 0xdc, 0x11, 0xd3, 0x48, 0x77, 0xb7, 0xfc, 0xe2, 0x92, 0x88, 0x10, + 0x9d, 0x64, 0x21, 0x84, 0x7b, 0x05, 0x49, 0x89, 0x08, 0x34, 0x77, 0x7a, 0x67, 0xab, 0xd8, 0xf2, + 0x1c, 0xaa, 0xc9, 0x2a, 0xaa, 0xa9, 0x71, 0xd9, 0xaf, 0x5b, 0xb6, 0xc0, 0x33, 0xb8, 0x0b, 0xcf, + 0x24, 0x87, 0x67, 0x22, 0xf0, 0xe4, 0x5b, 0x90, 0x0c, 0x16, 0x78, 0x7c, 0x79, 0x97, 0x24, 0xa6, + 0xf5, 0x4e, 0x59, 0xfe, 0x29, 0x3a, 0x10, 0xe3, 0xeb, 0x07, 0x62, 0x3c, 0x7f, 0x20, 0x96, 0x88, + 0xf3, 0x1f, 0x75, 0x26, 0x46, 0x31, 0x23, 0x7f, 0xe0, 0x88, 0x03, 0x04, 0x65, 0x35, 0x53, 0x87, + 0x8b, 0xaf, 0xb3, 0xfc, 0x13, 0x82, 0x0a, 0x19, 0x08, 0x2c, 0x5f, 0x6e, 0xd1, 0x45, 0x56, 0xfe, + 0x4e, 0xbc, 0x76, 0xa2, 0x8e, 0x5a, 0x73, 0xef, 0xa1, 0xa0, 0xb6, 0x89, 0xe3, 0x61, 0x8c, 0x3c, + 0x97, 0xe1, 0x2f, 0x8e, 0x14, 0xaf, 0xbd, 0x70, 0xf1, 0x15, 0x2d, 0x6e, 0x20, 0x14, 0xec, 0xf1, + 0x39, 0xef, 0x33, 0x48, 0xa1, 0xcb, 0xf9, 0x49, 0x0d, 0x21, 0xe5, 0xe5, 0xdc, 0xb7, 0xb5, 0x20, + 0x7b, 0x1d, 0xbc, 0xc0, 0x5c, 0x65, 0xcb, 0x58, 0x2c, 0x41, 0xaf, 0x1f, 0xf9, 0xe1, 0x98, 0x0a, + 0x8a, 0xad, 0xb6, 0x36, 0xd1, 0xdb, 0xe9, 0xb6, 0x79, 0xf2, 0x70, 0x21, 0x44, 0xa7, 0xee, 0x6e, + 0xcb, 0x45, 0x7c, 0x04, 0xeb, 0xac, 0xac, 0xd8, 0x99, 0x8c, 0xf1, 0x47, 0xa2, 0xde, 0x49, 0x52, + 0x80, 0xd0, 0xa0, 0xd6, 0x8b, 0x52, 0x43, 0x1f, 0xf6, 0x87, 0x5b, 0x8d, 0x21, 0x85, 0xcc, 0x2d, + 0x98, 0xed, 0x5e, 0xac, 0xb9, 0x3e, 0x5a, 0x1e, 0x9d, 0x17, 0x8d, 0x5b, 0x83, 0x54, 0x35, 0x4c, + 0x10, 0x5a, 0x4c, 0x52, 0x30, 0xde, 0x3e, 0x17, 0xc1, 0x4e, 0x27, 0x49, 0xcf, 0x29, 0x84, 0x08, + 0x29, 0x16, 0x89, 0xd0, 0x1f, 0xf1, 0xc7, 0x2a, 0x06, 0xdd, 0x48, 0x21, 0x20, 0x80, 0x5c, 0x50, + 0xec, 0x66, 0xee, 0x71, 0x8c, 0x39, 0x16, 0x24, 0x3d, 0x2b, 0x5f, 0xa2, 0x2b, 0x48, 0x28, 0xd4, + 0x57, 0xea, 0x20, 0xd0, 0x49, 0xc5, 0xa7, 0x40, 0x9c, 0x91, 0x50, 0x2a, 0xf5, 0xcc, 0x38, 0x0b, + 0x51, 0xe0, 0xf7, 0x07, 0x08, 0xc2, 0xd2, 0x94, 0x81, 0x77, 0x80, 0x87, 0x63, 0x8d, 0x2a, 0x1e, + 0x7e, 0x17, 0x52, 0xd9, 0xd3, 0x9c, 0x74, 0xae, 0x08, 0xe2, 0x76, 0x4d, 0x5c, 0xf2, 0x6b, 0x79, + 0x00, 0xf1, 0x9f, 0x3e, 0xcd, 0xce, 0xf8, 0xb0, 0xf2, 0xc2, 0xe3, 0x2e, 0xc7, 0x4f, 0x14, 0x4d, + 0x5c, 0xe1, 0x11, 0x54, 0x80, 0x69, 0x5c, 0x02, 0xde, 0x24, 0x17, 0xee, 0x3d, 0x2b, 0x27, 0xce, + 0x5a, 0x98, 0x09, 0x70, 0x6b, 0xe7, 0xdc, 0xb4, 0x20, 0x69, 0x55, 0x49, 0x09, 0xc4, 0xa2, 0x49, + 0x7e, 0xbe, 0xb5, 0xc1, 0xc1, 0x96, 0xb1, 0x80, 0x4d, 0x71, 0x24, 0x9a, 0x6c, 0x76, 0x80, 0x23, + 0xc7, 0x70, 0x41, 0x38, 0xd4, 0x7c, 0xca, 0xcd, 0x23, 0xd0, 0x0e, 0x75, 0x94, 0xfc, 0x56, 0x7a, + 0x6e, 0x11, 0x0f, 0x82, 0xf3, 0xce, 0xe7, 0x49, 0x19, 0x0b, 0xc5, 0x09, 0xee, 0x61, 0x1a, 0xcc, + 0x76, 0x12, 0x2c, 0x02, 0x49, 0x23, 0x8f, 0xc7, 0x86, 0xd2, 0xf7, 0x6b, 0x58, 0xc0, 0x90, 0xfe, + 0x9c, 0x5f, 0x25, 0xea, 0x74, 0x52, 0xd5, 0x50, 0x64, 0x0b, 0xde, 0x41, 0x43, 0x16, 0x01, 0xc8, + 0xd6, 0xdb, 0x5c, 0xd3, 0x4c, 0x36, 0xcd, 0x64, 0xe4, 0x01, 0x62, 0x1a, 0xb8, 0x27, 0xc8, 0x1e, + 0x48, 0x20, 0xa8, 0x09, 0xd4, 0x4f, 0xf0, 0xb4, 0x33, 0x8b, 0x2f, 0x20, 0x6f, 0xc8, 0x05, 0x17, + 0x41, 0x61, 0x68, 0x91, 0x9b, 0x5b, 0xdf, 0xc8, 0xee, 0x72, 0xe7, 0xe9, 0xb2, 0x08, 0xd1, 0x9b, + 0x3a, 0xcb, 0x20, 0x9d, 0xf6, 0xa6, 0xcb, 0x14, 0x16, 0x43, 0x65, 0xe9, 0x5d, 0xae, 0xae, 0x95, + 0x23, 0x08, 0xb6, 0x64, 0x5e, 0xbd, 0xe9, 0x6a, 0x9e, 0x95, 0x56, 0xe9, 0xca, 0x2a, 0x48, 0x57, + 0x99, 0x12, 0xa6, 0xb6, 0x83, 0xf4, 0xe4, 0xa4, 0x3c, 0xf7, 0xdc, 0x36, 0x24, 0xa9, 0x2e, 0x0d, + 0xe0, 0x12, 0xd0, 0xdb, 0xb8, 0x8d, 0xde, 0x90, 0x45, 0x09, 0xbd, 0xe5, 0xe2, 0x36, 0x1c, 0xd3, + 0x59, 0xd6, 0xf8, 0x91, 0xce, 0xd2, 0xd6, 0x8f, 0x0b, 0x5d, 0x5f, 0xe3, 0x93, 0x9f, 0xe7, 0x13, + 0x97, 0x27, 0x15, 0x73, 0x79, 0xc0, 0xee, 0x23, 0x79, 0x61, 0x15, 0x11, 0xb2, 0x8b, 0x87, 0x00, + 0x4f, 0x2d, 0x3d, 0x8c, 0xd4, 0xf0, 0x0c, 0x53, 0xf5, 0x8b, 0x82, 0xdd, 0xad, 0x04, 0xb8, 0xe5, + 0x15, 0x79, 0x8d, 0xe9, 0x4c, 0xb6, 0xcc, 0x54, 0xcb, 0x2c, 0x06, 0xa7, 0xb8, 0x55, 0x9a, 0xe8, + 0xc6, 0x41, 0xbf, 0x4a, 0xb2, 0x8b, 0xb2, 0x6f, 0x99, 0xa5, 0xdf, 0x91, 0xf6, 0xef, 0x90, 0xa3, + 0xdd, 0xa3, 0xd2, 0xa0, 0x92, 0xb5, 0xef, 0x24, 0xa6, 0x77, 0x4c, 0x76, 0x67, 0x66, 0x7a, 0x7f, + 0x64, 0x8a, 0x68, 0x26, 0x49, 0xb3, 0xb5, 0x62, 0x21, 0x0e, 0x06, 0xff, 0x23, 0x98, 0x6e, 0x24, + 0xd3, 0x3f, 0x80, 0xed, 0x36, 0x23, 0x24, 0x8a, 0x21, 0xc8, 0x84, 0xa5, 0x24, 0x5f, 0x5d, 0x83, + 0x41, 0x34, 0x3b, 0xc1, 0x21, 0xef, 0x04, 0x20, 0xc7, 0xc9, 0x8a, 0x1c, 0x07, 0x52, 0x82, 0xb5, + 0x8b, 0xf4, 0x8b, 0x0c, 0x28, 0xc0, 0x20, 0xbf, 0x01, 0x48, 0xa4, 0xfa, 0xf6, 0x7a, 0xb2, 0xf8, + 0x7f, 0x11, 0x34, 0xe2, 0xec, 0xea, 0xeb, 0x08, 0x18, 0x2b, 0x38, 0x85, 0x1b, 0xb7, 0xcc, 0xad, + 0x8a, 0x94, 0x1b, 0xab, 0x5e, 0xff, 0xcb, 0x99, 0xe8, 0x27, 0xe2, 0x5b, 0x01, 0x9e, 0xeb, 0xac, + 0xbe, 0x19, 0x44, 0xbe, 0xff, 0xcd, 0xf7, 0xd5, 0x9f, 0x8b, 0xb9, 0xe3, 0x5b, 0x03, 0x2b, 0x36, + 0x32, 0xfd, 0x8e, 0x00, 0xac, 0x08, 0xd2, 0xb2, 0xf5, 0x87, 0x42, 0x1a, 0x46, 0x9d, 0xd8, 0xe6, + 0xef, 0x35, 0xc3, 0xb6, 0xe1, 0x4a, 0x6c, 0xa3, 0x81, 0xbf, 0xd4, 0x21, 0x7e, 0x6f, 0x83, 0x58, + 0x0d, 0xa3, 0x55, 0xc7, 0x6b, 0xcd, 0xa8, 0xb7, 0xf0, 0x0a, 0xbd, 0x55, 0x00, 0xb1, 0x9a, 0xc4, + 0xb2, 0x0c, 0x8b, 0x54, 0x8d, 0x6a, 0x9d, 0x1c, 0xe0, 0x8f, 0x88, 0xd4, 0x0d, 0x1b, 0xef, 0xac, + 0x3a, 0xdc, 0x35, 0x5a, 0xa4, 0x89, 0x1d, 0xf0, 0xd1, 0x82, 0xc7, 0x66, 0x15, 0x3a, 0x4c, 0xfc, + 0x9d, 0x11, 0x98, 0xc0, 0x52, 0x17, 0xa3, 0x55, 0x95, 0x77, 0xb6, 0x51, 0xc3, 0xb6, 0xc6, 0x01, + 0xb1, 0xc4, 0xef, 0x8f, 0xb4, 0xf0, 0xda, 0x30, 0xac, 0x4b, 0xe8, 0xb1, 0xea, 0x67, 0xb0, 0x72, + 0x83, 0x58, 0xa6, 0xd1, 0x38, 0xb3, 0xe0, 0x6a, 0x9f, 0x59, 0x36, 0x20, 0x75, 0xd6, 0xc2, 0xdb, + 0x03, 0xa3, 0xa6, 0x7a, 0xc4, 0x34, 0x56, 0xfd, 0x12, 0x86, 0xfd, 0x0e, 0x38, 0xc0, 0xf0, 0x5a, + 0x9d, 0xb4, 0x0c, 0x13, 0x51, 0x38, 0xa8, 0x91, 0x26, 0xac, 0x0f, 0xdb, 0x41, 0x9c, 0x4f, 0x61, + 0xb7, 0xbf, 0xd7, 0xb1, 0x47, 0x60, 0x62, 0x56, 0x71, 0xa4, 0x89, 0xdf, 0x5d, 0xb0, 0xaa, 0xd8, + 0x5a, 0x15, 0x5b, 0xc5, 0x4b, 0xdd, 0x38, 0xa8, 0x2b, 0x08, 0xdc, 0x1d, 0x8e, 0x68, 0x11, 0xa4, + 0x95, 0xd5, 0x3a, 0x05, 0xf2, 0xd4, 0x7f, 0xc7, 0x5f, 0x23, 0x11, 0x8d, 0xb6, 0x69, 0xd8, 0x30, + 0x77, 0x13, 0x3f, 0x6d, 0x41, 0x33, 0x68, 0xc7, 0x9b, 0xba, 0x21, 0xaf, 0x35, 0x44, 0x47, 0x41, + 0x55, 0x91, 0x1c, 0x6a, 0x68, 0x15, 0xe9, 0x8c, 0xd7, 0x53, 0xab, 0x79, 0x69, 0x59, 0xbf, 0x5b, + 0x88, 0x68, 0x0b, 0x27, 0x10, 0xe8, 0x37, 0x1b, 0x02, 0x0b, 0xd8, 0x03, 0x0e, 0x81, 0xbd, 0x5c, + 0x02, 0x2d, 0x5a, 0xbf, 0x4b, 0x9e, 0xd4, 0xc5, 0x0c, 0xb0, 0x3d, 0xd8, 0x97, 0x61, 0x03, 0xe4, + 0x01, 0x39, 0xc0, 0x0f, 0x0b, 0xdf, 0x4c, 0x13, 0x03, 0x2c, 0x03, 0xf8, 0x09, 0x74, 0x46, 0xb2, + 0x21, 0x22, 0x62, 0x8b, 0xcd, 0x96, 0xb8, 0xa9, 0xab, 0x06, 0xc1, 0x21, 0x00, 0x42, 0xea, 0xb7, + 0xf0, 0x13, 0xc6, 0x62, 0x8b, 0x29, 0x31, 0xb3, 0xcd, 0xd7, 0x48, 0x6f, 0x0b, 0x76, 0x9f, 0xff, + 0x99, 0x15, 0x51, 0x00, 0x5b, 0x97, 0xeb, 0xf4, 0x6b, 0x0c, 0xea, 0x57, 0x81, 0x34, 0x72, 0xff, + 0x6f, 0xbf, 0x1c, 0xdd, 0xf5, 0x93, 0x36, 0x07, 0xd4, 0xb6, 0x4e, 0x5b, 0x97, 0xcd, 0x53, 0xeb, + 0x00, 0x1f, 0xea, 0xa7, 0xad, 0x63, 0x9b, 0xda, 0xea, 0x25, 0xbe, 0x06, 0x6d, 0x5e, 0xda, 0x56, + 0xae, 0xa1, 0x45, 0x6d, 0xa0, 0xec, 0x41, 0xae, 0x05, 0x7f, 0x15, 0xc4, 0xba, 0x6c, 0xe6, 0x5a, + 0x70, 0x96, 0xd7, 0x56, 0x83, 0x5a, 0xa7, 0xb5, 0x3c, 0x1c, 0xad, 0x5e, 0x5a, 0xcd, 0xd3, 0xda, + 0x25, 0x8c, 0x6f, 0x5c, 0x5a, 0x62, 0xef, 0x44, 0x6e, 0x5e, 0xbd, 0xab, 0x7d, 0x22, 0x4a, 0x69, + 0x21, 0xc9, 0x4a, 0x77, 0x4f, 0xb6, 0x57, 0x40, 0xfe, 0x46, 0x4a, 0xa1, 0x6a, 0xab, 0xe2, 0xf6, + 0x7f, 0x50, 0xbf, 0x5b, 0xa8, 0x08, 0x2d, 0x54, 0xae, 0x26, 0x3e, 0xd6, 0x50, 0xbf, 0x61, 0x18, + 0x68, 0xa3, 0x8d, 0x1f, 0x35, 0x14, 0xca, 0x1a, 0xce, 0x7d, 0xd0, 0x00, 0x40, 0xfc, 0xf9, 0x9f, + 0x03, 0xd4, 0xc6, 0xe6, 0xdf, 0x20, 0x9f, 0xa7, 0x56, 0xf5, 0x77, 0xd4, 0x7d, 0xd9, 0x66, 0x19, + 0x75, 0x54, 0x02, 0xb4, 0x28, 0xe2, 0xe7, 0x86, 0xd0, 0xc8, 0x88, 0x1b, 0x34, 0x26, 0xad, 0xba, + 0xb4, 0x18, 0xa0, 0x8d, 0x68, 0x3f, 0xaa, 0x68, 0x4a, 0x0e, 0x84, 0x55, 0xa9, 0x2a, 0x2b, 0x83, + 0x3d, 0x96, 0xb0, 0x08, 0xad, 0xfa, 0xe5, 0xdf, 0xaa, 0xe6, 0x2d, 0x24, 0x11, 0x0e, 0x04, 0xe3, + 0x64, 0xd4, 0xc4, 0xd2, 0x26, 0x10, 0x15, 0x09, 0xd8, 0x00, 0x62, 0x42, 0x67, 0x03, 0x60, 0xa0, + 0x43, 0xf4, 0x2a, 0xf8, 0x9f, 0x67, 0xbf, 0x0e, 0x2e, 0x95, 0x66, 0x57, 0x0b, 0x44, 0xfb, 0x02, + 0x04, 0x0a, 0x45, 0xdb, 0x15, 0xdf, 0xa3, 0x7c, 0x42, 0x0b, 0x8f, 0xec, 0xee, 0x11, 0x2d, 0xad, + 0xfc, 0xee, 0x8c, 0xfa, 0xa5, 0x19, 0x79, 0x3d, 0xdc, 0x17, 0xbf, 0x6d, 0xfd, 0xbf, 0xe8, 0xc4, + 0x80, 0x4e, 0xf2, 0x5a, 0x00, 0x00 }; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 0cf724cf..c01f95b5 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -271,474 +271,479 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = { // Autogenerated from wled00/data/settings_leds.htm, do not edit!! -const uint16_t PAGE_settings_leds_length = 7446; +const uint16_t PAGE_settings_leds_length = 7521; const uint8_t PAGE_settings_leds[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0xdb, 0x76, 0xe2, 0x48, - 0x92, 0xef, 0x7c, 0x45, 0x3a, 0xbb, 0xc7, 0x25, 0x0d, 0x32, 0x48, 0x5c, 0xaa, 0x5d, 0x80, 0xf0, - 0x1a, 0xd7, 0xa5, 0x3d, 0x63, 0x77, 0xf9, 0x18, 0x77, 0xd7, 0xcc, 0xa9, 0xae, 0x53, 0x25, 0xa4, - 0x04, 0x54, 0x16, 0x12, 0x23, 0x09, 0xdb, 0xac, 0xed, 0xfd, 0xa6, 0xfd, 0x86, 0xfd, 0xb2, 0x8d, - 0xc8, 0x4c, 0xdd, 0x40, 0x02, 0xf7, 0xcc, 0xec, 0xcb, 0xf6, 0x39, 0x5d, 0x06, 0x29, 0x32, 0x32, - 0x32, 0x32, 0xee, 0x19, 0xc9, 0xe0, 0xe0, 0xed, 0xc7, 0xb3, 0x9b, 0xbf, 0x5f, 0xbd, 0x23, 0xf3, - 0x78, 0xe1, 0x0d, 0x07, 0xf8, 0x2f, 0xf1, 0x2c, 0x7f, 0x66, 0x52, 0xe6, 0x53, 0xf8, 0xce, 0x2c, - 0x67, 0x38, 0x58, 0xb0, 0xd8, 0x22, 0xf6, 0xdc, 0x0a, 0x23, 0x16, 0x9b, 0x74, 0x15, 0x4f, 0x8f, - 0x8e, 0xa9, 0x7c, 0x5a, 0xf3, 0xad, 0x05, 0x33, 0xe9, 0x9d, 0xcb, 0xee, 0x97, 0x41, 0x18, 0x53, - 0x62, 0x07, 0x7e, 0xcc, 0x7c, 0x00, 0xbb, 0x77, 0x9d, 0x78, 0x6e, 0x76, 0x75, 0x3d, 0x05, 0xdd, - 0x78, 0xe5, 0xb0, 0x3b, 0xd7, 0x66, 0x47, 0xfc, 0x8b, 0xe6, 0xfa, 0x6e, 0xec, 0x5a, 0xde, 0x51, - 0x64, 0x5b, 0x1e, 0x33, 0x0d, 0x6d, 0x61, 0x3d, 0xb8, 0x8b, 0xd5, 0x22, 0xfd, 0xbe, 0x8a, 0x58, - 0xc8, 0xbf, 0x58, 0x13, 0xf8, 0xee, 0x07, 0x74, 0x6b, 0xe6, 0xe1, 0x20, 0x76, 0x63, 0x8f, 0x0d, - 0x2f, 0xde, 0xbd, 0x25, 0x63, 0x16, 0xc7, 0xae, 0x3f, 0x8b, 0x06, 0x4d, 0xf1, 0x6c, 0x10, 0xd9, - 0xa1, 0xbb, 0x8c, 0x87, 0xb5, 0x3b, 0x2b, 0x24, 0x5e, 0x60, 0xbb, 0x4b, 0x2d, 0x76, 0x17, 0x2c, - 0x58, 0xc5, 0x9a, 0x63, 0x3a, 0x81, 0xbd, 0x5a, 0x00, 0x5d, 0x9a, 0x67, 0x2d, 0x43, 0x76, 0x67, - 0x76, 0xbb, 0x38, 0xfb, 0x48, 0x10, 0xf1, 0x9b, 0xa9, 0xe3, 0x9f, 0x4b, 0xb3, 0xc3, 0xda, 0xf8, - 0xe1, 0x6a, 0x64, 0x76, 0xf4, 0x37, 0xaf, 0xf1, 0xe3, 0x85, 0x69, 0xb4, 0xdb, 0xfc, 0xe1, 0xc5, - 0xe4, 0x1f, 0xab, 0x20, 0x06, 0x48, 0x7b, 0x15, 0xc5, 0xc1, 0x62, 0x1c, 0x5b, 0x61, 0x1c, 0x99, - 0x07, 0x86, 0x16, 0xf1, 0x4f, 0x6f, 0xdd, 0x30, 0x5e, 0x9b, 0x9f, 0xbf, 0x20, 0xe8, 0xd9, 0xc7, - 0x8f, 0x77, 0x2c, 0x0c, 0x5d, 0x87, 0x45, 0x66, 0x57, 0x03, 0x52, 0x00, 0xac, 0x3f, 0x5d, 0xf9, - 0x76, 0xec, 0x06, 0x3e, 0xf9, 0x59, 0x51, 0x1f, 0xef, 0x5d, 0xdf, 0x09, 0xee, 0x1b, 0xc1, 0x92, - 0xf9, 0x0a, 0x9d, 0xc7, 0xf1, 0x32, 0xea, 0x35, 0x9b, 0xb7, 0x7e, 0xd0, 0xb8, 0xf7, 0x98, 0xd3, - 0x98, 0xb1, 0xe6, 0x94, 0x59, 0xf1, 0x2a, 0x64, 0x51, 0x33, 0x92, 0xab, 0x6c, 0xfe, 0x00, 0x6f, - 0x8e, 0x92, 0x6f, 0x54, 0x7d, 0x4e, 0xf1, 0x8d, 0x36, 0xf1, 0xa5, 0x63, 0xa8, 0x46, 0xbf, 0x46, - 0xcc, 0x9b, 0xe6, 0xa1, 0x67, 0xe7, 0x8e, 0xc2, 0xd4, 0xc7, 0x90, 0x01, 0x7a, 0x9f, 0xe0, 0x5c, - 0xf1, 0x3b, 0x8f, 0x21, 0x6b, 0x46, 0x6b, 0xfe, 0x2a, 0x03, 0x0d, 0xa6, 0x53, 0x04, 0xcd, 0xc3, - 0x44, 0xa3, 0xf5, 0x2f, 0xb0, 0x23, 0xf0, 0xf8, 0xb3, 0xfe, 0xa5, 0x71, 0x67, 0x79, 0x2b, 0x66, - 0x1e, 0x19, 0xd9, 0x10, 0x2f, 0xb0, 0x9c, 0xbf, 0x8c, 0x15, 0xa6, 0xf9, 0xe6, 0x81, 0xae, 0x3e, - 0x7a, 0x2c, 0x26, 0xb1, 0xe9, 0x34, 0xec, 0x10, 0x96, 0xc3, 0x24, 0x0e, 0x85, 0x8a, 0x8d, 0xa2, - 0x6a, 0x3f, 0x6e, 0x00, 0xa9, 0xa7, 0x71, 0x1c, 0xba, 0x93, 0x55, 0xcc, 0xe0, 0x45, 0x68, 0x53, - 0x8d, 0xa9, 0xda, 0xe6, 0xf3, 0x78, 0xbd, 0x64, 0xb0, 0x98, 0x98, 0x3d, 0xc4, 0xcd, 0xef, 0xd6, - 0x9d, 0x95, 0x20, 0xd8, 0x02, 0xb4, 0xa2, 0xb5, 0x0f, 0x28, 0x7c, 0x55, 0x73, 0x1a, 0x93, 0xc0, - 0x59, 0x37, 0xac, 0x25, 0xb0, 0xc4, 0x39, 0x9b, 0xbb, 0x9e, 0xa3, 0xc4, 0x08, 0x6f, 0x39, 0xce, - 0xbb, 0x3b, 0xa0, 0xe2, 0xc2, 0x8d, 0x40, 0x4e, 0x59, 0xa8, 0x50, 0xa4, 0x99, 0x6a, 0x8a, 0x6a, - 0x0e, 0x1f, 0x3f, 0xb0, 0xf8, 0x37, 0x45, 0xd5, 0xec, 0x39, 0xb3, 0x6f, 0xc7, 0x2e, 0x7c, 0x42, - 0xec, 0xa3, 0x0b, 0xf8, 0x70, 0x64, 0x98, 0xb0, 0x8e, 0xd5, 0xe2, 0xeb, 0x12, 0x16, 0x7e, 0x78, - 0x28, 0x3e, 0x36, 0xa2, 0xb9, 0x3b, 0x8d, 0x15, 0xf5, 0xb9, 0x1c, 0x31, 0x88, 0x40, 0x10, 0xc2, - 0x7a, 0x00, 0x31, 0x68, 0x45, 0x14, 0x78, 0xac, 0xe1, 0x05, 0x33, 0x85, 0xbe, 0xc3, 0xe7, 0x44, - 0x72, 0x0b, 0xf6, 0x89, 0x4c, 0x5d, 0x8f, 0xf1, 0x75, 0x83, 0x1a, 0x84, 0xc0, 0x9f, 0x0b, 0xf9, - 0x3c, 0x98, 0xa2, 0xa6, 0x4d, 0xdd, 0xd9, 0x2a, 0xb4, 0x38, 0x7b, 0xc5, 0xba, 0xc9, 0xd4, 0x72, - 0x51, 0x4c, 0x7e, 0xf7, 0xcf, 0x7d, 0x3b, 0x58, 0x2c, 0x81, 0xcb, 0x8c, 0x2c, 0xad, 0x19, 0x23, - 0x8e, 0x15, 0x5b, 0x07, 0xb0, 0xdb, 0xb9, 0x4d, 0x8c, 0xe6, 0xc1, 0xfd, 0x4d, 0x60, 0x45, 0xb1, - 0xd8, 0x14, 0x43, 0x7d, 0x44, 0xf5, 0x88, 0x4d, 0x94, 0x03, 0x1a, 0xe3, 0x0b, 0xbe, 0x0f, 0xae, - 0x0f, 0x24, 0xff, 0x7c, 0x73, 0x79, 0x61, 0x32, 0x58, 0x8b, 0xed, 0x59, 0x51, 0x84, 0x1b, 0x6d, - 0xfa, 0x27, 0x72, 0x19, 0x3d, 0x8a, 0x98, 0xa8, 0x66, 0x7b, 0xcc, 0x0a, 0x6f, 0x84, 0x5e, 0x29, - 0x52, 0xbf, 0xf8, 0x3e, 0xc4, 0x6b, 0x58, 0x9f, 0xe5, 0xbb, 0x0b, 0x4e, 0xaa, 0x49, 0xfd, 0xc0, - 0x87, 0x45, 0x49, 0x08, 0x13, 0x18, 0x99, 0x0c, 0x52, 0x12, 0xda, 0x40, 0x6e, 0xf3, 0x53, 0xe5, - 0x3e, 0x37, 0x42, 0xb6, 0xf4, 0x2c, 0x1b, 0x25, 0x82, 0x4f, 0x4a, 0x71, 0x4d, 0x5a, 0xeb, 0x8d, - 0xae, 0xe7, 0x56, 0x36, 0xb9, 0x70, 0x17, 0x6e, 0x1c, 0xe1, 0xba, 0xb4, 0x58, 0x73, 0x35, 0x4b, - 0x7d, 0xe4, 0x2a, 0xcd, 0x84, 0x4a, 0xfb, 0x42, 0xa5, 0x5d, 0xa9, 0xd0, 0xb1, 0xd0, 0x66, 0x2b, - 0x1b, 0xbf, 0x74, 0xfd, 0xe8, 0xe3, 0x5f, 0x15, 0xc1, 0x10, 0x66, 0x6e, 0x88, 0xf9, 0x8d, 0x35, - 0xe3, 0x92, 0x4e, 0x5d, 0x7f, 0xb9, 0x42, 0x1e, 0x4d, 0x83, 0x50, 0x71, 0x4d, 0xbd, 0xef, 0x0e, - 0x60, 0x1b, 0x99, 0x3f, 0x8b, 0xe7, 0x7d, 0xb7, 0x5e, 0x17, 0xa3, 0x7d, 0x93, 0x7d, 0x76, 0xbf, - 0x34, 0xd0, 0x58, 0x35, 0xa2, 0xd5, 0x24, 0x02, 0x79, 0xf4, 0x67, 0x8a, 0xae, 0xb5, 0xd4, 0xbe, - 0x3b, 0x85, 0xfd, 0xd4, 0xa9, 0x69, 0xfa, 0x4f, 0x4f, 0xf4, 0xc2, 0x48, 0x3e, 0xb4, 0x92, 0x0f, - 0x6d, 0xfc, 0x90, 0x6c, 0x4a, 0x19, 0x16, 0x81, 0x63, 0x89, 0x76, 0xf9, 0x1c, 0x94, 0xa7, 0x4c, - 0x1b, 0xe9, 0xc5, 0x0d, 0xad, 0xc7, 0x99, 0x4a, 0x6a, 0x86, 0xae, 0x0e, 0xcd, 0x63, 0x5d, 0x45, - 0x63, 0xec, 0xfa, 0x2b, 0xf6, 0x0c, 0x18, 0x5e, 0x40, 0x06, 0x7e, 0xe8, 0xc8, 0x0f, 0xd7, 0x17, - 0xf2, 0xc3, 0xe8, 0x46, 0x7e, 0x38, 0xbf, 0xe6, 0xa4, 0x1e, 0x1e, 0x52, 0x7a, 0x20, 0x28, 0xe5, - 0x93, 0xc1, 0xf7, 0x23, 0xa3, 0xf0, 0x44, 0xac, 0xc6, 0x02, 0x63, 0xc8, 0x99, 0x76, 0x0b, 0x4c, - 0xbb, 0x1d, 0x38, 0x8d, 0x30, 0xba, 0x73, 0x12, 0xce, 0xdd, 0x02, 0xe7, 0xac, 0xc6, 0x72, 0x15, - 0xcd, 0x15, 0xf1, 0xe2, 0xf3, 0xed, 0x17, 0xb5, 0x00, 0xcd, 0xf5, 0xab, 0x0c, 0x9a, 0xeb, 0x20, - 0x42, 0xc3, 0x9a, 0xac, 0x46, 0x14, 0xc0, 0xfa, 0x7d, 0x73, 0xe8, 0x9b, 0x66, 0xca, 0xa2, 0x8c, - 0x12, 0x64, 0x84, 0xaa, 0x4a, 0x5b, 0x27, 0x94, 0xeb, 0xdb, 0x38, 0x08, 0xc3, 0xb5, 0xc6, 0x77, - 0x9f, 0xfc, 0xf8, 0xf8, 0x97, 0xf1, 0xc7, 0x5f, 0x1a, 0x82, 0xd3, 0xee, 0x74, 0xad, 0x58, 0xea, - 0x33, 0xb1, 0x2d, 0xff, 0x55, 0x4c, 0x26, 0x8c, 0x80, 0x3b, 0x72, 0x1a, 0xdf, 0x54, 0x2d, 0xc3, - 0x67, 0x52, 0x2a, 0xbe, 0x4d, 0xc1, 0x9d, 0x44, 0x60, 0x16, 0xc0, 0xae, 0xe3, 0x06, 0x03, 0x6b, - 0x0e, 0x4c, 0x1f, 0x38, 0x01, 0xcc, 0xe2, 0x1f, 0x60, 0x51, 0xc1, 0xd7, 0xd9, 0xd2, 0x0d, 0xfe, - 0xdd, 0x04, 0xa6, 0x88, 0x81, 0x50, 0x2b, 0x64, 0x84, 0x4b, 0x27, 0xd8, 0x12, 0x6f, 0xbd, 0x9f, - 0x52, 0x64, 0xef, 0x77, 0xd3, 0xad, 0x1b, 0xfd, 0xef, 0x99, 0x0c, 0x7f, 0x4f, 0x64, 0x38, 0x80, - 0x1d, 0xfc, 0xbe, 0x47, 0x86, 0x83, 0x44, 0x78, 0x82, 0x44, 0x78, 0x82, 0x44, 0x78, 0x82, 0x44, - 0x78, 0x82, 0x44, 0x78, 0x82, 0x44, 0x78, 0x82, 0x44, 0x78, 0x02, 0xf5, 0x91, 0xa3, 0x82, 0x8f, - 0x66, 0x50, 0x98, 0xc4, 0x50, 0x05, 0x11, 0x5e, 0x29, 0x11, 0x2f, 0x55, 0x01, 0x6f, 0x8f, 0x0a, - 0x08, 0xc1, 0xfd, 0x9e, 0x0a, 0x6e, 0x8e, 0x5d, 0xb9, 0xe7, 0x1b, 0xdb, 0x71, 0xe5, 0xfa, 0xdc, - 0x0a, 0x7b, 0xae, 0x8d, 0x52, 0x11, 0xdf, 0x33, 0xe6, 0xc3, 0xbe, 0xa4, 0xaa, 0xfa, 0xdc, 0xc4, - 0x2f, 0x92, 0xe8, 0xe7, 0x03, 0xbe, 0x0b, 0xdf, 0x0b, 0xbb, 0xf0, 0x3d, 0xbf, 0x0b, 0xcf, 0xf0, - 0x9f, 0x98, 0xe0, 0x40, 0xcf, 0x6c, 0x51, 0x1c, 0xae, 0xc7, 0xab, 0x09, 0x98, 0x33, 0x74, 0xb8, - 0x40, 0xa9, 0xd3, 0x18, 0x4f, 0x1b, 0x68, 0xcd, 0x73, 0x78, 0x1a, 0x18, 0xb8, 0xc0, 0x92, 0xdf, - 0xb2, 0xa9, 0xb5, 0xf2, 0x62, 0xc4, 0x96, 0x98, 0xb0, 0x84, 0x64, 0x60, 0x5a, 0x1c, 0x2c, 0xaf, - 0xc2, 0x00, 0xbc, 0x81, 0x25, 0x4c, 0xac, 0x14, 0x51, 0x1e, 0xbc, 0x0c, 0x0d, 0x30, 0xa0, 0xd2, - 0x60, 0xd1, 0x9b, 0x20, 0x20, 0x0b, 0xcb, 0x5f, 0x13, 0x88, 0xa5, 0x22, 0x02, 0xb2, 0x41, 0x16, - 0x8c, 0xc4, 0x01, 0x99, 0x5b, 0xbe, 0xe3, 0xb1, 0x03, 0xda, 0x47, 0xf3, 0x39, 0x30, 0x58, 0xe7, - 0xf0, 0x50, 0xf1, 0xeb, 0x26, 0xfd, 0xdd, 0xff, 0x3d, 0x3c, 0x03, 0x37, 0x06, 0x51, 0x4d, 0x08, - 0xaa, 0x81, 0xfe, 0xc9, 0xf2, 0xc9, 0xbb, 0xf1, 0x55, 0xbb, 0xd5, 0xa0, 0x89, 0xeb, 0xf2, 0xd5, - 0x67, 0x4e, 0x3a, 0xf7, 0xa0, 0xbf, 0x59, 0x9e, 0xeb, 0xb8, 0xf1, 0x5a, 0x51, 0x51, 0x21, 0xe0, - 0x69, 0x24, 0x96, 0x98, 0xb3, 0xe1, 0xcc, 0xe7, 0xee, 0x55, 0x9a, 0x60, 0xee, 0x93, 0x30, 0xf6, - 0xa3, 0xaa, 0xc0, 0xc0, 0x9c, 0x3e, 0x1f, 0x78, 0x71, 0x2a, 0xf9, 0xc0, 0x4e, 0x44, 0xfc, 0xd6, - 0xd3, 0xb5, 0x04, 0x18, 0x60, 0x85, 0xef, 0x71, 0xdc, 0x08, 0x9c, 0xc6, 0x1a, 0x60, 0xc0, 0x66, - 0x7b, 0x2e, 0x78, 0x9f, 0x9e, 0x74, 0x42, 0x1c, 0x74, 0x19, 0xad, 0x5a, 0x2f, 0x80, 0x2d, 0xcc, - 0x37, 0xd4, 0x0f, 0x0f, 0x93, 0x10, 0x20, 0x4f, 0xf4, 0xc5, 0x69, 0xce, 0x6d, 0x70, 0x78, 0x08, - 0xb3, 0xc4, 0x90, 0x4d, 0x82, 0xc5, 0xe4, 0x17, 0xa7, 0x30, 0xe3, 0xd6, 0xec, 0x5d, 0xdd, 0x2c, - 0xa1, 0xe0, 0xd7, 0xf3, 0xfc, 0x64, 0xc9, 0xf4, 0x8f, 0xd1, 0xbd, 0x1b, 0xdb, 0x73, 0xa5, 0x84, - 0x47, 0x10, 0x6a, 0x69, 0x9b, 0x64, 0x00, 0x6e, 0x2d, 0xa7, 0x30, 0x39, 0x92, 0x40, 0xd3, 0x6c, - 0x2b, 0x62, 0x44, 0xef, 0x95, 0xa2, 0x32, 0x34, 0xb9, 0x27, 0xfd, 0x09, 0x04, 0x6d, 0xb7, 0x7d, - 0x0e, 0xdb, 0xd6, 0x7b, 0x5b, 0x13, 0xb4, 0xf5, 0x02, 0x44, 0xb7, 0x04, 0xa2, 0x9b, 0x87, 0xe8, - 0x96, 0x40, 0x74, 0x0b, 0x10, 0xad, 0x32, 0x90, 0x56, 0x0a, 0xe3, 0x08, 0xb9, 0xef, 0xed, 0x60, - 0x68, 0xc2, 0xca, 0x67, 0x0e, 0xb3, 0x30, 0x00, 0x20, 0x0b, 0x6c, 0x50, 0x9e, 0xb5, 0x52, 0xdb, - 0x31, 0x86, 0x08, 0x19, 0x2d, 0xc7, 0x76, 0x08, 0x27, 0x24, 0x16, 0xc2, 0x98, 0x44, 0x3f, 0xd5, - 0x8d, 0xed, 0x01, 0x6c, 0x97, 0x6c, 0x81, 0x31, 0x48, 0x12, 0xed, 0xee, 0x31, 0x53, 0x67, 0xb4, - 0xee, 0x67, 0x66, 0x4a, 0xed, 0x4b, 0xcd, 0x8d, 0xeb, 0x7b, 0x06, 0x8e, 0x2f, 0x8a, 0x03, 0x35, - 0x36, 0x68, 0xb7, 0x4e, 0x32, 0x1d, 0x6d, 0x9b, 0x66, 0xf9, 0x84, 0x7a, 0x61, 0xdc, 0x09, 0x1b, - 0xb6, 0xde, 0x9c, 0xb4, 0xf4, 0x3f, 0xc7, 0x3d, 0xa3, 0x0b, 0xff, 0x20, 0x82, 0xa1, 0x09, 0x18, - 0xc4, 0x8b, 0x63, 0x78, 0xf4, 0x1a, 0xfe, 0xe7, 0x5f, 0x3a, 0xf0, 0xa1, 0xcd, 0xbf, 0xb4, 0x0d, - 0x30, 0x96, 0x83, 0xce, 0xf1, 0x49, 0xb7, 0xd7, 0xe9, 0x80, 0xcc, 0x3e, 0x3d, 0x75, 0xba, 0x28, - 0xba, 0x12, 0x22, 0x63, 0x07, 0x30, 0x87, 0xa5, 0x41, 0x26, 0x86, 0x9b, 0x1a, 0x64, 0x4c, 0x7d, - 0x21, 0x68, 0x8b, 0xe5, 0xbd, 0x15, 0xfa, 0x60, 0x37, 0xb6, 0xb6, 0x8d, 0x6f, 0xfa, 0x65, 0xa2, - 0x73, 0x3f, 0xb5, 0x74, 0x7d, 0x4b, 0x29, 0x40, 0x0c, 0x4c, 0xb3, 0x20, 0xc7, 0xd2, 0x12, 0x98, - 0x46, 0xab, 0xb7, 0xa5, 0xb3, 0x8a, 0x7c, 0x57, 0x14, 0xfc, 0xbe, 0x08, 0x4b, 0xaa, 0x02, 0x3d, - 0x90, 0x39, 0x66, 0x17, 0x23, 0x3d, 0x2b, 0x1f, 0xe9, 0x71, 0xd7, 0x85, 0xfe, 0xcc, 0xaa, 0x88, - 0xf5, 0x12, 0x3f, 0x6a, 0x95, 0x46, 0x71, 0x9a, 0x97, 0xed, 0xb0, 0x55, 0x08, 0x00, 0x04, 0x7f, - 0x96, 0xba, 0x43, 0xeb, 0x41, 0x5e, 0x60, 0x3d, 0x74, 0x60, 0x87, 0x87, 0xde, 0xe0, 0xcd, 0xeb, - 0x13, 0x7a, 0x7e, 0x45, 0x40, 0x3c, 0x21, 0x23, 0x8c, 0x7a, 0xb4, 0xe7, 0x0d, 0x3b, 0x6f, 0x4e, - 0xe8, 0x5b, 0xf0, 0x0f, 0xe4, 0xc3, 0xd5, 0xf9, 0x47, 0xf1, 0xc4, 0x38, 0xa1, 0xf8, 0x05, 0xdf, - 0x53, 0xf1, 0x54, 0x1a, 0x3e, 0x63, 0x1b, 0x71, 0xe7, 0x0d, 0xe2, 0x7d, 0xdd, 0x39, 0xa1, 0x67, - 0xde, 0x6d, 0x82, 0x83, 0x52, 0xce, 0xa1, 0xa8, 0x42, 0x90, 0x0c, 0xc4, 0x02, 0x82, 0xc4, 0xf9, - 0x03, 0xf2, 0x2a, 0x45, 0xdf, 0xd3, 0x02, 0x55, 0x9b, 0x9a, 0x10, 0x5e, 0x0c, 0xba, 0xfd, 0x29, - 0x46, 0x13, 0x4a, 0x15, 0x06, 0x5a, 0x9f, 0x0a, 0x14, 0x2a, 0x6e, 0x51, 0xb6, 0xba, 0xc3, 0xc3, - 0xe9, 0xa0, 0xf3, 0xf4, 0x24, 0xc8, 0x82, 0x44, 0x6b, 0xca, 0x3f, 0x1b, 0xf8, 0xb2, 0x0b, 0x20, - 0xd3, 0x7a, 0x47, 0x1f, 0x78, 0x27, 0x4a, 0x54, 0xa1, 0xed, 0x5a, 0x04, 0xf9, 0xc2, 0x3f, 0x56, - 0x6e, 0xc8, 0x4d, 0xa1, 0xda, 0xdb, 0x06, 0x14, 0x32, 0x94, 0x07, 0x83, 0xb4, 0x3d, 0x75, 0xad, - 0xaa, 0xfa, 0x0c, 0xc1, 0x80, 0xb0, 0xac, 0xe1, 0x94, 0xf3, 0x2a, 0x31, 0x87, 0x25, 0xcf, 0x9e, - 0x9e, 0xda, 0x40, 0xa2, 0xa7, 0x79, 0x5c, 0x2b, 0x3c, 0xd0, 0x0a, 0x18, 0x5b, 0xa9, 0xeb, 0x41, - 0x2e, 0x51, 0x86, 0x20, 0x47, 0xcb, 0x23, 0x0c, 0x7c, 0x1b, 0x82, 0x8a, 0x5b, 0x93, 0xe3, 0x3b, - 0xc1, 0x04, 0xf4, 0xc0, 0xe8, 0xf1, 0x3c, 0xf4, 0x19, 0x52, 0xb5, 0x36, 0x38, 0x07, 0x4f, 0x4e, - 0xc6, 0xf9, 0xc1, 0x99, 0xd5, 0x01, 0x66, 0x75, 0xda, 0x07, 0xf8, 0xe8, 0xf8, 0x18, 0xc9, 0xe0, - 0x08, 0xed, 0x80, 0x23, 0x2c, 0xae, 0x3a, 0xc7, 0x60, 0x1c, 0x6f, 0x4a, 0x04, 0xc7, 0x27, 0x82, - 0x1d, 0xbd, 0x94, 0x7d, 0x1c, 0x85, 0xe3, 0xce, 0x00, 0x47, 0x9d, 0xde, 0x6f, 0x69, 0x67, 0x9e, - 0x90, 0x2d, 0xbd, 0x6c, 0xeb, 0x40, 0x0b, 0x58, 0x1f, 0x83, 0xff, 0x29, 0xe7, 0xc3, 0xa7, 0x8f, - 0x45, 0x3e, 0xe8, 0x6a, 0x71, 0x4a, 0x9b, 0x96, 0x90, 0xfe, 0x32, 0x6a, 0x43, 0xba, 0x63, 0xd5, - 0xbb, 0x87, 0x46, 0xf4, 0xdf, 0xc3, 0xb0, 0x69, 0x19, 0x1e, 0xe3, 0x35, 0x0e, 0x6d, 0xb7, 0x38, - 0x9e, 0xae, 0x9e, 0x28, 0x5b, 0x59, 0x5c, 0x92, 0xe0, 0xb1, 0xb6, 0xf0, 0x40, 0x1e, 0xd1, 0x41, - 0xf6, 0x96, 0x8f, 0x03, 0xfb, 0xb6, 0x6d, 0x2f, 0x32, 0x92, 0xcf, 0xfd, 0x3b, 0x08, 0xc8, 0x98, - 0x43, 0x20, 0xe5, 0xc6, 0x04, 0xb6, 0x47, 0xaf, 0x21, 0x7a, 0x04, 0xfb, 0xe3, 0x10, 0x25, 0x0c, - 0x62, 0x0b, 0x5f, 0x19, 0xc7, 0xfa, 0xff, 0xfc, 0xb7, 0x9a, 0xc6, 0x47, 0xce, 0x6e, 0x7c, 0x0e, - 0x7b, 0x40, 0x23, 0xc1, 0x0b, 0x5f, 0x3d, 0xfa, 0x8c, 0xa6, 0x22, 0x04, 0x45, 0xff, 0xc7, 0x8a, - 0x81, 0x73, 0xe4, 0xb6, 0x33, 0x08, 0x4f, 0x3d, 0x4f, 0xa1, 0x8d, 0x7b, 0xd8, 0x51, 0x6d, 0x69, - 0x86, 0x89, 0xf5, 0xcc, 0x0c, 0xea, 0x92, 0x5b, 0xd2, 0x10, 0xcd, 0xdf, 0xc6, 0x5a, 0x37, 0x17, - 0xc9, 0x4d, 0xd1, 0x6a, 0x5f, 0x56, 0xae, 0x2d, 0x4c, 0x5d, 0xbb, 0xc3, 0xa2, 0x1c, 0xa0, 0xcf, - 0xa6, 0x59, 0x6d, 0x65, 0xe8, 0x33, 0x73, 0x55, 0x95, 0xa1, 0x07, 0xa5, 0xaf, 0x92, 0xb4, 0xe7, - 0x0c, 0x72, 0x86, 0x99, 0xcc, 0x5b, 0x30, 0x05, 0x9a, 0x25, 0x29, 0xd0, 0x4c, 0xdd, 0xa3, 0xf4, - 0xe0, 0x5a, 0x4d, 0x5e, 0x7b, 0xe8, 0x97, 0x0c, 0x4e, 0xf2, 0xa7, 0x59, 0x92, 0x3f, 0x89, 0x39, - 0x14, 0xcf, 0xdc, 0x9f, 0xe6, 0xe4, 0x74, 0x49, 0x15, 0x49, 0xce, 0x23, 0x5f, 0x01, 0x4e, 0x08, - 0x7e, 0x52, 0x13, 0x5f, 0x5c, 0x1f, 0xd8, 0xb2, 0xca, 0x38, 0x6d, 0x07, 0x5e, 0x10, 0x9a, 0xf4, - 0x87, 0xe9, 0x74, 0x4a, 0xfb, 0x69, 0x56, 0x94, 0x0e, 0x74, 0xf0, 0x5f, 0x9e, 0x59, 0x66, 0xe3, - 0x8f, 0x8c, 0x5c, 0xe1, 0x60, 0x17, 0xed, 0x49, 0xee, 0x37, 0x4b, 0x72, 0xbf, 0x59, 0x92, 0xfb, - 0xcd, 0x92, 0xdc, 0x6f, 0x26, 0x0b, 0x07, 0xab, 0xad, 0xc2, 0xc1, 0x6a, 0xa3, 0x70, 0x30, 0xdd, - 0x57, 0x38, 0x98, 0xfe, 0xa1, 0xc2, 0xc1, 0x74, 0xab, 0x70, 0x20, 0xf2, 0x60, 0x1d, 0xb2, 0xe0, - 0x55, 0x3e, 0x0b, 0x86, 0xa5, 0xba, 0x07, 0xe6, 0x77, 0x41, 0xc4, 0x1a, 0xc8, 0xda, 0x97, 0x0d, - 0xaf, 0x13, 0x8e, 0xac, 0x13, 0x8e, 0xac, 0x13, 0x8e, 0xac, 0x13, 0x8e, 0xac, 0x13, 0x8e, 0xac, - 0x13, 0x8e, 0xac, 0x13, 0x8e, 0xac, 0x73, 0xd9, 0xf0, 0xba, 0x34, 0x1b, 0xbe, 0x28, 0x25, 0xe2, - 0xa5, 0xd9, 0xf0, 0xc5, 0xae, 0x6c, 0x58, 0x6c, 0xc5, 0xf7, 0xad, 0xad, 0xc8, 0x9e, 0x48, 0xbe, - 0xa5, 0xf3, 0x64, 0xef, 0x78, 0xd1, 0xe2, 0xf9, 0x79, 0x2a, 0x6a, 0x1b, 0xcc, 0x1c, 0xb2, 0x5c, - 0x6d, 0x63, 0x55, 0xac, 0x6d, 0x9c, 0x6c, 0x4b, 0x20, 0xf8, 0x5f, 0xda, 0xdb, 0x7a, 0xbc, 0x51, - 0x31, 0xd9, 0x83, 0x95, 0x06, 0xa1, 0xe5, 0xcf, 0xd0, 0x58, 0x70, 0x79, 0x7e, 0x16, 0x15, 0x98, - 0x59, 0x52, 0x81, 0xc1, 0x0f, 0xc0, 0xf5, 0x03, 0x14, 0x3f, 0x65, 0x8f, 0x88, 0x83, 0xf3, 0xf7, - 0x22, 0xc6, 0xf9, 0x7d, 0x5e, 0x35, 0x61, 0x3f, 0x5f, 0xf3, 0x87, 0x94, 0x30, 0xab, 0xf8, 0x7f, - 0x0e, 0xbe, 0xc0, 0x14, 0xdc, 0x80, 0x7a, 0x11, 0xb7, 0x9f, 0xc2, 0xc7, 0x2d, 0xa4, 0x8f, 0x93, - 0x0f, 0xc1, 0xcc, 0x61, 0xa2, 0x05, 0x81, 0x47, 0x1e, 0x93, 0x76, 0x0e, 0x2e, 0x53, 0xb1, 0xb2, - 0x59, 0xb7, 0xf0, 0xa8, 0x6a, 0xfd, 0x7c, 0xb8, 0x00, 0xa8, 0x85, 0x69, 0xd5, 0xcf, 0x55, 0xed, - 0x7c, 0x68, 0xc3, 0x17, 0xdb, 0x84, 0x8f, 0x7f, 0xdc, 0x54, 0x0c, 0xd0, 0xbb, 0x29, 0x77, 0x75, - 0x18, 0x0d, 0xdb, 0x27, 0xe6, 0x42, 0xdf, 0x8b, 0x65, 0xf5, 0x33, 0x79, 0x6c, 0xb3, 0x90, 0xce, - 0x60, 0xeb, 0xb9, 0x69, 0xde, 0x9d, 0x50, 0xe0, 0xb7, 0x42, 0xeb, 0x77, 0x75, 0x4a, 0x96, 0xf3, - 0x75, 0xe4, 0xda, 0x96, 0x97, 0x78, 0x8f, 0x85, 0x5e, 0xc8, 0xb5, 0x62, 0x4d, 0x9c, 0x96, 0xc4, - 0x4d, 0x4c, 0x30, 0xfe, 0x6c, 0xe8, 0x32, 0x5f, 0x77, 0x26, 0x56, 0xe6, 0xb2, 0x27, 0x96, 0x7d, - 0x3b, 0x0b, 0x83, 0x95, 0xef, 0x98, 0xdf, 0xd0, 0xf4, 0x5b, 0xe1, 0xd1, 0x2c, 0xb4, 0x1c, 0x17, - 0xcf, 0x08, 0xde, 0xe8, 0x0e, 0x9b, 0x69, 0xe4, 0xc7, 0x47, 0x51, 0xb8, 0x78, 0xad, 0x9f, 0x88, - 0x0f, 0x6f, 0x20, 0x35, 0xe0, 0x02, 0x94, 0x93, 0x00, 0xdb, 0xb6, 0xe9, 0x33, 0xd1, 0x13, 0xe0, - 0xe7, 0x3f, 0x69, 0xe4, 0x87, 0x4e, 0xa7, 0x93, 0x7d, 0x27, 0x30, 0xff, 0x9f, 0xd4, 0x6f, 0x72, - 0x47, 0x98, 0x53, 0x95, 0x87, 0xd8, 0xc3, 0x4b, 0x2b, 0x9e, 0xa3, 0x5c, 0x28, 0xdc, 0x70, 0x6b, - 0xc7, 0xba, 0xae, 0x3e, 0x3d, 0x89, 0x99, 0x8f, 0xf5, 0x72, 0x3f, 0x5c, 0x82, 0x4f, 0x48, 0x74, - 0x82, 0xcd, 0x7a, 0x28, 0xc1, 0x66, 0xe8, 0x9b, 0x0b, 0x11, 0xd8, 0xee, 0x21, 0xd5, 0x8d, 0x02, - 0xbf, 0xc0, 0xcc, 0x6c, 0xfe, 0x63, 0xfd, 0x4f, 0x78, 0x28, 0x00, 0xe8, 0x1a, 0x58, 0xb6, 0x21, - 0x0b, 0xb6, 0x08, 0xc2, 0x35, 0xad, 0x67, 0xe5, 0x9d, 0x93, 0x6f, 0x44, 0x19, 0x4c, 0x86, 0xef, - 0xae, 0xaf, 0x3f, 0x5e, 0xf7, 0xc8, 0xaf, 0xbc, 0x4c, 0x13, 0x80, 0xdf, 0x07, 0x66, 0xe0, 0x4e, - 0x3c, 0x8f, 0x0e, 0x06, 0xcd, 0xc9, 0x50, 0xfd, 0x06, 0xc1, 0xbe, 0xda, 0x03, 0x7c, 0xba, 0x28, - 0xff, 0x2c, 0x01, 0x42, 0x06, 0x0a, 0xdc, 0xf1, 0xce, 0x4d, 0x4e, 0xbb, 0xcd, 0x5c, 0x4f, 0x51, - 0x00, 0x6d, 0xfd, 0xee, 0xcf, 0x22, 0xa5, 0x52, 0x9b, 0x5d, 0x58, 0x45, 0xb3, 0xd5, 0x9f, 0x9b, - 0xf3, 0x61, 0xf7, 0x24, 0x83, 0x9a, 0xab, 0xbd, 0x79, 0xdf, 0x32, 0x65, 0x0e, 0x31, 0xe2, 0x51, - 0xe3, 0x66, 0x32, 0xaf, 0x4d, 0xcc, 0x7c, 0x1e, 0x97, 0xd5, 0x4c, 0xe6, 0x03, 0xa3, 0xa1, 0xb7, - 0x0e, 0x0f, 0x0f, 0x46, 0xf0, 0xff, 0xe4, 0x04, 0xd0, 0xbc, 0x1b, 0x5f, 0x91, 0xee, 0x6f, 0x58, - 0x04, 0x25, 0xf7, 0x6e, 0x3c, 0x27, 0xc6, 0x29, 0xf9, 0x75, 0x3c, 0x22, 0xd1, 0x6a, 0xb9, 0xf4, - 0xd6, 0xb4, 0xa7, 0x58, 0x75, 0x73, 0x74, 0x42, 0x8d, 0xd6, 0x6f, 0x84, 0xf6, 0x26, 0x27, 0xf4, - 0xd3, 0xb8, 0x75, 0x6c, 0x74, 0x89, 0xf8, 0x4e, 0x61, 0x20, 0xd5, 0x00, 0x62, 0x8e, 0xff, 0xd0, - 0x53, 0x39, 0x0a, 0xab, 0x78, 0x3e, 0x44, 0x29, 0x10, 0xf8, 0xc4, 0x01, 0x5f, 0x36, 0x15, 0x29, - 0xe1, 0xb8, 0x7a, 0xb1, 0x86, 0x58, 0xad, 0xf6, 0x60, 0x52, 0x85, 0x97, 0xc8, 0x82, 0x28, 0x26, - 0x6c, 0x3a, 0x05, 0x34, 0x91, 0x46, 0xfe, 0x8b, 0xf6, 0x1f, 0xea, 0xe6, 0xd8, 0x1c, 0x17, 0x38, - 0x31, 0x56, 0x7b, 0x63, 0xed, 0x81, 0x4f, 0xec, 0x46, 0x84, 0xf9, 0xc1, 0x6a, 0x36, 0x57, 0x07, - 0x93, 0x70, 0x98, 0x15, 0xa2, 0x0a, 0xdb, 0x6b, 0x15, 0xea, 0x53, 0xb9, 0x6d, 0x47, 0x7d, 0x7b, - 0x10, 0x2f, 0xbf, 0x0b, 0x99, 0x28, 0x8a, 0xeb, 0xb1, 0xe4, 0xe4, 0xf9, 0x8d, 0xcc, 0x88, 0x69, - 0x22, 0x99, 0xb9, 0x03, 0x39, 0x2b, 0x8a, 0xdf, 0xf9, 0x8e, 0x2c, 0x2b, 0xb2, 0x81, 0x91, 0x94, - 0x0a, 0xf5, 0xfe, 0xdd, 0x3e, 0xfb, 0x31, 0x06, 0xc1, 0x62, 0x60, 0x20, 0x73, 0x36, 0xa4, 0xbe, - 0xbf, 0xba, 0xb1, 0x39, 0xa4, 0x2f, 0x4a, 0x01, 0xfb, 0x6d, 0xd5, 0xd6, 0x40, 0x49, 0xa9, 0xcf, - 0x13, 0x2d, 0x5f, 0x24, 0x5a, 0x90, 0xef, 0xab, 0x9a, 0x1b, 0xfd, 0x62, 0xfd, 0xa2, 0xdc, 0xa9, - 0x27, 0x7a, 0xef, 0x2e, 0x5b, 0x2a, 0xa4, 0xc7, 0xb8, 0xa9, 0xe9, 0xe1, 0xa3, 0x38, 0x52, 0xd9, - 0x98, 0xee, 0x2c, 0x39, 0x62, 0x82, 0x10, 0x72, 0x7c, 0x03, 0x01, 0xa4, 0x6b, 0xc6, 0x69, 0xb0, - 0x38, 0x55, 0x0e, 0x14, 0xc8, 0x72, 0xc0, 0xf9, 0xb9, 0x43, 0x0c, 0xdd, 0x46, 0x75, 0x3c, 0x49, - 0x7a, 0x7a, 0x3a, 0x12, 0x0f, 0x41, 0xa2, 0x5d, 0x35, 0x39, 0xdc, 0x10, 0x56, 0x0f, 0x16, 0xcc, - 0xbd, 0x31, 0x02, 0x24, 0xe9, 0xff, 0xb7, 0x81, 0xe3, 0xde, 0x11, 0x7e, 0x96, 0x65, 0xf2, 0x49, - 0x86, 0xbf, 0xfb, 0x83, 0x79, 0x98, 0x3c, 0x89, 0x16, 0x1e, 0x3e, 0xf9, 0xf1, 0xd1, 0xad, 0x1b, - 0xcf, 0x3d, 0x78, 0x25, 0xea, 0x0e, 0x44, 0x9c, 0x74, 0x5f, 0xdc, 0xc0, 0x8b, 0x67, 0x4a, 0x20, - 0x37, 0x9c, 0xa3, 0x59, 0x30, 0xe9, 0xaf, 0xe7, 0x4a, 0x1c, 0x02, 0x3b, 0xe8, 0x10, 0xde, 0x08, - 0xb2, 0x70, 0xa3, 0x5f, 0x0d, 0x82, 0x25, 0x5f, 0xb6, 0xcc, 0x62, 0x5b, 0x2d, 0x4a, 0x04, 0x26, - 0xe6, 0x0c, 0xb9, 0x3a, 0x3c, 0x0c, 0x9a, 0x02, 0x64, 0xb8, 0x01, 0xda, 0xd6, 0xe9, 0x70, 0xfc, - 0xd7, 0xd7, 0xc7, 0x46, 0x8b, 0x5c, 0x7f, 0x18, 0x7d, 0xaa, 0x04, 0x33, 0xe8, 0xf0, 0xe6, 0xd2, - 0x38, 0x36, 0x3a, 0x55, 0x10, 0xad, 0x0e, 0x85, 0xb4, 0x54, 0xbf, 0xfd, 0xf9, 0x3f, 0x2b, 0x21, - 0xba, 0x02, 0x47, 0xeb, 0x4d, 0x15, 0x44, 0x17, 0x88, 0x41, 0x72, 0x75, 0xa3, 0x12, 0x02, 0xe8, - 0x38, 0xbd, 0x3a, 0x35, 0xf4, 0x56, 0x25, 0x44, 0x8b, 0x0e, 0x2f, 0xae, 0xde, 0x1e, 0x1f, 0xeb, - 0xaf, 0x2b, 0x41, 0x3a, 0x1c, 0xe4, 0xf5, 0xb1, 0xde, 0xae, 0x04, 0x69, 0xd3, 0xe1, 0xd5, 0x9b, - 0x63, 0xa3, 0x12, 0xa0, 0x03, 0xa4, 0x7e, 0xf4, 0x9b, 0x1f, 0xa7, 0xd3, 0x4a, 0x08, 0x20, 0xf5, - 0xea, 0xd3, 0x25, 0xf9, 0x34, 0x77, 0x63, 0x56, 0x09, 0xd4, 0x12, 0x40, 0x67, 0x67, 0x37, 0x95, - 0x20, 0x6d, 0x01, 0x02, 0xdb, 0x53, 0x09, 0xd2, 0x49, 0x41, 0x2a, 0x77, 0xb0, 0xd3, 0x4d, 0x61, - 0xea, 0xf9, 0xd9, 0x7e, 0x7f, 0x68, 0xdb, 0x07, 0x47, 0x47, 0x1b, 0xc0, 0xaf, 0x33, 0xe0, 0xb7, - 0x39, 0xe8, 0xa3, 0x23, 0x00, 0x67, 0xaf, 0x9e, 0x41, 0x52, 0x8b, 0x03, 0x8e, 0x81, 0x1d, 0x6f, - 0xdf, 0x5e, 0xe1, 0x00, 0xa2, 0xf8, 0x2c, 0xbe, 0x0f, 0xc2, 0x5b, 0x35, 0x9b, 0xc3, 0x2f, 0x9d, - 0xe5, 0x18, 0x38, 0xf4, 0xce, 0x68, 0xb4, 0x8d, 0xf2, 0x61, 0x62, 0xb2, 0xaa, 0xb1, 0xc0, 0xb8, - 0xd3, 0x30, 0xfe, 0x85, 0xc5, 0xbb, 0x07, 0x6f, 0xd2, 0x79, 0x9c, 0xd2, 0xf9, 0xa9, 0x94, 0xd0, - 0x41, 0x53, 0x28, 0xce, 0x10, 0x8d, 0x34, 0x7c, 0x45, 0xf5, 0x75, 0x1d, 0x93, 0xda, 0x81, 0xd0, - 0x45, 0x6e, 0x75, 0x4d, 0x2a, 0xcd, 0x6e, 0x4f, 0x06, 0x01, 0xc3, 0x33, 0xf4, 0xf2, 0xe4, 0x63, - 0xe8, 0xb0, 0x70, 0x4b, 0x8d, 0xcf, 0x3e, 0xf2, 0xa1, 0xc3, 0x2d, 0x62, 0x80, 0x67, 0x1f, 0xae, - 0x47, 0xf9, 0xc9, 0x8b, 0xef, 0x81, 0x3d, 0xf9, 0x4d, 0xdf, 0x7a, 0x0f, 0x2c, 0x18, 0x5d, 0x7f, - 0xa8, 0x7e, 0x0f, 0x82, 0x73, 0x3d, 0xda, 0xf1, 0x1e, 0xa4, 0x66, 0xf4, 0xe1, 0xba, 0xfa, 0x3d, - 0x48, 0xcc, 0x87, 0xd1, 0x75, 0x29, 0x73, 0x9a, 0xc0, 0x97, 0x3c, 0x7b, 0x1c, 0x77, 0x86, 0x8b, - 0xbc, 0xdf, 0x62, 0x10, 0x77, 0x41, 0xc3, 0xf1, 0xbd, 0xb5, 0xec, 0x91, 0x22, 0x5b, 0x3e, 0x49, - 0xb6, 0x6c, 0x33, 0xe5, 0x17, 0x18, 0x53, 0x25, 0xc6, 0xc0, 0x93, 0x4f, 0xe4, 0x90, 0x54, 0xaa, - 0x42, 0x4b, 0xbc, 0xff, 0x50, 0x69, 0xc8, 0xc4, 0xfb, 0x6c, 0x55, 0xa5, 0x6b, 0xc2, 0x3f, 0xd1, - 0xd2, 0xf2, 0xf9, 0xda, 0x96, 0x91, 0x23, 0x28, 0x15, 0xd5, 0x0e, 0x18, 0x00, 0x6f, 0x86, 0x64, - 0x20, 0x8e, 0x5b, 0xb1, 0x1d, 0xc5, 0xa4, 0xfe, 0x6a, 0x31, 0x61, 0x21, 0x4d, 0x0c, 0xf7, 0x58, - 0x08, 0x0b, 0x8e, 0xf6, 0x22, 0xf1, 0x59, 0x5a, 0x7c, 0x8f, 0x88, 0x84, 0x81, 0x12, 0xcc, 0x38, - 0x60, 0xb5, 0x18, 0xc0, 0xa1, 0x2a, 0xbc, 0x31, 0x68, 0x42, 0xe3, 0x8f, 0x8f, 0x89, 0xa7, 0x76, - 0x55, 0x6e, 0xfe, 0xf9, 0x4c, 0xe0, 0x2d, 0x72, 0xa9, 0x06, 0x22, 0xfd, 0x62, 0xa2, 0x33, 0xe8, - 0xe3, 0x21, 0x44, 0x9f, 0x92, 0xa4, 0x9e, 0x49, 0x9a, 0xc3, 0x43, 0x7f, 0x12, 0x2d, 0xfb, 0xdb, - 0xdb, 0x63, 0x57, 0xca, 0xef, 0x05, 0xf7, 0x7a, 0xbd, 0x9d, 0x8b, 0x3a, 0x2b, 0x2e, 0x44, 0xae, - 0xc0, 0x90, 0x2b, 0xe0, 0x31, 0xe5, 0xd5, 0xe8, 0x99, 0x66, 0x3b, 0x95, 0x91, 0x94, 0x2e, 0x01, - 0x69, 0xa5, 0x40, 0xa1, 0x60, 0xb6, 0xd4, 0xb1, 0xe6, 0x16, 0xc7, 0x75, 0xc9, 0x71, 0x5e, 0x8c, - 0x7e, 0x09, 0xc3, 0x75, 0x41, 0x5b, 0x81, 0xa7, 0x9d, 0xe3, 0x1c, 0x05, 0x89, 0xc3, 0xdd, 0xf0, - 0xa6, 0x2a, 0x6d, 0x16, 0x67, 0x36, 0xe4, 0xcc, 0x72, 0xd2, 0x5d, 0x73, 0x1a, 0x15, 0x73, 0xbe, - 0x74, 0xaa, 0xd6, 0xcb, 0xa7, 0x6a, 0xfd, 0x8b, 0x53, 0xb5, 0x5f, 0x3e, 0x55, 0xfb, 0x5f, 0x9c, - 0xaa, 0xf3, 0xf2, 0xa9, 0x3a, 0xff, 0xd4, 0x54, 0x1b, 0x32, 0x1d, 0x56, 0xca, 0x34, 0x4a, 0x57, - 0x46, 0x18, 0x84, 0xf0, 0x82, 0xb0, 0xa4, 0xf4, 0x29, 0x09, 0xdc, 0x90, 0x79, 0x5e, 0xd8, 0x9f, - 0x04, 0x0f, 0x09, 0x91, 0x67, 0xbf, 0x25, 0xcb, 0x29, 0xb7, 0x78, 0xd1, 0xce, 0xe9, 0xc7, 0xb7, - 0xee, 0x92, 0x4c, 0xdd, 0x10, 0x12, 0x05, 0x0c, 0x47, 0x77, 0xea, 0xd7, 0xf8, 0xa2, 0x84, 0x1d, - 0x90, 0x22, 0xd1, 0xcc, 0x32, 0x6e, 0xe8, 0x51, 0x25, 0x51, 0xd3, 0x9d, 0x44, 0x41, 0xcc, 0x42, - 0xae, 0xd9, 0x34, 0x64, 0x51, 0xa6, 0xf0, 0x9c, 0x43, 0x53, 0x41, 0x40, 0x39, 0x23, 0xae, 0xdf, - 0xef, 0x66, 0x84, 0xb5, 0x73, 0xce, 0xd3, 0x55, 0x1c, 0x1c, 0xd9, 0x96, 0x67, 0xaf, 0x3c, 0x2b, - 0x66, 0xe4, 0x1e, 0x63, 0x22, 0x6c, 0x30, 0x85, 0x04, 0xc7, 0x23, 0xd3, 0x30, 0x58, 0xa0, 0x47, - 0xee, 0x89, 0x1d, 0xcb, 0x3b, 0x89, 0xd3, 0x4f, 0x65, 0x4e, 0x42, 0xdf, 0xe5, 0x22, 0x8c, 0xe1, - 0x28, 0x74, 0x67, 0xf3, 0x98, 0x85, 0x15, 0x00, 0xad, 0xe1, 0xa9, 0x6d, 0x63, 0x17, 0x5d, 0x15, - 0x86, 0xf6, 0xf0, 0xed, 0xca, 0xf2, 0xb6, 0x3d, 0x84, 0x30, 0xab, 0x29, 0x03, 0xf8, 0xdf, 0x6f, - 0x7d, 0x0b, 0xd2, 0xb4, 0x88, 0x85, 0xf1, 0xa9, 0xf3, 0xdd, 0xb2, 0x21, 0xb1, 0xc0, 0x7c, 0x4d, - 0xa1, 0x13, 0x06, 0x29, 0x22, 0x63, 0xbe, 0x43, 0xb5, 0x40, 0x7d, 0x96, 0x49, 0x83, 0x12, 0x7f, - 0x3e, 0x3a, 0x72, 0xbf, 0x34, 0x42, 0x48, 0xd5, 0xef, 0x18, 0x76, 0x12, 0x1e, 0xb9, 0xb2, 0x36, - 0x54, 0xdf, 0xca, 0xe8, 0xdc, 0x41, 0x9a, 0x75, 0x1c, 0x19, 0xe5, 0xe5, 0x86, 0xa3, 0xed, 0x41, - 0xc3, 0xed, 0xca, 0x84, 0xff, 0xf4, 0xc4, 0xcf, 0xa9, 0x0b, 0xd9, 0xd1, 0xd9, 0xc7, 0x4b, 0x05, - 0x18, 0x09, 0xe9, 0x11, 0x3f, 0x96, 0x15, 0xf9, 0x8a, 0xbb, 0x23, 0x43, 0xb2, 0x83, 0xc5, 0x57, - 0x78, 0x18, 0xae, 0x61, 0xce, 0x7c, 0x8e, 0x04, 0x69, 0x08, 0x56, 0xe1, 0x64, 0x26, 0x54, 0xc8, - 0x77, 0xb2, 0x21, 0xbb, 0xb2, 0x1e, 0x22, 0xdc, 0xea, 0x2e, 0xd5, 0xf8, 0x5b, 0xce, 0x9f, 0x3e, - 0xbc, 0xc8, 0x9f, 0xbe, 0xee, 0x76, 0xdb, 0xdd, 0x9c, 0x43, 0x65, 0xcf, 0x1b, 0xca, 0x93, 0x73, - 0x98, 0x26, 0xa5, 0xa9, 0xc7, 0x7c, 0x81, 0x1f, 0xfc, 0xdb, 0x59, 0x8e, 0x18, 0x7b, 0xa7, 0x4f, - 0xdc, 0xa4, 0xc2, 0x7f, 0x2e, 0xcc, 0xba, 0xa9, 0xce, 0x52, 0xa9, 0xfe, 0x50, 0x88, 0xc9, 0xa9, - 0x90, 0xb1, 0xa9, 0xa4, 0xef, 0xff, 0x5f, 0xb8, 0x99, 0x28, 0x1b, 0xb7, 0x0f, 0x52, 0xed, 0xe4, - 0x59, 0xa7, 0x90, 0x30, 0x97, 0x45, 0xbc, 0x5c, 0xb2, 0x53, 0x0f, 0x2d, 0xa9, 0x6a, 0x0f, 0x01, - 0xad, 0xbb, 0x49, 0x6d, 0x36, 0xd6, 0x26, 0xb1, 0x8f, 0xca, 0x00, 0xb2, 0x28, 0xfb, 0x39, 0x32, - 0x3d, 0x01, 0x3d, 0xc5, 0x57, 0x15, 0x5d, 0xa1, 0xe5, 0xca, 0x01, 0x1a, 0x95, 0xf6, 0xd3, 0xe9, - 0x07, 0x26, 0x1e, 0xdc, 0x29, 0xec, 0xb3, 0x7f, 0x64, 0xe4, 0xd4, 0x5e, 0x4e, 0x09, 0x0f, 0xc5, - 0x94, 0x6a, 0x7e, 0xca, 0x88, 0xc5, 0x5c, 0x39, 0xd5, 0x47, 0xb4, 0x18, 0x1b, 0x1d, 0xe4, 0x4c, - 0x9c, 0x58, 0x60, 0x77, 0x09, 0xc3, 0xea, 0xdf, 0x8b, 0x48, 0x52, 0x59, 0x3a, 0x75, 0x5f, 0x4e, - 0x5d, 0xe8, 0x9d, 0x15, 0x8f, 0x60, 0xc2, 0x94, 0xa7, 0x60, 0x20, 0xb6, 0xdb, 0xa3, 0x06, 0x45, - 0x5a, 0xca, 0x4d, 0x12, 0x8e, 0x86, 0xc9, 0xb6, 0x47, 0x6f, 0x1b, 0xa6, 0x82, 0x3d, 0x1a, 0xc5, - 0xbe, 0x68, 0xde, 0x4d, 0x2c, 0x11, 0xc7, 0x06, 0xa4, 0x45, 0xf9, 0x3a, 0x98, 0x66, 0x99, 0x58, - 0xd4, 0xaf, 0x8f, 0xf9, 0xe9, 0x47, 0x03, 0x1d, 0xc7, 0xd9, 0xdc, 0x0a, 0xcf, 0x02, 0x87, 0x29, - 0x58, 0xd0, 0xd2, 0x4f, 0x3a, 0xc7, 0xbd, 0x6e, 0x57, 0xad, 0x03, 0x9f, 0xdc, 0xba, 0xf9, 0x6d, - 0xb4, 0x8a, 0xe3, 0x80, 0x77, 0xe8, 0x3d, 0x8b, 0xc6, 0x86, 0x72, 0xc5, 0xe6, 0x4a, 0x7b, 0x64, - 0xe4, 0x42, 0x10, 0xa1, 0x4a, 0x3f, 0x3e, 0x5a, 0xcf, 0x5b, 0x41, 0x48, 0xa2, 0xec, 0x0f, 0x51, - 0x51, 0xb3, 0x87, 0xdf, 0x34, 0x9c, 0x52, 0x3a, 0x89, 0x82, 0x17, 0xfb, 0xf1, 0x91, 0x8e, 0xde, - 0xbd, 0x88, 0xea, 0x14, 0xcd, 0x96, 0xee, 0xc2, 0x22, 0x74, 0xd3, 0x8c, 0x4f, 0x68, 0x52, 0xd8, - 0xc1, 0x1e, 0x8d, 0xe7, 0xe1, 0x5b, 0x79, 0x98, 0x90, 0xaa, 0x4d, 0xe9, 0xf0, 0x16, 0x0e, 0x6f, - 0x95, 0x0c, 0xbf, 0x5a, 0x45, 0xf3, 0x09, 0x67, 0xd2, 0x6e, 0x04, 0x6d, 0x44, 0xd0, 0xae, 0x40, - 0x40, 0x5c, 0x79, 0xbe, 0xbc, 0x1b, 0x47, 0x07, 0x71, 0x74, 0x4a, 0x70, 0x8c, 0x79, 0x37, 0xdb, - 0xee, 0xc1, 0x5d, 0x1c, 0xdc, 0x2d, 0x23, 0xe0, 0xfc, 0x9a, 0x44, 0xcc, 0x8f, 0x82, 0x70, 0x37, - 0x82, 0xd7, 0x88, 0xe0, 0x75, 0x09, 0x82, 0x9b, 0x60, 0xb5, 0x6f, 0xf2, 0x9f, 0x70, 0xec, 0x4f, - 0x25, 0x63, 0x4f, 0x7d, 0xcb, 0x0b, 0x66, 0xbb, 0x07, 0x1f, 0xe3, 0xe0, 0xe3, 0xca, 0xc1, 0x15, - 0xcc, 0xa3, 0xa9, 0xf1, 0xa3, 0x02, 0x29, 0x0f, 0x64, 0xa5, 0x6b, 0x80, 0xe8, 0x05, 0xd6, 0xdb, - 0x23, 0xcb, 0xc0, 0xf5, 0x21, 0xce, 0xe9, 0x73, 0x19, 0xe5, 0xed, 0x23, 0x14, 0xef, 0x69, 0xbc, - 0x42, 0xb9, 0x7d, 0xa5, 0x26, 0x5e, 0xed, 0xf0, 0x87, 0x87, 0xd6, 0x4f, 0x46, 0xb7, 0x9f, 0x44, - 0xe4, 0x60, 0x44, 0xe5, 0xf1, 0xc7, 0xa6, 0x7a, 0x99, 0x6e, 0xae, 0x0b, 0x75, 0xe6, 0x8d, 0x5d, - 0x34, 0x0a, 0x4a, 0xe1, 0x8e, 0x0b, 0x53, 0x9f, 0x9e, 0x94, 0xe2, 0x2d, 0x97, 0xcd, 0x36, 0xb8, - 0xf4, 0xc6, 0xc4, 0x23, 0x9a, 0x2a, 0x61, 0x3a, 0x0f, 0x0c, 0x8c, 0x34, 0xfa, 0xe0, 0xe0, 0x76, - 0x97, 0x60, 0x13, 0xcb, 0xe9, 0xe3, 0x59, 0xfd, 0xf6, 0x51, 0x18, 0x37, 0x99, 0xea, 0x1f, 0xa8, - 0x3f, 0xfb, 0xc5, 0x32, 0xf2, 0x41, 0xc9, 0xf1, 0x9a, 0x9f, 0xe0, 0x43, 0x43, 0x8d, 0xed, 0x93, - 0xf9, 0x34, 0xdb, 0xff, 0x82, 0xe5, 0x63, 0x79, 0x3e, 0x16, 0xe9, 0x14, 0x80, 0xf4, 0x6d, 0x24, - 0x78, 0xde, 0x55, 0x8d, 0x43, 0xe7, 0x38, 0x04, 0xc7, 0x23, 0x37, 0xd7, 0x5f, 0xc9, 0xb4, 0x84, - 0xc9, 0x19, 0xf3, 0x56, 0x4b, 0xbc, 0x08, 0xf2, 0xde, 0xf5, 0xf0, 0x5e, 0x8d, 0xec, 0x9c, 0xf3, - 0xd9, 0x3d, 0xf9, 0xdb, 0xe5, 0xc5, 0xcf, 0x71, 0xbc, 0xbc, 0x86, 0xe8, 0x81, 0x45, 0x71, 0xdf, - 0xaf, 0xbe, 0xbb, 0x92, 0xbb, 0x51, 0x91, 0xdd, 0xf7, 0x88, 0xe7, 0x2e, 0x76, 0x3c, 0x45, 0xcb, - 0x00, 0x7c, 0xe4, 0x0d, 0x7b, 0x88, 0x35, 0xfe, 0x04, 0xc8, 0x8c, 0x57, 0x11, 0xb6, 0x76, 0xc0, - 0x22, 0x55, 0xf0, 0x5d, 0xd5, 0x37, 0x57, 0x32, 0xbc, 0x2c, 0x8f, 0x18, 0xbb, 0x8c, 0x2d, 0xfb, - 0x56, 0x3b, 0x48, 0x10, 0x88, 0x6b, 0x47, 0x57, 0x1f, 0x61, 0x37, 0x35, 0xda, 0x14, 0xcb, 0x91, - 0x67, 0x2b, 0x31, 0x5f, 0xc9, 0xfb, 0x20, 0x5c, 0x60, 0xb7, 0x5a, 0xda, 0xed, 0x28, 0xef, 0xe5, - 0x28, 0x14, 0x7b, 0x9c, 0x65, 0xd3, 0x2d, 0x6f, 0x77, 0xc6, 0xab, 0x30, 0x11, 0xb0, 0x0f, 0x6f, - 0xc3, 0xf8, 0x8d, 0x08, 0x61, 0x62, 0x55, 0x2b, 0x69, 0x87, 0x3e, 0xd8, 0xb8, 0x75, 0x74, 0x36, - 0x9d, 0xa5, 0xdc, 0xd3, 0xe2, 0x3e, 0x4d, 0x5e, 0x52, 0xd0, 0x42, 0x30, 0xfc, 0xe0, 0x37, 0xe5, - 0x1d, 0x29, 0xe4, 0xf3, 0x35, 0xb3, 0x20, 0xa4, 0x3a, 0x81, 0x95, 0xf0, 0xf9, 0x4e, 0x58, 0x3a, - 0xef, 0x89, 0x82, 0xbe, 0x3c, 0xa5, 0x42, 0x91, 0xf4, 0xa7, 0x63, 0xb0, 0x6b, 0x0b, 0xa7, 0x33, - 0xf3, 0xac, 0x41, 0xd7, 0x8c, 0xc3, 0x40, 0x00, 0x40, 0x28, 0x91, 0xe7, 0x2b, 0x2f, 0x96, 0xcb, - 0xe7, 0xfd, 0xfb, 0x5c, 0x78, 0x14, 0x9f, 0x1f, 0x15, 0xc4, 0x8d, 0xf9, 0x3d, 0x3f, 0x8c, 0xc1, - 0x0f, 0x20, 0xfb, 0x4e, 0xa6, 0x33, 0xa2, 0x79, 0xc5, 0xd0, 0x79, 0xdb, 0x4a, 0x72, 0x9c, 0x01, - 0xd2, 0xdc, 0x4f, 0x40, 0x31, 0xdc, 0x69, 0x00, 0xf4, 0x3b, 0xcb, 0x9e, 0x2b, 0xd2, 0x77, 0x9a, - 0xc3, 0xc7, 0x04, 0xd4, 0x10, 0x91, 0x42, 0x86, 0x8a, 0x35, 0x96, 0xae, 0x9f, 0xef, 0x85, 0x29, - 0xd3, 0x9a, 0x6f, 0x3c, 0x09, 0x45, 0x7f, 0xf6, 0x2d, 0xd7, 0xa4, 0xc5, 0x87, 0x7e, 0x76, 0xbf, - 0xf4, 0x2b, 0xcf, 0x6b, 0xfc, 0x02, 0x34, 0x32, 0x59, 0xab, 0x3c, 0x47, 0x2a, 0xc2, 0x72, 0x4d, - 0xd1, 0x5e, 0xd2, 0x1f, 0x2b, 0xe2, 0xaa, 0x72, 0xd0, 0xb3, 0x8f, 0x9b, 0xa0, 0x01, 0x06, 0xca, - 0xda, 0x4b, 0xda, 0x67, 0x91, 0x08, 0xc8, 0xd3, 0xcb, 0x61, 0xaf, 0xdf, 0x27, 0xb0, 0xa9, 0xd6, - 0xc2, 0x9e, 0x4e, 0x2b, 0xa8, 0xf8, 0xad, 0x0c, 0xf8, 0xee, 0x59, 0x7d, 0x4e, 0xb6, 0x18, 0xc2, - 0x23, 0x30, 0x11, 0x69, 0x90, 0x87, 0x97, 0xa5, 0xc4, 0xd3, 0x74, 0x27, 0x99, 0xd8, 0x43, 0x1e, - 0x91, 0x49, 0xe6, 0x88, 0x75, 0xcb, 0x25, 0x71, 0x35, 0xe3, 0xa3, 0xc0, 0x7a, 0x27, 0x69, 0x57, - 0xf2, 0xbd, 0x7f, 0x1a, 0x86, 0xd6, 0xba, 0xe1, 0x46, 0xfc, 0xaf, 0xc2, 0x53, 0x53, 0x35, 0x69, - 0x67, 0xdc, 0xb2, 0xf6, 0x14, 0x5b, 0xf5, 0xab, 0xc5, 0x08, 0x43, 0x32, 0x9c, 0x16, 0xf7, 0x1e, - 0x95, 0x90, 0x6f, 0x2b, 0xde, 0xbd, 0x2a, 0x5d, 0xfb, 0xcd, 0x0d, 0xcd, 0xb1, 0xd4, 0x6a, 0xc4, - 0xf1, 0x33, 0xa7, 0xca, 0x0d, 0xab, 0x5a, 0x01, 0xcf, 0xaf, 0xf3, 0x23, 0x24, 0x30, 0xce, 0x56, - 0x3e, 0xc1, 0xf9, 0x4d, 0x19, 0x38, 0xa7, 0x49, 0xf0, 0x23, 0x64, 0x10, 0x68, 0x56, 0x4d, 0x76, - 0x7d, 0xb1, 0x35, 0x9a, 0xc3, 0x57, 0xcf, 0x77, 0x7d, 0x49, 0x0b, 0x5b, 0x99, 0x1b, 0x03, 0x2e, - 0x3b, 0xc9, 0x15, 0x34, 0x54, 0x71, 0xcb, 0x39, 0x8d, 0xd0, 0xa8, 0x82, 0x56, 0xab, 0x3d, 0x79, - 0x6f, 0xef, 0xca, 0x63, 0xd8, 0xc7, 0x2e, 0xe3, 0x40, 0x8b, 0xa0, 0xee, 0xf3, 0xcb, 0x7d, 0xa2, - 0x1e, 0x74, 0x40, 0x53, 0xc8, 0x1b, 0xb0, 0xc4, 0x64, 0x12, 0x06, 0xf7, 0x90, 0xbd, 0x10, 0x27, - 0x60, 0x11, 0x5e, 0x39, 0xc2, 0x63, 0xea, 0x20, 0x84, 0x40, 0x75, 0xce, 0xc8, 0x37, 0x6e, 0x82, - 0xbe, 0x91, 0x65, 0x08, 0xc6, 0x15, 0x3c, 0x0a, 0x06, 0xfe, 0x1c, 0x13, 0x8f, 0x65, 0x23, 0xbc, - 0x71, 0xc1, 0xb2, 0x06, 0xd6, 0x0c, 0x2d, 0x13, 0x50, 0xa7, 0x57, 0xe7, 0xc4, 0xcd, 0x23, 0xe5, - 0x05, 0x59, 0x12, 0xe7, 0xa7, 0x5d, 0x83, 0xa9, 0xca, 0xdf, 0x0c, 0x1d, 0x83, 0xf7, 0xa0, 0x38, - 0xba, 0x07, 0x36, 0x53, 0x1a, 0x4b, 0x2f, 0xb0, 0xf9, 0x3d, 0x92, 0x06, 0xd0, 0x11, 0x07, 0x76, - 0x80, 0x3d, 0x9e, 0xfc, 0x3e, 0xab, 0xae, 0x29, 0xfc, 0x8a, 0xad, 0x89, 0x10, 0xde, 0x38, 0x0e, - 0x42, 0x6b, 0xc6, 0x90, 0xa5, 0xe7, 0x31, 0x5b, 0xa0, 0x5f, 0xb2, 0xcf, 0x97, 0x90, 0x85, 0x40, - 0xe0, 0x20, 0xc0, 0x60, 0xfc, 0x62, 0x09, 0x14, 0xa2, 0x25, 0x25, 0x97, 0x10, 0x05, 0x37, 0x88, - 0xe4, 0x16, 0xc3, 0x70, 0x86, 0x7c, 0xc2, 0x76, 0x86, 0xf3, 0x2b, 0x60, 0x91, 0x56, 0xc0, 0x18, - 0x15, 0x31, 0x6a, 0x1c, 0x9b, 0xaa, 0x22, 0x14, 0xbf, 0x69, 0x8a, 0xe8, 0x4f, 0xf8, 0x0d, 0xda, - 0x5e, 0xb3, 0x49, 0xeb, 0xfc, 0x35, 0xf6, 0x36, 0xd4, 0xb3, 0x5b, 0xb0, 0xcd, 0xa8, 0xf1, 0x3d, - 0x3a, 0x59, 0x9a, 0x2d, 0x74, 0x1a, 0x78, 0x3f, 0x05, 0x1b, 0xc1, 0xf0, 0xa6, 0xae, 0x68, 0x20, - 0x93, 0x9f, 0x44, 0xf3, 0x91, 0xf8, 0x92, 0xb4, 0x09, 0x99, 0xed, 0x37, 0x35, 0x88, 0xa0, 0xc4, - 0xb5, 0xe2, 0x01, 0x0f, 0xc4, 0x86, 0xff, 0xe1, 0x2e, 0xf8, 0x26, 0xad, 0x42, 0x0f, 0x5c, 0xbb, - 0x68, 0xf7, 0x88, 0xb0, 0x93, 0x00, 0x00, 0x39, 0xc0, 0xa0, 0x29, 0xee, 0x53, 0xe3, 0xf5, 0x53, - 0x22, 0x9d, 0x05, 0x1d, 0xf3, 0xd2, 0x1d, 0xa8, 0xdc, 0xa2, 0xc6, 0xd3, 0x77, 0xfc, 0xf4, 0x35, - 0x4a, 0xcb, 0x80, 0x53, 0x48, 0x43, 0x58, 0x3c, 0x0f, 0xb0, 0x98, 0x1a, 0x44, 0x78, 0xcd, 0x39, - 0x57, 0x52, 0x89, 0x03, 0x60, 0xde, 0x7d, 0xf1, 0xd9, 0x9c, 0x79, 0xcb, 0x11, 0x1d, 0xd6, 0x06, - 0x22, 0x90, 0x97, 0xb9, 0x8d, 0xf8, 0x92, 0x8b, 0x0c, 0x7f, 0xc6, 0x69, 0x4f, 0x06, 0x4d, 0xf1, - 0x22, 0xad, 0xc0, 0x97, 0x8d, 0xa9, 0xa5, 0x83, 0x46, 0x38, 0x68, 0x04, 0x0e, 0x3e, 0x1b, 0x57, - 0x18, 0x21, 0xef, 0x44, 0x0c, 0xc7, 0xd6, 0x1d, 0xcb, 0x40, 0xe6, 0x49, 0x9a, 0x3e, 0x98, 0xb7, - 0x86, 0x35, 0xdc, 0xcd, 0x43, 0x6b, 0xb1, 0xec, 0x93, 0x9f, 0xad, 0x10, 0xfb, 0x63, 0x50, 0x2b, - 0xe2, 0xd5, 0x12, 0x98, 0xd3, 0x82, 0xe8, 0x3b, 0xb6, 0xbc, 0xa4, 0x38, 0x9a, 0x16, 0x6b, 0x3d, - 0x9b, 0x93, 0x2a, 0xeb, 0xfe, 0x59, 0x71, 0xd9, 0xc6, 0x65, 0x66, 0x61, 0xec, 0xc0, 0x1d, 0x5e, - 0x33, 0x30, 0x9e, 0xa0, 0xb7, 0x0e, 0x08, 0xf5, 0x32, 0xb8, 0x07, 0xe9, 0x91, 0x0d, 0x1e, 0xd8, - 0xa1, 0x31, 0x11, 0x85, 0xc0, 0x28, 0x16, 0x05, 0xc7, 0xde, 0xa0, 0xe9, 0x8a, 0x71, 0x13, 0x59, - 0x18, 0xae, 0x89, 0xf3, 0x9d, 0x55, 0x36, 0x1b, 0x76, 0xc4, 0x14, 0x0b, 0xc7, 0xbc, 0x17, 0x43, - 0x96, 0x1e, 0xd2, 0x99, 0x6b, 0xef, 0x7c, 0x4c, 0xbb, 0x88, 0xb5, 0x82, 0xd0, 0x18, 0xb4, 0xc2, - 0x96, 0x73, 0xf9, 0x2c, 0x8a, 0x88, 0x87, 0x77, 0x51, 0x59, 0xb8, 0xa7, 0xb2, 0x7c, 0x3a, 0x62, - 0x92, 0xd5, 0x32, 0xbb, 0x94, 0x77, 0x6d, 0x44, 0x65, 0x89, 0x5f, 0xc5, 0x11, 0xb3, 0x26, 0x85, - 0x56, 0xbc, 0xdf, 0x34, 0xbc, 0x14, 0xd7, 0xe4, 0xc9, 0xd9, 0x2a, 0x0c, 0x41, 0x5b, 0xd2, 0x39, - 0xe4, 0xe5, 0xf8, 0xcb, 0x53, 0xba, 0x91, 0xdb, 0x6e, 0x94, 0xa6, 0x5a, 0xdd, 0xac, 0x44, 0xa6, - 0xeb, 0x5b, 0x25, 0xe5, 0xb4, 0x3c, 0x35, 0xac, 0x91, 0xc5, 0x69, 0x71, 0xfa, 0xec, 0xce, 0x46, - 0x9a, 0x87, 0x60, 0x49, 0xaa, 0x27, 0x7a, 0x96, 0xfa, 0xc5, 0x13, 0xbf, 0xda, 0xe1, 0x0f, 0x6f, - 0x8e, 0x8f, 0x8f, 0xfb, 0xe4, 0xef, 0xc1, 0x2a, 0x2c, 0xee, 0x0c, 0x48, 0xf0, 0x1d, 0x16, 0x10, - 0xc8, 0x1c, 0x38, 0x46, 0x6c, 0xb1, 0x90, 0x06, 0xe7, 0xea, 0x4d, 0x40, 0x40, 0xa5, 0xe0, 0x3d, - 0xe3, 0x86, 0x2f, 0xb2, 0xa6, 0x4c, 0x98, 0xbb, 0x35, 0x62, 0xe1, 0x52, 0xa3, 0x21, 0xe0, 0x52, - 0x98, 0x8b, 0x55, 0x84, 0x70, 0x20, 0xa8, 0xc4, 0x46, 0x7e, 0x45, 0xfc, 0x5d, 0x6d, 0x01, 0x01, - 0x97, 0x0b, 0x10, 0x72, 0x56, 0xd7, 0xff, 0xce, 0xe4, 0x25, 0x5f, 0x4c, 0x97, 0x22, 0x62, 0xf9, - 0x0e, 0xd8, 0xe3, 0x29, 0x0c, 0x3e, 0xc8, 0x0a, 0x4a, 0x20, 0x4a, 0xb5, 0xd3, 0x64, 0x33, 0x2d, - 0x0f, 0xc8, 0xe4, 0xbb, 0x18, 0xe5, 0xf7, 0x35, 0x0e, 0xb0, 0xd8, 0xb8, 0x06, 0x96, 0x06, 0x11, - 0xbf, 0x1e, 0x87, 0x34, 0x72, 0x30, 0x41, 0xfd, 0x5f, 0x19, 0x5b, 0x12, 0x2b, 0x26, 0x87, 0x10, - 0xf0, 0x19, 0xa7, 0xc4, 0x9d, 0x0a, 0x0a, 0xb0, 0xed, 0x8a, 0x37, 0x56, 0x39, 0xc0, 0x58, 0x3b, - 0x46, 0xd9, 0xc4, 0x82, 0x37, 0x0e, 0xce, 0x3a, 0x9b, 0x38, 0x29, 0xb5, 0x73, 0xbe, 0x52, 0x7e, - 0x99, 0x33, 0xbd, 0x55, 0x07, 0x7e, 0x85, 0x85, 0x90, 0x2a, 0x16, 0x98, 0xa8, 0x49, 0x53, 0x89, - 0x14, 0xe2, 0x7d, 0x70, 0x7f, 0x26, 0x48, 0x50, 0xa4, 0x5c, 0x10, 0x10, 0x7a, 0xbc, 0x7d, 0x0d, - 0x5a, 0xb1, 0x8a, 0xc0, 0x76, 0x26, 0xca, 0x25, 0xa5, 0x61, 0x89, 0x36, 0x64, 0xe5, 0xdf, 0xfa, - 0xc1, 0xbd, 0x2f, 0xa5, 0x5a, 0xcd, 0x94, 0x23, 0x14, 0x3a, 0x7b, 0x17, 0x78, 0x31, 0x5e, 0x24, - 0x57, 0x2e, 0xb1, 0xc5, 0x4c, 0xee, 0x13, 0xd7, 0x2b, 0x8b, 0x20, 0x71, 0xc0, 0x61, 0x00, 0x53, - 0x4b, 0xaa, 0xf6, 0xbc, 0x9d, 0x6b, 0x43, 0xb6, 0xf1, 0x9a, 0xdc, 0xd6, 0x61, 0x2f, 0x9e, 0x6e, - 0x24, 0x49, 0xb1, 0x99, 0xa5, 0xc7, 0x43, 0xe0, 0x89, 0xbc, 0xe1, 0x45, 0x94, 0x6e, 0x77, 0x71, - 0xaa, 0xd6, 0x2a, 0xcf, 0x73, 0xbb, 0x1c, 0x9a, 0x4d, 0xa7, 0xae, 0x8d, 0xcd, 0x82, 0x44, 0x69, - 0x23, 0xfc, 0xae, 0x76, 0x97, 0x1a, 0x76, 0x86, 0x29, 0x6d, 0x7d, 0x07, 0x18, 0x1e, 0xbb, 0x0c, - 0x65, 0x1f, 0x99, 0x62, 0xb4, 0x76, 0x40, 0x62, 0xcb, 0x4a, 0xed, 0x8c, 0x67, 0xc8, 0x25, 0x47, - 0xca, 0x05, 0x43, 0x22, 0xae, 0xa9, 0x95, 0x1f, 0x90, 0x4b, 0x14, 0xa2, 0x9b, 0x2f, 0x61, 0x35, - 0x36, 0xe2, 0x01, 0x87, 0x53, 0x1d, 0x4f, 0x98, 0x4b, 0xcb, 0xca, 0x57, 0x85, 0x13, 0x23, 0x6e, - 0xd7, 0x3c, 0xab, 0x5a, 0xbb, 0x13, 0xe5, 0x4e, 0x0e, 0xe9, 0x32, 0xe1, 0x4d, 0xf8, 0xee, 0xe6, - 0x44, 0xd1, 0x8f, 0x56, 0xf0, 0xc7, 0x9a, 0x04, 0x40, 0x04, 0xd7, 0x44, 0x9c, 0x1f, 0xd5, 0x12, - 0xc5, 0xba, 0x91, 0x0a, 0x8e, 0x34, 0xf9, 0xed, 0x61, 0x6d, 0xcb, 0xd0, 0xb7, 0x33, 0x3b, 0x82, - 0x7d, 0x52, 0xfc, 0x37, 0x3b, 0x44, 0x8f, 0x61, 0xd4, 0x4b, 0xc6, 0x15, 0xcf, 0x07, 0x12, 0x3f, - 0x53, 0x2b, 0xba, 0x26, 0xc4, 0x50, 0xcf, 0x79, 0xb5, 0x34, 0xdd, 0x41, 0x7f, 0x4e, 0x87, 0xf5, - 0xd4, 0x09, 0x91, 0x0a, 0xd7, 0x86, 0x08, 0x8e, 0x4a, 0x10, 0x1c, 0x49, 0x0c, 0x47, 0x39, 0x4f, - 0x17, 0x72, 0x3a, 0x2f, 0x79, 0x63, 0x25, 0xf9, 0x35, 0xaf, 0x47, 0x7c, 0x21, 0xb0, 0xf5, 0x7a, - 0xe2, 0x8e, 0x48, 0x33, 0xff, 0xc6, 0xc8, 0xb9, 0xaf, 0x51, 0xc1, 0x8a, 0xf2, 0xa6, 0x57, 0x52, - 0x2b, 0xad, 0xf1, 0x1f, 0x4d, 0x20, 0x64, 0xb9, 0xed, 0xf3, 0xdf, 0x47, 0xe9, 0x19, 0xba, 0xbe, - 0x7c, 0xe8, 0xcf, 0x19, 0x5a, 0x1f, 0xf8, 0x02, 0x9f, 0x27, 0x3c, 0xfe, 0x3f, 0xc2, 0xae, 0xd8, - 0x55, 0xd4, 0x6b, 0xc1, 0xa3, 0xe4, 0x34, 0xae, 0x56, 0x98, 0x22, 0xd7, 0x84, 0xfa, 0x07, 0x0d, - 0x35, 0x48, 0x12, 0xcc, 0x46, 0xc2, 0x15, 0x2c, 0xc3, 0x17, 0xd6, 0x6e, 0xe2, 0x7a, 0x2e, 0x9a, - 0xe0, 0x90, 0x78, 0xd6, 0x0c, 0xc2, 0xc8, 0x68, 0xc5, 0x22, 0x6e, 0x6a, 0x7e, 0x05, 0x13, 0xe8, - 0x71, 0xab, 0x08, 0x2a, 0x4e, 0x72, 0xee, 0x34, 0xe9, 0x5a, 0x1d, 0x96, 0x34, 0x94, 0x26, 0x3c, - 0x41, 0x23, 0x82, 0xf6, 0x6f, 0x82, 0xbe, 0x99, 0x3d, 0x00, 0x00, 0xe8, 0xae, 0x5d, 0xb0, 0xc7, - 0x20, 0x0e, 0xb5, 0xbc, 0x3c, 0x5c, 0x5a, 0xb7, 0x0c, 0x0d, 0x0f, 0x9b, 0x2d, 0x12, 0x33, 0xc4, - 0x20, 0x65, 0x91, 0x88, 0xf7, 0xf8, 0xda, 0xcb, 0x31, 0x15, 0x4c, 0x92, 0x6a, 0x36, 0x59, 0x45, - 0xe2, 0xdc, 0x08, 0xd6, 0xe9, 0xb8, 0x36, 0x8b, 0x2a, 0xc7, 0xe7, 0x6c, 0x98, 0x28, 0xd6, 0xf0, - 0xba, 0x89, 0xcc, 0x09, 0xa4, 0xaf, 0x8e, 0x5c, 0xe1, 0xa9, 0x91, 0x25, 0x33, 0x2f, 0x98, 0x88, - 0x80, 0x06, 0x26, 0x99, 0x4e, 0x73, 0x51, 0x40, 0xad, 0x9c, 0xb4, 0x8b, 0xb7, 0xd2, 0xcd, 0x6f, - 0xca, 0x7f, 0xd6, 0x79, 0x04, 0x7b, 0xf7, 0x95, 0xef, 0xfd, 0xd7, 0x85, 0xb5, 0x5c, 0xe2, 0xbe, - 0x82, 0xbd, 0xc8, 0x4e, 0x83, 0x48, 0x52, 0x92, 0xef, 0xe5, 0xc6, 0x64, 0xe7, 0x22, 0xc3, 0x3f, - 0xac, 0x5f, 0xc9, 0x09, 0x40, 0x41, 0x49, 0x78, 0xba, 0xfa, 0x52, 0x05, 0x4b, 0x4e, 0x01, 0x32, - 0x0c, 0xc9, 0x51, 0xca, 0xa6, 0x82, 0x55, 0x10, 0x87, 0x0b, 0xe1, 0x98, 0x78, 0xd2, 0x2a, 0xa1, - 0x64, 0xad, 0x9b, 0xf0, 0xa2, 0x27, 0xf7, 0x88, 0x2b, 0xcf, 0x3b, 0x5a, 0x2d, 0x9b, 0x90, 0x9d, - 0xf8, 0x7b, 0x24, 0xe0, 0xfc, 0x4a, 0x4a, 0x00, 0x2f, 0xf7, 0x82, 0xf0, 0xe1, 0xf1, 0x77, 0xe0, - 0x39, 0x15, 0x27, 0x02, 0x59, 0x0b, 0x42, 0xc1, 0xb8, 0x1a, 0x18, 0x31, 0x09, 0x84, 0x90, 0xef, - 0x92, 0x5a, 0x6a, 0x4f, 0x11, 0xf3, 0xf9, 0xf5, 0x3f, 0x73, 0xc6, 0x00, 0x59, 0x70, 0x5e, 0xc8, - 0x36, 0x8f, 0x18, 0x36, 0x3c, 0x2b, 0x24, 0xc1, 0x9b, 0xe7, 0x11, 0x25, 0x0d, 0x54, 0xb5, 0x6b, - 0x30, 0x59, 0x31, 0x23, 0xce, 0xe6, 0xe1, 0xc0, 0xf6, 0x89, 0x5f, 0xab, 0x73, 0x74, 0xcb, 0xd6, - 0xbb, 0x9a, 0x0b, 0x21, 0xf8, 0xad, 0x49, 0x28, 0xde, 0x7d, 0x5d, 0xdd, 0xa9, 0xd8, 0xc6, 0x0e, - 0x50, 0x0e, 0x38, 0x81, 0xef, 0x95, 0x8d, 0x88, 0x80, 0xaf, 0xb3, 0x77, 0x56, 0xf0, 0xbf, 0x2d, - 0x63, 0x1f, 0xd0, 0x6b, 0x40, 0xf5, 0x5a, 0x4e, 0xc8, 0x73, 0x94, 0x72, 0xb0, 0x9f, 0xe8, 0xf0, - 0x0d, 0x87, 0x0a, 0xab, 0x59, 0x71, 0x0c, 0xa8, 0x78, 0x8a, 0x1e, 0x72, 0xd6, 0x95, 0xf8, 0xf2, - 0x92, 0x02, 0xbc, 0xac, 0xbf, 0x67, 0x62, 0xfe, 0x0a, 0xcb, 0xef, 0xbc, 0xb0, 0xf1, 0x0a, 0x0c, - 0x6b, 0x55, 0xf5, 0xfd, 0x94, 0x87, 0xc1, 0x20, 0x2e, 0x62, 0x1f, 0x31, 0x92, 0x5c, 0x58, 0xae, - 0x9f, 0xda, 0x36, 0xfc, 0x05, 0x8f, 0x7d, 0x66, 0xe3, 0x72, 0xfc, 0x71, 0x23, 0x3d, 0xe0, 0x6d, - 0xe1, 0xe5, 0xd1, 0x45, 0x5a, 0x7b, 0xe8, 0x91, 0x5a, 0x41, 0x38, 0xf9, 0x8f, 0x0d, 0x49, 0x8c, - 0xbc, 0xfa, 0x4a, 0x2c, 0xdb, 0x66, 0x4b, 0x88, 0x17, 0x1a, 0x1c, 0x5d, 0x45, 0x7e, 0x98, 0x53, - 0xd5, 0x2c, 0x57, 0x7c, 0x95, 0x2b, 0x5d, 0xd3, 0xa6, 0x1b, 0x0a, 0x0c, 0xc0, 0x88, 0x5f, 0xf9, - 0xf3, 0x32, 0xad, 0xb7, 0x48, 0x0d, 0xf4, 0x70, 0x6a, 0x96, 0xfe, 0xea, 0x15, 0x67, 0xed, 0xd4, - 0x02, 0xe3, 0x0c, 0x1f, 0xa7, 0x21, 0x44, 0x13, 0x4e, 0x13, 0x22, 0x1f, 0x5e, 0x56, 0x35, 0xe9, - 0x57, 0xd8, 0x71, 0xff, 0x96, 0xa2, 0xd2, 0xc1, 0xdb, 0x60, 0xd0, 0xb4, 0x44, 0xe0, 0x7a, 0x8d, - 0x05, 0x9a, 0x7f, 0x46, 0x0f, 0xaf, 0x2f, 0xb6, 0x4f, 0xfa, 0x6a, 0x39, 0x3d, 0x24, 0xe2, 0x12, - 0xe5, 0x6e, 0x2b, 0x73, 0x7d, 0x49, 0x93, 0xcc, 0xf2, 0x45, 0x92, 0x82, 0x55, 0xa9, 0x57, 0xd5, - 0xc7, 0x34, 0x5b, 0x4e, 0x10, 0x83, 0x2b, 0xf9, 0x93, 0x1f, 0x11, 0x8f, 0xaa, 0x6e, 0xb0, 0x82, - 0xce, 0x9d, 0x2c, 0x1e, 0xa3, 0x4e, 0x31, 0x25, 0x10, 0x69, 0x02, 0x58, 0x45, 0x5e, 0x65, 0xdc, - 0x27, 0x47, 0x23, 0x29, 0x46, 0x12, 0x6b, 0x2e, 0xdd, 0xd9, 0x08, 0x3b, 0xcf, 0x20, 0xec, 0xac, - 0x95, 0x1a, 0xc9, 0x45, 0x59, 0x04, 0x9a, 0x45, 0x9a, 0x8a, 0x7e, 0x04, 0x4f, 0xd4, 0x24, 0xb5, - 0x38, 0x95, 0x39, 0x20, 0x12, 0x97, 0x4a, 0xa3, 0xa4, 0xe5, 0xaa, 0x22, 0x79, 0xdd, 0x9e, 0x41, - 0x2f, 0x64, 0xaa, 0x10, 0xb6, 0x4e, 0x82, 0x00, 0x62, 0x7f, 0x1d, 0x53, 0xc2, 0x28, 0x89, 0x61, - 0xa3, 0x74, 0x52, 0xf4, 0xcc, 0x1f, 0xac, 0xc5, 0xc2, 0x22, 0x76, 0x10, 0x86, 0x32, 0x1d, 0xc4, - 0x10, 0x42, 0x04, 0x46, 0x7b, 0x78, 0xf4, 0x01, 0x02, 0x56, 0xa2, 0x44, 0x71, 0x18, 0x40, 0xd2, - 0x83, 0x56, 0x24, 0x2d, 0x39, 0xf0, 0x09, 0x6a, 0x95, 0xd8, 0x4b, 0x98, 0x59, 0x31, 0x03, 0xd6, - 0x6f, 0x88, 0xe2, 0xc3, 0x1a, 0x36, 0xb1, 0xe3, 0xff, 0xa3, 0x2c, 0x07, 0x05, 0x85, 0x88, 0x73, - 0x14, 0x4b, 0xc6, 0xbd, 0xdf, 0x64, 0x5c, 0x6d, 0x83, 0x73, 0x46, 0xf9, 0xde, 0xfc, 0x09, 0x05, - 0xea, 0x06, 0xc2, 0xc2, 0xc8, 0x45, 0xa2, 0x85, 0x4c, 0x9d, 0x85, 0x41, 0x14, 0x4d, 0x2d, 0x87, - 0xed, 0xe3, 0xcb, 0xcd, 0x7b, 0x21, 0x3b, 0x19, 0x02, 0x82, 0xbf, 0xeb, 0xb5, 0x41, 0xdc, 0xcd, - 0xdb, 0x2a, 0xe2, 0x1e, 0xbc, 0xed, 0xae, 0x1d, 0xfc, 0xf5, 0x40, 0xb2, 0x88, 0x10, 0xad, 0x2c, - 0xb1, 0x5c, 0x59, 0x1e, 0x8b, 0xc1, 0x99, 0xc5, 0x19, 0x99, 0xfb, 0x08, 0xbb, 0x7a, 0x2f, 0x54, - 0x05, 0xa9, 0x71, 0x20, 0x43, 0x07, 0xe6, 0xf1, 0x95, 0x25, 0x42, 0xfe, 0x56, 0xfe, 0x86, 0xda, - 0x66, 0xf5, 0xe4, 0xe6, 0x62, 0x8f, 0x00, 0x56, 0xb0, 0x11, 0xde, 0x71, 0x41, 0x48, 0xf0, 0xdf, - 0x70, 0x23, 0x55, 0xad, 0x4b, 0x37, 0xa3, 0xfd, 0x82, 0x5e, 0x2b, 0x99, 0x08, 0x27, 0xc1, 0x7a, - 0xe9, 0x66, 0x2b, 0xf5, 0xcd, 0xa7, 0xb2, 0x28, 0xe0, 0x93, 0xe5, 0xc6, 0xbc, 0xd8, 0x01, 0x9a, - 0x56, 0xdb, 0x11, 0x02, 0xbc, 0x87, 0xad, 0xde, 0xe1, 0xfc, 0xf1, 0x35, 0xe1, 0xe1, 0x66, 0x0a, - 0x54, 0xdb, 0x76, 0xfc, 0xe3, 0x95, 0x1f, 0xba, 0x51, 0x99, 0xdf, 0x04, 0xbe, 0xf3, 0x2b, 0x10, - 0xf8, 0x03, 0x43, 0x90, 0x41, 0xa1, 0x87, 0xe3, 0x9b, 0x51, 0x13, 0x4f, 0x47, 0x16, 0x18, 0x72, - 0x9b, 0xe5, 0x54, 0x67, 0x5f, 0x47, 0xe6, 0xd9, 0x4d, 0xbe, 0xb7, 0x33, 0x11, 0xa6, 0x7b, 0x9b, - 0x0e, 0x3f, 0x88, 0xe0, 0x3b, 0x90, 0xf1, 0x30, 0xd7, 0xc1, 0xb2, 0xce, 0xc3, 0xd2, 0x46, 0x43, - 0xba, 0xb5, 0x2c, 0x5e, 0x05, 0x78, 0xbb, 0x27, 0x86, 0xaa, 0xea, 0x57, 0xaf, 0x65, 0x0c, 0xde, - 0xd3, 0x8f, 0x88, 0x4c, 0xde, 0xd3, 0x91, 0x88, 0x1c, 0xae, 0x95, 0x37, 0x25, 0xf2, 0xac, 0x26, - 0x5d, 0x1e, 0x30, 0x27, 0x6b, 0xa7, 0xac, 0xcc, 0x69, 0x24, 0x23, 0xaf, 0x05, 0x1f, 0x71, 0x0c, - 0x04, 0xf8, 0xa0, 0x5a, 0x77, 0x90, 0x91, 0x79, 0x60, 0x7a, 0x20, 0xc5, 0x78, 0x71, 0x5c, 0x5c, - 0xdb, 0x0c, 0x8c, 0xcf, 0x46, 0x45, 0x0b, 0x23, 0xdd, 0x19, 0xec, 0xf8, 0xa9, 0x73, 0x87, 0x5b, - 0xed, 0xf0, 0xed, 0x4f, 0xd4, 0x3a, 0x37, 0xa1, 0x58, 0x51, 0x2d, 0x51, 0xe2, 0x51, 0x99, 0x50, - 0x5f, 0xf0, 0xbb, 0xa1, 0x44, 0xb9, 0x0f, 0xad, 0x25, 0xd6, 0x28, 0x16, 0xc1, 0x1d, 0x0c, 0x56, - 0x77, 0x88, 0x77, 0x2d, 0x19, 0x62, 0x79, 0xf7, 0xd6, 0x3a, 0x22, 0x38, 0x52, 0xdd, 0xb1, 0x15, - 0x09, 0xb8, 0x8f, 0x7d, 0xc2, 0x1b, 0xd0, 0x25, 0x82, 0x8f, 0x9b, 0x5f, 0x62, 0xb9, 0x4b, 0xf7, - 0xa9, 0x26, 0x0d, 0x43, 0x28, 0xba, 0x6f, 0xb1, 0x72, 0xc7, 0x5e, 0xc6, 0xe8, 0xc4, 0xf0, 0x18, - 0xad, 0x94, 0xcf, 0xef, 0xaf, 0xf3, 0x09, 0x08, 0x79, 0x7f, 0x35, 0xae, 0x4e, 0x21, 0xa7, 0x33, - 0xec, 0x1f, 0xc4, 0x5f, 0x8f, 0x24, 0x31, 0x5b, 0x2c, 0xbd, 0xed, 0x79, 0x45, 0x24, 0x58, 0xcb, - 0x42, 0xc1, 0xd6, 0xbf, 0x12, 0x0b, 0xd2, 0xe4, 0x14, 0x3e, 0x3d, 0xac, 0x6f, 0x41, 0xa2, 0xc2, - 0x5d, 0x7f, 0x79, 0xf6, 0xf7, 0x7f, 0x74, 0x10, 0xd1, 0xc4, 0xb3, 0x95, 0x5c, 0x36, 0x29, 0x7e, - 0xe3, 0x32, 0x99, 0xb6, 0x89, 0xc7, 0x32, 0x78, 0x46, 0x83, 0xbf, 0x84, 0xfb, 0xbf, 0x0e, 0x74, - 0xbc, 0xe1, 0x19, 0x57, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0x6b, 0x77, 0xda, 0xc8, + 0x92, 0xdf, 0xf9, 0x15, 0x6d, 0xcd, 0x8c, 0x23, 0x5d, 0x04, 0x48, 0x3c, 0x32, 0x04, 0x10, 0x5e, + 0xe3, 0x3c, 0xc6, 0x77, 0xec, 0xb1, 0x0f, 0x78, 0x92, 0x7b, 0x4f, 0x26, 0x27, 0x11, 0x52, 0x03, + 0x8a, 0x85, 0xc4, 0x95, 0x84, 0x1f, 0x6b, 0xb3, 0xbf, 0x69, 0x7f, 0xc3, 0xfe, 0xb2, 0xad, 0xea, + 0x6e, 0xbd, 0x40, 0x02, 0x67, 0xcf, 0xfd, 0xb4, 0x73, 0xce, 0xc4, 0x20, 0x55, 0x57, 0x57, 0x57, + 0xd7, 0xbb, 0xab, 0x19, 0x1c, 0xbd, 0xbd, 0x3a, 0xbb, 0xf9, 0xe7, 0xf5, 0x3b, 0xb2, 0x88, 0x96, + 0xee, 0x70, 0x80, 0xff, 0x12, 0xd7, 0xf4, 0xe6, 0x86, 0x44, 0x3d, 0x09, 0xbe, 0x53, 0xd3, 0x1e, + 0x0e, 0x96, 0x34, 0x32, 0x89, 0xb5, 0x30, 0x83, 0x90, 0x46, 0x86, 0xb4, 0x8e, 0x66, 0xb5, 0xae, + 0x24, 0x9e, 0x56, 0x3c, 0x73, 0x49, 0x0d, 0xe9, 0xce, 0xa1, 0xf7, 0x2b, 0x3f, 0x88, 0x24, 0x62, + 0xf9, 0x5e, 0x44, 0x3d, 0x00, 0xbb, 0x77, 0xec, 0x68, 0x61, 0x74, 0x34, 0x2d, 0x01, 0xdd, 0x7a, + 0x65, 0xd3, 0x3b, 0xc7, 0xa2, 0x35, 0xf6, 0x45, 0x75, 0x3c, 0x27, 0x72, 0x4c, 0xb7, 0x16, 0x5a, + 0xa6, 0x4b, 0x0d, 0x5d, 0x5d, 0x9a, 0x0f, 0xce, 0x72, 0xbd, 0x4c, 0xbe, 0xaf, 0x43, 0x1a, 0xb0, + 0x2f, 0xe6, 0x14, 0xbe, 0x7b, 0xbe, 0xb4, 0x33, 0xf3, 0x70, 0x10, 0x39, 0x91, 0x4b, 0x87, 0x17, + 0xef, 0xde, 0x92, 0x09, 0x8d, 0x22, 0xc7, 0x9b, 0x87, 0x83, 0x06, 0x7f, 0x36, 0x08, 0xad, 0xc0, + 0x59, 0x45, 0xc3, 0xca, 0x9d, 0x19, 0x10, 0xdb, 0xb0, 0x7d, 0x6b, 0xbd, 0x04, 0x4a, 0x54, 0xd7, + 0x5c, 0x05, 0xf4, 0xce, 0xe8, 0x74, 0x70, 0xbe, 0x11, 0x9f, 0xf6, 0xa3, 0xa1, 0xe1, 0x9f, 0x4b, + 0xa3, 0x4d, 0x5b, 0xf8, 0xe1, 0x7a, 0x64, 0xb4, 0xb5, 0x37, 0xaf, 0xf1, 0xe3, 0x85, 0xa1, 0xb7, + 0x5a, 0xec, 0xe1, 0xc5, 0xf4, 0x5f, 0x6b, 0x3f, 0x32, 0xb4, 0xbe, 0x5d, 0x5f, 0x2f, 0xbf, 0xae, + 0x8c, 0xcf, 0x5f, 0x54, 0xbb, 0x1e, 0x84, 0x77, 0xb6, 0xf8, 0xe4, 0x7f, 0x9d, 0xaf, 0x1c, 0x9f, + 0x7f, 0x01, 0x70, 0xfe, 0xad, 0xf5, 0xa6, 0x8f, 0xf3, 0xbb, 0xbe, 0xe5, 0xac, 0xd4, 0xc8, 0x59, + 0x52, 0x7f, 0x1d, 0xa9, 0xd6, 0x3a, 0x8c, 0xfc, 0xe5, 0x24, 0x32, 0x83, 0x28, 0x34, 0x8e, 0x74, + 0x35, 0x64, 0x9f, 0xde, 0x3a, 0x41, 0xf4, 0x88, 0xc3, 0x61, 0xf0, 0xd9, 0xd5, 0xd5, 0x1d, 0x0d, + 0x02, 0xc7, 0xa6, 0xa1, 0xd1, 0x51, 0x61, 0x34, 0x80, 0xf5, 0x67, 0x6b, 0xcf, 0x8a, 0x1c, 0xdf, + 0x23, 0xbf, 0xc9, 0xca, 0xd3, 0xbd, 0xe3, 0xd9, 0xfe, 0x7d, 0xdd, 0x5f, 0x51, 0x4f, 0x96, 0x16, + 0x51, 0xb4, 0x0a, 0x7b, 0x8d, 0xc6, 0xad, 0xe7, 0xd7, 0xef, 0x5d, 0x6a, 0xd7, 0xe7, 0xb4, 0x31, + 0xa3, 0x66, 0xb4, 0x0e, 0x68, 0xd8, 0x08, 0x05, 0x63, 0x1a, 0x3f, 0xc1, 0x9b, 0x5a, 0xfc, 0x4d, + 0x52, 0x36, 0x09, 0xbe, 0xd1, 0x36, 0xbe, 0x64, 0x8c, 0xa4, 0x4a, 0x5f, 0x43, 0xea, 0xce, 0xb2, + 0xd0, 0xf3, 0x73, 0x5b, 0xa6, 0xca, 0x53, 0x40, 0x01, 0xbd, 0x47, 0x70, 0xae, 0xe8, 0x9d, 0x4b, + 0x91, 0xb7, 0xa3, 0x47, 0xf6, 0x2a, 0x05, 0xf5, 0x67, 0x33, 0x04, 0xcd, 0xc2, 0x84, 0xa3, 0xc7, + 0x3f, 0x60, 0x13, 0xe1, 0xf1, 0x67, 0xed, 0x4b, 0xfd, 0xce, 0x74, 0xd7, 0xd4, 0xa8, 0xe9, 0xe9, + 0x10, 0xd7, 0x37, 0xed, 0xbf, 0x4f, 0x64, 0xaa, 0x7a, 0xc6, 0x91, 0xa6, 0x3c, 0xb9, 0x34, 0x22, + 0x91, 0x61, 0xd7, 0xad, 0x00, 0x96, 0x43, 0x05, 0x0e, 0x59, 0xe2, 0x7b, 0x2b, 0x29, 0xfd, 0xa8, + 0x0e, 0xa4, 0x9e, 0x46, 0x51, 0xe0, 0x4c, 0xd7, 0x11, 0x85, 0x17, 0x81, 0x25, 0xa9, 0x54, 0x51, + 0xb7, 0x9f, 0x47, 0x8f, 0x2b, 0x0a, 0x8b, 0x89, 0xe8, 0x43, 0xd4, 0xf8, 0x6e, 0xde, 0x99, 0x31, + 0x82, 0x1d, 0x40, 0x33, 0x7c, 0xf4, 0x00, 0x85, 0xa7, 0xc0, 0x2e, 0x4e, 0x7d, 0xfb, 0xb1, 0x6e, + 0xae, 0x80, 0x25, 0xf6, 0xd9, 0xc2, 0x71, 0x6d, 0x39, 0x42, 0x78, 0xd3, 0xb6, 0xdf, 0xdd, 0x01, + 0x15, 0x17, 0x4e, 0x08, 0xa2, 0x4d, 0x03, 0x59, 0x42, 0x9a, 0x25, 0x55, 0x56, 0x8c, 0xe1, 0xd3, + 0x07, 0x1a, 0x7d, 0x94, 0x15, 0xd5, 0x5a, 0x50, 0xeb, 0x76, 0xe2, 0xc0, 0x27, 0xc4, 0x3e, 0xba, + 0x80, 0x0f, 0x35, 0xdd, 0x30, 0xb8, 0xe4, 0xc0, 0xc2, 0x8f, 0x8f, 0xf9, 0xc7, 0x7a, 0xb8, 0x70, + 0x66, 0x91, 0xac, 0x6c, 0x8a, 0x11, 0x83, 0x08, 0xf8, 0x01, 0xac, 0x07, 0x10, 0x83, 0x22, 0x85, + 0xbe, 0x4b, 0xeb, 0xae, 0x3f, 0x97, 0xa5, 0x77, 0xf8, 0x9c, 0x08, 0x6e, 0xc1, 0x3e, 0x91, 0x99, + 0xe3, 0x52, 0xb6, 0x6e, 0xd0, 0x9c, 0x00, 0xf8, 0x73, 0x21, 0x9e, 0xfb, 0x33, 0x54, 0xce, 0x99, + 0x33, 0x5f, 0x07, 0x26, 0x63, 0x2f, 0x5f, 0x37, 0x99, 0x99, 0x0e, 0x8a, 0xc9, 0x5f, 0xde, 0xb9, + 0x67, 0xf9, 0xcb, 0x15, 0x70, 0x99, 0x92, 0x95, 0x39, 0xa7, 0xc4, 0x36, 0x23, 0xf3, 0x08, 0x76, + 0x3b, 0xb3, 0x89, 0xe1, 0xc2, 0xbf, 0xbf, 0xf1, 0xcd, 0x30, 0xe2, 0x9b, 0xa2, 0x2b, 0x4f, 0x28, + 0xd1, 0x91, 0x81, 0x72, 0x20, 0x45, 0xf8, 0x82, 0xed, 0x83, 0xe3, 0x01, 0xc9, 0xbf, 0xdd, 0x5c, + 0x5e, 0x18, 0x14, 0xd6, 0x62, 0xb9, 0x66, 0x18, 0xe2, 0x46, 0x1b, 0xde, 0x89, 0x58, 0x46, 0x4f, + 0x42, 0x4c, 0x92, 0x6a, 0xb9, 0xd4, 0x0c, 0x6e, 0xb8, 0x2a, 0xc8, 0x42, 0x25, 0xd8, 0x3e, 0x44, + 0x8f, 0xb0, 0x3e, 0xd3, 0x73, 0x96, 0x8c, 0x54, 0x43, 0xf2, 0x7c, 0x0f, 0x16, 0x25, 0x20, 0x0c, + 0x60, 0x64, 0x3c, 0x48, 0x8e, 0x69, 0x03, 0xb9, 0xcd, 0x4e, 0x95, 0xf9, 0x5c, 0x0f, 0xe8, 0xca, + 0x35, 0x2d, 0x94, 0x08, 0x36, 0xa9, 0x84, 0x6b, 0x52, 0x9b, 0x6f, 0x34, 0x2d, 0xb3, 0xb2, 0xe9, + 0x85, 0xb3, 0x74, 0xa2, 0x10, 0xd7, 0xa5, 0x46, 0xaa, 0xa9, 0x3a, 0xca, 0x13, 0xb3, 0x09, 0x94, + 0xdb, 0x04, 0x8f, 0xdb, 0x04, 0x53, 0x58, 0x84, 0x88, 0x9b, 0x03, 0x27, 0x1d, 0xbf, 0x72, 0xbc, + 0xf0, 0xea, 0x77, 0x99, 0x33, 0x84, 0x1a, 0x5b, 0x62, 0x7e, 0x63, 0xce, 0x99, 0xa4, 0x4b, 0x8e, + 0xb7, 0x5a, 0x23, 0x8f, 0x66, 0x7e, 0x20, 0x3b, 0x60, 0x3f, 0x9c, 0x01, 0x6c, 0x23, 0xf5, 0xe6, + 0xd1, 0xa2, 0xef, 0x54, 0xab, 0x7c, 0xb4, 0x67, 0xd0, 0xcf, 0xce, 0x97, 0x3a, 0xda, 0xb7, 0x7a, + 0xb8, 0x9e, 0x86, 0x20, 0x8f, 0xde, 0x5c, 0xd6, 0xd4, 0xa6, 0xd2, 0x77, 0x66, 0xb0, 0x9f, 0x9a, + 0x64, 0x18, 0xde, 0xf3, 0xb3, 0x74, 0xa1, 0xc7, 0x1f, 0x9a, 0xf1, 0x87, 0x16, 0x7e, 0x88, 0x37, + 0xa5, 0x08, 0x0b, 0xc7, 0xb1, 0x42, 0x53, 0x7e, 0x0e, 0xca, 0x53, 0xa4, 0x8d, 0xd2, 0xc5, 0x8d, + 0x54, 0x8d, 0x52, 0x95, 0x54, 0x75, 0x4d, 0x19, 0x1a, 0x5d, 0x4d, 0x41, 0xfb, 0xed, 0x78, 0x6b, + 0xba, 0x01, 0x0c, 0x2f, 0x20, 0x03, 0x3f, 0xb4, 0xc5, 0x87, 0xf1, 0x85, 0xf8, 0x30, 0xba, 0x11, + 0x1f, 0xce, 0xc7, 0x8c, 0xd4, 0xe3, 0x63, 0x49, 0x3a, 0xe2, 0x94, 0xb2, 0xc9, 0xe0, 0x7b, 0x4d, + 0xcf, 0x3d, 0xe1, 0xab, 0x31, 0xc1, 0x18, 0x32, 0xa6, 0xdd, 0x02, 0xd3, 0x6e, 0x07, 0xdc, 0xd8, + 0xc6, 0x9c, 0xbb, 0x05, 0xce, 0x99, 0xf5, 0xd5, 0x3a, 0x5c, 0xc8, 0xfc, 0xc5, 0xe7, 0xdb, 0x2f, + 0x4a, 0x0e, 0x9a, 0xe9, 0x57, 0x11, 0x34, 0xd3, 0x41, 0x84, 0x86, 0x35, 0x99, 0xf5, 0xd0, 0x87, + 0xf5, 0x7b, 0xc6, 0xd0, 0x33, 0x8c, 0x84, 0x45, 0x29, 0x25, 0xc8, 0x08, 0x45, 0x11, 0xb6, 0x8e, + 0x2b, 0xd7, 0xb7, 0x89, 0x1f, 0x04, 0x8f, 0x2a, 0xdb, 0x7d, 0xf2, 0xf3, 0xd3, 0xdf, 0x27, 0x57, + 0x7f, 0xd4, 0x39, 0xa7, 0x9d, 0xd9, 0xa3, 0x6c, 0x2a, 0x1b, 0x62, 0x99, 0xde, 0xab, 0x88, 0x4c, + 0x29, 0x01, 0x0f, 0x66, 0xd7, 0xbf, 0x29, 0x6a, 0x8a, 0xcf, 0x90, 0x24, 0xfe, 0x6d, 0x06, 0xfe, + 0x28, 0x04, 0xb3, 0x00, 0x76, 0x1d, 0x37, 0x18, 0x58, 0x73, 0x64, 0x78, 0xc0, 0x09, 0x60, 0x16, + 0xfb, 0x90, 0x38, 0x94, 0x7f, 0x37, 0x81, 0x09, 0x62, 0x20, 0xd4, 0x0c, 0x28, 0x61, 0xd2, 0x09, + 0xb6, 0xc4, 0x7d, 0x3c, 0x4c, 0x29, 0xb2, 0xf7, 0xbb, 0xe1, 0x54, 0xf5, 0xfe, 0xf7, 0x54, 0x86, + 0xbf, 0xc7, 0x32, 0xec, 0xc3, 0x0e, 0x7e, 0x3f, 0x20, 0xc3, 0x7e, 0x2c, 0x3c, 0x7e, 0x2c, 0x3c, + 0x7e, 0x2c, 0x3c, 0x7e, 0x2c, 0x3c, 0x7e, 0x2c, 0x3c, 0x7e, 0x2c, 0x3c, 0x7e, 0x2c, 0x3c, 0xbe, + 0xf2, 0xc4, 0x50, 0xc1, 0x47, 0xc3, 0xcf, 0x4d, 0xa2, 0x2b, 0x9c, 0x08, 0xb7, 0x90, 0x88, 0x97, + 0xaa, 0x80, 0x7b, 0x40, 0x05, 0xb8, 0xe0, 0x7e, 0x4f, 0x04, 0x37, 0xc3, 0xae, 0xcc, 0xf3, 0xad, + 0xed, 0xb8, 0x76, 0x3c, 0x66, 0x85, 0x5d, 0xc7, 0x42, 0xa9, 0x88, 0xee, 0x29, 0xf5, 0x60, 0x5f, + 0x12, 0x55, 0xdd, 0x34, 0xf0, 0x8b, 0x20, 0x7a, 0x73, 0xc4, 0x76, 0xe1, 0x7b, 0x6e, 0x17, 0xbe, + 0x67, 0x77, 0x61, 0x03, 0xff, 0xf1, 0x09, 0x8e, 0xb4, 0xd4, 0x16, 0x45, 0xc1, 0xe3, 0x64, 0x3d, + 0x05, 0x73, 0x86, 0x0e, 0x17, 0x28, 0xb5, 0xeb, 0x93, 0x59, 0x1d, 0xad, 0x79, 0x06, 0x4f, 0x1d, + 0x23, 0x1f, 0x58, 0xf2, 0x5b, 0x3a, 0x33, 0xd7, 0x6e, 0x84, 0xd8, 0x62, 0x13, 0x16, 0x93, 0x0c, + 0x4c, 0x8b, 0xfc, 0xd5, 0x75, 0xe0, 0x83, 0x37, 0x30, 0xb9, 0x89, 0x15, 0x22, 0xca, 0xa2, 0x9f, + 0xa1, 0x0e, 0x06, 0x54, 0x18, 0x2c, 0xe9, 0xc6, 0xf7, 0xc9, 0xd2, 0xf4, 0x1e, 0x09, 0x84, 0x5f, + 0x21, 0x01, 0xd9, 0x20, 0x4b, 0x4a, 0x22, 0x9f, 0x2c, 0x4c, 0xcf, 0x76, 0xe9, 0x91, 0xd4, 0x47, + 0xf3, 0x39, 0xd0, 0x69, 0xfb, 0xf8, 0x58, 0xf6, 0xaa, 0x86, 0xf4, 0x97, 0xf7, 0x57, 0x70, 0x06, + 0x6e, 0x0c, 0xa2, 0x9a, 0x00, 0x54, 0x03, 0xfd, 0x93, 0xe9, 0x91, 0x77, 0x93, 0xeb, 0x56, 0xb3, + 0x2e, 0xc5, 0xae, 0xcb, 0x53, 0x36, 0x8c, 0x74, 0xe6, 0x41, 0x3f, 0x9a, 0xae, 0x63, 0x3b, 0xd1, + 0xa3, 0xac, 0xa0, 0x42, 0xc0, 0xd3, 0x90, 0x2f, 0x31, 0x63, 0xc3, 0xa9, 0xc7, 0xdc, 0xab, 0x30, + 0xc1, 0xcc, 0x27, 0x61, 0xb8, 0x28, 0x29, 0x1c, 0x03, 0xb5, 0xfb, 0x6c, 0xe0, 0xc5, 0xa9, 0xe0, + 0x03, 0x3d, 0xe1, 0x01, 0x60, 0x4f, 0x53, 0x63, 0x60, 0x80, 0xe5, 0xbe, 0xc7, 0x76, 0x42, 0x70, + 0x1a, 0x8f, 0x00, 0x03, 0x36, 0xdb, 0x75, 0xc0, 0xfb, 0xf4, 0x84, 0x13, 0x62, 0xa0, 0xab, 0x70, + 0xdd, 0x7c, 0x01, 0x6c, 0x6e, 0xbe, 0xa1, 0x76, 0x7c, 0x1c, 0x87, 0x00, 0x59, 0xa2, 0x2f, 0x4e, + 0x33, 0x6e, 0x83, 0xc1, 0x43, 0x98, 0xc5, 0x87, 0x6c, 0x13, 0xcc, 0x27, 0xbf, 0x38, 0x85, 0x19, + 0x77, 0x66, 0xef, 0x68, 0x46, 0x01, 0x05, 0x7f, 0x9e, 0x67, 0x27, 0x8b, 0xa7, 0x7f, 0x0a, 0xef, + 0x9d, 0xc8, 0x5a, 0xc8, 0x05, 0x3c, 0x82, 0x50, 0x4b, 0xdd, 0x26, 0x03, 0x70, 0xab, 0x19, 0x85, + 0xc9, 0x90, 0x04, 0x9a, 0x66, 0x99, 0x21, 0x25, 0x5a, 0xaf, 0x10, 0x95, 0xae, 0x8a, 0x3d, 0xe9, + 0x4f, 0x21, 0x68, 0xbb, 0xed, 0x33, 0xd8, 0x96, 0xd6, 0xdb, 0x99, 0xa0, 0xa5, 0xe5, 0x20, 0x3a, + 0x05, 0x10, 0x9d, 0x2c, 0x44, 0xa7, 0x00, 0xa2, 0x93, 0x83, 0x68, 0x16, 0x81, 0x34, 0x13, 0x18, + 0x9b, 0xcb, 0x7d, 0x6f, 0x0f, 0x43, 0x63, 0x56, 0x6e, 0x18, 0xcc, 0x52, 0x07, 0x80, 0x34, 0xb0, + 0x41, 0x79, 0x56, 0x0b, 0x6d, 0xc7, 0x04, 0x22, 0x64, 0xb4, 0x1c, 0xbb, 0x21, 0x1c, 0x97, 0x58, + 0x08, 0x63, 0x62, 0xfd, 0x54, 0xb6, 0xb6, 0x07, 0xb0, 0x5d, 0xd2, 0x25, 0xc6, 0x20, 0x71, 0xb4, + 0x7b, 0xc0, 0x4c, 0x9d, 0x49, 0x55, 0x2f, 0x35, 0x53, 0x4a, 0x5f, 0x68, 0x6e, 0x54, 0x3d, 0x30, + 0x70, 0x72, 0x91, 0x1f, 0xa8, 0xd2, 0x41, 0xab, 0x79, 0x92, 0xea, 0x68, 0xcb, 0x30, 0x8a, 0x27, + 0xd4, 0x72, 0xe3, 0x4e, 0xe8, 0xb0, 0xf9, 0xe6, 0xa4, 0xa9, 0xfd, 0x2d, 0xea, 0xe9, 0x1d, 0xf8, + 0x07, 0x11, 0x0c, 0x0d, 0xc0, 0xc0, 0x5f, 0x74, 0xe1, 0xd1, 0x6b, 0xf8, 0x9f, 0x7d, 0x69, 0xc3, + 0x87, 0x16, 0xfb, 0xd2, 0xd2, 0xc1, 0x58, 0x0e, 0xda, 0xdd, 0x93, 0x4e, 0xaf, 0xdd, 0x06, 0x99, + 0x7d, 0x7e, 0x6e, 0x77, 0x50, 0x74, 0x05, 0x44, 0xca, 0x0e, 0x60, 0x0e, 0x65, 0x41, 0x26, 0xf2, + 0x02, 0xc3, 0x4d, 0x35, 0xc2, 0x7f, 0x4c, 0x70, 0xea, 0x5c, 0xda, 0x96, 0xab, 0x7b, 0x33, 0xf0, + 0xc0, 0x78, 0xec, 0xec, 0x1d, 0xdb, 0xf9, 0xcb, 0x58, 0xf1, 0x7e, 0x6d, 0x6a, 0xda, 0x8e, 0x66, + 0x80, 0x2c, 0x18, 0x46, 0x4e, 0x98, 0x85, 0x39, 0x30, 0xf4, 0x66, 0x6f, 0x47, 0x71, 0x65, 0xf1, + 0x2e, 0x2f, 0xfd, 0x7d, 0xee, 0xeb, 0xca, 0xa2, 0x3d, 0x10, 0x3c, 0x6a, 0xe5, 0xc3, 0x3d, 0x3f, + 0x1b, 0xee, 0x31, 0xff, 0xc5, 0x9c, 0x5a, 0x49, 0xc0, 0x17, 0xfb, 0x31, 0xbf, 0x30, 0x94, 0x53, + 0xc3, 0x74, 0x9b, 0xfd, 0x5c, 0x14, 0xc0, 0xf9, 0xb3, 0xd2, 0x6c, 0x74, 0x63, 0x19, 0xa9, 0x0d, + 0xd1, 0x8b, 0x81, 0x15, 0x1a, 0xbc, 0x79, 0x7d, 0x22, 0x9d, 0x5f, 0x13, 0x90, 0x51, 0x48, 0x0b, + 0xc3, 0x9e, 0xd4, 0x0b, 0x87, 0xed, 0x37, 0x27, 0xd2, 0x5b, 0x70, 0x12, 0xe4, 0xc3, 0xf5, 0xf9, + 0x15, 0x7f, 0xa2, 0x9f, 0x48, 0xf8, 0x05, 0xdf, 0x4b, 0xfc, 0xa9, 0xb0, 0x7e, 0xfa, 0x2e, 0xe2, + 0xf6, 0x1b, 0xc4, 0xfb, 0xba, 0x7d, 0x22, 0x9d, 0xb9, 0xb7, 0x31, 0x0e, 0x49, 0x62, 0x1c, 0x0a, + 0x4a, 0xa4, 0x49, 0x17, 0x5e, 0x96, 0xf1, 0xc7, 0xac, 0x1a, 0x42, 0xfe, 0x43, 0xd5, 0x55, 0xd4, + 0xb9, 0xa1, 0xf7, 0xe7, 0x83, 0x4e, 0x7f, 0x8e, 0x21, 0x85, 0x5c, 0x86, 0x41, 0xaa, 0xce, 0x39, + 0x0a, 0xf0, 0x0a, 0x72, 0x66, 0x75, 0xc7, 0xc7, 0xf3, 0x41, 0xfb, 0xf9, 0x99, 0x93, 0x05, 0xd9, + 0xd6, 0x9c, 0x7d, 0xd6, 0xf1, 0x65, 0x07, 0x40, 0xe6, 0xd5, 0xb6, 0x36, 0x08, 0x4f, 0xe4, 0xa0, + 0x44, 0xe5, 0xd5, 0x00, 0x92, 0x86, 0x7f, 0xad, 0x9d, 0x80, 0xd9, 0x43, 0xa5, 0xb7, 0x0b, 0xc8, + 0x65, 0x28, 0x0b, 0xa6, 0xc3, 0xb7, 0xd8, 0xbf, 0x2a, 0xca, 0x06, 0x22, 0x02, 0x6e, 0x5e, 0x83, + 0x19, 0xe3, 0x55, 0x6c, 0x13, 0x0b, 0x9e, 0x3d, 0x3f, 0xb7, 0x80, 0xc4, 0x50, 0x0d, 0x99, 0x6a, + 0x84, 0xa0, 0x1a, 0x30, 0xb6, 0x54, 0xe1, 0x33, 0x71, 0x89, 0x01, 0x91, 0x8e, 0x9a, 0x45, 0xe8, + 0x7b, 0x16, 0x44, 0x16, 0xb7, 0x06, 0xc3, 0x77, 0x82, 0x59, 0xe8, 0x91, 0xde, 0x63, 0xc9, 0xe8, + 0x46, 0x8d, 0x9e, 0x0d, 0x0f, 0xf6, 0x49, 0xff, 0x15, 0xa7, 0x68, 0x36, 0x61, 0x52, 0x70, 0x18, + 0xa1, 0x98, 0x9b, 0xb1, 0x87, 0xf1, 0xae, 0x0d, 0xbc, 0x6b, 0xb7, 0x8e, 0xf0, 0x51, 0xb7, 0x8b, + 0x54, 0x31, 0xfc, 0x96, 0xcf, 0xf0, 0xe7, 0x99, 0x90, 0xe1, 0x37, 0x8e, 0x37, 0x04, 0x82, 0xee, + 0x09, 0xe7, 0x4e, 0x2f, 0xe1, 0x26, 0x43, 0x61, 0x3b, 0x73, 0xc0, 0x51, 0x95, 0xee, 0x77, 0x94, + 0x35, 0x4b, 0xc8, 0x8e, 0x9a, 0xb6, 0x34, 0xa0, 0x05, 0x2c, 0x92, 0xce, 0xfe, 0x14, 0xb3, 0xe5, + 0xd3, 0x55, 0x9e, 0x2d, 0x9a, 0x92, 0x9f, 0xd2, 0x92, 0x0a, 0x48, 0x7f, 0x19, 0xb5, 0x81, 0xb4, + 0x67, 0xd5, 0xfb, 0x87, 0x86, 0xd2, 0xbf, 0x87, 0x61, 0xb3, 0x22, 0x3c, 0xfa, 0x6b, 0x1c, 0xda, + 0x6a, 0x32, 0x3c, 0x1d, 0x2d, 0xd6, 0xbd, 0xa2, 0x58, 0x25, 0xc6, 0x63, 0xee, 0xe0, 0x81, 0xdc, + 0xa2, 0x8d, 0xec, 0x2d, 0x1e, 0x07, 0xe6, 0x6e, 0xd7, 0x7c, 0xa4, 0x24, 0x9f, 0x7b, 0x77, 0x10, + 0xa4, 0x51, 0x9b, 0x40, 0x1a, 0x8e, 0x49, 0x6d, 0x4f, 0x1a, 0x43, 0x44, 0x09, 0xe6, 0xc8, 0x26, + 0x72, 0xe0, 0x47, 0x26, 0xbe, 0xd2, 0xbb, 0xda, 0xff, 0xfc, 0xb7, 0x92, 0xc4, 0x4c, 0xf6, 0x7e, + 0x7c, 0x36, 0x7d, 0x40, 0x9b, 0xc1, 0x8a, 0x61, 0x3d, 0xe1, 0x76, 0xef, 0x77, 0xf7, 0x2e, 0xda, + 0x21, 0x37, 0x7a, 0x7e, 0xe6, 0x61, 0xc9, 0xe9, 0xa7, 0x3a, 0xb7, 0xb9, 0xd4, 0x66, 0xe8, 0x0c, + 0x11, 0xcb, 0x9c, 0x8d, 0x33, 0x31, 0x09, 0xb7, 0xda, 0xab, 0x43, 0x39, 0xba, 0xba, 0xc6, 0x4a, + 0x20, 0xfc, 0x7f, 0x07, 0x86, 0x3b, 0x35, 0xe0, 0xab, 0x9d, 0x7c, 0xdd, 0x32, 0x56, 0x65, 0xf9, + 0xba, 0x5b, 0xf8, 0x2a, 0x4e, 0x82, 0xce, 0x20, 0x83, 0xb0, 0x44, 0x16, 0x83, 0x09, 0x91, 0x15, + 0x27, 0x44, 0x96, 0x72, 0x40, 0xfb, 0xc1, 0xd1, 0x1a, 0xac, 0x12, 0xd1, 0x2f, 0x18, 0x1c, 0x67, + 0x53, 0x56, 0x9c, 0x4d, 0xf1, 0x39, 0xe4, 0xd0, 0xf8, 0xa1, 0xa4, 0x47, 0xe1, 0x29, 0xcf, 0x13, + 0x5b, 0x01, 0x4e, 0x08, 0x0e, 0x53, 0xe5, 0x5f, 0x1c, 0x0f, 0xd8, 0xc2, 0x3e, 0xf2, 0x9d, 0xb1, + 0x7c, 0xd7, 0x0f, 0x0c, 0xe9, 0xa7, 0xd9, 0x6c, 0x26, 0xf5, 0x93, 0x1c, 0x29, 0x19, 0x98, 0xd6, + 0x40, 0xd3, 0xf1, 0x35, 0x3d, 0x53, 0x46, 0xd8, 0x47, 0x7b, 0x9c, 0x09, 0x5a, 0x71, 0x26, 0x68, + 0xc5, 0x99, 0xa0, 0x15, 0x67, 0x82, 0x96, 0x28, 0x23, 0xac, 0x76, 0xca, 0x08, 0xab, 0xad, 0x32, + 0xc2, 0xfc, 0x50, 0x19, 0x61, 0xfe, 0x43, 0x65, 0x84, 0xf9, 0x4e, 0x19, 0x81, 0x67, 0xc5, 0x1a, + 0xe4, 0xc4, 0xab, 0x6c, 0x4e, 0x0c, 0x4b, 0x75, 0x8e, 0x8c, 0xef, 0x9c, 0x88, 0x19, 0x90, 0x75, + 0x28, 0x37, 0x9e, 0xc5, 0x1c, 0x99, 0xc5, 0x1c, 0x99, 0xc5, 0x1c, 0x99, 0xc5, 0x1c, 0x99, 0xc5, + 0x1c, 0x99, 0xc5, 0x1c, 0x99, 0xc5, 0x1c, 0x99, 0x65, 0x72, 0xe3, 0x59, 0x61, 0x6e, 0xfc, 0x58, + 0x48, 0xc4, 0x4b, 0x73, 0xe3, 0xc7, 0x7d, 0xb9, 0x31, 0xdf, 0x8a, 0xef, 0x3b, 0x5b, 0x91, 0x3e, + 0x11, 0x7c, 0x4b, 0xe6, 0x49, 0xdf, 0xb1, 0x12, 0xc6, 0x66, 0x33, 0xe7, 0x95, 0x0e, 0x6a, 0x0c, + 0x69, 0xa6, 0xd2, 0xb1, 0xca, 0x57, 0x3a, 0x4e, 0x76, 0x25, 0x10, 0x1c, 0xb1, 0xd4, 0xdb, 0x79, + 0xbc, 0x55, 0x3f, 0x39, 0x80, 0x55, 0xf2, 0x03, 0xd3, 0x9b, 0xa3, 0x71, 0x61, 0xf2, 0xbc, 0xe1, + 0xf5, 0x18, 0x2b, 0xae, 0xc7, 0xe0, 0x07, 0xe0, 0xfa, 0x11, 0x8a, 0x9f, 0x7c, 0x40, 0xc4, 0x21, + 0x0a, 0x70, 0x43, 0xca, 0xf8, 0x7d, 0x51, 0x36, 0x61, 0x3f, 0x7b, 0x02, 0x00, 0xb6, 0x30, 0xad, + 0xff, 0x7f, 0x76, 0xbf, 0xc0, 0x14, 0xcc, 0x0a, 0xba, 0x21, 0xb3, 0x9c, 0xdc, 0xbb, 0xad, 0x85, + 0x77, 0x13, 0x0f, 0xc1, 0x2c, 0x62, 0xda, 0x05, 0x96, 0x2d, 0x8b, 0x49, 0xbd, 0x00, 0x67, 0x29, + 0xfb, 0xe9, 0xac, 0x3b, 0x78, 0x14, 0xa5, 0x7a, 0x31, 0x5c, 0x03, 0xd4, 0xda, 0xf0, 0xab, 0x17, + 0x8a, 0x7a, 0x31, 0xbc, 0x83, 0x2f, 0x77, 0x06, 0x7c, 0xfc, 0x71, 0x53, 0x31, 0x40, 0xbf, 0x26, + 0x2f, 0xab, 0x30, 0x1a, 0xb7, 0x8f, 0xcd, 0x85, 0x96, 0x1b, 0x8b, 0xec, 0x67, 0xe2, 0xdc, 0x67, + 0x2d, 0xdc, 0xc0, 0xce, 0x73, 0xc3, 0x58, 0x9e, 0x48, 0xc0, 0x6f, 0x59, 0xaa, 0x2e, 0xab, 0x12, + 0x59, 0x2d, 0x1e, 0x43, 0xc7, 0x32, 0xdd, 0xd8, 0x6f, 0x2c, 0xb5, 0x5c, 0xe6, 0x65, 0xaa, 0xfc, + 0xf0, 0xc5, 0x6c, 0x60, 0xba, 0xf1, 0x37, 0x5d, 0x13, 0xd9, 0xbb, 0x3d, 0x35, 0x53, 0x67, 0x3d, + 0x35, 0xad, 0xdb, 0x79, 0xe0, 0xaf, 0x3d, 0xdb, 0xf8, 0x86, 0xae, 0xc2, 0x0c, 0x6a, 0xf3, 0xc0, + 0xb4, 0x1d, 0x3c, 0x31, 0x78, 0xa3, 0xd9, 0x74, 0xae, 0x92, 0x9f, 0x9f, 0x78, 0x19, 0xe3, 0xb5, + 0x76, 0xc2, 0x3f, 0xbc, 0x81, 0x1c, 0x81, 0x09, 0x50, 0x46, 0x02, 0x2c, 0xcb, 0x92, 0x36, 0x44, + 0x8b, 0x81, 0x37, 0xbf, 0xa8, 0xe4, 0xa7, 0x76, 0xbb, 0x9d, 0x7e, 0x27, 0x30, 0xff, 0x2f, 0xca, + 0x37, 0xb1, 0x23, 0xd4, 0x2e, 0x4b, 0x48, 0xee, 0x86, 0x97, 0x66, 0xb4, 0x40, 0xb9, 0x90, 0x99, + 0xe1, 0x56, 0xbb, 0x9a, 0xa6, 0x3c, 0x3f, 0xf3, 0x99, 0xbb, 0x5a, 0xb1, 0x07, 0x2e, 0xc0, 0xc7, + 0x25, 0x3a, 0xc6, 0x66, 0x3e, 0x14, 0x60, 0xd3, 0xb5, 0xed, 0x85, 0x70, 0x6c, 0xf7, 0x90, 0xf8, + 0x86, 0xbe, 0x97, 0x63, 0x66, 0x3a, 0x7f, 0x57, 0xfb, 0x05, 0x8f, 0x08, 0x00, 0x5d, 0x1d, 0x8b, + 0x38, 0x64, 0x49, 0x97, 0x7e, 0xf0, 0x28, 0x55, 0xd3, 0x62, 0xcf, 0xc9, 0x37, 0x22, 0x0f, 0xa6, + 0xc3, 0x77, 0xe3, 0xf1, 0xd5, 0xb8, 0x47, 0xfe, 0x64, 0x45, 0x1b, 0x1f, 0x3c, 0x3e, 0x30, 0x03, + 0x77, 0x62, 0x33, 0x3a, 0x1a, 0x34, 0xa6, 0x43, 0xe5, 0x1b, 0x44, 0xfd, 0x4a, 0x0f, 0xf0, 0x69, + 0xbc, 0x18, 0xb4, 0x02, 0x08, 0x11, 0x22, 0x30, 0xc7, 0x7b, 0x6e, 0x30, 0xda, 0x2d, 0xea, 0xb8, + 0xb2, 0x0c, 0x68, 0xab, 0xcb, 0xbf, 0xf1, 0xdc, 0x4a, 0x69, 0x74, 0x60, 0x15, 0x8d, 0x66, 0xff, + 0xdc, 0x38, 0x1f, 0x76, 0x4e, 0x52, 0xa8, 0x73, 0xa5, 0x77, 0xde, 0xf7, 0x0d, 0x91, 0x4c, 0x2c, + 0x58, 0xbc, 0xb8, 0x9d, 0xda, 0xab, 0x23, 0x23, 0x9b, 0xd0, 0xa5, 0x15, 0x94, 0xf3, 0x81, 0x5e, + 0xd7, 0x9a, 0xc7, 0xc7, 0x47, 0x0b, 0xf8, 0x7f, 0x74, 0x02, 0x68, 0xde, 0x4d, 0xae, 0x49, 0xe7, + 0x23, 0x96, 0x44, 0xc9, 0xbd, 0x13, 0x2d, 0x88, 0x7e, 0x4a, 0xfe, 0x9c, 0x8c, 0x48, 0xb8, 0x5e, + 0xad, 0xdc, 0x47, 0xa9, 0x27, 0xfb, 0x55, 0x63, 0x71, 0x22, 0xe9, 0xcd, 0x8f, 0x44, 0xea, 0x8d, + 0x4e, 0xa4, 0x4f, 0x93, 0x66, 0x57, 0xef, 0x10, 0xfe, 0x5d, 0x82, 0x81, 0x92, 0x0a, 0x10, 0xe7, + 0xf8, 0x8f, 0x74, 0x2a, 0x46, 0x61, 0x4d, 0xcf, 0x63, 0x61, 0x07, 0x16, 0xbd, 0x70, 0xd9, 0x12, + 0x8f, 0x32, 0xa6, 0xe5, 0x8b, 0xd5, 0xf9, 0x6a, 0xd5, 0x89, 0x21, 0xc9, 0xac, 0x60, 0xe6, 0x87, + 0x11, 0xa1, 0xb3, 0x19, 0xa0, 0x09, 0x55, 0xf2, 0x5f, 0x52, 0x7f, 0x52, 0x35, 0xa6, 0xc6, 0x34, + 0xc7, 0x89, 0xa9, 0xd2, 0x9b, 0xaa, 0x13, 0x36, 0xb1, 0x13, 0x12, 0xea, 0xf9, 0xeb, 0xf9, 0x42, + 0x19, 0x4c, 0x83, 0x61, 0x5a, 0x96, 0xca, 0x6d, 0xaf, 0x9f, 0xab, 0x56, 0xa5, 0xcf, 0x47, 0xa8, + 0x6f, 0x13, 0xfe, 0xf2, 0x3b, 0x97, 0x89, 0xbc, 0xb8, 0x76, 0x05, 0x27, 0xcf, 0x6f, 0x44, 0x6a, + 0x2c, 0xc5, 0x92, 0x99, 0x39, 0x9e, 0x33, 0xc3, 0xe8, 0x9d, 0x67, 0x8b, 0x22, 0x23, 0x1d, 0xe8, + 0x71, 0xe1, 0x50, 0xeb, 0xdf, 0x1d, 0xb2, 0x1f, 0x13, 0x10, 0x2c, 0x0a, 0x06, 0x32, 0x63, 0x43, + 0xaa, 0x87, 0x6b, 0x1d, 0xdb, 0x43, 0xfa, 0xbc, 0xfa, 0x78, 0xd8, 0x56, 0xed, 0x0c, 0x14, 0x94, + 0x7a, 0x2c, 0xe3, 0xf2, 0x78, 0xc6, 0x05, 0x89, 0xbf, 0xa2, 0x3a, 0xe1, 0x1f, 0xe6, 0x1f, 0xf2, + 0x9d, 0x72, 0xa2, 0xf5, 0xee, 0xd2, 0xa5, 0x42, 0x9e, 0x8c, 0x9b, 0x9a, 0x1c, 0x45, 0xf2, 0x03, + 0x96, 0xad, 0xe9, 0xce, 0xe2, 0x03, 0x27, 0x08, 0x21, 0x27, 0x37, 0x58, 0xc5, 0x34, 0xa2, 0x24, + 0x58, 0x9c, 0xc9, 0x47, 0x32, 0xe4, 0x37, 0xe0, 0xfc, 0xcc, 0x21, 0x86, 0x6e, 0xa3, 0x2a, 0x9e, + 0x2b, 0x3d, 0x3f, 0xd7, 0xf8, 0x43, 0x90, 0x68, 0x53, 0x78, 0x66, 0x87, 0xa7, 0x88, 0x4b, 0x58, + 0x30, 0xf3, 0xc6, 0x08, 0x10, 0x17, 0xd5, 0xbf, 0x0d, 0x6c, 0xe7, 0x8e, 0xb0, 0x93, 0x2d, 0x83, + 0x4d, 0x32, 0xfc, 0xcb, 0x1b, 0x2c, 0x82, 0xf8, 0x49, 0xb8, 0x74, 0xf1, 0xc9, 0xcf, 0x4f, 0x66, + 0x55, 0xdf, 0xf4, 0xe0, 0x15, 0x0f, 0x86, 0x09, 0x3f, 0x2a, 0xbf, 0xb8, 0x81, 0x17, 0x1b, 0x89, + 0x40, 0x92, 0xb8, 0x40, 0xb3, 0x60, 0x48, 0x7f, 0x9e, 0xcb, 0x51, 0x00, 0xec, 0x90, 0x86, 0xf0, + 0x86, 0x93, 0x85, 0x1b, 0xfd, 0x6a, 0xe0, 0xaf, 0xd8, 0xb2, 0x45, 0x3a, 0xdb, 0x6c, 0x4a, 0x24, + 0x0e, 0xab, 0x87, 0x4c, 0x1d, 0x1e, 0x06, 0x0d, 0x0e, 0x32, 0xdc, 0x02, 0x6d, 0x69, 0xd2, 0x70, + 0xf2, 0xfb, 0xeb, 0xae, 0xde, 0x24, 0xe3, 0x0f, 0xa3, 0x4f, 0xa5, 0x60, 0xba, 0x34, 0xbc, 0xb9, + 0xd4, 0xbb, 0x7a, 0xbb, 0x0c, 0xa2, 0xd9, 0x96, 0x20, 0x21, 0xd5, 0x6e, 0x7f, 0xfb, 0xcf, 0x52, + 0x88, 0x0e, 0xc7, 0xd1, 0x7c, 0x53, 0x06, 0xd1, 0x01, 0x62, 0x90, 0x5c, 0x4d, 0x2f, 0x85, 0x00, + 0x3a, 0x4e, 0xaf, 0x4f, 0x75, 0xad, 0x59, 0x0a, 0xd1, 0x94, 0x86, 0x17, 0xd7, 0x6f, 0xbb, 0x5d, + 0xed, 0x75, 0x29, 0x48, 0x9b, 0x81, 0xbc, 0xee, 0x6a, 0xad, 0x52, 0x90, 0x96, 0x34, 0xbc, 0x7e, + 0xd3, 0xd5, 0x4b, 0x01, 0xf4, 0x37, 0x9c, 0x54, 0x5d, 0x27, 0x9f, 0x16, 0x4e, 0x44, 0xcb, 0xe0, + 0xda, 0xb0, 0xa4, 0x2b, 0xaf, 0x71, 0x35, 0x9b, 0x95, 0x42, 0xc0, 0x92, 0xae, 0x3f, 0x5d, 0x1e, + 0x40, 0xd3, 0xe4, 0x40, 0x67, 0x67, 0x37, 0xa5, 0x20, 0x2d, 0x0e, 0x02, 0xdb, 0x58, 0x0a, 0xd2, + 0x4e, 0x40, 0x4a, 0x77, 0xba, 0xdd, 0x49, 0x60, 0xaa, 0xd9, 0xd9, 0xfe, 0x7a, 0x68, 0x59, 0x47, + 0xb5, 0xda, 0x16, 0xf0, 0xeb, 0x14, 0xf8, 0x6d, 0x06, 0xba, 0x56, 0x03, 0x70, 0xfa, 0x6a, 0x03, + 0x12, 0x9d, 0x1f, 0xd0, 0x05, 0x76, 0xbc, 0x7d, 0x7b, 0x8d, 0x03, 0x88, 0xec, 0xd1, 0xe8, 0xde, + 0x0f, 0x6e, 0x95, 0x74, 0x0e, 0xaf, 0x70, 0x96, 0x2e, 0x70, 0xe8, 0x9d, 0x5e, 0x6f, 0xe9, 0xc5, + 0xc3, 0xf8, 0x64, 0xbb, 0x53, 0x01, 0xcb, 0x4e, 0x83, 0xa8, 0xf6, 0x07, 0x8d, 0x4a, 0xa7, 0xdb, + 0x1e, 0xd2, 0x4d, 0xa8, 0xfb, 0x54, 0x0c, 0xdf, 0xe0, 0x6a, 0x35, 0x44, 0x13, 0x0e, 0x5f, 0x51, + 0xb9, 0x1d, 0xdb, 0x90, 0x2c, 0x9f, 0x6b, 0x2a, 0xb3, 0xc9, 0x86, 0x24, 0x8c, 0x72, 0x4f, 0x84, + 0x08, 0xc3, 0x33, 0x8c, 0x01, 0xc8, 0x55, 0x60, 0xd3, 0x60, 0x47, 0xc9, 0xcf, 0xae, 0xd8, 0xd0, + 0x5d, 0x62, 0x80, 0x53, 0x1f, 0xc6, 0xa3, 0x72, 0x62, 0x81, 0x29, 0xd9, 0xad, 0xde, 0x79, 0x0f, + 0xcb, 0x1f, 0x8d, 0x3f, 0x94, 0xbf, 0x07, 0x71, 0x19, 0x8f, 0xf6, 0xbc, 0x07, 0x59, 0x19, 0x7d, + 0x18, 0x97, 0xbf, 0x07, 0x39, 0xf9, 0x30, 0x1a, 0x17, 0x32, 0xa7, 0x01, 0x7c, 0xc9, 0xb2, 0xc7, + 0x76, 0xe6, 0xb8, 0xc8, 0xfb, 0x1d, 0x06, 0x31, 0x07, 0x35, 0x9c, 0xdc, 0x9b, 0xab, 0x1e, 0xc9, + 0xb3, 0xe5, 0x93, 0x60, 0xcb, 0x2e, 0x53, 0xfe, 0x80, 0x31, 0xa5, 0x5a, 0x09, 0x4a, 0x49, 0x8e, + 0x49, 0xa9, 0x02, 0x34, 0xf9, 0xfb, 0x0f, 0xa5, 0x66, 0x8e, 0xbf, 0x4f, 0x57, 0x55, 0xb8, 0x26, + 0xfc, 0x13, 0xae, 0x4c, 0x8f, 0xad, 0x6d, 0x15, 0xda, 0x9c, 0x52, 0x5e, 0x05, 0x81, 0x01, 0xf0, + 0x66, 0x48, 0x06, 0xfc, 0x68, 0x16, 0x5b, 0x57, 0x0c, 0xc9, 0x5b, 0x2f, 0xa7, 0x34, 0x90, 0x62, + 0xb3, 0x3e, 0xe1, 0xc2, 0x82, 0xa3, 0xdd, 0x90, 0x7f, 0x16, 0xfe, 0xc0, 0x25, 0x3c, 0x9d, 0x90, + 0x08, 0xe6, 0x23, 0xb0, 0x5a, 0x0c, 0xef, 0x50, 0x01, 0xde, 0xe8, 0x52, 0x4c, 0xe3, 0xcf, 0x4f, + 0xb1, 0x1f, 0x37, 0x15, 0xe6, 0x1c, 0xd8, 0x4c, 0xe0, 0x4b, 0x32, 0x89, 0x08, 0x22, 0xfd, 0x62, + 0xa0, 0xab, 0xe8, 0xe3, 0x81, 0x45, 0x5f, 0x22, 0x71, 0xd9, 0x93, 0x34, 0x86, 0xc7, 0xde, 0x34, + 0x5c, 0xf5, 0x77, 0xb7, 0xc7, 0x2a, 0x95, 0xdf, 0x0b, 0xe6, 0x13, 0x7b, 0x7b, 0x17, 0x75, 0x96, + 0x5f, 0x88, 0x58, 0x81, 0x2e, 0x56, 0xc0, 0x22, 0xce, 0xeb, 0xd1, 0x46, 0x4a, 0x77, 0x2a, 0x25, + 0x29, 0x59, 0x02, 0xd2, 0x2a, 0x01, 0x85, 0x9c, 0xd9, 0x42, 0xc7, 0x1a, 0x3b, 0x1c, 0xd7, 0x04, + 0xc7, 0x59, 0xcd, 0xfa, 0x25, 0x0c, 0xd7, 0x38, 0x6d, 0xc9, 0x84, 0xb1, 0xf7, 0xdd, 0x72, 0xad, + 0x8a, 0xd4, 0xc8, 0x4f, 0xa4, 0x8b, 0x89, 0xc4, 0x1c, 0xfb, 0xa6, 0xd0, 0x73, 0xcb, 0x3f, 0x88, + 0xb9, 0xf9, 0x72, 0xcc, 0xcd, 0x1f, 0xc3, 0xdc, 0x7a, 0x39, 0xe6, 0xd6, 0x8f, 0x61, 0x6e, 0xbf, + 0x1c, 0x73, 0xfb, 0x25, 0x98, 0xb7, 0xc4, 0x2f, 0x28, 0x15, 0x3f, 0x14, 0x84, 0x94, 0x0e, 0x88, + 0xc5, 0x39, 0x1d, 0x71, 0xf5, 0x52, 0xd0, 0xb3, 0x25, 0x9e, 0xac, 0x7c, 0x38, 0xf5, 0x1f, 0x62, + 0x9a, 0xce, 0x3e, 0xc6, 0xd4, 0x17, 0x1b, 0xa7, 0x70, 0xef, 0xf4, 0x93, 0x5b, 0x67, 0x45, 0x66, + 0x4e, 0x00, 0x11, 0x3f, 0xc6, 0x95, 0x7b, 0x55, 0x61, 0x72, 0xc1, 0x57, 0x9f, 0x53, 0x61, 0xc8, + 0x75, 0xa4, 0xd4, 0x88, 0x6d, 0x89, 0x7c, 0x29, 0x51, 0xb3, 0xbd, 0x44, 0x41, 0x50, 0x41, 0xc6, + 0x74, 0x16, 0xd0, 0x30, 0xd5, 0x4d, 0xc6, 0xa1, 0x19, 0x27, 0xa0, 0x98, 0x11, 0xe3, 0xf7, 0xfb, + 0x19, 0x61, 0xee, 0x9d, 0xf3, 0x74, 0x1d, 0xf9, 0x35, 0xc8, 0xf5, 0xad, 0xb5, 0x6b, 0x46, 0x94, + 0xdc, 0x63, 0xd0, 0x82, 0xad, 0xa6, 0x90, 0xa9, 0xb8, 0x64, 0x16, 0xf8, 0x4b, 0x74, 0x9e, 0x3d, + 0xbe, 0x63, 0x59, 0x7b, 0x7e, 0xfa, 0xa9, 0xc8, 0x9e, 0x6b, 0xfb, 0xac, 0xb9, 0x3e, 0x1c, 0x05, + 0xce, 0x7c, 0x11, 0xd1, 0xa0, 0x04, 0xa0, 0x39, 0x3c, 0xb5, 0x2c, 0x6c, 0x8e, 0x2b, 0xc3, 0xd0, + 0x1a, 0xbe, 0x5d, 0x9b, 0x6e, 0xc9, 0xcb, 0x36, 0xa4, 0xe4, 0x0f, 0xbb, 0x86, 0x9e, 0x5b, 0xc7, + 0x84, 0x39, 0xec, 0xef, 0xb7, 0xbe, 0x03, 0xb9, 0x58, 0x48, 0x83, 0xe8, 0xd4, 0xfe, 0x6e, 0x5a, + 0x90, 0x3d, 0x60, 0x52, 0x26, 0x4b, 0x53, 0x0a, 0x79, 0x20, 0xa5, 0x9e, 0x0d, 0x19, 0xa6, 0xb2, + 0x11, 0x99, 0x81, 0x1c, 0x7d, 0xae, 0xd5, 0xcc, 0x2f, 0xf5, 0x00, 0xf2, 0xf1, 0x3b, 0x8a, 0xcd, + 0x83, 0x35, 0x53, 0x14, 0x80, 0xaa, 0x3b, 0x69, 0x9b, 0x39, 0x48, 0x52, 0x8b, 0x9a, 0x5e, 0x5c, + 0x53, 0xa8, 0xed, 0x0e, 0x1a, 0xee, 0x96, 0x1f, 0xbc, 0xe7, 0x67, 0x76, 0x34, 0x9d, 0x4b, 0x81, + 0xce, 0xae, 0x2e, 0x65, 0x60, 0x32, 0xe4, 0x40, 0x78, 0x12, 0xab, 0xc5, 0x9d, 0x59, 0xe5, 0x69, + 0x90, 0xe5, 0x2f, 0xbf, 0xc2, 0xc3, 0xe0, 0x11, 0xe6, 0xcc, 0x26, 0x42, 0x90, 0x6b, 0x60, 0xa9, + 0x4d, 0xa4, 0x3b, 0xb9, 0xa4, 0x26, 0x1d, 0xb2, 0x2f, 0xb5, 0x21, 0xdc, 0x3b, 0xee, 0x53, 0x9b, + 0x7f, 0x64, 0xdc, 0xe2, 0xc3, 0x8b, 0xdc, 0xe2, 0xeb, 0x4e, 0xa7, 0xd5, 0xc9, 0xf8, 0x45, 0xba, + 0xd9, 0x52, 0xac, 0x8c, 0xdf, 0x33, 0x24, 0x29, 0x71, 0x7c, 0x2f, 0x70, 0x67, 0xff, 0x38, 0xcb, + 0x10, 0x63, 0xed, 0x75, 0x6d, 0xdb, 0x54, 0x78, 0x9b, 0xdc, 0xac, 0xdb, 0xaa, 0x2e, 0x14, 0xee, + 0x87, 0x22, 0x45, 0x46, 0x85, 0x08, 0x31, 0x05, 0x7d, 0xff, 0xff, 0xa2, 0xc6, 0x58, 0xd9, 0x98, + 0xed, 0x10, 0x6a, 0x27, 0x8e, 0x32, 0xb9, 0x84, 0x39, 0x34, 0x64, 0x35, 0x91, 0xbd, 0x7a, 0xe8, + 0x08, 0x55, 0x7b, 0xf0, 0xa5, 0xaa, 0x19, 0x17, 0x60, 0x23, 0x75, 0x1a, 0x79, 0xa8, 0x0c, 0x20, + 0x8b, 0xa2, 0x85, 0x23, 0xd5, 0x13, 0xd0, 0x53, 0x7c, 0x55, 0xd2, 0x08, 0x5a, 0xac, 0x1c, 0xa0, + 0x51, 0x49, 0x0b, 0x9d, 0x76, 0x64, 0xe0, 0xb9, 0x9c, 0x4c, 0x3f, 0x7b, 0x35, 0x3d, 0xa3, 0xf6, + 0x62, 0x4a, 0x78, 0xc8, 0xa7, 0x54, 0xb2, 0x53, 0x86, 0x34, 0x62, 0xca, 0xa9, 0x3c, 0xa1, 0xc5, + 0xd8, 0x6a, 0x1a, 0xa7, 0xfc, 0x58, 0x02, 0x9b, 0x28, 0x28, 0x96, 0xf8, 0x5e, 0x44, 0x92, 0x42, + 0x93, 0xa9, 0xfb, 0x62, 0xea, 0x5c, 0xbb, 0x2c, 0x7f, 0x04, 0x13, 0x26, 0x3c, 0x05, 0x03, 0xb1, + 0xdb, 0x11, 0x35, 0xc8, 0xd3, 0x52, 0x6c, 0x92, 0x70, 0x34, 0x4c, 0xb6, 0x3b, 0x7a, 0xd7, 0x30, + 0xe5, 0xec, 0xd1, 0x28, 0xf2, 0x78, 0xbf, 0x6e, 0x6c, 0x89, 0x18, 0x36, 0x20, 0x2d, 0xcc, 0x16, + 0xbb, 0x54, 0xc7, 0xc0, 0xca, 0x7d, 0x75, 0xc2, 0x8e, 0x38, 0xea, 0xe8, 0x54, 0xce, 0x16, 0x66, + 0x70, 0xe6, 0xdb, 0x54, 0xc6, 0xaa, 0x95, 0x76, 0xd2, 0xee, 0xf6, 0x3a, 0x1d, 0xa5, 0x0a, 0x7c, + 0x32, 0xab, 0xc6, 0xb7, 0xd1, 0x3a, 0x8a, 0x7c, 0xd6, 0x94, 0xb7, 0xe1, 0x6d, 0x0c, 0xfb, 0x14, + 0xfb, 0xe7, 0x27, 0x67, 0xb3, 0x13, 0x8e, 0xc4, 0xaa, 0xfd, 0x10, 0xe6, 0xf5, 0x78, 0xf8, 0x4d, + 0xc5, 0x09, 0x84, 0x4b, 0xc8, 0xf9, 0xb3, 0x9f, 0x9f, 0xa4, 0xd1, 0xbb, 0x17, 0xd1, 0x98, 0xa0, + 0xd9, 0xd1, 0x54, 0x20, 0x59, 0x33, 0xf0, 0x74, 0x34, 0xae, 0xd5, 0x60, 0xff, 0xc5, 0x66, 0xf8, + 0x56, 0x9c, 0x0f, 0x24, 0x4a, 0x52, 0x38, 0xbc, 0x89, 0xc3, 0x9b, 0x05, 0xc3, 0xaf, 0xd7, 0xe1, + 0x62, 0xca, 0x58, 0xb2, 0x1f, 0x41, 0x0b, 0x11, 0xb4, 0x4a, 0x10, 0x10, 0x47, 0x1c, 0x16, 0xef, + 0xc7, 0xd1, 0x46, 0x1c, 0xed, 0x02, 0x1c, 0x13, 0xd6, 0xae, 0xb6, 0x7f, 0x70, 0x07, 0x07, 0x77, + 0x8a, 0x08, 0x38, 0x1f, 0x93, 0x90, 0x7a, 0xa1, 0x1f, 0xec, 0x47, 0xf0, 0x1a, 0x11, 0xbc, 0x2e, + 0x40, 0x70, 0xe3, 0xaf, 0x0f, 0x4d, 0xfe, 0x2b, 0x8e, 0xfd, 0xb5, 0x60, 0xec, 0xa9, 0x67, 0xba, + 0xfe, 0x7c, 0xff, 0xe0, 0x2e, 0x0e, 0xee, 0x96, 0x0e, 0x2e, 0x61, 0x9e, 0x94, 0x98, 0x3a, 0x89, + 0x23, 0x65, 0x21, 0xad, 0x70, 0x04, 0x10, 0xc7, 0xc0, 0x7a, 0x7b, 0x64, 0xe5, 0x3b, 0x1e, 0x44, + 0x3c, 0x7d, 0x26, 0xa3, 0xac, 0x35, 0x44, 0xc2, 0x8b, 0x18, 0xaf, 0x50, 0x6e, 0x5f, 0x29, 0xb1, + 0x0f, 0x3b, 0xfe, 0xe9, 0xa1, 0xf9, 0xab, 0xde, 0xe9, 0xc7, 0xa1, 0x38, 0x98, 0x4c, 0x71, 0xa2, + 0xb1, 0xad, 0x4c, 0x86, 0x99, 0x69, 0x33, 0x9d, 0xbb, 0x13, 0x07, 0x4d, 0x80, 0x9c, 0xbb, 0xc4, + 0x42, 0x95, 0xe7, 0x67, 0x39, 0x7f, 0x8d, 0x65, 0xbb, 0xcf, 0x2d, 0xb9, 0x12, 0xf1, 0x84, 0x86, + 0x89, 0x1b, 0xca, 0x23, 0x1d, 0xe3, 0x8a, 0x3e, 0xb8, 0xb3, 0xfd, 0x55, 0xd5, 0xd8, 0x4e, 0x7a, + 0x78, 0xfc, 0xbe, 0x7b, 0xba, 0xc5, 0x0c, 0xa4, 0xf2, 0x03, 0x25, 0x65, 0x2f, 0x5f, 0x19, 0x3e, + 0x2a, 0x38, 0x31, 0xf3, 0x62, 0x7c, 0x68, 0x96, 0xb1, 0x3f, 0x32, 0x9b, 0x1b, 0x7b, 0x5f, 0xb0, + 0x22, 0x2c, 0x8e, 0xbc, 0x42, 0x4d, 0x02, 0x20, 0x6d, 0x17, 0x09, 0x1e, 0x61, 0x95, 0xe3, 0xd0, + 0x18, 0x0e, 0xce, 0xf1, 0xd0, 0xc9, 0x34, 0x50, 0x52, 0x35, 0x66, 0x72, 0xca, 0xbc, 0xf5, 0x0a, + 0x6f, 0x7a, 0xbc, 0x77, 0x5c, 0xbc, 0x38, 0x23, 0xfa, 0x6f, 0x3d, 0x7a, 0x4f, 0xfe, 0x71, 0x79, + 0xf1, 0x5b, 0x14, 0xad, 0xc6, 0x10, 0x2b, 0xd0, 0x30, 0xea, 0x7b, 0xe5, 0x97, 0x53, 0x32, 0x57, + 0x26, 0xd2, 0x0b, 0x1d, 0xd1, 0xc2, 0x09, 0xc1, 0xe4, 0x87, 0x2b, 0x1f, 0x3c, 0xe2, 0x0d, 0x7d, + 0x88, 0x54, 0xf6, 0x04, 0xc8, 0x8c, 0xd6, 0xac, 0x4f, 0x03, 0x16, 0xa9, 0x80, 0xa7, 0x2a, 0xbf, + 0x9a, 0x92, 0xe2, 0xa5, 0x59, 0xc4, 0xd8, 0x46, 0x6c, 0x5a, 0xb7, 0xea, 0x51, 0x8c, 0x80, 0xdf, + 0x2b, 0xba, 0xbe, 0x82, 0xdd, 0x54, 0xa5, 0x06, 0x5f, 0x8e, 0x38, 0x2e, 0x89, 0xd8, 0x4a, 0xde, + 0xfb, 0xc1, 0x12, 0x3b, 0xd1, 0x92, 0x76, 0x46, 0x71, 0xf1, 0x46, 0x96, 0xb0, 0x89, 0x59, 0x74, + 0xd5, 0xb2, 0x7e, 0x66, 0xbc, 0xeb, 0x12, 0x02, 0xfb, 0xf0, 0xba, 0x8b, 0x57, 0x0f, 0x11, 0x26, + 0x52, 0xd4, 0x82, 0x7e, 0xe7, 0xa3, 0xad, 0x6b, 0x45, 0x67, 0xb3, 0x79, 0xc2, 0x3d, 0x35, 0xea, + 0x4b, 0xf1, 0x4b, 0x09, 0xb4, 0x10, 0xcc, 0x3c, 0x78, 0x49, 0x71, 0x09, 0x0a, 0xf9, 0x3c, 0xa6, + 0x26, 0x04, 0x50, 0x27, 0xb0, 0x12, 0x36, 0xdf, 0x09, 0x4d, 0xe6, 0x3d, 0x91, 0xd1, 0x73, 0x27, + 0x54, 0xc8, 0x82, 0xfe, 0x64, 0x0c, 0x76, 0x64, 0xe1, 0x74, 0x46, 0x96, 0x35, 0xbc, 0x9b, 0x91, + 0xd6, 0x41, 0x00, 0x40, 0x28, 0x91, 0xe7, 0x6b, 0x37, 0x12, 0xcb, 0x67, 0x0d, 0xfa, 0x4c, 0x78, + 0x64, 0x8f, 0x55, 0xff, 0xa3, 0xfa, 0xe2, 0x9e, 0x9d, 0xaf, 0xe0, 0x07, 0x90, 0x7d, 0x3b, 0xd5, + 0x19, 0xec, 0x83, 0x34, 0xc1, 0x37, 0x80, 0xd7, 0xaa, 0x2a, 0xf1, 0x09, 0x05, 0x48, 0x73, 0x3f, + 0x06, 0xc5, 0xe0, 0xa6, 0x0e, 0xd0, 0xef, 0x4c, 0x6b, 0x21, 0x0b, 0x4f, 0x69, 0x0c, 0x9f, 0x62, + 0x50, 0x9d, 0xc7, 0x05, 0x29, 0x2a, 0x5a, 0x5f, 0x39, 0x5e, 0xac, 0x5f, 0x88, 0xb4, 0x48, 0x6b, + 0xbe, 0xb1, 0x74, 0x14, 0xfd, 0xd9, 0xb7, 0x4c, 0xc7, 0x15, 0x1b, 0xfa, 0xd9, 0xfc, 0xd2, 0x2f, + 0x3d, 0x82, 0xf1, 0x72, 0xd0, 0xc8, 0x64, 0xb5, 0xf4, 0x68, 0x28, 0x0f, 0xcb, 0x34, 0x45, 0x7d, + 0x49, 0x03, 0x2c, 0x8f, 0xa2, 0x8a, 0x41, 0xcf, 0xae, 0xb6, 0x41, 0x7d, 0x0c, 0x8b, 0xd5, 0x97, + 0xf4, 0xc7, 0x22, 0x11, 0x90, 0xb1, 0x17, 0xc3, 0x8e, 0xdf, 0xc7, 0xb0, 0x89, 0xd6, 0xc2, 0x9e, + 0xce, 0x4a, 0xa8, 0xf8, 0x58, 0x04, 0x7c, 0xb7, 0x51, 0x36, 0xf1, 0x16, 0x43, 0x30, 0x04, 0x26, + 0x22, 0x09, 0xe9, 0xf0, 0x36, 0x14, 0x7f, 0x9a, 0xec, 0x24, 0xe5, 0x7b, 0xc8, 0xe2, 0x2f, 0xc1, + 0x1c, 0xbe, 0x6e, 0xb1, 0x24, 0xa6, 0x66, 0x6c, 0x14, 0x58, 0xef, 0x38, 0xc9, 0x8a, 0xbf, 0xf7, + 0x4f, 0x83, 0xc0, 0x7c, 0xac, 0x3b, 0x21, 0xfb, 0x2b, 0xb3, 0x44, 0x54, 0x89, 0x5b, 0x15, 0x77, + 0xac, 0xbd, 0x04, 0xb1, 0xa9, 0x53, 0x2e, 0x46, 0x18, 0x80, 0xe1, 0xb4, 0xb8, 0xf7, 0xa8, 0x84, + 0x6c, 0x5b, 0xf1, 0x72, 0x55, 0xe1, 0xda, 0x6f, 0x6e, 0xa4, 0x0c, 0x4b, 0x9d, 0x7a, 0x14, 0x6d, + 0x18, 0x55, 0x4e, 0x50, 0xd6, 0xd7, 0x77, 0x3e, 0xce, 0x8e, 0x10, 0xc0, 0x38, 0x5b, 0xf1, 0x04, + 0xe7, 0x37, 0x45, 0xe0, 0x8c, 0x26, 0xce, 0x8f, 0x80, 0x42, 0x58, 0x59, 0x36, 0xd9, 0xf8, 0x62, + 0x67, 0x34, 0x83, 0x2f, 0x9f, 0x6f, 0x7c, 0x29, 0xe5, 0xb6, 0x32, 0x33, 0x06, 0x5c, 0x76, 0x9c, + 0x19, 0xa8, 0xa8, 0xe2, 0xa6, 0x7d, 0x1a, 0xa2, 0x51, 0x05, 0xad, 0x56, 0x7a, 0xe2, 0x62, 0xde, + 0xb5, 0x4b, 0xb1, 0x51, 0x5d, 0xc4, 0x81, 0x26, 0x41, 0xdd, 0x67, 0xb7, 0xf7, 0x78, 0x65, 0xe8, + 0x48, 0x4a, 0x20, 0x6f, 0xc0, 0x12, 0x93, 0x69, 0xe0, 0xdf, 0x43, 0xae, 0x42, 0x6c, 0x9f, 0x86, + 0x78, 0xa7, 0x08, 0x4f, 0x9e, 0xfd, 0x00, 0xc2, 0xd2, 0x05, 0x25, 0xdf, 0x98, 0x09, 0xfa, 0x46, + 0x56, 0x01, 0x18, 0x57, 0xf0, 0x28, 0x18, 0xe6, 0x33, 0x4c, 0x2c, 0x72, 0x0d, 0xf1, 0x4a, 0x05, + 0x4d, 0x9b, 0x53, 0x53, 0xb4, 0x94, 0x43, 0x9d, 0x5e, 0x9f, 0x13, 0x27, 0x8b, 0x94, 0x55, 0x51, + 0x49, 0x94, 0x9d, 0xf6, 0x11, 0x4c, 0x55, 0xf6, 0xea, 0xe7, 0x04, 0xbc, 0x87, 0x84, 0xa3, 0x7b, + 0x60, 0x33, 0x85, 0xb1, 0x74, 0x7d, 0x8b, 0x5d, 0x14, 0xa9, 0x03, 0x1d, 0x91, 0x6f, 0xf9, 0x2e, + 0xf6, 0x4d, 0xe3, 0x85, 0x55, 0x4d, 0x95, 0xd9, 0xb5, 0x57, 0x03, 0x21, 0xdc, 0x49, 0xe4, 0x07, + 0xe6, 0x9c, 0x22, 0x4b, 0xcf, 0x23, 0xba, 0x44, 0xbf, 0x64, 0x9d, 0xaf, 0x20, 0xe7, 0x80, 0xc0, + 0x81, 0x83, 0xc1, 0xf8, 0xe5, 0x0a, 0x28, 0x44, 0x4b, 0x4a, 0x2e, 0x21, 0x0a, 0xae, 0x13, 0xc1, + 0x2d, 0x8a, 0xe1, 0x0c, 0xf9, 0x84, 0x1d, 0x0a, 0xe7, 0xd7, 0xc0, 0x22, 0x35, 0x87, 0x31, 0xcc, + 0x63, 0x54, 0x19, 0x36, 0x45, 0x41, 0x28, 0x76, 0x95, 0x14, 0xd1, 0x9f, 0xb0, 0x2b, 0xb2, 0xbd, + 0x46, 0x43, 0xaa, 0xb2, 0xd7, 0xd8, 0xae, 0x50, 0x4d, 0xaf, 0xb9, 0x36, 0xc2, 0xfa, 0xf7, 0xf0, + 0x64, 0x65, 0x34, 0xd1, 0x69, 0x28, 0x9b, 0x0a, 0xc4, 0x44, 0xfc, 0xf2, 0xf0, 0x80, 0x85, 0x56, + 0xc3, 0xff, 0x70, 0x96, 0x8c, 0xed, 0xeb, 0xc0, 0x05, 0x67, 0xcd, 0x7b, 0x32, 0x42, 0x3c, 0xee, + 0x07, 0x40, 0x06, 0x30, 0x68, 0xf0, 0x5b, 0xd3, 0x78, 0x63, 0x94, 0x08, 0xf3, 0x2f, 0x4d, 0x58, + 0x59, 0x0e, 0x94, 0x68, 0x59, 0x61, 0xe9, 0x37, 0x7e, 0xfa, 0x1a, 0x26, 0x25, 0xbe, 0x19, 0x24, + 0xff, 0x34, 0x5a, 0xf8, 0x58, 0x17, 0xf5, 0x43, 0xbc, 0xcc, 0x9c, 0x29, 0x89, 0x44, 0x3e, 0xb0, + 0xe3, 0x3e, 0xff, 0x6c, 0x41, 0xdd, 0xd5, 0x48, 0x1a, 0x56, 0x06, 0x3c, 0x34, 0x17, 0xb9, 0x09, + 0xff, 0x92, 0x89, 0xf5, 0x7e, 0xc3, 0x69, 0x4f, 0x06, 0x0d, 0xfe, 0x22, 0x29, 0x84, 0x17, 0x8d, + 0xa9, 0x24, 0x83, 0x46, 0x38, 0x68, 0x04, 0x2e, 0x3b, 0x1d, 0x97, 0x1b, 0x21, 0xae, 0x31, 0x0c, + 0x27, 0xe6, 0x1d, 0x4d, 0x41, 0x16, 0x71, 0x9a, 0x3d, 0x58, 0x34, 0x87, 0x15, 0xdc, 0x9f, 0x63, + 0x73, 0xb9, 0xea, 0x93, 0xdf, 0xcc, 0x00, 0x9b, 0x58, 0x50, 0xce, 0xa3, 0xf5, 0x0a, 0x98, 0xd3, + 0x84, 0x78, 0x3a, 0x32, 0xdd, 0xb8, 0xf0, 0x99, 0x14, 0x62, 0x5d, 0x8b, 0x91, 0x2a, 0xca, 0xef, + 0x69, 0x9d, 0xd8, 0xc2, 0x65, 0xa6, 0x81, 0xe9, 0xc0, 0x19, 0x8e, 0x29, 0x98, 0x43, 0xd0, 0x44, + 0x1b, 0xc4, 0x74, 0xe5, 0xdf, 0x83, 0x3c, 0x88, 0x2e, 0x0c, 0x6c, 0xa3, 0x98, 0xf2, 0x22, 0x5f, + 0x18, 0xf1, 0x62, 0x62, 0x6f, 0xd0, 0x70, 0xf8, 0xb8, 0xa9, 0x28, 0xfa, 0x56, 0xf8, 0x31, 0xcb, + 0x3a, 0x9d, 0x0d, 0xdb, 0x56, 0xf2, 0x45, 0x61, 0xd6, 0x30, 0x21, 0x4a, 0x07, 0xc9, 0xcc, 0x95, + 0x77, 0x1e, 0x26, 0x52, 0xc4, 0x5c, 0x43, 0xb0, 0x0b, 0x72, 0x6e, 0x89, 0xb9, 0x3c, 0x1a, 0x86, + 0xc4, 0xc5, 0xeb, 0xa3, 0x34, 0x38, 0x50, 0x35, 0x3e, 0x1d, 0x51, 0xc1, 0x6a, 0x91, 0x2f, 0x8a, + 0xeb, 0x31, 0xbc, 0x32, 0xc4, 0x6e, 0xcf, 0xf0, 0x59, 0xe3, 0x22, 0x2a, 0x5e, 0x49, 0xc2, 0xc2, + 0x22, 0x5e, 0x86, 0x27, 0x67, 0xeb, 0x20, 0x00, 0xf9, 0x4f, 0xe6, 0x10, 0x57, 0xe0, 0x2f, 0x4f, + 0xa5, 0xad, 0xdc, 0x74, 0xab, 0xb4, 0xd4, 0xec, 0xa4, 0x25, 0x2e, 0x4d, 0xdb, 0x29, 0x17, 0x27, + 0xe5, 0xa5, 0x61, 0x85, 0x2c, 0x4f, 0xf3, 0xd3, 0xa7, 0x37, 0x2c, 0x92, 0xcc, 0x02, 0x4b, 0x4a, + 0x3d, 0xde, 0x58, 0xd4, 0xcf, 0x1f, 0xbc, 0x55, 0x8e, 0x7f, 0x7a, 0xd3, 0xed, 0x76, 0xfb, 0xe4, + 0x9f, 0xfe, 0x3a, 0xc8, 0xef, 0x0c, 0x48, 0xf0, 0x1d, 0x16, 0x00, 0xc8, 0x02, 0x38, 0x46, 0x2c, + 0xbe, 0x90, 0x3a, 0xe3, 0xea, 0x8d, 0x4f, 0x40, 0xa5, 0xe0, 0x3d, 0x65, 0xa6, 0x2c, 0x34, 0x67, + 0x94, 0x1b, 0xb0, 0x47, 0xc4, 0xc2, 0xa4, 0x46, 0x45, 0xc0, 0x15, 0x37, 0x00, 0xeb, 0x10, 0xe1, + 0x40, 0x50, 0x89, 0x85, 0xfc, 0x0a, 0xd9, 0xbb, 0xca, 0x12, 0x42, 0x28, 0x07, 0x20, 0xc4, 0xac, + 0x8e, 0xf7, 0x9d, 0x8a, 0x7b, 0xb9, 0x98, 0x00, 0x85, 0xc4, 0xf4, 0x6c, 0xb0, 0xb0, 0x33, 0x18, + 0x7c, 0x94, 0x16, 0x84, 0x40, 0x94, 0x2a, 0xa7, 0xf1, 0x66, 0x9a, 0x2e, 0x90, 0xc9, 0x76, 0x31, + 0xcc, 0xee, 0x6b, 0xe4, 0x63, 0xb1, 0xf0, 0x11, 0x58, 0xea, 0x87, 0xec, 0x46, 0x1b, 0xd2, 0xc8, + 0xc0, 0x38, 0xf5, 0xbf, 0x53, 0xba, 0x22, 0x66, 0x44, 0x8e, 0x21, 0x84, 0xd3, 0x4f, 0x89, 0x33, + 0xe3, 0x14, 0x60, 0x6f, 0x14, 0xeb, 0x7e, 0xb2, 0x81, 0xb1, 0x56, 0x84, 0xb2, 0x89, 0xc5, 0x6c, + 0x1c, 0x9c, 0xb6, 0x1f, 0x31, 0x52, 0x2a, 0xe7, 0x6c, 0xa5, 0xec, 0xfe, 0x65, 0x72, 0x11, 0x0e, + 0x3c, 0x05, 0x0d, 0x20, 0xf9, 0xcb, 0x31, 0x51, 0x15, 0xc6, 0x0f, 0x29, 0xc4, 0x2b, 0xdc, 0xde, + 0x9c, 0x93, 0x20, 0x0b, 0xb9, 0x20, 0x20, 0xf4, 0x78, 0x61, 0x1a, 0xb4, 0x62, 0x1d, 0x82, 0x35, + 0x8c, 0x95, 0x4b, 0x48, 0xc3, 0x0a, 0x6d, 0xc8, 0xda, 0xbb, 0xf5, 0xfc, 0x7b, 0x4f, 0x48, 0xb5, + 0x92, 0x2a, 0x47, 0xc0, 0x75, 0xf6, 0xce, 0x77, 0x23, 0xbc, 0xfb, 0x2d, 0x5f, 0x62, 0x1f, 0x98, + 0xd8, 0x27, 0xa6, 0x57, 0x26, 0x41, 0xe2, 0x80, 0xc3, 0x00, 0xa6, 0x14, 0x54, 0xe4, 0x59, 0xcf, + 0xd5, 0x96, 0x6c, 0xe3, 0xcd, 0xb6, 0x9d, 0x33, 0x57, 0x3c, 0xb9, 0x88, 0xd3, 0x5c, 0x23, 0x4d, + 0x78, 0x87, 0xc0, 0x13, 0x71, 0x29, 0x8b, 0xc8, 0x9d, 0xce, 0xf2, 0x54, 0xa9, 0x94, 0x1e, 0xab, + 0x76, 0x18, 0x34, 0x9d, 0xcd, 0x1c, 0x0b, 0x3b, 0xfa, 0x88, 0xdc, 0x42, 0xf8, 0x7d, 0x3d, 0x29, + 0x15, 0x6c, 0xdf, 0x92, 0x5b, 0xda, 0x1e, 0x30, 0x3c, 0x52, 0x19, 0x8a, 0x66, 0x2f, 0x59, 0x6f, + 0xee, 0x81, 0xc4, 0xbe, 0x92, 0xca, 0x19, 0xcb, 0x79, 0x0b, 0x4e, 0x76, 0x73, 0x86, 0x84, 0xdf, + 0x2c, 0x2b, 0x3e, 0xa7, 0x16, 0x28, 0x78, 0xcb, 0x5d, 0xcc, 0x6a, 0xec, 0x96, 0x03, 0x0e, 0x27, + 0x3a, 0x1e, 0x33, 0x77, 0x5b, 0xc5, 0x77, 0x4f, 0x83, 0x98, 0x5d, 0x73, 0xcd, 0x72, 0xed, 0x8e, + 0x95, 0x3b, 0x3e, 0x6f, 0x4b, 0x85, 0x37, 0xe6, 0xbb, 0x93, 0x11, 0x45, 0x2f, 0x5c, 0xc3, 0x1f, + 0x73, 0xea, 0x03, 0x11, 0x4c, 0x13, 0x71, 0x7e, 0x54, 0x4b, 0x14, 0xeb, 0x7a, 0x22, 0x38, 0xc2, + 0xe4, 0xb7, 0x86, 0x95, 0x1d, 0x43, 0xdf, 0x4a, 0xed, 0x08, 0x36, 0x33, 0xb1, 0x5f, 0xe6, 0xe0, + 0x8d, 0x80, 0x61, 0x2f, 0x1e, 0x97, 0xaf, 0xef, 0xc7, 0x7e, 0xa6, 0x92, 0x77, 0x4d, 0x88, 0xa1, + 0x9a, 0xf1, 0x6a, 0x49, 0x02, 0x83, 0x1e, 0x5a, 0x1a, 0x56, 0x13, 0x27, 0x44, 0x4a, 0x5c, 0x1b, + 0x22, 0xa8, 0x15, 0x20, 0xa8, 0x09, 0x0c, 0xb5, 0x8c, 0xa7, 0x0b, 0x18, 0x9d, 0x97, 0xac, 0xfb, + 0x91, 0xfc, 0x99, 0xd5, 0x23, 0xb6, 0x10, 0xd8, 0x7a, 0x2d, 0x76, 0x47, 0xa4, 0x91, 0x7d, 0xa3, + 0x67, 0xdc, 0xd7, 0x28, 0x67, 0x45, 0x59, 0x67, 0x2a, 0xa9, 0x14, 0xd6, 0xe8, 0x6b, 0x53, 0x08, + 0x42, 0x6e, 0xfb, 0xec, 0x57, 0x50, 0x7a, 0xba, 0xa6, 0xad, 0x1e, 0xfa, 0x0b, 0x8a, 0xd6, 0x07, + 0xbe, 0xc0, 0xe7, 0x29, 0x8b, 0xe8, 0x6b, 0xd8, 0xba, 0xba, 0x0e, 0x7b, 0x4d, 0x78, 0x14, 0x9f, + 0xb4, 0x55, 0x72, 0x53, 0x64, 0x3a, 0x45, 0x7f, 0xd0, 0x50, 0x83, 0x24, 0xc1, 0x6c, 0x24, 0x58, + 0xc3, 0x32, 0x3c, 0x6e, 0xed, 0xa6, 0x8e, 0xeb, 0xa0, 0x09, 0x0e, 0x88, 0x6b, 0xce, 0x21, 0x30, + 0x0c, 0xd7, 0x34, 0x64, 0xa6, 0xe6, 0x4f, 0x30, 0x81, 0x2e, 0xb3, 0x8a, 0xa0, 0xe2, 0x24, 0xe3, + 0x4e, 0xe3, 0xd6, 0xd2, 0x61, 0x41, 0xd7, 0x67, 0xcc, 0x13, 0x34, 0x22, 0x68, 0xff, 0xa6, 0xe8, + 0x9b, 0xe9, 0x03, 0x00, 0x80, 0xee, 0x5a, 0x39, 0x7b, 0x0c, 0xe2, 0x50, 0xc9, 0xca, 0xc3, 0xa5, + 0x79, 0x4b, 0xd1, 0xf0, 0xd0, 0xf9, 0x32, 0x36, 0x43, 0x14, 0x92, 0x10, 0x81, 0xf8, 0x80, 0xaf, + 0xbd, 0x9c, 0x48, 0x9c, 0x49, 0x42, 0xcd, 0xa6, 0xeb, 0x90, 0x9f, 0xfb, 0xc0, 0x3a, 0x6d, 0xc7, + 0xa2, 0x61, 0xe9, 0xf8, 0x8c, 0x0d, 0xe3, 0xe5, 0x17, 0x56, 0x09, 0x11, 0x51, 0xbe, 0xf0, 0xd5, + 0xa1, 0xc3, 0x3d, 0x35, 0xb2, 0x64, 0xee, 0xfa, 0x53, 0x1e, 0xd0, 0xc0, 0x24, 0xb3, 0x59, 0x26, + 0x0a, 0xa8, 0x14, 0x93, 0x76, 0xf1, 0x56, 0xb8, 0xf9, 0x6d, 0xf9, 0x4f, 0x1b, 0x80, 0x60, 0xef, + 0xbe, 0xb2, 0xbd, 0xff, 0xba, 0x34, 0x57, 0x2b, 0xdc, 0x57, 0xb0, 0x17, 0xe9, 0x69, 0x0e, 0x89, + 0x4b, 0xea, 0xbd, 0xcc, 0x98, 0xf4, 0x5c, 0x63, 0xf8, 0xc3, 0xfa, 0x15, 0x57, 0xf0, 0x73, 0x4a, + 0xc2, 0x12, 0xd0, 0x97, 0x2a, 0x58, 0x5c, 0xc5, 0x4f, 0x31, 0xc4, 0x47, 0x21, 0xdb, 0x0a, 0x56, + 0x42, 0x1c, 0x2e, 0x84, 0x61, 0x62, 0x69, 0xa8, 0x80, 0x12, 0xd5, 0x6b, 0xc2, 0xca, 0x98, 0xcc, + 0x23, 0xae, 0x5d, 0xb7, 0xb6, 0x5e, 0x35, 0x20, 0xdf, 0xf0, 0x0e, 0x48, 0xc0, 0xf9, 0xb5, 0x90, + 0x00, 0x56, 0xc0, 0x05, 0xe1, 0xc3, 0xa3, 0x6d, 0xdf, 0xb5, 0x4b, 0x2a, 0xfa, 0x69, 0x7b, 0x41, + 0xce, 0xb8, 0xea, 0x18, 0x31, 0x71, 0x84, 0x90, 0xc1, 0x92, 0x4a, 0x62, 0x4f, 0x11, 0xf3, 0xf9, + 0x78, 0xdf, 0x19, 0x01, 0xc3, 0x53, 0x8b, 0x4f, 0xf6, 0xda, 0xdd, 0x84, 0xb0, 0x71, 0x4e, 0xc8, + 0xb6, 0x0f, 0x0d, 0xb6, 0x3c, 0x2b, 0xa4, 0xb5, 0xdb, 0x27, 0x0c, 0x05, 0x7d, 0x4c, 0x95, 0x31, + 0x98, 0xac, 0x88, 0x12, 0x7b, 0xbb, 0xdc, 0xbf, 0x7b, 0x62, 0xd7, 0x6c, 0xd7, 0x6e, 0xe9, 0xe3, + 0xbe, 0xce, 0x3e, 0x08, 0x7e, 0x2b, 0x02, 0x8a, 0xb5, 0x48, 0x97, 0xb7, 0x09, 0xb6, 0xb0, 0x4d, + 0x93, 0x01, 0x4e, 0xe1, 0x7b, 0x69, 0x17, 0x20, 0xe0, 0x6b, 0x1f, 0x9c, 0x15, 0xfc, 0x6f, 0x53, + 0x3f, 0x04, 0xf4, 0x1a, 0x50, 0xbd, 0x16, 0x13, 0xb2, 0x1c, 0xa5, 0x18, 0xec, 0x57, 0x69, 0xf8, + 0x86, 0x41, 0x05, 0xe5, 0xac, 0xe8, 0x02, 0x2a, 0x96, 0x74, 0x07, 0x8c, 0x75, 0x05, 0xbe, 0xbc, + 0xa0, 0xa4, 0x2e, 0x2a, 0xea, 0xa9, 0x98, 0xbf, 0xc2, 0x82, 0x3a, 0x2b, 0x55, 0xbc, 0x02, 0xc3, + 0x5a, 0x56, 0x4f, 0x3f, 0x65, 0x61, 0x30, 0x88, 0x0b, 0xdf, 0x47, 0x8c, 0x24, 0x97, 0xa6, 0xe3, + 0x25, 0xb6, 0x0d, 0x7f, 0x74, 0xe3, 0x90, 0xd9, 0xb8, 0x9c, 0x5c, 0x6d, 0xa5, 0x07, 0xac, 0x77, + 0xbb, 0x38, 0xba, 0x48, 0xaa, 0x09, 0x3d, 0x52, 0xc9, 0x09, 0x27, 0xfb, 0x7d, 0x20, 0x81, 0x91, + 0xd5, 0x53, 0x89, 0x69, 0x59, 0x74, 0x05, 0xf1, 0x42, 0x9d, 0xa1, 0x2b, 0xc9, 0x0f, 0x33, 0xaa, + 0x9a, 0xe6, 0x8a, 0xaf, 0x32, 0xc5, 0x68, 0xa9, 0xe1, 0x04, 0x1c, 0x03, 0x30, 0xe2, 0x4f, 0xf6, + 0xbc, 0x48, 0xeb, 0x4d, 0x52, 0x01, 0x3d, 0x9c, 0x19, 0x85, 0x3f, 0x54, 0xc5, 0x58, 0x3b, 0x33, + 0xc1, 0x38, 0xc3, 0xc7, 0x59, 0x00, 0xd1, 0x84, 0xdd, 0x80, 0xc8, 0x87, 0x15, 0x4a, 0x0d, 0xe9, + 0x2b, 0xec, 0xb8, 0x77, 0x2b, 0xa1, 0xd2, 0xc1, 0x5b, 0x7f, 0xd0, 0x30, 0x79, 0xe0, 0x3a, 0xc6, + 0x92, 0xcb, 0xff, 0x45, 0x0f, 0xc7, 0x17, 0xbb, 0x67, 0x77, 0x95, 0x8c, 0x1e, 0x12, 0x7e, 0xc7, + 0x71, 0xbf, 0x95, 0x19, 0x5f, 0x4a, 0x71, 0x66, 0xf9, 0x22, 0x49, 0xc1, 0x3a, 0xd3, 0xab, 0xf2, + 0x83, 0x97, 0x1d, 0x27, 0x88, 0xc1, 0x95, 0xf8, 0x95, 0x8e, 0x90, 0x45, 0x55, 0x37, 0x58, 0x13, + 0x67, 0x4e, 0x16, 0x8f, 0x41, 0x67, 0x98, 0x12, 0xf0, 0x34, 0x01, 0xac, 0x22, 0xab, 0x1b, 0x1e, + 0x92, 0xa3, 0x91, 0x10, 0x23, 0x81, 0x35, 0x93, 0xee, 0x6c, 0x85, 0x9d, 0x67, 0x10, 0x76, 0x56, + 0x0a, 0x8d, 0xe4, 0xb2, 0x28, 0x02, 0x4d, 0x23, 0x4d, 0x59, 0xab, 0xc1, 0x13, 0x25, 0x4e, 0x2d, + 0x4e, 0x45, 0x0e, 0x88, 0xc4, 0x25, 0xd2, 0x28, 0x68, 0xb9, 0x2e, 0x49, 0x5e, 0x77, 0x67, 0xd0, + 0x72, 0x99, 0x2a, 0x84, 0xad, 0x53, 0xdf, 0x87, 0xd8, 0x5f, 0xc3, 0x94, 0x30, 0x8c, 0x63, 0xd8, + 0x30, 0x99, 0x14, 0x3d, 0xf3, 0x07, 0x73, 0xb9, 0x34, 0x89, 0xe5, 0x07, 0x81, 0x48, 0x07, 0x31, + 0x84, 0xe0, 0x81, 0xd1, 0x01, 0x1e, 0x7d, 0x80, 0x80, 0x95, 0xc8, 0x61, 0x14, 0xf8, 0x90, 0xf4, + 0xa0, 0x15, 0x49, 0x4a, 0x0e, 0x6c, 0x82, 0x4a, 0x29, 0xf6, 0x02, 0x66, 0x96, 0xcc, 0x80, 0xf5, + 0x1b, 0x22, 0x7b, 0xb0, 0x86, 0x6d, 0xec, 0x29, 0x72, 0x66, 0xa9, 0xb6, 0x76, 0xe5, 0xc3, 0xc7, + 0x72, 0x96, 0x55, 0xd8, 0x2f, 0x5d, 0xa1, 0x93, 0xa3, 0x01, 0xf0, 0xac, 0xde, 0xdd, 0xea, 0x2e, + 0x69, 0xa1, 0xb5, 0xa0, 0x2b, 0x60, 0x6b, 0x3d, 0xd3, 0x32, 0x99, 0xe6, 0x80, 0xa3, 0x34, 0xf3, + 0x05, 0x35, 0x8c, 0x32, 0x7c, 0x12, 0xdb, 0xf5, 0xfe, 0xc0, 0x76, 0xe9, 0xb9, 0x94, 0x24, 0x95, + 0x88, 0x5f, 0x50, 0x8c, 0x6f, 0x20, 0x18, 0x0d, 0x1d, 0x64, 0x15, 0x97, 0xe4, 0xb3, 0xc0, 0x0f, + 0xc3, 0x99, 0x69, 0xd3, 0x03, 0xac, 0xba, 0x79, 0xcf, 0x05, 0xb6, 0x92, 0x22, 0x20, 0xf8, 0x03, + 0x60, 0x5b, 0xc4, 0xdd, 0xbc, 0x2d, 0x21, 0xee, 0xc1, 0xdd, 0x6d, 0xf5, 0xc1, 0x1f, 0x26, 0xac, + 0x90, 0x65, 0x88, 0x78, 0x45, 0x61, 0xe7, 0xda, 0x74, 0x69, 0x04, 0x2e, 0x34, 0x4a, 0xc9, 0x3c, + 0x40, 0xd8, 0xb5, 0x20, 0x0c, 0x93, 0xa9, 0xb1, 0xe9, 0xd9, 0x10, 0x66, 0x9e, 0x3d, 0x5a, 0x2e, + 0xc5, 0xf4, 0x28, 0x41, 0x57, 0x44, 0xe9, 0xf5, 0x61, 0x36, 0x56, 0x12, 0x3e, 0x0e, 0x49, 0xc8, + 0x2d, 0x03, 0x70, 0x10, 0x70, 0xd9, 0xc4, 0xc5, 0x4d, 0x62, 0x1c, 0x8c, 0x55, 0xf8, 0xad, 0xf8, + 0x51, 0xb7, 0xed, 0x79, 0x2e, 0x0e, 0x29, 0xb0, 0x5e, 0xac, 0xc0, 0xf0, 0x8e, 0x31, 0x3c, 0xc6, + 0x7f, 0xc3, 0x4c, 0x70, 0xb9, 0xa5, 0xb8, 0x19, 0x1d, 0x56, 0xe3, 0x4a, 0xc1, 0x44, 0x38, 0x09, + 0xd6, 0x77, 0xb7, 0xfb, 0xb5, 0x6f, 0x3e, 0x15, 0xc5, 0x38, 0x9f, 0x4c, 0x27, 0x62, 0xa5, 0x1c, + 0xb0, 0x23, 0x95, 0x3d, 0x01, 0xce, 0x7b, 0x10, 0xa9, 0x3d, 0xa1, 0x0d, 0xbe, 0x26, 0x2c, 0x98, + 0x4e, 0x80, 0x2a, 0xbb, 0x61, 0xcd, 0x64, 0xed, 0x05, 0x4e, 0x58, 0x14, 0x15, 0x00, 0xdf, 0xd9, + 0xed, 0x0a, 0xfc, 0xc5, 0x23, 0xc8, 0x0f, 0xd1, 0x7f, 0xb3, 0xcd, 0xa8, 0xf0, 0xa7, 0x23, 0x13, + 0xdc, 0x94, 0x45, 0x33, 0x86, 0xe1, 0x50, 0x2f, 0xe9, 0xd9, 0xcd, 0x96, 0x5f, 0xbf, 0xc7, 0xa2, + 0xe7, 0x07, 0x9e, 0x56, 0xf8, 0x22, 0xd2, 0x67, 0xd6, 0xa5, 0xa8, 0x5f, 0xb2, 0xb0, 0x3d, 0x32, + 0x65, 0x5f, 0x25, 0x5b, 0xdf, 0x78, 0x7b, 0x20, 0x3a, 0x3c, 0xdc, 0x10, 0x5f, 0x39, 0xd0, 0x45, + 0x89, 0x0c, 0x3e, 0xd0, 0x47, 0x89, 0xdc, 0xc5, 0x4e, 0xca, 0xca, 0x9e, 0x70, 0xb1, 0xb0, 0x99, + 0x92, 0x65, 0x73, 0xc9, 0xe2, 0x81, 0x6d, 0x69, 0x8b, 0xe8, 0x56, 0x90, 0xb3, 0xc3, 0xe2, 0x31, + 0xe7, 0x30, 0x8e, 0x81, 0xc4, 0x06, 0x94, 0xfb, 0x0e, 0x32, 0x51, 0x17, 0x4c, 0x2e, 0xa4, 0x56, + 0xdb, 0xbe, 0xe0, 0xe5, 0x09, 0xc1, 0xd9, 0x28, 0xab, 0x34, 0xbf, 0x64, 0xaa, 0x21, 0xa7, 0xf6, + 0x1d, 0x0a, 0x81, 0xcd, 0x04, 0x23, 0xb6, 0x04, 0x99, 0x09, 0x73, 0xdb, 0x75, 0x3d, 0x2a, 0x8c, + 0xe8, 0x2f, 0xd8, 0xc5, 0x55, 0x22, 0xdf, 0x07, 0xe6, 0x0a, 0x6b, 0x33, 0x4b, 0xff, 0x0e, 0x06, + 0x2b, 0x7b, 0x36, 0x27, 0x1e, 0x61, 0xba, 0xf7, 0xe6, 0x63, 0x48, 0x70, 0xa0, 0x52, 0x2a, 0xe3, + 0xcd, 0x14, 0xde, 0xc3, 0xde, 0xe7, 0x2d, 0xf0, 0xdd, 0x3d, 0xab, 0xa0, 0x68, 0x14, 0x78, 0xac, + 0xc2, 0x7d, 0x12, 0x16, 0x23, 0xe0, 0x0d, 0xc5, 0x58, 0xb0, 0xa4, 0x2f, 0xe4, 0x73, 0x6c, 0x92, + 0xf4, 0x66, 0xc2, 0xe7, 0xf7, 0xe3, 0x2c, 0x9f, 0xdf, 0x5f, 0x4f, 0x76, 0xa3, 0xa4, 0x24, 0x0d, + 0x9e, 0xcd, 0xb1, 0xef, 0x11, 0x7f, 0xe8, 0x92, 0x44, 0x74, 0xb9, 0x72, 0xb3, 0x13, 0x17, 0x47, + 0xc0, 0x4d, 0xb0, 0x4d, 0x3f, 0x1c, 0x03, 0x27, 0x59, 0x6e, 0xdc, 0x4e, 0x90, 0x74, 0x1d, 0x34, + 0x21, 0x3f, 0xab, 0xb0, 0x90, 0xa7, 0x38, 0xeb, 0x1d, 0x1e, 0x38, 0xb4, 0xd9, 0x3d, 0x7f, 0xa9, + 0xbc, 0xe4, 0x00, 0xa6, 0x81, 0x67, 0x4a, 0x29, 0x1f, 0xf8, 0xaf, 0x71, 0xc6, 0xb3, 0x36, 0xf0, + 0x34, 0x0a, 0x8f, 0xa6, 0xf0, 0x67, 0x7e, 0xff, 0x17, 0xa9, 0x64, 0xc2, 0x8f, 0xf6, 0x57, 0x00, + 0x00 }; @@ -1055,221 +1060,216 @@ const uint8_t PAGE_settings_ui[] PROGMEM = { // Autogenerated from wled00/data/settings_sync.htm, do not edit!! -const uint16_t PAGE_settings_sync_length = 3403; +const uint16_t PAGE_settings_sync_length = 3318; const uint8_t PAGE_settings_sync[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x5a, 0x6d, 0x73, 0xda, 0x48, - 0x12, 0xfe, 0xae, 0x5f, 0x31, 0xd6, 0x56, 0xe5, 0x60, 0x8d, 0x41, 0x80, 0x71, 0x1c, 0x1b, 0x29, - 0x67, 0x6c, 0xc7, 0xe6, 0x36, 0x4e, 0x08, 0xd8, 0x9b, 0x6c, 0xd5, 0x55, 0x6d, 0x0d, 0xd2, 0x00, - 0xb2, 0x25, 0x8d, 0x56, 0x33, 0xf2, 0x4b, 0x65, 0xf3, 0xdf, 0xaf, 0x7b, 0x46, 0x12, 0x20, 0xf3, - 0x96, 0xab, 0xfd, 0x10, 0x2c, 0x46, 0xdd, 0x3d, 0x3d, 0xfd, 0xf2, 0x74, 0xf7, 0x90, 0xee, 0xde, - 0xc5, 0xe7, 0xf3, 0xdb, 0x3f, 0x06, 0x97, 0x64, 0x26, 0xc3, 0xc0, 0xe9, 0xe2, 0x27, 0x09, 0x68, - 0x34, 0xb5, 0x4d, 0x16, 0x99, 0xf0, 0x9d, 0x51, 0xcf, 0xe9, 0x86, 0x4c, 0x52, 0x12, 0xd1, 0x90, - 0xd9, 0xe6, 0xa3, 0xcf, 0x9e, 0x62, 0x9e, 0x48, 0x93, 0xb8, 0x3c, 0x92, 0x2c, 0x92, 0xb6, 0xf9, - 0xe4, 0x7b, 0x72, 0x66, 0x77, 0x2c, 0xcb, 0x74, 0x0c, 0x4d, 0x6a, 0x94, 0xde, 0x79, 0xec, 0xd1, - 0x77, 0xd9, 0x81, 0xfa, 0x52, 0xf3, 0x23, 0x5f, 0xfa, 0x34, 0x38, 0x10, 0x2e, 0x0d, 0x98, 0xdd, - 0xac, 0x85, 0xf4, 0xd9, 0x0f, 0xd3, 0xb0, 0xf8, 0x9e, 0x0a, 0x96, 0xa8, 0x2f, 0x74, 0x0c, 0xdf, - 0x23, 0x6e, 0x12, 0xa3, 0xb4, 0x75, 0xa6, 0x90, 0x3b, 0xa3, 0x89, 0x60, 0xb0, 0x49, 0x2a, 0x27, - 0x07, 0xc7, 0xb0, 0x2a, 0x7d, 0x19, 0x30, 0x67, 0xf4, 0x12, 0xb9, 0x64, 0xc4, 0xa4, 0xf4, 0xa3, - 0xa9, 0xe8, 0x36, 0xf4, 0x62, 0x57, 0xb8, 0x89, 0x1f, 0x4b, 0xc7, 0x78, 0xa4, 0x09, 0x09, 0xb8, - 0xeb, 0xc7, 0x35, 0xcf, 0xf6, 0xb8, 0x9b, 0x86, 0xa0, 0x66, 0x0d, 0x16, 0xec, 0xbd, 0xe6, 0xe9, - 0x24, 0x8d, 0x5c, 0xe9, 0xf3, 0x88, 0x4c, 0xfb, 0x5e, 0x85, 0x55, 0xbf, 0x27, 0x4c, 0xa6, 0x49, - 0x44, 0xbc, 0xfa, 0x94, 0xc9, 0xcb, 0x80, 0x21, 0x69, 0xef, 0x45, 0xbd, 0xfa, 0x51, 0x90, 0x4a, - 0x3e, 0x9d, 0x06, 0x0c, 0xa9, 0x35, 0x53, 0xdd, 0x0d, 0xa8, 0x10, 0x1f, 0x7d, 0x21, 0xeb, 0xd9, - 0x2b, 0x73, 0xe6, 0x7b, 0xcc, 0xac, 0xd6, 0xf0, 0xbd, 0xf9, 0x89, 0x9b, 0xfb, 0x1b, 0x88, 0xe6, - 0x72, 0xaf, 0x2b, 0xd5, 0xef, 0x4f, 0x7e, 0xe4, 0xf1, 0xa7, 0x3a, 0x8f, 0x59, 0x04, 0x04, 0x52, - 0xc6, 0xe2, 0xa4, 0xd1, 0x78, 0x88, 0x78, 0xfd, 0x29, 0x60, 0xa8, 0x54, 0xc3, 0x07, 0x2b, 0x27, - 0x13, 0xea, 0x32, 0xd1, 0x48, 0xbd, 0xf8, 0x20, 0xe2, 0xd2, 0x9f, 0xf8, 0x2c, 0x69, 0x2c, 0x0a, - 0xea, 0x95, 0x05, 0x35, 0x44, 0x66, 0x1b, 0xb3, 0x66, 0xfe, 0x29, 0x58, 0x30, 0x59, 0xa4, 0xa6, - 0xde, 0x3d, 0xd0, 0x1f, 0x1d, 0x76, 0x0e, 0x6d, 0xdb, 0xab, 0x8f, 0x26, 0xf5, 0x8b, 0x7e, 0xfd, - 0x91, 0x06, 0x29, 0x7b, 0xdf, 0xcc, 0x16, 0x2e, 0xef, 0xf4, 0xc2, 0x9b, 0x37, 0x95, 0xa5, 0xef, - 0xb6, 0x55, 0x3d, 0xe9, 0x74, 0x8e, 0x8e, 0x4b, 0x7c, 0x40, 0x66, 0xe5, 0x4b, 0x67, 0xcb, 0x9c, - 0xf9, 0x77, 0xbb, 0x59, 0xad, 0x59, 0xdb, 0xa4, 0x37, 0xab, 0x0b, 0x5a, 0x06, 0x9c, 0x7a, 0xff, - 0x19, 0x55, 0x58, 0x4d, 0xda, 0x7b, 0x56, 0xf5, 0x7b, 0xc0, 0x24, 0xe1, 0xc0, 0xef, 0x26, 0x8c, - 0x4a, 0x96, 0x79, 0xaa, 0x62, 0x6a, 0x97, 0x9b, 0xd5, 0x53, 0x5e, 0x87, 0x23, 0x9f, 0x49, 0x99, - 0xf8, 0xe3, 0x54, 0x82, 0xad, 0x45, 0xe2, 0x9a, 0x35, 0x56, 0xad, 0x95, 0xd7, 0xe5, 0x4b, 0xcc, - 0xc0, 0x28, 0x92, 0x3d, 0xcb, 0xc6, 0x3d, 0x7d, 0xa4, 0xb9, 0x80, 0x57, 0x84, 0x54, 0x40, 0x8c, - 0x99, 0x35, 0x59, 0xad, 0x79, 0xf5, 0x31, 0xf7, 0x5e, 0xea, 0x34, 0x06, 0xd3, 0x7a, 0xe7, 0x33, - 0x3f, 0xf0, 0x2a, 0x1c, 0xe9, 0xa9, 0xe7, 0x5d, 0x3e, 0x82, 0x16, 0xe8, 0x63, 0x16, 0xb1, 0xa4, - 0x62, 0xa2, 0xce, 0x66, 0xad, 0x52, 0xb5, 0x9d, 0xef, 0x57, 0x4c, 0xfe, 0x5e, 0xa9, 0xd6, 0x20, - 0x46, 0x7f, 0xa7, 0x41, 0xa5, 0xfa, 0x63, 0x35, 0x03, 0x4b, 0x12, 0x9e, 0x80, 0x9e, 0xc0, 0x00, - 0xe9, 0x24, 0x78, 0xc0, 0xea, 0x01, 0x9f, 0x56, 0xcc, 0x4b, 0x5c, 0x27, 0x99, 0x15, 0xc0, 0x8f, - 0x64, 0xe2, 0x07, 0x4c, 0x9d, 0x07, 0xf2, 0x27, 0x81, 0x73, 0x7f, 0xcc, 0xd6, 0xf9, 0x04, 0x73, - 0x74, 0xe2, 0x4f, 0xd3, 0x84, 0x2a, 0xb3, 0xe9, 0xf3, 0x90, 0x09, 0xf5, 0x31, 0x7e, 0xfe, 0x1b, - 0xf5, 0x23, 0x97, 0x87, 0x31, 0x58, 0x8f, 0x91, 0x98, 0x4e, 0x19, 0xf1, 0xa8, 0xa4, 0x7b, 0x10, - 0x0d, 0x0b, 0x96, 0xfe, 0x70, 0x0e, 0xe1, 0x30, 0xe1, 0x49, 0xe5, 0xde, 0xb6, 0x4e, 0xef, 0xbb, - 0xc7, 0xa7, 0xf7, 0xfb, 0xfb, 0x55, 0x15, 0xc9, 0x57, 0xe6, 0x7e, 0xe5, 0x7e, 0x1f, 0xdc, 0x52, - 0x77, 0x67, 0xcc, 0x7d, 0x60, 0x9e, 0xad, 0x97, 0x47, 0x66, 0x55, 0xbb, 0xcc, 0x71, 0xee, 0xdf, - 0x34, 0x75, 0xd4, 0x0f, 0xd7, 0xd0, 0x0e, 0x97, 0x68, 0xe7, 0xbb, 0x5e, 0xe1, 0xae, 0x98, 0xa9, - 0x10, 0x55, 0xe0, 0x63, 0xab, 0xc6, 0x6d, 0xc8, 0xce, 0x92, 0x16, 0x6c, 0xdf, 0x5e, 0xad, 0xc8, - 0xaf, 0xbc, 0x26, 0xb3, 0x77, 0xc3, 0x15, 0xef, 0xf8, 0xaf, 0x76, 0xeb, 0xb4, 0xa4, 0xab, 0xcd, - 0x6a, 0x25, 0x8d, 0x6c, 0x39, 0x57, 0x67, 0x34, 0x28, 0xd4, 0x59, 0x8a, 0x6d, 0x2d, 0xe5, 0x39, - 0x06, 0x1e, 0x21, 0x5f, 0xc0, 0x3f, 0x9e, 0x2f, 0xe2, 0x80, 0xbe, 0xd8, 0xcc, 0xb1, 0xde, 0x9b, - 0x11, 0x8f, 0x98, 0x79, 0x62, 0x8e, 0x01, 0x5c, 0x1e, 0xc0, 0x3d, 0x8e, 0x55, 0xc4, 0xf4, 0x20, - 0xdf, 0x74, 0xc1, 0xd0, 0x79, 0x30, 0x7c, 0x17, 0x4f, 0xbe, 0x74, 0x67, 0x95, 0x18, 0xb1, 0xad, - 0x0f, 0x61, 0xbc, 0xc4, 0x52, 0xad, 0x7e, 0x77, 0xa9, 0x60, 0x04, 0x13, 0xed, 0x64, 0x49, 0x17, - 0x1b, 0x97, 0x4e, 0xc7, 0x90, 0x01, 0x0f, 0xa7, 0x8a, 0x04, 0x73, 0xb8, 0x44, 0x82, 0x4b, 0x8b, - 0x24, 0x87, 0xd6, 0x61, 0x59, 0x0a, 0x2e, 0xfd, 0xc0, 0xf3, 0xd6, 0xd0, 0xf3, 0x0b, 0xea, 0x81, - 0x66, 0x26, 0x06, 0xda, 0x89, 0x69, 0xdb, 0x19, 0x9c, 0xc0, 0xc1, 0x54, 0x5c, 0xd5, 0xe3, 0x84, - 0x4b, 0xee, 0xf2, 0x00, 0x0e, 0xa8, 0x90, 0xd4, 0xaa, 0x55, 0x14, 0xc4, 0xda, 0x48, 0x11, 0x8c, - 0x24, 0x4f, 0x20, 0xba, 0x10, 0x44, 0xfb, 0x92, 0x85, 0x98, 0x09, 0x6e, 0x1f, 0x6c, 0x56, 0xfd, - 0xfb, 0xef, 0x8c, 0x0c, 0xf8, 0xc3, 0x18, 0x02, 0xf7, 0x03, 0xc8, 0x27, 0x37, 0xdc, 0x63, 0x75, - 0x32, 0x08, 0x18, 0x6a, 0xc8, 0x10, 0xe0, 0xc8, 0xd7, 0x8f, 0x97, 0x17, 0xa4, 0x3f, 0x80, 0xd0, - 0xac, 0x2d, 0x49, 0x14, 0xcb, 0x12, 0x6b, 0x4a, 0x5a, 0xb5, 0x8a, 0x54, 0x0a, 0x1f, 0x50, 0xfc, - 0x7b, 0x05, 0x9c, 0x80, 0x9b, 0xe6, 0xbe, 0x7a, 0x7d, 0x62, 0x9a, 0xd5, 0xfd, 0x39, 0x06, 0x36, - 0x44, 0xfd, 0x5e, 0xbc, 0x8f, 0xed, 0x43, 0xb3, 0xb6, 0xd7, 0xac, 0xfe, 0x30, 0xba, 0x8d, 0xac, - 0x50, 0x74, 0x95, 0x47, 0x9d, 0x7f, 0xfb, 0x21, 0x96, 0x1c, 0x92, 0x26, 0x01, 0xe0, 0x86, 0x72, - 0xb2, 0x2b, 0x04, 0x60, 0x0a, 0x10, 0x2a, 0x82, 0x6e, 0x43, 0x97, 0x48, 0x84, 0x01, 0x48, 0x4a, - 0xdc, 0xd9, 0x36, 0xc1, 0x5a, 0x50, 0x8e, 0x20, 0x60, 0x43, 0x83, 0xf8, 0xf0, 0x1d, 0x9f, 0xfe, - 0x14, 0x66, 0x56, 0x42, 0x47, 0x13, 0x93, 0x40, 0x01, 0x9b, 0x71, 0x78, 0x13, 0x73, 0x01, 0xa5, - 0x14, 0xd2, 0x3b, 0x1d, 0x87, 0x3e, 0x94, 0x32, 0x8c, 0x7c, 0x60, 0xf5, 0xfc, 0x47, 0xa2, 0x6a, - 0x84, 0x6d, 0x4a, 0x0e, 0xe6, 0x79, 0xca, 0xd6, 0x8c, 0x6c, 0x71, 0xc6, 0x82, 0xb8, 0x07, 0x6b, - 0x00, 0x47, 0x12, 0x8b, 0x10, 0x00, 0x97, 0x6d, 0xea, 0x2f, 0x28, 0xcd, 0x0d, 0x7c, 0xf7, 0xc1, - 0x36, 0xaf, 0x51, 0xd6, 0xfb, 0x6e, 0x43, 0xbf, 0x00, 0x55, 0x41, 0x44, 0xc1, 0x63, 0xac, 0x61, - 0xea, 0x21, 0x53, 0x8f, 0xba, 0x0f, 0x73, 0xbe, 0xa5, 0x5d, 0xb4, 0xa6, 0xa6, 0x33, 0xa2, 0x8f, - 0x6c, 0x4e, 0x32, 0x4b, 0xa0, 0xf6, 0x6b, 0xf9, 0xb3, 0x96, 0x2e, 0xc1, 0x60, 0xe2, 0x34, 0x06, - 0xf3, 0xb4, 0x60, 0xa9, 0xed, 0x28, 0x1f, 0xf6, 0x12, 0x30, 0x0f, 0x84, 0x9e, 0x84, 0xe5, 0xb6, - 0x73, 0x77, 0x31, 0x20, 0x03, 0x30, 0xee, 0x09, 0xe9, 0xfa, 0x51, 0x9c, 0xca, 0xcc, 0x3c, 0x77, - 0x03, 0x33, 0x57, 0x2e, 0x4a, 0xc3, 0x31, 0x4b, 0xc0, 0x5a, 0x7e, 0x64, 0x9b, 0x4d, 0xf8, 0x4b, - 0x9f, 0x6d, 0xf3, 0xa8, 0xd3, 0x69, 0x77, 0xcc, 0xdc, 0x3c, 0x1e, 0x3c, 0x26, 0xec, 0xaf, 0xd4, - 0x4f, 0x18, 0x7a, 0x21, 0x71, 0x5a, 0x91, 0xb7, 0x2c, 0x35, 0xeb, 0x1e, 0xee, 0x5a, 0x26, 0xf9, - 0xff, 0xa5, 0xe2, 0x11, 0x0c, 0x75, 0xac, 0x69, 0xc2, 0xd3, 0x58, 0xa8, 0x03, 0x2c, 0xa9, 0x0d, - 0x60, 0xa2, 0x7c, 0x8d, 0x7f, 0x97, 0xf7, 0x51, 0x81, 0x02, 0x32, 0x35, 0x38, 0x9c, 0x28, 0x5c, - 0x70, 0x88, 0xb1, 0xcc, 0x3d, 0xcc, 0xb8, 0x87, 0x3b, 0x71, 0x77, 0x25, 0x36, 0x47, 0xc4, 0xc8, - 0x5e, 0x86, 0x34, 0x99, 0xfa, 0xd1, 0x89, 0x45, 0x68, 0x2a, 0x39, 0xbe, 0x05, 0x85, 0x25, 0x28, - 0xde, 0xc0, 0x0f, 0xf8, 0xd7, 0x2c, 0x9e, 0x5a, 0xc5, 0x53, 0xbb, 0x78, 0x3a, 0x2c, 0x9e, 0x3a, - 0x46, 0xf1, 0x78, 0x54, 0x3c, 0xbd, 0x2d, 0x9e, 0x8e, 0xf5, 0x53, 0x43, 0x89, 0xd7, 0x5b, 0x8c, - 0xa0, 0xec, 0x9d, 0x14, 0x04, 0xb9, 0xc5, 0xf5, 0x09, 0x14, 0xe4, 0x8e, 0xf9, 0x73, 0x76, 0xb2, - 0x66, 0x1e, 0xff, 0xf0, 0xe4, 0x94, 0x59, 0x56, 0x72, 0xb4, 0x8a, 0xd6, 0x0f, 0x1e, 0x77, 0x63, - 0x69, 0x17, 0x9b, 0xb4, 0x5f, 0x73, 0xac, 0xd6, 0xeb, 0xb0, 0x60, 0x39, 0xdc, 0x71, 0x93, 0xce, - 0x5c, 0xaf, 0xce, 0x8e, 0x2c, 0x47, 0xc5, 0x26, 0x47, 0xbb, 0xea, 0xf5, 0xb6, 0x60, 0x79, 0xbb, - 0xe3, 0x26, 0xc7, 0x73, 0xbd, 0x8e, 0x73, 0x96, 0x45, 0x67, 0x0d, 0x99, 0xcb, 0xfc, 0x47, 0x76, - 0xb2, 0x8b, 0xb0, 0x61, 0xb3, 0x10, 0x36, 0xdc, 0xd1, 0x5f, 0xc3, 0x56, 0xae, 0xf1, 0xb0, 0xb5, - 0xe3, 0x21, 0x87, 0x85, 0xbf, 0x86, 0xed, 0x1d, 0x37, 0x39, 0x9c, 0xeb, 0xb5, 0xa3, 0xbf, 0x86, - 0x9d, 0x62, 0x93, 0xce, 0xae, 0x7a, 0x15, 0xfe, 0x1a, 0x1e, 0xed, 0xb8, 0xc9, 0xdb, 0xb9, 0x5e, - 0x3b, 0xfa, 0x6b, 0x78, 0x5c, 0x6c, 0xb2, 0xec, 0xae, 0x86, 0xca, 0x6e, 0x00, 0x54, 0x00, 0x9e, - 0xc2, 0x67, 0x11, 0x7f, 0x4a, 0x68, 0xbc, 0x4e, 0x5e, 0x26, 0x07, 0x6a, 0x42, 0x2f, 0xf1, 0xa7, - 0x33, 0x19, 0x31, 0x21, 0x6a, 0xdd, 0x46, 0xc6, 0x64, 0xec, 0xc6, 0x7d, 0x6e, 0x3a, 0xe7, 0x3c, - 0xe0, 0xc9, 0x9c, 0x31, 0xe7, 0xa3, 0x00, 0xaa, 0xeb, 0xec, 0x95, 0x31, 0x7f, 0x33, 0x9d, 0xcb, - 0xc9, 0x84, 0xb9, 0x52, 0xcc, 0xb9, 0x11, 0x38, 0x37, 0xed, 0x38, 0xfa, 0x0c, 0x23, 0x23, 0xb4, - 0x3e, 0x53, 0x6c, 0xd8, 0x09, 0x8f, 0xb1, 0x9b, 0x10, 0x35, 0xb2, 0x99, 0xe7, 0x0a, 0xc0, 0x73, - 0xcc, 0xd3, 0xc8, 0x13, 0x28, 0xdf, 0x40, 0x04, 0x22, 0x7a, 0xf2, 0xd1, 0xed, 0x88, 0xc0, 0xde, - 0xd8, 0x03, 0xe4, 0x76, 0x25, 0x8e, 0x88, 0xd1, 0x94, 0x9d, 0x6c, 0x91, 0x78, 0x61, 0x3a, 0x1b, - 0x44, 0x65, 0xd5, 0x2f, 0x4e, 0xc0, 0xa4, 0x04, 0x3a, 0xef, 0xfe, 0x70, 0x9b, 0xbc, 0xde, 0xa2, - 0xbc, 0xb3, 0x80, 0x3d, 0xd3, 0x65, 0xa9, 0xdb, 0xf8, 0xcf, 0x16, 0xf9, 0x07, 0x30, 0x54, 0xf8, - 0xb1, 0x20, 0xd7, 0x29, 0xcb, 0x8e, 0xf3, 0x73, 0xc2, 0xae, 0x17, 0x85, 0xdd, 0x50, 0x37, 0xe1, - 0x3f, 0xc7, 0x7f, 0x93, 0xf1, 0x63, 0xb5, 0x8e, 0xa1, 0x2d, 0x80, 0x59, 0x0b, 0xe6, 0xe2, 0x84, - 0x46, 0x22, 0xf4, 0x85, 0x58, 0x92, 0x90, 0x15, 0xda, 0xe1, 0xca, 0x42, 0x6b, 0x65, 0x85, 0xb6, - 0x0d, 0x0f, 0xc6, 0xda, 0x32, 0xab, 0x22, 0x06, 0x82, 0x7e, 0xcc, 0xb9, 0x2c, 0x5e, 0xc1, 0x90, - 0x4d, 0x60, 0xc2, 0x0a, 0x5e, 0x32, 0x03, 0x88, 0x7a, 0xb7, 0xe1, 0x63, 0xcf, 0x51, 0x08, 0x12, - 0x61, 0x60, 0xaa, 0x1a, 0xdd, 0x8f, 0x84, 0xa4, 0x91, 0xcb, 0x08, 0xce, 0x51, 0xaa, 0x48, 0x5f, - 0x46, 0xaa, 0x54, 0xfa, 0xf9, 0x8b, 0x00, 0x5e, 0xac, 0x3d, 0x73, 0x96, 0xc1, 0x9f, 0x3e, 0xea, - 0x43, 0xdf, 0xd0, 0x07, 0x46, 0xe4, 0xcc, 0x17, 0x73, 0x76, 0xa8, 0xc3, 0x2e, 0x7f, 0x64, 0x09, - 0x0a, 0xdd, 0x62, 0xba, 0x4f, 0x3d, 0xbc, 0x10, 0x01, 0x2d, 0xcb, 0x4a, 0x0e, 0x19, 0x0d, 0xa4, - 0x1f, 0x32, 0xa5, 0x5f, 0x96, 0xe0, 0x04, 0xed, 0x9b, 0x64, 0x2f, 0xb6, 0xe9, 0x37, 0xcc, 0x22, - 0xf6, 0x0e, 0x5a, 0xe4, 0x90, 0xfa, 0x30, 0xd9, 0xe5, 0x29, 0x14, 0x05, 0x2f, 0x5b, 0xb4, 0xba, - 0xf9, 0x6c, 0x16, 0xa6, 0x86, 0x1e, 0xc4, 0xf9, 0xc4, 0xe4, 0x13, 0x4f, 0x1e, 0xc8, 0xc5, 0xcd, - 0x37, 0xa2, 0xf8, 0x94, 0x6d, 0xe1, 0xe5, 0x2d, 0xb0, 0x83, 0x2c, 0xc1, 0x02, 0xcc, 0x24, 0xcd, - 0x7c, 0xd1, 0x57, 0x9d, 0xa2, 0xf2, 0x02, 0xc4, 0x06, 0xce, 0x09, 0xea, 0xc6, 0x00, 0x0f, 0xaa, - 0xd3, 0x97, 0xe8, 0x39, 0xc2, 0xc4, 0x71, 0x04, 0x10, 0xa1, 0x59, 0x6f, 0x37, 0x49, 0x45, 0x9c, - 0x9d, 0x7f, 0xaa, 0x76, 0x1b, 0x9a, 0xc2, 0x29, 0x51, 0xe2, 0x54, 0x62, 0x3a, 0x67, 0x89, 0x3c, - 0x00, 0x55, 0x0a, 0xa2, 0xb2, 0x3c, 0x88, 0x1a, 0xad, 0x09, 0x0c, 0x8f, 0x66, 0xfe, 0x04, 0x78, - 0x95, 0x0a, 0xc9, 0x43, 0x82, 0x3d, 0xfa, 0x5c, 0x7e, 0x43, 0xbf, 0xd7, 0xc7, 0x54, 0x6d, 0x33, - 0xc2, 0x2d, 0xcc, 0x69, 0xce, 0x8a, 0x76, 0xf3, 0x72, 0xb0, 0x4b, 0x5f, 0xb8, 0x78, 0xaa, 0x0d, - 0xe1, 0xab, 0x3a, 0xe0, 0x9b, 0x14, 0x9c, 0x88, 0x5d, 0xee, 0x16, 0x4f, 0x5c, 0xe6, 0xa9, 0x35, - 0x92, 0x14, 0x47, 0x8c, 0x08, 0xc2, 0x00, 0x86, 0xbe, 0xb2, 0x7e, 0x77, 0x1b, 0xd3, 0xe9, 0xa8, - 0xfd, 0xee, 0xdd, 0xbb, 0x92, 0x1a, 0xc6, 0xeb, 0x14, 0x52, 0x19, 0x43, 0xce, 0x51, 0x03, 0xc2, - 0x41, 0x76, 0x97, 0x92, 0x59, 0xc2, 0x26, 0x76, 0x71, 0xad, 0x34, 0xf5, 0xe5, 0x2c, 0x1d, 0xd7, - 0x5d, 0x1e, 0x36, 0x3e, 0x32, 0xef, 0xc3, 0xb3, 0xfe, 0xc4, 0x4e, 0x1c, 0x7a, 0x4b, 0xbc, 0x64, - 0xfb, 0x73, 0x1c, 0xd0, 0xe8, 0xc1, 0x74, 0xd4, 0x7a, 0xb7, 0x41, 0x9d, 0x3d, 0xdc, 0x6a, 0xf4, - 0xe0, 0xc7, 0x28, 0xf0, 0x80, 0x4f, 0x0e, 0x04, 0xec, 0xc5, 0x30, 0x47, 0x34, 0x4c, 0xcc, 0x71, - 0x61, 0x4d, 0xc9, 0xb8, 0x1c, 0xe9, 0xf3, 0x63, 0xe4, 0x09, 0x65, 0x02, 0xea, 0x79, 0x88, 0xb2, - 0x25, 0x0b, 0x5c, 0x9c, 0x95, 0x2d, 0x60, 0x2c, 0xb9, 0xa8, 0xd3, 0xb4, 0x4a, 0x06, 0x50, 0x12, - 0xb3, 0x94, 0x10, 0xa0, 0x0d, 0x4c, 0x7a, 0x25, 0x99, 0xdf, 0xbe, 0xad, 0x1e, 0x32, 0x72, 0xb3, - 0x36, 0x3b, 0xab, 0x64, 0x86, 0x30, 0x9b, 0xbe, 0x4a, 0x09, 0xf4, 0xa2, 0x8e, 0x3c, 0x63, 0x1e, - 0xac, 0xce, 0x85, 0x2f, 0x10, 0x22, 0xbc, 0x75, 0x51, 0x0f, 0x3d, 0xd5, 0x08, 0xd4, 0x02, 0x64, - 0x1a, 0x5e, 0xf5, 0x5e, 0x11, 0x19, 0x19, 0x55, 0xab, 0xa0, 0xba, 0x58, 0x45, 0x96, 0x51, 0xb5, - 0xf3, 0xd2, 0xbb, 0x56, 0xce, 0xdb, 0x9c, 0x82, 0xec, 0x93, 0xaf, 0x33, 0x5f, 0xb2, 0x75, 0xa2, - 0x8e, 0x0b, 0xc2, 0xac, 0x2a, 0xaf, 0x4d, 0xc8, 0x77, 0x65, 0xca, 0x6d, 0xa2, 0x21, 0xc9, 0x55, - 0x66, 0xe0, 0x81, 0x8d, 0x75, 0x44, 0x1d, 0xb4, 0x5c, 0x18, 0xc2, 0xd0, 0xbf, 0x4f, 0x0a, 0xea, - 0xb5, 0xc8, 0x01, 0xb0, 0x53, 0x10, 0x7d, 0x5d, 0x6b, 0x69, 0xf0, 0xc6, 0x00, 0xc2, 0x8a, 0xad, - 0x43, 0x08, 0x4a, 0x8c, 0xe5, 0x5c, 0x58, 0x73, 0xc5, 0xca, 0x10, 0xcc, 0x0e, 0xbc, 0xf0, 0xb9, - 0x01, 0xf1, 0x58, 0xca, 0x0a, 0x0d, 0x74, 0x7e, 0x34, 0xe1, 0x98, 0x1a, 0xaa, 0x73, 0xbb, 0x05, - 0x20, 0x87, 0xcc, 0x28, 0xa7, 0xf3, 0xed, 0x16, 0xb8, 0xb1, 0xac, 0xc5, 0xc8, 0x23, 0xa1, 0xee, - 0x72, 0x3e, 0xf0, 0xc4, 0x45, 0xac, 0x7f, 0x26, 0xe3, 0xa2, 0xbf, 0xdb, 0x02, 0x2f, 0x1f, 0xf2, - 0x36, 0x24, 0x0b, 0xc5, 0xa2, 0xba, 0x90, 0x29, 0x0d, 0x43, 0x4a, 0x5c, 0x9e, 0x60, 0x8f, 0x04, - 0xf6, 0xd8, 0x22, 0x68, 0x78, 0x95, 0x09, 0xca, 0xeb, 0x16, 0xc1, 0x59, 0x9e, 0x4f, 0x26, 0x60, - 0xd2, 0xd2, 0xe9, 0xbe, 0x7e, 0x5e, 0x79, 0xba, 0x83, 0x56, 0xa7, 0x93, 0x1d, 0x50, 0x3d, 0x19, - 0xf3, 0xcc, 0x5a, 0x51, 0x1e, 0x75, 0xc7, 0xf4, 0x3b, 0xf7, 0xe1, 0xc4, 0x67, 0xd0, 0x62, 0x60, - 0xe5, 0xd5, 0xb5, 0x5c, 0x81, 0x39, 0x62, 0xf9, 0x27, 0xae, 0x88, 0xe6, 0x50, 0xac, 0xae, 0xcf, - 0x9d, 0x2e, 0x0b, 0xf3, 0x79, 0xd9, 0xc5, 0x46, 0xf6, 0xe4, 0x97, 0x09, 0xc5, 0x5f, 0x25, 0x6e, - 0xb1, 0x84, 0x4f, 0xfc, 0x24, 0x7c, 0xa2, 0x09, 0x83, 0x86, 0xce, 0x0f, 0x3c, 0xe2, 0x71, 0x26, - 0xb0, 0x13, 0x02, 0xa7, 0xb9, 0x41, 0xea, 0xb1, 0xac, 0x51, 0x13, 0x69, 0x8c, 0xc5, 0xa4, 0xae, - 0xe1, 0x9c, 0x85, 0x0b, 0xb8, 0x3e, 0x2f, 0x25, 0x7a, 0x73, 0xe7, 0x32, 0x4c, 0x03, 0x2a, 0x73, - 0x4e, 0xfd, 0x23, 0xc7, 0x16, 0x5b, 0x9e, 0x65, 0x9d, 0x85, 0xa1, 0x79, 0xfc, 0xe8, 0x31, 0xbb, - 0x44, 0x53, 0xef, 0x4b, 0xcc, 0x78, 0x11, 0x5d, 0x30, 0xf6, 0x95, 0x01, 0x03, 0x16, 0x4d, 0xe5, - 0x0c, 0x52, 0xbe, 0x55, 0xc8, 0x11, 0x9c, 0xb0, 0x4c, 0x11, 0xad, 0x82, 0xc0, 0x7e, 0xc9, 0xa5, - 0x41, 0x00, 0xad, 0x0b, 0xc3, 0x63, 0x0b, 0xb9, 0xec, 0xa5, 0xb3, 0x57, 0x25, 0x2f, 0x77, 0x41, - 0x0e, 0xad, 0x39, 0x0c, 0x2e, 0x56, 0x16, 0xd5, 0x01, 0x03, 0xac, 0x17, 0x7d, 0x5a, 0x76, 0xdd, - 0x53, 0x72, 0xa0, 0x32, 0xd2, 0x0a, 0x27, 0xbc, 0xf9, 0xe5, 0xdd, 0xf1, 0xf1, 0xf1, 0x29, 0xe9, - 0x8e, 0x1d, 0xa3, 0x17, 0xbc, 0x44, 0x0f, 0x35, 0x72, 0xf3, 0xe5, 0xf6, 0x96, 0xe0, 0x68, 0x81, - 0xbd, 0x2d, 0x5e, 0xa9, 0x13, 0x54, 0xda, 0xe5, 0x51, 0x84, 0xb0, 0x02, 0x87, 0x80, 0xf3, 0xb3, - 0x24, 0xa2, 0x01, 0x99, 0x71, 0x21, 0x85, 0x2a, 0x38, 0xda, 0x97, 0x21, 0x7d, 0x21, 0x7e, 0x08, - 0xc8, 0x2e, 0xd5, 0x19, 0x41, 0xb1, 0x18, 0x1a, 0x51, 0xa8, 0x9f, 0x91, 0x6a, 0xd2, 0x27, 0xea, - 0xca, 0x10, 0x6a, 0xde, 0x78, 0x41, 0x53, 0xcc, 0x21, 0x32, 0x66, 0x02, 0x8b, 0xa2, 0x00, 0xd4, - 0x80, 0x41, 0x03, 0xdb, 0x25, 0x92, 0x42, 0x13, 0xc5, 0x23, 0x86, 0x5c, 0x20, 0x0b, 0xbe, 0x08, - 0x96, 0x68, 0x33, 0x52, 0xa8, 0x48, 0x04, 0x03, 0x5e, 0x45, 0x83, 0x51, 0x81, 0xe8, 0x47, 0x75, - 0x24, 0xec, 0x13, 0xbc, 0xd4, 0x0a, 0x45, 0x21, 0x68, 0x18, 0x3c, 0x7b, 0xe4, 0x72, 0x34, 0x40, - 0xad, 0x41, 0x4a, 0xa8, 0x8e, 0x85, 0x92, 0x51, 0x3d, 0x6c, 0xed, 0xf0, 0x78, 0xd5, 0x95, 0x2d, - 0xab, 0x32, 0x46, 0x39, 0xbc, 0xd5, 0x62, 0xe1, 0x97, 0x7f, 0x20, 0xba, 0x95, 0xc0, 0x15, 0xd1, - 0x5d, 0x8a, 0x6c, 0xbd, 0xaf, 0x73, 0xcd, 0x5f, 0x75, 0x2f, 0x8b, 0xc1, 0xd8, 0xbb, 0x7e, 0x15, - 0x8c, 0x2b, 0xef, 0xdc, 0x7a, 0x3f, 0xd3, 0x5b, 0x1d, 0x5b, 0x8b, 0xd7, 0x6f, 0x19, 0x74, 0xa9, - 0x80, 0x26, 0x67, 0xa9, 0x9c, 0x81, 0x65, 0x1f, 0x58, 0x54, 0xc2, 0x9b, 0xde, 0x6f, 0xcb, 0x8a, - 0xb4, 0xcd, 0x7c, 0x84, 0x30, 0xce, 0x03, 0x46, 0x13, 0x65, 0x7e, 0xc5, 0x08, 0x06, 0x62, 0x81, - 0x9a, 0x24, 0x3c, 0x0d, 0x87, 0x75, 0xa2, 0x1a, 0xdd, 0x5d, 0xc1, 0x7f, 0x8c, 0x86, 0x59, 0x01, - 0xfc, 0x23, 0xbc, 0xe5, 0x5c, 0x00, 0xfe, 0x2c, 0x29, 0xda, 0x0e, 0x06, 0x77, 0xd9, 0xab, 0xb8, - 0xf6, 0x4f, 0x3a, 0x55, 0x25, 0xd0, 0x26, 0x9f, 0xe2, 0xb6, 0x6a, 0x53, 0xc7, 0xc8, 0xe6, 0x20, - 0xfc, 0xb6, 0x6d, 0x42, 0xf8, 0xa2, 0xad, 0xd8, 0x4b, 0xc0, 0x70, 0xc9, 0xca, 0x30, 0xc8, 0xfc, - 0x7b, 0x33, 0xda, 0x12, 0x07, 0xb9, 0xc0, 0xc1, 0xe7, 0xe1, 0xda, 0xba, 0x67, 0xac, 0xbe, 0x7f, - 0xcd, 0x86, 0x14, 0xb4, 0x44, 0x76, 0x50, 0x17, 0x50, 0x08, 0xfa, 0x0c, 0x9f, 0x06, 0x90, 0x9a, - 0x09, 0xe6, 0x29, 0x4e, 0x3c, 0xd0, 0x33, 0x43, 0xb2, 0x41, 0xf7, 0x0c, 0x49, 0x98, 0xe2, 0xb0, - 0x98, 0xa5, 0x25, 0xfe, 0x30, 0xa1, 0x62, 0xe8, 0x13, 0x43, 0x92, 0x3c, 0x17, 0x95, 0xa4, 0x18, - 0x36, 0x81, 0xa1, 0xc7, 0x23, 0x13, 0x8e, 0xcc, 0x1c, 0x5e, 0x24, 0x79, 0xda, 0xef, 0xe5, 0xa8, - 0x01, 0xc3, 0x55, 0xb2, 0x04, 0xca, 0xc6, 0xeb, 0x44, 0xb8, 0xf9, 0x72, 0x37, 0xba, 0x1c, 0x2e, - 0x19, 0xe1, 0xd0, 0xd2, 0xaa, 0x0f, 0xb2, 0x3d, 0x4a, 0xf6, 0xcb, 0xb7, 0x9e, 0xdb, 0xf0, 0xcb, - 0xe0, 0x6c, 0xb4, 0x6c, 0xc7, 0xa3, 0x43, 0x2d, 0xe2, 0x3c, 0xf0, 0xf1, 0x88, 0xfd, 0x8b, 0x0d, - 0xa9, 0x78, 0xf3, 0xe5, 0xbc, 0x7f, 0xa1, 0x8d, 0x58, 0xd6, 0x20, 0x4b, 0x9e, 0x5b, 0x1e, 0xfb, - 0xee, 0x26, 0x09, 0x17, 0xaf, 0x9c, 0xa8, 0xfa, 0x97, 0x2b, 0xbc, 0xe8, 0xde, 0xce, 0x7d, 0xb5, - 0xba, 0x2e, 0x0d, 0xd2, 0x31, 0x4c, 0xda, 0xb3, 0xf2, 0x05, 0xca, 0x96, 0xd0, 0xeb, 0xdd, 0xcc, - 0x13, 0x78, 0xeb, 0x25, 0xc0, 0xcf, 0x25, 0x70, 0xf8, 0x97, 0x94, 0x2b, 0xf2, 0x57, 0xc5, 0x43, - 0x9e, 0xbe, 0x59, 0xa1, 0xc0, 0xf4, 0x5d, 0xb8, 0x76, 0x29, 0x67, 0x31, 0x2c, 0xfd, 0x93, 0x49, - 0xbc, 0x78, 0xc1, 0xb3, 0x15, 0x9f, 0x71, 0x6f, 0x65, 0x9d, 0x3f, 0x78, 0x0a, 0x35, 0x1e, 0x61, - 0x0d, 0x0a, 0x0d, 0x06, 0x36, 0xf4, 0x85, 0xde, 0x94, 0x91, 0xfe, 0x40, 0x95, 0x1e, 0x5c, 0x09, - 0xb0, 0x51, 0x24, 0x3a, 0xdd, 0x60, 0x37, 0xb5, 0xf6, 0xaf, 0xb3, 0x31, 0xf4, 0xa4, 0xff, 0xc2, - 0x8a, 0xa5, 0xba, 0x0e, 0x5d, 0xf4, 0xc8, 0x0c, 0xf6, 0x06, 0xe3, 0xd6, 0x8d, 0x7c, 0xf8, 0x1f, - 0x70, 0xa8, 0xc4, 0xa8, 0x91, 0x16, 0xb2, 0x94, 0xce, 0xd7, 0x1f, 0x37, 0xa2, 0x3a, 0x8c, 0xa3, - 0x0e, 0xc1, 0x9c, 0x7b, 0x29, 0xfd, 0xc6, 0x71, 0xdd, 0x5f, 0xcd, 0x67, 0x59, 0x4b, 0xcd, 0x2f, - 0xf6, 0xbc, 0xdb, 0x46, 0xc7, 0xeb, 0x81, 0x8e, 0x13, 0xc0, 0x86, 0xa8, 0x06, 0x21, 0xa2, 0xaf, - 0x50, 0x36, 0x86, 0xd6, 0xb5, 0xba, 0x6b, 0xfc, 0x1c, 0x35, 0x3e, 0x4f, 0x26, 0x5b, 0xae, 0x18, - 0xaf, 0xa1, 0x73, 0x26, 0x0b, 0xf7, 0xa8, 0x64, 0xfb, 0xf5, 0xe7, 0xf5, 0x39, 0xb0, 0xa8, 0xcb, - 0x53, 0x54, 0x0b, 0x0d, 0xd7, 0xcb, 0xfd, 0x71, 0xb2, 0x70, 0x0d, 0x9a, 0x11, 0x5b, 0xaf, 0x86, - 0xcf, 0x79, 0x03, 0xb6, 0xd4, 0x7f, 0x61, 0xb7, 0xec, 0x90, 0x7a, 0xc9, 0xfe, 0xcd, 0x57, 0xf3, - 0xf0, 0x4f, 0xb1, 0xb7, 0xd6, 0x77, 0x7f, 0x39, 0xb7, 0xb1, 0x81, 0xbd, 0xbd, 0x9d, 0x7d, 0xce, - 0x9d, 0x83, 0xf8, 0x40, 0xdd, 0x9e, 0x62, 0xa8, 0xc5, 0xa9, 0x98, 0x05, 0x3e, 0xf4, 0x22, 0x19, - 0x2c, 0xf0, 0x68, 0x21, 0x7c, 0xc1, 0xd4, 0x13, 0xfc, 0xc5, 0x57, 0xce, 0xa0, 0xf7, 0x12, 0xf4, - 0x31, 0xbb, 0x7d, 0xc3, 0xff, 0x9d, 0x50, 0xe0, 0xb2, 0x51, 0x79, 0x9a, 0xa9, 0x7a, 0x8e, 0x7d, - 0x6d, 0x0e, 0xf6, 0xd1, 0xb4, 0x9a, 0x1b, 0x1e, 0xc6, 0x05, 0x99, 0x62, 0x04, 0xc1, 0xe4, 0x1f, - 0x15, 0xca, 0xf9, 0xf1, 0x7c, 0x26, 0xd7, 0xc9, 0x00, 0x72, 0x55, 0x46, 0xe2, 0x6f, 0xbe, 0x40, - 0xe9, 0xcc, 0x4b, 0xf7, 0x88, 0x25, 0x50, 0x64, 0x54, 0xda, 0xf7, 0x68, 0xea, 0x91, 0x04, 0x7a, - 0xeb, 0xf2, 0xd8, 0xdf, 0xbb, 0x30, 0x5f, 0x0d, 0x9a, 0xcd, 0x0e, 0x62, 0x27, 0xfe, 0xb1, 0xac, - 0x75, 0xd3, 0x68, 0xab, 0x6d, 0x01, 0xba, 0xe3, 0xe7, 0x7a, 0x9a, 0xc3, 0x23, 0x0b, 0xe6, 0x70, - 0xfc, 0xb4, 0xac, 0xf5, 0x93, 0xb2, 0xca, 0x15, 0xfc, 0x5c, 0x2f, 0xa8, 0xf3, 0xf6, 0x08, 0x69, - 0xe0, 0x73, 0x83, 0xa0, 0x77, 0xad, 0x26, 0x0c, 0xd2, 0xf8, 0xb9, 0x5e, 0x50, 0xd3, 0x52, 0xbb, - 0xa9, 0x3f, 0x1b, 0x44, 0x35, 0xb5, 0x52, 0xcd, 0xb2, 0x56, 0x4b, 0xe3, 0x36, 0x80, 0xd7, 0x6f, - 0x8c, 0xc5, 0xd8, 0x5d, 0x6b, 0x53, 0x21, 0xb2, 0x63, 0x79, 0xee, 0x87, 0x71, 0xc2, 0x1f, 0xeb, - 0x64, 0xc4, 0x61, 0xc4, 0x1c, 0x73, 0x9a, 0x78, 0xba, 0xd1, 0x47, 0xb0, 0xcc, 0x80, 0x91, 0xcc, - 0x20, 0x29, 0x95, 0x3f, 0x8a, 0x3b, 0x60, 0x2c, 0x56, 0x1b, 0x7f, 0x05, 0xff, 0x99, 0x1f, 0xb4, - 0x8d, 0x85, 0x1f, 0xcb, 0xf1, 0x47, 0x7b, 0xf8, 0x83, 0x3f, 0xec, 0xe3, 0xaf, 0xfc, 0xf8, 0xdf, - 0xe3, 0xfe, 0x07, 0xc0, 0x76, 0xd3, 0x8e, 0x2e, 0x27, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x1a, 0x6b, 0x53, 0xdb, 0xb8, + 0xf6, 0xbb, 0x7f, 0x85, 0xf0, 0xce, 0x74, 0x93, 0x25, 0xe4, 0x01, 0x84, 0x52, 0x88, 0xdd, 0x0b, + 0x84, 0x42, 0xee, 0x2d, 0x34, 0x4d, 0xe8, 0xb6, 0x3b, 0x73, 0x67, 0x76, 0x14, 0x5b, 0x49, 0x04, + 0xb6, 0xe5, 0xb5, 0x64, 0x1e, 0xd3, 0xed, 0x7f, 0xbf, 0xe7, 0x48, 0xb6, 0x93, 0x98, 0xbc, 0x7a, + 0x67, 0x3f, 0x34, 0xd8, 0xd2, 0x39, 0x47, 0xe7, 0xfd, 0x90, 0xdb, 0xd9, 0xe9, 0x7e, 0xba, 0xb8, + 0xfb, 0xa3, 0x7f, 0x49, 0xa6, 0x2a, 0x0c, 0xdc, 0x0e, 0xfe, 0x92, 0x80, 0x46, 0x13, 0xc7, 0x66, + 0x91, 0x0d, 0xef, 0x8c, 0xfa, 0x6e, 0x27, 0x64, 0x8a, 0x92, 0x88, 0x86, 0xcc, 0xb1, 0x1f, 0x39, + 0x7b, 0x8a, 0x45, 0xa2, 0x6c, 0xe2, 0x89, 0x48, 0xb1, 0x48, 0x39, 0xf6, 0x13, 0xf7, 0xd5, 0xd4, + 0x69, 0x37, 0x9b, 0xb6, 0x6b, 0x19, 0x50, 0xab, 0xb4, 0xe7, 0xb3, 0x47, 0xee, 0xb1, 0x3d, 0xfd, + 0x52, 0xe3, 0x11, 0x57, 0x9c, 0x06, 0x7b, 0xd2, 0xa3, 0x01, 0x73, 0x5a, 0xb5, 0x90, 0x3e, 0xf3, + 0x30, 0x0d, 0x8b, 0xf7, 0x54, 0xb2, 0x44, 0xbf, 0xd0, 0x11, 0xbc, 0x47, 0xc2, 0x26, 0x56, 0xe9, + 0xe8, 0x8c, 0x21, 0x6f, 0x4a, 0x13, 0xc9, 0xe0, 0x90, 0x54, 0x8d, 0xf7, 0x8e, 0x61, 0x55, 0x71, + 0x15, 0x30, 0x77, 0xf8, 0x12, 0x79, 0x64, 0xc8, 0x94, 0xe2, 0xd1, 0x44, 0x76, 0x1a, 0x66, 0xb1, + 0x23, 0xbd, 0x84, 0xc7, 0xca, 0xb5, 0x1e, 0x69, 0x42, 0x02, 0xe1, 0xf1, 0xb8, 0xe6, 0x3b, 0xbe, + 0xf0, 0xd2, 0x10, 0xd8, 0xac, 0xc1, 0x82, 0xb3, 0xd3, 0x3a, 0x1d, 0xa7, 0x91, 0xa7, 0xb8, 0x88, + 0xc8, 0xa4, 0xe7, 0x57, 0x58, 0xf5, 0x7b, 0xc2, 0x54, 0x9a, 0x44, 0xc4, 0xaf, 0x4f, 0x98, 0xba, + 0x0c, 0x18, 0x82, 0x9e, 0xbf, 0xe8, 0xad, 0x1f, 0x05, 0xa8, 0x12, 0x93, 0x49, 0xc0, 0x10, 0xda, + 0x20, 0xd5, 0xbd, 0x80, 0x4a, 0xf9, 0x91, 0x4b, 0x55, 0xcf, 0xb6, 0xec, 0x29, 0xf7, 0x99, 0x5d, + 0xad, 0xe1, 0xbe, 0x7d, 0x2b, 0xec, 0xdd, 0x35, 0x40, 0x33, 0xba, 0xd7, 0x95, 0xea, 0xf7, 0x27, + 0x1e, 0xf9, 0xe2, 0xa9, 0x2e, 0x62, 0x16, 0x01, 0x80, 0x52, 0xb1, 0x3c, 0x69, 0x34, 0x1e, 0x22, + 0x51, 0x7f, 0x0a, 0x18, 0x32, 0xd5, 0xe0, 0xa0, 0xe5, 0x64, 0x4c, 0x3d, 0x26, 0x1b, 0xa9, 0x1f, + 0xef, 0x45, 0x42, 0xf1, 0x31, 0x67, 0x49, 0x63, 0x9e, 0xd0, 0x79, 0x99, 0x50, 0x43, 0x66, 0xba, + 0xb1, 0x6b, 0xf6, 0x9f, 0x92, 0x05, 0xe3, 0x79, 0x68, 0xea, 0xdf, 0x03, 0xfc, 0xd1, 0x61, 0xfb, + 0xd0, 0x71, 0xfc, 0xfa, 0x70, 0x5c, 0xef, 0xf6, 0xea, 0x8f, 0x34, 0x48, 0xd9, 0xfb, 0x56, 0xb6, + 0x70, 0xf9, 0xc5, 0x2c, 0xbc, 0x79, 0x53, 0x59, 0x78, 0x77, 0x9a, 0xd5, 0x93, 0x76, 0xfb, 0xe8, + 0xb8, 0x84, 0x07, 0x60, 0xcd, 0x7c, 0xe9, 0x6c, 0x11, 0x33, 0x7f, 0x77, 0x5a, 0xd5, 0x5a, 0x73, + 0x13, 0xf5, 0x56, 0x75, 0x8e, 0xcb, 0x40, 0x50, 0xff, 0xdf, 0xc3, 0x0a, 0xab, 0x29, 0x67, 0xa7, + 0x59, 0xfd, 0x1e, 0x30, 0x45, 0x04, 0xe0, 0x7b, 0x09, 0xa3, 0x8a, 0x65, 0x96, 0xaa, 0xd8, 0xc6, + 0xe4, 0x76, 0xf5, 0x54, 0xd4, 0x41, 0xe4, 0x33, 0xa5, 0x12, 0x3e, 0x4a, 0x15, 0xe8, 0x5a, 0x26, + 0x9e, 0x5d, 0x63, 0xd5, 0x5a, 0x79, 0x5d, 0xbd, 0xc4, 0x0c, 0x94, 0xa2, 0xd8, 0xb3, 0x6a, 0xdc, + 0xd3, 0x47, 0x9a, 0x13, 0x78, 0x05, 0x48, 0x25, 0xf8, 0x98, 0x5d, 0x53, 0xd5, 0x9a, 0x5f, 0x1f, + 0x09, 0xff, 0xa5, 0x4e, 0x63, 0x50, 0xad, 0x7f, 0x31, 0xe5, 0x81, 0x5f, 0x11, 0x08, 0x4f, 0x7d, + 0xff, 0xf2, 0x11, 0xb8, 0x40, 0x1b, 0xb3, 0x88, 0x25, 0x15, 0x1b, 0x79, 0xb6, 0x6b, 0x95, 0xaa, + 0xe3, 0x7e, 0xbf, 0x62, 0xea, 0xf7, 0x4a, 0xb5, 0x06, 0x3e, 0xfa, 0x3b, 0x0d, 0x2a, 0xd5, 0x1f, + 0xcb, 0x11, 0x58, 0x92, 0x88, 0x04, 0xf8, 0x04, 0x04, 0x08, 0x27, 0x29, 0x02, 0x56, 0x0f, 0xc4, + 0xa4, 0x62, 0x5f, 0xe2, 0x3a, 0xc9, 0xb4, 0x00, 0x76, 0x24, 0x63, 0x1e, 0x30, 0x2d, 0x0f, 0xc4, + 0x4f, 0x02, 0x72, 0x7f, 0xcc, 0xd6, 0xc5, 0x18, 0x63, 0x74, 0xcc, 0x27, 0x69, 0x42, 0xb5, 0xda, + 0x8c, 0x3c, 0x64, 0x4c, 0x39, 0xfa, 0xcf, 0x7f, 0xa3, 0x5e, 0xe4, 0x89, 0x30, 0x06, 0xed, 0x31, + 0x12, 0xd3, 0x09, 0x23, 0x3e, 0x55, 0x74, 0x07, 0xbc, 0x61, 0x4e, 0xd3, 0x1f, 0x2e, 0xc0, 0x1d, + 0xc6, 0x22, 0xa9, 0xdc, 0x3b, 0xcd, 0xd3, 0xfb, 0xce, 0xf1, 0xe9, 0xfd, 0xee, 0x6e, 0x55, 0x7b, + 0xf2, 0x95, 0xbd, 0x5b, 0xb9, 0xdf, 0x05, 0xb3, 0xd4, 0xbd, 0x29, 0xf3, 0x1e, 0x98, 0xef, 0x98, + 0xe5, 0xa1, 0x5d, 0x35, 0x26, 0x73, 0xdd, 0xfb, 0x37, 0x2d, 0xe3, 0xf5, 0x83, 0x15, 0xb0, 0x83, + 0x05, 0xd8, 0xd9, 0xa9, 0x57, 0x78, 0x2a, 0x46, 0x2a, 0x78, 0x15, 0xd8, 0xb8, 0x59, 0x13, 0x0e, + 0x44, 0x67, 0x89, 0x0b, 0xb6, 0xeb, 0x2c, 0x67, 0xe4, 0x37, 0x51, 0x53, 0xd9, 0xde, 0x60, 0xc9, + 0x9e, 0xf8, 0xcd, 0xd9, 0x3f, 0x2d, 0xf1, 0xea, 0xb0, 0x5a, 0x89, 0x23, 0x47, 0xcd, 0xd8, 0x19, + 0xf6, 0x0b, 0x76, 0x16, 0x7c, 0xdb, 0x50, 0x79, 0x8e, 0x01, 0x47, 0xaa, 0x17, 0xb0, 0x8f, 0xcf, + 0x65, 0x1c, 0xd0, 0x17, 0x87, 0xb9, 0xcd, 0xf7, 0x76, 0x24, 0x22, 0x66, 0x9f, 0xd8, 0x23, 0x48, + 0x2e, 0x0f, 0x60, 0x1e, 0xb7, 0x59, 0xf8, 0x74, 0x3f, 0x3f, 0x74, 0x4e, 0xd1, 0xb9, 0x33, 0x7c, + 0x97, 0x4f, 0x5c, 0x79, 0xd3, 0x4a, 0x8c, 0xb9, 0xad, 0x07, 0x6e, 0xbc, 0x80, 0x52, 0xad, 0x7e, + 0xf7, 0xa8, 0x64, 0x04, 0x03, 0xed, 0x64, 0x81, 0x17, 0x07, 0x97, 0x4e, 0x47, 0x10, 0x01, 0x0f, + 0xa7, 0x1a, 0x04, 0x63, 0xb8, 0x04, 0x82, 0x4b, 0xf3, 0x20, 0x87, 0xcd, 0xc3, 0x32, 0x15, 0x5c, + 0xfa, 0x81, 0xf2, 0xd6, 0xd0, 0xf2, 0x73, 0xec, 0x01, 0x67, 0x36, 0x3a, 0xda, 0x89, 0xed, 0x38, + 0x59, 0x3a, 0x01, 0xc1, 0xb4, 0x5f, 0xd5, 0xe3, 0x44, 0x28, 0xe1, 0x89, 0x00, 0x04, 0xd4, 0x99, + 0xb4, 0x59, 0xab, 0xe8, 0x14, 0xeb, 0x20, 0x44, 0x30, 0x54, 0x22, 0x01, 0xef, 0xc2, 0x24, 0xda, + 0x53, 0x2c, 0xc4, 0x48, 0xf0, 0x7a, 0xa0, 0xb3, 0xea, 0xdf, 0x7f, 0x67, 0x60, 0x80, 0x1f, 0xc6, + 0xe0, 0xb8, 0x1f, 0x80, 0x3e, 0xb9, 0x11, 0x3e, 0xab, 0x93, 0x7e, 0xc0, 0x90, 0x43, 0x86, 0x09, + 0x8e, 0x7c, 0xfd, 0x78, 0xd9, 0x25, 0xbd, 0x3e, 0xb8, 0x66, 0x6d, 0x81, 0xa2, 0x5c, 0xa4, 0x58, + 0xd3, 0xd4, 0xaa, 0x55, 0x84, 0xd2, 0xf9, 0x01, 0xc9, 0xbf, 0xd7, 0x89, 0x13, 0xf2, 0xa6, 0xbd, + 0xab, 0xb7, 0x4f, 0x6c, 0xbb, 0xba, 0x3b, 0xcb, 0x81, 0x0d, 0x59, 0xbf, 0x97, 0xef, 0x63, 0xe7, + 0xd0, 0xae, 0xed, 0xb4, 0xaa, 0x3f, 0xac, 0x4e, 0x23, 0x2b, 0x14, 0x1d, 0x6d, 0x51, 0xf7, 0x5f, + 0x3c, 0xc4, 0x92, 0x43, 0xd2, 0x24, 0x80, 0xbc, 0xa1, 0x8d, 0xec, 0x49, 0x09, 0x39, 0x05, 0x00, + 0x35, 0x40, 0xa7, 0x61, 0x4a, 0x24, 0xa6, 0x01, 0x08, 0x4a, 0x3c, 0xd9, 0xb1, 0x41, 0x5b, 0x50, + 0x8e, 0xc0, 0x61, 0x43, 0x8b, 0x70, 0x78, 0xc7, 0xa7, 0x3f, 0xa5, 0x9d, 0x95, 0xd0, 0xe1, 0xd8, + 0x26, 0x50, 0xc0, 0xa6, 0x02, 0x76, 0x62, 0x21, 0xa1, 0x94, 0x42, 0x78, 0xa7, 0xa3, 0x90, 0x43, + 0x29, 0x43, 0xcf, 0x07, 0x54, 0x9f, 0x3f, 0x12, 0x5d, 0x23, 0x1c, 0x5b, 0x09, 0x50, 0xcf, 0x53, + 0xb6, 0x66, 0x65, 0x8b, 0x53, 0x16, 0xc4, 0xe7, 0xb0, 0x06, 0xe9, 0x48, 0x61, 0x11, 0x82, 0xc4, + 0xe5, 0xd8, 0xe6, 0x05, 0xa9, 0x79, 0x01, 0xf7, 0x1e, 0x1c, 0xfb, 0x1a, 0x69, 0xbd, 0xef, 0x34, + 0xcc, 0x06, 0xb0, 0x0a, 0x24, 0x0a, 0x1c, 0x6b, 0x05, 0xd2, 0x39, 0x22, 0x9d, 0x53, 0xef, 0x61, + 0x86, 0xb7, 0x70, 0x8a, 0xe1, 0xd4, 0x76, 0x87, 0xf4, 0x91, 0xcd, 0x40, 0xa6, 0x09, 0xd4, 0x7e, + 0x43, 0x7f, 0xba, 0x6f, 0x4a, 0x30, 0xa8, 0x38, 0x8d, 0x41, 0x3d, 0xfb, 0xb0, 0x74, 0xe0, 0x6a, + 0x1b, 0x9e, 0x27, 0xa0, 0x1e, 0x70, 0x3d, 0x05, 0xcb, 0x07, 0xee, 0x97, 0x6e, 0x9f, 0xf4, 0x41, + 0xb9, 0x27, 0xa4, 0xc3, 0xa3, 0x38, 0x55, 0x99, 0x7a, 0xbe, 0xf4, 0xed, 0x9c, 0xb9, 0x28, 0x0d, + 0x47, 0x2c, 0x01, 0x6d, 0xf1, 0xc8, 0xb1, 0x5b, 0xf0, 0x97, 0x3e, 0x3b, 0xf6, 0x51, 0xbb, 0x7d, + 0xd0, 0xb6, 0x73, 0xf5, 0xf8, 0xf0, 0x98, 0xb0, 0xbf, 0x52, 0x9e, 0x30, 0xb4, 0x42, 0xe2, 0xee, + 0x47, 0xfe, 0x22, 0xd5, 0xac, 0x7b, 0xf8, 0xb2, 0x6f, 0x93, 0xff, 0x9f, 0x2a, 0x8a, 0x60, 0x69, + 0xb1, 0x26, 0x89, 0x48, 0x63, 0xa9, 0x05, 0x58, 0x60, 0x1b, 0x92, 0x89, 0xb6, 0x35, 0xfe, 0x5d, + 0x3c, 0x47, 0x3b, 0x0a, 0xd0, 0x34, 0xc9, 0xe1, 0x44, 0xe7, 0x05, 0x97, 0x58, 0x8b, 0xd8, 0x83, + 0x0c, 0x7b, 0xb0, 0x15, 0x76, 0x47, 0x61, 0x73, 0x44, 0xac, 0x6c, 0x33, 0xa4, 0xc9, 0x84, 0x47, + 0x27, 0x4d, 0x42, 0x53, 0x25, 0x70, 0x17, 0x18, 0x56, 0xc0, 0x78, 0x03, 0x7f, 0xe0, 0x5f, 0xab, + 0x78, 0xda, 0x2f, 0x9e, 0x0e, 0x8a, 0xa7, 0xc3, 0xe2, 0xa9, 0x6d, 0x15, 0x8f, 0x47, 0xc5, 0xd3, + 0xdb, 0xe2, 0xe9, 0xd8, 0x3c, 0x35, 0x34, 0x79, 0x73, 0xc4, 0x10, 0xca, 0xde, 0x49, 0x01, 0x90, + 0x6b, 0xdc, 0x48, 0xa0, 0x53, 0xee, 0x48, 0x3c, 0x67, 0x92, 0xb5, 0x72, 0xff, 0x87, 0x27, 0xb7, + 0x8c, 0xb2, 0x14, 0x63, 0xbf, 0x68, 0xfd, 0xe0, 0x71, 0x3b, 0x94, 0x83, 0xe2, 0x90, 0x83, 0xd7, + 0x18, 0xcb, 0xf9, 0x3a, 0x2c, 0x50, 0x0e, 0xb7, 0x3c, 0xa4, 0x3d, 0xe3, 0xab, 0xbd, 0x25, 0xca, + 0x51, 0x71, 0xc8, 0xd1, 0xb6, 0x7c, 0xbd, 0x2d, 0x50, 0xde, 0x6e, 0x79, 0xc8, 0xf1, 0x8c, 0xaf, + 0xe3, 0x1c, 0x65, 0xde, 0x58, 0x03, 0xe6, 0x31, 0xfe, 0xc8, 0x4e, 0xb6, 0x21, 0x36, 0x68, 0x15, + 0xc4, 0x06, 0x5b, 0xda, 0x6b, 0xb0, 0x9f, 0x73, 0x3c, 0xd8, 0xdf, 0x52, 0xc8, 0x41, 0x61, 0xaf, + 0xc1, 0xc1, 0x96, 0x87, 0x1c, 0xce, 0xf8, 0xda, 0xd2, 0x5e, 0x83, 0x76, 0x71, 0x48, 0x7b, 0x5b, + 0xbe, 0x0a, 0x7b, 0x0d, 0x8e, 0xb6, 0x3c, 0xe4, 0xed, 0x8c, 0xaf, 0x2d, 0xed, 0x35, 0x38, 0x2e, + 0x0e, 0x59, 0x34, 0x57, 0x43, 0x47, 0x37, 0x24, 0x54, 0x48, 0x3c, 0x85, 0xcd, 0x22, 0xf1, 0x94, + 0xd0, 0x78, 0x15, 0xbd, 0x8c, 0x0e, 0xd4, 0x84, 0xf3, 0x84, 0x4f, 0xa6, 0x2a, 0x62, 0x52, 0xd6, + 0x3a, 0x8d, 0x0c, 0xc9, 0xda, 0x0e, 0xfb, 0xc2, 0x76, 0x2f, 0x44, 0x20, 0x92, 0x19, 0x62, 0x8e, + 0x47, 0x21, 0xa9, 0xae, 0xd2, 0x57, 0x86, 0xfc, 0xcd, 0x76, 0x2f, 0xc7, 0x63, 0xe6, 0x29, 0x39, + 0xc3, 0xc6, 0xc4, 0xb9, 0xee, 0xc4, 0xe1, 0x27, 0x18, 0x19, 0xa1, 0xf5, 0x99, 0x60, 0xc3, 0x4e, + 0x44, 0x8c, 0xdd, 0x84, 0xac, 0x91, 0xf5, 0x38, 0x57, 0x90, 0x3c, 0x47, 0x22, 0x8d, 0x7c, 0x89, + 0xf4, 0x2d, 0xcc, 0x40, 0xc4, 0x4c, 0x3e, 0xa6, 0x1d, 0x91, 0xd8, 0x1b, 0xfb, 0x90, 0xb9, 0x3d, + 0x85, 0x23, 0x62, 0x34, 0x61, 0x27, 0x1b, 0x28, 0x76, 0x6d, 0x77, 0x0d, 0xa9, 0xac, 0xfa, 0xc5, + 0x09, 0xa8, 0x94, 0x40, 0xe7, 0xdd, 0x1b, 0x6c, 0xa2, 0x77, 0x3e, 0x4f, 0xef, 0x2c, 0x60, 0xcf, + 0x74, 0x91, 0xea, 0x26, 0xfc, 0xb3, 0x79, 0xfc, 0x3e, 0x0c, 0x15, 0x3c, 0x96, 0xe4, 0x3a, 0x65, + 0x99, 0x38, 0x3f, 0x47, 0xec, 0x7a, 0x9e, 0xd8, 0x0d, 0xf5, 0x12, 0xf1, 0x73, 0xf8, 0x37, 0x19, + 0x3e, 0x56, 0xeb, 0x18, 0xda, 0x02, 0x98, 0xb5, 0x60, 0x2e, 0x4e, 0x68, 0x24, 0x43, 0x2e, 0xe5, + 0x02, 0x85, 0xac, 0xd0, 0x0e, 0x96, 0x16, 0xda, 0x66, 0x56, 0x68, 0x0f, 0xe0, 0xc1, 0x5a, 0x59, + 0x66, 0xb5, 0xc7, 0x80, 0xd3, 0x8f, 0x84, 0x50, 0xc5, 0x16, 0x0c, 0xd9, 0x04, 0x26, 0xac, 0xe0, + 0x25, 0x53, 0x80, 0xac, 0x77, 0x1a, 0x1c, 0x7b, 0x8e, 0x82, 0x90, 0x0c, 0x03, 0x5b, 0xd7, 0xe8, + 0x5e, 0x24, 0x15, 0x8d, 0x3c, 0x46, 0x70, 0x8e, 0xd2, 0x45, 0xfa, 0x32, 0xd2, 0xa5, 0x92, 0xe7, + 0x1b, 0x01, 0x6c, 0xac, 0x94, 0x39, 0x8b, 0xe0, 0xdb, 0x8f, 0x46, 0xe8, 0x1b, 0xfa, 0xc0, 0x88, + 0x9a, 0x72, 0x39, 0x43, 0x87, 0x3a, 0xec, 0x89, 0x47, 0x96, 0x20, 0xd1, 0x0d, 0xaa, 0xbb, 0x3d, + 0xc7, 0x0b, 0x11, 0xe0, 0xb2, 0xcc, 0xe4, 0x80, 0xd1, 0x40, 0xf1, 0x90, 0x69, 0xfe, 0xb2, 0x00, + 0x27, 0xa8, 0xdf, 0x24, 0xdb, 0xd8, 0xc4, 0xdf, 0x20, 0xf3, 0xd8, 0x2f, 0xd0, 0x22, 0x87, 0x94, + 0xc3, 0x64, 0x97, 0x87, 0x50, 0x14, 0xbc, 0x6c, 0xe0, 0xea, 0xe6, 0x93, 0x5d, 0xa8, 0x1a, 0x7a, + 0x10, 0xf7, 0x96, 0xa9, 0x27, 0x91, 0x3c, 0x90, 0xee, 0xcd, 0x37, 0xa2, 0xf1, 0xb4, 0x6e, 0x61, + 0xf3, 0x0e, 0xd0, 0x81, 0x96, 0x64, 0x01, 0x46, 0x92, 0x41, 0xee, 0xf6, 0x74, 0xa7, 0xa8, 0xad, + 0x00, 0xbe, 0x81, 0x73, 0x82, 0xbe, 0x31, 0x40, 0x41, 0x4d, 0xf8, 0x12, 0x33, 0x47, 0xd8, 0x38, + 0x8e, 0x40, 0x46, 0x68, 0xd5, 0x0f, 0x5a, 0xa4, 0x22, 0xcf, 0x2e, 0x6e, 0xab, 0x9d, 0x86, 0x81, + 0x70, 0x4b, 0x90, 0x38, 0x95, 0xd8, 0xee, 0x59, 0xa2, 0xf6, 0x80, 0x95, 0x02, 0xa8, 0x4c, 0x0f, + 0xbc, 0xc6, 0x70, 0x02, 0xc3, 0xa3, 0x9d, 0x3f, 0x41, 0xbe, 0x4a, 0xa5, 0x12, 0x21, 0xc1, 0x1e, + 0x7d, 0x46, 0xbf, 0x61, 0xf6, 0x8d, 0x98, 0xba, 0x6d, 0xc6, 0x74, 0x0b, 0x73, 0x9a, 0xbb, 0xa4, + 0xdd, 0xbc, 0xec, 0x6f, 0xd3, 0x17, 0xce, 0x4b, 0xb5, 0xc6, 0x7d, 0x75, 0x07, 0x7c, 0x93, 0x82, + 0x11, 0xb1, 0xcb, 0xdd, 0x60, 0x89, 0xcb, 0x3c, 0xb4, 0x86, 0x8a, 0xe2, 0x88, 0x11, 0x81, 0x1b, + 0xc0, 0xd0, 0x57, 0xe6, 0xef, 0xcb, 0xda, 0x70, 0x3a, 0x3a, 0x78, 0xf7, 0xee, 0x5d, 0x89, 0x0d, + 0xeb, 0x75, 0x08, 0xe9, 0x88, 0x21, 0x17, 0xc8, 0x01, 0x11, 0x40, 0xbb, 0x43, 0xc9, 0x34, 0x61, + 0x63, 0xa7, 0xb8, 0x56, 0x9a, 0x70, 0x35, 0x4d, 0x47, 0x75, 0x4f, 0x84, 0x8d, 0x8f, 0xcc, 0xff, + 0xf0, 0x6c, 0x7e, 0xb1, 0x13, 0x87, 0xde, 0x12, 0x2f, 0xd9, 0xfe, 0x1c, 0x05, 0x34, 0x7a, 0xb0, + 0x5d, 0xbd, 0xde, 0x69, 0x50, 0x77, 0x07, 0x8f, 0x1a, 0x3e, 0xf0, 0x18, 0x09, 0xee, 0x89, 0xf1, + 0x9e, 0x84, 0xb3, 0x18, 0xc6, 0x88, 0x49, 0x13, 0xb3, 0xbc, 0xb0, 0xa2, 0x64, 0x5c, 0x0e, 0x8d, + 0xfc, 0xe8, 0x79, 0x52, 0xab, 0x80, 0xfa, 0x3e, 0x66, 0xd9, 0x92, 0x06, 0xba, 0x67, 0x65, 0x0d, + 0x58, 0x0b, 0x26, 0x6a, 0xb7, 0x9a, 0x25, 0x05, 0x68, 0x8a, 0x59, 0x48, 0x48, 0xe0, 0x06, 0x26, + 0xbd, 0x12, 0xcd, 0x6f, 0xdf, 0x96, 0x0f, 0x19, 0xb9, 0x5a, 0x5b, 0xed, 0x32, 0x4d, 0xe3, 0xca, + 0x7a, 0x18, 0x8c, 0x13, 0x2e, 0x12, 0xae, 0x5e, 0xca, 0x23, 0x46, 0xff, 0x8f, 0xb5, 0xa6, 0xda, + 0x6f, 0x2e, 0xe3, 0x33, 0x84, 0x79, 0x77, 0x16, 0x66, 0x19, 0xa5, 0x2e, 0xba, 0x46, 0x39, 0x00, + 0xdc, 0x2e, 0x97, 0x98, 0x76, 0xfc, 0x55, 0x91, 0x04, 0x7d, 0xda, 0x10, 0x44, 0x85, 0x6c, 0x37, + 0xb8, 0x3a, 0xb7, 0x56, 0x41, 0xed, 0x17, 0x50, 0x5d, 0x00, 0x5b, 0x05, 0x75, 0x90, 0x97, 0xf3, + 0x95, 0x11, 0xf9, 0x36, 0x87, 0x20, 0xbb, 0xe4, 0xeb, 0x94, 0x2b, 0xb6, 0x8a, 0xd4, 0x71, 0x01, + 0x98, 0x55, 0xfa, 0x95, 0xac, 0xbd, 0x2b, 0x43, 0x6e, 0x22, 0x0d, 0x89, 0xc3, 0xd2, 0xe1, 0x46, + 0xd6, 0x88, 0xd2, 0x46, 0xcd, 0x85, 0x21, 0x4b, 0x80, 0xda, 0x6a, 0x60, 0x2b, 0x4f, 0x47, 0xb6, + 0x5b, 0x00, 0x7d, 0x5d, 0xa9, 0x69, 0xb0, 0x46, 0x1f, 0x5c, 0x95, 0xad, 0xca, 0x3a, 0x94, 0x58, + 0x8b, 0xf1, 0xb5, 0xe2, 0xda, 0x96, 0xa1, 0x57, 0xed, 0xf9, 0xe1, 0x73, 0x03, 0x5c, 0xa7, 0x14, + 0x69, 0xc6, 0xe3, 0x78, 0x34, 0x16, 0x18, 0x6e, 0xba, 0x1b, 0xbc, 0x83, 0xe2, 0x00, 0xd1, 0x56, + 0x4e, 0x11, 0x77, 0x1b, 0x52, 0x58, 0x73, 0xc1, 0xf3, 0x48, 0x68, 0x3a, 0xa7, 0x0f, 0x22, 0xf1, + 0xb0, 0x7e, 0x3c, 0x93, 0x51, 0xd1, 0x33, 0x6e, 0x48, 0x59, 0x1f, 0xf2, 0xd6, 0x26, 0x73, 0xc5, + 0xa2, 0x62, 0x91, 0x09, 0x0d, 0x43, 0x4a, 0x3c, 0x91, 0x60, 0xdf, 0x05, 0xfa, 0xd8, 0x40, 0x68, + 0x70, 0x95, 0x11, 0xca, 0x6b, 0x21, 0xc1, 0xfb, 0x01, 0x31, 0x1e, 0x83, 0x4a, 0x4b, 0xd2, 0x7d, + 0xfd, 0xb4, 0x54, 0xba, 0xbd, 0xfd, 0x76, 0x3b, 0x0f, 0x2c, 0x7c, 0xb2, 0x66, 0x91, 0xb5, 0xa4, + 0xe4, 0x9a, 0x2e, 0xec, 0x77, 0xc1, 0x41, 0xe2, 0x33, 0x68, 0x5b, 0xb0, 0x9a, 0x9b, 0xfe, 0x40, + 0x17, 0x08, 0xac, 0x0f, 0xb7, 0x42, 0x03, 0xcd, 0xd2, 0xbb, 0xbe, 0x92, 0x77, 0x3b, 0x2c, 0xcc, + 0x67, 0x70, 0x0f, 0x9b, 0xe3, 0x93, 0x5f, 0xc6, 0x14, 0xbf, 0x74, 0xdc, 0x61, 0x5b, 0x30, 0xe6, + 0x49, 0xf8, 0x44, 0x13, 0x06, 0x4d, 0x22, 0x0f, 0x7c, 0xe2, 0x0b, 0x26, 0xb1, 0xbb, 0x02, 0xa3, + 0x79, 0x41, 0xea, 0xb3, 0xac, 0xf9, 0x93, 0x69, 0x8c, 0x79, 0xa3, 0x6e, 0x4a, 0x04, 0x0b, 0xe7, + 0x6a, 0xc5, 0xac, 0x3c, 0x99, 0xc3, 0xdd, 0xcb, 0x30, 0x0d, 0xa8, 0xca, 0x31, 0xcd, 0x87, 0x93, + 0x0d, 0xba, 0x3c, 0xcb, 0xba, 0x15, 0xcb, 0xe0, 0xf0, 0xe8, 0x31, 0xbb, 0x98, 0xd3, 0xfb, 0x25, + 0x64, 0xbc, 0xdc, 0x2e, 0x10, 0x7b, 0x5a, 0x81, 0x01, 0x8b, 0x26, 0x6a, 0x0a, 0x21, 0xbf, 0x5f, + 0xd0, 0x91, 0x82, 0xb0, 0x8c, 0x11, 0xc3, 0x82, 0xc4, 0x1e, 0xcc, 0xa3, 0x41, 0x00, 0xed, 0x10, + 0x43, 0xb1, 0xa5, 0x5a, 0xb4, 0xd2, 0xd9, 0xab, 0x32, 0x9a, 0x9b, 0x20, 0x4f, 0xd7, 0x79, 0x1a, + 0x9c, 0xaf, 0x56, 0xba, 0xab, 0x86, 0x52, 0x51, 0xf4, 0x7e, 0xd9, 0x15, 0x52, 0xc9, 0x80, 0x5a, + 0x49, 0x4b, 0x8c, 0xf0, 0xe6, 0x97, 0x77, 0xc7, 0xc7, 0xc7, 0xa7, 0xa4, 0x33, 0x72, 0x6f, 0x3e, + 0xdf, 0xdd, 0x11, 0x1c, 0x53, 0xb0, 0x4f, 0xc6, 0xeb, 0x79, 0x82, 0xcc, 0x7a, 0x22, 0x8a, 0x30, + 0x9d, 0x00, 0xf3, 0x20, 0x37, 0x4b, 0x22, 0x1a, 0x90, 0xa9, 0x90, 0x4a, 0xee, 0x98, 0x70, 0x42, + 0x1b, 0x86, 0xf4, 0x85, 0xf0, 0x10, 0xaa, 0x84, 0xd2, 0xb2, 0x01, 0x43, 0x31, 0x34, 0xb5, 0x50, + 0x8b, 0x23, 0xdd, 0xf0, 0x8f, 0xf5, 0xf5, 0x23, 0xd4, 0xcf, 0xd1, 0x1c, 0x87, 0x18, 0x3b, 0x64, + 0xc4, 0x24, 0x16, 0x58, 0x09, 0xd9, 0x02, 0x86, 0x16, 0x6c, 0xbd, 0x48, 0x0a, 0x0d, 0x99, 0x88, + 0x18, 0x62, 0x01, 0x2d, 0x78, 0x91, 0x2c, 0x31, 0xea, 0xa3, 0x50, 0xdd, 0x08, 0x3a, 0xba, 0xf6, + 0x02, 0xab, 0x02, 0x5e, 0x8f, 0xec, 0x28, 0x38, 0x27, 0x78, 0xa9, 0x15, 0x8c, 0x82, 0xb3, 0x30, + 0x78, 0xf6, 0xc9, 0xe5, 0xb0, 0x8f, 0x5c, 0x03, 0x95, 0x50, 0x8b, 0x85, 0x94, 0x91, 0x3d, 0x6c, + 0x13, 0x51, 0xbc, 0xea, 0xd2, 0xf6, 0x17, 0xb5, 0x50, 0xf6, 0x6a, 0x5c, 0x2b, 0xac, 0xf1, 0x0f, + 0xf8, 0xb4, 0xd6, 0xf4, 0x6b, 0x97, 0x9e, 0xb9, 0x33, 0x1e, 0xab, 0x0f, 0x75, 0xad, 0xac, 0xf9, + 0xc6, 0xb7, 0x4d, 0x6d, 0xe9, 0x67, 0xe3, 0x7c, 0xe7, 0x89, 0x78, 0x60, 0xc9, 0x52, 0xa7, 0xcd, + 0x6a, 0xe3, 0xcd, 0xf0, 0x95, 0xd7, 0x2e, 0xbb, 0x46, 0xbc, 0xf9, 0xdc, 0xff, 0x34, 0x58, 0x99, + 0x18, 0xad, 0xe5, 0x97, 0x7e, 0x59, 0x67, 0x8c, 0x9a, 0xc8, 0x04, 0xf5, 0xc0, 0x4d, 0xa1, 0x10, + 0x71, 0x1a, 0x80, 0x0d, 0x13, 0x34, 0x28, 0xb6, 0xd9, 0xd0, 0xa8, 0x81, 0x55, 0xa0, 0x65, 0x03, + 0x6b, 0xa5, 0x38, 0xa1, 0x64, 0xf6, 0xc3, 0xdb, 0x70, 0x6d, 0xdf, 0x5b, 0x86, 0x20, 0xb9, 0xd1, + 0x34, 0xa5, 0x18, 0x0e, 0x81, 0x4e, 0xdb, 0x27, 0x63, 0x81, 0xc8, 0x02, 0x36, 0x92, 0xdc, 0x3f, + 0x76, 0x72, 0xf7, 0x82, 0x8e, 0x3e, 0x59, 0x88, 0x5a, 0xeb, 0x75, 0xd8, 0xde, 0x7c, 0xfe, 0x32, + 0xbc, 0x1c, 0x2c, 0x28, 0xe1, 0xb0, 0x69, 0x58, 0xef, 0x67, 0x67, 0x94, 0xf4, 0x97, 0x1f, 0x3d, + 0xd3, 0xe1, 0xe7, 0xfe, 0xd9, 0x70, 0x51, 0x8f, 0x47, 0x87, 0x86, 0xc4, 0x45, 0xc0, 0x51, 0xc4, + 0x5e, 0x77, 0x4d, 0xe2, 0xb8, 0xf9, 0x7c, 0xd1, 0xeb, 0x1a, 0x25, 0x96, 0x39, 0xe8, 0xea, 0x74, + 0x41, 0xee, 0x44, 0xcc, 0xbd, 0x75, 0x14, 0xba, 0xaf, 0x8c, 0xa8, 0x23, 0xf2, 0x0a, 0x6f, 0x57, + 0x37, 0x63, 0x5f, 0x2d, 0x4f, 0x5c, 0xfd, 0x74, 0x04, 0xe3, 0xdd, 0xb4, 0x3c, 0xb5, 0x6f, 0x70, + 0xbd, 0xf3, 0xac, 0x0f, 0x87, 0xae, 0xd9, 0xda, 0x38, 0x79, 0x12, 0x3d, 0x1e, 0x6d, 0x5b, 0xde, + 0xc3, 0xbf, 0x94, 0x5a, 0x52, 0xd9, 0xb5, 0x3f, 0xe4, 0x85, 0x3d, 0xcb, 0x28, 0x18, 0xbe, 0x73, + 0xb3, 0x7e, 0x39, 0x8a, 0x61, 0xe9, 0x9f, 0x0c, 0xe2, 0xf9, 0x5b, 0x85, 0x75, 0xb1, 0xac, 0x4b, + 0x13, 0x9e, 0xad, 0xb5, 0xf3, 0x87, 0x48, 0xa1, 0x08, 0x44, 0x40, 0x1d, 0x32, 0x12, 0x3a, 0x36, + 0x34, 0x0e, 0xfe, 0x84, 0x91, 0x5e, 0x5f, 0xe7, 0x28, 0x5c, 0x09, 0xb0, 0x93, 0x20, 0x26, 0xdc, + 0xe0, 0x34, 0xbd, 0xf6, 0xeb, 0xd9, 0x08, 0x9a, 0x96, 0x5f, 0x31, 0xb5, 0xe9, 0xb2, 0x64, 0xb2, + 0x23, 0x99, 0xc2, 0xd9, 0xa0, 0xdc, 0xba, 0x95, 0x4f, 0x9c, 0x7d, 0x01, 0x29, 0x1b, 0x39, 0x32, + 0x44, 0x16, 0xc2, 0xf9, 0xfa, 0xe3, 0xda, 0x1e, 0x07, 0x66, 0x20, 0x97, 0x60, 0xcc, 0xbd, 0x94, + 0x2e, 0xd6, 0xaf, 0x7b, 0xcb, 0xf1, 0x9a, 0xcd, 0x85, 0xee, 0x08, 0x9b, 0xa2, 0x4d, 0xf3, 0xca, + 0x75, 0xdf, 0xf8, 0x09, 0xe4, 0x86, 0xa8, 0x06, 0x2e, 0x62, 0xe6, 0xf6, 0xb5, 0xae, 0x75, 0xad, + 0x2f, 0xb8, 0x3e, 0x45, 0x8d, 0x4f, 0xe3, 0xf1, 0x86, 0x7b, 0xad, 0x6b, 0x68, 0xad, 0xc8, 0xdc, + 0xe5, 0x1d, 0xd9, 0x7c, 0xe7, 0x76, 0x7d, 0x01, 0x28, 0xfa, 0xc6, 0x0e, 0xd9, 0x42, 0xc5, 0x9d, + 0xe7, 0xf6, 0x38, 0x99, 0xbb, 0x7b, 0xcb, 0x80, 0x9b, 0xaf, 0x26, 0x9e, 0x59, 0x85, 0x5e, 0x9c, + 0x53, 0xa0, 0x9d, 0x72, 0x49, 0xbd, 0xa4, 0xff, 0xd6, 0xab, 0x21, 0xec, 0xa7, 0xd0, 0xf7, 0x57, + 0xb7, 0x07, 0x39, 0xb6, 0xb5, 0x06, 0xfd, 0x60, 0x33, 0xfa, 0x0c, 0x3b, 0x4f, 0xe2, 0x7d, 0x7d, + 0x65, 0x87, 0xae, 0x16, 0xa7, 0x72, 0x1a, 0xf0, 0xe8, 0x21, 0x4f, 0x0b, 0x22, 0x9a, 0x73, 0x5f, + 0x50, 0xf5, 0x18, 0x3f, 0x33, 0xaa, 0x29, 0x14, 0x69, 0x49, 0x1f, 0xb3, 0x2b, 0x1f, 0xfc, 0x24, + 0x5e, 0xe4, 0x65, 0xab, 0xf2, 0x04, 0x56, 0xcf, 0x1a, 0x9f, 0x3c, 0xd9, 0x47, 0x93, 0x6a, 0xae, + 0x78, 0xe8, 0x27, 0x55, 0x8a, 0x1e, 0x04, 0xe3, 0x66, 0x54, 0x30, 0xc7, 0xe3, 0xd9, 0xd0, 0x66, + 0x82, 0x01, 0xe8, 0xea, 0x88, 0xc4, 0x0f, 0x8d, 0x00, 0x59, 0x34, 0x3c, 0x07, 0xee, 0x90, 0x25, + 0x50, 0x64, 0x74, 0xd8, 0x9f, 0xd3, 0xd4, 0x27, 0x09, 0x34, 0x5f, 0xe5, 0xeb, 0x97, 0xf3, 0xee, + 0xab, 0xb1, 0xb0, 0xd5, 0x6a, 0x63, 0xee, 0xc4, 0x3f, 0xcd, 0xe6, 0xca, 0x91, 0xef, 0xa0, 0x09, + 0xd9, 0x1d, 0x7f, 0x57, 0xc3, 0x1c, 0x1e, 0x35, 0x61, 0x50, 0xc3, 0xdf, 0x66, 0x73, 0xe5, 0x80, + 0x66, 0x62, 0x05, 0x7f, 0x57, 0x13, 0x6a, 0xbf, 0x3d, 0x42, 0x18, 0xf8, 0x5d, 0x43, 0xe8, 0xdd, + 0x7e, 0x0b, 0x06, 0x2d, 0xfc, 0x5d, 0x4d, 0xa8, 0xd5, 0xd4, 0xa7, 0xe9, 0x3f, 0x6b, 0x48, 0xb5, + 0x0c, 0x53, 0xad, 0x32, 0x57, 0x0b, 0xf3, 0x18, 0x24, 0xaf, 0xff, 0x30, 0x16, 0x63, 0x1b, 0x66, + 0x54, 0x85, 0x99, 0x1d, 0xcb, 0x73, 0x2f, 0x8c, 0x13, 0xf1, 0x58, 0x27, 0x43, 0x01, 0x33, 0xc8, + 0x48, 0xd0, 0xc4, 0x37, 0x1d, 0x21, 0x26, 0xcb, 0x2c, 0x31, 0x92, 0x29, 0x04, 0xa5, 0xb6, 0x47, + 0x71, 0xf1, 0x88, 0xc5, 0x6a, 0xed, 0xa7, 0xd7, 0x9f, 0xf9, 0x8a, 0x6a, 0xcd, 0x7d, 0xa1, 0xc5, + 0x2f, 0xc5, 0xf0, 0x07, 0xbf, 0x26, 0xe3, 0xa7, 0x65, 0xfc, 0x3f, 0x59, 0xff, 0x03, 0x7a, 0xb5, + 0xbc, 0x3e, 0xa3, 0x25, 0x00, 0x00 }; @@ -1425,64 +1425,64 @@ const uint8_t PAGE_settings_time[] PROGMEM = { 0x4a, 0x66, 0xc4, 0xf3, 0xb2, 0x29, 0x03, 0xe9, 0xf7, 0x2e, 0x7e, 0x07, 0xc0, 0x1e, 0xbf, 0xe5, 0x91, 0x37, 0xf4, 0xc2, 0xe8, 0xc6, 0xc8, 0x24, 0xae, 0x0a, 0xc7, 0xd0, 0xfa, 0x20, 0x37, 0xff, 0x70, 0x02, 0x6b, 0x5a, 0xcc, 0x99, 0xa8, 0xbe, 0x71, 0x26, 0xfe, 0x2a, 0x9c, 0x49, 0xf7, 0x9f, - 0x73, 0x75, 0xcb, 0x36, 0x00, 0x38, 0x94, 0xcb, 0x0f, 0x80, 0xf1, 0x92, 0xdc, 0x78, 0x32, 0x14, - 0x2e, 0x21, 0x4c, 0x3b, 0x24, 0xd2, 0xca, 0x07, 0x6d, 0xc4, 0x47, 0x23, 0x70, 0x33, 0x0b, 0x0b, - 0xd7, 0x06, 0xfb, 0xf1, 0x62, 0x7b, 0x5d, 0xf6, 0xaa, 0x26, 0xaf, 0xb6, 0x74, 0xac, 0x4f, 0xde, - 0xd3, 0x00, 0x9f, 0x03, 0x7b, 0x76, 0x38, 0x73, 0x23, 0x94, 0x87, 0xf9, 0x22, 0xaa, 0x1c, 0xa2, - 0x09, 0x8f, 0xc3, 0xc8, 0x90, 0x5b, 0xb5, 0xe3, 0x30, 0x84, 0xe0, 0x8e, 0x54, 0x7b, 0x5c, 0xbb, - 0x32, 0x2f, 0x02, 0x2f, 0x01, 0x29, 0x74, 0xea, 0xa6, 0x61, 0x30, 0xc2, 0x76, 0xcc, 0x6e, 0x18, - 0x9f, 0x31, 0x19, 0x47, 0x60, 0xd2, 0x2e, 0xca, 0xd5, 0xe7, 0x44, 0x78, 0x22, 0x76, 0x37, 0xfc, - 0x0a, 0x44, 0x3a, 0xbc, 0xce, 0x7c, 0x0f, 0x8e, 0x20, 0xf3, 0x20, 0xfb, 0x58, 0xd6, 0x43, 0x1b, - 0xb2, 0x58, 0x66, 0xfd, 0x7c, 0x90, 0x91, 0xeb, 0xdc, 0xf9, 0x8b, 0x64, 0x27, 0xa7, 0x25, 0xf0, - 0xaa, 0xf8, 0x4a, 0xd6, 0x76, 0x34, 0x80, 0xc1, 0x62, 0xb9, 0xa2, 0xbd, 0xe0, 0x39, 0x67, 0xe3, - 0xed, 0xd4, 0xf6, 0x36, 0xa9, 0xed, 0x80, 0x23, 0xca, 0x3c, 0xc7, 0x2b, 0x2c, 0xab, 0xbc, 0xa7, - 0xa9, 0xed, 0xad, 0x53, 0x9b, 0xdb, 0x42, 0xae, 0xa2, 0xb6, 0x22, 0xfb, 0x4d, 0xeb, 0xc4, 0x6e, - 0x8f, 0x7f, 0x32, 0xe2, 0xc2, 0x49, 0x0d, 0x05, 0xbc, 0xe7, 0xd2, 0xb8, 0x36, 0x4f, 0xdb, 0xb0, - 0x0a, 0x47, 0xf3, 0xcb, 0x95, 0x45, 0x04, 0x53, 0xb1, 0xcb, 0xb3, 0x73, 0x79, 0x99, 0x1c, 0x45, - 0x88, 0xd1, 0x19, 0x82, 0x12, 0xd1, 0x94, 0x31, 0xfd, 0x1e, 0xcd, 0x78, 0x78, 0x13, 0x41, 0x66, - 0x86, 0x86, 0x32, 0xcb, 0xa7, 0x21, 0xa8, 0xa4, 0x37, 0x8f, 0xa7, 0xf3, 0x52, 0x39, 0x8a, 0x19, - 0x5e, 0xd3, 0x86, 0x34, 0x24, 0xee, 0xdb, 0x6d, 0x79, 0x57, 0x00, 0xd1, 0x70, 0xdf, 0x6e, 0x31, - 0xe2, 0xf3, 0x31, 0x52, 0x03, 0x88, 0x43, 0x18, 0x94, 0x35, 0x35, 0x7a, 0x32, 0x44, 0x5d, 0x9c, - 0x6b, 0x4e, 0x26, 0x84, 0x8d, 0x65, 0xc4, 0x8a, 0x54, 0x92, 0x20, 0x05, 0x30, 0xdf, 0x5c, 0x5e, - 0x58, 0xd8, 0x6f, 0xc1, 0x60, 0x05, 0x3a, 0xef, 0x9c, 0xa4, 0xe8, 0x92, 0xe5, 0x95, 0x0d, 0x31, - 0xaf, 0xe5, 0xbd, 0xb5, 0x25, 0x4b, 0x40, 0xe7, 0x64, 0x3b, 0x96, 0x6a, 0x56, 0x9b, 0x22, 0xb7, - 0x05, 0x8b, 0xa4, 0xae, 0x52, 0x9d, 0x6c, 0xc3, 0xd3, 0xfd, 0x51, 0x3c, 0xfd, 0x09, 0x9f, 0xa1, - 0x1a, 0x40, 0x01, 0xb9, 0x70, 0x0e, 0xcf, 0x09, 0xab, 0xa6, 0x65, 0x93, 0xeb, 0xcf, 0x0d, 0x9a, - 0x44, 0x48, 0x84, 0xc4, 0xf3, 0x8d, 0xe7, 0x56, 0xf6, 0x13, 0xa9, 0xaa, 0x53, 0x6b, 0xf3, 0x98, - 0x09, 0xc8, 0x96, 0x99, 0xba, 0x33, 0x7b, 0x36, 0x8b, 0xe8, 0xe8, 0xb5, 0x8b, 0x55, 0xef, 0x38, - 0xf1, 0xeb, 0x72, 0xe8, 0x04, 0xb2, 0xeb, 0xfa, 0x2e, 0x1b, 0x46, 0x41, 0xa3, 0x09, 0xce, 0x21, - 0x24, 0x81, 0x5d, 0x2d, 0xaf, 0x7a, 0xac, 0xf6, 0xbf, 0xbe, 0xf7, 0xda, 0xe3, 0xe8, 0x68, 0x49, - 0x38, 0x85, 0x04, 0x49, 0x92, 0x2f, 0xb5, 0xcf, 0xbe, 0xb7, 0x4f, 0x0c, 0x81, 0x6f, 0x13, 0x4b, - 0x82, 0xe4, 0x64, 0xc9, 0x0a, 0x9f, 0xed, 0x36, 0x2f, 0x1d, 0x54, 0x29, 0xe1, 0x6d, 0x9e, 0x4b, - 0x25, 0x2c, 0xe7, 0xe6, 0x3c, 0xaf, 0xee, 0x72, 0xfa, 0xdd, 0x17, 0x46, 0xfb, 0x4b, 0x9b, 0xd4, - 0xd7, 0xc4, 0xd6, 0xfd, 0x81, 0xdb, 0xa2, 0x25, 0x2c, 0x6b, 0x62, 0xeb, 0xff, 0x14, 0x96, 0x15, - 0x86, 0xa5, 0x89, 0xe7, 0xba, 0xb2, 0x1d, 0x80, 0x02, 0x75, 0x75, 0x17, 0x29, 0x5b, 0x6f, 0x0e, - 0x6d, 0x35, 0x18, 0xa1, 0x09, 0xa4, 0xcb, 0x68, 0x0a, 0xe6, 0xee, 0xee, 0x80, 0xcf, 0x49, 0xd2, - 0x5a, 0x3b, 0xa7, 0xef, 0xf9, 0xc0, 0xdd, 0x80, 0x86, 0x13, 0x3f, 0xe2, 0xc8, 0x81, 0x90, 0x32, - 0xa4, 0x28, 0x8e, 0xa8, 0x8b, 0x40, 0x6f, 0x75, 0x87, 0x41, 0xde, 0x39, 0x44, 0x12, 0xc1, 0x90, - 0x43, 0x1a, 0xf2, 0xbe, 0x7f, 0xd1, 0x43, 0x84, 0xb9, 0xe8, 0x74, 0x00, 0xa9, 0x74, 0xeb, 0xf2, - 0x0c, 0x39, 0x7c, 0x3a, 0x85, 0x81, 0xa8, 0x98, 0x93, 0x78, 0xdf, 0xc7, 0x60, 0xbf, 0xfa, 0x6a, - 0x57, 0x4c, 0x68, 0x42, 0x0f, 0x3a, 0x3b, 0x01, 0xbc, 0x3e, 0x9f, 0xed, 0x48, 0xd7, 0x85, 0xe4, - 0xde, 0x32, 0x4d, 0x2e, 0xcb, 0x24, 0x59, 0x81, 0xb9, 0x74, 0x44, 0x62, 0x5f, 0x20, 0xa2, 0x2b, - 0x3e, 0x59, 0x85, 0x42, 0x61, 0x23, 0x6f, 0xb7, 0x49, 0x82, 0x42, 0xf9, 0x3c, 0xc0, 0xdf, 0xf2, - 0xe9, 0x1d, 0x41, 0x17, 0xac, 0x74, 0x31, 0x1a, 0x21, 0xcd, 0xc0, 0x7a, 0x04, 0x6e, 0x95, 0x53, - 0x91, 0x4e, 0x9f, 0x6d, 0x6e, 0x2e, 0xb9, 0x9e, 0xd5, 0x83, 0x69, 0x55, 0x7e, 0x0a, 0x8b, 0x32, - 0xfe, 0xd4, 0x0e, 0x0b, 0x17, 0xe0, 0x62, 0x53, 0x32, 0x57, 0x9b, 0x03, 0xed, 0xe7, 0xf1, 0xe7, - 0x32, 0x36, 0x90, 0x1a, 0xee, 0x16, 0xce, 0xbd, 0xf1, 0x44, 0x2c, 0xef, 0x10, 0xad, 0x6f, 0xd1, - 0x5b, 0xde, 0x22, 0xf7, 0x43, 0x3c, 0x48, 0x9d, 0x4a, 0x3a, 0x3b, 0xfa, 0x50, 0x12, 0x9d, 0x52, - 0x9d, 0x4b, 0x94, 0x4b, 0xba, 0xb2, 0xe0, 0x12, 0xc7, 0x1e, 0xab, 0x97, 0x11, 0x89, 0x05, 0xd7, - 0xc1, 0x2f, 0x69, 0x4b, 0xd9, 0x2b, 0x77, 0xcf, 0xae, 0x1d, 0xc4, 0xd1, 0x44, 0xe2, 0x8d, 0x66, - 0x1e, 0x24, 0x9e, 0xba, 0xdf, 0x09, 0xff, 0x23, 0x48, 0xdb, 0x84, 0x52, 0x1c, 0xce, 0x0a, 0xbb, - 0x63, 0xd1, 0x80, 0xa4, 0x2a, 0x9d, 0xf4, 0x21, 0x1d, 0x50, 0x53, 0xa3, 0x91, 0x9e, 0x63, 0xe9, - 0x94, 0xcb, 0x63, 0xa0, 0x43, 0x4e, 0xf6, 0x4a, 0xad, 0x45, 0xf7, 0x34, 0x37, 0xbf, 0xa1, 0x6e, - 0x0a, 0x59, 0x13, 0xcb, 0xc1, 0xf9, 0x5f, 0xdd, 0x71, 0x25, 0x28, 0x37, 0x09, 0xe9, 0xc8, 0x7a, - 0xfa, 0x77, 0x33, 0x9a, 0x87, 0xd2, 0x0b, 0xa2, 0xa2, 0x65, 0x61, 0x1e, 0xdb, 0x05, 0x70, 0x2b, - 0x7f, 0x28, 0x94, 0xb4, 0x28, 0xec, 0x5c, 0x12, 0x4d, 0x13, 0x39, 0x25, 0x35, 0x27, 0x51, 0xb2, - 0x93, 0x47, 0x54, 0x90, 0xbf, 0x5f, 0x0a, 0xb9, 0x0f, 0xe8, 0x57, 0x0d, 0x53, 0x55, 0xd3, 0x6b, - 0x8d, 0x6d, 0x8f, 0xf9, 0x1e, 0xa3, 0x05, 0x7d, 0xad, 0x3f, 0x97, 0xb3, 0x14, 0xa8, 0x6c, 0x05, - 0xcf, 0xbb, 0xe0, 0x70, 0x68, 0xfa, 0xe7, 0x4f, 0xf5, 0xfd, 0xfd, 0x72, 0xa0, 0x5b, 0xcb, 0x8a, - 0xb1, 0x34, 0xd8, 0x87, 0xcf, 0xd5, 0xe5, 0xd9, 0x25, 0x76, 0xee, 0xa9, 0x1a, 0xbb, 0x24, 0xeb, - 0x59, 0xf8, 0x93, 0x88, 0x53, 0xfd, 0xcc, 0xeb, 0xbf, 0x2f, 0xac, 0x05, 0xc7, 0xf6, 0x25, 0x00, + 0x52, 0xdd, 0xb2, 0x95, 0x1f, 0x0e, 0xe4, 0xf2, 0x03, 0x60, 0xbb, 0x24, 0x37, 0x9e, 0x0c, 0x83, + 0x4b, 0xc8, 0xd2, 0xee, 0x88, 0xb4, 0xf0, 0x41, 0x1b, 0xf1, 0xd1, 0x08, 0x5c, 0xcc, 0xc2, 0xba, + 0xb5, 0xb1, 0x7e, 0xbc, 0xd8, 0x5e, 0x93, 0xbd, 0xaa, 0xc9, 0x6b, 0x2d, 0x1d, 0xe7, 0x93, 0xf7, + 0x34, 0xb8, 0xe7, 0xc0, 0x96, 0x1d, 0xce, 0xdc, 0x08, 0xe5, 0x61, 0xbe, 0x88, 0x2a, 0x87, 0x68, + 0xc2, 0xe3, 0x30, 0x32, 0xe4, 0x56, 0xed, 0x38, 0x0c, 0x21, 0xb0, 0x23, 0xd5, 0x1a, 0xd7, 0x6e, + 0xcc, 0x8b, 0xc0, 0x43, 0x40, 0xfa, 0x9c, 0xba, 0x68, 0x18, 0x8c, 0xb0, 0x1d, 0xb3, 0x1b, 0xc6, + 0x67, 0x4c, 0xc6, 0x10, 0x98, 0xb4, 0x8b, 0x72, 0xf5, 0x39, 0x11, 0x9e, 0x88, 0xdd, 0x0d, 0x9f, + 0x02, 0x51, 0x0e, 0xaf, 0x33, 0xdf, 0x03, 0xf1, 0x67, 0x1e, 0x62, 0x1f, 0xcb, 0x5a, 0x68, 0x43, + 0x16, 0xcb, 0xac, 0x9f, 0x0f, 0x32, 0xf2, 0x9c, 0x3b, 0x7f, 0x91, 0xe8, 0xe4, 0xb4, 0x04, 0x5e, + 0x15, 0x5f, 0xc9, 0xba, 0x8e, 0x06, 0x30, 0x58, 0x2c, 0x57, 0xb4, 0x07, 0x3c, 0xe7, 0x6c, 0xbc, + 0x9d, 0xda, 0xde, 0x26, 0xb5, 0x1d, 0x70, 0x42, 0x99, 0xe7, 0x78, 0x85, 0x65, 0x85, 0xf7, 0x34, + 0xb5, 0xbd, 0x75, 0x6a, 0x73, 0x5b, 0xc8, 0x55, 0xd4, 0x56, 0x64, 0xaf, 0x69, 0x9d, 0xd8, 0xed, + 0xb1, 0x4f, 0x46, 0x5b, 0x38, 0xa9, 0xa1, 0x80, 0xf7, 0x5c, 0x1a, 0xd3, 0xe6, 0x29, 0x1b, 0x56, + 0xa1, 0x68, 0x7e, 0xb1, 0xb2, 0x88, 0x5e, 0x2a, 0x6e, 0x79, 0x76, 0x2e, 0x2f, 0x13, 0xa3, 0x08, + 0x31, 0x3a, 0x43, 0x50, 0x1e, 0x9a, 0x32, 0x9e, 0xdf, 0xa3, 0x19, 0x0f, 0x6f, 0x22, 0xc8, 0xca, + 0xd0, 0x50, 0x66, 0xf8, 0x34, 0x04, 0x95, 0xf4, 0xe6, 0xb1, 0x74, 0x5e, 0x26, 0x47, 0x31, 0xc3, + 0x6b, 0xda, 0x90, 0x86, 0xc3, 0x7d, 0xbb, 0x2d, 0xef, 0x09, 0x20, 0x12, 0xee, 0xdb, 0x2d, 0x46, + 0x7c, 0x3e, 0x46, 0x6a, 0x00, 0x71, 0x08, 0x81, 0xb2, 0x9e, 0x46, 0x4f, 0x86, 0xa7, 0x8b, 0x73, + 0xcd, 0xc9, 0x84, 0xb0, 0xb1, 0x8c, 0x56, 0x91, 0x4a, 0x10, 0xa4, 0x00, 0xe6, 0x9b, 0xcb, 0xcb, + 0x0a, 0xfb, 0x2d, 0x18, 0xab, 0x40, 0xe7, 0x9d, 0x93, 0x14, 0x5d, 0xb2, 0xbc, 0xb2, 0x21, 0xe6, + 0xb5, 0x9c, 0xb7, 0xb6, 0x64, 0x09, 0xe8, 0x9c, 0x6c, 0xc7, 0x52, 0xcd, 0x6a, 0x51, 0xe4, 0xb6, + 0x60, 0x91, 0xd4, 0x55, 0xaa, 0x93, 0x6d, 0x78, 0xba, 0x3f, 0x8a, 0xa7, 0x3f, 0xe1, 0x33, 0x54, + 0x03, 0x28, 0x20, 0x17, 0xce, 0xe1, 0x39, 0x61, 0xd5, 0xb4, 0x6c, 0x72, 0xfd, 0xb9, 0x41, 0x93, + 0x08, 0x89, 0x90, 0x78, 0xbe, 0xf1, 0xdc, 0xca, 0x7e, 0x22, 0x55, 0x75, 0x6a, 0x6d, 0x1e, 0x33, + 0x01, 0x99, 0x32, 0x53, 0xf7, 0x65, 0xcf, 0x66, 0x10, 0x1d, 0xbd, 0x76, 0xb1, 0xea, 0x1d, 0x27, + 0x7e, 0x5d, 0x0e, 0x9d, 0x40, 0x66, 0x5d, 0xdf, 0x65, 0xc3, 0x28, 0x68, 0x34, 0xc1, 0x39, 0x84, + 0x24, 0xb0, 0xab, 0xe5, 0x55, 0x8f, 0xd5, 0xfe, 0xd7, 0xf7, 0x5e, 0x79, 0x1c, 0x1d, 0x2d, 0x09, + 0xa7, 0x90, 0x20, 0x49, 0x72, 0xa5, 0xf6, 0xd9, 0xf7, 0xf6, 0x88, 0x21, 0xe8, 0x6d, 0x62, 0x49, + 0x90, 0x9c, 0x2c, 0x59, 0xe1, 0xb3, 0x9d, 0xe6, 0xa5, 0x83, 0x2a, 0x25, 0xbc, 0xcd, 0xf3, 0xa8, + 0x84, 0xe5, 0xdc, 0x9c, 0xe7, 0xd5, 0x5d, 0x4e, 0xbf, 0xfb, 0xb2, 0x68, 0x7f, 0x69, 0x93, 0xfa, + 0x9a, 0xd8, 0xba, 0x3f, 0x70, 0x53, 0xb4, 0x84, 0x65, 0x4d, 0x6c, 0xfd, 0x9f, 0xc2, 0xb2, 0xc2, + 0xb0, 0x34, 0xf1, 0x5c, 0x57, 0xb6, 0x02, 0x50, 0xa0, 0xae, 0xed, 0x22, 0x65, 0xeb, 0xcd, 0xa1, + 0xad, 0x06, 0x23, 0x34, 0x81, 0x54, 0x19, 0x4d, 0xc1, 0xdc, 0xdd, 0x1d, 0xf0, 0x39, 0x49, 0x4a, + 0x6b, 0xe7, 0xf4, 0x1d, 0x1f, 0xb8, 0x1b, 0xd0, 0x70, 0xe2, 0x47, 0x1c, 0x39, 0x10, 0x52, 0x86, + 0x14, 0xc5, 0x11, 0x75, 0x11, 0xe8, 0xad, 0xee, 0x2e, 0xc8, 0xfb, 0x86, 0x48, 0x22, 0x18, 0x72, + 0x48, 0x41, 0xde, 0xf7, 0x2f, 0x7a, 0x88, 0x30, 0x17, 0x9d, 0x0e, 0x20, 0x8d, 0x6e, 0x5d, 0x9e, + 0x21, 0x87, 0x4f, 0xa7, 0x30, 0x10, 0x15, 0x73, 0x12, 0xef, 0xfb, 0x18, 0xec, 0x57, 0x5f, 0xeb, + 0x8a, 0x09, 0x4d, 0xe8, 0x41, 0x67, 0x27, 0x80, 0xd7, 0xe7, 0xb3, 0x1d, 0xe9, 0xba, 0x90, 0xdc, + 0x5b, 0xa6, 0xc8, 0x65, 0x99, 0x20, 0x2b, 0x30, 0x97, 0x8e, 0x48, 0xec, 0x0b, 0x44, 0x74, 0xb5, + 0x27, 0x2b, 0x50, 0x28, 0x6a, 0xe4, 0xcd, 0x36, 0x49, 0x50, 0x28, 0x9f, 0x07, 0xf8, 0x5b, 0x3e, + 0xbd, 0x23, 0xe8, 0x82, 0x95, 0x2e, 0x46, 0x23, 0xa4, 0x19, 0x58, 0x8f, 0xc0, 0xad, 0x72, 0x2a, + 0xd2, 0xe9, 0xb3, 0x8d, 0xcd, 0x25, 0xd7, 0xb3, 0x7a, 0x30, 0xad, 0xca, 0x4f, 0x61, 0x51, 0xc6, + 0x9f, 0xda, 0x61, 0xe1, 0x02, 0x5c, 0x6c, 0x4a, 0xe6, 0x6a, 0x63, 0xa0, 0xfd, 0x3c, 0xfe, 0x5c, + 0xc6, 0x06, 0x52, 0xc3, 0xdd, 0xc2, 0xb9, 0x37, 0x9e, 0x88, 0xe5, 0x1d, 0xa2, 0xf5, 0x2d, 0x7a, + 0xcb, 0x5b, 0xe4, 0x7e, 0x88, 0x07, 0xa9, 0x53, 0x49, 0x57, 0x47, 0x1f, 0x4a, 0xa2, 0x53, 0xaa, + 0x6b, 0x89, 0x72, 0x49, 0x47, 0x16, 0x5c, 0xe2, 0xd8, 0x63, 0xf5, 0x32, 0x22, 0xb1, 0xe0, 0x3a, + 0xf8, 0x25, 0x2d, 0x29, 0x7b, 0xe5, 0xde, 0xd9, 0xb5, 0x83, 0x38, 0x9a, 0x48, 0xbc, 0xd1, 0xcc, + 0x83, 0xa4, 0x53, 0xf7, 0x3a, 0xe1, 0x7f, 0x04, 0x29, 0x9b, 0x50, 0x8a, 0xc3, 0x59, 0x61, 0x77, + 0x2c, 0x1a, 0x90, 0x54, 0xa5, 0x93, 0x3e, 0xa4, 0x03, 0x6a, 0x6a, 0x34, 0xd2, 0x73, 0x2c, 0x9d, + 0x72, 0x79, 0x0c, 0x74, 0xc8, 0xc9, 0x5e, 0xa9, 0xb5, 0xe8, 0x9c, 0xe6, 0xe6, 0xb7, 0xd3, 0x4d, + 0x21, 0xeb, 0x61, 0x39, 0x38, 0xff, 0xab, 0xbb, 0xad, 0x04, 0xe5, 0x26, 0x21, 0x1d, 0x59, 0x4f, + 0xff, 0x66, 0x46, 0xf3, 0x50, 0x7a, 0x41, 0x54, 0xb4, 0x2c, 0xcc, 0x63, 0xbb, 0x00, 0x6e, 0xe5, + 0x8f, 0x84, 0x92, 0xf6, 0x84, 0x9d, 0x4b, 0xa2, 0x69, 0x22, 0xa7, 0xa4, 0xde, 0x24, 0x4a, 0x76, + 0xf2, 0x88, 0x0a, 0xf2, 0xb7, 0x4b, 0x21, 0xf7, 0x01, 0xfd, 0xaa, 0x61, 0xaa, 0x4a, 0x7a, 0xad, + 0xa9, 0xed, 0x31, 0xdf, 0x63, 0xb4, 0xa0, 0xaf, 0xf4, 0xe7, 0x72, 0x96, 0x02, 0x95, 0x6d, 0xe0, + 0x79, 0x07, 0x1c, 0x0e, 0x4d, 0xff, 0xf4, 0xa9, 0xbe, 0xbf, 0x5f, 0x0e, 0x74, 0x5b, 0x59, 0x31, + 0x96, 0x06, 0xfb, 0xf0, 0xb9, 0x9a, 0x3c, 0xbb, 0xbc, 0xce, 0x3d, 0x55, 0x5f, 0x97, 0x64, 0x2d, + 0x0b, 0x7f, 0x12, 0x71, 0xaa, 0x9f, 0x78, 0xfd, 0x17, 0x60, 0xbd, 0xb8, 0x9a, 0xf2, 0x25, 0x00, 0x00 }; @@ -1625,7 +1625,7 @@ const uint8_t PAGE_settings_sec[] PROGMEM = { 0xd6, 0x1c, 0x4e, 0xf0, 0xc0, 0x6a, 0x53, 0xa5, 0x49, 0x87, 0xf6, 0x17, 0x0b, 0x94, 0xe0, 0xac, 0x9a, 0xf4, 0xf1, 0x6a, 0x8c, 0x0e, 0x95, 0x49, 0xb4, 0xd6, 0x73, 0x25, 0x23, 0xea, 0x07, 0x23, 0x54, 0x6e, 0x61, 0x66, 0xf4, 0x43, 0xca, 0xa7, 0x49, 0x8e, 0x72, 0xc9, 0x87, 0x34, 0x4d, 0xa1, - 0xd0, 0x61, 0x37, 0xd2, 0x10, 0xd9, 0xb0, 0x9d, 0xfe, 0xee, 0xf3, 0xfe, 0xce, 0xf6, 0x64, 0x77, + 0xd0, 0x61, 0x37, 0xd2, 0x10, 0xd9, 0xb0, 0x9d, 0xfe, 0xee, 0xf3, 0xfe, 0xce, 0xf6, 0x64, 0x6f, 0xcd, 0x5b, 0x3f, 0x23, 0x61, 0xa9, 0xe6, 0x2a, 0xf2, 0x2f, 0x07, 0x6a, 0x98, 0xb5, 0xb1, 0xdb, 0x60, 0xc6, 0xed, 0xc4, 0xc8, 0x54, 0x51, 0xa8, 0x76, 0xee, 0xcb, 0xdf, 0xdc, 0x8a, 0xca, 0x2d, 0xe9, 0x0d, 0x04, 0x16, 0x54, 0xb2, 0xa6, 0x54, 0x5b, 0xca, 0x44, 0x81, 0x79, 0x1c, 0xaa, 0xc3, @@ -1639,8 +1639,8 @@ const uint8_t PAGE_settings_sec[] PROGMEM = { 0x1d, 0x49, 0x03, 0xab, 0x60, 0x86, 0xb5, 0x28, 0x96, 0xa0, 0x55, 0xbc, 0xd8, 0x8a, 0x96, 0x0f, 0xac, 0x2a, 0x39, 0x65, 0xae, 0x7f, 0xcd, 0x32, 0xff, 0x40, 0x25, 0xc2, 0xa7, 0x2d, 0x35, 0xbb, 0x52, 0xb6, 0x10, 0x57, 0xd4, 0xbf, 0x00, 0x7c, 0xb7, 0xb5, 0xfd, 0xb6, 0xb3, 0xed, 0xfc, 0x54, - 0x6b, 0x1b, 0x51, 0xcd, 0xc1, 0x07, 0x75, 0xf4, 0xd4, 0xde, 0xd3, 0x2f, 0x8c, 0xff, 0x03, 0xf7, - 0x2d, 0xda, 0x12, 0x71, 0x14, 0x00, 0x00 + 0x6b, 0x1b, 0x51, 0xcd, 0xc1, 0x07, 0x75, 0xf4, 0xd4, 0xde, 0xd3, 0x2f, 0x8c, 0xff, 0x03, 0x59, + 0x4d, 0xbf, 0x9d, 0x71, 0x14, 0x00, 0x00 }; @@ -1826,134 +1826,207 @@ const uint8_t PAGE_settings_um[] PROGMEM = { // Autogenerated from wled00/data/settings_2D.htm, do not edit!! -const uint16_t PAGE_settings_2D_length = 2010; +const uint16_t PAGE_settings_2D_length = 3172; const uint8_t PAGE_settings_2D[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x58, 0x5b, 0x73, 0xdb, 0x36, - 0x16, 0x7e, 0xd7, 0xaf, 0x80, 0xd1, 0x6e, 0x86, 0x8c, 0x29, 0x4a, 0x72, 0xdb, 0x4c, 0x46, 0x22, - 0xe9, 0x8d, 0x2f, 0x5b, 0x79, 0xc7, 0x6e, 0x3c, 0x51, 0xd6, 0x8e, 0x67, 0xb3, 0xd3, 0xc2, 0xe4, - 0xa1, 0x84, 0x98, 0x04, 0x38, 0x04, 0x24, 0xdb, 0x75, 0xfc, 0xdf, 0x7b, 0x00, 0x52, 0x12, 0x75, - 0x4b, 0xbc, 0x7d, 0xb1, 0xcd, 0x83, 0x73, 0xc3, 0xb9, 0x7e, 0x70, 0xb0, 0x77, 0xf2, 0xfe, 0xf8, - 0xe3, 0xcd, 0xe5, 0x29, 0x99, 0xe8, 0x3c, 0x8b, 0x02, 0xf3, 0x93, 0x64, 0x4c, 0x8c, 0x43, 0x0a, - 0x82, 0xe2, 0x37, 0xb0, 0x24, 0x0a, 0x72, 0xd0, 0x8c, 0xc4, 0x13, 0x56, 0x2a, 0xd0, 0x21, 0x9d, - 0xea, 0xb4, 0xfd, 0x96, 0xd6, 0xd4, 0x96, 0x60, 0x39, 0x84, 0x74, 0xc6, 0xe1, 0xbe, 0x90, 0xa5, - 0xa6, 0x24, 0x96, 0x42, 0x83, 0x40, 0xb6, 0x7b, 0x9e, 0xe8, 0x49, 0xf8, 0x4b, 0xb7, 0xbb, 0x60, - 0x5d, 0x3b, 0x4a, 0x60, 0xc6, 0x63, 0x68, 0xdb, 0x0f, 0x8f, 0x0b, 0xae, 0x39, 0xcb, 0xda, 0x2a, - 0x66, 0x19, 0x84, 0x3d, 0x2f, 0x67, 0x0f, 0x3c, 0x9f, 0xe6, 0x8b, 0xef, 0xa9, 0x82, 0xd2, 0x7e, - 0xb0, 0x5b, 0xfc, 0x16, 0x92, 0x6e, 0x58, 0x8e, 0x02, 0xcd, 0x75, 0x06, 0xd1, 0xc1, 0x09, 0x19, - 0x81, 0x6e, 0x4f, 0x8b, 0xa0, 0x53, 0x11, 0x02, 0x15, 0x97, 0xbc, 0xd0, 0x51, 0x6b, 0xc6, 0x4a, - 0x92, 0xc9, 0x98, 0x17, 0x5e, 0x12, 0x26, 0x32, 0x9e, 0xe6, 0xe8, 0x8c, 0x87, 0x84, 0x70, 0xcf, - 0xda, 0xbb, 0x64, 0x02, 0x32, 0x15, 0xbe, 0xf9, 0x79, 0x90, 0x4e, 0x45, 0xac, 0xb9, 0x14, 0x64, - 0xe8, 0xb8, 0x4f, 0xf7, 0x5c, 0x24, 0xf2, 0xde, 0x97, 0x05, 0x08, 0x87, 0x4e, 0xb4, 0x2e, 0x54, - 0xbf, 0xd3, 0xb9, 0x13, 0xd2, 0xbf, 0xcf, 0x20, 0xf1, 0xc7, 0xd0, 0x49, 0x81, 0xe9, 0x69, 0x09, - 0xaa, 0x73, 0x70, 0x42, 0xdd, 0xe7, 0x85, 0xec, 0xd1, 0xba, 0x6c, 0x07, 0xa3, 0xa7, 0xb9, 0x18, - 0x2b, 0xea, 0xd1, 0xdf, 0x15, 0x64, 0x69, 0x93, 0x7b, 0x7c, 0x96, 0x38, 0xe0, 0x3e, 0x95, 0x80, - 0xaa, 0x04, 0x31, 0x7a, 0xf5, 0x69, 0x06, 0xc6, 0xc3, 0xa3, 0x47, 0x7b, 0xb4, 0x64, 0xcd, 0x24, - 0x4b, 0xfe, 0x3d, 0x72, 0xc0, 0x13, 0xe1, 0x5e, 0xd7, 0x7d, 0xca, 0x40, 0x13, 0x1d, 0x26, 0x7e, - 0x5c, 0xa2, 0x1f, 0x50, 0x0b, 0x39, 0xb4, 0xba, 0x34, 0x75, 0x07, 0xda, 0x47, 0xbb, 0xef, 0xb4, - 0x2e, 0xf9, 0xed, 0x54, 0x03, 0x1e, 0x94, 0x31, 0xf5, 0xc0, 0xf5, 0xd6, 0xe9, 0xfa, 0xb1, 0x00, - 0xf4, 0x4c, 0xc3, 0x83, 0xee, 0x7c, 0x61, 0x33, 0x36, 0x57, 0xb0, 0xc1, 0xc8, 0xd4, 0xa3, 0x40, - 0x15, 0xc2, 0xf5, 0x12, 0xff, 0x56, 0x26, 0x8f, 0x3e, 0x2b, 0xf0, 0x7e, 0xc9, 0xf1, 0x84, 0x67, - 0x89, 0xa3, 0x0d, 0x3f, 0x4b, 0x92, 0xd3, 0x19, 0x7a, 0x71, 0xce, 0x15, 0x26, 0x1c, 0x4a, 0x87, - 0x1a, 0x9f, 0xa9, 0xe7, 0xb8, 0x61, 0xf4, 0xf4, 0x2b, 0xe8, 0x2b, 0xc7, 0xf5, 0xfe, 0x73, 0x86, - 0x3f, 0x46, 0xa9, 0x7f, 0x71, 0x79, 0xbc, 0xa6, 0x1f, 0x53, 0x41, 0x97, 0xf9, 0x70, 0x9f, 0xb7, - 0x6b, 0x84, 0xb2, 0x94, 0x25, 0x5e, 0x04, 0x35, 0x62, 0x5d, 0x29, 0x99, 0x81, 0x9f, 0xc9, 0xb1, - 0x43, 0x4f, 0x0d, 0x9d, 0xd4, 0x61, 0xc2, 0x68, 0x93, 0x94, 0x67, 0x60, 0x2f, 0x8c, 0x85, 0x54, - 0x62, 0x60, 0xce, 0x6b, 0xba, 0x4c, 0x4d, 0xad, 0xa6, 0x7c, 0x3c, 0x2d, 0x99, 0x8d, 0x6b, 0x75, - 0x61, 0x92, 0x32, 0x6e, 0x12, 0xfb, 0x59, 0x9c, 0x89, 0x58, 0xe6, 0x05, 0x86, 0x17, 0x48, 0xc1, - 0xc6, 0x40, 0x12, 0xa6, 0xd9, 0x1e, 0xe6, 0xac, 0x91, 0x8a, 0x11, 0xe6, 0x98, 0x1a, 0x03, 0x7d, - 0x1a, 0x86, 0x75, 0xb2, 0xb1, 0xa0, 0xac, 0x3e, 0xbf, 0x28, 0xa5, 0x96, 0xb1, 0xcc, 0x5e, 0xbd, - 0x72, 0x6c, 0x91, 0x75, 0x3d, 0xc7, 0x56, 0x5f, 0x68, 0x38, 0xb2, 0x91, 0x96, 0x25, 0x6a, 0x35, - 0x89, 0x3e, 0xd3, 0x90, 0x9b, 0x10, 0xc5, 0x67, 0x05, 0x75, 0xdd, 0xaf, 0x5f, 0x6b, 0x36, 0x94, - 0xcf, 0x0b, 0x74, 0xf8, 0x5f, 0xa8, 0x9f, 0x5c, 0xc8, 0x04, 0x7c, 0x72, 0x99, 0x01, 0x53, 0x40, - 0x30, 0x10, 0x50, 0x92, 0xeb, 0xf3, 0xd3, 0x13, 0x72, 0x76, 0x89, 0x2e, 0x79, 0x2b, 0x1a, 0xd5, - 0xaa, 0x46, 0xcf, 0x6a, 0x73, 0x5d, 0xc3, 0x65, 0x0b, 0xc7, 0xa8, 0x3f, 0xb4, 0x95, 0x8c, 0x85, - 0x4c, 0xf7, 0xed, 0x71, 0x9f, 0x52, 0x77, 0x7f, 0x59, 0xa1, 0x1d, 0xe5, 0x7f, 0x51, 0x87, 0x45, - 0xd8, 0xeb, 0x52, 0x6f, 0xaf, 0xd7, 0xb8, 0xb0, 0xc9, 0xda, 0x13, 0x4f, 0x1d, 0xda, 0xc5, 0x0b, - 0x87, 0xa6, 0x68, 0xa9, 0x42, 0x2f, 0xa9, 0xeb, 0xcf, 0x58, 0x36, 0x05, 0xb7, 0xae, 0x5f, 0x7b, - 0x90, 0x17, 0x09, 0x9f, 0xe1, 0x89, 0xd2, 0x8f, 0x98, 0x9c, 0x84, 0xab, 0x22, 0x63, 0x8f, 0x21, - 0x15, 0x52, 0x60, 0x3e, 0x66, 0x92, 0x27, 0x04, 0x9b, 0x06, 0x74, 0x95, 0x66, 0xc7, 0x1d, 0x7c, - 0x4b, 0xe8, 0x16, 0xbd, 0xbc, 0xa3, 0x4b, 0x3f, 0xb0, 0x1e, 0xe6, 0x72, 0xb6, 0x01, 0x20, 0x2c, - 0xcc, 0x74, 0x3a, 0xc3, 0xca, 0x4f, 0xfc, 0xba, 0xaa, 0x2a, 0x8f, 0xb0, 0x4b, 0xac, 0xe2, 0xc2, - 0xb2, 0xa3, 0xe6, 0xd8, 0xd4, 0x69, 0x09, 0xc2, 0xcf, 0x40, 0x8c, 0xf5, 0x64, 0x80, 0xb7, 0x11, - 0x01, 0xb8, 0xa9, 0x2c, 0x9d, 0xaa, 0x95, 0xc4, 0x40, 0x07, 0x30, 0xd0, 0xfb, 0xfb, 0xee, 0xdc, - 0x0a, 0x56, 0xb5, 0x65, 0x8b, 0xd6, 0xd8, 0x22, 0x64, 0x6b, 0xb7, 0xf1, 0xd2, 0x79, 0xc5, 0xe6, - 0x6e, 0x3a, 0xe8, 0x40, 0x58, 0xf7, 0xe8, 0x9a, 0x1f, 0x56, 0xe1, 0xba, 0x33, 0x51, 0xb8, 0xac, - 0xfb, 0x2a, 0x94, 0x83, 0xca, 0xd8, 0x1f, 0x01, 0x86, 0x85, 0xf0, 0x24, 0xa4, 0x85, 0xc8, 0x7e, - 0x7c, 0x82, 0x67, 0x33, 0x9b, 0x4b, 0x12, 0x67, 0x4c, 0xa9, 0x90, 0xaa, 0x3c, 0xa3, 0x91, 0x15, - 0x23, 0xe6, 0x2c, 0xb8, 0x2d, 0xa3, 0xcf, 0xa2, 0x17, 0xa8, 0x69, 0x11, 0x29, 0x1d, 0x74, 0xcc, - 0x6f, 0x82, 0xc5, 0xd2, 0x27, 0x01, 0x8e, 0x1d, 0x88, 0xd1, 0x17, 0x3b, 0x3a, 0x2f, 0x0d, 0xf3, - 0x11, 0x45, 0xde, 0xcf, 0x3a, 0x90, 0x85, 0xf5, 0xdb, 0x06, 0x2d, 0xc4, 0xf4, 0x46, 0x1f, 0x25, - 0x4e, 0xd0, 0x8a, 0xba, 0x8d, 0xa3, 0x47, 0xa3, 0x23, 0xa9, 0xb5, 0xcc, 0x1b, 0x4c, 0x68, 0xca, - 0xea, 0x8f, 0xb6, 0xd8, 0xf9, 0xb0, 0xcb, 0xce, 0x39, 0xa4, 0xfa, 0x3b, 0x86, 0x3e, 0xf0, 0xf1, - 0x44, 0x6f, 0xb5, 0x63, 0x6f, 0xfa, 0xbe, 0xe4, 0xd8, 0x11, 0xb6, 0xe9, 0xb6, 0x5e, 0xf1, 0x6a, - 0x97, 0xe9, 0xa1, 0x2c, 0xf9, 0x9f, 0xb8, 0x94, 0x58, 0xf6, 0x1d, 0x07, 0xae, 0x70, 0x72, 0xf0, - 0x78, 0x85, 0x6d, 0xcd, 0x87, 0x11, 0x94, 0x38, 0x04, 0xb1, 0x79, 0x00, 0x5d, 0xe0, 0xa2, 0x98, - 0x62, 0xd6, 0x70, 0xa0, 0x86, 0x34, 0x9e, 0x40, 0x7c, 0x77, 0x2b, 0x1f, 0x68, 0xd3, 0xa3, 0x11, - 0xad, 0xc5, 0x4e, 0x38, 0x4e, 0x6b, 0x85, 0x1a, 0x15, 0x71, 0xae, 0x1f, 0x86, 0xee, 0x42, 0xd8, - 0xa4, 0xda, 0xb2, 0x5e, 0xaf, 0x08, 0xe2, 0x57, 0xa5, 0x56, 0x4c, 0xf3, 0x5b, 0x28, 0x29, 0xc9, - 0xb9, 0x30, 0x1e, 0x12, 0xac, 0x1b, 0xfc, 0x7d, 0xf0, 0x96, 0xce, 0xbd, 0xfe, 0xf1, 0x69, 0xb5, - 0x23, 0x2e, 0xaf, 0xeb, 0x86, 0xc0, 0xd2, 0x21, 0x0f, 0x1b, 0x66, 0x86, 0x2b, 0x66, 0x86, 0x7f, - 0xdf, 0xcc, 0x70, 0x69, 0xa6, 0xce, 0x4e, 0x9a, 0x62, 0x97, 0x93, 0x4f, 0xfd, 0x75, 0x93, 0x9f, - 0x56, 0x4c, 0x7e, 0xda, 0x6a, 0xb2, 0x5b, 0x9b, 0x3c, 0xf8, 0xe5, 0x0d, 0x6d, 0x24, 0xee, 0xb3, - 0xb8, 0xd9, 0x50, 0x77, 0xb3, 0xa2, 0xee, 0xe6, 0xff, 0x51, 0x67, 0x1c, 0x0d, 0x78, 0xe4, 0xc8, - 0xca, 0xd5, 0x14, 0x07, 0x2f, 0xd1, 0xb2, 0x68, 0x67, 0x58, 0x9a, 0xb8, 0x24, 0x4a, 0x5c, 0x38, - 0x84, 0x0b, 0xf2, 0x83, 0x69, 0x22, 0xe5, 0x06, 0x1d, 0x6e, 0xf3, 0x8f, 0x1d, 0x19, 0xfd, 0x31, - 0x10, 0x3e, 0x17, 0x88, 0x4d, 0xf4, 0xbb, 0xe4, 0x0b, 0x8b, 0xb1, 0x02, 0x86, 0x1f, 0x2f, 0xce, - 0x1d, 0x7a, 0x0b, 0x38, 0x28, 0x00, 0xb7, 0x22, 0xf5, 0x74, 0x63, 0x2a, 0x2c, 0x27, 0x45, 0x3d, - 0xb5, 0xb6, 0x8f, 0xa6, 0x81, 0x41, 0x2a, 0x22, 0x84, 0xf9, 0x88, 0x12, 0x41, 0xd8, 0xfb, 0xfa, - 0x15, 0xfe, 0x2b, 0xda, 0xbd, 0xff, 0xf9, 0xa8, 0x43, 0xce, 0xc0, 0x59, 0xd1, 0xda, 0x18, 0xa3, - 0x4f, 0xab, 0xf3, 0x2f, 0xec, 0x0d, 0xbe, 0x69, 0x69, 0x3e, 0xcf, 0x9a, 0xd6, 0xa2, 0xee, 0x40, - 0xe0, 0x58, 0xdb, 0x69, 0x6f, 0x8c, 0x68, 0xc6, 0x40, 0x95, 0xe6, 0xf0, 0x36, 0x1e, 0x6f, 0x0e, - 0xe1, 0xe1, 0x72, 0x08, 0xaf, 0x1f, 0x5d, 0xcd, 0x8f, 0x74, 0x08, 0xaf, 0xc5, 0x60, 0xcd, 0x6b, - 0x6d, 0x15, 0x66, 0x61, 0x55, 0x53, 0x23, 0xdf, 0x76, 0x11, 0x24, 0x1e, 0x33, 0x55, 0x88, 0x9b, - 0xa7, 0xa2, 0xd7, 0x3a, 0x3c, 0xb9, 0x42, 0x3d, 0xaa, 0xa9, 0x7c, 0x85, 0xfa, 0xa1, 0xa6, 0x96, - 0xe1, 0x8e, 0xbe, 0xf0, 0x54, 0xb8, 0xa3, 0x94, 0xbd, 0x22, 0x64, 0x87, 0xa2, 0x0f, 0xde, 0x14, - 0x7f, 0x43, 0x7f, 0x19, 0x34, 0x9c, 0xed, 0x78, 0xb3, 0xee, 0x00, 0x82, 0xe9, 0x00, 0x70, 0x5f, - 0x2c, 0x97, 0x43, 0x17, 0x77, 0x48, 0x61, 0x76, 0x88, 0x27, 0x90, 0xfe, 0x04, 0xaf, 0x75, 0xb0, - 0x98, 0xec, 0xaf, 0x5e, 0x2d, 0x96, 0x83, 0xa8, 0x02, 0x17, 0x87, 0x0e, 0x3b, 0xe4, 0x7d, 0xe9, - 0x1e, 0x4e, 0xdb, 0xd0, 0xee, 0xa1, 0xa5, 0xd4, 0x50, 0x64, 0x9f, 0xbb, 0x87, 0x45, 0x5b, 0x23, - 0x45, 0x0f, 0xd2, 0x10, 0x81, 0x04, 0xfc, 0xe3, 0x00, 0x09, 0x29, 0x12, 0x52, 0xcf, 0x26, 0xf4, - 0x92, 0xee, 0x8b, 0x7d, 0xfa, 0x69, 0xbe, 0x7f, 0x8d, 0x54, 0xdc, 0x4f, 0xdd, 0xd7, 0x65, 0xf3, - 0xf8, 0xa6, 0x79, 0x9c, 0xf6, 0x63, 0xf7, 0xb5, 0x6a, 0x1e, 0x5f, 0x2f, 0x8e, 0x57, 0xa4, 0x86, - 0x0b, 0xb2, 0x7a, 0x7e, 0x6e, 0xe1, 0xb8, 0xab, 0x50, 0x74, 0x60, 0x37, 0x73, 0xf4, 0x4f, 0x9e, - 0x1b, 0xd4, 0x4d, 0xa6, 0x65, 0x86, 0x10, 0xc0, 0x2e, 0xeb, 0x58, 0x99, 0xb5, 0x86, 0x8c, 0x96, - 0x21, 0xe8, 0x54, 0x6f, 0x07, 0x83, 0x10, 0x11, 0x8e, 0x19, 0xec, 0x11, 0x52, 0xc4, 0x4b, 0xd8, - 0x6d, 0x18, 0xa6, 0xbc, 0x65, 0x1b, 0xd7, 0xfc, 0xf5, 0xbb, 0x9a, 0x37, 0xee, 0x28, 0xc5, 0xf6, - 0x04, 0x3d, 0x91, 0x66, 0xcd, 0x49, 0x65, 0x20, 0xbd, 0xd9, 0x7a, 0xf5, 0x92, 0xc3, 0x86, 0x2c, - 0xe5, 0xfd, 0x2a, 0x6d, 0x02, 0x59, 0x81, 0x0b, 0xac, 0x15, 0x20, 0x72, 0xd4, 0x58, 0x99, 0x55, - 0xcb, 0x57, 0x1f, 0x14, 0xad, 0xc6, 0x19, 0x8f, 0xef, 0x42, 0x3a, 0x34, 0x66, 0x0f, 0x83, 0x4e, - 0x75, 0x10, 0x55, 0xad, 0xbb, 0x5d, 0xa6, 0xb5, 0x10, 0x3a, 0x32, 0x42, 0x47, 0x2c, 0xbe, 0x5b, - 0xca, 0xad, 0x48, 0xa8, 0xe9, 0x6d, 0xce, 0xd1, 0xc7, 0x11, 0x9b, 0xc1, 0x92, 0x65, 0x52, 0xce, - 0xd5, 0x4f, 0x0e, 0xa2, 0x16, 0xbe, 0x45, 0xb0, 0x49, 0xcc, 0x53, 0x04, 0xbf, 0x46, 0x88, 0x70, - 0x0b, 0x82, 0xe0, 0xd4, 0x76, 0xe1, 0x72, 0x53, 0x99, 0x40, 0x58, 0x10, 0x35, 0x0f, 0xc3, 0xfb, - 0x8b, 0xcb, 0xca, 0x91, 0x09, 0x3e, 0xc4, 0x90, 0xb0, 0xd2, 0x69, 0x5e, 0x03, 0xfa, 0x58, 0x10, - 0x8d, 0x11, 0xd9, 0x58, 0x6c, 0x3d, 0x7c, 0x03, 0x19, 0x6b, 0x8b, 0x7d, 0xd5, 0xda, 0xdc, 0x69, - 0xe8, 0xdb, 0x05, 0x43, 0xa6, 0x87, 0x05, 0xd3, 0xca, 0x4a, 0x5b, 0x00, 0x8e, 0x0a, 0x91, 0x91, - 0x96, 0x4d, 0x6b, 0x48, 0x6b, 0x48, 0xd6, 0xb7, 0x30, 0x6e, 0x03, 0x84, 0x04, 0x93, 0x9f, 0xa2, - 0x4a, 0x2b, 0xf9, 0xd5, 0xe0, 0x74, 0x86, 0x98, 0x14, 0x2f, 0xff, 0x53, 0xd4, 0xaa, 0xe0, 0x49, - 0xb2, 0x6b, 0xdf, 0xd5, 0xa3, 0xfb, 0x05, 0xfb, 0xad, 0x55, 0x5f, 0xe1, 0x6d, 0x73, 0x8f, 0xd5, - 0xe2, 0x2f, 0xdf, 0x5b, 0x6f, 0xab, 0xa9, 0xdf, 0x5a, 0x42, 0x80, 0x2a, 0x2d, 0x6a, 0xcd, 0xa3, - 0x8b, 0xef, 0xe8, 0x5c, 0x6a, 0xc4, 0x90, 0xb6, 0xc8, 0x1c, 0x28, 0xec, 0x52, 0x76, 0xf5, 0x72, - 0x65, 0xd6, 0xbd, 0x35, 0x10, 0xb7, 0x56, 0x39, 0xf5, 0xad, 0x8f, 0xb6, 0x95, 0x40, 0x13, 0xbe, - 0xcd, 0x4f, 0x5b, 0x3b, 0xb1, 0xdb, 0x2e, 0xe4, 0xf6, 0x61, 0x9b, 0x6a, 0x83, 0xd8, 0x5a, 0x1b, - 0xca, 0x77, 0xc1, 0xb5, 0x95, 0xaa, 0xda, 0x0a, 0xd5, 0xea, 0x97, 0x3c, 0x06, 0x27, 0x7a, 0x11, - 0x46, 0xdb, 0x8d, 0xcf, 0x5a, 0xdb, 0xad, 0xbe, 0x1c, 0x9c, 0x8d, 0xe6, 0x60, 0x60, 0x51, 0xef, - 0xf8, 0x80, 0x93, 0x65, 0xff, 0x87, 0x94, 0xa1, 0x2f, 0xc7, 0x4c, 0x90, 0x42, 0x16, 0xd3, 0x0c, - 0x1f, 0xda, 0x06, 0x0b, 0x54, 0xf9, 0x20, 0xd8, 0x0e, 0x12, 0x55, 0xde, 0x73, 0x3d, 0x21, 0x45, - 0x09, 0x6d, 0x56, 0x96, 0xa6, 0x71, 0x13, 0x4c, 0xaa, 0xe9, 0x04, 0xdf, 0x66, 0xf2, 0xe3, 0x04, - 0xbb, 0xb8, 0x72, 0x59, 0x91, 0x44, 0x12, 0x21, 0x35, 0x61, 0x69, 0x6a, 0xee, 0x9f, 0x72, 0xc1, - 0xe6, 0x5a, 0x7c, 0x83, 0x2e, 0xac, 0x0b, 0xdf, 0x19, 0x4f, 0x76, 0x09, 0x23, 0xea, 0xaf, 0xdd, - 0x69, 0x4e, 0xa0, 0x8d, 0x8e, 0xac, 0x7a, 0x4f, 0xd5, 0xff, 0x15, 0x31, 0xdd, 0xf8, 0x9b, 0x2d, - 0x3f, 0xf3, 0x06, 0xde, 0x51, 0xa8, 0xc7, 0xdf, 0x2c, 0xd4, 0x37, 0x3f, 0x37, 0x2a, 0xd5, 0x38, - 0x65, 0x85, 0x43, 0xda, 0x98, 0x4d, 0x0b, 0x54, 0xf5, 0xae, 0x0e, 0x03, 0xe1, 0x0a, 0xff, 0x4a, - 0xc0, 0x18, 0xed, 0x99, 0x31, 0x98, 0x23, 0x42, 0x22, 0xc5, 0xe4, 0x51, 0xd9, 0x86, 0x59, 0x84, - 0x53, 0xf9, 0x2d, 0x1b, 0xb0, 0x53, 0x16, 0x4f, 0xea, 0x00, 0xc7, 0x18, 0xf7, 0x5b, 0x2b, 0x98, - 0x70, 0x0c, 0x19, 0xe2, 0x16, 0x4d, 0x14, 0xff, 0x13, 0x08, 0x13, 0x49, 0x07, 0x35, 0x4d, 0x70, - 0x04, 0x37, 0x8e, 0x8c, 0x2a, 0xb9, 0x2c, 0xb4, 0x39, 0x97, 0xd2, 0xac, 0x34, 0xaf, 0x5b, 0x4c, - 0x21, 0x47, 0xae, 0x9a, 0x5a, 0x87, 0xbd, 0xb5, 0x88, 0x3b, 0x86, 0x67, 0x3d, 0xb5, 0x36, 0x66, - 0xcb, 0x17, 0x58, 0x05, 0xa2, 0xe6, 0x73, 0xbe, 0x9e, 0xf6, 0xcb, 0x8c, 0xb5, 0x76, 0x6c, 0xa1, - 0xbf, 0xb5, 0x50, 0xd0, 0x2f, 0xb3, 0x24, 0xd1, 0x8c, 0x59, 0xa4, 0x66, 0xab, 0x9a, 0xff, 0xd3, - 0xfd, 0x05, 0x3c, 0x62, 0xd3, 0x2a, 0xb7, 0x13, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xc5, 0x5a, 0x5b, 0x77, 0xdb, 0x36, + 0x12, 0x7e, 0xd7, 0xaf, 0x80, 0xd1, 0xae, 0x4b, 0x5a, 0xd4, 0xcd, 0x4d, 0x7a, 0x5a, 0x49, 0x94, + 0x36, 0x8e, 0xd3, 0xd8, 0x7b, 0xec, 0x44, 0xc7, 0x72, 0xed, 0xe4, 0xb4, 0x3d, 0x0d, 0x4d, 0x42, + 0x12, 0x12, 0x0a, 0x60, 0x09, 0x48, 0xb6, 0xeb, 0xf8, 0xbf, 0xef, 0x0c, 0xc0, 0x9b, 0x68, 0xd9, + 0x49, 0xb7, 0x0f, 0xfb, 0x10, 0x99, 0xc4, 0x65, 0x66, 0x30, 0xf3, 0xcd, 0x0d, 0xcc, 0x70, 0xe7, + 0xf0, 0xed, 0xcb, 0xf3, 0xf7, 0x93, 0x57, 0x64, 0xa1, 0x97, 0xf1, 0x68, 0x88, 0xbf, 0x24, 0x0e, + 0xc4, 0xdc, 0xa7, 0x4c, 0x50, 0x78, 0x67, 0x41, 0x34, 0x1a, 0x2e, 0x99, 0x0e, 0x48, 0xb8, 0x08, + 0x52, 0xc5, 0xb4, 0x4f, 0x57, 0x7a, 0xd6, 0xfa, 0x91, 0x66, 0xa3, 0x0d, 0x11, 0x2c, 0x99, 0x4f, + 0xd7, 0x9c, 0x5d, 0x27, 0x32, 0xd5, 0x94, 0x84, 0x52, 0x68, 0x26, 0x60, 0xd9, 0x35, 0x8f, 0xf4, + 0xc2, 0x7f, 0xde, 0xed, 0x16, 0x4b, 0x6b, 0x53, 0x11, 0x5b, 0xf3, 0x90, 0xb5, 0xcc, 0x8b, 0xc7, + 0x05, 0xd7, 0x3c, 0x88, 0x5b, 0x2a, 0x0c, 0x62, 0xe6, 0xf7, 0xbc, 0x65, 0x70, 0xc3, 0x97, 0xab, + 0x65, 0xf1, 0xbe, 0x52, 0x2c, 0x35, 0x2f, 0xc1, 0x15, 0xbc, 0x0b, 0x49, 0x1f, 0x70, 0x1e, 0x0d, + 0x35, 0xd7, 0x31, 0x1b, 0xed, 0x1f, 0x92, 0x29, 0xd3, 0xad, 0x55, 0x32, 0xec, 0xd8, 0x81, 0xa1, + 0x0a, 0x53, 0x9e, 0xe8, 0x51, 0x63, 0x1d, 0xa4, 0x24, 0x96, 0x21, 0x4f, 0x3c, 0xcd, 0x97, 0x4c, + 0xae, 0xb4, 0x17, 0xf9, 0x91, 0x0c, 0x57, 0x4b, 0x10, 0xca, 0x83, 0x09, 0x7f, 0xc7, 0xf0, 0x9d, + 0x04, 0x82, 0xc5, 0xca, 0xff, 0xe1, 0x99, 0x17, 0xea, 0x1b, 0x5f, 0xac, 0xe2, 0x78, 0x30, 0x5b, + 0x89, 0x50, 0x73, 0x29, 0xc8, 0x91, 0xe3, 0xde, 0x5d, 0x73, 0x11, 0xc9, 0xeb, 0xb6, 0x4c, 0x98, + 0x70, 0xe8, 0x42, 0xeb, 0x44, 0xf5, 0x3b, 0x9d, 0x4f, 0x42, 0xb6, 0xaf, 0x63, 0x16, 0xb5, 0xe7, + 0xac, 0x33, 0x63, 0x81, 0x5e, 0xa5, 0x4c, 0x75, 0xf6, 0x0f, 0xa9, 0x7b, 0x5f, 0xec, 0x3d, 0xa8, + 0xef, 0xed, 0x80, 0x3a, 0x35, 0x17, 0x73, 0x45, 0x3d, 0xfa, 0x87, 0x62, 0xf1, 0xac, 0xba, 0x7a, + 0x7e, 0x1c, 0x39, 0xcc, 0xbd, 0x4b, 0x19, 0x90, 0x12, 0x04, 0xe9, 0xea, 0x57, 0x31, 0x43, 0x51, + 0x0f, 0x6e, 0xcd, 0x54, 0xb9, 0x74, 0x36, 0x05, 0xca, 0x51, 0x7b, 0x3a, 0x6b, 0xab, 0xd5, 0xd5, + 0x92, 0x6b, 0xa7, 0x32, 0x17, 0xcb, 0x20, 0xfa, 0xcf, 0xd4, 0x61, 0x9e, 0xf6, 0x77, 0xba, 0xee, + 0x5d, 0xcc, 0x34, 0x11, 0x7e, 0xd4, 0x0e, 0x53, 0x90, 0x91, 0x65, 0x04, 0x1d, 0x6a, 0x35, 0x44, + 0xdd, 0x81, 0x68, 0x83, 0x4c, 0x2f, 0xb4, 0x4e, 0xf9, 0xd5, 0x4a, 0x33, 0x98, 0x48, 0x43, 0xea, + 0x31, 0xd7, 0xab, 0x8f, 0xeb, 0xdb, 0x84, 0x81, 0xd4, 0x9a, 0xdd, 0xe8, 0xce, 0xc7, 0x60, 0x1d, + 0xe4, 0x04, 0x1e, 0x2c, 0x0c, 0xd4, 0xad, 0x00, 0x12, 0xda, 0xf5, 0xa2, 0xf6, 0x95, 0x8c, 0x6e, + 0xdb, 0x41, 0x02, 0x67, 0x8f, 0x5e, 0x2e, 0x78, 0x1c, 0x39, 0x02, 0xd7, 0x07, 0x51, 0xf4, 0x6a, + 0x0d, 0x52, 0x9c, 0x70, 0x05, 0xe8, 0x60, 0xa9, 0x43, 0x51, 0x66, 0xea, 0x39, 0xae, 0x3f, 0xba, + 0x7b, 0xcd, 0xf4, 0x85, 0xe3, 0x7a, 0xbf, 0x1c, 0xc3, 0x0f, 0x9c, 0xef, 0x74, 0xf2, 0xb2, 0x46, + 0x1f, 0xec, 0x45, 0x4b, 0xa3, 0xb9, 0xf7, 0xdb, 0x29, 0xb2, 0x34, 0x95, 0x29, 0x1c, 0x04, 0x28, + 0x02, 0x08, 0x95, 0x8c, 0x59, 0x3b, 0x96, 0x73, 0x87, 0xbe, 0xc2, 0x71, 0x92, 0xa9, 0x09, 0x2c, + 0x41, 0x66, 0x3c, 0x66, 0xe6, 0xc0, 0x80, 0xba, 0x14, 0x14, 0x73, 0x92, 0x8d, 0xcb, 0x19, 0x02, + 0x7b, 0xc6, 0xe7, 0xab, 0x34, 0x30, 0x7a, 0xb5, 0x07, 0x26, 0xb3, 0x80, 0xa3, 0xd1, 0x7f, 0x13, + 0xc7, 0x22, 0x94, 0xcb, 0x04, 0xd4, 0xcb, 0x48, 0x12, 0xcc, 0x19, 0x89, 0x02, 0x1d, 0xec, 0x80, + 0x3d, 0x2b, 0xa6, 0x40, 0x2b, 0x51, 0x64, 0xd0, 0xa7, 0xbe, 0x9f, 0x01, 0x01, 0x50, 0x67, 0xe8, + 0xb5, 0x93, 0x54, 0x6a, 0x19, 0xca, 0x78, 0x77, 0xd7, 0x31, 0x48, 0xec, 0x7a, 0x8e, 0x81, 0xaa, + 0x8f, 0x2b, 0xe2, 0xa9, 0x96, 0x29, 0x50, 0x45, 0x10, 0x1c, 0x6b, 0xb6, 0x44, 0x15, 0x85, 0xc7, + 0x09, 0x75, 0xdd, 0xcf, 0x9f, 0xb3, 0x65, 0xb0, 0x7f, 0x99, 0x80, 0xc0, 0x3f, 0x03, 0x7d, 0x72, + 0x2a, 0x23, 0xd6, 0x26, 0x93, 0x98, 0x05, 0x8a, 0x11, 0x50, 0x04, 0x4b, 0xc9, 0xe5, 0xc9, 0xab, + 0x43, 0x72, 0x3c, 0x01, 0x91, 0xbc, 0x0d, 0x8a, 0x6a, 0x93, 0xa2, 0x67, 0xa8, 0xb9, 0x2e, 0xae, + 0x32, 0xc0, 0x41, 0xf2, 0x63, 0x83, 0x72, 0x00, 0x39, 0x6d, 0x9a, 0xe9, 0x3e, 0xa5, 0x6e, 0xb3, + 0x44, 0x6f, 0x47, 0xb5, 0x3f, 0xaa, 0x71, 0xe2, 0xf7, 0xba, 0xd4, 0xdb, 0xe9, 0x55, 0x0e, 0x8c, + 0x56, 0xbb, 0xe3, 0x33, 0x87, 0x76, 0xe1, 0xc0, 0x3e, 0x02, 0x9a, 0x2a, 0x90, 0x92, 0xba, 0xed, + 0x75, 0x10, 0xaf, 0x98, 0x9b, 0x61, 0xdb, 0x4c, 0x2c, 0x93, 0x88, 0xaf, 0x61, 0x46, 0xe9, 0x5b, + 0x30, 0x4e, 0xc4, 0x55, 0x12, 0x07, 0xb7, 0x3e, 0x15, 0x52, 0x80, 0x3d, 0xd6, 0x92, 0x47, 0x04, + 0x1c, 0x8a, 0x69, 0x6b, 0x66, 0xc7, 0x1d, 0x3c, 0xb5, 0xe9, 0x0a, 0xa4, 0xfc, 0x44, 0xbd, 0x28, + 0x0d, 0xae, 0xab, 0xae, 0xa0, 0x16, 0xf2, 0xfa, 0x5c, 0x06, 0x4a, 0x5b, 0x6f, 0xe8, 0xb9, 0x77, + 0x18, 0x10, 0x84, 0x15, 0x4c, 0xe3, 0x84, 0x71, 0x00, 0x2e, 0x00, 0x32, 0x47, 0xe7, 0xa7, 0x27, + 0x3e, 0x03, 0x2c, 0x85, 0x71, 0xa0, 0xd4, 0x1b, 0x8c, 0x34, 0x7a, 0x9c, 0xc1, 0xa8, 0x4f, 0x91, + 0x12, 0xf5, 0x42, 0xd0, 0x6f, 0x7a, 0x6e, 0x23, 0x89, 0x93, 0x45, 0x14, 0xe3, 0x00, 0x46, 0x9a, + 0x40, 0xf0, 0xa5, 0x31, 0x6d, 0x7e, 0x88, 0x6c, 0x85, 0x0f, 0xa7, 0xc8, 0x37, 0x39, 0xb9, 0x6c, + 0xa0, 0xa7, 0x2a, 0xab, 0xca, 0x73, 0x3b, 0x65, 0x70, 0xa8, 0x10, 0x5d, 0xd1, 0x30, 0xa5, 0x88, + 0x29, 0x6f, 0xff, 0xa7, 0x6e, 0xb7, 0x72, 0xb2, 0x55, 0x82, 0xd6, 0x42, 0xd3, 0x63, 0xc8, 0xc0, + 0x53, 0x69, 0x5f, 0xb0, 0x6b, 0xf2, 0xee, 0xf4, 0xe4, 0x08, 0x2c, 0x77, 0xc6, 0xfe, 0x5c, 0x31, + 0xa5, 0x07, 0xfa, 0x71, 0x5f, 0xab, 0x08, 0x52, 0xaa, 0x49, 0x2f, 0xb8, 0x02, 0xfe, 0x2a, 0x01, + 0x97, 0x61, 0xe7, 0xe0, 0xea, 0x9e, 0x19, 0x51, 0x1a, 0xc2, 0x9b, 0x1a, 0xf9, 0xcf, 0x50, 0x06, + 0x40, 0x8a, 0x7e, 0xdc, 0xe1, 0x4a, 0xba, 0xac, 0x4a, 0x98, 0x21, 0x8d, 0xf0, 0x93, 0xb7, 0x93, + 0x13, 0xb0, 0xf1, 0x70, 0xf2, 0x76, 0x7a, 0x0e, 0x27, 0xec, 0xd8, 0xe3, 0x80, 0x31, 0xac, 0x7d, + 0xf0, 0x24, 0x3f, 0xcb, 0x74, 0x79, 0x08, 0x2e, 0x35, 0xc8, 0x30, 0x23, 0xb2, 0x38, 0xe2, 0x50, + 0x74, 0x34, 0xb0, 0x35, 0x46, 0x3f, 0x7c, 0x6c, 0xa3, 0x83, 0xa9, 0x5f, 0xbb, 0xbf, 0xa3, 0x13, + 0x6b, 0x80, 0xb7, 0x30, 0x61, 0xa6, 0x9c, 0x37, 0xd0, 0xf3, 0x29, 0x42, 0xb5, 0x54, 0x20, 0x1c, + 0x20, 0x47, 0x96, 0x09, 0x91, 0xcc, 0x4f, 0x30, 0xd9, 0x1d, 0x43, 0x6c, 0x34, 0x3b, 0x31, 0xee, + 0x58, 0xcc, 0x02, 0x72, 0x0c, 0x5e, 0x12, 0xb3, 0x1c, 0xb0, 0x17, 0x62, 0x24, 0x4b, 0x99, 0x68, + 0xc7, 0x4c, 0xcc, 0xf5, 0x62, 0x00, 0x78, 0xd7, 0x43, 0xe6, 0xce, 0x64, 0xea, 0xd8, 0x60, 0xab, + 0x07, 0x62, 0xc8, 0x06, 0xa2, 0xd9, 0x74, 0x73, 0x2e, 0x20, 0x90, 0x59, 0x36, 0xaa, 0x2d, 0x1b, + 0xc1, 0xb2, 0x56, 0x0b, 0xdc, 0x62, 0x69, 0x97, 0xb9, 0x0f, 0x05, 0x74, 0x98, 0x9f, 0x45, 0xf1, + 0x9a, 0x1c, 0x86, 0x60, 0x5d, 0x98, 0x91, 0x5f, 0x46, 0x46, 0xab, 0xb8, 0x81, 0x65, 0xf6, 0x61, + 0x08, 0x8e, 0x43, 0x78, 0xe4, 0xd3, 0x44, 0xc4, 0xdf, 0xde, 0xb1, 0x7b, 0x4c, 0xf5, 0x29, 0x31, + 0xa8, 0xf3, 0xa9, 0x5a, 0xc6, 0x74, 0x64, 0xb6, 0x11, 0x9c, 0x1b, 0x5e, 0xa5, 0xa3, 0xdf, 0x44, + 0x6f, 0xa8, 0x56, 0xc9, 0x48, 0xe9, 0x61, 0x07, 0xff, 0x12, 0x08, 0x27, 0x7d, 0x32, 0x84, 0xa4, + 0xc5, 0x42, 0x20, 0x68, 0x32, 0xf1, 0x04, 0x17, 0x1f, 0x50, 0x08, 0xa7, 0x5c, 0x24, 0x00, 0x74, + 0x8a, 0xfe, 0x4f, 0x61, 0xeb, 0x6f, 0x7a, 0x28, 0x13, 0x73, 0x8c, 0x4c, 0xf9, 0x50, 0x12, 0x9c, + 0x4b, 0xc8, 0xcf, 0x76, 0x74, 0xdb, 0x8a, 0x1e, 0x1d, 0x1d, 0x48, 0xad, 0xe5, 0xb2, 0xb2, 0x08, + 0x38, 0x1b, 0x76, 0xa3, 0x2d, 0x6c, 0xcf, 0xbe, 0x92, 0xed, 0x09, 0x9b, 0xe9, 0x2f, 0xf0, 0x3d, + 0xe3, 0xf3, 0x85, 0xde, 0xca, 0xd6, 0xe8, 0xe1, 0x6d, 0xca, 0x01, 0xe9, 0xc6, 0xb3, 0xb7, 0x2a, + 0xe0, 0xe2, 0x2b, 0x25, 0x39, 0x92, 0x29, 0xff, 0x0b, 0x0a, 0xa2, 0x20, 0xfe, 0x82, 0x3c, 0x17, + 0x90, 0x88, 0x78, 0xb8, 0xb1, 0xac, 0x26, 0xd2, 0x94, 0xa5, 0xe0, 0x0b, 0x10, 0x8b, 0x19, 0x48, + 0x64, 0x58, 0x13, 0xcc, 0xcf, 0x3e, 0x0d, 0x17, 0x2c, 0xfc, 0x74, 0x25, 0x6f, 0x68, 0x55, 0xc0, + 0xe9, 0x03, 0x01, 0x2d, 0x95, 0x43, 0x08, 0x4a, 0x42, 0x01, 0x03, 0x45, 0x9c, 0xcb, 0x9b, 0x23, + 0xb7, 0xa0, 0x55, 0xd9, 0x7b, 0x49, 0x33, 0xca, 0x62, 0xb5, 0xbc, 0x62, 0x29, 0x25, 0x4b, 0x2e, + 0x50, 0x48, 0x02, 0x38, 0xf3, 0xe9, 0xfe, 0xf3, 0xe7, 0x34, 0x17, 0xfc, 0xdb, 0xbb, 0x4d, 0x0f, + 0x9a, 0x5c, 0x66, 0x0e, 0x74, 0xff, 0x80, 0x3d, 0xb9, 0xd9, 0xc2, 0xe9, 0xe8, 0x7f, 0xe7, 0x74, + 0xf4, 0x28, 0xa7, 0xcc, 0x82, 0xb3, 0x19, 0xc4, 0x60, 0xf2, 0xae, 0xff, 0x90, 0xeb, 0xbb, 0xad, + 0x5c, 0xbb, 0x5b, 0xb8, 0x76, 0xb7, 0x98, 0xf9, 0xfd, 0x16, 0x8a, 0xef, 0xff, 0x01, 0x45, 0x14, + 0x77, 0xc8, 0x47, 0x8e, 0xb4, 0x02, 0xcf, 0x20, 0xc5, 0x13, 0x2d, 0x93, 0x56, 0x0c, 0x20, 0x86, + 0x72, 0x24, 0x85, 0x48, 0x4b, 0xb8, 0x20, 0xdf, 0xa0, 0x33, 0x2a, 0x77, 0xd8, 0xe1, 0x06, 0x1a, + 0xe0, 0xd9, 0xa3, 0x0f, 0x10, 0xeb, 0x39, 0x04, 0xed, 0x54, 0xbf, 0x88, 0x3e, 0x42, 0xf6, 0x10, + 0x1a, 0x13, 0x9a, 0x43, 0xaf, 0x18, 0x04, 0x1c, 0x06, 0x31, 0x91, 0x7a, 0xa2, 0x12, 0x5d, 0xca, + 0x88, 0x93, 0x45, 0xbf, 0xed, 0x21, 0x6e, 0x60, 0x33, 0x0b, 0xcb, 0x43, 0x9d, 0x1e, 0xfa, 0xbd, + 0xcf, 0x9f, 0xd9, 0xaf, 0xba, 0xd5, 0xfb, 0x1d, 0xf2, 0xc4, 0x52, 0xae, 0x99, 0xb3, 0x41, 0xb5, + 0x92, 0xb0, 0xef, 0x36, 0xe3, 0xa8, 0xdf, 0x1b, 0x3c, 0xc9, 0x29, 0x8f, 0x8b, 0x55, 0x6e, 0xa3, + 0xee, 0x40, 0x43, 0x78, 0x7c, 0x94, 0xdf, 0x9c, 0x61, 0xfa, 0xda, 0x2c, 0x13, 0x50, 0xe2, 0x4a, + 0x30, 0x37, 0x22, 0x1c, 0x95, 0xa1, 0x7c, 0x73, 0xe2, 0x22, 0x9f, 0x10, 0x3e, 0xdb, 0xd3, 0x83, + 0x0d, 0x79, 0xed, 0xe1, 0x03, 0x1f, 0x01, 0x36, 0x6d, 0x1b, 0xc7, 0x62, 0x91, 0x17, 0x23, 0x24, + 0xa1, 0xb6, 0xc1, 0xd1, 0x6c, 0xb7, 0x27, 0x2b, 0x63, 0x07, 0xd9, 0x18, 0xaf, 0x8c, 0x9d, 0x65, + 0x63, 0xe9, 0x06, 0xf7, 0xc2, 0x3f, 0x3c, 0xb5, 0x39, 0x5e, 0x48, 0x1b, 0xfa, 0xf1, 0x58, 0xf7, + 0x19, 0xf4, 0x2c, 0xf1, 0x98, 0xf5, 0x75, 0xa1, 0x22, 0xc8, 0x08, 0x70, 0x92, 0xee, 0x80, 0x0d, + 0xa3, 0x01, 0x83, 0x2c, 0x53, 0xa6, 0x94, 0x2e, 0x64, 0x9e, 0x10, 0x33, 0x8f, 0xa7, 0x61, 0xfc, + 0x8e, 0xed, 0x89, 0x61, 0x91, 0x0f, 0x76, 0x77, 0x8b, 0x94, 0xa2, 0xad, 0x9a, 0x56, 0xbe, 0x13, + 0x8f, 0x79, 0x5f, 0xba, 0xe3, 0xa8, 0xc5, 0x5a, 0x3d, 0xe0, 0x94, 0xe0, 0x88, 0xec, 0x73, 0x77, + 0x1c, 0xb6, 0x04, 0x8c, 0x88, 0x41, 0xe2, 0x07, 0xbb, 0xbb, 0xec, 0x5f, 0xfb, 0x30, 0x90, 0xc0, + 0x40, 0x02, 0x35, 0xf9, 0xaf, 0x1f, 0x00, 0xe7, 0xfa, 0xfe, 0xdd, 0x87, 0xdf, 0x33, 0x4d, 0xc1, + 0x9e, 0x55, 0x3f, 0x71, 0xf7, 0xd2, 0x72, 0xf2, 0x7d, 0x75, 0x32, 0xe9, 0xaf, 0xdc, 0x3d, 0x55, + 0x4e, 0x5e, 0x16, 0x93, 0x95, 0x1d, 0x47, 0xc5, 0xa0, 0xba, 0x2f, 0x2d, 0xcc, 0x6e, 0x00, 0x29, + 0x11, 0x96, 0x6f, 0xee, 0x9d, 0xde, 0x5a, 0x2a, 0xee, 0xf8, 0x7e, 0x6d, 0x62, 0x6c, 0x27, 0xa0, + 0x66, 0xf5, 0x58, 0x36, 0x03, 0xa5, 0x36, 0x34, 0x3f, 0xd9, 0x0e, 0xff, 0xf1, 0x1d, 0x3f, 0x75, + 0x23, 0x36, 0xa7, 0x25, 0x7b, 0x5b, 0x50, 0x62, 0x45, 0xbb, 0x03, 0x9d, 0xa1, 0x2d, 0xb4, 0x32, + 0x04, 0x87, 0x81, 0x80, 0x26, 0x08, 0xd2, 0x30, 0x6b, 0xdb, 0xe6, 0x36, 0xab, 0xef, 0x4d, 0x31, + 0x79, 0x89, 0x23, 0xa3, 0x1f, 0x9e, 0x75, 0xc7, 0xf0, 0xaf, 0x0f, 0x65, 0x13, 0x48, 0xb2, 0x60, + 0x98, 0x66, 0xfc, 0x6c, 0xb9, 0xe9, 0x34, 0x4d, 0x79, 0xff, 0x12, 0x7b, 0xe4, 0x1b, 0x28, 0xe4, + 0xf7, 0xa1, 0x00, 0xba, 0xb7, 0x0e, 0xd7, 0xf5, 0xd0, 0x96, 0x15, 0x7b, 0x83, 0xad, 0x9f, 0x2e, + 0x42, 0x10, 0x07, 0x77, 0x16, 0xb0, 0x15, 0x30, 0x19, 0xdd, 0xb2, 0xd2, 0x54, 0x50, 0xe4, 0x6f, + 0x99, 0x7e, 0x5f, 0x4e, 0xcb, 0x2d, 0xd3, 0x97, 0xe5, 0x34, 0xdf, 0x32, 0x5d, 0x18, 0xce, 0x1d, + 0x68, 0xff, 0x34, 0xd0, 0x8b, 0x36, 0x40, 0xce, 0xd1, 0x5e, 0xd0, 0x94, 0xe8, 0x57, 0xc5, 0x88, + 0xf0, 0xe2, 0x26, 0x77, 0xef, 0xe1, 0xdc, 0x6d, 0xab, 0xbb, 0x5c, 0x23, 0x95, 0x11, 0xa3, 0x9a, + 0x8e, 0xde, 0x13, 0x9e, 0x19, 0xc4, 0x72, 0xfb, 0x0c, 0xb2, 0x9e, 0xd3, 0xf5, 0xba, 0x5e, 0x7d, + 0x99, 0xf7, 0x80, 0x92, 0x45, 0x75, 0xea, 0x3b, 0xf5, 0xa5, 0xad, 0xae, 0xdb, 0xd1, 0x03, 0x1c, + 0x8d, 0x21, 0x65, 0x1a, 0xe3, 0xf8, 0x3d, 0xb3, 0x5f, 0xe9, 0x54, 0x7e, 0x62, 0x53, 0x04, 0x83, + 0x4f, 0x6f, 0x59, 0x1c, 0x9b, 0x32, 0xbf, 0x98, 0xf8, 0x5b, 0xcc, 0xff, 0xb6, 0xb9, 0xfe, 0x9f, + 0xa6, 0x42, 0x4d, 0x29, 0x2f, 0x84, 0xd8, 0x62, 0xe2, 0x54, 0xb1, 0xe4, 0x20, 0x5f, 0xe2, 0xad, + 0x6a, 0x33, 0x67, 0xc5, 0x4c, 0x52, 0x9b, 0xb9, 0x28, 0x66, 0x66, 0xe5, 0xe0, 0x14, 0x06, 0xf3, + 0xa0, 0xb9, 0xf6, 0x83, 0xbd, 0xb4, 0xd9, 0xf5, 0x26, 0x7e, 0x8c, 0x7f, 0x6b, 0x96, 0xf8, 0xfe, + 0xa1, 0x25, 0xae, 0x17, 0x5c, 0xb3, 0x07, 0x86, 0x58, 0x7b, 0x13, 0x4f, 0x42, 0x94, 0xe1, 0x7b, + 0x29, 0x06, 0xc7, 0x68, 0x3c, 0x69, 0xc2, 0x63, 0x2b, 0xed, 0xec, 0xf7, 0x27, 0x4d, 0xf8, 0x85, + 0x40, 0xba, 0x1a, 0xaf, 0x9b, 0x32, 0x1b, 0x5b, 0x9b, 0x31, 0xa4, 0x01, 0x1d, 0x42, 0x9c, 0x51, + 0x9e, 0x63, 0x32, 0xb4, 0x94, 0xaf, 0xd8, 0x9c, 0x8b, 0x09, 0xc0, 0xd3, 0x71, 0xcd, 0x7b, 0x90, + 0x86, 0x0e, 0xaa, 0xa4, 0xfd, 0x1c, 0x78, 0x74, 0xbd, 0xfd, 0x3d, 0x03, 0xdd, 0xc9, 0xb1, 0x5b, + 0xd0, 0xc8, 0x16, 0xd6, 0x41, 0x54, 0x27, 0x84, 0x69, 0xea, 0x5c, 0x22, 0x2d, 0xab, 0xe7, 0xa5, + 0xef, 0x24, 0x26, 0xce, 0xa2, 0x60, 0x35, 0x98, 0xc0, 0x0c, 0xc6, 0xdb, 0xd2, 0x7f, 0x6f, 0xfc, + 0x99, 0x09, 0xb8, 0x3b, 0x30, 0x9d, 0x8c, 0xc3, 0xa6, 0xef, 0x44, 0x63, 0x08, 0xbc, 0x3d, 0x77, + 0x6f, 0xb9, 0xe7, 0xdc, 0xd8, 0xc7, 0xbe, 0x82, 0xe1, 0xd5, 0x83, 0xe1, 0x42, 0xb8, 0x8c, 0xb9, + 0x57, 0x90, 0x6f, 0xf5, 0x76, 0x77, 0xe1, 0xb1, 0xba, 0x2d, 0xed, 0x57, 0x69, 0xa7, 0xde, 0x6c, + 0x5c, 0xdb, 0xdd, 0x77, 0x72, 0xf6, 0xbd, 0x7e, 0x6b, 0x1b, 0xfb, 0xfa, 0x70, 0xfd, 0xec, 0xae, + 0x75, 0x76, 0x6b, 0x40, 0xc7, 0xad, 0x5b, 0x22, 0x65, 0xd1, 0x3f, 0xb4, 0xc3, 0x4c, 0xe2, 0xd5, + 0xe2, 0xb3, 0x6e, 0x72, 0x43, 0x5e, 0xa4, 0x3c, 0x88, 0x69, 0x9d, 0x85, 0x4c, 0x03, 0x31, 0x67, + 0xe5, 0x30, 0x76, 0xb4, 0x90, 0x4b, 0x00, 0x22, 0x9d, 0x7d, 0xb0, 0x45, 0x0f, 0x10, 0xd9, 0xe4, + 0xf8, 0xd8, 0xec, 0x41, 0x5f, 0x6a, 0x3c, 0xf6, 0xf4, 0x10, 0xbc, 0xb5, 0xbc, 0x10, 0xa0, 0xc0, + 0x3b, 0xe5, 0x37, 0x64, 0xa3, 0x54, 0xde, 0x3b, 0xf2, 0x4f, 0x5e, 0x42, 0xb5, 0x4c, 0x9b, 0xba, + 0x49, 0xa1, 0x96, 0xa5, 0x4d, 0x01, 0x7f, 0x7d, 0x7c, 0xdf, 0x13, 0xf7, 0x0d, 0xa8, 0xd5, 0xed, + 0xf5, 0xe3, 0xd0, 0x24, 0x99, 0xd1, 0xbf, 0xf9, 0x12, 0xaf, 0x2b, 0xc9, 0x2a, 0x8d, 0xa1, 0xa7, + 0x37, 0x79, 0x27, 0x54, 0x98, 0x39, 0x60, 0xa1, 0x59, 0x30, 0xec, 0xd8, 0x4b, 0x57, 0xbc, 0x2d, + 0x83, 0x8a, 0x10, 0x5b, 0x61, 0x9f, 0x4e, 0x4d, 0x3d, 0x08, 0x60, 0x59, 0x36, 0x4c, 0xdb, 0x86, + 0x4f, 0x7f, 0xa8, 0xbc, 0xae, 0x9f, 0xce, 0xa0, 0x9e, 0x64, 0x7a, 0x21, 0xb1, 0xa1, 0x93, 0x0a, + 0xef, 0x42, 0xb1, 0xbf, 0xcb, 0xda, 0x39, 0x28, 0x19, 0x53, 0x08, 0x64, 0x1b, 0x63, 0x0b, 0x16, + 0x27, 0x07, 0x74, 0xd4, 0x18, 0x5e, 0xad, 0xa0, 0xcb, 0x12, 0x59, 0x8d, 0x6a, 0x5f, 0xb0, 0x0e, + 0x0d, 0x63, 0x1e, 0x7e, 0xf2, 0xe9, 0x11, 0xb2, 0x1d, 0x0f, 0x3b, 0x76, 0x62, 0x64, 0x8b, 0xcb, + 0xed, 0x7b, 0x1a, 0xc5, 0xa6, 0x03, 0xdc, 0x74, 0x00, 0xfd, 0x7d, 0xb9, 0xef, 0x69, 0x2e, 0x33, + 0x73, 0xba, 0x69, 0xb0, 0x66, 0xc5, 0x8e, 0x06, 0xb4, 0xa3, 0x39, 0xbb, 0xc5, 0x3e, 0xde, 0xe9, + 0x42, 0x55, 0x87, 0x57, 0xba, 0xf0, 0x32, 0x05, 0x1b, 0x24, 0x44, 0xa6, 0xc4, 0xc4, 0xd3, 0xb2, + 0x09, 0x43, 0xbd, 0x98, 0xfb, 0xa5, 0x5c, 0x2b, 0x6f, 0x4f, 0x27, 0x56, 0xae, 0x05, 0x1a, 0x1e, + 0x31, 0x56, 0x29, 0x0d, 0xbd, 0x4a, 0xcf, 0xef, 0x65, 0xf5, 0xf6, 0x83, 0x26, 0xad, 0x77, 0x48, + 0x0c, 0xb7, 0xa2, 0xf7, 0x6a, 0x3c, 0xec, 0xcf, 0x40, 0x36, 0x0b, 0x8b, 0x62, 0xd1, 0x46, 0x7b, + 0x56, 0x74, 0xda, 0xf6, 0xb2, 0x8a, 0x34, 0x94, 0x45, 0x63, 0x56, 0x6c, 0xf4, 0x4d, 0xad, 0xf1, + 0xa0, 0xfb, 0x1e, 0x2e, 0xbe, 0x1f, 0x65, 0x60, 0x7b, 0x8d, 0x37, 0x2a, 0x81, 0x86, 0xf3, 0x3e, + 0xa2, 0x78, 0x24, 0x0e, 0x95, 0x11, 0xac, 0x2b, 0x75, 0xfa, 0x5d, 0x56, 0x2a, 0xe1, 0x85, 0x8d, + 0x67, 0xef, 0xca, 0x6e, 0x70, 0x81, 0xeb, 0x7e, 0x37, 0xda, 0x9d, 0xeb, 0x41, 0xc5, 0xa4, 0xc0, + 0xc9, 0xc8, 0x68, 0xe8, 0xd8, 0x55, 0x64, 0xab, 0x8c, 0xf6, 0x46, 0x20, 0xfa, 0x42, 0x9b, 0x08, + 0x2d, 0x62, 0xe3, 0x89, 0xce, 0xad, 0xb7, 0xff, 0x63, 0xd1, 0xf1, 0xfc, 0xb8, 0xa5, 0xf7, 0x7b, + 0xd0, 0xf7, 0x35, 0x9e, 0xda, 0x8e, 0x0a, 0x2e, 0x1b, 0x69, 0x0b, 0x08, 0x55, 0x93, 0xe8, 0x14, + 0x69, 0x3e, 0x25, 0x52, 0x49, 0x11, 0xac, 0x49, 0xf2, 0x76, 0xfb, 0x31, 0x62, 0x17, 0x7f, 0x83, + 0x18, 0x8a, 0x57, 0xbb, 0x37, 0xa9, 0x61, 0x36, 0xfb, 0x88, 0x31, 0x39, 0xd8, 0x86, 0xbe, 0xea, + 0x1d, 0xc9, 0x17, 0xef, 0x47, 0x1a, 0x8f, 0x5d, 0x8f, 0x9c, 0x6d, 0x23, 0xbd, 0x71, 0x0f, 0xf2, + 0x90, 0x76, 0x63, 0xf3, 0x12, 0x64, 0x03, 0xd0, 0x4f, 0x5d, 0x80, 0x5c, 0x6c, 0xe3, 0xd5, 0xd8, + 0x72, 0xd5, 0xf1, 0x15, 0xd7, 0x1c, 0x1b, 0x4c, 0xab, 0x57, 0x1c, 0x8d, 0xa7, 0xef, 0x38, 0xa6, + 0x79, 0xe3, 0x9c, 0xa3, 0x38, 0x94, 0xb1, 0x4c, 0xfb, 0xdf, 0xcc, 0x02, 0x94, 0x65, 0x02, 0x41, + 0x40, 0xe1, 0x8d, 0xfe, 0x44, 0x26, 0xab, 0x18, 0xda, 0x00, 0x72, 0x0d, 0xa9, 0x80, 0xd8, 0xef, + 0x21, 0xd8, 0x48, 0x5b, 0x0b, 0x11, 0x80, 0xbd, 0x04, 0x1e, 0xd7, 0x5c, 0x2f, 0x48, 0x92, 0xb2, + 0x56, 0x90, 0x9a, 0xec, 0x11, 0x81, 0x95, 0xd1, 0x2b, 0xdb, 0xc8, 0xa2, 0x71, 0x81, 0xd2, 0x2b, + 0x12, 0x5c, 0x41, 0x9a, 0x03, 0x9c, 0x8c, 0x0c, 0x29, 0x21, 0x35, 0xb6, 0xe2, 0x24, 0x98, 0xcd, + 0x50, 0x33, 0x33, 0x2e, 0x82, 0x9c, 0x9c, 0xdd, 0x75, 0xf9, 0xe2, 0xec, 0xcd, 0xf1, 0x9b, 0xd7, + 0x7d, 0xf2, 0x5e, 0xae, 0x80, 0xdc, 0x2d, 0x11, 0x0c, 0xe8, 0x6a, 0x49, 0x56, 0x49, 0x84, 0x42, + 0xb0, 0x20, 0x5c, 0x64, 0x52, 0x40, 0xd1, 0x06, 0x87, 0xd2, 0x2c, 0x05, 0x26, 0x33, 0xbc, 0xc6, + 0xd7, 0x0b, 0x76, 0x4b, 0x82, 0x94, 0x61, 0xb3, 0x8b, 0x51, 0x81, 0x45, 0xed, 0x06, 0x72, 0x33, + 0x27, 0x7e, 0x3a, 0x2e, 0x7f, 0x67, 0xfa, 0x63, 0x2f, 0x0b, 0x0c, 0x26, 0x26, 0x64, 0x51, 0xc3, + 0xad, 0x47, 0x88, 0x5c, 0x37, 0xf5, 0xc0, 0x0f, 0x41, 0xaa, 0x51, 0x8f, 0x52, 0x36, 0x2a, 0xa8, + 0xec, 0x8b, 0x1b, 0x0c, 0xbc, 0x31, 0x6e, 0x81, 0x5f, 0x4c, 0x1e, 0xf1, 0xa0, 0x97, 0x4f, 0x7b, + 0xd0, 0x0f, 0xcf, 0x2a, 0x2e, 0x54, 0x5e, 0x89, 0x6c, 0x09, 0xd7, 0xf6, 0x7a, 0xa4, 0xf1, 0x22, + 0xb3, 0x09, 0xe1, 0x0a, 0x9e, 0x22, 0x86, 0xac, 0x7b, 0x98, 0x1f, 0x96, 0x12, 0x14, 0x95, 0x2c, + 0x6e, 0x95, 0xf1, 0xe7, 0xc2, 0xb6, 0xca, 0x9a, 0xe1, 0x55, 0xa9, 0x66, 0x28, 0xdd, 0xc9, 0x95, + 0xd9, 0x17, 0x71, 0xb0, 0x1a, 0x54, 0xe6, 0x9a, 0x28, 0xfe, 0x17, 0x23, 0xa0, 0xa9, 0x0e, 0x10, + 0x5a, 0x40, 0x6a, 0xaa, 0x4c, 0x21, 0x25, 0x59, 0x7a, 0x41, 0xbe, 0x4a, 0xe9, 0x20, 0xc5, 0x0f, + 0x22, 0x24, 0x91, 0x1c, 0x56, 0x65, 0xa3, 0x99, 0xe5, 0x4b, 0x2b, 0x81, 0x8a, 0xea, 0x30, 0x2b, + 0x83, 0xb0, 0xb9, 0x92, 0xb5, 0x6d, 0x42, 0x45, 0xe9, 0x1b, 0x3a, 0x2f, 0x62, 0x35, 0x14, 0x27, + 0xf9, 0x1a, 0xdb, 0x7b, 0x98, 0xdd, 0x59, 0x27, 0x0a, 0x33, 0xf6, 0xa9, 0xa4, 0xfb, 0x51, 0x01, + 0x1e, 0x46, 0xaf, 0x83, 0xc4, 0x7c, 0xe5, 0x2a, 0xcc, 0x92, 0xd9, 0xc2, 0x7c, 0xf9, 0xca, 0x6c, + 0x64, 0xee, 0xd4, 0x49, 0x10, 0x86, 0x2c, 0x01, 0xcd, 0xb7, 0xed, 0xc6, 0xed, 0xf0, 0xaa, 0x88, + 0x56, 0x81, 0x5a, 0xe5, 0x83, 0x04, 0xed, 0xec, 0x47, 0xad, 0x79, 0x90, 0x28, 0x4b, 0x06, 0xd0, + 0xf5, 0x8b, 0x99, 0xac, 0x63, 0x0b, 0x0c, 0xf9, 0x46, 0x6a, 0x10, 0x2b, 0x17, 0x10, 0xcd, 0x19, + 0x40, 0xce, 0x1b, 0x99, 0x8d, 0xb0, 0x7c, 0xd4, 0xb0, 0xe3, 0xf8, 0x19, 0x39, 0xe0, 0x02, 0x35, + 0x0d, 0x76, 0x43, 0xc7, 0xbc, 0xb5, 0x7e, 0x2a, 0x0a, 0xe4, 0x31, 0xfb, 0x61, 0x53, 0x11, 0xf6, + 0xe7, 0x0a, 0x4c, 0x0f, 0xbe, 0x05, 0x8e, 0x93, 0xc3, 0x04, 0x2d, 0x6b, 0x21, 0xf0, 0xc2, 0x02, + 0x0d, 0x77, 0xb4, 0x7a, 0x50, 0x41, 0x05, 0x90, 0xd4, 0xf4, 0x22, 0xd0, 0x24, 0xe1, 0x37, 0x60, + 0x1c, 0x78, 0xb0, 0x6f, 0x52, 0x71, 0x63, 0x68, 0x04, 0x18, 0x37, 0xe1, 0xc3, 0x03, 0xd1, 0x8a, + 0xbd, 0xdd, 0x6c, 0xab, 0x60, 0x6b, 0x86, 0x55, 0x09, 0x5a, 0xbf, 0x24, 0xe3, 0x21, 0x12, 0x48, + 0x4e, 0x3e, 0x65, 0x73, 0x70, 0xad, 0xd4, 0x4e, 0x65, 0xa8, 0xc8, 0xed, 0xfc, 0xa5, 0x3a, 0xe9, + 0xf1, 0xc2, 0xaa, 0xf1, 0xf5, 0x95, 0xd5, 0xb0, 0x83, 0xb5, 0x63, 0x89, 0x0a, 0xfb, 0xe1, 0x2b, + 0x17, 0xa2, 0x83, 0x55, 0x27, 0xe6, 0x12, 0xf3, 0xdf, 0x01, 0xfe, 0x0b, 0x78, 0xbb, 0xba, 0x67, + 0x1e, 0x20, 0x00, 0x00 }; diff --git a/wled00/html_simple.h b/wled00/html_simple.h index 80810b31..c51a7e24 100644 --- a/wled00/html_simple.h +++ b/wled00/html_simple.h @@ -7,7 +7,7 @@ */ // Autogenerated from wled00/data/simple.htm, do not edit!! -const uint16_t PAGE_simple_L = 17902; +const uint16_t PAGE_simple_L = 17914; const uint8_t PAGE_simple[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x7d, 0x69, 0x77, 0xe2, 0xba, 0xb2, 0xe8, 0xf7, 0xfc, 0x0a, 0xda, 0x7d, 0x4e, 0x1a, 0x1f, 0x1c, 0x30, 0xf3, 0xd4, 0x24, 0x87, @@ -520,612 +520,613 @@ const uint8_t PAGE_simple[] PROGMEM = { 0x27, 0x1f, 0xf4, 0xf3, 0xe4, 0x9d, 0x7e, 0x6e, 0xf8, 0x1d, 0xad, 0x66, 0x7d, 0x79, 0x5d, 0x15, 0xd7, 0x74, 0xb6, 0x04, 0x46, 0xdb, 0xfb, 0x5d, 0xdc, 0x78, 0x9f, 0x1e, 0xbc, 0x18, 0x8b, 0x4f, 0x09, 0xbb, 0x8d, 0xeb, 0x83, 0xdd, 0x04, 0x36, 0xd9, 0x20, 0xba, 0x13, 0x15, 0xa6, 0x76, 0x04, - 0x08, 0x43, 0xca, 0x1f, 0x21, 0xec, 0x3a, 0x8c, 0x0e, 0xc4, 0xd0, 0x75, 0x4f, 0x4e, 0x2e, 0x6b, - 0x2e, 0xe2, 0x7b, 0x9a, 0xcb, 0xc6, 0xc7, 0x23, 0x1d, 0xf9, 0x62, 0xe3, 0xed, 0x77, 0xa1, 0xb7, - 0xdc, 0x85, 0x8d, 0x4f, 0xf4, 0x61, 0xd1, 0x85, 0x83, 0x0f, 0xbb, 0xb0, 0xf1, 0x71, 0x1f, 0x3e, - 0xdd, 0x85, 0x8d, 0x55, 0x7d, 0x90, 0xff, 0xee, 0x30, 0xec, 0xfe, 0x8f, 0x0d, 0x43, 0x8c, 0x2e, - 0xc7, 0xac, 0x27, 0x1b, 0x9f, 0x20, 0x4b, 0x2a, 0x9f, 0x7d, 0xba, 0x5c, 0xd2, 0xd1, 0x63, 0x7d, - 0xde, 0x58, 0x1e, 0xb7, 0xfb, 0xf7, 0x39, 0xce, 0xfa, 0x5e, 0x6f, 0xfc, 0xb5, 0x91, 0x5b, 0xea, - 0x2a, 0x58, 0x19, 0xac, 0x67, 0x1b, 0xab, 0xbb, 0x06, 0xef, 0x71, 0xcd, 0xfb, 0xa3, 0xae, 0xad, - 0x18, 0xce, 0x66, 0xdc, 0x56, 0x60, 0x90, 0xa8, 0x59, 0x90, 0xa6, 0xad, 0xff, 0x8f, 0xf7, 0x32, - 0x6e, 0x73, 0x75, 0x74, 0xd3, 0x75, 0x3e, 0xc5, 0x6e, 0xe8, 0x38, 0x80, 0x35, 0x05, 0xf9, 0xa3, - 0xcc, 0x46, 0x71, 0xf4, 0x25, 0xca, 0xf0, 0x55, 0x84, 0xb0, 0x2f, 0x26, 0xe4, 0x43, 0xf0, 0x32, - 0x4f, 0x26, 0x4e, 0x42, 0x76, 0x8d, 0xb0, 0x39, 0xcf, 0x56, 0x41, 0xb0, 0x55, 0x38, 0xe4, 0xdb, - 0xd9, 0x65, 0xeb, 0xf4, 0x53, 0x65, 0xb3, 0x50, 0x36, 0xf7, 0x17, 0xcb, 0xe6, 0xa0, 0x6c, 0x7e, - 0xd9, 0x4c, 0x8d, 0x91, 0x89, 0x1f, 0x3e, 0xf7, 0x9e, 0x50, 0xf6, 0x82, 0xd4, 0x96, 0xc6, 0xc2, - 0x7f, 0xef, 0x45, 0xec, 0x7d, 0x6e, 0x5e, 0x79, 0x99, 0x97, 0xc8, 0xae, 0x0b, 0x5a, 0xce, 0x82, - 0xd8, 0x18, 0xad, 0xa0, 0x57, 0x97, 0x0b, 0x67, 0x48, 0x84, 0x9c, 0xc3, 0xd8, 0x76, 0x5c, 0x3e, - 0x58, 0xc8, 0xc0, 0x6f, 0x6c, 0x3d, 0x81, 0xd2, 0xa1, 0xc0, 0x59, 0xb4, 0xcd, 0xa8, 0x38, 0x99, - 0x06, 0x75, 0x55, 0x63, 0x47, 0x82, 0xf7, 0x3c, 0xb3, 0xb1, 0x23, 0x26, 0xf6, 0x62, 0x5d, 0x20, - 0x64, 0x61, 0x63, 0xa2, 0xe1, 0x17, 0xa1, 0x0e, 0x91, 0xbc, 0xe7, 0xfa, 0x59, 0x2a, 0x1f, 0x5a, - 0xce, 0xf0, 0x7d, 0x17, 0x59, 0x2f, 0x67, 0x5c, 0x5f, 0xa2, 0x6d, 0x5b, 0xcc, 0x4c, 0xcd, 0x59, - 0x8f, 0xdd, 0x7d, 0xb0, 0x34, 0x94, 0x4f, 0x12, 0xf7, 0x06, 0xcb, 0xbc, 0x40, 0xae, 0xa7, 0x33, - 0xb2, 0xe4, 0x84, 0x63, 0x11, 0xa2, 0xae, 0xe8, 0x78, 0xd8, 0xb7, 0x40, 0x1b, 0x9e, 0xcf, 0x15, - 0x59, 0xc3, 0xff, 0x4c, 0x56, 0x75, 0x28, 0xfc, 0x28, 0x73, 0xa0, 0x69, 0x7f, 0xea, 0x4a, 0x10, - 0xff, 0x67, 0x5c, 0x09, 0xcb, 0x18, 0xc3, 0x35, 0x1e, 0x5c, 0xe4, 0x9d, 0x7e, 0x80, 0xb5, 0xb0, - 0x27, 0xaf, 0xa7, 0x9f, 0xe2, 0x78, 0x38, 0xbe, 0x4f, 0xa6, 0x20, 0x56, 0x43, 0x3e, 0x99, 0x4f, - 0x73, 0xd9, 0xa3, 0xa0, 0xea, 0x28, 0x42, 0x83, 0x74, 0xa6, 0xec, 0xad, 0xc7, 0xe9, 0xc6, 0x1f, - 0x23, 0xf5, 0x33, 0xea, 0xec, 0x67, 0x91, 0x1a, 0x61, 0xd1, 0x1e, 0x1b, 0x8d, 0x6d, 0x77, 0x42, - 0xf7, 0xbd, 0x5f, 0x75, 0x18, 0x7d, 0xed, 0xc9, 0x9e, 0x6d, 0x5a, 0xaa, 0x39, 0x36, 0xb0, 0x8b, - 0x3e, 0xd9, 0x7b, 0xac, 0x0e, 0x11, 0x44, 0x63, 0x23, 0xd7, 0x79, 0x49, 0x49, 0x85, 0x61, 0x9b, - 0x3a, 0x51, 0x22, 0xad, 0x08, 0xd7, 0x71, 0x29, 0xe9, 0xeb, 0x2b, 0xa1, 0x53, 0x94, 0x86, 0x5c, - 0xae, 0xa9, 0x04, 0x9d, 0x84, 0x1b, 0x58, 0xcb, 0x1e, 0xe9, 0x4a, 0x43, 0xdd, 0x8d, 0xcf, 0xd9, - 0x6e, 0xd0, 0x83, 0x00, 0xf4, 0x62, 0x59, 0x95, 0x5b, 0xc5, 0xf8, 0x36, 0x3c, 0x02, 0xf8, 0x23, - 0xc6, 0xb7, 0xb1, 0x9a, 0xf3, 0x75, 0x27, 0x94, 0xa1, 0x00, 0xeb, 0x7b, 0x87, 0xf3, 0x6d, 0xfc, - 0x21, 0xeb, 0x8b, 0x73, 0xbe, 0x8d, 0xbf, 0xc8, 0xfa, 0xbc, 0xc6, 0x25, 0x22, 0xac, 0x2f, 0xca, - 0x67, 0x70, 0x05, 0x9e, 0x4b, 0xe0, 0x71, 0xa7, 0x5b, 0x58, 0x42, 0x0c, 0x35, 0x09, 0xe8, 0x9f, - 0xcd, 0x4c, 0x2a, 0x56, 0xbf, 0x4b, 0x09, 0xe6, 0x45, 0xfe, 0x2a, 0x46, 0x85, 0x60, 0x38, 0x93, - 0x47, 0x07, 0xd2, 0x07, 0xfa, 0x92, 0xb5, 0x20, 0x88, 0x05, 0x63, 0xfe, 0x60, 0xd0, 0x3e, 0x18, - 0xb3, 0x8d, 0x3f, 0x91, 0x56, 0x92, 0xfe, 0xf1, 0xa0, 0x6d, 0x24, 0xfe, 0x87, 0x06, 0xcd, 0x6f, - 0xdd, 0x5f, 0x1f, 0x35, 0x98, 0x6f, 0xc4, 0x75, 0xc9, 0x07, 0xc3, 0x16, 0xce, 0x15, 0x4c, 0x2d, - 0x69, 0x3b, 0x5e, 0x0d, 0x86, 0x67, 0x04, 0x9e, 0xab, 0x55, 0xf6, 0x4b, 0x22, 0xa2, 0xfd, 0xbf, - 0x3b, 0xee, 0xde, 0x16, 0xd9, 0xd8, 0x5a, 0x13, 0x5b, 0x5b, 0x92, 0xc2, 0x62, 0xd9, 0x2f, 0x10, - 0x9c, 0x73, 0xf2, 0xce, 0x42, 0x4a, 0x1c, 0x14, 0xae, 0x61, 0x06, 0xc8, 0xa3, 0x5b, 0x9d, 0xc3, - 0xfa, 0x15, 0x6e, 0x94, 0xa5, 0xe3, 0x3b, 0xe8, 0xf9, 0x79, 0xc6, 0x1a, 0x97, 0x90, 0x74, 0x90, - 0x07, 0xf4, 0x2c, 0xe5, 0xd0, 0x49, 0xe2, 0x96, 0xd1, 0xf3, 0x8f, 0xfa, 0xd5, 0xee, 0x76, 0x2f, - 0xae, 0xc7, 0xe2, 0xc9, 0x41, 0xcf, 0xc4, 0xe3, 0xad, 0xce, 0x3b, 0xb7, 0xfd, 0xfd, 0x5b, 0x3c, - 0xda, 0x77, 0x97, 0x1e, 0x77, 0xd5, 0x6e, 0x35, 0x1f, 0xe1, 0xab, 0x55, 0x6c, 0x0f, 0xbb, 0x45, - 0x7a, 0xb6, 0xef, 0xc3, 0x79, 0xe7, 0x5a, 0x3c, 0x6a, 0xda, 0x4e, 0x41, 0x29, 0xd1, 0xc3, 0xc4, - 0xaf, 0x8d, 0xab, 0xdb, 0xec, 0x2e, 0xe4, 0x99, 0x3c, 0x8f, 0x47, 0x95, 0xc7, 0xab, 0x5b, 0x4c, - 0x3c, 0x56, 0xf6, 0xfb, 0x4f, 0xca, 0xb8, 0xd9, 0xdc, 0x73, 0xce, 0xe0, 0x67, 0x79, 0xaf, 0xa9, - 0xa8, 0xa3, 0xd7, 0x03, 0x2c, 0xb0, 0x2b, 0x77, 0x6e, 0xaf, 0x77, 0xef, 0x5a, 0xfd, 0x1b, 0xfd, - 0xb1, 0x2a, 0xef, 0x99, 0xcd, 0xf1, 0xde, 0xd9, 0xf9, 0x7d, 0xd9, 0xa8, 0x1a, 0xe3, 0x96, 0x66, - 0x4d, 0xdd, 0xab, 0xf3, 0xc2, 0x53, 0xc5, 0x95, 0xed, 0x9b, 0xc3, 0xc1, 0xde, 0xa0, 0x5d, 0x30, - 0x2f, 0xdf, 0xa6, 0xba, 0x3a, 0xbe, 0x7e, 0xb5, 0xb2, 0x9d, 0x8e, 0x6a, 0xdc, 0x65, 0xce, 0x87, - 0x4f, 0xc3, 0xb7, 0x57, 0x30, 0x20, 0x76, 0xa7, 0x93, 0x87, 0x37, 0x63, 0x77, 0x9c, 0xd7, 0x7a, - 0x2f, 0xa4, 0xbd, 0xdf, 0x7d, 0x98, 0xde, 0x0e, 0xfb, 0x27, 0x99, 0x69, 0xfb, 0x4c, 0x6c, 0x4d, - 0x8e, 0xbb, 0xd3, 0xd7, 0x87, 0xa7, 0xfd, 0x0b, 0xa5, 0x94, 0xe9, 0xd8, 0xd5, 0x8c, 0xdc, 0x2d, - 0x0f, 0x8f, 0x5a, 0xc5, 0xf3, 0xb1, 0x5a, 0x36, 0xed, 0xb3, 0x51, 0xf3, 0x72, 0xe5, 0xf1, 0xe3, - 0x2b, 0xcc, 0xd6, 0x97, 0x51, 0xb0, 0x96, 0x19, 0xac, 0x61, 0x06, 0x39, 0x96, 0x94, 0xe9, 0x98, - 0x22, 0x6d, 0x93, 0xd7, 0x21, 0x71, 0xdc, 0x63, 0x07, 0x4f, 0x72, 0xe6, 0xb6, 0xaf, 0x49, 0x17, - 0xf4, 0xd6, 0xfe, 0x5a, 0x55, 0x3c, 0x56, 0x3a, 0xba, 0x9a, 0xd7, 0xd2, 0x4d, 0x87, 0x24, 0xf0, - 0xd7, 0x9f, 0x95, 0x0f, 0xe8, 0xe9, 0xc8, 0x70, 0x5c, 0xb4, 0xb0, 0x12, 0x78, 0x76, 0xf6, 0x07, - 0x30, 0xa8, 0xdf, 0x04, 0x55, 0x6c, 0xfa, 0x73, 0xc1, 0x16, 0x8c, 0xee, 0x35, 0xa6, 0xb2, 0xce, - 0xc8, 0xa6, 0xe9, 0x26, 0xd8, 0x59, 0xed, 0x71, 0xfb, 0xc0, 0xb1, 0xa4, 0x00, 0x22, 0x6a, 0x94, - 0x67, 0x92, 0x4a, 0x12, 0x63, 0xcd, 0xed, 0x7b, 0xaf, 0x10, 0x3e, 0xdd, 0xa1, 0x8c, 0x2c, 0x23, - 0x2b, 0x8a, 0x95, 0x42, 0x1d, 0x58, 0x47, 0x7b, 0x5f, 0xdc, 0x07, 0xd6, 0x81, 0x39, 0xb6, 0x13, - 0xf2, 0x34, 0xd1, 0xd4, 0x6c, 0xc5, 0x34, 0xcd, 0x17, 0x8d, 0xd0, 0x15, 0x6e, 0xb7, 0x4f, 0x12, - 0x30, 0xeb, 0xbd, 0x83, 0xf1, 0xfb, 0xae, 0x6b, 0x39, 0xb5, 0x4c, 0x66, 0xac, 0x13, 0x35, 0x0d, - 0x6a, 0x86, 0x62, 0x0e, 0x6d, 0x87, 0xa4, 0xd1, 0x89, 0x69, 0x65, 0x40, 0x49, 0x91, 0xec, 0x1e, - 0x1e, 0xe7, 0xff, 0x5f, 0x32, 0x98, 0x95, 0x2f, 0x1c, 0x3d, 0x53, 0x3e, 0xa1, 0x98, 0x83, 0xc1, - 0xd0, 0x00, 0xad, 0x87, 0x71, 0x72, 0x56, 0xd1, 0xc6, 0xd2, 0xdc, 0x64, 0x0b, 0x9c, 0xeb, 0x26, - 0x1a, 0xee, 0xbd, 0xf7, 0xe0, 0x69, 0x1e, 0x4a, 0x9d, 0xa5, 0xb9, 0xfa, 0x62, 0xfc, 0x31, 0xd9, - 0x04, 0x58, 0xc6, 0x13, 0xcd, 0x83, 0x51, 0xdb, 0xf8, 0x14, 0xd1, 0xac, 0x1b, 0x73, 0x46, 0x34, - 0x7a, 0x78, 0xc0, 0x37, 0xe2, 0x3c, 0x4c, 0x63, 0x5e, 0x32, 0xff, 0xf4, 0x00, 0x2e, 0x2a, 0x1e, - 0xf0, 0x40, 0x9f, 0x28, 0x13, 0x3e, 0x65, 0x1e, 0x08, 0xa6, 0x95, 0x66, 0x45, 0xa6, 0xc2, 0xb0, - 0xbe, 0xf9, 0x47, 0xf5, 0xe3, 0x21, 0xf0, 0xba, 0xa9, 0x68, 0x96, 0x00, 0xa6, 0x24, 0xf3, 0xd7, - 0x0a, 0x16, 0xe3, 0xca, 0xce, 0x1e, 0xb0, 0x21, 0x61, 0xec, 0xb0, 0x83, 0xe5, 0x05, 0x76, 0x66, - 0xbb, 0xe0, 0xb2, 0x83, 0xcf, 0x05, 0x28, 0xd4, 0xf8, 0x92, 0x15, 0x0c, 0xf3, 0x9c, 0x8c, 0xc1, - 0xa8, 0x74, 0xf0, 0x87, 0xe6, 0x5c, 0x18, 0xec, 0x1b, 0x89, 0x9f, 0x3d, 0xd1, 0x0e, 0xb2, 0xc7, - 0xeb, 0x9e, 0x3c, 0xc6, 0x27, 0x45, 0x71, 0x1b, 0xf4, 0xc0, 0x7c, 0x0d, 0x2a, 0x69, 0xfc, 0xa0, - 0x3b, 0x80, 0x7e, 0x0a, 0x16, 0xae, 0xa1, 0x13, 0xb5, 0xf1, 0xe3, 0x0b, 0xfc, 0xf0, 0xa3, 0x0a, - 0xdb, 0x93, 0x86, 0x18, 0xfc, 0x00, 0x69, 0x01, 0xbf, 0x14, 0xf8, 0x89, 0x5f, 0x43, 0x1b, 0xf7, - 0x68, 0x32, 0xf3, 0xb2, 0xb1, 0x95, 0x15, 0x00, 0x15, 0xee, 0x2d, 0xd5, 0x8a, 0x69, 0x91, 0x5e, - 0xcb, 0x1c, 0x1a, 0x2e, 0x3c, 0x02, 0xd1, 0x05, 0x8f, 0x50, 0x05, 0x64, 0x32, 0x86, 0x0e, 0xd4, - 0x23, 0x0a, 0xa0, 0x2f, 0x43, 0xcb, 0x31, 0x9d, 0x7d, 0xb9, 0x76, 0xa3, 0x2c, 0xa8, 0xc1, 0x31, - 0xf2, 0x42, 0x77, 0x82, 0x8c, 0xb8, 0xf1, 0x03, 0xda, 0x86, 0x7c, 0xa1, 0x31, 0x9b, 0x0b, 0xc4, - 0x7f, 0xd0, 0xfd, 0x07, 0xeb, 0xbc, 0xc1, 0x71, 0x82, 0x75, 0x04, 0xe5, 0xad, 0xf3, 0xe1, 0x00, - 0xbf, 0x06, 0x6e, 0x23, 0x8b, 0x9f, 0xa7, 0x1d, 0xf6, 0xeb, 0x14, 0x5a, 0x86, 0xb5, 0xc0, 0x17, - 0x0a, 0x06, 0x2c, 0xa5, 0x74, 0x7b, 0x8d, 0x19, 0xbd, 0xab, 0xa2, 0x36, 0x43, 0xf6, 0x5e, 0x03, - 0x9e, 0x6f, 0xbf, 0x70, 0x82, 0xdc, 0xab, 0xcd, 0x86, 0xb6, 0x5e, 0xe3, 0xb8, 0xb9, 0x20, 0xe9, - 0x56, 0x5f, 0x82, 0xd7, 0xbd, 0x5a, 0xba, 0x24, 0xb8, 0x92, 0x5c, 0x4b, 0x57, 0xa0, 0x20, 0x5d, - 0x50, 0xc0, 0x44, 0xc8, 0x82, 0x3f, 0x07, 0x56, 0x8d, 0xc5, 0xba, 0x3b, 0xb5, 0x19, 0x73, 0xcb, - 0xd7, 0xbe, 0x88, 0x82, 0xdd, 0x93, 0xf1, 0x4e, 0x82, 0x57, 0x5c, 0xb5, 0xc4, 0xdf, 0x7d, 0x32, - 0x81, 0xdf, 0xd0, 0x6c, 0x6a, 0xa9, 0x60, 0x8a, 0xa5, 0x0c, 0x40, 0x2d, 0xc7, 0x4c, 0x96, 0xa6, - 0x62, 0x02, 0xa0, 0x4c, 0x27, 0x06, 0xe6, 0x9a, 0x0b, 0xa0, 0xc3, 0x34, 0x7e, 0xc0, 0xc0, 0x64, - 0xb3, 0x42, 0xae, 0x20, 0x14, 0x84, 0x60, 0x0a, 0x4b, 0xc1, 0x3c, 0x4f, 0xf7, 0x80, 0x47, 0x0c, - 0xe5, 0xb4, 0x66, 0x66, 0x26, 0x03, 0xc9, 0x49, 0x83, 0xa0, 0xe2, 0x7e, 0x0a, 0x50, 0x26, 0x27, - 0x64, 0xcb, 0x42, 0x76, 0x51, 0x84, 0xca, 0x31, 0x27, 0x4d, 0x7b, 0xa3, 0x98, 0x78, 0xfb, 0x40, - 0x1a, 0x5a, 0x9d, 0x29, 0x54, 0xb3, 0xf8, 0x97, 0xcd, 0xe5, 0xd3, 0xcf, 0x16, 0x2d, 0x9a, 0x13, - 0x73, 0x39, 0x21, 0x8f, 0xa5, 0x73, 0x1f, 0x54, 0x48, 0x00, 0x93, 0xc4, 0xf6, 0xab, 0x84, 0x72, - 0x79, 0x28, 0x57, 0xfd, 0xf3, 0x62, 0x05, 0x28, 0x92, 0xcf, 0xfe, 0x51, 0xb9, 0x9f, 0xf5, 0xe0, - 0x72, 0x0b, 0x30, 0xd1, 0x54, 0x9d, 0xdc, 0x05, 0x41, 0x56, 0x2d, 0x6a, 0xb3, 0x25, 0xf9, 0xd9, - 0x17, 0xd5, 0xdb, 0xb2, 0xbc, 0xb9, 0x89, 0xf7, 0x49, 0xc0, 0x34, 0xc2, 0xb3, 0x2b, 0x7c, 0xea, - 0xdc, 0xce, 0x93, 0xfc, 0xe6, 0x66, 0x44, 0xde, 0xcc, 0x03, 0x98, 0x0e, 0x4c, 0xc1, 0x24, 0x11, - 0x5c, 0x7e, 0x06, 0x9c, 0xd2, 0xa3, 0x43, 0xef, 0x4a, 0x86, 0x34, 0x35, 0xaa, 0xf0, 0xa2, 0x84, - 0x4b, 0xd0, 0x5b, 0x89, 0x0d, 0x06, 0x21, 0x66, 0x5c, 0x94, 0xed, 0x1d, 0xa9, 0x49, 0xc2, 0xcf, - 0x6c, 0xe2, 0x0e, 0x6d, 0x23, 0xa1, 0x86, 0x6e, 0xd8, 0xd8, 0x9d, 0xd2, 0x57, 0xa1, 0xac, 0xfb, - 0xbb, 0xad, 0xf3, 0x35, 0x99, 0x9d, 0xdd, 0x69, 0x0b, 0xd9, 0x0a, 0xbd, 0x90, 0x23, 0x5c, 0x48, - 0x73, 0xf6, 0x07, 0x16, 0xd6, 0x1a, 0x14, 0x13, 0x1b, 0x8d, 0xc6, 0x85, 0xfc, 0x0c, 0x93, 0x13, - 0xcf, 0x04, 0x73, 0xe0, 0x4d, 0x1a, 0x48, 0xa8, 0xe7, 0xf6, 0xc3, 0x85, 0x20, 0x43, 0xa8, 0x08, - 0xd9, 0xdc, 0xe4, 0x4c, 0x5a, 0x84, 0x6b, 0x34, 0x50, 0x91, 0x36, 0xbb, 0x98, 0xf6, 0xa5, 0x69, - 0xdb, 0xd2, 0x34, 0xad, 0x39, 0xf4, 0x3b, 0x52, 0x2d, 0xde, 0x3b, 0x31, 0x6d, 0x75, 0x7b, 0x80, - 0x58, 0x85, 0xc5, 0x3e, 0x70, 0xf4, 0x20, 0x44, 0xbc, 0xf1, 0x01, 0xa6, 0x51, 0x9a, 0xce, 0xa2, - 0x34, 0x4e, 0x22, 0x76, 0xa5, 0x05, 0x09, 0xa5, 0xd2, 0x89, 0x91, 0x96, 0x7b, 0x75, 0xa8, 0x82, - 0xa2, 0x96, 0xa3, 0x9b, 0x60, 0x39, 0x81, 0xf8, 0xd7, 0x5f, 0x60, 0x5e, 0x9c, 0x44, 0x2c, 0xab, - 0x53, 0x47, 0x24, 0x7a, 0xab, 0xee, 0xbc, 0x87, 0x71, 0xcf, 0x30, 0x6e, 0xb8, 0x69, 0x3a, 0x9d, - 0x76, 0x38, 0x1a, 0xcb, 0xc9, 0xd5, 0x38, 0xea, 0x1d, 0xac, 0x77, 0x81, 0xc9, 0x22, 0x2c, 0x73, - 0x01, 0x8b, 0xcd, 0x32, 0xc1, 0x69, 0xa8, 0x50, 0x84, 0xd8, 0xd3, 0x0e, 0x65, 0x60, 0xa6, 0xdd, - 0xd4, 0xa1, 0x05, 0x8b, 0x23, 0x98, 0x38, 0x5e, 0x30, 0x1a, 0x62, 0xdd, 0xf8, 0xee, 0x78, 0x68, - 0xab, 0x1b, 0xa9, 0x14, 0xef, 0xfc, 0x30, 0x7e, 0xc6, 0x6a, 0x36, 0xe3, 0x75, 0xae, 0x81, 0xec, - 0x41, 0xa5, 0x4d, 0xfa, 0x8b, 0x90, 0x93, 0x4b, 0xa0, 0x01, 0x6e, 0x5f, 0xe5, 0x78, 0xfe, 0x83, - 0x92, 0x82, 0x8f, 0x5f, 0x59, 0xb6, 0x38, 0x01, 0xde, 0x86, 0x8e, 0xfc, 0x84, 0x3c, 0xde, 0x39, - 0x1c, 0x34, 0x20, 0x0e, 0xfa, 0x1d, 0x64, 0x06, 0xd0, 0x42, 0x1c, 0x54, 0xe8, 0xf5, 0xc0, 0xa5, - 0xaf, 0xd1, 0x71, 0x50, 0xe3, 0x8a, 0xf0, 0xb9, 0x78, 0xe7, 0x6e, 0xc9, 0x9c, 0xb0, 0x18, 0x6a, - 0xca, 0x5f, 0x10, 0xb7, 0x90, 0x43, 0x7b, 0x83, 0x69, 0x88, 0x12, 0x4a, 0xd2, 0x3b, 0xd0, 0x03, - 0xe0, 0x3f, 0x38, 0x6d, 0x8e, 0x5c, 0x32, 0x48, 0x72, 0xa8, 0x84, 0xdc, 0x6a, 0x40, 0x4f, 0x9c, - 0x70, 0xdc, 0xb9, 0x38, 0x87, 0x5e, 0xe1, 0xf9, 0x27, 0x5a, 0x77, 0x9a, 0x04, 0x58, 0x7c, 0x88, - 0xee, 0x16, 0xa1, 0x36, 0xb3, 0x28, 0x99, 0x35, 0xd6, 0xd1, 0xdf, 0x0e, 0x63, 0xe2, 0x35, 0xef, - 0xbd, 0xb0, 0xa0, 0xdc, 0x08, 0x54, 0xdf, 0x5b, 0x34, 0x8b, 0xd1, 0x4b, 0xe3, 0x4b, 0x9c, 0x80, - 0x56, 0x01, 0xf0, 0xe6, 0x00, 0xcc, 0x28, 0xb2, 0x93, 0x8c, 0xd0, 0x34, 0x87, 0x87, 0xcc, 0x86, - 0x10, 0xa4, 0x6c, 0x75, 0x31, 0x91, 0xc6, 0x08, 0x84, 0x12, 0x73, 0x98, 0xa8, 0xaa, 0x6a, 0x24, - 0x31, 0x8f, 0x89, 0xb2, 0x2c, 0x47, 0x12, 0x0b, 0x98, 0x28, 0x49, 0x52, 0x24, 0xb1, 0x88, 0x89, - 0xd5, 0x6a, 0x35, 0x92, 0x58, 0x5a, 0x95, 0x58, 0xc1, 0xc4, 0x4a, 0xa5, 0x12, 0x49, 0x94, 0x31, - 0xb1, 0x50, 0x28, 0x44, 0x12, 0x15, 0x4c, 0xcc, 0xe7, 0xf3, 0x91, 0x44, 0x82, 0x89, 0xd9, 0x6c, - 0x36, 0x92, 0xa8, 0x62, 0x22, 0xde, 0xe4, 0x14, 0x4e, 0xb4, 0x31, 0x51, 0xc9, 0x45, 0x73, 0xf6, - 0x68, 0x4e, 0x25, 0x9a, 0xa8, 0xd3, 0xc4, 0x92, 0x12, 0x49, 0x34, 0x21, 0x91, 0x1e, 0x7a, 0x9b, - 0x13, 0x0b, 0x42, 0x62, 0xf1, 0x81, 0x27, 0xec, 0x46, 0x32, 0x3a, 0xb2, 0x87, 0xcf, 0x7c, 0x2c, - 0xb9, 0xef, 0xa5, 0x97, 0x22, 0xe9, 0xae, 0xbc, 0x06, 0x70, 0xe8, 0x40, 0xdd, 0x58, 0x01, 0xc9, - 0x2f, 0x91, 0x2d, 0x8b, 0x42, 0x62, 0xf1, 0xb1, 0xbe, 0x44, 0xff, 0x53, 0x75, 0x50, 0xae, 0x46, - 0xcd, 0x4e, 0x7f, 0x1a, 0x77, 0x35, 0xdd, 0x45, 0x2f, 0x85, 0x66, 0xe0, 0x3e, 0x8b, 0xa4, 0x98, - 0xae, 0x40, 0xbe, 0x5a, 0x9c, 0xa0, 0xe2, 0xe8, 0xa7, 0x04, 0x45, 0xe3, 0x5a, 0xe2, 0x04, 0x15, - 0x1f, 0x93, 0xfc, 0xaa, 0x21, 0x2d, 0xac, 0x1a, 0x7c, 0x4a, 0x50, 0xc5, 0x62, 0x71, 0x99, 0xa0, - 0x4a, 0xa5, 0xd2, 0x27, 0x09, 0x2a, 0x4e, 0xb9, 0x94, 0xa0, 0x14, 0x45, 0x59, 0x26, 0xa8, 0xf8, - 0x14, 0x51, 0x57, 0xcd, 0x06, 0x4a, 0x50, 0xa4, 0x90, 0x5b, 0x26, 0xa8, 0x02, 0xc9, 0x2d, 0x13, - 0x54, 0xa1, 0x22, 0xad, 0x26, 0xa8, 0xf8, 0x79, 0xcd, 0x2b, 0xa8, 0x09, 0x90, 0xb9, 0x92, 0x9a, - 0x20, 0xbd, 0xb8, 0x86, 0x9a, 0xd6, 0x1c, 0xf4, 0xbc, 0x96, 0x94, 0xd6, 0x1e, 0xf9, 0xbc, 0x8e, - 0x94, 0xd6, 0x1c, 0xfe, 0xfc, 0x2e, 0x1d, 0x0d, 0x0d, 0xe0, 0xb0, 0x5c, 0x88, 0x4f, 0xa1, 0x69, - 0xb4, 0xdb, 0x43, 0x3e, 0xc5, 0xae, 0x6e, 0x5a, 0x71, 0xf1, 0x17, 0x55, 0x4b, 0x30, 0xee, 0x97, - 0x17, 0xcc, 0xb5, 0xf7, 0x50, 0x41, 0x6d, 0x20, 0xd1, 0x4c, 0x7a, 0xc9, 0x14, 0x11, 0xcc, 0x77, - 0xaf, 0x95, 0x42, 0x31, 0xec, 0x34, 0x2c, 0xbc, 0x26, 0xa9, 0x8d, 0x61, 0xd1, 0xc9, 0xb8, 0x78, - 0x90, 0x7b, 0x7c, 0x1d, 0x4c, 0x12, 0xe9, 0x3c, 0xe9, 0xf0, 0x9b, 0x9b, 0x20, 0xeb, 0xd2, 0x25, - 0x5e, 0xf0, 0x35, 0x2b, 0x2f, 0x8e, 0xb9, 0xe1, 0x04, 0x29, 0x8b, 0x50, 0x9b, 0x23, 0x54, 0x62, - 0x1b, 0xbf, 0xf0, 0x5a, 0xa6, 0x7f, 0xcc, 0x68, 0x63, 0xe6, 0xfc, 0x2f, 0x68, 0xb5, 0x31, 0xd4, - 0xf5, 0x79, 0xac, 0xd7, 0x9d, 0x17, 0xcd, 0x68, 0x75, 0x3a, 0xd8, 0x75, 0xad, 0x9b, 0xfc, 0xc2, - 0xd4, 0x32, 0x7e, 0x16, 0xbb, 0x6e, 0xeb, 0xa3, 0xfb, 0xcf, 0xd6, 0x63, 0x04, 0xef, 0xa1, 0xa3, - 0x28, 0x01, 0x63, 0x10, 0x31, 0xc2, 0xae, 0xa4, 0xc3, 0x06, 0x3b, 0x7d, 0x42, 0x50, 0x60, 0xa6, - 0x17, 0x1e, 0xca, 0x8c, 0xe2, 0x38, 0x98, 0x42, 0x2d, 0xf1, 0x24, 0x88, 0xc4, 0x1d, 0xaa, 0xeb, - 0x82, 0xaa, 0xcb, 0xa5, 0xa8, 0xdd, 0x57, 0xe3, 0xd2, 0x1c, 0x9f, 0xe2, 0x32, 0x0e, 0xb4, 0x3a, - 0xed, 0x65, 0xa6, 0xe1, 0xea, 0x0d, 0x4e, 0xd2, 0x75, 0x7a, 0x91, 0x57, 0xe8, 0x52, 0x2b, 0x93, - 0x9f, 0xcf, 0x25, 0x67, 0x6a, 0x28, 0x89, 0xa0, 0xcb, 0xfe, 0x75, 0x5a, 0x33, 0x0e, 0x68, 0x01, - 0x0c, 0x99, 0x46, 0x23, 0x1e, 0xf9, 0x6b, 0xd9, 0xa6, 0x6b, 0x82, 0x7e, 0x05, 0x18, 0xa7, 0x56, - 0xa3, 0x28, 0x24, 0x69, 0xd5, 0x8d, 0x88, 0x84, 0xee, 0xf9, 0x12, 0x1a, 0x52, 0x8f, 0x2c, 0x50, - 0x38, 0x7e, 0xff, 0xf6, 0xb2, 0x41, 0x79, 0x50, 0x3c, 0x93, 0x5c, 0x1b, 0xe0, 0x27, 0xce, 0xc0, - 0x84, 0x48, 0x27, 0x2e, 0x75, 0x3c, 0x6b, 0x28, 0x41, 0x97, 0xc6, 0x58, 0xb4, 0xf9, 0xd1, 0xe5, - 0x17, 0x6e, 0x9d, 0xcc, 0x67, 0x10, 0x05, 0x0a, 0x8d, 0xe7, 0x7d, 0x35, 0x71, 0x75, 0xed, 0x0b, - 0xfd, 0x00, 0x48, 0xa5, 0x9b, 0xa4, 0x37, 0x88, 0x81, 0xb1, 0x36, 0x20, 0x76, 0x8f, 0xec, 0x11, - 0x62, 0xe1, 0x2f, 0xa6, 0x39, 0x50, 0x3a, 0xc3, 0xa1, 0xe5, 0xc1, 0x92, 0x7c, 0x21, 0xf7, 0x1d, - 0xd0, 0x39, 0x16, 0x12, 0x5b, 0xe0, 0xb8, 0x88, 0x7e, 0xd0, 0x4b, 0x03, 0xf1, 0xfc, 0xfe, 0x1d, - 0x58, 0x1a, 0x60, 0xab, 0x39, 0xc3, 0x41, 0xda, 0xea, 0x03, 0x6e, 0x9c, 0x4c, 0xb6, 0x9a, 0x13, - 0x33, 0x59, 0xb1, 0x22, 0xc6, 0xb4, 0x0a, 0x5a, 0xca, 0xa7, 0x9d, 0x78, 0x7a, 0xbd, 0x4b, 0x5c, - 0xa5, 0x9f, 0x7c, 0x6f, 0x54, 0xfb, 0xe8, 0x0c, 0x97, 0xa6, 0x4e, 0xfa, 0x19, 0x0c, 0x0d, 0x4e, - 0x98, 0x0d, 0x88, 0xdb, 0x37, 0xd5, 0x1a, 0x07, 0xdd, 0xe5, 0xe6, 0x3c, 0x42, 0x33, 0x92, 0x30, - 0x73, 0x08, 0x7d, 0x9f, 0xe4, 0x17, 0x29, 0xb3, 0xb8, 0x42, 0x0e, 0x78, 0x40, 0xab, 0x10, 0x34, - 0x73, 0x3e, 0x0d, 0xe3, 0x0a, 0xf5, 0xd2, 0x5b, 0xf3, 0x4c, 0xc3, 0x31, 0x61, 0xa6, 0xe8, 0x66, - 0x0f, 0x88, 0x37, 0x5c, 0x59, 0x42, 0x35, 0x89, 0x43, 0x77, 0xb0, 0x78, 0x71, 0xb9, 0x09, 0x09, - 0x21, 0x25, 0x40, 0xdf, 0x0f, 0xf2, 0x25, 0x3c, 0x9f, 0xaf, 0x43, 0xe7, 0x0d, 0x51, 0xa1, 0xcd, - 0x00, 0xbd, 0xab, 0x19, 0x40, 0x79, 0x53, 0x76, 0xc1, 0x9b, 0xaf, 0x5d, 0x93, 0x86, 0x6f, 0x4a, - 0xc1, 0xcc, 0x10, 0xeb, 0xe6, 0x77, 0x00, 0xe2, 0xeb, 0xb6, 0x26, 0xe8, 0xb6, 0xde, 0xdc, 0x07, - 0x8b, 0x04, 0x5e, 0xfc, 0x30, 0x7f, 0xc2, 0x14, 0xda, 0xa1, 0xa3, 0xda, 0x86, 0x19, 0xfa, 0x48, - 0x80, 0x8b, 0xf1, 0xb5, 0xe0, 0x0d, 0xa8, 0xdd, 0x3e, 0xb4, 0xa4, 0x23, 0x78, 0xc9, 0xd9, 0x9f, - 0xfe, 0x53, 0xee, 0x27, 0x10, 0xd2, 0x22, 0x87, 0x81, 0x37, 0x0d, 0x02, 0x2d, 0xd1, 0x1f, 0x3a, - 0xc2, 0xa4, 0x4f, 0x7c, 0xca, 0xcb, 0x9e, 0x87, 0xec, 0x64, 0xbb, 0x01, 0xd6, 0x1e, 0xf9, 0x8e, - 0x34, 0xee, 0xfa, 0x4d, 0x28, 0xfc, 0xe4, 0xe7, 0x1c, 0xf7, 0x05, 0xec, 0x9c, 0xcd, 0x4d, 0x8f, - 0x1d, 0xe2, 0x25, 0x72, 0x73, 0x50, 0xed, 0x88, 0xcf, 0x1f, 0x97, 0xc6, 0xba, 0x1e, 0x66, 0x21, - 0x1c, 0xce, 0xca, 0x16, 0x4c, 0x4a, 0x3e, 0x64, 0x66, 0x50, 0x26, 0x8c, 0xd1, 0x0b, 0x30, 0x10, - 0x38, 0x29, 0x6d, 0x62, 0x80, 0xa9, 0x21, 0xd6, 0x9d, 0xef, 0xa6, 0x8f, 0x11, 0x07, 0x30, 0x62, - 0xfe, 0x70, 0x7e, 0x2e, 0xf1, 0x31, 0xea, 0xe1, 0xa1, 0xf1, 0x5a, 0x49, 0x50, 0x2b, 0xf0, 0x7f, - 0x1e, 0xac, 0x89, 0x70, 0xf0, 0xc2, 0xa7, 0xaf, 0x1b, 0x64, 0x0e, 0x8e, 0xf5, 0x93, 0xe8, 0x12, - 0x74, 0x77, 0x9c, 0x90, 0x92, 0xea, 0x79, 0xf9, 0x1d, 0x36, 0xa2, 0xe1, 0x14, 0xf4, 0x30, 0x25, - 0x6d, 0xa2, 0xda, 0xd2, 0x18, 0x92, 0x2e, 0x6d, 0x32, 0x62, 0x25, 0xda, 0x0f, 0x8b, 0xbc, 0xed, - 0x07, 0x9a, 0xcb, 0x03, 0xc5, 0xa2, 0x09, 0xd8, 0xdb, 0xa8, 0x0d, 0x4d, 0xff, 0x13, 0xd4, 0x15, - 0x02, 0x62, 0xb1, 0x0f, 0xca, 0xbf, 0x12, 0x71, 0xb5, 0xe9, 0x2e, 0x7c, 0xc9, 0x06, 0xc6, 0x03, - 0x43, 0xf2, 0x28, 0x90, 0x73, 0xbe, 0x70, 0x10, 0x29, 0xf3, 0x30, 0x56, 0xd9, 0x5f, 0x2b, 0x2f, - 0x2f, 0x5c, 0x0c, 0x9c, 0x8e, 0xa4, 0x6f, 0xf0, 0xab, 0x6e, 0xa1, 0xa4, 0x17, 0x0a, 0xa0, 0x47, - 0x0f, 0xaf, 0x53, 0xa4, 0x6e, 0xc1, 0x5d, 0xba, 0xbe, 0xca, 0x0b, 0x6b, 0x73, 0xd3, 0x51, 0x89, - 0xe4, 0x0d, 0x39, 0x11, 0xfa, 0xe6, 0xf8, 0x06, 0x17, 0x33, 0xd0, 0x41, 0xd0, 0x80, 0x4e, 0xcd, - 0x80, 0x00, 0x93, 0xac, 0x47, 0xde, 0xea, 0x07, 0xbf, 0x8e, 0x32, 0xfc, 0x6d, 0x68, 0x36, 0x88, - 0xfb, 0x7a, 0x88, 0xde, 0xd8, 0xe2, 0x08, 0x95, 0x3a, 0x78, 0x0c, 0xc7, 0xe1, 0xcd, 0xd9, 0x29, - 0x15, 0x3e, 0x8a, 0xef, 0x2a, 0x68, 0xb8, 0x3b, 0x1c, 0x3d, 0x10, 0x16, 0xec, 0x1f, 0x6c, 0x00, - 0xd8, 0x66, 0xb8, 0x5c, 0xe5, 0xdf, 0x93, 0xe8, 0xb9, 0x0d, 0x41, 0xd2, 0x7b, 0x35, 0x07, 0xc7, - 0xc2, 0x36, 0x3c, 0xfb, 0xd1, 0xcb, 0xd1, 0x08, 0x5f, 0xae, 0x88, 0xa3, 0xec, 0xd5, 0x81, 0xfd, - 0x07, 0x51, 0x37, 0x30, 0x47, 0x20, 0x26, 0x69, 0x05, 0xfc, 0x5c, 0xc8, 0x55, 0x45, 0xa0, 0x58, - 0xe8, 0x5d, 0x98, 0x0f, 0xc5, 0x51, 0xb1, 0x8f, 0xad, 0x62, 0xf8, 0xe0, 0x67, 0x63, 0x67, 0x73, - 0x73, 0xec, 0x84, 0x6e, 0x88, 0x04, 0x7e, 0x7b, 0x4f, 0xe4, 0x0e, 0x98, 0x9f, 0xc4, 0x4d, 0x5f, - 0x5c, 0xee, 0x9f, 0x03, 0xaa, 0x20, 0x83, 0x82, 0xee, 0x58, 0xa0, 0x83, 0xb1, 0x43, 0x65, 0x7c, - 0xe0, 0xbc, 0x4b, 0x8f, 0x9d, 0xed, 0xad, 0xec, 0xe6, 0x66, 0xa8, 0x95, 0x8c, 0xf9, 0x0b, 0x45, - 0x68, 0x0a, 0x90, 0x4f, 0x80, 0x7b, 0xae, 0x05, 0xb8, 0x26, 0x9e, 0xd5, 0x67, 0x26, 0xa8, 0x4d, - 0x98, 0xe8, 0x4a, 0x20, 0xc3, 0xd4, 0x2f, 0x9c, 0xf0, 0x45, 0x0c, 0xdb, 0x74, 0x88, 0xa9, 0x48, - 0x33, 0xc3, 0x38, 0x0f, 0xe1, 0x78, 0x75, 0x32, 0xf4, 0x86, 0xae, 0x3c, 0x26, 0xbd, 0x01, 0x00, - 0xd1, 0x13, 0xf6, 0xf5, 0x10, 0xf7, 0x7a, 0x68, 0x20, 0x76, 0x3b, 0xae, 0x8d, 0x4a, 0x09, 0x13, - 0x26, 0x54, 0x7a, 0x1d, 0x81, 0x3e, 0x41, 0x50, 0xfb, 0x3a, 0x93, 0xdc, 0x7e, 0xba, 0xab, 0x9b, - 0x40, 0xab, 0x6e, 0xa6, 0x52, 0x2a, 0x20, 0x5a, 0x9d, 0x70, 0x6a, 0xd2, 0xdd, 0xa2, 0xc9, 0xff, - 0x32, 0xf9, 0x4c, 0xbe, 0x84, 0xaf, 0x8d, 0xd5, 0xaf, 0xb7, 0xf0, 0xed, 0xbf, 0x1c, 0x3e, 0x53, - 0x12, 0x91, 0x8b, 0x9a, 0x3b, 0x66, 0x8a, 0x4b, 0x70, 0xa9, 0x64, 0xb6, 0x81, 0x2e, 0x03, 0x60, - 0xfb, 0x1c, 0xfa, 0x3a, 0xa7, 0x0e, 0x8a, 0x27, 0x21, 0xc1, 0xe1, 0x81, 0x0a, 0x9e, 0x6b, 0x48, - 0x4f, 0x35, 0x9c, 0xdf, 0xbf, 0xcd, 0x1d, 0x27, 0x28, 0xe0, 0x80, 0x58, 0x33, 0x87, 0x48, 0x51, - 0xf8, 0x05, 0x45, 0x20, 0xb7, 0xf0, 0xc5, 0x04, 0xec, 0xa3, 0x2a, 0x91, 0x6a, 0x20, 0x00, 0x18, - 0xfe, 0xed, 0x62, 0x75, 0x73, 0x13, 0x93, 0x31, 0xcd, 0x48, 0xd1, 0xf0, 0x07, 0x4c, 0xff, 0x8e, - 0x4d, 0xd9, 0xdc, 0x64, 0xef, 0x43, 0xf9, 0xbd, 0x74, 0x4c, 0x71, 0xb7, 0x4a, 0xe2, 0xbf, 0xb0, - 0x88, 0x43, 0xd0, 0x58, 0xd0, 0x43, 0x8e, 0x2b, 0x18, 0x6c, 0xdb, 0x1c, 0xe3, 0x14, 0x02, 0xfc, - 0x00, 0x46, 0x3d, 0x0f, 0xd6, 0xaf, 0xef, 0xae, 0xbd, 0xfd, 0xdd, 0x55, 0x7d, 0xdf, 0x3b, 0x3d, - 0x0c, 0x9f, 0xdb, 0xfe, 0xc7, 0x8c, 0xcc, 0xbf, 0x67, 0x5c, 0x35, 0xfc, 0x8a, 0x1e, 0x69, 0x8f, - 0xaf, 0xdc, 0x39, 0x28, 0x8d, 0xde, 0xeb, 0x0c, 0x14, 0xff, 0xb5, 0xa8, 0xc6, 0xf2, 0xdc, 0x6c, - 0xde, 0xa8, 0x78, 0xb1, 0x55, 0xd0, 0x7f, 0xe2, 0xa3, 0x85, 0xfa, 0x9e, 0x37, 0x37, 0xe9, 0xd7, - 0x0f, 0xf2, 0x73, 0xf1, 0x94, 0x36, 0xa8, 0xb0, 0x59, 0xfc, 0x84, 0xae, 0x85, 0x1d, 0x6f, 0x97, - 0xba, 0x34, 0xc5, 0xf5, 0x84, 0x90, 0xf7, 0x2d, 0xc8, 0x6b, 0x79, 0xef, 0x42, 0xd0, 0xfc, 0xa4, - 0xb4, 0xe5, 0x84, 0x9a, 0x27, 0x59, 0xda, 0x9d, 0xa4, 0xfb, 0xba, 0x2c, 0xcd, 0xfc, 0xfb, 0xf7, - 0x17, 0xbf, 0x10, 0xcf, 0xe0, 0xc2, 0x18, 0xb2, 0xe6, 0x7b, 0xce, 0x40, 0xe8, 0xbd, 0xd6, 0x33, - 0x92, 0xe8, 0x1d, 0xf7, 0x33, 0xfa, 0xbd, 0x71, 0xd3, 0xa0, 0x1d, 0xee, 0xd0, 0xcf, 0x5a, 0x52, - 0x25, 0x78, 0x75, 0x2b, 0xa4, 0x19, 0x42, 0xf0, 0x68, 0x2d, 0x1e, 0x5f, 0xf5, 0xb8, 0x8b, 0xc6, - 0x0d, 0x3b, 0x68, 0x5e, 0x75, 0x1f, 0x77, 0x1f, 0x62, 0xea, 0x55, 0xdf, 0x09, 0x3d, 0xa3, 0xeb, - 0x7c, 0x31, 0xf7, 0xac, 0x5d, 0x7a, 0x3f, 0x31, 0x53, 0x32, 0xe8, 0x04, 0x93, 0x15, 0xd4, 0xaf, - 0x89, 0x77, 0xb4, 0x01, 0x30, 0x01, 0xaa, 0x4a, 0x76, 0xfc, 0x03, 0x90, 0xe8, 0xad, 0xb5, 0x20, - 0x3e, 0xab, 0xf4, 0x1f, 0x8a, 0x1c, 0x32, 0x21, 0x4a, 0xcb, 0x1c, 0x0c, 0x40, 0xaa, 0x20, 0x8b, - 0xb5, 0xa6, 0x5c, 0x8c, 0x11, 0x58, 0x1a, 0x51, 0x91, 0x09, 0xe0, 0x49, 0x66, 0xb2, 0x29, 0xd9, - 0xc0, 0x01, 0x62, 0x46, 0x83, 0x2f, 0xd8, 0x08, 0x65, 0x37, 0x14, 0xdb, 0xa0, 0x7a, 0xe2, 0x52, - 0x42, 0x83, 0x0a, 0x5a, 0xfa, 0xbc, 0x2d, 0xf2, 0xe1, 0xae, 0x36, 0x42, 0x6a, 0xe8, 0x3b, 0x72, - 0x18, 0x54, 0x69, 0xc1, 0x32, 0xe9, 0x55, 0x3a, 0xc4, 0xaf, 0x86, 0x0f, 0xd6, 0x25, 0xe0, 0x5b, - 0x18, 0x99, 0x9a, 0x9a, 0x00, 0x6e, 0x57, 0x4f, 0x92, 0xdf, 0xbf, 0x21, 0xe1, 0x4b, 0xc3, 0x7b, - 0x8b, 0x5a, 0x5f, 0x38, 0xe3, 0x7b, 0x0a, 0x27, 0xd5, 0x37, 0x2d, 0x06, 0xff, 0x03, 0x75, 0x33, - 0x09, 0xf2, 0xf4, 0xe5, 0xf7, 0xef, 0x38, 0x73, 0x16, 0x02, 0x35, 0x34, 0xa4, 0x87, 0x2e, 0xf1, - 0x46, 0x6f, 0x31, 0x86, 0x2c, 0xf7, 0x29, 0xd0, 0x4c, 0x17, 0x97, 0xf2, 0x02, 0x71, 0x84, 0xa5, - 0xe1, 0x17, 0xd4, 0x6f, 0xa2, 0xa2, 0x82, 0x8f, 0x29, 0x9c, 0x24, 0xc2, 0xdb, 0x09, 0x8c, 0x32, - 0xe6, 0x89, 0x0d, 0x96, 0xaf, 0xd0, 0xf8, 0xa3, 0xf5, 0x21, 0x5e, 0xb0, 0x5f, 0x19, 0x7f, 0x5d, - 0xed, 0x3f, 0x85, 0x18, 0xb6, 0x26, 0xe5, 0xcd, 0x41, 0x50, 0x19, 0x6c, 0x0d, 0x9b, 0x18, 0x1a, - 0x7c, 0xbf, 0xd9, 0x9f, 0xc3, 0xd4, 0x2a, 0xd4, 0x10, 0xaa, 0x68, 0x45, 0x90, 0x01, 0xba, 0xda, - 0x9f, 0xa1, 0x81, 0x78, 0x01, 0x8e, 0xff, 0x21, 0x2c, 0x90, 0x0f, 0xb0, 0xe0, 0xc5, 0x57, 0xfe, - 0xbf, 0x46, 0x02, 0x55, 0x52, 0xff, 0x0c, 0x11, 0x6c, 0x7d, 0xf1, 0x3f, 0x85, 0x87, 0xa4, 0xb7, - 0x7c, 0x09, 0x53, 0xfa, 0xc7, 0x4f, 0xd0, 0xf7, 0xfa, 0x5a, 0x17, 0x93, 0x59, 0x6a, 0x7a, 0x68, - 0xb0, 0x04, 0xee, 0xdf, 0xf5, 0x2f, 0x75, 0x6e, 0x0d, 0x2e, 0x16, 0x0b, 0xa0, 0x9f, 0xc3, 0x8a, - 0xc0, 0xa2, 0x12, 0x6f, 0x8f, 0x28, 0x82, 0x90, 0xa3, 0x62, 0x43, 0xbd, 0xb9, 0x24, 0x58, 0x57, - 0xa7, 0x00, 0x6a, 0xb1, 0x7e, 0xe6, 0x0f, 0xc8, 0xd5, 0x69, 0xc0, 0x7e, 0x41, 0x90, 0x00, 0xe3, - 0x83, 0x8c, 0x9e, 0x21, 0x03, 0x0c, 0xcf, 0x57, 0x9f, 0x5d, 0x50, 0x9f, 0xe9, 0x1b, 0xc7, 0xb4, - 0x41, 0x33, 0xc4, 0xa5, 0x2f, 0xb0, 0x5b, 0xc1, 0x98, 0xdb, 0x76, 0xe1, 0x83, 0x47, 0xe8, 0xb4, - 0xa3, 0x3c, 0x49, 0x35, 0x7e, 0x2d, 0x2f, 0xbc, 0x27, 0xd8, 0xd1, 0x8e, 0x09, 0x3c, 0x61, 0xcc, - 0x0b, 0xf8, 0x03, 0xb9, 0x0c, 0x25, 0xe7, 0xaf, 0xba, 0xcc, 0xf9, 0x51, 0xa0, 0x98, 0x94, 0xfb, - 0xb9, 0x83, 0x1f, 0x28, 0x24, 0x62, 0x21, 0x4d, 0x94, 0xcf, 0x24, 0xbd, 0x62, 0x7c, 0x9d, 0x4a, - 0x76, 0x30, 0x1b, 0xe7, 0xc1, 0x82, 0xfd, 0x2f, 0xb6, 0x7c, 0x84, 0x7b, 0x42, 0xf9, 0xb0, 0x9e, - 0x3c, 0x5f, 0xea, 0x73, 0xc0, 0xb3, 0x90, 0xd1, 0x53, 0x86, 0xc6, 0xcf, 0x3c, 0xb9, 0xc7, 0x04, - 0x95, 0xf8, 0xb3, 0xee, 0xa3, 0x44, 0x70, 0xe3, 0xd4, 0xcc, 0x0a, 0xd4, 0x5d, 0x86, 0x0b, 0x65, - 0x60, 0x5d, 0xf2, 0x3e, 0x76, 0x99, 0xca, 0x8e, 0x68, 0xf6, 0xf0, 0xe6, 0x50, 0xbc, 0xb1, 0x95, - 0x69, 0x97, 0x61, 0x88, 0x8a, 0x72, 0xb6, 0x30, 0xe7, 0x40, 0xfb, 0x79, 0x1e, 0x2d, 0x74, 0xcd, - 0x18, 0x12, 0xef, 0x96, 0xf5, 0x40, 0x35, 0x74, 0x10, 0xb3, 0x9e, 0xc1, 0x83, 0x39, 0x41, 0x76, - 0xd6, 0x51, 0xc0, 0xc2, 0x28, 0x58, 0x43, 0xa7, 0x9f, 0xfc, 0xe1, 0x0a, 0x86, 0xc0, 0x34, 0x18, - 0x97, 0xff, 0x89, 0xba, 0x3d, 0x4d, 0x06, 0x2d, 0x9f, 0x0e, 0x42, 0x2c, 0x8a, 0x2b, 0xa1, 0x24, - 0x50, 0x3c, 0x2c, 0xb0, 0x3f, 0x37, 0xd7, 0x21, 0x78, 0xce, 0x73, 0xdb, 0xbf, 0x28, 0x90, 0x7f, - 0xcc, 0x42, 0x8a, 0x8c, 0xcb, 0xef, 0x70, 0x41, 0x7c, 0xe6, 0x37, 0x16, 0xf5, 0xe0, 0x1f, 0x72, - 0xf9, 0x8d, 0x46, 0x39, 0x64, 0xf3, 0x2c, 0xf6, 0x16, 0xf5, 0xca, 0x79, 0x24, 0xb6, 0xc5, 0x3f, - 0x12, 0x08, 0x47, 0xcd, 0x6f, 0xf2, 0xdc, 0x0b, 0x2c, 0x61, 0xf1, 0x15, 0xbf, 0xe8, 0x02, 0x7e, - 0x2a, 0x35, 0x67, 0x83, 0xc8, 0xc2, 0xc9, 0x23, 0xe6, 0x0e, 0x23, 0xef, 0xcb, 0x66, 0x72, 0xc1, - 0x4d, 0x90, 0x78, 0x99, 0x41, 0xef, 0xc7, 0x08, 0x84, 0x95, 0x27, 0x8a, 0x47, 0x0c, 0x0a, 0xf2, - 0xe8, 0xdb, 0xb7, 0x22, 0x60, 0x48, 0x49, 0x1a, 0x5b, 0xc3, 0x08, 0x66, 0x11, 0x62, 0x16, 0xae, - 0xcf, 0x85, 0x89, 0xae, 0x6b, 0x23, 0x42, 0xb5, 0x3c, 0x2e, 0x79, 0x0a, 0x8f, 0x3c, 0x28, 0x86, - 0x2e, 0xf5, 0x72, 0xf9, 0x89, 0x5e, 0x8a, 0x9a, 0x66, 0x14, 0xec, 0xfa, 0x61, 0x16, 0x50, 0x94, - 0xa8, 0x4e, 0x7a, 0x3c, 0x5a, 0xc4, 0x3f, 0x78, 0x49, 0x0a, 0xfe, 0x10, 0xd0, 0x87, 0x77, 0xd3, - 0xd3, 0xaf, 0x89, 0x32, 0x82, 0x17, 0xa0, 0x61, 0xf9, 0xd1, 0x10, 0x5e, 0x2e, 0xf8, 0xe5, 0x90, - 0x1e, 0x8d, 0x65, 0x20, 0xe9, 0xae, 0x93, 0x46, 0xe9, 0x8f, 0x71, 0x1b, 0x3e, 0x10, 0xc5, 0x5d, - 0x26, 0x6a, 0xda, 0xd5, 0x85, 0x2a, 0xcb, 0x81, 0xde, 0x0c, 0x65, 0x6d, 0x42, 0xfa, 0x44, 0xb2, - 0x32, 0x59, 0x92, 0xaf, 0x9b, 0x0d, 0x33, 0xed, 0x9a, 0x6d, 0xbc, 0xc0, 0x21, 0x99, 0x65, 0x94, - 0xe5, 0xf8, 0x20, 0xad, 0xb1, 0x0d, 0x36, 0x05, 0x77, 0x8e, 0x1e, 0x23, 0x49, 0x57, 0x28, 0x44, - 0x95, 0xab, 0x3b, 0xdb, 0x50, 0x70, 0xc7, 0x68, 0x24, 0x1d, 0xf8, 0x3f, 0xd3, 0x80, 0x1f, 0x7c, - 0x00, 0x02, 0xde, 0x89, 0x3b, 0x62, 0x2d, 0xcb, 0x03, 0x4b, 0x4d, 0x34, 0xb9, 0x9a, 0xb3, 0x8d, - 0x6a, 0x3d, 0xcd, 0x5b, 0x14, 0xff, 0x45, 0xcd, 0x13, 0x6a, 0xdb, 0x42, 0xc1, 0xa2, 0x48, 0x33, - 0x0d, 0x9a, 0x9e, 0x59, 0xab, 0x7b, 0xbc, 0x86, 0xa4, 0x87, 0x94, 0xc5, 0x20, 0x2d, 0x81, 0xed, - 0x2e, 0x98, 0x3f, 0xc1, 0x4a, 0x8f, 0x0b, 0x0f, 0xc8, 0xc3, 0x9b, 0x40, 0xff, 0x3b, 0x60, 0x31, - 0xf8, 0x76, 0x01, 0x64, 0xa5, 0x6e, 0x5a, 0x9c, 0x40, 0xb5, 0x68, 0x3a, 0xab, 0x41, 0x6a, 0x70, - 0x27, 0xc3, 0x61, 0x5f, 0x7a, 0x19, 0x72, 0xa0, 0x4b, 0x8e, 0x88, 0x9d, 0xa6, 0x16, 0xbe, 0x73, - 0xaf, 0xb9, 0xfd, 0x24, 0x27, 0xa6, 0xb3, 0x85, 0x34, 0x87, 0xfa, 0x15, 0xe4, 0x3b, 0x34, 0x81, - 0x19, 0x73, 0xc8, 0xd8, 0x31, 0x9b, 0x06, 0x53, 0x62, 0x88, 0x51, 0x41, 0xdc, 0x96, 0xac, 0xfb, - 0x59, 0x3a, 0x43, 0xeb, 0xff, 0xfc, 0x6f, 0x00, 0x85, 0x99, 0x14, 0x83, 0xa6, 0xe1, 0x03, 0xa8, - 0xfc, 0x30, 0x49, 0x46, 0x60, 0x7d, 0x60, 0xd1, 0x79, 0x02, 0x38, 0x98, 0x34, 0xe7, 0x30, 0xc4, - 0x87, 0xfe, 0xd1, 0x5b, 0x2c, 0xb6, 0xff, 0x97, 0xf1, 0x8f, 0x99, 0x3e, 0xc7, 0x4f, 0xbf, 0x91, - 0xdc, 0xee, 0x50, 0xd3, 0xd1, 0x69, 0x9e, 0x1e, 0x69, 0x2a, 0x1f, 0x7d, 0xd5, 0x01, 0xd5, 0x5d, - 0xd2, 0x13, 0x40, 0x12, 0x94, 0x05, 0x63, 0xa6, 0xb1, 0xd6, 0xd5, 0xd2, 0x0e, 0x4d, 0x4f, 0x71, - 0xff, 0x4c, 0x24, 0xc1, 0x3a, 0x61, 0x69, 0x36, 0x28, 0xfa, 0x02, 0x97, 0x50, 0x77, 0x07, 0x3c, - 0x17, 0x03, 0x73, 0x6b, 0xa1, 0xc9, 0xc9, 0x09, 0x31, 0xf3, 0x33, 0x3d, 0xa4, 0xe9, 0x7c, 0x2c, - 0x77, 0x1b, 0xa8, 0x24, 0x81, 0x64, 0x02, 0x44, 0x03, 0x00, 0x5f, 0x76, 0x3d, 0x70, 0x04, 0xac, - 0x11, 0x5b, 0x1a, 0xec, 0x44, 0x33, 0x5e, 0x76, 0xae, 0x9b, 0x67, 0x9c, 0x90, 0xf4, 0xde, 0x66, - 0xb2, 0x62, 0xae, 0xc0, 0x87, 0x08, 0xcb, 0x83, 0x80, 0x3c, 0x20, 0x52, 0xcb, 0x3e, 0xcc, 0xbe, - 0x01, 0x92, 0x55, 0xc2, 0x8b, 0x1e, 0xe2, 0x04, 0x23, 0xd6, 0x90, 0x26, 0xa0, 0x11, 0x54, 0xe8, - 0x44, 0xfb, 0xb2, 0x83, 0x3d, 0xa7, 0x94, 0xd9, 0xb5, 0x9c, 0x58, 0xae, 0xb3, 0x66, 0x2b, 0x21, - 0xa9, 0x2a, 0xf0, 0x2b, 0x07, 0x73, 0x0d, 0x24, 0x25, 0xde, 0x1f, 0x30, 0xf3, 0x9d, 0xa9, 0x03, - 0x4a, 0x38, 0xbe, 0x87, 0xf9, 0x33, 0x04, 0xa1, 0x8f, 0x68, 0x83, 0x47, 0x37, 0x85, 0xcd, 0x43, - 0x2c, 0x86, 0x28, 0x34, 0x0b, 0x46, 0x33, 0xcb, 0x98, 0x61, 0x99, 0x80, 0x5a, 0xff, 0xb9, 0x84, - 0xd4, 0x7d, 0x63, 0xa4, 0xd9, 0xa6, 0x31, 0xa0, 0x4d, 0x27, 0x69, 0x0c, 0xe7, 0xa5, 0xc6, 0x32, - 0x46, 0x3a, 0xd8, 0x04, 0x1e, 0xe9, 0xd0, 0xe8, 0x63, 0xcd, 0x4a, 0x71, 0xac, 0x30, 0xd8, 0x9b, - 0x94, 0x06, 0x7e, 0x31, 0x8f, 0xd6, 0xcb, 0x28, 0xca, 0x62, 0x96, 0x27, 0xb1, 0xbf, 0x41, 0x28, - 0x3c, 0x91, 0x71, 0xa2, 0x04, 0x11, 0x55, 0x49, 0xb4, 0x86, 0x7a, 0x4c, 0xa9, 0x60, 0x52, 0x3a, - 0x1e, 0x57, 0xe5, 0x85, 0x53, 0xf9, 0x25, 0xb6, 0xb3, 0xfc, 0xc2, 0x79, 0x89, 0xae, 0x5b, 0xff, - 0xc5, 0xe6, 0xa6, 0xf9, 0xbd, 0x10, 0xf6, 0xde, 0x52, 0xc8, 0x3f, 0xcc, 0x9f, 0x54, 0x0e, 0x19, - 0x21, 0x39, 0x94, 0x06, 0x2a, 0xad, 0x7b, 0x01, 0x62, 0x3f, 0x8c, 0x9f, 0x0d, 0x27, 0x6d, 0x1a, - 0xc0, 0x2c, 0x1a, 0xe1, 0x8a, 0xe9, 0xea, 0x42, 0xa8, 0x1d, 0x46, 0x0a, 0x08, 0xc1, 0xd8, 0xc6, - 0xc6, 0xe0, 0x2b, 0x6c, 0x93, 0x37, 0x5d, 0x22, 0x82, 0xc9, 0xdf, 0x4a, 0xf3, 0x8f, 0x99, 0x83, - 0x06, 0x35, 0xf5, 0xd7, 0xc2, 0xd3, 0x0e, 0xfc, 0xd5, 0xfc, 0xdd, 0x52, 0x80, 0x61, 0x34, 0xdf, - 0x51, 0x48, 0x00, 0x46, 0xd9, 0x57, 0xe2, 0x3b, 0x2b, 0xea, 0xef, 0x24, 0xa0, 0x47, 0x33, 0xd2, - 0xc3, 0x40, 0x39, 0x7c, 0x9b, 0xd8, 0x34, 0x64, 0xc7, 0xaa, 0xe3, 0x53, 0x24, 0x6a, 0x9c, 0xe6, - 0x93, 0xcd, 0x09, 0xe7, 0xef, 0xb4, 0xfa, 0xc7, 0xcc, 0x98, 0x3b, 0x5e, 0x70, 0x71, 0xb0, 0xe9, - 0x03, 0x5b, 0x9b, 0xc4, 0x37, 0x3c, 0x97, 0xc0, 0x86, 0x41, 0xca, 0x0e, 0xe7, 0x9d, 0x12, 0x49, - 0x45, 0x1b, 0xad, 0x22, 0x22, 0xdf, 0x82, 0x43, 0x21, 0x69, 0x23, 0x38, 0x3f, 0x66, 0x12, 0x1b, - 0x9a, 0xa1, 0x2d, 0xa5, 0x8f, 0xb1, 0x63, 0x47, 0x58, 0xf3, 0xd6, 0x6e, 0x73, 0x49, 0x00, 0x4f, - 0x86, 0xfa, 0x17, 0x88, 0xdf, 0xe1, 0x24, 0xc5, 0xe5, 0x98, 0x6a, 0x14, 0x6a, 0x3f, 0x64, 0x8b, - 0x4a, 0x72, 0x68, 0xfe, 0xe5, 0xd8, 0xf6, 0x7b, 0x10, 0x28, 0x57, 0x80, 0xd3, 0x79, 0xf4, 0x38, - 0x1d, 0xda, 0x80, 0x60, 0xdf, 0x19, 0xdb, 0x54, 0xc4, 0x60, 0xd2, 0x23, 0x4a, 0x56, 0x6f, 0x9e, - 0xc1, 0x42, 0x91, 0xcd, 0x48, 0xac, 0x84, 0x1c, 0x2a, 0x11, 0xda, 0x2f, 0x1d, 0xde, 0x9b, 0x44, - 0x7a, 0x78, 0xce, 0x89, 0xd7, 0xac, 0xbf, 0x7f, 0xd4, 0x09, 0xf6, 0x08, 0x6a, 0x05, 0x64, 0x64, - 0xbc, 0x46, 0x7d, 0xb4, 0xab, 0x86, 0xf6, 0x77, 0xf1, 0xf4, 0xa9, 0xad, 0x35, 0x74, 0x08, 0x3d, - 0xda, 0x63, 0x8a, 0x0a, 0xd3, 0x50, 0xfc, 0x6d, 0x7a, 0x91, 0x09, 0x1d, 0xe8, 0x7d, 0x5e, 0xfc, - 0x4f, 0x30, 0xd5, 0x0c, 0x98, 0x6a, 0x18, 0x04, 0x14, 0xee, 0x2c, 0x82, 0xf9, 0xb5, 0xc0, 0xde, - 0xaf, 0xb0, 0x9d, 0x2b, 0x63, 0x87, 0xa9, 0x41, 0x34, 0xd6, 0xe8, 0x6a, 0x0f, 0x3f, 0x53, 0x70, - 0xc9, 0x2d, 0x57, 0xa3, 0x5f, 0xf9, 0x5c, 0xcd, 0xf3, 0xfd, 0xec, 0x77, 0x2e, 0xf3, 0x39, 0xae, - 0x4e, 0x53, 0xb3, 0xec, 0x65, 0x25, 0xfc, 0xb2, 0x92, 0x2b, 0x95, 0xb8, 0xb9, 0xf7, 0x7b, 0x27, - 0xe4, 0x79, 0x91, 0x8d, 0x88, 0xfb, 0x86, 0xc3, 0x65, 0x3c, 0xae, 0xe1, 0x29, 0x46, 0x3b, 0x24, - 0x0d, 0xc6, 0x12, 0x7b, 0x5e, 0x66, 0x52, 0x2c, 0x6a, 0x96, 0xc6, 0xc9, 0x31, 0xb6, 0x02, 0xca, - 0x86, 0x83, 0x1f, 0xd8, 0x6b, 0x60, 0x56, 0x6e, 0x9a, 0x46, 0x06, 0xf3, 0x33, 0xef, 0x21, 0x6a, - 0x34, 0x50, 0xa0, 0x74, 0x79, 0x52, 0x27, 0x2d, 0x73, 0x80, 0x97, 0x7d, 0x60, 0x09, 0x09, 0xc5, - 0xd2, 0xc2, 0x5d, 0x0f, 0x90, 0xf4, 0xef, 0x7e, 0x79, 0x6f, 0x5d, 0x45, 0xf7, 0x79, 0x95, 0xd4, - 0xf0, 0xde, 0xfc, 0xd0, 0x7f, 0x62, 0x85, 0x12, 0x2b, 0xee, 0x2c, 0xf4, 0x80, 0x55, 0x36, 0x08, - 0xb0, 0xe2, 0xd0, 0x6c, 0x90, 0xa0, 0x87, 0xf3, 0x48, 0x30, 0xb1, 0xb7, 0x5e, 0xea, 0xb9, 0xcf, - 0xbe, 0x79, 0x96, 0xa3, 0x97, 0xf3, 0x1b, 0xb3, 0x38, 0x18, 0xd6, 0x24, 0x3e, 0x64, 0x75, 0x08, - 0xa0, 0x25, 0xb3, 0xe1, 0x92, 0xe8, 0xca, 0x2f, 0xbc, 0x43, 0xe1, 0xaf, 0x41, 0x6e, 0xb1, 0xd1, - 0x90, 0x50, 0xc6, 0xef, 0x70, 0xe7, 0x19, 0x50, 0x90, 0xe8, 0xf3, 0x1c, 0x27, 0xde, 0x2f, 0xe0, - 0x8d, 0xa0, 0xea, 0xce, 0x01, 0x19, 0xaa, 0xf2, 0x5d, 0xdc, 0x31, 0x53, 0x0d, 0x2e, 0x12, 0x76, - 0x9e, 0xd0, 0xf0, 0xe8, 0x35, 0x07, 0x85, 0x87, 0x9a, 0xe6, 0x6a, 0x00, 0x08, 0xb5, 0x0e, 0xcc, - 0x76, 0x6e, 0x26, 0x4c, 0xb0, 0x3b, 0xed, 0x45, 0x4c, 0x75, 0xa2, 0x8b, 0x32, 0x2c, 0x8d, 0xeb, - 0xf8, 0xc8, 0x5e, 0xd9, 0xdd, 0x59, 0x3e, 0x53, 0xc1, 0x1b, 0x45, 0xe9, 0x9c, 0x85, 0xd9, 0x32, - 0xa7, 0x5f, 0x81, 0x38, 0x6b, 0x31, 0x29, 0x1c, 0x00, 0xaa, 0xa1, 0x50, 0xa3, 0x88, 0x9c, 0x53, - 0xa2, 0x8f, 0x8a, 0x2e, 0x23, 0x42, 0xe9, 0x66, 0xd4, 0x00, 0xf7, 0xe2, 0xa8, 0x3f, 0x69, 0x79, - 0xb3, 0xb8, 0xf1, 0xcf, 0x18, 0xde, 0x81, 0x0b, 0x6f, 0xa8, 0xab, 0x74, 0x35, 0x13, 0x2b, 0x4b, - 0x60, 0x6d, 0x34, 0x56, 0x9b, 0x79, 0xf2, 0x3f, 0xeb, 0xb8, 0x8a, 0x50, 0x6f, 0x60, 0x0b, 0x90, - 0xbf, 0xea, 0xb8, 0x5a, 0x9e, 0x17, 0x81, 0x6f, 0xc3, 0xb3, 0x37, 0xa8, 0x2f, 0x44, 0xa0, 0x22, - 0x9c, 0xf8, 0x1e, 0x00, 0x4a, 0xe1, 0xcc, 0xd0, 0x13, 0xeb, 0xee, 0x77, 0xe2, 0xd3, 0xb6, 0x0b, - 0xb4, 0x4d, 0x7e, 0xb8, 0x3f, 0x1b, 0x33, 0x4d, 0xad, 0xe1, 0x03, 0x5d, 0x28, 0x85, 0xc1, 0x60, - 0x3f, 0xc0, 0xce, 0x45, 0x18, 0x9f, 0x9d, 0x47, 0x80, 0x12, 0xdf, 0xc5, 0x80, 0xf0, 0x44, 0x06, - 0x89, 0xa3, 0x9b, 0xb3, 0xd0, 0xe5, 0x20, 0x02, 0xbe, 0x83, 0x96, 0x30, 0x5e, 0x45, 0xc2, 0xb1, - 0x8a, 0xa8, 0x9a, 0x63, 0xb8, 0x22, 0xad, 0x82, 0x9e, 0xb0, 0x79, 0xd1, 0x4d, 0x72, 0xd7, 0x9d, - 0xbb, 0x3d, 0x8e, 0xff, 0x2e, 0xfa, 0xd3, 0x7e, 0x45, 0x96, 0x7f, 0xa3, 0xef, 0x15, 0x3b, 0x6c, - 0x6e, 0x8b, 0x3b, 0x4e, 0x28, 0x87, 0x33, 0x94, 0x41, 0xa7, 0x4d, 0x9a, 0x7c, 0xcd, 0x6c, 0x54, - 0xab, 0x55, 0xd4, 0x04, 0x7a, 0xb8, 0xa0, 0x06, 0x68, 0x43, 0x7a, 0x47, 0x87, 0xe9, 0xa1, 0x3b, - 0xd0, 0x93, 0x5c, 0x77, 0x02, 0x64, 0x88, 0xc5, 0x34, 0x55, 0x58, 0x2a, 0x2e, 0x82, 0x7a, 0x2f, - 0x2c, 0x76, 0x9c, 0xe1, 0x5a, 0x0b, 0xfe, 0x0f, 0x0a, 0x22, 0x25, 0x52, 0x7f, 0x2b, 0xde, 0xfb, - 0x3a, 0xd6, 0xc2, 0x11, 0xe7, 0xdb, 0x85, 0x38, 0x4e, 0xff, 0x9f, 0x0c, 0x91, 0xb7, 0x26, 0x8f, - 0xe3, 0x13, 0xe8, 0x7f, 0x7e, 0x7b, 0x98, 0xfe, 0x46, 0xc2, 0x0b, 0xef, 0x6b, 0xd1, 0xe8, 0x79, - 0x3b, 0x11, 0x97, 0xa6, 0x87, 0x4b, 0x93, 0xe1, 0x52, 0x08, 0x6d, 0xfd, 0xe2, 0x84, 0x6f, 0xef, - 0xed, 0xf6, 0x02, 0xa6, 0xc7, 0xac, 0x71, 0x7f, 0xbb, 0xdc, 0x6a, 0xc4, 0x46, 0x96, 0x90, 0x93, - 0x2c, 0xe4, 0x88, 0xac, 0x8c, 0x91, 0xfd, 0xea, 0x41, 0x4a, 0xd0, 0x73, 0x7f, 0xb9, 0x77, 0x51, - 0x3d, 0x63, 0x5d, 0x46, 0xdc, 0xa6, 0xd1, 0x11, 0x06, 0xad, 0xc6, 0x7e, 0x38, 0x2c, 0x25, 0x1e, - 0x24, 0x1b, 0x34, 0x9d, 0xaf, 0xe3, 0xf2, 0x94, 0xc3, 0xd6, 0x39, 0x11, 0x39, 0x5e, 0xbb, 0x5a, - 0x8e, 0x03, 0xd4, 0xc7, 0xcf, 0xc3, 0x4b, 0x73, 0xe1, 0x77, 0x6c, 0x8d, 0x25, 0xbc, 0xf9, 0x62, - 0xb1, 0x56, 0xb7, 0x48, 0xfb, 0x41, 0xa8, 0xc0, 0xf9, 0xe2, 0xfa, 0x6b, 0x2f, 0xfe, 0x59, 0x05, - 0x09, 0x16, 0xc0, 0x9b, 0x6d, 0x80, 0x68, 0x62, 0x9d, 0x40, 0x1f, 0x01, 0x10, 0x45, 0x03, 0xfd, - 0x55, 0x42, 0x34, 0x9e, 0x03, 0xd3, 0x79, 0xef, 0x3d, 0xbc, 0x6d, 0x80, 0xaa, 0xc3, 0xf3, 0x51, - 0xe7, 0x11, 0xc3, 0xa1, 0x58, 0x27, 0xdf, 0x7d, 0x78, 0x75, 0x82, 0x48, 0xa1, 0x96, 0x32, 0x28, - 0xeb, 0x2e, 0xb6, 0x84, 0xce, 0x5e, 0x41, 0x17, 0x24, 0xc1, 0x6e, 0x7c, 0xc9, 0x62, 0xc3, 0xa2, - 0xf5, 0x38, 0x3c, 0x6f, 0x37, 0xd0, 0x8d, 0x94, 0x81, 0x1a, 0xfe, 0x05, 0x46, 0x8e, 0xc0, 0x3c, - 0x49, 0x82, 0x0e, 0x5f, 0xb9, 0x9f, 0x82, 0x04, 0x5f, 0xf9, 0x9f, 0x75, 0xea, 0x40, 0x81, 0xc2, - 0x9c, 0x0d, 0x0a, 0x80, 0xc3, 0x1b, 0xd8, 0x1e, 0xcf, 0x7e, 0xa7, 0xa7, 0x1f, 0xa1, 0x73, 0x7b, - 0x45, 0x9a, 0xb4, 0x9c, 0x16, 0x80, 0x0a, 0xb6, 0xb3, 0xf8, 0xd4, 0x80, 0xd5, 0x6e, 0x65, 0xeb, - 0x50, 0xbf, 0xff, 0x06, 0x3a, 0x80, 0x98, 0xd1, 0xa3, 0x29, 0x59, 0xda, 0xaa, 0x70, 0x4a, 0xee, - 0xe7, 0xfc, 0x0b, 0xa0, 0xb5, 0x61, 0x03, 0xc2, 0xec, 0x06, 0xc9, 0xf8, 0xf8, 0xc0, 0xfe, 0x04, - 0x4e, 0xaf, 0x5f, 0x18, 0x53, 0x81, 0x8a, 0x94, 0x80, 0xc6, 0xb6, 0x80, 0x76, 0x38, 0x0f, 0xb2, - 0xce, 0x9e, 0xff, 0xf3, 0x17, 0xef, 0x69, 0x3f, 0xbf, 0x42, 0x47, 0x37, 0x25, 0xd6, 0x9e, 0xdd, - 0x84, 0xf1, 0x65, 0xcf, 0xa6, 0x46, 0x43, 0x1a, 0xea, 0xbf, 0xa2, 0xd4, 0x42, 0xa7, 0xd9, 0x05, - 0xbd, 0xe7, 0x24, 0x98, 0x68, 0x54, 0x0b, 0xf2, 0xd7, 0x26, 0xd9, 0x1d, 0x28, 0x0b, 0xfd, 0x94, - 0xcc, 0xd9, 0xfa, 0x23, 0x28, 0x93, 0xf4, 0x4d, 0x78, 0xe9, 0x71, 0xe5, 0xb4, 0xa5, 0xcb, 0x9d, - 0x82, 0x83, 0x9e, 0x18, 0x4e, 0x40, 0x27, 0x09, 0x20, 0x23, 0xbc, 0xf8, 0x19, 0xf7, 0xe9, 0x61, - 0x67, 0x43, 0xbb, 0x40, 0xb1, 0x2e, 0xef, 0x27, 0x54, 0xd8, 0x60, 0xee, 0x08, 0x50, 0x71, 0x5a, - 0x4c, 0xc5, 0x41, 0x15, 0xc0, 0xf7, 0xef, 0xc5, 0xcc, 0x91, 0xd0, 0x29, 0xe0, 0xdc, 0xb2, 0x75, - 0xb3, 0xf0, 0xde, 0x51, 0x3d, 0x1b, 0x97, 0x53, 0x99, 0x2a, 0xbd, 0x30, 0x72, 0x3c, 0xa5, 0x1a, - 0x87, 0x60, 0xa1, 0x28, 0x07, 0x9d, 0x0d, 0xab, 0xbd, 0x6c, 0xa2, 0xa1, 0xa7, 0xfe, 0x4b, 0x23, - 0xb0, 0x72, 0x49, 0xba, 0x2f, 0x39, 0x4d, 0xd7, 0xb5, 0x35, 0x50, 0xab, 0x48, 0x92, 0x03, 0x0b, - 0x80, 0xe3, 0x41, 0x0b, 0x95, 0xfc, 0x24, 0xea, 0x13, 0x63, 0xc7, 0x9d, 0xd4, 0x80, 0xec, 0x04, - 0xb3, 0xc1, 0x6c, 0x76, 0x9a, 0x92, 0x71, 0xeb, 0x49, 0x73, 0x61, 0xb0, 0xc2, 0x34, 0xff, 0x5e, - 0x14, 0x99, 0xbe, 0x94, 0xf3, 0xfd, 0x5c, 0xbf, 0x56, 0x5f, 0x12, 0x18, 0x3a, 0x8a, 0x9f, 0xf6, - 0xeb, 0x9f, 0x42, 0xe8, 0x24, 0x66, 0x96, 0xc2, 0xff, 0x02, 0xbe, 0xce, 0xee, 0xa4, 0x43, 0xdd, - 0x61, 0xdd, 0x66, 0x8d, 0x98, 0xc9, 0x81, 0x61, 0x84, 0x4b, 0x61, 0x1e, 0x0d, 0xc7, 0xf3, 0xe7, - 0x46, 0x00, 0xae, 0x83, 0x1d, 0xc4, 0x25, 0x32, 0x53, 0x84, 0x82, 0x44, 0x0f, 0x70, 0xd2, 0x08, - 0xfb, 0x45, 0xbd, 0x33, 0x60, 0x42, 0xa4, 0x1a, 0x0e, 0x4c, 0xa1, 0xa1, 0xea, 0x69, 0xb6, 0xc9, - 0xef, 0xaf, 0xd6, 0x19, 0x0a, 0x01, 0x61, 0xa0, 0x93, 0x5c, 0xfc, 0x0e, 0xc1, 0xf0, 0x82, 0xea, - 0xc2, 0x4f, 0xeb, 0x2f, 0xeb, 0xd2, 0xfd, 0x2e, 0x1c, 0x75, 0x3f, 0x7f, 0x28, 0x5d, 0x57, 0xc5, - 0x9b, 0x78, 0x3b, 0xd0, 0x70, 0x59, 0x38, 0x00, 0x86, 0x2b, 0x09, 0x7f, 0x13, 0x18, 0x90, 0x61, - 0x64, 0x1f, 0xdb, 0xb6, 0xe8, 0x93, 0x23, 0x35, 0xcd, 0xac, 0x7f, 0xcc, 0x22, 0xaf, 0xe7, 0xe6, - 0x2f, 0xbe, 0x0e, 0xb6, 0x9c, 0x1b, 0x82, 0x2a, 0xa9, 0x6a, 0x18, 0xa4, 0x90, 0x5c, 0x57, 0xf6, - 0x55, 0x97, 0xc1, 0xc0, 0x7b, 0xb7, 0xf0, 0x3c, 0x8e, 0x42, 0x5c, 0xc9, 0x61, 0xb1, 0x28, 0xe1, - 0x93, 0x73, 0xc3, 0x11, 0x29, 0xb8, 0xe5, 0x8f, 0x7a, 0x05, 0xb4, 0x11, 0xa1, 0xc1, 0x1c, 0x0c, - 0xe1, 0xd4, 0x0a, 0xd3, 0xd9, 0x7a, 0x3c, 0xfd, 0xf2, 0xf0, 0xc2, 0x07, 0x01, 0x7d, 0x0c, 0x5f, - 0xe1, 0x77, 0x14, 0x67, 0x7e, 0x31, 0x44, 0x1d, 0x30, 0x94, 0x46, 0x68, 0xef, 0x1f, 0x90, 0x11, - 0xd8, 0xb7, 0xb2, 0x4d, 0xa4, 0x97, 0xb9, 0xaf, 0x14, 0xe0, 0x91, 0x0d, 0x61, 0x9d, 0xe0, 0xdb, - 0xda, 0xe3, 0x1b, 0xe8, 0x3e, 0xf7, 0x6f, 0x29, 0x3d, 0x88, 0x96, 0x40, 0xc3, 0x12, 0xb5, 0xcc, - 0x86, 0xc8, 0x96, 0x0c, 0x37, 0x37, 0xc9, 0x52, 0x43, 0xbd, 0x41, 0x5d, 0xd1, 0x48, 0xb2, 0xaa, - 0x91, 0xed, 0x49, 0xb8, 0x8d, 0x9e, 0x8a, 0x1a, 0xae, 0x30, 0xa2, 0xa6, 0x82, 0x26, 0xd5, 0xa0, - 0x3c, 0xa2, 0x41, 0xc3, 0x08, 0x3c, 0xfd, 0xf1, 0x73, 0x3d, 0x0a, 0x4e, 0xbd, 0xf8, 0x96, 0x8a, - 0x56, 0x10, 0x52, 0x53, 0xe7, 0x71, 0x53, 0x3f, 0x74, 0xf8, 0x2b, 0xef, 0xaf, 0xd5, 0x2d, 0xbd, - 0x65, 0x67, 0xba, 0xac, 0x7f, 0xbf, 0x38, 0xa6, 0x84, 0xf7, 0xda, 0xcc, 0x0e, 0xd9, 0x8a, 0xef, - 0x0f, 0x62, 0xeb, 0x10, 0xf1, 0x4d, 0x42, 0xac, 0x00, 0x1e, 0x55, 0x15, 0xcf, 0xaf, 0x28, 0xee, - 0xca, 0xcc, 0x2f, 0x2b, 0xa1, 0xd3, 0xdc, 0x34, 0x57, 0xcd, 0x2b, 0x14, 0x5e, 0x9c, 0x89, 0xa9, - 0x83, 0xfe, 0xab, 0x0e, 0xed, 0x00, 0x68, 0xdd, 0x1e, 0x43, 0x8e, 0x6f, 0xb7, 0x31, 0x3e, 0xde, - 0x55, 0xc5, 0x08, 0x22, 0x42, 0x0c, 0x94, 0x0a, 0xa2, 0xad, 0x73, 0x62, 0x3d, 0x09, 0x45, 0x9b, - 0x0c, 0xac, 0xcb, 0xb0, 0xc4, 0x4e, 0x10, 0x5c, 0x56, 0x33, 0x76, 0x40, 0x61, 0xc7, 0x07, 0x3f, - 0x06, 0x67, 0x87, 0xfb, 0x6f, 0x28, 0x9b, 0x00, 0x83, 0x95, 0xbd, 0xe7, 0x63, 0x2a, 0x3c, 0xd5, - 0xdb, 0x56, 0xe4, 0xa6, 0xc9, 0x06, 0x8b, 0xe7, 0x10, 0x85, 0x99, 0x31, 0x1c, 0x10, 0x5b, 0x53, - 0x6a, 0x5f, 0xc4, 0x39, 0x5f, 0x0b, 0xd6, 0x4a, 0x17, 0xad, 0xf1, 0xc3, 0x96, 0x67, 0x63, 0xe7, - 0xf7, 0xef, 0x64, 0x12, 0x63, 0xdd, 0xc8, 0x38, 0x11, 0x84, 0xc3, 0xc1, 0x48, 0x39, 0xd4, 0x7e, - 0xa6, 0xe6, 0x34, 0x33, 0xa2, 0x97, 0x4e, 0x75, 0x36, 0x1d, 0x97, 0x9a, 0x13, 0x60, 0x5a, 0x8f, - 0x1d, 0xdc, 0x26, 0x86, 0xee, 0x69, 0xc7, 0xc1, 0x70, 0x79, 0x3f, 0x24, 0xdf, 0x0d, 0x07, 0xaa, - 0x10, 0xaa, 0x4a, 0xf3, 0x4c, 0x87, 0xa5, 0xfe, 0x75, 0x7e, 0x16, 0x89, 0x14, 0x0c, 0x2d, 0x19, - 0xf3, 0x42, 0xe8, 0xc7, 0x22, 0x0e, 0xcf, 0xdb, 0xe5, 0x1b, 0x04, 0x04, 0x2f, 0x5b, 0xda, 0x7f, - 0x16, 0xeb, 0xa8, 0xf3, 0x9c, 0xa7, 0xfa, 0x82, 0x7e, 0x0f, 0x16, 0x79, 0xdd, 0xdc, 0x09, 0xac, - 0xf3, 0x86, 0x29, 0x84, 0x96, 0xf1, 0xbc, 0x9d, 0xcd, 0x9b, 0x9b, 0x91, 0x25, 0x2f, 0x90, 0xf6, - 0x60, 0x53, 0x06, 0xf6, 0x3c, 0xc6, 0x16, 0xd2, 0xd0, 0xc2, 0x24, 0xee, 0x23, 0x80, 0xef, 0x1d, - 0xef, 0xbb, 0xe6, 0x02, 0x87, 0x15, 0xc6, 0xe8, 0xbc, 0xa6, 0xe1, 0x85, 0x14, 0x41, 0x7f, 0x1c, - 0x96, 0xf9, 0x87, 0x21, 0x89, 0x5e, 0x85, 0xa6, 0x45, 0x0c, 0x5a, 0xdf, 0x18, 0xbd, 0xc9, 0x18, - 0xa7, 0x34, 0xfb, 0x36, 0xfa, 0x56, 0x73, 0xed, 0x21, 0xa8, 0x88, 0x38, 0x63, 0x5e, 0x9d, 0x53, - 0xd2, 0x93, 0x74, 0x8c, 0xce, 0x5f, 0xc2, 0x67, 0x38, 0xda, 0x61, 0xd1, 0x3b, 0x3f, 0xb8, 0x14, - 0x47, 0x92, 0x78, 0xd6, 0x08, 0xda, 0x00, 0xb8, 0x09, 0x9c, 0xa0, 0x83, 0x3e, 0xce, 0x73, 0x98, - 0x9e, 0x00, 0xef, 0x64, 0x5b, 0x13, 0x0c, 0xbd, 0x89, 0xae, 0x3e, 0x9d, 0x7a, 0xf2, 0xf5, 0xbd, - 0xa1, 0xcd, 0x7e, 0xa9, 0x43, 0x1b, 0x7e, 0xde, 0x48, 0xde, 0x4f, 0x97, 0x65, 0x6d, 0x4b, 0x2a, - 0x61, 0x09, 0x78, 0x09, 0x39, 0x5d, 0xbc, 0xec, 0x40, 0x27, 0x20, 0x69, 0xa8, 0x5a, 0x06, 0xed, - 0x50, 0x6c, 0x43, 0x38, 0xe8, 0x17, 0xfa, 0x77, 0x71, 0x07, 0x57, 0x88, 0x6a, 0xf8, 0x8c, 0x9b, - 0xbb, 0x41, 0x0b, 0x09, 0xae, 0xf0, 0xc9, 0x64, 0x45, 0x6f, 0xcc, 0x45, 0x1a, 0x3c, 0xbd, 0x62, - 0xf9, 0x23, 0x26, 0xda, 0x97, 0xd7, 0x3d, 0x98, 0x91, 0x48, 0x17, 0x11, 0x71, 0xdd, 0x02, 0xd9, - 0x00, 0x01, 0x29, 0x65, 0x82, 0x8e, 0xc5, 0x24, 0x80, 0x93, 0x4a, 0xcd, 0x7d, 0x6d, 0xcb, 0x5b, - 0xd9, 0x40, 0x64, 0x19, 0x7e, 0x14, 0x57, 0xc8, 0xc1, 0x74, 0x6e, 0x26, 0xfc, 0xaa, 0x3d, 0x9f, - 0x12, 0x9d, 0xc4, 0x0b, 0x31, 0x5c, 0x0f, 0x4c, 0x92, 0x86, 0x81, 0x9b, 0x55, 0xbd, 0x55, 0xcc, - 0x15, 0xc1, 0xe0, 0x21, 0xeb, 0xcd, 0x0f, 0x91, 0x07, 0xbb, 0x87, 0x6c, 0xa3, 0x2d, 0xb7, 0xb5, - 0xe5, 0xf9, 0x2f, 0x05, 0x5b, 0xd0, 0x04, 0xa5, 0x2e, 0x31, 0x60, 0x9e, 0x25, 0x64, 0x2f, 0x7e, - 0x81, 0x15, 0xa4, 0x2d, 0x7e, 0x81, 0xa5, 0xc6, 0xf8, 0x39, 0xee, 0x86, 0x58, 0x24, 0x63, 0xe4, - 0x3b, 0x3e, 0xbc, 0x17, 0x66, 0xce, 0xa5, 0xa4, 0x14, 0x27, 0x70, 0x29, 0x9b, 0x7e, 0x6a, 0xb8, - 0x2e, 0xb5, 0x80, 0xc5, 0x8e, 0x00, 0x00, 0x08, 0x0b, 0xd5, 0x59, 0xc1, 0x20, 0xda, 0x45, 0x40, - 0x3a, 0xee, 0xf6, 0xe7, 0x51, 0x4e, 0x87, 0x88, 0xe9, 0x3e, 0x20, 0x25, 0xaf, 0x3c, 0x66, 0xfa, - 0x29, 0x18, 0xb8, 0x2a, 0xbd, 0xb9, 0x49, 0xbf, 0xb6, 0xa9, 0x64, 0x0d, 0x95, 0x69, 0x06, 0x65, - 0xe8, 0x7b, 0x5e, 0x58, 0x16, 0x79, 0xc1, 0x7b, 0x67, 0x22, 0xac, 0x16, 0x78, 0x41, 0x0e, 0x6d, - 0x22, 0x90, 0x34, 0x0d, 0xb6, 0xdd, 0xdc, 0x14, 0xc1, 0x88, 0x60, 0xcf, 0x0c, 0xb5, 0x2a, 0x3a, - 0x4c, 0x7c, 0xa7, 0xb9, 0xff, 0x82, 0x79, 0xc7, 0xc5, 0x1a, 0x3d, 0x14, 0xd7, 0x77, 0x25, 0x0e, - 0xd0, 0x33, 0x9f, 0xe8, 0x06, 0x4b, 0x85, 0x5f, 0x38, 0x46, 0x37, 0x9e, 0x2f, 0x3d, 0x8b, 0xb9, - 0x71, 0x39, 0x9c, 0x18, 0xe6, 0xb0, 0xd7, 0x4f, 0xd0, 0x5b, 0x8c, 0x30, 0x8a, 0xd0, 0x91, 0x46, - 0x24, 0xc1, 0x22, 0xed, 0x62, 0x45, 0x72, 0xb5, 0xe0, 0x78, 0x3e, 0x5a, 0x83, 0xe7, 0x97, 0x8d, - 0xe4, 0xc9, 0x63, 0x9e, 0x33, 0xcd, 0x71, 0xf0, 0xce, 0x87, 0xa3, 0x6b, 0xea, 0xb9, 0x8c, 0x65, - 0xa9, 0x62, 0x96, 0x66, 0xa8, 0x65, 0x09, 0xda, 0x8d, 0x04, 0x58, 0x48, 0x09, 0x53, 0x81, 0x89, - 0x86, 0x2e, 0xe1, 0x79, 0x88, 0x7a, 0x29, 0xb3, 0xa0, 0xeb, 0x90, 0x34, 0x63, 0x8a, 0xab, 0xc1, - 0x0f, 0x95, 0x46, 0x0a, 0x85, 0x0f, 0x6f, 0x30, 0x40, 0x06, 0xe8, 0xe1, 0xb3, 0x1d, 0x8c, 0x74, - 0x77, 0x12, 0x0e, 0x1a, 0x42, 0xfc, 0x85, 0x58, 0x51, 0xb6, 0x1e, 0x62, 0x3b, 0x8b, 0x58, 0xff, - 0x50, 0x8c, 0xe4, 0x9f, 0x73, 0xcf, 0x2f, 0xe4, 0xf7, 0xef, 0xa0, 0x0a, 0x7e, 0x16, 0x12, 0x30, - 0x20, 0x02, 0xc3, 0xe2, 0x26, 0xc4, 0x4e, 0xa3, 0x11, 0x58, 0x42, 0x9e, 0xe4, 0x79, 0xdf, 0x39, - 0x46, 0x39, 0xb1, 0xd9, 0xf8, 0xc8, 0xe1, 0xec, 0x68, 0xb8, 0x40, 0xf1, 0x71, 0xf0, 0x39, 0xe8, - 0x20, 0x64, 0x87, 0xb3, 0x40, 0xa8, 0x72, 0xcc, 0x2b, 0x8d, 0x3b, 0xd7, 0x93, 0x5f, 0xa0, 0x1c, - 0x72, 0x32, 0x68, 0x21, 0x18, 0x5b, 0x0d, 0xe6, 0x71, 0xc6, 0x65, 0xf4, 0x70, 0x08, 0x36, 0x8a, - 0xc2, 0xb4, 0x61, 0x8e, 0x93, 0x3c, 0x86, 0x5a, 0x50, 0x43, 0x20, 0x16, 0x3d, 0x4b, 0x78, 0x9f, - 0x73, 0x61, 0x4c, 0x05, 0xdd, 0xff, 0x06, 0xfc, 0x1b, 0xa6, 0xdb, 0x8e, 0x2f, 0x14, 0x00, 0x07, - 0xdf, 0x66, 0xdc, 0x88, 0x63, 0x72, 0xe1, 0x1b, 0x5f, 0xc3, 0x20, 0x54, 0xac, 0x39, 0x22, 0x5d, - 0x42, 0x63, 0x21, 0xe4, 0xd0, 0x05, 0xc2, 0x9c, 0xee, 0x66, 0xe0, 0x4f, 0x37, 0x04, 0xdc, 0xc7, - 0x46, 0xf0, 0x48, 0x0a, 0x8c, 0x82, 0x47, 0x9b, 0x7e, 0x0b, 0x17, 0x26, 0xa0, 0x4f, 0xb8, 0x41, - 0x4a, 0x63, 0xba, 0x03, 0xc5, 0x4c, 0x1d, 0x8f, 0x5c, 0xb5, 0x91, 0x63, 0xdf, 0xde, 0xb4, 0xb7, - 0x2a, 0xdc, 0x5c, 0xc0, 0x1b, 0x4b, 0x6a, 0xee, 0x5f, 0x0c, 0x83, 0x4b, 0xfe, 0x0f, 0xab, 0x12, - 0x3d, 0x1e, 0xcf, 0x16, 0xd8, 0x41, 0x3d, 0x5c, 0x51, 0x40, 0x0d, 0xa2, 0x23, 0xa6, 0x51, 0x95, - 0x61, 0xa1, 0x52, 0xb0, 0x94, 0x8f, 0xf5, 0x0a, 0xbf, 0x00, 0xcf, 0x87, 0x74, 0x0a, 0xe2, 0xe9, - 0x14, 0xde, 0x77, 0x8d, 0x44, 0x85, 0x37, 0x5f, 0x0b, 0x4f, 0x4b, 0x3c, 0xaf, 0x01, 0xa6, 0x8e, - 0x63, 0x81, 0xe1, 0x40, 0xd8, 0xa6, 0x83, 0xbf, 0xb6, 0xd4, 0xb0, 0x6c, 0xdc, 0x7b, 0xd7, 0xa5, - 0x44, 0x36, 0xe1, 0xcc, 0x4c, 0xa3, 0xc6, 0xce, 0x80, 0xc1, 0xcf, 0xb0, 0xd6, 0x10, 0x3e, 0x20, - 0x69, 0xe6, 0x1d, 0x0a, 0x03, 0xa6, 0x68, 0xf8, 0x08, 0x1c, 0x21, 0xe9, 0x1f, 0x1b, 0xc3, 0xbe, - 0xf9, 0xd8, 0x21, 0x19, 0xde, 0xe6, 0x53, 0x3c, 0x59, 0xcb, 0x1f, 0x86, 0xe0, 0x0c, 0xf3, 0x06, - 0x2b, 0xb2, 0xc3, 0x85, 0xce, 0x32, 0xc7, 0xab, 0x80, 0x80, 0xe0, 0x42, 0x29, 0x78, 0xef, 0x16, - 0xef, 0x99, 0x15, 0xfe, 0x95, 0x2c, 0x51, 0x5b, 0x96, 0x01, 0x59, 0x58, 0xb3, 0xf1, 0x0e, 0xf8, - 0xab, 0x4c, 0xfe, 0x70, 0x85, 0xbb, 0x85, 0xed, 0xf7, 0x0e, 0xbb, 0xf1, 0x1e, 0x78, 0xb6, 0xed, - 0xcb, 0xef, 0x1f, 0x0b, 0xf5, 0xa2, 0x2b, 0x4f, 0xab, 0x3a, 0x40, 0xb3, 0xfd, 0x71, 0x0f, 0xce, - 0x3d, 0x78, 0xe1, 0x5e, 0x78, 0x90, 0x56, 0x76, 0x83, 0x5d, 0x86, 0xe2, 0x87, 0x5b, 0x7a, 0x59, - 0x80, 0x0d, 0x85, 0x40, 0xb6, 0x2e, 0xc3, 0xf0, 0xea, 0x6b, 0xdf, 0x20, 0xa7, 0xc2, 0x19, 0xcd, - 0x60, 0xb0, 0x46, 0x79, 0x07, 0xc3, 0xc7, 0xcd, 0x35, 0x12, 0x37, 0xd6, 0x68, 0xe6, 0xd1, 0x4a, - 0xd3, 0x6e, 0x75, 0x5e, 0xff, 0x84, 0xf1, 0x8f, 0x72, 0xfb, 0x6b, 0x16, 0xec, 0x97, 0xdf, 0x31, - 0x76, 0x5c, 0x70, 0xac, 0x6c, 0x7d, 0xfd, 0xab, 0x46, 0xdc, 0xba, 0x8c, 0x62, 0x30, 0x14, 0x1c, - 0xe3, 0xfb, 0x5a, 0xc8, 0x5c, 0x71, 0xe0, 0xd5, 0x2f, 0x3e, 0xed, 0x85, 0x69, 0xd4, 0x17, 0x6f, - 0xcc, 0xec, 0xaf, 0x15, 0xf0, 0x97, 0x6d, 0x5d, 0x2f, 0x77, 0xee, 0xd7, 0xe7, 0x5b, 0xe3, 0x85, - 0x8a, 0x90, 0xd8, 0x3c, 0x04, 0x65, 0xb3, 0x46, 0xd7, 0x88, 0x50, 0xd8, 0xd6, 0x16, 0xcb, 0xfc, - 0x04, 0xc5, 0xf1, 0xa2, 0x8d, 0xf3, 0x79, 0xf4, 0x64, 0x8a, 0xc8, 0x21, 0x99, 0xe1, 0x1d, 0x11, - 0xe1, 0xc3, 0x12, 0xbd, 0xc6, 0xd5, 0x17, 0xcd, 0x5b, 0x20, 0x3b, 0x48, 0x5b, 0x39, 0x86, 0xa1, - 0x53, 0x32, 0xe3, 0x3d, 0xf4, 0xb0, 0xb0, 0x02, 0xd2, 0xe6, 0xe6, 0xaa, 0x16, 0xd0, 0xdb, 0xd4, - 0x40, 0x33, 0x33, 0xef, 0x34, 0x32, 0x4e, 0xce, 0x64, 0xd2, 0x97, 0x46, 0x9a, 0x69, 0xd7, 0x38, - 0x67, 0x60, 0x9a, 0x18, 0xb4, 0x46, 0x01, 0xd5, 0xfc, 0xc3, 0x73, 0x63, 0xfd, 0x0c, 0x1f, 0x38, - 0x1a, 0xee, 0xe6, 0x72, 0x03, 0xff, 0x42, 0x2f, 0x57, 0xe0, 0xea, 0xf3, 0xdd, 0x8c, 0xb6, 0xe0, - 0x6f, 0xf4, 0x72, 0x11, 0x84, 0xb3, 0x9e, 0x36, 0x80, 0x5b, 0x7f, 0xf1, 0x63, 0x7b, 0xc8, 0xcf, - 0xf9, 0x72, 0x71, 0x0c, 0x96, 0x59, 0x5f, 0x1c, 0x4c, 0xb3, 0x5a, 0xa0, 0xb6, 0x87, 0x69, 0x8c, - 0x86, 0x92, 0x04, 0x4e, 0xe1, 0x28, 0x54, 0xef, 0xa0, 0x4e, 0xd2, 0x10, 0xf9, 0x59, 0x6c, 0x24, - 0x84, 0xe5, 0x7a, 0xba, 0x93, 0x5a, 0x78, 0x9f, 0x5a, 0x77, 0xa2, 0x92, 0x2e, 0x7a, 0x33, 0x62, - 0x40, 0xfd, 0x63, 0x24, 0x7d, 0xc5, 0x30, 0x4e, 0xca, 0x2b, 0x20, 0xc3, 0x28, 0xd5, 0x48, 0x1c, - 0x0e, 0xbd, 0x04, 0x29, 0xda, 0xdd, 0xa5, 0x4e, 0x2e, 0x1b, 0xb4, 0x7c, 0x1c, 0x71, 0xec, 0x04, - 0xe4, 0x15, 0x68, 0x73, 0x26, 0x2b, 0x61, 0x45, 0xec, 0x8f, 0x25, 0x8c, 0x85, 0xce, 0xff, 0x5d, - 0x35, 0x12, 0xab, 0x41, 0x2e, 0x19, 0x2d, 0x4b, 0x60, 0xf1, 0x6c, 0xb8, 0xf8, 0xd8, 0xe2, 0xd1, - 0x62, 0x24, 0x8e, 0x5b, 0x16, 0x94, 0x1d, 0x30, 0xbc, 0x19, 0x1a, 0xd4, 0xf3, 0x7a, 0x64, 0x7b, - 0x19, 0x2e, 0x24, 0x82, 0x1d, 0x4f, 0x15, 0xd3, 0x90, 0xfa, 0xe1, 0x5f, 0x2c, 0x67, 0xf9, 0x7b, - 0xda, 0xfc, 0xcd, 0x6e, 0x5e, 0xa0, 0x22, 0x8d, 0x51, 0x8c, 0x8c, 0x8d, 0x1b, 0xa9, 0x3b, 0x30, - 0x02, 0x31, 0xf6, 0x08, 0x4f, 0x7d, 0x23, 0xf5, 0x05, 0xd3, 0x5d, 0x6f, 0xf4, 0x2e, 0x2d, 0x59, - 0xe2, 0x4a, 0xe5, 0x0a, 0x3f, 0x3c, 0xbd, 0x28, 0x9d, 0xe3, 0xeb, 0xb1, 0xd7, 0xd4, 0x27, 0xee, - 0xbd, 0x13, 0x10, 0x01, 0x54, 0xa4, 0x25, 0xdd, 0xb5, 0x76, 0x6e, 0xc4, 0x96, 0x5c, 0xb2, 0x4d, - 0xc9, 0xcf, 0x0f, 0xdd, 0x91, 0xd4, 0xec, 0x41, 0x65, 0xaf, 0x0f, 0x6d, 0x5f, 0x04, 0x0b, 0xb4, - 0xbc, 0x85, 0x2a, 0x7a, 0x21, 0x4c, 0x03, 0x57, 0xaa, 0x80, 0xc0, 0x67, 0xfd, 0x9a, 0x28, 0x38, - 0xf0, 0x37, 0xc2, 0x6b, 0x44, 0x41, 0x9b, 0x8b, 0xec, 0xd2, 0x0c, 0xa2, 0x9e, 0xbd, 0xd5, 0xd0, - 0x54, 0x51, 0xe4, 0xeb, 0xaa, 0x39, 0x23, 0xe9, 0x7e, 0x38, 0x5b, 0xbe, 0x14, 0xcb, 0xc7, 0xcf, - 0xa1, 0xb5, 0x3a, 0x49, 0xd2, 0x44, 0x49, 0xc6, 0x90, 0xe7, 0x3e, 0x3d, 0xb2, 0xac, 0x8f, 0xeb, - 0x58, 0x7c, 0x9d, 0x35, 0x0e, 0x12, 0xe7, 0x0b, 0x84, 0x10, 0x8a, 0x1d, 0xff, 0x9a, 0x83, 0xa5, - 0xc5, 0x97, 0xa0, 0x77, 0x1e, 0x83, 0x65, 0xdb, 0xca, 0xd9, 0x81, 0x5c, 0x20, 0xcc, 0xeb, 0x21, - 0x9c, 0x5d, 0x87, 0x5c, 0x43, 0x76, 0x18, 0x99, 0x07, 0xa1, 0x17, 0xbd, 0x88, 0x3b, 0x29, 0xec, - 0x4c, 0xaa, 0x87, 0x41, 0xf7, 0xc9, 0xa4, 0x43, 0x0d, 0x1e, 0xcf, 0x13, 0x0e, 0x4f, 0x7e, 0xa4, - 0xb9, 0x1b, 0x71, 0x17, 0xd4, 0x5d, 0x0c, 0x16, 0xc7, 0xf5, 0xa4, 0x8e, 0x97, 0xab, 0x14, 0xd9, - 0xf0, 0xec, 0xdf, 0x34, 0x83, 0x5b, 0x9e, 0x59, 0x55, 0xe1, 0x6a, 0x68, 0x8a, 0xe7, 0x46, 0x86, - 0x21, 0x89, 0xb4, 0x60, 0x08, 0x52, 0x37, 0x92, 0xe2, 0x48, 0xee, 0xd0, 0xa6, 0x26, 0x8f, 0x37, - 0x6a, 0x60, 0xe5, 0x69, 0xb6, 0x99, 0x6e, 0xb1, 0xfc, 0xce, 0xe8, 0xc6, 0xc4, 0x0b, 0x32, 0x1c, - 0x5c, 0xe4, 0xf6, 0x7c, 0x26, 0x46, 0x9a, 0xf9, 0x4b, 0x8c, 0x74, 0xcf, 0xfb, 0x96, 0x71, 0xb6, - 0x40, 0x5b, 0x0c, 0x32, 0xf1, 0x17, 0xcb, 0x3a, 0x9a, 0xac, 0xd3, 0x9e, 0xae, 0x3e, 0xac, 0x64, - 0xcd, 0x72, 0x23, 0x1e, 0x54, 0x94, 0x10, 0xff, 0x29, 0xd0, 0xa5, 0x5b, 0xfe, 0x57, 0x18, 0xad, - 0x27, 0x01, 0x5a, 0xc3, 0xcd, 0x7f, 0x21, 0xfa, 0x48, 0x33, 0xa2, 0x4c, 0xc1, 0x27, 0x01, 0x8f, - 0x29, 0xa0, 0xfd, 0x14, 0xf4, 0x08, 0x5d, 0x67, 0x2e, 0x83, 0xb3, 0x2d, 0xee, 0x44, 0x10, 0x41, - 0x70, 0x0f, 0x47, 0x2d, 0x96, 0xd4, 0x62, 0x77, 0x6e, 0x24, 0x39, 0xc0, 0x04, 0xf4, 0x15, 0xfe, - 0xc2, 0xe4, 0xe4, 0xdd, 0xe7, 0x33, 0xfb, 0xb0, 0xd0, 0xd2, 0x81, 0x77, 0x8b, 0x21, 0xf4, 0x59, - 0x60, 0x04, 0xe8, 0xc9, 0x32, 0xd0, 0xe4, 0x8c, 0xf5, 0xb5, 0xb6, 0x0e, 0x56, 0x80, 0xa0, 0x79, - 0x0c, 0x18, 0xbd, 0xe0, 0x64, 0xb6, 0xc0, 0x8c, 0x17, 0x0d, 0xb0, 0x8a, 0xc8, 0x31, 0x36, 0x60, - 0x15, 0x8d, 0xc7, 0xd2, 0x77, 0x17, 0x55, 0xfd, 0x5a, 0x33, 0xd3, 0x82, 0xc4, 0x88, 0x36, 0x1a, - 0x67, 0x8c, 0x59, 0x60, 0x1d, 0x9b, 0x9b, 0xd1, 0x23, 0x1f, 0x1a, 0x0d, 0x97, 0xcd, 0x82, 0xd5, - 0x1c, 0x6d, 0x73, 0xf3, 0x43, 0x6c, 0xd3, 0xd0, 0x87, 0x77, 0x81, 0xc4, 0x67, 0x3c, 0x9b, 0x66, - 0x42, 0xee, 0x0b, 0x36, 0x27, 0x19, 0x9e, 0x8a, 0x8d, 0x55, 0x12, 0x2c, 0x60, 0xa4, 0x41, 0x5c, - 0x4a, 0x0c, 0x9e, 0x00, 0x33, 0x8f, 0x8a, 0x40, 0x48, 0xa9, 0xfd, 0xf8, 0x61, 0x02, 0xeb, 0x30, - 0x81, 0x4b, 0x98, 0x69, 0x59, 0x08, 0x03, 0xff, 0x29, 0xfc, 0xc0, 0xff, 0x41, 0xbd, 0xa9, 0x67, - 0x69, 0xd5, 0x31, 0xd3, 0x60, 0xb5, 0xc5, 0x02, 0x76, 0x3b, 0xba, 0x44, 0x7a, 0xe9, 0xee, 0x04, - 0x34, 0x15, 0x01, 0x70, 0x88, 0xc0, 0x76, 0xa2, 0x55, 0x02, 0xdc, 0xf7, 0x6a, 0x85, 0x2a, 0x6b, - 0x39, 0x56, 0x90, 0xfa, 0x5a, 0x62, 0x45, 0xdf, 0x2b, 0x8d, 0xca, 0x58, 0x44, 0x30, 0x3a, 0x31, - 0x45, 0xc5, 0xbb, 0x81, 0x65, 0xa5, 0x72, 0xa6, 0x28, 0x6e, 0x58, 0x6b, 0x9a, 0x7b, 0x5b, 0xf1, - 0xfa, 0x4a, 0x58, 0xba, 0xe0, 0x7a, 0xc0, 0xc1, 0x21, 0x2e, 0xfd, 0xb0, 0x05, 0x1d, 0xfc, 0x9d, - 0x0c, 0x0e, 0xa7, 0xf1, 0xce, 0xbe, 0xc4, 0x73, 0x3a, 0x17, 0x27, 0xfb, 0x66, 0x30, 0x40, 0x37, - 0x33, 0xd6, 0x5e, 0x40, 0xf3, 0x99, 0x7b, 0x8a, 0x89, 0x0d, 0x43, 0xc4, 0x76, 0x00, 0xfa, 0x26, - 0x71, 0x32, 0xd9, 0x57, 0x52, 0x8d, 0x6c, 0x85, 0xdf, 0xce, 0xd3, 0x4d, 0xf6, 0x58, 0x2d, 0x2f, - 0xf4, 0x95, 0xed, 0x9c, 0xff, 0x33, 0x2f, 0x96, 0x00, 0xa3, 0x85, 0x42, 0xa3, 0xd1, 0x57, 0x68, - 0x4a, 0xaa, 0x91, 0xc7, 0x14, 0xb1, 0x12, 0x4a, 0x01, 0x00, 0x8c, 0x33, 0xb1, 0xb3, 0x87, 0xfd, - 0xe1, 0xa1, 0xa3, 0xdf, 0xf8, 0xd5, 0x77, 0xf0, 0x1c, 0xa6, 0xbe, 0x32, 0xc7, 0x43, 0xad, 0x90, - 0x97, 0x15, 0xc1, 0x2e, 0xfe, 0xc5, 0xcf, 0x85, 0x6a, 0x56, 0x64, 0xe4, 0xa2, 0x18, 0x5d, 0x3b, - 0xe2, 0x40, 0x5c, 0x1c, 0x88, 0x4c, 0x17, 0x2c, 0xf0, 0x7d, 0x44, 0xf7, 0x0f, 0xce, 0x50, 0x0e, - 0xb6, 0xaa, 0x93, 0x48, 0x9d, 0xdc, 0x57, 0xbc, 0xc1, 0x4d, 0x20, 0xa1, 0xa5, 0x59, 0x8e, 0xde, - 0x46, 0x6a, 0x0f, 0x12, 0xec, 0x80, 0x65, 0x8e, 0xba, 0xec, 0x93, 0xac, 0x66, 0x98, 0xa7, 0x6b, - 0x2e, 0x40, 0xa5, 0x15, 0x71, 0xab, 0x37, 0x14, 0x47, 0x36, 0x91, 0xc6, 0x83, 0xc1, 0x58, 0xb3, - 0x3c, 0x51, 0xf6, 0xce, 0x7e, 0x6f, 0x49, 0x9f, 0xb0, 0xd0, 0x02, 0x97, 0x77, 0xed, 0x29, 0x82, - 0x49, 0x46, 0x56, 0xe0, 0x5c, 0x16, 0x05, 0x30, 0xc2, 0x95, 0xeb, 0x60, 0x0d, 0x09, 0xf7, 0x01, - 0xf9, 0x7b, 0xcb, 0x43, 0x95, 0x36, 0x70, 0x43, 0x3e, 0xed, 0x16, 0xdb, 0xe1, 0xc9, 0xcf, 0xbd, - 0xb3, 0x7f, 0xf8, 0xd9, 0x3c, 0x92, 0x6f, 0x36, 0xc7, 0x9d, 0x3e, 0x91, 0x7e, 0x88, 0x82, 0x77, - 0x86, 0xcb, 0xba, 0x63, 0x18, 0x69, 0x4b, 0xe3, 0x5b, 0xfc, 0x67, 0x56, 0x2d, 0x72, 0xfe, 0x30, - 0x34, 0xac, 0x16, 0x6e, 0xe5, 0x1c, 0x03, 0x17, 0x57, 0xed, 0xd1, 0x8e, 0x9c, 0x78, 0x11, 0x45, - 0x28, 0xae, 0xb7, 0x7e, 0x7a, 0x8b, 0xf6, 0x64, 0xc7, 0x42, 0xf1, 0x09, 0xfa, 0x69, 0x34, 0x3e, - 0xf8, 0x6f, 0xf8, 0x34, 0xff, 0x82, 0x33, 0xd3, 0x04, 0xcc, 0x45, 0x10, 0xbc, 0x7c, 0xb4, 0x42, - 0x18, 0x4b, 0x66, 0xda, 0x02, 0x18, 0xdf, 0xcd, 0xf4, 0x60, 0x27, 0x7e, 0x7e, 0xca, 0x12, 0x36, - 0x52, 0x59, 0x3c, 0x36, 0x56, 0x00, 0xbd, 0xae, 0xe6, 0x26, 0xa3, 0xc7, 0x39, 0x2d, 0x6d, 0xf3, - 0x0d, 0x73, 0x1d, 0x7a, 0x39, 0x01, 0x2e, 0xfa, 0x2d, 0x4e, 0x28, 0x58, 0xaf, 0x8d, 0x04, 0x16, - 0x2f, 0xee, 0xa7, 0xf1, 0x22, 0x84, 0xe2, 0x3e, 0x8f, 0x20, 0x7a, 0x1f, 0x27, 0xa0, 0xcb, 0xaf, - 0x5c, 0x7b, 0x5f, 0x04, 0x69, 0x6a, 0x18, 0x54, 0xb2, 0x38, 0xe2, 0x48, 0x5b, 0x6c, 0x1b, 0x32, - 0x7f, 0x68, 0x78, 0xa4, 0x93, 0xb3, 0x32, 0x24, 0x93, 0x46, 0x8d, 0x79, 0x01, 0x15, 0x37, 0xd0, - 0x5a, 0x50, 0xf8, 0x6e, 0xf1, 0x3e, 0xe9, 0x96, 0x84, 0xe7, 0xbb, 0xd4, 0x9d, 0x58, 0x7b, 0x8d, - 0x20, 0x44, 0xc3, 0x6b, 0x74, 0x34, 0x3f, 0xbf, 0xbd, 0x95, 0xa5, 0x5e, 0x2f, 0xb6, 0xae, 0x3f, - 0x8f, 0x9e, 0xe1, 0x62, 0xb0, 0x58, 0xa7, 0x55, 0x36, 0x7f, 0xdd, 0x8f, 0x32, 0xc3, 0x10, 0x51, - 0xcd, 0x1c, 0x3a, 0x51, 0xac, 0xf9, 0x0a, 0x13, 0xdd, 0xee, 0x9b, 0xa6, 0xf7, 0x41, 0x24, 0xf1, - 0x64, 0x3a, 0x04, 0x82, 0xa3, 0x43, 0x8f, 0x00, 0x4a, 0xa2, 0x9a, 0xc5, 0x9e, 0xd8, 0xd9, 0x4c, - 0x5c, 0x38, 0x06, 0x7c, 0xc8, 0xae, 0x91, 0x58, 0xe8, 0xdd, 0x4b, 0xd6, 0xaa, 0xac, 0x0f, 0xed, - 0xe4, 0xca, 0x95, 0xaf, 0xe5, 0x37, 0x61, 0x03, 0x92, 0xbd, 0x9d, 0xb3, 0xc0, 0xcf, 0xff, 0x6a, - 0xad, 0x38, 0x20, 0x76, 0x71, 0xf5, 0x2e, 0x2f, 0x9c, 0x37, 0xb2, 0x34, 0x2c, 0x74, 0x2c, 0x68, - 0xb4, 0x2d, 0x0d, 0x51, 0x98, 0x88, 0xcc, 0xe3, 0xce, 0x1c, 0x1a, 0x1d, 0x7a, 0x12, 0x37, 0xfa, - 0x9f, 0x22, 0x0c, 0x7a, 0x68, 0xb0, 0x35, 0x8a, 0x20, 0x32, 0x22, 0xcd, 0x76, 0xee, 0xa8, 0x37, - 0xf4, 0xbc, 0x23, 0x67, 0x27, 0x9e, 0xf0, 0x43, 0xfc, 0x59, 0x0b, 0xed, 0x0d, 0xe9, 0x4b, 0xce, - 0x91, 0x6d, 0xd2, 0x68, 0x38, 0xba, 0x77, 0x3d, 0x12, 0x67, 0x44, 0x96, 0x96, 0x6c, 0x59, 0xd4, - 0xc6, 0x62, 0x43, 0x26, 0x94, 0x05, 0x74, 0x7a, 0xab, 0xd8, 0xe2, 0xdc, 0x5f, 0xce, 0x0e, 0xf3, - 0x69, 0xe5, 0x25, 0x19, 0x0a, 0x17, 0xf4, 0x22, 0xda, 0x02, 0xc3, 0x91, 0xee, 0x76, 0x8d, 0x84, - 0xb9, 0xf9, 0x07, 0x37, 0x07, 0x59, 0x60, 0x94, 0x3d, 0x4c, 0x39, 0xc9, 0x60, 0x8b, 0x12, 0xff, - 0xfb, 0x77, 0xb8, 0xe9, 0x6e, 0xec, 0xb7, 0x89, 0xe7, 0xe0, 0x01, 0x02, 0x7d, 0xf4, 0x00, 0x34, - 0xd4, 0xe6, 0x1f, 0x02, 0x64, 0x7a, 0xe1, 0x68, 0xa1, 0x5b, 0x8e, 0xf9, 0x1f, 0x0c, 0xf3, 0x3f, - 0x3d, 0x0f, 0xd2, 0x8d, 0x69, 0x09, 0xff, 0xd5, 0x5a, 0x15, 0x43, 0xe7, 0xb9, 0x91, 0xbe, 0x24, - 0xfd, 0xf1, 0x10, 0xf9, 0x30, 0x49, 0x51, 0x3b, 0x99, 0x19, 0xa1, 0x2c, 0x83, 0xdf, 0xfb, 0xa5, - 0xc6, 0x98, 0x0d, 0x77, 0x6b, 0x22, 0xfa, 0x47, 0x06, 0x51, 0x16, 0x65, 0xe2, 0x11, 0x41, 0xa9, - 0xa4, 0xf3, 0x2f, 0x33, 0x33, 0x5e, 0x6c, 0xce, 0xcc, 0xf1, 0x75, 0xf1, 0x0b, 0x1e, 0x88, 0x96, - 0x64, 0x6d, 0xdc, 0x16, 0x81, 0x19, 0x7e, 0x17, 0xf9, 0x20, 0xe1, 0x3b, 0x26, 0x6c, 0x63, 0x82, - 0xb1, 0x9d, 0xce, 0xe6, 0x36, 0x37, 0x3f, 0xd5, 0xbf, 0x46, 0xc3, 0x43, 0x07, 0xc0, 0x81, 0xae, - 0x2e, 0x1f, 0x95, 0xcd, 0x6d, 0x6d, 0x69, 0x9c, 0x47, 0x91, 0x5b, 0x0d, 0x07, 0xdb, 0x96, 0xdd, - 0x32, 0xfc, 0x20, 0x27, 0x09, 0x27, 0xe1, 0x8b, 0xe3, 0x35, 0x01, 0x24, 0xcc, 0x3a, 0x18, 0x5d, - 0xdc, 0x31, 0xfa, 0x59, 0x64, 0xe2, 0xda, 0x9a, 0x47, 0xfa, 0x21, 0x46, 0xc1, 0x0e, 0x18, 0x0b, - 0xab, 0x1e, 0x78, 0x7d, 0xbd, 0x8f, 0xca, 0x43, 0x82, 0x41, 0xc0, 0xf5, 0xe0, 0x90, 0x63, 0xdc, - 0x7f, 0x9b, 0xe2, 0xa2, 0x07, 0x1f, 0x5b, 0x90, 0xb6, 0x95, 0x8c, 0xe9, 0xb1, 0xfe, 0x2d, 0xe4, - 0x31, 0x45, 0x76, 0x47, 0xac, 0xc5, 0x5e, 0xb3, 0x7a, 0x00, 0x67, 0x7c, 0x0c, 0x2e, 0x3d, 0x00, - 0x14, 0x4f, 0x5a, 0x0e, 0x53, 0x40, 0x70, 0xec, 0x21, 0x11, 0xd2, 0xe9, 0xb4, 0xcb, 0x94, 0x27, - 0xdf, 0xbb, 0xe2, 0x6b, 0x0c, 0xa4, 0xce, 0x78, 0x03, 0x06, 0xd0, 0xf8, 0x5b, 0x18, 0x20, 0x9f, - 0x7f, 0xf6, 0xf7, 0xe6, 0x26, 0x7b, 0x32, 0xf9, 0xc5, 0x56, 0xeb, 0x04, 0xee, 0xfa, 0x49, 0x98, - 0xbc, 0xf7, 0x06, 0x66, 0x23, 0xbf, 0x43, 0x27, 0xe5, 0xef, 0xdf, 0x51, 0x49, 0x07, 0x52, 0x18, - 0x52, 0x6b, 0x33, 0xd4, 0x88, 0x43, 0xad, 0x81, 0x34, 0x81, 0x96, 0xe2, 0x6b, 0x2b, 0xf3, 0xe3, - 0xbb, 0x79, 0xa0, 0xca, 0x2d, 0x75, 0x63, 0xee, 0x1d, 0xf3, 0xe6, 0xe9, 0x68, 0xcb, 0x87, 0xac, - 0x81, 0x96, 0x06, 0x39, 0x38, 0x7a, 0x1c, 0x1c, 0x3d, 0x17, 0x0e, 0xc6, 0x7c, 0x39, 0xd7, 0xc0, - 0xc4, 0xad, 0xa6, 0xe8, 0xad, 0xa5, 0x1c, 0x6d, 0x7d, 0xc6, 0xf0, 0x09, 0x6f, 0xef, 0xe7, 0xa4, - 0x20, 0x41, 0x78, 0x73, 0x02, 0xce, 0xbe, 0x0f, 0xf2, 0x0d, 0xad, 0x8f, 0xb2, 0x2d, 0x0e, 0x8b, - 0xf3, 0xf3, 0x6d, 0x7c, 0xcf, 0x78, 0x97, 0x3f, 0x24, 0xbe, 0x67, 0x70, 0xb1, 0x15, 0xbf, 0xfb, - 0xee, 0x40, 0xdf, 0x4e, 0xfc, 0x5f, 0x71, 0x5c, 0x0c, 0xf0, 0xde, 0xc3, 0x00, 0x00 + 0x08, 0x43, 0xca, 0x1f, 0x21, 0xec, 0x7a, 0x15, 0xc2, 0x7c, 0xf4, 0x20, 0xc6, 0xae, 0x7b, 0x72, + 0x72, 0x59, 0x93, 0x41, 0x62, 0xf8, 0x40, 0x95, 0xf9, 0x94, 0x26, 0x13, 0x67, 0xad, 0xd8, 0xb0, + 0xde, 0x5f, 0xea, 0xd3, 0xa2, 0x4b, 0x07, 0x8b, 0xe9, 0xf3, 0xa7, 0x7d, 0x5a, 0xdb, 0xa5, 0x8d, + 0xbf, 0xd4, 0xa7, 0x85, 0xa5, 0xb6, 0xd4, 0xa5, 0x8d, 0x3f, 0xeb, 0xd3, 0xee, 0xf2, 0x30, 0x6d, + 0xfc, 0xdd, 0x3e, 0xfd, 0x89, 0xc6, 0xb9, 0x7e, 0x9e, 0x8e, 0x59, 0xd7, 0x36, 0x3e, 0x41, 0xc7, + 0x54, 0xa0, 0xfb, 0x84, 0xbc, 0xa4, 0xd4, 0xc7, 0x70, 0xb0, 0xb1, 0x8c, 0x84, 0xfb, 0xf7, 0x68, + 0x75, 0x99, 0x65, 0xfd, 0x87, 0xa8, 0x35, 0xa4, 0x10, 0x63, 0x60, 0xd4, 0x7b, 0x5d, 0x85, 0xd7, + 0xb8, 0x68, 0xfe, 0x51, 0x57, 0x81, 0xf6, 0xe3, 0x5d, 0x6d, 0x7e, 0xd0, 0xd5, 0x5d, 0x06, 0x99, + 0xda, 0x19, 0x69, 0xda, 0x9b, 0x48, 0xaf, 0x37, 0x3e, 0x39, 0xf8, 0x9f, 0xe9, 0xf5, 0x3a, 0x55, + 0xbd, 0xa3, 0x9b, 0xae, 0xf3, 0x29, 0xfe, 0x45, 0xc7, 0x05, 0xcc, 0x33, 0xc8, 0x8f, 0xa8, 0xd8, + 0x08, 0x39, 0x57, 0x1c, 0x3d, 0x0e, 0xc1, 0xd7, 0x39, 0xc2, 0xce, 0x9d, 0x90, 0x53, 0xc2, 0xcb, + 0x3c, 0x99, 0x38, 0x09, 0xd9, 0x35, 0xc2, 0xfe, 0x01, 0xb6, 0xac, 0x82, 0xad, 0x42, 0x12, 0xd8, + 0xce, 0x2e, 0x9b, 0xbb, 0x9f, 0x2a, 0x9b, 0x85, 0xb2, 0xb9, 0xbf, 0x58, 0x36, 0x07, 0x65, 0xf3, + 0xcb, 0x76, 0x6f, 0x1c, 0x71, 0x5e, 0x3c, 0xde, 0x7b, 0x52, 0xde, 0x8b, 0x7a, 0x5b, 0xa2, 0x40, + 0xff, 0xbd, 0x17, 0x02, 0xf8, 0xb9, 0x79, 0xe7, 0x65, 0x5e, 0x22, 0xc3, 0x2e, 0xa8, 0x4d, 0x0b, + 0x99, 0xc0, 0x48, 0x05, 0xdd, 0xc4, 0x5c, 0x38, 0x43, 0x22, 0xe4, 0x6d, 0xc6, 0xb6, 0xe3, 0x7a, + 0xc4, 0x42, 0xa8, 0x7e, 0x63, 0x0b, 0x14, 0x94, 0x0e, 0x05, 0xce, 0xa2, 0x6d, 0x46, 0x4d, 0xcc, + 0x34, 0xa8, 0xef, 0x1b, 0x3b, 0x12, 0xbc, 0xe7, 0x99, 0xd1, 0x1e, 0xb1, 0xd9, 0x17, 0x0b, 0x0d, + 0x21, 0x93, 0x1d, 0x13, 0x0d, 0xbf, 0x08, 0xf5, 0xb0, 0xe4, 0x3d, 0x5f, 0xd2, 0x52, 0xf9, 0xd0, + 0xfa, 0x88, 0xef, 0x0c, 0xc9, 0x7a, 0x39, 0xe3, 0x0a, 0x18, 0x6d, 0x5b, 0x80, 0x2f, 0x5c, 0xbd, + 0x5c, 0x8b, 0xdd, 0x7d, 0x30, 0x5d, 0x94, 0x4f, 0x12, 0xf7, 0x06, 0xcb, 0xbc, 0x40, 0xae, 0xa7, + 0x84, 0xb2, 0xe4, 0x84, 0x63, 0x11, 0xa2, 0xae, 0xe8, 0x78, 0xd8, 0x59, 0x41, 0x1b, 0x9e, 0xcf, + 0x15, 0x59, 0xc3, 0x37, 0xfe, 0x48, 0x30, 0x74, 0x28, 0xfc, 0x28, 0x73, 0xa0, 0x69, 0x7f, 0xea, + 0x9b, 0x10, 0xff, 0x67, 0x7c, 0x13, 0xcb, 0x18, 0xc3, 0x45, 0x23, 0x5c, 0x35, 0x9e, 0x7e, 0x80, + 0xb5, 0xb0, 0x6b, 0xb0, 0xa7, 0x9f, 0xe2, 0x78, 0x38, 0xbe, 0x93, 0xa7, 0x20, 0x56, 0x43, 0x4e, + 0x9e, 0x4f, 0x2b, 0x43, 0x47, 0x41, 0xd5, 0x51, 0x84, 0x06, 0xe9, 0x4c, 0x7b, 0x5c, 0x8f, 0xd3, + 0x8d, 0x3f, 0x46, 0xea, 0x67, 0xf4, 0xe3, 0xcf, 0x22, 0x35, 0x22, 0x9f, 0x3c, 0x36, 0x1a, 0xdb, + 0x3f, 0x85, 0xeb, 0x01, 0x7e, 0xd5, 0x61, 0xf4, 0xb5, 0x27, 0x7b, 0xb6, 0x69, 0xa9, 0xe6, 0xd8, + 0xc0, 0x2e, 0xfa, 0x64, 0xef, 0xb1, 0x3a, 0x44, 0x10, 0x0d, 0xb6, 0x5c, 0xe7, 0x76, 0x25, 0x15, + 0x86, 0x6d, 0xea, 0x95, 0x89, 0xb4, 0x22, 0x5c, 0xc7, 0xa5, 0xa4, 0xaf, 0xaf, 0x84, 0x4e, 0x51, + 0x1a, 0xc3, 0xb9, 0xa6, 0x12, 0xf4, 0x3a, 0x6e, 0x60, 0x2d, 0x7b, 0xa4, 0x2b, 0x0d, 0x75, 0x37, + 0x3e, 0x67, 0xbb, 0x41, 0x0f, 0x02, 0xd0, 0x8b, 0x75, 0x5a, 0x6e, 0x15, 0xe3, 0xf3, 0xa5, 0xee, + 0x1f, 0x31, 0xbe, 0x8d, 0xd5, 0x9c, 0xaf, 0x3b, 0xa1, 0x0c, 0x05, 0x58, 0xdf, 0x3b, 0x9c, 0x6f, + 0xe3, 0x0f, 0x59, 0x5f, 0x9c, 0xf3, 0x6d, 0xfc, 0x45, 0xd6, 0xe7, 0x35, 0x2e, 0x11, 0x61, 0x7d, + 0x51, 0x3e, 0x83, 0x4b, 0xfa, 0x5c, 0x02, 0xcf, 0x4f, 0xdd, 0xc2, 0x12, 0x62, 0xa8, 0x49, 0x40, + 0xff, 0x6c, 0x66, 0x52, 0xb1, 0xfa, 0x5d, 0x4a, 0x30, 0xb7, 0xf4, 0x57, 0x31, 0x2a, 0x04, 0xc3, + 0x99, 0x3c, 0x3a, 0x90, 0xb6, 0x3f, 0xb0, 0x89, 0x17, 0x04, 0xb1, 0x60, 0xcc, 0x1f, 0x0c, 0xda, + 0x07, 0x63, 0xb6, 0xf1, 0x27, 0xd2, 0x4a, 0xd2, 0x3f, 0x1e, 0xb4, 0x8d, 0xc4, 0xff, 0xd0, 0xa0, + 0xf9, 0xad, 0xfb, 0xeb, 0xa3, 0x06, 0xf3, 0x8d, 0xb8, 0x2e, 0xf9, 0x60, 0xd8, 0xc2, 0xb9, 0x82, + 0xa9, 0x25, 0x6d, 0xc7, 0xab, 0xc1, 0x78, 0x8f, 0xc0, 0x15, 0xb6, 0x5a, 0x3f, 0x0c, 0x5b, 0x07, + 0xef, 0x8e, 0xbb, 0xb7, 0xe7, 0x36, 0xb6, 0x78, 0xc5, 0x16, 0xab, 0xa4, 0xb0, 0x58, 0xf6, 0x0b, + 0x04, 0x07, 0xa7, 0xbc, 0xb3, 0x32, 0x13, 0x07, 0x85, 0x8b, 0xa2, 0x01, 0xf2, 0xe8, 0xde, 0xe9, + 0xb0, 0x7e, 0x85, 0x3b, 0x6f, 0xe9, 0xf8, 0x0e, 0x7a, 0x7e, 0x9e, 0xb1, 0xc6, 0x25, 0x24, 0x1d, + 0xe4, 0x01, 0x3d, 0x9c, 0x39, 0x74, 0x34, 0xb9, 0x65, 0xf4, 0xfc, 0xb3, 0x83, 0xb5, 0xbb, 0xdd, + 0x8b, 0xeb, 0xb1, 0x78, 0x72, 0xd0, 0x33, 0xf1, 0xbc, 0xac, 0xf3, 0xce, 0x6d, 0x7f, 0xff, 0x16, + 0xcf, 0x0a, 0xde, 0xa5, 0xe7, 0x67, 0xb5, 0x5b, 0xcd, 0x47, 0xf8, 0x6a, 0x15, 0xdb, 0xc3, 0x6e, + 0x91, 0x1e, 0x16, 0xfc, 0x70, 0xde, 0xb9, 0x16, 0x8f, 0x9a, 0xb6, 0x53, 0x50, 0x4a, 0xf4, 0x74, + 0xf2, 0x6b, 0xe3, 0xea, 0x36, 0xbb, 0x0b, 0x79, 0x26, 0xcf, 0xe3, 0x51, 0xe5, 0xf1, 0xea, 0x16, + 0x13, 0x8f, 0x95, 0xfd, 0xfe, 0x93, 0x32, 0x6e, 0x36, 0xf7, 0x9c, 0x33, 0xf8, 0x59, 0xde, 0x6b, + 0x2a, 0xea, 0xe8, 0xf5, 0x00, 0x0b, 0xec, 0xca, 0x9d, 0xdb, 0xeb, 0xdd, 0xbb, 0x56, 0xff, 0x46, + 0x7f, 0xac, 0xca, 0x7b, 0x66, 0x73, 0xbc, 0x77, 0x76, 0x7e, 0x5f, 0x36, 0xaa, 0xc6, 0xb8, 0xa5, + 0x59, 0x53, 0xf7, 0xea, 0xbc, 0xf0, 0x54, 0x71, 0x65, 0xfb, 0xe6, 0x70, 0xb0, 0x37, 0x68, 0x17, + 0xcc, 0xcb, 0xb7, 0xa9, 0xae, 0x8e, 0xaf, 0x5f, 0xad, 0x6c, 0xa7, 0xa3, 0x1a, 0x77, 0x99, 0xf3, + 0xe1, 0xd3, 0xf0, 0xed, 0x15, 0x0c, 0x8a, 0xdd, 0xe9, 0xe4, 0xe1, 0xcd, 0xd8, 0x1d, 0xe7, 0xb5, + 0xde, 0x0b, 0x69, 0xef, 0x77, 0x1f, 0xa6, 0xb7, 0xc3, 0xfe, 0x49, 0x66, 0xda, 0x3e, 0x13, 0x5b, + 0x93, 0xe3, 0xee, 0xf4, 0xf5, 0xe1, 0x69, 0xff, 0x42, 0x29, 0x65, 0x3a, 0x76, 0x35, 0x23, 0x77, + 0xcb, 0xc3, 0xa3, 0x56, 0xf1, 0x7c, 0xac, 0x96, 0x4d, 0xfb, 0x6c, 0xd4, 0xbc, 0x5c, 0x79, 0x9e, + 0xf9, 0x0a, 0x3b, 0xf7, 0x65, 0x14, 0x2c, 0x8e, 0x06, 0x8b, 0xa2, 0x41, 0x8e, 0x25, 0x65, 0x3a, + 0xa6, 0x48, 0xdb, 0xe4, 0x75, 0x48, 0x1c, 0xf7, 0xd8, 0xc1, 0xa3, 0xa1, 0xb9, 0xed, 0x6b, 0xd2, + 0x05, 0xbd, 0xb5, 0xbf, 0x56, 0x15, 0x8f, 0x95, 0x8e, 0x2e, 0x0f, 0xb6, 0x74, 0xd3, 0x21, 0x09, + 0xfc, 0xf5, 0x67, 0xe5, 0x03, 0x7a, 0x3a, 0x32, 0x1c, 0x17, 0x2d, 0xac, 0x04, 0x1e, 0xc6, 0xfd, + 0x01, 0x0c, 0xea, 0x88, 0x41, 0x15, 0x9b, 0xfe, 0x5c, 0xb0, 0x05, 0xa3, 0x7b, 0x8d, 0xa9, 0xac, + 0x33, 0xb2, 0x69, 0xba, 0x09, 0x76, 0xf8, 0x7b, 0xdc, 0x3e, 0x70, 0x2c, 0x29, 0x80, 0x88, 0x1a, + 0xe5, 0x99, 0xa4, 0x92, 0xc4, 0x58, 0x73, 0xfb, 0xde, 0x2b, 0x84, 0x4f, 0xb7, 0x3c, 0x23, 0xcb, + 0xc8, 0x8a, 0x62, 0xa5, 0x50, 0x07, 0xd6, 0xd1, 0xde, 0x17, 0xf7, 0x81, 0x75, 0x60, 0x8e, 0xed, + 0x84, 0x3c, 0x4d, 0x34, 0x35, 0x5b, 0x31, 0x4d, 0xf3, 0x45, 0x23, 0x74, 0xc9, 0xdc, 0xed, 0x93, + 0x04, 0xcc, 0x7a, 0xef, 0xa4, 0xfd, 0xbe, 0xeb, 0x5a, 0x4e, 0x2d, 0x93, 0x19, 0xeb, 0x44, 0x4d, + 0x83, 0x9a, 0xa1, 0x98, 0x43, 0xdb, 0x21, 0x69, 0xf4, 0x8a, 0x5a, 0x19, 0x50, 0x52, 0x24, 0xbb, + 0x87, 0xf7, 0x03, 0xfc, 0x97, 0x0c, 0x66, 0xe5, 0x0b, 0x47, 0x0f, 0xa9, 0x4f, 0x28, 0xe6, 0x60, + 0x30, 0x34, 0x40, 0xeb, 0x61, 0x9c, 0x9c, 0x55, 0xb4, 0xb1, 0x34, 0x37, 0xd9, 0x8a, 0xe9, 0xba, + 0x89, 0x86, 0x9b, 0xf9, 0x3d, 0x78, 0x9a, 0x87, 0x52, 0x67, 0x69, 0xae, 0xbe, 0x18, 0x7f, 0x4c, + 0x36, 0x01, 0x96, 0xf1, 0x88, 0xf4, 0x60, 0xd4, 0x36, 0x3e, 0x45, 0x34, 0xeb, 0xc6, 0x9c, 0x11, + 0x8d, 0x1e, 0x1e, 0xf0, 0x8d, 0x38, 0x0f, 0xd3, 0x98, 0xdb, 0xcd, 0x3f, 0x8e, 0x80, 0x8b, 0x8a, + 0x07, 0x3c, 0x21, 0x28, 0xca, 0x84, 0x4f, 0x99, 0x47, 0x82, 0x69, 0xa5, 0x59, 0x91, 0xa9, 0x30, + 0xac, 0x6f, 0xfe, 0xd9, 0xff, 0x78, 0xaa, 0xbc, 0x6e, 0x2a, 0x9a, 0x25, 0x80, 0x29, 0xc9, 0x1c, + 0xc0, 0x82, 0xc5, 0xb8, 0xb2, 0xb3, 0x07, 0x6c, 0x48, 0x18, 0x3b, 0xec, 0xa4, 0x7a, 0x81, 0x1d, + 0x02, 0x2f, 0xb8, 0xec, 0x24, 0x75, 0x01, 0x0a, 0x35, 0xbe, 0x64, 0x05, 0xc3, 0x3c, 0x27, 0x63, + 0x30, 0x2a, 0x1d, 0xfc, 0xa1, 0x39, 0x17, 0x06, 0xfb, 0x46, 0xe2, 0x67, 0x4f, 0xb4, 0x83, 0xec, + 0xf1, 0xba, 0x27, 0x8f, 0xf1, 0x49, 0x51, 0xdc, 0x06, 0x3d, 0x81, 0x5f, 0x83, 0x4a, 0x1a, 0x3f, + 0xe8, 0x96, 0xa2, 0x9f, 0x82, 0x85, 0x8b, 0xf2, 0x44, 0x6d, 0xfc, 0xf8, 0x02, 0x3f, 0xfc, 0x30, + 0xc5, 0xf6, 0xa4, 0x21, 0x06, 0x3f, 0x40, 0x5a, 0xc0, 0x2f, 0x05, 0x7e, 0xe2, 0xd7, 0xd0, 0xc6, + 0x4d, 0x9f, 0xcc, 0xbc, 0x6c, 0x6c, 0x65, 0x05, 0x40, 0x85, 0x7b, 0x4b, 0xb5, 0x62, 0x5a, 0xa4, + 0xd7, 0x32, 0x87, 0x86, 0x0b, 0x8f, 0x40, 0x74, 0xc1, 0x23, 0x54, 0x01, 0x99, 0x8c, 0xa1, 0x03, + 0xf5, 0x88, 0x02, 0xe8, 0xcb, 0xd0, 0x72, 0x4c, 0x67, 0x5f, 0xae, 0xdd, 0x28, 0x0b, 0x6a, 0x70, + 0x2e, 0xbd, 0xd0, 0x9d, 0x20, 0x23, 0x6e, 0xfc, 0x80, 0xb6, 0x21, 0x5f, 0x68, 0xcc, 0xe6, 0x02, + 0xf1, 0x1f, 0x74, 0xff, 0xc1, 0x3a, 0x6f, 0x70, 0x9c, 0x60, 0x1d, 0x41, 0x79, 0xeb, 0x7c, 0x38, + 0xc0, 0xaf, 0x81, 0xdb, 0xc8, 0xe2, 0xe7, 0x69, 0x87, 0xfd, 0x3a, 0x85, 0x96, 0x61, 0x2d, 0xf0, + 0x85, 0x82, 0x01, 0x4b, 0x29, 0xdd, 0x5e, 0x63, 0x46, 0x2f, 0xbf, 0xa8, 0xcd, 0x90, 0xbd, 0xd7, + 0x80, 0xe7, 0xdb, 0x2f, 0x9c, 0x20, 0xf7, 0x6a, 0xb3, 0xa1, 0xad, 0xd7, 0x38, 0x6e, 0x2e, 0x48, + 0xba, 0xd5, 0x97, 0xe0, 0x75, 0xaf, 0x96, 0x2e, 0x09, 0xae, 0x24, 0xd7, 0xd2, 0x15, 0x28, 0x48, + 0x57, 0x28, 0x30, 0x11, 0xb2, 0xe0, 0xcf, 0x81, 0x55, 0x63, 0xc1, 0xf3, 0x4e, 0x6d, 0xc6, 0xfc, + 0xfc, 0xb5, 0x2f, 0xa2, 0x60, 0xf7, 0x64, 0xbc, 0xe4, 0xe0, 0x15, 0x97, 0x41, 0xf1, 0x77, 0x9f, + 0x4c, 0xe0, 0x37, 0x34, 0x9b, 0x5a, 0x2a, 0x98, 0x62, 0x29, 0x03, 0x50, 0xcb, 0x31, 0x93, 0xa5, + 0xa9, 0x98, 0x00, 0x28, 0xd3, 0x89, 0x81, 0xb9, 0xe6, 0x02, 0xe8, 0x30, 0x8d, 0x1f, 0x30, 0x30, + 0xd9, 0xac, 0x90, 0x2b, 0x08, 0x05, 0x21, 0x98, 0xc2, 0x52, 0x30, 0xcf, 0xd3, 0x3d, 0xe0, 0x11, + 0x43, 0x39, 0xad, 0x99, 0x99, 0xc9, 0x40, 0x72, 0xd2, 0x20, 0xa8, 0xb8, 0x9f, 0x02, 0x94, 0xc9, + 0x09, 0xd9, 0xb2, 0x90, 0x5d, 0x14, 0xa1, 0x72, 0xcc, 0x49, 0xd3, 0xde, 0x28, 0x26, 0x5e, 0x67, + 0x90, 0x86, 0x56, 0x67, 0x0a, 0xd5, 0x2c, 0xfe, 0x65, 0x73, 0xf9, 0xf4, 0xb3, 0x45, 0x8b, 0xe6, + 0xc4, 0x5c, 0x4e, 0xc8, 0x63, 0xe9, 0xdc, 0x07, 0x15, 0x12, 0xc0, 0x24, 0xb1, 0xfd, 0x2a, 0xa1, + 0x5c, 0x1e, 0xca, 0x55, 0xff, 0xbc, 0x58, 0x01, 0x8a, 0xe4, 0xb3, 0x7f, 0x54, 0xee, 0x67, 0x3d, + 0xb8, 0x2d, 0x03, 0x4c, 0x34, 0x55, 0x27, 0x77, 0x41, 0xd4, 0x56, 0x8b, 0xda, 0x6c, 0x49, 0x7e, + 0xf6, 0x45, 0xf5, 0xf6, 0x40, 0x6f, 0x6e, 0xe2, 0x05, 0x15, 0x30, 0x8d, 0xf0, 0x30, 0x0c, 0x9f, + 0x3a, 0xb7, 0xf3, 0x24, 0xbf, 0xb9, 0x19, 0x91, 0x37, 0xf3, 0x00, 0xa6, 0x03, 0x53, 0x30, 0x49, + 0x04, 0x97, 0x9f, 0x01, 0xa7, 0xf4, 0xe8, 0xd0, 0xbb, 0xe3, 0x21, 0x4d, 0x8d, 0x2a, 0xbc, 0x79, + 0xe1, 0x12, 0xf4, 0x56, 0x62, 0x83, 0x41, 0x88, 0x19, 0x17, 0x65, 0x7b, 0x47, 0x6a, 0x92, 0xf0, + 0x33, 0x9b, 0xb8, 0x43, 0xdb, 0x48, 0xa8, 0xa1, 0x2b, 0x3b, 0x76, 0xa7, 0xf4, 0x55, 0x28, 0xeb, + 0xfe, 0x6e, 0xeb, 0x7c, 0x4d, 0x66, 0x67, 0x77, 0xda, 0x42, 0xb6, 0x42, 0x6f, 0xf8, 0x08, 0x17, + 0xd2, 0x9c, 0xfd, 0x81, 0x85, 0xb5, 0x06, 0xc5, 0xc4, 0x46, 0xa3, 0x71, 0x21, 0x3f, 0xc3, 0xe4, + 0xc4, 0x43, 0xc6, 0x1c, 0x78, 0x93, 0x06, 0x12, 0xea, 0xb9, 0xfd, 0x70, 0x21, 0xc8, 0x10, 0x2a, + 0x42, 0x36, 0x37, 0x39, 0x93, 0x16, 0xe1, 0x1a, 0x0d, 0x54, 0xa4, 0xcd, 0x2e, 0xa6, 0x7d, 0x69, + 0xda, 0xb6, 0x34, 0x4d, 0x6b, 0x0e, 0xfd, 0x8e, 0x54, 0x8b, 0x17, 0x59, 0x4c, 0x5b, 0xdd, 0x1e, + 0x20, 0x56, 0x61, 0xc1, 0x14, 0x1c, 0x3d, 0x59, 0x11, 0xaf, 0x90, 0x80, 0x69, 0x94, 0xa6, 0xb3, + 0x28, 0x8d, 0x93, 0x88, 0xdd, 0x91, 0x41, 0x42, 0xa9, 0x74, 0x62, 0xa4, 0xe5, 0x5e, 0x1d, 0xaa, + 0xa0, 0xa8, 0xe5, 0xe8, 0xae, 0x5a, 0x4e, 0x20, 0xfe, 0x7d, 0x1a, 0x98, 0x17, 0x27, 0x11, 0xcb, + 0xea, 0xd4, 0x11, 0x89, 0xde, 0x32, 0x3e, 0xef, 0x61, 0xdc, 0x33, 0x8c, 0x1b, 0x6e, 0x9a, 0x4e, + 0xa7, 0x1d, 0x8e, 0x06, 0x87, 0x72, 0x35, 0x8e, 0x7a, 0x07, 0xeb, 0x5d, 0x60, 0xb2, 0x08, 0xcb, + 0x5c, 0xc0, 0x62, 0xb3, 0x4c, 0x70, 0x1a, 0x2a, 0x14, 0x21, 0xf6, 0xb4, 0x43, 0x19, 0x98, 0x69, + 0x37, 0x75, 0x68, 0xc1, 0xe2, 0x4c, 0x27, 0x8e, 0x17, 0x8c, 0x86, 0x58, 0x37, 0xbe, 0x3b, 0x1e, + 0xda, 0xea, 0x46, 0x2a, 0xc5, 0x3b, 0x3f, 0x8c, 0x9f, 0xb1, 0x9a, 0xcd, 0x78, 0x9d, 0x6b, 0x20, + 0x7b, 0x50, 0x69, 0x93, 0xfe, 0x22, 0xe4, 0xe4, 0x12, 0x68, 0x80, 0xdb, 0x57, 0x39, 0x9e, 0xff, + 0xa0, 0xa4, 0xe0, 0xe3, 0x57, 0x96, 0x2d, 0x4e, 0x80, 0xb7, 0xa1, 0x33, 0x44, 0x21, 0x8f, 0x77, + 0xb0, 0x07, 0x8d, 0xb0, 0x83, 0x7e, 0x07, 0x99, 0x01, 0xb4, 0x10, 0x07, 0x15, 0x7a, 0x3d, 0x70, + 0xe9, 0x6b, 0x74, 0x1c, 0xd4, 0xb8, 0x22, 0x7c, 0x2e, 0xde, 0xb9, 0x5b, 0x32, 0x27, 0x2c, 0x86, + 0x9a, 0xf2, 0x17, 0xc4, 0x2d, 0xe4, 0xd0, 0xde, 0x60, 0x1a, 0xa2, 0x84, 0x92, 0xf4, 0x0e, 0xf4, + 0x00, 0xf8, 0x0f, 0x4e, 0x9b, 0x23, 0x97, 0x0c, 0x92, 0x1c, 0x2a, 0x21, 0xb7, 0x1a, 0xd0, 0x13, + 0x27, 0x1c, 0x77, 0x2e, 0xce, 0xa1, 0x57, 0x78, 0xa0, 0x8a, 0xd6, 0x9d, 0x26, 0x01, 0x16, 0x1f, + 0xa2, 0xbb, 0x45, 0xec, 0xce, 0x2c, 0x4a, 0x66, 0x8d, 0x75, 0xf4, 0xb7, 0xc3, 0x98, 0x78, 0xcd, + 0x7b, 0x2f, 0x2c, 0x28, 0x37, 0x02, 0xd5, 0xf7, 0x16, 0xcd, 0x62, 0xf4, 0xd2, 0xf8, 0x12, 0x27, + 0xa0, 0x55, 0x00, 0xbc, 0x39, 0x00, 0x33, 0x8a, 0xec, 0x24, 0x23, 0x34, 0xcd, 0xe1, 0xa9, 0xb5, + 0x21, 0x04, 0x29, 0x5b, 0x5d, 0x4c, 0xa4, 0x41, 0x07, 0xa1, 0xc4, 0x1c, 0x26, 0xaa, 0xaa, 0x1a, + 0x49, 0xcc, 0x63, 0xa2, 0x2c, 0xcb, 0x91, 0xc4, 0x02, 0x26, 0x4a, 0x92, 0x14, 0x49, 0x2c, 0x62, + 0x62, 0xb5, 0x5a, 0x8d, 0x24, 0x96, 0x56, 0x25, 0x56, 0x30, 0xb1, 0x52, 0xa9, 0x44, 0x12, 0x65, + 0x4c, 0x2c, 0x14, 0x0a, 0x91, 0x44, 0x05, 0x13, 0xf3, 0xf9, 0x7c, 0x24, 0x91, 0x60, 0x62, 0x36, + 0x9b, 0x8d, 0x24, 0xaa, 0x98, 0x88, 0x57, 0x43, 0x85, 0x13, 0x6d, 0x4c, 0x54, 0x72, 0xd1, 0x9c, + 0x3d, 0x9a, 0x53, 0x89, 0x26, 0xea, 0x34, 0xb1, 0xa4, 0x44, 0x12, 0x4d, 0x48, 0xa4, 0xa7, 0xe8, + 0xe6, 0xc4, 0x82, 0x90, 0x58, 0x7c, 0xe0, 0x91, 0xbd, 0x91, 0x8c, 0x8e, 0xec, 0xe1, 0x33, 0x1f, + 0x4b, 0xee, 0x7b, 0xe9, 0xa5, 0x48, 0xba, 0x2b, 0xaf, 0x01, 0x1c, 0x3a, 0xa1, 0x37, 0x56, 0x40, + 0xf2, 0x4b, 0x64, 0xcb, 0xa2, 0x90, 0x58, 0x7c, 0xac, 0x2f, 0xd1, 0xff, 0x54, 0x1d, 0x94, 0xab, + 0x51, 0xb3, 0xd3, 0x9f, 0xc6, 0x5d, 0x4d, 0x77, 0xd1, 0x4b, 0xa1, 0x19, 0xb8, 0x71, 0x23, 0x29, + 0xa6, 0x2b, 0x90, 0xaf, 0x16, 0x27, 0xa8, 0x38, 0xfa, 0x29, 0x41, 0xd1, 0x40, 0x99, 0x38, 0x41, + 0xc5, 0xc7, 0x24, 0xbf, 0x6a, 0x48, 0x0b, 0xab, 0x06, 0x9f, 0x12, 0x54, 0xb1, 0x58, 0x5c, 0x26, + 0xa8, 0x52, 0xa9, 0xf4, 0x49, 0x82, 0x8a, 0x53, 0x2e, 0x25, 0x28, 0x45, 0x51, 0x96, 0x09, 0x2a, + 0x3e, 0x45, 0xd4, 0x55, 0xb3, 0x81, 0x12, 0x14, 0x29, 0xe4, 0x96, 0x09, 0xaa, 0x40, 0x72, 0xcb, + 0x04, 0x55, 0xa8, 0x48, 0xab, 0x09, 0x2a, 0x7e, 0x00, 0xf4, 0x0a, 0x6a, 0x02, 0x64, 0xae, 0xa4, + 0x26, 0x48, 0x2f, 0xae, 0xa1, 0xa6, 0x35, 0x27, 0x47, 0xaf, 0x25, 0xa5, 0xb5, 0x67, 0x48, 0xaf, + 0x23, 0xa5, 0x35, 0xa7, 0x49, 0xbf, 0x4b, 0x47, 0x43, 0x03, 0x38, 0x2c, 0x17, 0xe2, 0x53, 0x68, + 0x1a, 0xed, 0xf6, 0x90, 0x4f, 0xb1, 0xbb, 0xa0, 0x56, 0xdc, 0x24, 0x46, 0xd5, 0x12, 0x0c, 0x24, + 0xe6, 0x05, 0x73, 0xed, 0xc5, 0x56, 0x50, 0x1b, 0x48, 0x34, 0x93, 0xde, 0x5a, 0x45, 0x04, 0xf3, + 0xdd, 0x7b, 0xaa, 0x50, 0x0c, 0x3b, 0x0d, 0x0b, 0xef, 0x5d, 0x6a, 0x63, 0x9c, 0x75, 0x32, 0x2e, + 0x1e, 0xe4, 0x1e, 0x5f, 0x07, 0x93, 0x44, 0x3a, 0x4f, 0x3a, 0xfc, 0xe6, 0x26, 0xc8, 0xba, 0x74, + 0x89, 0x17, 0x7c, 0xcd, 0xca, 0x0b, 0x8c, 0x6e, 0x38, 0x41, 0xca, 0x22, 0x76, 0xe7, 0x08, 0x95, + 0xd8, 0xc6, 0x2f, 0xbc, 0xe7, 0xe9, 0x1f, 0x33, 0xda, 0x98, 0x39, 0xff, 0x0b, 0x5a, 0x6d, 0x0c, + 0x75, 0x7d, 0x1e, 0xeb, 0x75, 0xe7, 0x45, 0x33, 0x5a, 0x9d, 0x0e, 0x76, 0x5d, 0xeb, 0x26, 0xbf, + 0x30, 0xb5, 0x8c, 0x9f, 0xc5, 0xee, 0xef, 0xfa, 0xe8, 0x42, 0xb5, 0xf5, 0x18, 0xc1, 0x8b, 0xed, + 0x28, 0x4a, 0xc0, 0x18, 0x44, 0x8c, 0xb0, 0x3b, 0xee, 0xb0, 0xc1, 0x4e, 0x9f, 0x10, 0x14, 0x98, + 0xe9, 0x85, 0x87, 0x32, 0xa3, 0x38, 0x0e, 0xa6, 0x50, 0x4b, 0x3c, 0x09, 0x22, 0x71, 0x87, 0xea, + 0xba, 0xa0, 0xea, 0x72, 0x29, 0x6a, 0xf7, 0xd5, 0xb8, 0x34, 0xc7, 0xa7, 0xb8, 0x8c, 0x03, 0xad, + 0x4e, 0x7b, 0x99, 0x69, 0xfc, 0x7b, 0x83, 0x93, 0x74, 0x9d, 0xde, 0x0c, 0x16, 0xba, 0x25, 0xcb, + 0xe4, 0xe7, 0x73, 0xc9, 0x99, 0x1a, 0x4a, 0x22, 0xe8, 0xb2, 0x7f, 0x3f, 0xd7, 0x8c, 0x03, 0x5a, + 0x00, 0x43, 0xa6, 0xd1, 0x88, 0x87, 0x12, 0x5b, 0xb6, 0xe9, 0x9a, 0xa0, 0x5f, 0x01, 0xc6, 0xa9, + 0xd5, 0x28, 0x0a, 0x49, 0x5a, 0x75, 0x23, 0x22, 0xa1, 0x7b, 0xbe, 0x84, 0x86, 0xd4, 0x23, 0x0b, + 0x14, 0x8e, 0xdf, 0xbf, 0xbd, 0x6c, 0x50, 0x1e, 0x14, 0xcf, 0x24, 0xd7, 0x06, 0xf8, 0x89, 0x33, + 0x30, 0x21, 0xd2, 0x89, 0x4b, 0x1d, 0x0f, 0x2f, 0x4a, 0xd0, 0xa5, 0x31, 0x16, 0xbe, 0x7e, 0x74, + 0xf9, 0x85, 0x5b, 0x27, 0xf3, 0x19, 0x44, 0x81, 0x42, 0xe3, 0x79, 0x5f, 0x4d, 0x5c, 0x5d, 0xfb, + 0x42, 0x3f, 0x00, 0x52, 0xe9, 0x26, 0xe9, 0x95, 0x64, 0x60, 0xac, 0x0d, 0x88, 0xdd, 0x23, 0x7b, + 0x84, 0x58, 0xf8, 0x8b, 0x69, 0x0e, 0x94, 0xce, 0x70, 0x68, 0x79, 0xb0, 0x24, 0x5f, 0xc8, 0x7d, + 0x07, 0x74, 0x8e, 0x85, 0xc4, 0x16, 0x38, 0x2e, 0xa2, 0x1f, 0xf4, 0xd2, 0x40, 0x3c, 0xbf, 0x7f, + 0x07, 0x96, 0x06, 0xd8, 0x6a, 0xce, 0x70, 0x90, 0xb6, 0xfa, 0x80, 0x1b, 0x27, 0x93, 0xad, 0xe6, + 0xc4, 0x4c, 0x56, 0xac, 0x88, 0x31, 0xad, 0x82, 0x96, 0xf2, 0x69, 0x27, 0x9e, 0x5e, 0xef, 0x12, + 0x57, 0xe9, 0x27, 0xdf, 0x1b, 0xd5, 0x3e, 0x3a, 0xc3, 0xa5, 0xa9, 0x93, 0x7e, 0x06, 0x43, 0x83, + 0x13, 0x66, 0x03, 0xe2, 0xf6, 0x4d, 0xb5, 0xc6, 0x41, 0x77, 0xb9, 0x39, 0x8f, 0xd0, 0x8c, 0x24, + 0xcc, 0x1c, 0x42, 0xdf, 0x27, 0xf9, 0x45, 0xca, 0x2c, 0xae, 0x90, 0x03, 0x1e, 0xd0, 0x2a, 0x04, + 0xcd, 0x9c, 0x4f, 0xc3, 0xb8, 0x42, 0xbd, 0xf4, 0x1a, 0x3e, 0xd3, 0x70, 0x4c, 0x98, 0x29, 0xba, + 0xd9, 0x03, 0xe2, 0x0d, 0x57, 0x96, 0x50, 0x4d, 0xe2, 0xd0, 0x2d, 0x31, 0x5e, 0xa0, 0x6f, 0x42, + 0x42, 0x48, 0x09, 0xd0, 0xf7, 0x83, 0x7c, 0x09, 0xcf, 0xe7, 0xeb, 0xd0, 0x79, 0x43, 0x54, 0x68, + 0x33, 0x40, 0xef, 0x6a, 0x06, 0x50, 0xde, 0x94, 0xdd, 0x18, 0xe7, 0x6b, 0xd7, 0xa4, 0xe1, 0x9b, + 0x52, 0x30, 0x33, 0xc4, 0xba, 0xf9, 0x1d, 0x80, 0xf8, 0xba, 0xad, 0x09, 0xba, 0xad, 0x37, 0xf7, + 0xc1, 0x22, 0x81, 0x17, 0x3f, 0xcc, 0x9f, 0x30, 0x85, 0x76, 0xe8, 0xa8, 0xb6, 0x61, 0x86, 0x3e, + 0x12, 0xe0, 0x62, 0x7c, 0x2d, 0x78, 0x03, 0x6a, 0xb7, 0x0f, 0x2d, 0xe9, 0x08, 0x5e, 0x72, 0xf6, + 0xa7, 0xff, 0x94, 0xfb, 0x09, 0x84, 0xb4, 0xc8, 0x61, 0xe0, 0xd5, 0x85, 0x40, 0x4b, 0xf4, 0x87, + 0x8e, 0x30, 0xe9, 0x13, 0x9f, 0xf2, 0xb2, 0xe7, 0x21, 0x3b, 0xd9, 0x6e, 0x80, 0xb5, 0x47, 0xbe, + 0x23, 0x8d, 0xbb, 0x7e, 0x13, 0x0a, 0x3f, 0xf9, 0x39, 0xc7, 0x7d, 0x01, 0x3b, 0x67, 0x73, 0xd3, + 0x63, 0x87, 0x78, 0x2b, 0xdd, 0x1c, 0x54, 0x3b, 0xe2, 0xf3, 0xc7, 0xa5, 0xb1, 0xae, 0x87, 0x59, + 0x08, 0x87, 0xb3, 0xb2, 0x05, 0x93, 0x92, 0x0f, 0x99, 0x19, 0x94, 0x09, 0x63, 0xf0, 0x02, 0x0c, + 0x04, 0x4e, 0x4a, 0x9b, 0x18, 0x60, 0x6a, 0x88, 0x75, 0xe7, 0xbb, 0xe9, 0x63, 0xc4, 0x01, 0x8c, + 0x98, 0x3f, 0x9c, 0x9f, 0x4b, 0x7c, 0x8c, 0x7a, 0x78, 0x68, 0x00, 0x58, 0x12, 0xd4, 0x0a, 0xfc, + 0x9f, 0x07, 0x6b, 0x22, 0x1c, 0xbc, 0xf0, 0xe9, 0xfb, 0x0b, 0x99, 0x83, 0x63, 0xfd, 0x24, 0xba, + 0x04, 0xdd, 0x1d, 0x27, 0xa4, 0xa4, 0x7a, 0x5e, 0x7e, 0x87, 0x8d, 0x68, 0x38, 0x05, 0x3d, 0x4c, + 0x49, 0x9b, 0xa8, 0xb6, 0x34, 0x86, 0xa4, 0x4b, 0x9b, 0x8c, 0x58, 0x89, 0xf6, 0xc3, 0x22, 0x6f, + 0xfb, 0x81, 0xe6, 0xf2, 0x40, 0xb1, 0x68, 0x02, 0xf6, 0x36, 0x6a, 0x43, 0xd3, 0xff, 0x04, 0x75, + 0x85, 0x80, 0x58, 0x6c, 0xac, 0xf2, 0xef, 0x58, 0x5c, 0x6d, 0xba, 0x0b, 0x5f, 0xb2, 0x81, 0xf1, + 0xc0, 0x90, 0x3c, 0x0a, 0xe4, 0x9c, 0x2f, 0x1c, 0x44, 0xca, 0x3c, 0x8c, 0x55, 0xf6, 0xd7, 0xca, + 0xdb, 0x10, 0x17, 0x03, 0xa7, 0x23, 0xe9, 0x1b, 0xfc, 0xaa, 0x6b, 0x2d, 0xe9, 0x0d, 0x05, 0xe8, + 0xd1, 0xc3, 0xfb, 0x19, 0xa9, 0x5b, 0x70, 0x97, 0xae, 0xaf, 0xf2, 0xc2, 0xda, 0xdc, 0x74, 0x54, + 0x22, 0x79, 0x43, 0x4e, 0x84, 0xbe, 0x39, 0xbe, 0xc1, 0xc5, 0x0c, 0x74, 0x10, 0x34, 0xa0, 0x53, + 0x33, 0x20, 0xc0, 0x24, 0xeb, 0x91, 0xb7, 0xfa, 0xc1, 0xaf, 0xa3, 0x0c, 0x7f, 0x5f, 0x9b, 0x0d, + 0xe2, 0xbe, 0x1e, 0xa2, 0x37, 0xb6, 0x38, 0x42, 0xa5, 0x0e, 0x9e, 0xeb, 0x71, 0x78, 0x73, 0x76, + 0x4a, 0x85, 0x8f, 0xe2, 0xbb, 0x0a, 0x1a, 0xee, 0x0e, 0x47, 0x4f, 0x98, 0x05, 0xfb, 0x07, 0x1b, + 0x00, 0xb6, 0x19, 0x2e, 0x57, 0xf9, 0x17, 0x2f, 0x7a, 0x6e, 0x43, 0x90, 0xf4, 0x5e, 0xcd, 0xc1, + 0x39, 0xb3, 0x0d, 0xcf, 0x7e, 0xf4, 0x72, 0x34, 0xc2, 0xb7, 0x35, 0xe2, 0x28, 0x7b, 0x75, 0x60, + 0xff, 0x41, 0xd4, 0x0d, 0xcc, 0x11, 0x88, 0x49, 0x5a, 0x01, 0x3f, 0x17, 0x72, 0x55, 0x11, 0x28, + 0x16, 0x7a, 0x17, 0xe6, 0x43, 0x71, 0x54, 0xec, 0x63, 0xab, 0x18, 0x3e, 0xf8, 0xd9, 0xd8, 0xd9, + 0xdc, 0x1c, 0x3b, 0xa1, 0x2b, 0x27, 0x81, 0xdf, 0xde, 0x13, 0xb9, 0x03, 0xe6, 0x27, 0x71, 0xd3, + 0x17, 0x97, 0xfb, 0xe7, 0x80, 0x2a, 0xc8, 0xa0, 0xa0, 0x3b, 0x16, 0xe8, 0x60, 0xec, 0x50, 0x19, + 0x1f, 0x38, 0xef, 0xd2, 0x63, 0x67, 0x7b, 0x2b, 0xbb, 0xb9, 0x19, 0x6a, 0x25, 0x63, 0xfe, 0x42, + 0x11, 0x9a, 0x02, 0xe4, 0x13, 0xe0, 0x9e, 0x6b, 0x01, 0xae, 0x89, 0x67, 0xf5, 0x99, 0x09, 0x6a, + 0x13, 0x26, 0xba, 0x12, 0xc8, 0x30, 0xf5, 0x0b, 0x27, 0x7c, 0x11, 0xc3, 0x36, 0x1d, 0x62, 0x2a, + 0xd2, 0xcc, 0x30, 0xce, 0x43, 0x38, 0x5e, 0x9d, 0x0c, 0xbd, 0xa1, 0x2b, 0x8f, 0x49, 0x6f, 0x00, + 0x40, 0xf4, 0x84, 0x7d, 0x3d, 0xc4, 0xbd, 0x1e, 0x1a, 0x88, 0xdd, 0x8e, 0x6b, 0xa3, 0x52, 0xc2, + 0x84, 0x09, 0x95, 0x5e, 0x47, 0xa0, 0x4f, 0x10, 0xd4, 0xbe, 0xce, 0x24, 0xb7, 0x9f, 0xee, 0xea, + 0x26, 0xd0, 0xaa, 0x9b, 0xa9, 0x94, 0x0a, 0x88, 0x56, 0x27, 0x9c, 0x9a, 0x74, 0xb7, 0x68, 0xf2, + 0xbf, 0x4c, 0x3e, 0x93, 0x2f, 0xe1, 0x6b, 0x63, 0xf5, 0xeb, 0x2d, 0x7c, 0xfb, 0x2f, 0x87, 0xcf, + 0x94, 0x44, 0xe4, 0xa2, 0xe6, 0x8e, 0x99, 0xe2, 0x12, 0x5c, 0x2a, 0x99, 0x6d, 0xa0, 0xcb, 0x00, + 0xd8, 0x3e, 0x87, 0xbe, 0xce, 0xa9, 0x83, 0xe2, 0x49, 0x48, 0x70, 0x78, 0x42, 0x83, 0xe7, 0x1a, + 0xd2, 0x53, 0x0d, 0xe7, 0xf7, 0x6f, 0x73, 0xc7, 0x09, 0x0a, 0x38, 0x20, 0xd6, 0xcc, 0x21, 0x52, + 0x14, 0x7e, 0x41, 0x11, 0xc8, 0x2d, 0x7c, 0x31, 0x01, 0xfb, 0xa8, 0x4a, 0xa4, 0x1a, 0x08, 0x00, + 0x86, 0x7f, 0xbb, 0x58, 0xdd, 0xdc, 0xc4, 0x64, 0x4c, 0x33, 0x52, 0x34, 0xfc, 0x01, 0xd3, 0xbf, + 0x63, 0x53, 0x36, 0x37, 0xd9, 0xfb, 0x50, 0x7e, 0x2f, 0x1d, 0x53, 0xdc, 0xad, 0x92, 0xf8, 0x2f, + 0x2c, 0xe2, 0x10, 0x34, 0x16, 0xf4, 0x90, 0xe3, 0x0a, 0x06, 0xdb, 0x36, 0xc7, 0x38, 0x85, 0x00, + 0x3f, 0x80, 0x51, 0xcf, 0x83, 0xf5, 0xeb, 0xbb, 0x6b, 0x6f, 0x7f, 0x77, 0x55, 0xdf, 0xf7, 0x4e, + 0x4f, 0xd7, 0xe7, 0xb6, 0xff, 0x31, 0x23, 0xf3, 0xef, 0x19, 0x57, 0x0d, 0xbf, 0xa2, 0x67, 0xe4, + 0xe3, 0x2b, 0x77, 0x0e, 0x4a, 0xa3, 0xf7, 0x3a, 0x03, 0xc5, 0x7f, 0x2d, 0xaa, 0xb1, 0x3c, 0x37, + 0x9b, 0x37, 0x2a, 0x5e, 0x6c, 0x15, 0xf4, 0x9f, 0xf8, 0x68, 0xa1, 0xbe, 0xe7, 0xcd, 0x4d, 0xfa, + 0xf5, 0x83, 0xfc, 0x5c, 0x3c, 0xa5, 0x0d, 0x2a, 0x6c, 0x16, 0x3f, 0xa1, 0x6b, 0x61, 0xc7, 0xdb, + 0xa5, 0x2e, 0x4d, 0x71, 0x3d, 0x21, 0xe4, 0x7d, 0x0b, 0xf2, 0x5a, 0xde, 0xbb, 0x10, 0x34, 0x3f, + 0x29, 0x6d, 0x39, 0xa1, 0xe6, 0x49, 0x96, 0x76, 0x27, 0xe9, 0xbe, 0x2e, 0x4b, 0x33, 0xff, 0xfe, + 0xfd, 0xc5, 0x2f, 0xc4, 0x33, 0xb8, 0x30, 0x86, 0xac, 0xf9, 0x9e, 0x33, 0x10, 0x7a, 0xaf, 0xf5, + 0x8c, 0x24, 0x7a, 0xc7, 0xfd, 0x8c, 0x7e, 0x6f, 0xdc, 0x34, 0x68, 0x87, 0x3b, 0xf4, 0xb3, 0x96, + 0x54, 0x09, 0xde, 0x05, 0x0b, 0x69, 0x86, 0x10, 0x3c, 0x5a, 0x8b, 0xc7, 0x57, 0x3d, 0xee, 0xa2, + 0x71, 0xc3, 0x0e, 0x9a, 0x57, 0xdd, 0xc7, 0xdd, 0x87, 0x98, 0x7a, 0xd5, 0x77, 0x42, 0xcf, 0xe8, + 0x3a, 0x5f, 0xcc, 0x3d, 0x6b, 0x97, 0x5e, 0x78, 0xcc, 0x94, 0x0c, 0x3a, 0xc1, 0x64, 0x05, 0xf5, + 0x6b, 0xe2, 0x9d, 0x95, 0x00, 0x4c, 0x80, 0xaa, 0x92, 0x1d, 0xff, 0x44, 0x25, 0x7a, 0x0d, 0x2e, + 0x88, 0xcf, 0x2a, 0xfd, 0x87, 0x22, 0x87, 0x4c, 0x88, 0xd2, 0x32, 0x07, 0x03, 0x90, 0x2a, 0xc8, + 0x62, 0xad, 0x29, 0x17, 0x63, 0x04, 0x96, 0x46, 0x54, 0x64, 0x02, 0x78, 0x34, 0x9a, 0x6c, 0x4a, + 0x36, 0x70, 0x80, 0x98, 0xd1, 0xe0, 0x0b, 0x36, 0x42, 0xd9, 0x0d, 0xc5, 0x36, 0xa8, 0x9e, 0xb8, + 0x94, 0xd0, 0xa0, 0x82, 0x96, 0x3e, 0x6f, 0x8b, 0x7c, 0xb8, 0xab, 0x8d, 0x90, 0x1a, 0xfa, 0x8e, + 0x1c, 0x06, 0x55, 0x5a, 0xb0, 0x4c, 0x7a, 0x37, 0x0f, 0xf1, 0xab, 0xe1, 0x83, 0x75, 0x09, 0xf8, + 0x16, 0x46, 0xa6, 0xa6, 0x26, 0x80, 0xdb, 0xd5, 0x93, 0xe4, 0xf7, 0x6f, 0x48, 0xf8, 0xd2, 0xf0, + 0xde, 0xa2, 0xd6, 0x17, 0xce, 0xf8, 0x9e, 0xc2, 0x49, 0xf5, 0x4d, 0x8b, 0xc1, 0xff, 0x40, 0xdd, + 0x4c, 0x82, 0x3c, 0x7d, 0xf9, 0xfd, 0x3b, 0xce, 0x9c, 0x85, 0x40, 0x0d, 0x0d, 0xe9, 0xa1, 0x4b, + 0xbc, 0xd1, 0x5b, 0x8c, 0x21, 0xcb, 0x7d, 0x0a, 0x34, 0xd3, 0xc5, 0x2d, 0xbf, 0x40, 0x1c, 0x61, + 0x69, 0xf8, 0x05, 0xf5, 0x9b, 0xa8, 0xa8, 0xe0, 0x63, 0x0a, 0x27, 0x89, 0xf0, 0x76, 0x02, 0xa3, + 0x8c, 0x79, 0x62, 0x83, 0xe5, 0x2b, 0x34, 0xfe, 0x68, 0x7d, 0x88, 0x17, 0xec, 0x57, 0xc6, 0x5f, + 0x57, 0xfb, 0x4f, 0x21, 0x86, 0xad, 0x49, 0x79, 0x73, 0x10, 0x54, 0x06, 0x5b, 0xc3, 0x26, 0x86, + 0x06, 0xdf, 0x6f, 0xf6, 0xe7, 0x30, 0xb5, 0x0a, 0x35, 0x84, 0x2a, 0x5a, 0x11, 0x64, 0x80, 0xae, + 0xf6, 0x67, 0x68, 0x20, 0x5e, 0x80, 0xe3, 0x7f, 0x08, 0x0b, 0xe4, 0x03, 0x2c, 0x78, 0xf1, 0x95, + 0xff, 0xaf, 0x91, 0x40, 0x95, 0xd4, 0x3f, 0x43, 0x04, 0x5b, 0x5f, 0xfc, 0x4f, 0xe1, 0x21, 0xe9, + 0x2d, 0x5f, 0xc2, 0x94, 0xfe, 0xf1, 0x13, 0xf4, 0xbd, 0xbe, 0xd6, 0xc5, 0x64, 0x96, 0x9a, 0x1e, + 0x1a, 0x2c, 0x81, 0xfb, 0x77, 0xfd, 0x4b, 0x9d, 0x5b, 0x83, 0x8b, 0xc5, 0x02, 0xe8, 0xe7, 0xb0, + 0x22, 0xb0, 0xa8, 0xc4, 0xdb, 0x23, 0x8a, 0x20, 0xe4, 0xa8, 0xd8, 0x50, 0x6f, 0x2e, 0x09, 0xd6, + 0xd5, 0x29, 0x80, 0x5a, 0xac, 0x9f, 0xf9, 0x03, 0x72, 0x75, 0x1a, 0xb0, 0x5f, 0x10, 0x24, 0xc0, + 0xf8, 0x20, 0xa3, 0x67, 0xc8, 0x00, 0xc3, 0xf3, 0xd5, 0x67, 0x17, 0xd4, 0x67, 0xfa, 0xc6, 0x31, + 0x6d, 0xd0, 0x0c, 0x71, 0xe9, 0x0b, 0xec, 0x56, 0x30, 0xe6, 0xb6, 0x5d, 0xf8, 0xe0, 0x11, 0x3a, + 0xed, 0x28, 0x4f, 0x52, 0x8d, 0x5f, 0xcb, 0x0b, 0xef, 0x09, 0x76, 0x56, 0x64, 0x02, 0x8f, 0x2c, + 0xf3, 0x02, 0xfe, 0x40, 0x2e, 0x43, 0xc9, 0xf9, 0xab, 0x2e, 0x73, 0x7e, 0x14, 0x28, 0x26, 0xe5, + 0x7e, 0xee, 0xe0, 0x07, 0x0a, 0x89, 0x58, 0x48, 0x13, 0xe5, 0x33, 0x49, 0xaf, 0x18, 0x5f, 0xa7, + 0x92, 0x1d, 0xcc, 0xc6, 0x79, 0xb0, 0x60, 0xff, 0x8b, 0x2d, 0x1f, 0xe1, 0x26, 0x53, 0x3e, 0xac, + 0x27, 0xcf, 0x97, 0xfa, 0x1c, 0xf0, 0x2c, 0x64, 0xf4, 0x94, 0xa1, 0xf1, 0x33, 0x4f, 0xee, 0x31, + 0x41, 0x25, 0xfe, 0xac, 0xfb, 0x28, 0x11, 0xdc, 0x38, 0x35, 0xb3, 0x02, 0x75, 0x97, 0xe1, 0x42, + 0x19, 0x58, 0x97, 0xbc, 0x8f, 0x5d, 0xa6, 0xb2, 0x23, 0x9a, 0x3d, 0xbc, 0x39, 0x14, 0x6f, 0x6c, + 0x65, 0xda, 0x65, 0x18, 0xa2, 0xa2, 0x9c, 0x2d, 0xcc, 0x39, 0xd0, 0x7e, 0x9e, 0x47, 0x0b, 0x5d, + 0x33, 0x86, 0xc4, 0xbb, 0xb6, 0x3d, 0x50, 0x0d, 0x1d, 0xc4, 0xac, 0x67, 0xf0, 0x60, 0x4e, 0x90, + 0x9d, 0x75, 0x14, 0xb0, 0x30, 0x0a, 0xd6, 0xd0, 0xe9, 0x27, 0x7f, 0xb8, 0x82, 0x21, 0x30, 0x0d, + 0xc6, 0xe5, 0x7f, 0xa2, 0x6e, 0x4f, 0x93, 0x41, 0xcb, 0xa7, 0x83, 0x10, 0x8b, 0xe2, 0x4a, 0x28, + 0x09, 0x14, 0x0f, 0x0b, 0xec, 0xcf, 0xcd, 0x75, 0x08, 0x9e, 0xf3, 0xdc, 0xf6, 0x2f, 0x0a, 0xe4, + 0x1f, 0xb3, 0x90, 0x22, 0xe3, 0xf2, 0x3b, 0x5c, 0x10, 0x9f, 0xf9, 0x8d, 0x45, 0x3d, 0xf8, 0xa7, + 0x66, 0x7e, 0xa3, 0x51, 0x0e, 0xd9, 0x3c, 0x8b, 0xbd, 0x45, 0xbd, 0x72, 0x1e, 0x89, 0x6d, 0xf1, + 0xcf, 0x18, 0xc2, 0x51, 0xf3, 0x9b, 0x3c, 0xf7, 0x02, 0x4b, 0x58, 0x7c, 0xc5, 0x2f, 0xba, 0x80, + 0x9f, 0x4a, 0xcd, 0xd9, 0x20, 0xb2, 0x70, 0xf2, 0x88, 0xb9, 0xc3, 0xc8, 0xfb, 0xb2, 0x99, 0x5c, + 0x70, 0x13, 0x24, 0x5e, 0x66, 0xd0, 0xfb, 0x31, 0x02, 0x61, 0xe5, 0x89, 0xe2, 0x11, 0x83, 0x82, + 0x3c, 0xfa, 0xf6, 0xad, 0x08, 0x18, 0x52, 0x92, 0xc6, 0xd6, 0x30, 0x82, 0x59, 0x84, 0x98, 0x85, + 0xeb, 0x73, 0x61, 0xa2, 0xeb, 0xda, 0x88, 0x50, 0x2d, 0x8f, 0x4b, 0x9e, 0xc2, 0x23, 0x0f, 0x8a, + 0xa1, 0x4b, 0xbd, 0x5c, 0x7e, 0xa2, 0x97, 0xa2, 0xa6, 0x19, 0x05, 0xbb, 0x7e, 0x98, 0x05, 0x14, + 0x25, 0xaa, 0x93, 0x1e, 0x8f, 0x16, 0xf1, 0x0f, 0x5e, 0x92, 0x82, 0x3f, 0x04, 0xf4, 0xe1, 0xdd, + 0xf4, 0xf4, 0x6b, 0xa2, 0x8c, 0xe0, 0x05, 0x68, 0x58, 0x7e, 0x34, 0x84, 0x97, 0x0b, 0x7e, 0x39, + 0xa4, 0x47, 0x63, 0x19, 0x48, 0xba, 0xeb, 0xa4, 0x51, 0xfa, 0x63, 0xdc, 0x86, 0x0f, 0x44, 0x71, + 0x97, 0x89, 0x9a, 0x76, 0x75, 0xa1, 0xca, 0x72, 0xa0, 0x37, 0x43, 0x59, 0x9b, 0x90, 0x3e, 0x91, + 0xac, 0x4c, 0x96, 0xe4, 0xeb, 0x66, 0xc3, 0x4c, 0xbb, 0x66, 0x1b, 0x6f, 0x84, 0x48, 0x66, 0x19, + 0x65, 0x39, 0x3e, 0x48, 0x6b, 0x6c, 0x83, 0x4d, 0xc1, 0x9d, 0xa3, 0xc7, 0x48, 0xd2, 0x15, 0x0a, + 0x51, 0xe5, 0xea, 0xce, 0x36, 0x14, 0xdc, 0x31, 0x1a, 0x49, 0x07, 0xfe, 0xcf, 0x34, 0xe0, 0x07, + 0x1f, 0x80, 0x80, 0x77, 0xe2, 0x8e, 0x58, 0xcb, 0xf2, 0xc0, 0x52, 0x13, 0x4d, 0xae, 0xe6, 0x6c, + 0xa3, 0x5a, 0x4f, 0xf3, 0x16, 0xc5, 0x7f, 0x51, 0xf3, 0x84, 0xda, 0xb6, 0x50, 0xb0, 0x28, 0xd2, + 0x4c, 0x83, 0xa6, 0x67, 0xd6, 0xea, 0x1e, 0xaf, 0x21, 0xe9, 0x21, 0x65, 0x31, 0x48, 0x4b, 0x60, + 0xbb, 0x0b, 0xe6, 0x4f, 0xb0, 0xd2, 0xe3, 0xc2, 0x03, 0xf2, 0xf0, 0x26, 0xd0, 0xff, 0x0e, 0x58, + 0x0c, 0xbe, 0x5d, 0x00, 0x59, 0xa9, 0x9b, 0x16, 0x27, 0x50, 0x2d, 0x9a, 0xce, 0x6a, 0x90, 0x1a, + 0xdc, 0xc9, 0x70, 0xd8, 0x97, 0x5e, 0x86, 0x1c, 0xe8, 0x92, 0x23, 0x62, 0xa7, 0xa9, 0x85, 0xef, + 0xdc, 0x6b, 0x6e, 0x3f, 0xc9, 0x89, 0xe9, 0x6c, 0x21, 0xcd, 0xa1, 0x7e, 0x05, 0xf9, 0x0e, 0x4d, + 0x60, 0xc6, 0x1c, 0x32, 0x76, 0xcc, 0xa6, 0xc1, 0x94, 0x18, 0x62, 0x54, 0x10, 0xb7, 0x25, 0xeb, + 0x7e, 0x96, 0xce, 0xd0, 0xfa, 0x3f, 0xff, 0x1b, 0x40, 0x61, 0x26, 0xc5, 0xa0, 0x69, 0xf8, 0x00, + 0x2a, 0x3f, 0x4c, 0x92, 0x11, 0x58, 0x1f, 0x58, 0x74, 0x9e, 0x00, 0x0e, 0x26, 0xcd, 0x39, 0x0c, + 0xf1, 0xa1, 0x7f, 0xf4, 0x5a, 0x8c, 0xed, 0xff, 0x65, 0xfc, 0x63, 0xa6, 0xcf, 0xf1, 0xd3, 0x6f, + 0x24, 0xb7, 0x3b, 0xd4, 0x74, 0x74, 0x9a, 0xa7, 0x47, 0x9a, 0xca, 0x47, 0x5f, 0x75, 0x40, 0x75, + 0x97, 0xf4, 0x04, 0x90, 0x04, 0x65, 0xc1, 0x98, 0x69, 0xac, 0x75, 0xb5, 0xb4, 0x43, 0xd3, 0x53, + 0xdc, 0x3f, 0x13, 0x49, 0xb0, 0x4e, 0x58, 0x9a, 0x0d, 0x8a, 0xbe, 0xc0, 0x25, 0xd4, 0xdd, 0x01, + 0xcf, 0xc5, 0xc0, 0xdc, 0x5a, 0x68, 0x72, 0x72, 0x42, 0xcc, 0xfc, 0x4c, 0x0f, 0x69, 0x3a, 0x1f, + 0xcb, 0xdd, 0x06, 0x2a, 0x49, 0x20, 0x99, 0x00, 0xd1, 0x00, 0xc0, 0x97, 0x5d, 0x0f, 0x1c, 0x01, + 0x6b, 0xc4, 0x96, 0x06, 0x3b, 0xd1, 0x8c, 0x97, 0x9d, 0xeb, 0xe6, 0x19, 0x27, 0x24, 0xbd, 0xb7, + 0x99, 0xac, 0x98, 0x2b, 0xf0, 0x21, 0xc2, 0xf2, 0x20, 0x20, 0x0f, 0x88, 0xd4, 0xb2, 0x0f, 0xb3, + 0x6f, 0x80, 0x64, 0x95, 0xf0, 0xa2, 0x87, 0x38, 0xc1, 0x88, 0x35, 0xa4, 0x09, 0x68, 0x04, 0x15, + 0x3a, 0xd1, 0xbe, 0xec, 0x60, 0xcf, 0x29, 0x65, 0x76, 0x2d, 0x27, 0x96, 0xeb, 0xac, 0xd9, 0x4a, + 0x48, 0xaa, 0x0a, 0xfc, 0xca, 0xc1, 0x5c, 0x03, 0x49, 0x89, 0xf7, 0x07, 0xcc, 0x7c, 0x67, 0xea, + 0x80, 0x12, 0x8e, 0xef, 0x61, 0xfe, 0x0c, 0x41, 0xe8, 0x23, 0xda, 0xe0, 0xd1, 0x4d, 0x61, 0xf3, + 0x10, 0x8b, 0x21, 0x0a, 0xcd, 0x82, 0xd1, 0xcc, 0x32, 0x66, 0x58, 0x26, 0xa0, 0xd6, 0x7f, 0x2e, + 0x21, 0x75, 0xdf, 0x18, 0x69, 0xb6, 0x69, 0x0c, 0x68, 0xd3, 0x49, 0x1a, 0xc3, 0x79, 0xa9, 0xb1, + 0x8c, 0x91, 0x0e, 0x36, 0x81, 0x47, 0x3a, 0x34, 0xfa, 0x58, 0xb3, 0x52, 0x1c, 0x2b, 0x0c, 0xf6, + 0x26, 0xa5, 0x81, 0x5f, 0xcc, 0xa3, 0xf5, 0x32, 0x8a, 0xb2, 0x98, 0xe5, 0x49, 0xec, 0x6f, 0x10, + 0x0a, 0x4f, 0x64, 0x9c, 0x28, 0x41, 0x44, 0x55, 0x12, 0xad, 0xa1, 0x1e, 0x53, 0x2a, 0x98, 0x94, + 0x8e, 0xc7, 0x55, 0x79, 0xe1, 0x54, 0x7e, 0x89, 0xed, 0x2c, 0xbf, 0x70, 0x5e, 0xa2, 0xeb, 0xd6, + 0x7f, 0xb1, 0xb9, 0x69, 0x7e, 0x2f, 0x84, 0xbd, 0xb7, 0x14, 0xf2, 0x0f, 0xf3, 0x27, 0x95, 0x43, + 0x46, 0x48, 0x0e, 0xa5, 0x81, 0x4a, 0xeb, 0x5e, 0x80, 0xd8, 0x0f, 0xe3, 0x67, 0xc3, 0x49, 0x9b, + 0x06, 0x30, 0x8b, 0x46, 0xb8, 0x62, 0xba, 0xba, 0x10, 0x6a, 0x87, 0x91, 0x02, 0x42, 0x30, 0xb6, + 0xb1, 0x31, 0xf8, 0x0a, 0xdb, 0xe4, 0x4d, 0x97, 0x88, 0x60, 0xf2, 0xb7, 0xd2, 0xfc, 0x63, 0xe6, + 0xa0, 0x41, 0x4d, 0xfd, 0xb5, 0xf0, 0xb4, 0x03, 0x7f, 0x35, 0x7f, 0xb7, 0x14, 0x60, 0x18, 0xcd, + 0x77, 0x14, 0x12, 0x80, 0x51, 0xf6, 0x95, 0xf8, 0xce, 0x8a, 0xfa, 0x3b, 0x09, 0xe8, 0x59, 0x8f, + 0xf4, 0x74, 0x51, 0x0e, 0xdf, 0x26, 0x36, 0x0d, 0xd9, 0xb1, 0xea, 0xf8, 0x14, 0x89, 0x1a, 0xa7, + 0xf9, 0x64, 0x73, 0xc2, 0xf9, 0x3b, 0xad, 0xfe, 0x31, 0x33, 0xe6, 0x8e, 0x17, 0x5c, 0x1c, 0x6c, + 0xfa, 0xc0, 0xd6, 0x26, 0xf1, 0x0d, 0xcf, 0x25, 0xb0, 0x61, 0x90, 0xb2, 0xc3, 0x79, 0xc7, 0x4e, + 0x52, 0xd1, 0x46, 0xab, 0x88, 0xc8, 0xb7, 0xe0, 0x94, 0x49, 0xda, 0x08, 0xce, 0x8f, 0x99, 0xc4, + 0x86, 0x66, 0x68, 0x4b, 0xe9, 0x63, 0xec, 0x1c, 0x13, 0xd6, 0xbc, 0xb5, 0xdb, 0x5c, 0x12, 0xc0, + 0x93, 0xa1, 0xfe, 0x05, 0xe2, 0x77, 0x38, 0x49, 0x71, 0x39, 0xa6, 0x1a, 0x85, 0xda, 0x0f, 0xd9, + 0xa2, 0x92, 0x1c, 0x9a, 0x7f, 0x39, 0xb6, 0xfd, 0x1e, 0x04, 0xca, 0x15, 0xe0, 0x74, 0x1e, 0x3d, + 0x9f, 0x87, 0x36, 0x20, 0xd8, 0x77, 0xc6, 0x36, 0x15, 0x31, 0x98, 0xf4, 0xcc, 0x93, 0xd5, 0x9b, + 0x67, 0xb0, 0x50, 0x64, 0x33, 0x12, 0x2b, 0x21, 0x2f, 0x9d, 0x92, 0x02, 0xa0, 0xf0, 0xa0, 0x14, + 0xaf, 0x19, 0x7f, 0xff, 0xac, 0x14, 0xec, 0x01, 0xd4, 0x02, 0x9d, 0xcf, 0x78, 0x8d, 0xf8, 0x68, + 0x17, 0x0d, 0xed, 0xdf, 0xe2, 0xe9, 0x53, 0x5b, 0x69, 0xe8, 0x90, 0x79, 0xb4, 0xc6, 0x14, 0x13, + 0xa6, 0x91, 0xf8, 0xdb, 0xf2, 0x22, 0x13, 0x38, 0xd0, 0xf3, 0xbc, 0x78, 0x9f, 0x60, 0x6a, 0x19, + 0x30, 0xb5, 0x30, 0xe8, 0x27, 0xdc, 0x59, 0x04, 0xf3, 0x6b, 0x81, 0xad, 0x5f, 0x61, 0xbb, 0x56, + 0xc6, 0x0e, 0x53, 0x03, 0x68, 0xac, 0xd1, 0xd5, 0x1d, 0x7e, 0xa6, 0xe0, 0x12, 0x5b, 0xae, 0x46, + 0xbf, 0xf2, 0xb9, 0x9a, 0xe7, 0xeb, 0xd9, 0xef, 0x5c, 0xe6, 0x73, 0x5c, 0x9d, 0xa6, 0x66, 0xd9, + 0xcb, 0x4a, 0xf8, 0x65, 0x25, 0x57, 0x2a, 0x71, 0x73, 0xef, 0xf7, 0x4e, 0xc8, 0xd3, 0x22, 0x1b, + 0x11, 0x77, 0x0d, 0x87, 0xcb, 0x76, 0x5c, 0xc3, 0x53, 0x84, 0x76, 0x48, 0x1a, 0x8c, 0x23, 0xf6, + 0xbc, 0xcc, 0x94, 0x58, 0x94, 0x2c, 0x8d, 0x8b, 0x63, 0x6c, 0x04, 0x94, 0x0b, 0x07, 0x3f, 0xb0, + 0xd7, 0xc0, 0x9c, 0xdc, 0x34, 0x8d, 0x04, 0xe6, 0x67, 0xde, 0x43, 0xd4, 0x48, 0xa0, 0x40, 0xe9, + 0x72, 0xa4, 0x4e, 0x5a, 0xe6, 0x00, 0x6f, 0x0b, 0xc1, 0x12, 0x12, 0x8a, 0xa1, 0x85, 0x7b, 0x1e, + 0x20, 0xe9, 0xdf, 0xfd, 0xf2, 0xde, 0x3a, 0x8a, 0xee, 0xf3, 0x26, 0xa9, 0xe1, 0xbd, 0xf9, 0xa1, + 0xff, 0xc4, 0x0a, 0x25, 0x56, 0xdc, 0x59, 0xc8, 0xfd, 0x55, 0x36, 0x07, 0xb0, 0xde, 0x10, 0xf5, + 0x4b, 0xd0, 0xc3, 0x79, 0x24, 0x78, 0xd8, 0x5b, 0x1f, 0xf5, 0xdc, 0x65, 0xdf, 0x3c, 0x4b, 0xd1, + 0xcb, 0xf9, 0x8d, 0x59, 0x18, 0x0c, 0x6b, 0x12, 0x1f, 0xb2, 0x32, 0x04, 0xd0, 0x8a, 0xd9, 0x70, + 0x49, 0x74, 0xa5, 0x17, 0xde, 0xa1, 0xb0, 0xd7, 0x20, 0xb7, 0xd8, 0x68, 0x48, 0x28, 0xd3, 0x77, + 0xb8, 0xf3, 0x0c, 0x28, 0x44, 0xf4, 0x79, 0x8e, 0x13, 0xed, 0x17, 0xf0, 0x42, 0x50, 0x6d, 0xe7, + 0x80, 0x0c, 0x55, 0xf9, 0x2e, 0xee, 0x98, 0xa9, 0x06, 0x17, 0x09, 0x33, 0x4f, 0x68, 0x78, 0x76, + 0x9b, 0x83, 0xc2, 0x42, 0x4d, 0x73, 0x35, 0x00, 0x84, 0x5a, 0x06, 0x66, 0x3b, 0x37, 0x13, 0x26, + 0xd8, 0x99, 0xf6, 0x22, 0x86, 0x3a, 0xd1, 0x45, 0x99, 0x95, 0xc6, 0x75, 0x7b, 0x64, 0xa7, 0xec, + 0xf2, 0x2d, 0x9f, 0x89, 0xe0, 0x95, 0xa4, 0x74, 0x8e, 0xc2, 0x6c, 0x99, 0xd3, 0xaf, 0x40, 0x7c, + 0xb5, 0x98, 0xd4, 0x0d, 0x00, 0xd5, 0x50, 0x88, 0x51, 0x44, 0xce, 0x29, 0xd1, 0x47, 0x45, 0x95, + 0x11, 0xa1, 0x74, 0x33, 0x6a, 0x70, 0x7b, 0x71, 0xd3, 0x9f, 0xb4, 0xb4, 0x59, 0x9c, 0xf8, 0x67, + 0x0c, 0xed, 0xc0, 0x65, 0x37, 0xd4, 0x55, 0xba, 0x7a, 0x89, 0x95, 0x25, 0xb0, 0x36, 0x1a, 0x9b, + 0xcd, 0x3c, 0xf7, 0x9f, 0x75, 0x54, 0x45, 0xa8, 0x37, 0xd0, 0xfd, 0xc9, 0x5f, 0x75, 0x54, 0x2d, + 0xcf, 0x8b, 0xc0, 0x97, 0xe1, 0xd9, 0x17, 0xd4, 0xf7, 0x21, 0x50, 0x91, 0x4d, 0x7c, 0x8b, 0x9f, + 0x52, 0x38, 0x33, 0xec, 0xc4, 0xba, 0xfb, 0x9d, 0xf8, 0xb4, 0xed, 0x02, 0x6d, 0x93, 0x1f, 0xee, + 0xcf, 0xc6, 0x4c, 0x53, 0x6b, 0xf8, 0x40, 0x17, 0x46, 0x61, 0x30, 0xd8, 0x0f, 0xb0, 0x6b, 0x11, + 0xc6, 0x67, 0xe7, 0x11, 0xa0, 0xc4, 0x77, 0x29, 0x20, 0x3c, 0x91, 0x41, 0xe2, 0xe8, 0x66, 0x2c, + 0x74, 0x31, 0x88, 0x80, 0xef, 0xa0, 0x25, 0x8c, 0x57, 0x91, 0x70, 0x6c, 0x22, 0xaa, 0xe2, 0x18, + 0x9e, 0x48, 0xab, 0xa0, 0x47, 0x74, 0x5e, 0x74, 0x93, 0xdc, 0x75, 0xe7, 0x6e, 0x8f, 0xe3, 0xbf, + 0x8b, 0xfe, 0xb4, 0x5f, 0x91, 0xe5, 0xdf, 0xe8, 0x6b, 0xc5, 0x0e, 0x9b, 0xdb, 0xe2, 0x8e, 0x13, + 0xca, 0xe1, 0x0c, 0x65, 0xd0, 0x61, 0x93, 0x26, 0x5f, 0x33, 0x1b, 0xd5, 0x6a, 0x15, 0x25, 0x7f, + 0x0f, 0x17, 0xd0, 0x00, 0x6d, 0x48, 0xef, 0xe8, 0x20, 0x3d, 0x74, 0x07, 0x7a, 0x92, 0xeb, 0x4e, + 0x80, 0x0c, 0xb1, 0x98, 0xa6, 0x0a, 0x4b, 0xc5, 0x45, 0x50, 0xe7, 0x85, 0xc5, 0x0e, 0x33, 0x5c, + 0x5b, 0xc1, 0xff, 0x41, 0x21, 0xa4, 0x44, 0xea, 0x6f, 0xbd, 0x7b, 0x5f, 0xa7, 0x5a, 0x38, 0xde, + 0x7c, 0x3b, 0x10, 0xc7, 0xe9, 0xff, 0x93, 0x21, 0xf2, 0xd6, 0xe0, 0x71, 0x7c, 0x02, 0x7d, 0xcf, + 0x6f, 0x0f, 0xd3, 0xd7, 0x48, 0x78, 0xa1, 0x7d, 0x2d, 0x1a, 0x3d, 0xef, 0x26, 0xe2, 0xd2, 0xf4, + 0x70, 0x69, 0x32, 0x5c, 0x0a, 0xa1, 0xad, 0x5e, 0x9c, 0xf0, 0xed, 0xbd, 0xdd, 0x5d, 0xc0, 0xf4, + 0x98, 0xf5, 0xed, 0x6f, 0x8f, 0x5b, 0x8d, 0xd8, 0xc8, 0x92, 0x71, 0x92, 0x85, 0x18, 0x91, 0x95, + 0x31, 0xb1, 0x5f, 0x3d, 0x48, 0x09, 0x7a, 0x70, 0x30, 0xf7, 0x2e, 0xaa, 0x67, 0xac, 0xcb, 0x88, + 0xdb, 0x34, 0x3a, 0xbe, 0xa0, 0xd5, 0xd8, 0x0f, 0x87, 0xa5, 0xc4, 0x83, 0x62, 0x83, 0xa6, 0xf3, + 0x75, 0x5c, 0x8e, 0x72, 0xd8, 0xba, 0x26, 0x22, 0xc7, 0x6b, 0x57, 0xcb, 0x71, 0x80, 0xfa, 0xf8, + 0x79, 0x78, 0x29, 0x2e, 0xfc, 0x8e, 0xad, 0xa9, 0x84, 0x37, 0x5b, 0x2c, 0xd6, 0xe6, 0x16, 0x69, + 0x3f, 0x08, 0x15, 0x38, 0x5f, 0x5c, 0x7f, 0xad, 0xc5, 0x3f, 0x9b, 0x20, 0xc1, 0x02, 0x76, 0xb3, + 0x0d, 0x10, 0x4d, 0xac, 0x13, 0xe8, 0x13, 0x00, 0xa2, 0x68, 0xa0, 0x7f, 0x4a, 0x88, 0xc6, 0x6f, + 0x60, 0x3a, 0xef, 0xbd, 0x87, 0xb7, 0x0d, 0x50, 0x75, 0x78, 0x3e, 0xea, 0x2c, 0x62, 0x38, 0x14, + 0xeb, 0xe4, 0xbb, 0x0f, 0xaf, 0x4e, 0x10, 0x29, 0xd4, 0x32, 0x06, 0xe5, 0xdc, 0xc5, 0x96, 0xd0, + 0xd9, 0x2b, 0xe8, 0x82, 0x24, 0xd8, 0x8d, 0x2f, 0x59, 0x6c, 0x58, 0xb4, 0x1e, 0x87, 0xe7, 0xed, + 0x06, 0xba, 0x8d, 0x32, 0x50, 0xc3, 0xbf, 0xc0, 0xa8, 0x11, 0x98, 0xe7, 0x48, 0xd0, 0xe1, 0x2b, + 0xf7, 0x53, 0x90, 0xe0, 0x2b, 0xff, 0xb3, 0x4e, 0x1d, 0x26, 0x50, 0x98, 0xb3, 0x41, 0x01, 0x70, + 0x78, 0x03, 0xdb, 0xe3, 0xd9, 0xeb, 0xf4, 0xf8, 0x24, 0x74, 0x66, 0xaf, 0x48, 0x93, 0x96, 0xd3, + 0x02, 0x50, 0xc1, 0xf6, 0x15, 0x9f, 0x1a, 0xb0, 0xda, 0xad, 0x6c, 0x1d, 0xea, 0xf7, 0xdf, 0x40, + 0x07, 0x10, 0x33, 0x7a, 0x34, 0x25, 0x4b, 0x5b, 0x15, 0x4e, 0xc9, 0xfd, 0x9c, 0x7f, 0x01, 0xb4, + 0x36, 0x6c, 0x40, 0x98, 0xdd, 0x20, 0x19, 0x1f, 0x1f, 0xd8, 0x9f, 0xc0, 0xc9, 0xf5, 0x0b, 0x63, + 0x28, 0x50, 0x91, 0x12, 0xd0, 0xb8, 0x16, 0xd0, 0xee, 0xe6, 0x41, 0xd6, 0xd9, 0xf3, 0x7f, 0xfe, + 0xe2, 0x3d, 0xed, 0xe7, 0x57, 0xe8, 0xec, 0xa7, 0xc4, 0xda, 0xc3, 0x9f, 0x30, 0x9e, 0xec, 0xd9, + 0xd4, 0x68, 0x08, 0x43, 0xfd, 0x57, 0x94, 0x5a, 0xe8, 0x34, 0xbb, 0xa0, 0x17, 0xa5, 0x04, 0x13, + 0x8d, 0x6a, 0x41, 0xfe, 0x5a, 0x24, 0xbb, 0x44, 0x65, 0xa1, 0x9f, 0x92, 0x39, 0x5b, 0x6f, 0x04, + 0x65, 0x92, 0xbe, 0x09, 0x2f, 0x35, 0xae, 0x9c, 0xb6, 0x74, 0x79, 0x53, 0x70, 0xd0, 0xf3, 0xc2, + 0x09, 0xe8, 0x14, 0x01, 0x64, 0x84, 0x17, 0x3b, 0xe3, 0x3e, 0x3c, 0xec, 0x6c, 0x68, 0xd7, 0x27, + 0xd6, 0xe5, 0xfd, 0x84, 0x0a, 0x1b, 0xcc, 0xfd, 0x00, 0x2a, 0x4e, 0x8b, 0xa9, 0x38, 0xa8, 0x02, + 0xf8, 0xfe, 0xbc, 0x98, 0xf9, 0x11, 0x3a, 0x46, 0x9c, 0x5b, 0xb6, 0x66, 0x16, 0xde, 0x3a, 0xaa, + 0x67, 0xe3, 0xf2, 0x29, 0x53, 0xa5, 0x17, 0x46, 0x8d, 0xa7, 0x54, 0xe3, 0x10, 0x2c, 0x14, 0xe5, + 0xa0, 0xb3, 0x61, 0xb5, 0x97, 0x4d, 0x34, 0xf4, 0xcc, 0x7f, 0x69, 0x04, 0x56, 0x2d, 0x49, 0xf7, + 0x25, 0xa7, 0xe9, 0xba, 0xb6, 0x06, 0x6a, 0x15, 0x49, 0x72, 0x60, 0x01, 0x70, 0x3c, 0x68, 0xa1, + 0x92, 0x9f, 0x44, 0x7d, 0x60, 0xec, 0x78, 0x93, 0x1a, 0x90, 0x9d, 0x60, 0x36, 0x98, 0x8d, 0x4e, + 0x53, 0x32, 0x6e, 0x3d, 0x69, 0x2e, 0x0c, 0x54, 0x98, 0xe6, 0xdf, 0x8b, 0x22, 0xd3, 0x97, 0x72, + 0xbe, 0x5f, 0xeb, 0xd7, 0xea, 0x5b, 0x06, 0x43, 0x67, 0xf9, 0xd3, 0x7e, 0xfd, 0x53, 0x08, 0x1d, + 0xe5, 0xcc, 0x52, 0xf8, 0x5f, 0xc0, 0xd7, 0xd9, 0xa5, 0x76, 0xa8, 0x3b, 0xac, 0xdb, 0x9c, 0x11, + 0x33, 0x39, 0x30, 0x6c, 0x70, 0x29, 0xac, 0xa3, 0xe1, 0x78, 0xfe, 0xdb, 0x08, 0xc0, 0x75, 0xb0, + 0x83, 0x38, 0x44, 0x66, 0x8a, 0x50, 0x90, 0xe8, 0xf1, 0x4d, 0x1a, 0x61, 0x3f, 0xa8, 0x77, 0xe6, + 0x4b, 0x88, 0x54, 0xc3, 0x81, 0x28, 0x34, 0x34, 0x3d, 0xcd, 0x36, 0xf5, 0xfd, 0xd5, 0x3a, 0x43, + 0x21, 0x1f, 0x0c, 0x74, 0x92, 0x8b, 0x5f, 0x42, 0x18, 0x5e, 0x40, 0x5d, 0xf8, 0x65, 0xfd, 0x65, + 0x5c, 0xba, 0xbf, 0x85, 0xa3, 0xee, 0xe6, 0x0f, 0xa5, 0xeb, 0xaa, 0xf8, 0x12, 0x6f, 0xc7, 0x19, + 0x2e, 0x03, 0x07, 0xc0, 0x70, 0xe5, 0xe0, 0x6f, 0x02, 0x03, 0x32, 0x8c, 0xec, 0x5b, 0xdb, 0x16, + 0x7d, 0x72, 0xa4, 0xa6, 0x99, 0xf5, 0x8f, 0x59, 0xe4, 0xf5, 0xdc, 0xfc, 0xc5, 0xd7, 0xc1, 0x96, + 0x73, 0x43, 0x50, 0x25, 0x55, 0x0d, 0x83, 0x14, 0x92, 0xeb, 0xca, 0xbe, 0xea, 0x32, 0x18, 0x78, + 0xef, 0x16, 0x9e, 0xc7, 0x51, 0x88, 0x2b, 0x37, 0x2c, 0xf6, 0x24, 0x7c, 0xf4, 0x6e, 0x38, 0x02, + 0x05, 0xb7, 0xf8, 0x51, 0x2f, 0x80, 0x36, 0x22, 0x34, 0x78, 0x83, 0x21, 0x9c, 0x5a, 0x61, 0x3a, + 0x5b, 0x7f, 0xa7, 0x5f, 0x1e, 0x5e, 0xf8, 0x20, 0x80, 0x8f, 0xe1, 0x2b, 0xfc, 0x8e, 0xe2, 0xcc, + 0x2f, 0x86, 0xa8, 0x03, 0x86, 0xd2, 0x08, 0xed, 0xf5, 0x03, 0x32, 0x02, 0xfb, 0x56, 0xb6, 0x89, + 0xf4, 0x32, 0xf7, 0x95, 0x02, 0x3c, 0xa2, 0x21, 0xac, 0x13, 0x7c, 0x5b, 0x7b, 0x5c, 0x03, 0xdd, + 0xd7, 0xfe, 0x2d, 0xa5, 0x07, 0xd1, 0x11, 0x68, 0x58, 0xa2, 0x96, 0xd9, 0x10, 0xd9, 0x12, 0xe1, + 0xe6, 0x26, 0x59, 0x6a, 0xa8, 0x37, 0xa8, 0x2b, 0x1a, 0x49, 0x56, 0x35, 0xb2, 0x3d, 0x09, 0xb7, + 0xd1, 0x53, 0x51, 0xc3, 0x15, 0x46, 0xd4, 0x54, 0xd0, 0xa4, 0x1a, 0x94, 0x47, 0x34, 0x68, 0xd8, + 0x80, 0xa7, 0x3f, 0x7e, 0xae, 0x47, 0xc1, 0x29, 0x17, 0xdf, 0x52, 0xd1, 0x0a, 0x42, 0x6a, 0xea, + 0x3c, 0x6e, 0xea, 0x87, 0x4e, 0x8f, 0xe5, 0xfd, 0xb5, 0xb9, 0xa5, 0xb7, 0xec, 0x0c, 0x97, 0xf5, + 0xef, 0x17, 0xc7, 0x92, 0xf0, 0x5e, 0x9b, 0xd9, 0xa1, 0x5b, 0xf1, 0xfd, 0x40, 0x6c, 0xdd, 0x21, + 0xbe, 0x29, 0x88, 0x15, 0xc0, 0x93, 0xaa, 0xe2, 0xf9, 0x15, 0xc5, 0x5d, 0x99, 0xf9, 0x65, 0x25, + 0x74, 0x9a, 0x9b, 0xe6, 0xaa, 0x79, 0x85, 0xc2, 0x8b, 0x31, 0x31, 0x75, 0xd0, 0x7f, 0xd5, 0xa1, + 0x1d, 0x00, 0xad, 0xdb, 0x63, 0xc8, 0xf1, 0xed, 0x35, 0xc6, 0xc7, 0xbb, 0xa8, 0x18, 0x41, 0x44, + 0x88, 0x81, 0x52, 0x41, 0xb4, 0x75, 0x4e, 0xac, 0x27, 0xa1, 0xe8, 0x92, 0x81, 0x75, 0x19, 0x96, + 0xd8, 0x09, 0x82, 0xcb, 0x68, 0xc6, 0x0e, 0x28, 0xec, 0xf8, 0xe0, 0xc7, 0xdc, 0xec, 0x70, 0xff, + 0x0d, 0x65, 0x13, 0x60, 0xb0, 0xb2, 0xf7, 0x7c, 0x4c, 0x85, 0xa7, 0x7a, 0xdb, 0x8a, 0xdc, 0x34, + 0xd9, 0x60, 0xf1, 0x1b, 0xa2, 0x30, 0x33, 0x86, 0x03, 0x62, 0x6b, 0x4a, 0xed, 0x8b, 0x38, 0xe7, + 0x6b, 0xc1, 0xda, 0xe8, 0xa2, 0x35, 0x7e, 0x98, 0xf2, 0x6c, 0xec, 0xfc, 0xfe, 0x9d, 0x4c, 0x62, + 0x6c, 0x1b, 0x19, 0x27, 0x82, 0xf0, 0x37, 0x18, 0x29, 0x87, 0xda, 0xcf, 0xd4, 0x9c, 0x66, 0x46, + 0xf4, 0xd2, 0xb1, 0xd0, 0xa6, 0xe3, 0x52, 0x73, 0x02, 0x4c, 0xeb, 0xb1, 0x83, 0xdb, 0xc2, 0xd0, + 0x1d, 0xed, 0x38, 0x18, 0x1e, 0xef, 0x87, 0xe0, 0xbb, 0xe1, 0xc0, 0x14, 0x42, 0x55, 0x69, 0x9e, + 0xe9, 0xb0, 0xd4, 0x9f, 0xce, 0xcf, 0x22, 0x91, 0x81, 0xa1, 0x25, 0x62, 0x5e, 0x08, 0xfd, 0x58, + 0xc4, 0xdd, 0x79, 0xbb, 0x7a, 0x83, 0x00, 0xe0, 0x65, 0x4b, 0xfb, 0xcf, 0x62, 0x1b, 0x75, 0x9e, + 0xf3, 0x54, 0x5f, 0xd0, 0xef, 0xc1, 0x22, 0xaf, 0x9b, 0x3b, 0x81, 0x75, 0xde, 0x30, 0x85, 0xd0, + 0xb2, 0x9d, 0xb7, 0x93, 0x79, 0x73, 0x33, 0xb2, 0xc4, 0x05, 0xd2, 0x1e, 0x6c, 0xca, 0xc0, 0x9e, + 0xc7, 0x58, 0x42, 0x1a, 0x4a, 0x98, 0xc4, 0x7d, 0x03, 0xf0, 0xbd, 0xe3, 0x7d, 0xd7, 0x5c, 0xe0, + 0xb0, 0xc2, 0x18, 0x9d, 0xd5, 0x34, 0x9c, 0x90, 0x22, 0xe8, 0x8f, 0xc3, 0x30, 0xff, 0x30, 0x04, + 0xd1, 0xab, 0xd0, 0xb4, 0x88, 0x41, 0xeb, 0x1b, 0xa3, 0xf7, 0x18, 0xe3, 0x92, 0x66, 0xdf, 0x46, + 0xdf, 0x6a, 0xae, 0x3d, 0x04, 0x15, 0x11, 0x67, 0xcc, 0xab, 0x73, 0x4a, 0x7a, 0x92, 0x8e, 0xd1, + 0xf8, 0x4b, 0xf8, 0x0c, 0x47, 0x37, 0x2c, 0x7a, 0xe7, 0x07, 0x93, 0xe2, 0x48, 0x12, 0xcf, 0x1a, + 0x41, 0x1b, 0x00, 0x37, 0x7d, 0x13, 0x74, 0xc8, 0xc7, 0x79, 0x0e, 0xd3, 0x13, 0xe0, 0x9d, 0x6c, + 0x6b, 0x82, 0xa1, 0x37, 0xd1, 0xd5, 0xa7, 0x53, 0xcf, 0xbd, 0xbe, 0x37, 0xb4, 0xd9, 0x2f, 0x75, + 0x68, 0xc3, 0xcf, 0x1b, 0xc9, 0xfb, 0xe9, 0xb2, 0xac, 0x6d, 0x49, 0x25, 0x2c, 0x01, 0x6f, 0x31, + 0xa7, 0x8b, 0x95, 0x1d, 0xe8, 0x04, 0x24, 0x0d, 0x55, 0xcb, 0xa0, 0x1d, 0x8a, 0x6d, 0x00, 0x07, + 0xfd, 0x42, 0xff, 0x2e, 0xee, 0xe0, 0x8a, 0x50, 0x0d, 0x9f, 0x71, 0x33, 0x37, 0x68, 0x21, 0xc1, + 0x1d, 0x40, 0x99, 0xac, 0xe8, 0x8d, 0xb9, 0x48, 0x83, 0xa5, 0x57, 0x2c, 0x77, 0xc4, 0x44, 0xfb, + 0xf2, 0x3a, 0x07, 0x33, 0x12, 0xe9, 0xa2, 0x21, 0xae, 0x53, 0x20, 0x1b, 0x20, 0x20, 0xa5, 0x4c, + 0xd0, 0xb1, 0x98, 0x04, 0x70, 0x52, 0xa9, 0xb9, 0xaf, 0x6d, 0x79, 0x2b, 0x19, 0x88, 0x2c, 0xc3, + 0x8f, 0xda, 0x0a, 0x39, 0x98, 0xce, 0xcd, 0x84, 0x5f, 0xb5, 0xe7, 0x53, 0xa2, 0x93, 0x78, 0x21, + 0x86, 0xeb, 0x81, 0x49, 0xd2, 0x30, 0x70, 0x73, 0xaa, 0xb7, 0x6a, 0xb9, 0x22, 0xf8, 0x3b, 0x64, + 0xbd, 0xf9, 0x21, 0xf1, 0x60, 0xf7, 0x90, 0x6d, 0xb4, 0xe5, 0xb6, 0xb6, 0x3c, 0xff, 0xa5, 0x60, + 0x0b, 0x9a, 0xa0, 0xd4, 0x25, 0x06, 0xcc, 0xb3, 0x84, 0xec, 0xc5, 0x2f, 0xb0, 0x82, 0xb4, 0xc5, + 0x2f, 0xb0, 0xd4, 0x18, 0x3f, 0xc7, 0xdd, 0x0f, 0x8b, 0x64, 0x8c, 0x74, 0xc7, 0x87, 0xf7, 0xc2, + 0xca, 0xb9, 0x94, 0x94, 0xe2, 0x04, 0x2e, 0x65, 0xd3, 0x4f, 0x0d, 0xd7, 0xa1, 0x16, 0xb0, 0xd8, + 0x96, 0x7f, 0x80, 0xb0, 0x50, 0x9d, 0x15, 0x0c, 0x9a, 0x5d, 0x04, 0xa0, 0xe3, 0xee, 0x7e, 0x1e, + 0xe5, 0x74, 0x88, 0x98, 0xee, 0x03, 0x52, 0xf2, 0xca, 0x63, 0xa6, 0x9f, 0x82, 0x81, 0xab, 0xd0, + 0x9b, 0x9b, 0xf4, 0x6b, 0x9b, 0x4a, 0xd6, 0x50, 0x99, 0x66, 0x50, 0x86, 0xbe, 0xe7, 0x85, 0x65, + 0x91, 0x17, 0xbc, 0x77, 0x26, 0xc2, 0x6a, 0x81, 0x17, 0xe4, 0xd0, 0x26, 0x02, 0x49, 0xd3, 0xe0, + 0xda, 0xcd, 0x4d, 0x11, 0x8c, 0x08, 0xf6, 0xcc, 0x50, 0xab, 0xa2, 0xc3, 0xc4, 0x77, 0x9a, 0xfb, + 0x2f, 0x98, 0x77, 0x5c, 0xac, 0xd1, 0x53, 0x75, 0x7d, 0x57, 0xe2, 0x00, 0x3d, 0xf3, 0x89, 0x6e, + 0xb0, 0x34, 0xf8, 0x85, 0x63, 0x74, 0xe3, 0xf9, 0xd2, 0xb3, 0x98, 0x1b, 0x97, 0xbf, 0x89, 0x61, + 0x0e, 0x7b, 0xfd, 0x04, 0xbd, 0x06, 0x09, 0xa3, 0x06, 0x1d, 0x69, 0x44, 0x12, 0x2c, 0xb2, 0x2e, + 0x56, 0x24, 0x57, 0x0b, 0x8e, 0xe3, 0xa3, 0x35, 0x78, 0x7e, 0xd9, 0x48, 0x9e, 0x3c, 0xe6, 0x39, + 0xd3, 0x1c, 0x07, 0x2f, 0x8d, 0x38, 0xba, 0xa6, 0x9e, 0xcb, 0x58, 0x96, 0x2a, 0x66, 0x69, 0x86, + 0x5a, 0x96, 0xa0, 0xdd, 0x48, 0x80, 0x85, 0x94, 0x30, 0x15, 0x98, 0x68, 0xe8, 0x12, 0x9e, 0x87, + 0xa8, 0x97, 0x32, 0x0b, 0xba, 0xee, 0x48, 0x33, 0xa6, 0xb8, 0x1a, 0xfc, 0x50, 0x69, 0x64, 0x50, + 0xf8, 0xb0, 0x06, 0x03, 0x64, 0x80, 0x1e, 0x3e, 0xcb, 0xc1, 0x48, 0x77, 0x27, 0xe1, 0x20, 0x21, + 0xc4, 0x5f, 0x88, 0x15, 0x65, 0xeb, 0x21, 0xb6, 0xb3, 0x88, 0xed, 0x0f, 0xc5, 0x44, 0xfe, 0x39, + 0xf7, 0xfc, 0x42, 0x7e, 0xff, 0x0e, 0xaa, 0xe0, 0x67, 0x21, 0x01, 0x03, 0x22, 0x30, 0x2c, 0x6e, + 0x42, 0xec, 0x34, 0x1a, 0x71, 0x25, 0xe4, 0x49, 0x9e, 0xf7, 0x9d, 0x63, 0x94, 0x13, 0x9b, 0x8d, + 0x8f, 0x1c, 0xce, 0x8e, 0x86, 0x0b, 0x14, 0x1f, 0x07, 0x9b, 0x83, 0x0e, 0x42, 0x76, 0x38, 0x0b, + 0x84, 0x2a, 0xc7, 0xbc, 0xd2, 0xb8, 0x53, 0x3d, 0xf9, 0x05, 0xca, 0x21, 0x27, 0x83, 0x16, 0x82, + 0xb1, 0xd5, 0x60, 0x1e, 0x67, 0x5c, 0x36, 0x0f, 0x87, 0x5c, 0xa3, 0x28, 0x4c, 0x1b, 0xe6, 0x38, + 0xc9, 0x63, 0x68, 0x05, 0x35, 0x04, 0x62, 0xd1, 0xb2, 0x84, 0xf7, 0x39, 0x17, 0xc6, 0x50, 0xd0, + 0xfd, 0x6e, 0xc0, 0xbf, 0x61, 0xba, 0xed, 0xf8, 0x42, 0x01, 0x70, 0xf0, 0x6d, 0xc6, 0x8d, 0x38, + 0x26, 0x17, 0xbe, 0xf1, 0x35, 0x0c, 0x3a, 0xc5, 0x9a, 0x23, 0xd2, 0x25, 0x34, 0x16, 0x42, 0x0e, + 0x5d, 0x20, 0xcc, 0xe9, 0x6e, 0x06, 0xfe, 0x74, 0x43, 0xc0, 0x7d, 0x6b, 0x04, 0x8f, 0xa0, 0xc0, + 0xa8, 0x77, 0xb4, 0xe9, 0xb7, 0x70, 0x61, 0x02, 0xfa, 0x84, 0x1b, 0xa2, 0x34, 0xa6, 0x3b, 0x50, + 0xcc, 0xd4, 0xf1, 0x08, 0x56, 0x1b, 0x39, 0xf6, 0xed, 0x4d, 0x7b, 0xab, 0xc2, 0xcd, 0x05, 0xbc, + 0xf2, 0xa4, 0xe6, 0xfe, 0xc5, 0xb0, 0xb7, 0xe4, 0xff, 0xb0, 0x2a, 0xd1, 0xe3, 0xf1, 0x2c, 0x81, + 0x1d, 0xd4, 0xc3, 0x15, 0x05, 0xd4, 0x20, 0x3a, 0x62, 0x1a, 0x55, 0x19, 0x16, 0x2a, 0x05, 0x4b, + 0xf9, 0x58, 0xaf, 0xf0, 0x0b, 0xf0, 0x7c, 0x48, 0xa7, 0x20, 0x9e, 0x4e, 0xe1, 0x7d, 0xd7, 0x48, + 0x54, 0x78, 0xf3, 0xb5, 0xf0, 0xb4, 0xc4, 0xf3, 0x19, 0x60, 0xea, 0x38, 0x16, 0x18, 0x0e, 0x84, + 0x6d, 0x32, 0xf8, 0x6b, 0x4b, 0x0d, 0xcb, 0xc6, 0xbd, 0x77, 0xdf, 0x4a, 0x64, 0xd3, 0xcd, 0xcc, + 0x34, 0x6a, 0xec, 0xcc, 0x17, 0xfc, 0x0c, 0x6b, 0x0d, 0xe1, 0x03, 0x91, 0x66, 0xde, 0x21, 0x30, + 0x60, 0x8a, 0x86, 0x8f, 0xbc, 0x11, 0x92, 0xfe, 0x31, 0x31, 0xec, 0x9b, 0x8f, 0x1d, 0x8a, 0xe1, + 0x6d, 0x36, 0xc5, 0x93, 0xb4, 0xfc, 0x61, 0x08, 0x0e, 0x41, 0x6f, 0xb0, 0x22, 0x3b, 0x5c, 0xe8, + 0x30, 0x74, 0xbc, 0x4b, 0x08, 0x08, 0x2e, 0x94, 0x82, 0x17, 0x77, 0xf1, 0x9e, 0x59, 0xe1, 0xdf, + 0xe9, 0x12, 0xb5, 0x65, 0x19, 0x90, 0x85, 0x35, 0x1b, 0xef, 0x80, 0xbf, 0xca, 0xe4, 0x0f, 0x57, + 0xb8, 0x5b, 0xd8, 0x7e, 0xef, 0x70, 0x1b, 0xef, 0x81, 0x67, 0xdb, 0xbc, 0xfc, 0xfe, 0xb1, 0xd0, + 0x2e, 0xba, 0xf2, 0xb4, 0xaa, 0x03, 0x34, 0xdb, 0x1f, 0xf7, 0xe0, 0xdc, 0x83, 0x17, 0xee, 0x85, + 0x07, 0x69, 0x65, 0x37, 0xd8, 0x6d, 0x2a, 0x7e, 0x78, 0xa5, 0x97, 0x05, 0xd8, 0x50, 0x08, 0x64, + 0xeb, 0x32, 0x0c, 0xaf, 0xbe, 0xf6, 0x0d, 0x72, 0x2a, 0x9c, 0xd1, 0x0c, 0x06, 0x6b, 0x94, 0x77, + 0xb2, 0x7c, 0xdc, 0x5c, 0x23, 0x71, 0x63, 0x8d, 0x66, 0x1e, 0xad, 0x34, 0xed, 0x56, 0xe7, 0xf5, + 0x8f, 0x28, 0xff, 0x28, 0xb7, 0xbf, 0x66, 0xc1, 0x7e, 0xf9, 0x1d, 0x63, 0xc7, 0x03, 0xc7, 0xca, + 0xd6, 0xd7, 0xbf, 0x6a, 0xc4, 0xad, 0xcb, 0x28, 0x06, 0x43, 0xc1, 0x30, 0xbe, 0xaf, 0x85, 0xcc, + 0x15, 0x07, 0x5e, 0xfd, 0xe2, 0xd3, 0x5e, 0x58, 0x46, 0x7d, 0xf1, 0xc6, 0xcc, 0xfe, 0x5a, 0x01, + 0x7f, 0xd9, 0xd6, 0xf5, 0x72, 0xe7, 0x7e, 0x7d, 0xbe, 0x35, 0x5e, 0x68, 0x08, 0x89, 0xcd, 0x43, + 0x50, 0x36, 0x6b, 0x74, 0x8d, 0x08, 0x85, 0x6d, 0x6d, 0xb1, 0xcc, 0x4f, 0x50, 0x1c, 0x2f, 0xda, + 0x38, 0x9f, 0x47, 0x4f, 0xa2, 0x88, 0x1c, 0x8a, 0x19, 0xde, 0x01, 0x11, 0x3e, 0x1c, 0xd1, 0x6b, + 0x5c, 0x7d, 0xd1, 0xbc, 0x05, 0xb2, 0x83, 0xb4, 0x95, 0x63, 0x18, 0x3a, 0x15, 0x33, 0xde, 0x43, + 0x0f, 0x0b, 0x2b, 0x20, 0x6d, 0x6e, 0xae, 0x6a, 0x01, 0xbd, 0x8e, 0x0d, 0x34, 0x33, 0xf3, 0x4e, + 0x23, 0xe3, 0xe4, 0x4c, 0x26, 0x7d, 0x69, 0xa4, 0x99, 0x76, 0x8d, 0x73, 0x06, 0xa6, 0x89, 0x41, + 0x6a, 0x14, 0x50, 0xcd, 0x3f, 0x2c, 0x37, 0xd6, 0xcf, 0xf0, 0x01, 0xa3, 0xe1, 0x6e, 0x2e, 0x37, + 0xf0, 0x2f, 0xf4, 0x72, 0x05, 0xae, 0x3e, 0xdf, 0xcd, 0x68, 0x0b, 0xfe, 0x46, 0x2f, 0x17, 0x41, + 0x37, 0xeb, 0x69, 0x03, 0xb8, 0xf5, 0x17, 0x3f, 0x96, 0x87, 0xfc, 0x9c, 0x2f, 0x17, 0xc7, 0x60, + 0x99, 0xf5, 0xc5, 0xc1, 0x34, 0xab, 0x05, 0x6a, 0x7b, 0x98, 0xc6, 0x68, 0x28, 0x49, 0xe0, 0x14, + 0x8e, 0x42, 0xf5, 0x0e, 0xe6, 0x24, 0x0d, 0x91, 0x9f, 0xc5, 0x46, 0x42, 0x58, 0xae, 0xa7, 0x3b, + 0xa9, 0x85, 0xf7, 0xa5, 0x75, 0x27, 0x2a, 0xe9, 0xa2, 0x37, 0x23, 0x06, 0xd4, 0x3f, 0x36, 0xd2, + 0x57, 0x0c, 0xe3, 0xa4, 0xbc, 0x02, 0x32, 0x8c, 0x52, 0x8d, 0xc4, 0xe1, 0xd0, 0x5b, 0x94, 0xa2, + 0xdd, 0x5d, 0xea, 0xe4, 0xb2, 0x41, 0xcb, 0xc7, 0x11, 0xc7, 0x4e, 0x3c, 0x5e, 0x81, 0x36, 0x67, + 0xb2, 0x12, 0x56, 0xc4, 0xfe, 0x58, 0xc2, 0x58, 0xe8, 0xbc, 0xdf, 0x55, 0x23, 0xb1, 0x1a, 0xe4, + 0x92, 0xd1, 0xb2, 0x04, 0x16, 0xcf, 0x82, 0x8b, 0x8f, 0x2d, 0x1e, 0x25, 0x46, 0xe2, 0xb8, 0x65, + 0x41, 0xd8, 0x01, 0xc3, 0x9b, 0xa1, 0x41, 0x3d, 0xaf, 0x47, 0xb6, 0x93, 0xe1, 0x42, 0x22, 0xd8, + 0xf1, 0x54, 0x31, 0x0d, 0xa9, 0x1f, 0xfe, 0xcd, 0x74, 0x96, 0xbf, 0x87, 0xcd, 0xdf, 0xdc, 0xe6, + 0x05, 0x26, 0xd2, 0x98, 0xc4, 0xc8, 0xd8, 0xb8, 0x91, 0xba, 0x03, 0x23, 0x10, 0x63, 0x8f, 0xf0, + 0x94, 0x37, 0x52, 0x5f, 0x30, 0xdd, 0xf5, 0x46, 0xef, 0xd2, 0x92, 0x25, 0xae, 0x54, 0xae, 0xf0, + 0xc3, 0xd3, 0x9b, 0xd6, 0x39, 0xbe, 0x1e, 0x7b, 0x4d, 0x7d, 0xe2, 0xde, 0x3b, 0x01, 0x11, 0x40, + 0x45, 0x5a, 0xd2, 0x5d, 0x6b, 0xe7, 0x46, 0x6c, 0xc9, 0x25, 0xdb, 0x94, 0xfc, 0xfc, 0xd0, 0x1d, + 0x49, 0xcd, 0x1e, 0x54, 0xf6, 0xfa, 0xd0, 0xf6, 0x45, 0xb0, 0x40, 0xcb, 0x5b, 0xa8, 0xa2, 0x37, + 0xca, 0x34, 0x70, 0xa5, 0x0a, 0x08, 0x7c, 0xd6, 0xaf, 0x89, 0x82, 0x03, 0x7f, 0x23, 0xbc, 0x87, + 0x14, 0xb4, 0xb9, 0xc8, 0xae, 0xcc, 0x20, 0xca, 0xd9, 0x5b, 0x0d, 0x4d, 0x15, 0x45, 0xbe, 0xae, + 0x9a, 0x33, 0x92, 0xee, 0x87, 0xb3, 0xe5, 0x4b, 0xb1, 0x7c, 0xfc, 0x1c, 0x5a, 0xab, 0x93, 0x24, + 0x4d, 0x94, 0x64, 0x0c, 0x71, 0xee, 0xd3, 0x23, 0xca, 0xfa, 0xb8, 0x8e, 0xc5, 0xd7, 0x59, 0xe3, + 0x20, 0x71, 0xbe, 0x40, 0x08, 0xa1, 0xd8, 0xf1, 0xaf, 0x39, 0x58, 0x5a, 0x7c, 0x09, 0x7a, 0xe7, + 0x31, 0x58, 0xb6, 0x8d, 0x9c, 0x1d, 0xc0, 0x05, 0xc2, 0xbc, 0x1e, 0xc2, 0xd9, 0x75, 0xc8, 0x35, + 0x64, 0x87, 0x91, 0x79, 0x10, 0x7a, 0xd1, 0x8b, 0xb8, 0x93, 0xc2, 0xce, 0xa4, 0x7a, 0x18, 0x74, + 0x9f, 0x4c, 0x3a, 0xd4, 0xe0, 0xf1, 0x3c, 0xe1, 0xf0, 0xe4, 0x47, 0x96, 0xbb, 0x11, 0x77, 0x41, + 0xdd, 0xc5, 0xe0, 0x70, 0x5c, 0x4f, 0xea, 0x78, 0xb9, 0x4a, 0x91, 0x0d, 0xce, 0xfe, 0x55, 0x35, + 0xb8, 0xc5, 0x99, 0x55, 0x15, 0xae, 0x86, 0xa6, 0x78, 0x6e, 0x64, 0x18, 0x92, 0x48, 0x0b, 0x86, + 0x20, 0x75, 0x23, 0x29, 0x8e, 0xe4, 0x0e, 0x6d, 0x6a, 0xf2, 0x78, 0xa3, 0x06, 0x56, 0x9e, 0x66, + 0x9b, 0xe9, 0x16, 0xcb, 0xef, 0x8c, 0x6e, 0x4c, 0xbc, 0x30, 0xc3, 0xc1, 0x45, 0x6e, 0xcf, 0x67, + 0x62, 0xa4, 0x99, 0xbf, 0xc4, 0x48, 0xf7, 0xbc, 0x6f, 0x19, 0x67, 0x0b, 0xb4, 0xc5, 0x20, 0x13, + 0x7f, 0xb1, 0xac, 0xa3, 0xc9, 0x3a, 0xed, 0xe9, 0xea, 0xc3, 0x49, 0xd6, 0x2c, 0x37, 0xe2, 0xc1, + 0x44, 0x09, 0xf1, 0x9f, 0x02, 0x5d, 0xba, 0xe5, 0x7f, 0x85, 0xd1, 0x7a, 0x12, 0xa0, 0x35, 0xdc, + 0xfc, 0x17, 0xa2, 0x8f, 0x34, 0x23, 0xca, 0x14, 0x7c, 0x12, 0xf0, 0x98, 0x02, 0xda, 0x4f, 0x41, + 0x8f, 0xd0, 0x75, 0xe6, 0x32, 0x38, 0xdb, 0xe2, 0x4e, 0x04, 0x11, 0x04, 0xf7, 0x6c, 0xd4, 0x62, + 0x49, 0x2d, 0x76, 0x07, 0x47, 0x92, 0x03, 0x4c, 0x40, 0x5f, 0xe1, 0x2f, 0x4c, 0x4e, 0xde, 0x85, + 0x40, 0xb3, 0x0f, 0x0b, 0x2d, 0x1d, 0x70, 0xb7, 0x18, 0x42, 0x9f, 0x05, 0x46, 0x80, 0x9e, 0x2c, + 0x03, 0x4d, 0xce, 0x58, 0x5f, 0x6b, 0xeb, 0x60, 0x05, 0x08, 0x9a, 0xc7, 0x80, 0xd1, 0x0b, 0x4f, + 0x66, 0x0b, 0xcc, 0x78, 0xd1, 0x00, 0xab, 0x88, 0x1c, 0x63, 0x03, 0x56, 0xd1, 0x78, 0x2c, 0x7d, + 0x77, 0x51, 0xd5, 0xaf, 0x35, 0x33, 0x2d, 0x48, 0x8c, 0x68, 0xa3, 0x71, 0xc6, 0x98, 0x05, 0xd6, + 0xb1, 0xb9, 0x19, 0x3d, 0xe2, 0xa1, 0xd1, 0x70, 0xd9, 0x2c, 0x58, 0xcd, 0xd1, 0x36, 0x37, 0x3f, + 0xc4, 0x36, 0x0d, 0x7d, 0x78, 0x17, 0x48, 0x7c, 0xc6, 0xb3, 0x69, 0x26, 0xe4, 0xbe, 0x60, 0x73, + 0x92, 0xe1, 0xa9, 0xd8, 0x58, 0x25, 0xc1, 0x02, 0x46, 0x1a, 0xc4, 0xa5, 0xc4, 0xe0, 0x09, 0x30, + 0xf3, 0xa8, 0x08, 0x84, 0x94, 0xda, 0x8f, 0x1f, 0x26, 0xb0, 0x0e, 0x13, 0xb8, 0x84, 0x99, 0x96, + 0x85, 0x30, 0xf0, 0x9f, 0xc2, 0x0f, 0xfc, 0x1f, 0xd4, 0x9b, 0x7a, 0x96, 0x56, 0x1d, 0x33, 0x0d, + 0x56, 0x5b, 0x2c, 0x60, 0xb7, 0xa3, 0x4b, 0xa4, 0x97, 0xee, 0x4e, 0x40, 0x53, 0x11, 0x00, 0x87, + 0x08, 0x6c, 0x27, 0x5a, 0x25, 0xc0, 0x7d, 0xaf, 0x56, 0xa8, 0xb2, 0x96, 0x63, 0x05, 0xa9, 0xaf, + 0x25, 0x56, 0xf4, 0xbd, 0xd2, 0xa8, 0x8c, 0x45, 0x04, 0xa3, 0x13, 0x53, 0x54, 0xbc, 0x1b, 0x57, + 0x56, 0x2a, 0x67, 0x8a, 0xe2, 0x86, 0xb5, 0xa6, 0xb9, 0xb7, 0xf5, 0xae, 0xaf, 0x84, 0xa5, 0x0b, + 0xae, 0x07, 0x1c, 0x1c, 0xe2, 0xd2, 0x0f, 0x5b, 0xd0, 0xc1, 0xdf, 0xc9, 0xe0, 0x30, 0x1a, 0xef, + 0xac, 0x4b, 0x3c, 0x97, 0x73, 0x71, 0x92, 0x6f, 0x06, 0x03, 0x74, 0x33, 0x63, 0xed, 0x05, 0x34, + 0x9f, 0xb9, 0xa7, 0x98, 0xd8, 0x30, 0x44, 0x6c, 0xc7, 0x9f, 0x6f, 0x12, 0x27, 0x93, 0x7d, 0x25, + 0xd5, 0xc8, 0x56, 0xf8, 0xed, 0x3c, 0xdd, 0x54, 0x8f, 0xd5, 0xf2, 0x42, 0x5f, 0xd9, 0xce, 0xf9, + 0x3f, 0xf3, 0x62, 0x09, 0x30, 0x5a, 0x28, 0x34, 0x1a, 0x7d, 0x85, 0xa6, 0xa4, 0x1a, 0x79, 0x4c, + 0x11, 0x2b, 0xa1, 0x14, 0x00, 0xc0, 0x38, 0x13, 0x3b, 0x6b, 0xd8, 0x1f, 0x1e, 0x3a, 0xfa, 0x8d, + 0x5f, 0x7d, 0x07, 0xcf, 0x5d, 0xea, 0x2b, 0x73, 0x3c, 0xc4, 0x0a, 0x79, 0x59, 0x11, 0xec, 0xe2, + 0x5f, 0xfc, 0x5c, 0xa8, 0x66, 0x45, 0x46, 0x2e, 0x8a, 0xd1, 0xb5, 0x23, 0x0e, 0xc4, 0xc5, 0x01, + 0xc8, 0x74, 0xc1, 0x02, 0xdf, 0x47, 0x74, 0xff, 0xe0, 0xcc, 0xe4, 0x60, 0x6b, 0x3a, 0x89, 0xd4, + 0xc9, 0x7d, 0xc5, 0x2b, 0xe0, 0x04, 0x12, 0x5a, 0x9a, 0xe5, 0xe8, 0x75, 0xa6, 0xf6, 0x20, 0xc1, + 0x0e, 0x54, 0xe6, 0xa8, 0xcb, 0x3e, 0xc9, 0x6a, 0x86, 0x79, 0xba, 0xe6, 0x06, 0x55, 0x5a, 0x11, + 0xb7, 0x7a, 0x03, 0x71, 0x64, 0xd3, 0x68, 0x3c, 0x18, 0x8c, 0x35, 0xcb, 0x13, 0x65, 0xef, 0xec, + 0xef, 0x96, 0xf4, 0x09, 0x0b, 0x2d, 0x70, 0x79, 0xd7, 0x9e, 0x22, 0x98, 0x64, 0x64, 0x05, 0xce, + 0x65, 0x51, 0x00, 0x23, 0x5c, 0xb9, 0x0e, 0xd6, 0x90, 0x70, 0xdf, 0x8f, 0xbf, 0x97, 0x3c, 0x54, + 0x69, 0x03, 0x37, 0xe0, 0xd3, 0x6e, 0xb1, 0x1d, 0x9d, 0xfc, 0xdc, 0x3b, 0xeb, 0x87, 0x9f, 0xcd, + 0x23, 0xf9, 0x66, 0x73, 0xdc, 0xd9, 0x13, 0xe9, 0x87, 0x28, 0x78, 0x67, 0xb6, 0xac, 0x3b, 0x76, + 0x91, 0xb6, 0x34, 0xbe, 0xa5, 0x7f, 0x66, 0xd5, 0x22, 0xe7, 0x0d, 0x43, 0xc3, 0x6a, 0xe1, 0x56, + 0xce, 0x31, 0x70, 0x71, 0xd5, 0x9e, 0xec, 0xc8, 0x09, 0x17, 0x51, 0x84, 0xe2, 0x7a, 0xeb, 0xa7, + 0xb7, 0x64, 0x4f, 0x76, 0x2c, 0x14, 0x9f, 0xa0, 0x9f, 0x46, 0xe3, 0x83, 0xff, 0x86, 0x4f, 0xf3, + 0x2f, 0x38, 0x33, 0x4d, 0xc0, 0x5c, 0x04, 0xc1, 0xcb, 0x47, 0x29, 0x84, 0xb1, 0x64, 0xa6, 0x2d, + 0x80, 0xf1, 0xdd, 0x4c, 0x0f, 0x76, 0xe2, 0xe7, 0xa5, 0x2c, 0x61, 0x23, 0x95, 0xc5, 0x63, 0x62, + 0x05, 0xd0, 0xeb, 0x6a, 0x6e, 0x32, 0x7a, 0x7c, 0xd3, 0xd2, 0xb6, 0xde, 0x30, 0xd7, 0xa1, 0x97, + 0x11, 0xe0, 0xa2, 0xdf, 0xe2, 0x44, 0x82, 0xf5, 0xda, 0x48, 0x60, 0xf1, 0xe2, 0xfe, 0x19, 0x2f, + 0x42, 0x28, 0xee, 0xf3, 0x08, 0xa2, 0xf7, 0x71, 0x02, 0xba, 0xfc, 0xca, 0xb5, 0xf7, 0x45, 0x90, + 0xa6, 0x86, 0x41, 0x25, 0x8b, 0x23, 0x8d, 0xb4, 0xc5, 0x36, 0x21, 0xf3, 0x87, 0x86, 0x47, 0x38, + 0x39, 0x2b, 0x43, 0x32, 0x69, 0xd4, 0x98, 0x17, 0x50, 0x71, 0x03, 0xad, 0x05, 0x85, 0xef, 0x16, + 0x2f, 0xa4, 0x6e, 0x49, 0x78, 0x9e, 0x4b, 0xdd, 0x89, 0xb5, 0xd7, 0x08, 0x42, 0x34, 0xbc, 0x46, + 0x47, 0xf3, 0xf3, 0xdb, 0x5b, 0x59, 0xea, 0xf5, 0x62, 0xeb, 0xfa, 0xf3, 0xe8, 0x99, 0x2d, 0x06, + 0x8b, 0x75, 0x5a, 0x65, 0xf3, 0xd7, 0xfd, 0x28, 0x33, 0x0c, 0x11, 0xd5, 0xcc, 0xa1, 0x13, 0xc5, + 0x9a, 0xaf, 0x30, 0xd1, 0xed, 0xbd, 0x69, 0x7a, 0xff, 0x43, 0x12, 0x4f, 0xa2, 0x43, 0x20, 0x38, + 0x3a, 0xf4, 0xc8, 0x9f, 0x24, 0xaa, 0x59, 0xec, 0x89, 0x9d, 0xc5, 0xc4, 0x85, 0x63, 0xc0, 0x87, + 0xec, 0xda, 0x88, 0x85, 0xde, 0xbd, 0x64, 0xad, 0xca, 0xfa, 0xd0, 0x4e, 0xae, 0x5c, 0xf9, 0x5a, + 0x7e, 0x13, 0x36, 0x20, 0xd9, 0xdb, 0x39, 0x0b, 0xfc, 0xfc, 0xaf, 0xd6, 0x8a, 0x03, 0x61, 0x17, + 0x77, 0xf7, 0xf2, 0xc2, 0x79, 0x23, 0x4b, 0xc3, 0x42, 0xc7, 0x82, 0x46, 0xdb, 0xd2, 0x10, 0x85, + 0x89, 0xc8, 0x3c, 0xee, 0xcc, 0xa1, 0xd1, 0xa1, 0x27, 0x6f, 0xa3, 0xff, 0x29, 0xc2, 0xa0, 0x87, + 0x06, 0x5b, 0xa3, 0x08, 0x22, 0x23, 0xd2, 0x6c, 0xe7, 0x8e, 0x7a, 0x43, 0xcf, 0x37, 0x72, 0x76, + 0xe2, 0x09, 0x3f, 0xc4, 0x9f, 0xb5, 0xd0, 0xde, 0x90, 0xbe, 0xe4, 0x1c, 0xd9, 0x26, 0x8d, 0x86, + 0xa3, 0x7b, 0xd5, 0x23, 0x71, 0x46, 0x64, 0x69, 0xc9, 0x96, 0x45, 0x6d, 0x2c, 0x36, 0x60, 0x42, + 0x59, 0x40, 0xa7, 0xb7, 0x8a, 0x2d, 0xce, 0xfd, 0xe5, 0xec, 0x30, 0x9f, 0x56, 0x5e, 0x92, 0xa1, + 0x70, 0x41, 0x2f, 0xa2, 0x2d, 0x30, 0x1c, 0xe9, 0xee, 0xd6, 0x48, 0x98, 0x9b, 0x7f, 0x50, 0x73, + 0x90, 0x05, 0x46, 0xd9, 0xc3, 0x94, 0x93, 0x0c, 0xee, 0x52, 0xe3, 0x7f, 0xff, 0x0e, 0x37, 0xdd, + 0x8d, 0xfd, 0x36, 0xf1, 0xdc, 0x3b, 0x40, 0xa0, 0x8f, 0x1e, 0x80, 0x86, 0xda, 0xfc, 0x43, 0x80, + 0x4c, 0x2f, 0x1c, 0x2d, 0x74, 0x4d, 0x32, 0xff, 0x83, 0x61, 0xfe, 0xa7, 0xe7, 0x41, 0xba, 0x31, + 0x2d, 0xe1, 0xbf, 0x5a, 0xab, 0x62, 0xe8, 0x3c, 0x37, 0xd2, 0x97, 0xa4, 0x3f, 0x1e, 0x22, 0x1f, + 0x26, 0x29, 0x6a, 0x27, 0x33, 0x23, 0x94, 0x65, 0xf0, 0x7b, 0xbf, 0xd4, 0x18, 0xb3, 0xe1, 0x6e, + 0x4d, 0x44, 0xff, 0x88, 0x20, 0xca, 0xa2, 0x4c, 0x3c, 0x12, 0x28, 0x95, 0x74, 0xfe, 0x65, 0x66, + 0xc6, 0x8b, 0xcd, 0x98, 0x39, 0xbe, 0x2e, 0x7e, 0xc1, 0x03, 0xd0, 0x92, 0xac, 0x8d, 0xdb, 0x22, + 0x30, 0xc3, 0xef, 0x22, 0x1f, 0x24, 0x7c, 0xc7, 0x84, 0x6d, 0x4c, 0x30, 0xb6, 0xd3, 0xd9, 0xdc, + 0xe6, 0xe6, 0xa7, 0xfa, 0xd7, 0x68, 0x78, 0xe8, 0x00, 0x38, 0xd0, 0xd5, 0xe5, 0xa3, 0xb1, 0xb9, + 0xad, 0x2d, 0x8d, 0xf3, 0x28, 0x72, 0xab, 0xe1, 0x60, 0xdb, 0xb2, 0x5b, 0x86, 0x1f, 0xe4, 0x24, + 0xe1, 0x24, 0x7c, 0x71, 0xbc, 0x26, 0x80, 0x84, 0x59, 0x07, 0xa3, 0x8b, 0x3b, 0x44, 0x3f, 0x8b, + 0x4c, 0x5c, 0x5b, 0xf3, 0x48, 0x3f, 0xc4, 0x28, 0xd8, 0x81, 0x62, 0x61, 0xd5, 0xc3, 0x35, 0x2d, + 0xce, 0x47, 0xe5, 0x21, 0xc1, 0x20, 0xe0, 0x7a, 0x70, 0xa8, 0x31, 0xee, 0xb7, 0x4d, 0x71, 0xd1, + 0x83, 0x8e, 0x2d, 0x48, 0xdb, 0x4a, 0xc6, 0xf4, 0x58, 0xff, 0x1a, 0xf3, 0x98, 0x22, 0xbb, 0x23, + 0xd6, 0x62, 0xaf, 0x59, 0x3d, 0x80, 0x33, 0x3e, 0x06, 0x97, 0x1e, 0xf8, 0x89, 0x27, 0x2b, 0x87, + 0x29, 0x20, 0x38, 0xe6, 0x90, 0x08, 0xe9, 0x74, 0xda, 0x65, 0xca, 0x93, 0xef, 0x5d, 0xf1, 0x35, + 0x06, 0x52, 0x67, 0xbc, 0x01, 0x03, 0x68, 0xfc, 0x2d, 0x0c, 0x90, 0xcf, 0x3f, 0xeb, 0x7b, 0x73, + 0x93, 0x3d, 0x99, 0xfc, 0x62, 0x6b, 0x75, 0x02, 0x77, 0xfd, 0x24, 0x4c, 0xde, 0x7b, 0x03, 0xb3, + 0x91, 0xdf, 0xa1, 0x93, 0xf2, 0xf7, 0xef, 0xa8, 0xa4, 0x03, 0x29, 0x0c, 0xa9, 0xb5, 0x19, 0x6a, + 0xc4, 0xa1, 0xd6, 0x40, 0x9a, 0x40, 0x4b, 0xf1, 0xb5, 0x95, 0xf9, 0xf1, 0xdd, 0x3c, 0x50, 0xe5, + 0x96, 0xba, 0x31, 0xf7, 0x8e, 0x75, 0xf3, 0x74, 0xb4, 0xe5, 0x43, 0xd5, 0x40, 0x4b, 0x83, 0x1c, + 0x1c, 0x3d, 0xfe, 0x8d, 0x9e, 0x03, 0x07, 0x63, 0xbe, 0x9c, 0x6b, 0x60, 0xe2, 0xd6, 0x52, 0xf4, + 0xd6, 0x52, 0x8e, 0xb6, 0x3e, 0x63, 0xf8, 0x44, 0xb7, 0xf7, 0x73, 0x52, 0x90, 0x20, 0xbc, 0x39, + 0x01, 0x67, 0xdf, 0x07, 0xf9, 0x86, 0xd6, 0x47, 0xd9, 0x16, 0x87, 0xc3, 0xf9, 0xf9, 0x36, 0xbe, + 0x67, 0xbc, 0xcb, 0x1e, 0x12, 0xdf, 0x33, 0xb8, 0xd8, 0x8a, 0xdf, 0x7d, 0x77, 0xa0, 0x6f, 0x27, + 0xfe, 0x2f, 0xa3, 0x6d, 0x49, 0x12, 0x1f, 0xc4, 0x00, 0x00 }; diff --git a/wled00/html_ui.h b/wled00/html_ui.h index 73ccdb57..50817c0c 100644 --- a/wled00/html_ui.h +++ b/wled00/html_ui.h @@ -7,1916 +7,1943 @@ */ // Autogenerated from wled00/data/index.htm, do not edit!! -const uint16_t PAGE_index_L = 30558; +const uint16_t PAGE_index_L = 30984; const uint8_t PAGE_index[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd4, 0xbd, 0x69, 0x7a, 0xe3, 0x3a, - 0xb2, 0x20, 0xfa, 0xdf, 0xab, 0x60, 0x32, 0xab, 0x9c, 0xd2, 0x11, 0x2d, 0x91, 0x9a, 0x87, 0x94, - 0x7d, 0x65, 0x79, 0x9e, 0x6d, 0x79, 0xce, 0xca, 0xef, 0x26, 0x25, 0x51, 0x12, 0x6d, 0x8a, 0xa4, - 0x49, 0x6a, 0xb2, 0x8e, 0x7a, 0x19, 0xfd, 0x7d, 0x6f, 0x03, 0xef, 0xc7, 0x5b, 0xc0, 0x5b, 0x40, - 0x2f, 0xa5, 0x57, 0xf2, 0x22, 0x00, 0x70, 0x14, 0x25, 0x3b, 0x4f, 0x9d, 0xdb, 0xaf, 0xfb, 0x54, - 0xa5, 0x45, 0x82, 0x40, 0x00, 0x08, 0x04, 0x02, 0x11, 0x81, 0x40, 0xe0, 0xfb, 0x97, 0xbd, 0xcb, - 0xe6, 0xed, 0xd3, 0xd5, 0x3e, 0x37, 0x70, 0x86, 0xda, 0x36, 0xf7, 0x1d, 0x7f, 0x38, 0x4d, 0xd6, - 0xfb, 0x75, 0x5e, 0xd1, 0x79, 0x4c, 0x50, 0xe4, 0x2e, 0xfc, 0x0c, 0x15, 0x47, 0xe6, 0x74, 0x79, - 0xa8, 0xd4, 0xf9, 0xb1, 0xaa, 0x4c, 0x4c, 0xc3, 0x72, 0x78, 0x6e, 0xa3, 0x63, 0xe8, 0x8e, 0xa2, - 0x3b, 0x75, 0x7e, 0xa2, 0x76, 0x9d, 0x41, 0xbd, 0xab, 0x8c, 0xd5, 0x8e, 0xb2, 0x45, 0x5e, 0x04, - 0x55, 0x57, 0x1d, 0x55, 0xd6, 0xb6, 0xec, 0x8e, 0xac, 0x29, 0x75, 0x49, 0x18, 0x42, 0xc2, 0x70, - 0x34, 0x74, 0xdf, 0x79, 0x17, 0xe8, 0x46, 0x67, 0x20, 0x5b, 0xb6, 0x02, 0x40, 0x46, 0x4e, 0x6f, - 0xab, 0xcc, 0x87, 0x2b, 0x73, 0x06, 0xca, 0x50, 0xd9, 0xea, 0x18, 0x9a, 0x61, 0xf1, 0x9c, 0x57, - 0xdd, 0xd7, 0x2c, 0xf9, 0x2f, 0x00, 0xc3, 0xfd, 0x32, 0x53, 0x6c, 0x9e, 0x15, 0x95, 0x4d, 0x53, - 0x53, 0xb6, 0x86, 0x46, 0x5b, 0x85, 0x9f, 0x89, 0xd2, 0xde, 0x82, 0x84, 0xad, 0x8e, 0x6c, 0xca, - 0x6d, 0x4d, 0xc1, 0x92, 0x9a, 0xaa, 0xbf, 0x72, 0x96, 0xa2, 0xd5, 0x79, 0x7b, 0x00, 0xdd, 0xe9, - 0x8c, 0x1c, 0x4e, 0x05, 0x38, 0xd0, 0xad, 0x81, 0xa5, 0xf4, 0xea, 0x7c, 0x57, 0x76, 0xe4, 0xaa, - 0x3a, 0x94, 0xfb, 0x4a, 0x66, 0xba, 0x85, 0x5f, 0x6a, 0x6d, 0xd9, 0x56, 0x8a, 0x79, 0xa1, 0xd1, - 0x68, 0xec, 0x36, 0x1a, 0xfb, 0x8d, 0x7d, 0xf8, 0x8b, 0xbf, 0x87, 0x8d, 0xe6, 0x21, 0x3e, 0x1d, - 0xf4, 0xe1, 0xcf, 0xb1, 0x76, 0x7d, 0xfb, 0xda, 0xb9, 0x68, 0x0e, 0x8c, 0x53, 0x4c, 0xdb, 0xbb, - 0xd3, 0x8e, 0x6f, 0x0e, 0x8e, 0xf1, 0xf1, 0x9a, 0xe6, 0xee, 0x93, 0xbc, 0x47, 0x99, 0xab, 0xcc, - 0x13, 0xa6, 0xec, 0x4b, 0x27, 0x37, 0xfb, 0x07, 0x77, 0x97, 0xc7, 0xd2, 0x0b, 0x24, 0x65, 0xae, - 0x26, 0x97, 0xd3, 0xfe, 0xc5, 0xa1, 0xd2, 0xb8, 0x3b, 0x9f, 0xee, 0x57, 0x0e, 0x8b, 0x9d, 0xeb, - 0xe6, 0xe9, 0xde, 0x43, 0x63, 0x60, 0x36, 0xf6, 0x9e, 0xb3, 0xbd, 0xf2, 0xd5, 0xf9, 0xcb, 0x6e, - 0x2b, 0x77, 0xfd, 0x20, 0x96, 0xaf, 0x4f, 0xb3, 0xe2, 0xa9, 0xfc, 0xdc, 0xcc, 0xf6, 0x7b, 0xcd, - 0xca, 0xa0, 0xa9, 0xbf, 0x19, 0x23, 0xe3, 0xa2, 0xdf, 0xb8, 0xe9, 0x3f, 0x95, 0xde, 0xcf, 0xa7, - 0x8d, 0xd9, 0x85, 0x76, 0xd7, 0xbd, 0x3e, 0xd2, 0x1e, 0xd5, 0x86, 0x76, 0x99, 0x3d, 0xdf, 0x6b, - 0xec, 0x15, 0x73, 0xfb, 0xf7, 0x6f, 0x17, 0x47, 0x0d, 0x45, 0x6c, 0x90, 0x86, 0x68, 0x07, 0xb7, - 0xaf, 0xad, 0xd1, 0xf5, 0xb0, 0xd9, 0xe4, 0xb7, 0x37, 0xb8, 0xef, 0x8e, 0xea, 0x68, 0xca, 0xf6, - 0xc3, 0xd9, 0xfe, 0xde, 0xf7, 0x0c, 0x7d, 0xe6, 0xbe, 0xdb, 0x1d, 0x4b, 0x35, 0x9d, 0xed, 0x8d, - 0xde, 0x48, 0xef, 0x38, 0xaa, 0xa1, 0x73, 0x3d, 0x45, 0xe9, 0xb6, 0xe5, 0xce, 0x6b, 0x22, 0x39, - 0x5f, 0x8c, 0x65, 0x8b, 0x83, 0x21, 0x37, 0x3a, 0xa3, 0x21, 0x60, 0x3e, 0xdd, 0x57, 0x9c, 0x7d, - 0x4d, 0xc1, 0x47, 0x7b, 0x77, 0x76, 0x2b, 0xf7, 0x2f, 0x60, 0x0c, 0x12, 0x3c, 0x52, 0x0f, 0x9f, - 0xfc, 0x21, 0xfe, 0x14, 0x34, 0x3f, 0x6b, 0xc7, 0x52, 0x64, 0x47, 0x61, 0xb9, 0x13, 0x3c, 0xad, - 0x85, 0x4f, 0xd6, 0xb4, 0xb4, 0x33, 0x33, 0xd9, 0xc0, 0xa9, 0x1d, 0x19, 0x6b, 0xcc, 0xbc, 0xc8, - 0x63, 0x99, 0x65, 0x10, 0xb4, 0xb4, 0x6d, 0x75, 0xea, 0xbc, 0x6a, 0x19, 0xe9, 0x17, 0x1b, 0x5f, - 0xe5, 0x6e, 0x77, 0x7f, 0x0c, 0x30, 0xce, 0x54, 0x1b, 0x46, 0x5f, 0xb1, 0x12, 0xbc, 0x66, 0x40, - 0x7d, 0x82, 0x52, 0xdf, 0x9e, 0x77, 0x4c, 0xb5, 0xf3, 0x5a, 0xd7, 0x95, 0x09, 0x87, 0xf9, 0x9b, - 0x48, 0x40, 0x57, 0x90, 0x82, 0x99, 0xbe, 0x9a, 0xe4, 0x81, 0x17, 0xe6, 0x84, 0x52, 0xab, 0xd9, - 0xa2, 0x28, 0x4c, 0x06, 0x8a, 0xa2, 0x9d, 0xa9, 0xfd, 0x81, 0xa3, 0x2b, 0xb6, 0x5d, 0xfd, 0x22, - 0xd1, 0x94, 0x86, 0xde, 0xd7, 0x94, 0x6a, 0xb6, 0xc4, 0x32, 0xec, 0xa9, 0x96, 0x42, 0x30, 0x51, - 0xe5, 0x3b, 0x9a, 0xd1, 0x79, 0x9d, 0xa8, 0xb6, 0x02, 0x0d, 0x91, 0x67, 0xc6, 0xc8, 0xa9, 0xfe, - 0x98, 0x77, 0x8c, 0xa1, 0x69, 0xe8, 0xd0, 0xa0, 0x2a, 0xd6, 0x39, 0x52, 0xd3, 0x0f, 0x58, 0x48, - 0x30, 0x4c, 0x2c, 0x62, 0x57, 0xe7, 0x8b, 0xc5, 0xcf, 0x45, 0x52, 0x20, 0x2d, 0x4b, 0x1b, 0x7a, - 0x82, 0x57, 0x75, 0x13, 0xca, 0x29, 0x3a, 0x34, 0x39, 0x91, 0x84, 0x36, 0xc3, 0x2c, 0x20, 0x0d, - 0x4d, 0x48, 0xc9, 0x50, 0x3e, 0x42, 0xfe, 0x55, 0x98, 0x27, 0x7a, 0x5f, 0x61, 0x59, 0x47, 0x26, - 0x90, 0xa7, 0x72, 0xd5, 0xd2, 0xd4, 0xae, 0x62, 0xd9, 0x09, 0xc8, 0x5f, 0xc3, 0x01, 0x71, 0x3e, - 0xc6, 0xb2, 0xf3, 0x01, 0x96, 0x1d, 0x8a, 0x65, 0x0b, 0x2b, 0x73, 0x8c, 0x51, 0x67, 0x40, 0x90, - 0xed, 0xac, 0x45, 0x36, 0xc9, 0x6c, 0xd7, 0x6f, 0xf0, 0xe7, 0x96, 0x94, 0x81, 0xae, 0x8c, 0xcc, - 0xc4, 0x37, 0xd2, 0xc3, 0x1f, 0xb4, 0x42, 0x92, 0x89, 0xff, 0xf9, 0x4d, 0x98, 0x43, 0x63, 0x35, - 0xc5, 0x81, 0xc6, 0x42, 0xae, 0x63, 0x98, 0xb8, 0xd6, 0x58, 0xd6, 0x12, 0xa4, 0x5b, 0x3c, 0xa2, - 0x10, 0xbe, 0x29, 0x7c, 0xbd, 0xee, 0x77, 0x05, 0x7a, 0xd2, 0x9d, 0xb5, 0x1c, 0xe8, 0xce, 0xe6, - 0x66, 0xa2, 0xa3, 0x29, 0xb2, 0xe5, 0x95, 0x72, 0x92, 0x82, 0xa1, 0x9f, 0x41, 0x43, 0x12, 0xc9, - 0xe4, 0x42, 0x90, 0x44, 0x11, 0x31, 0x07, 0x60, 0x6f, 0xd5, 0xa1, 0x02, 0x83, 0x42, 0xa1, 0x0e, - 0xd2, 0xd0, 0x59, 0x40, 0x73, 0x73, 0xa0, 0x6a, 0x5d, 0x28, 0xf2, 0xc9, 0x8c, 0x1a, 0xcb, 0xb8, - 0xf1, 0x3d, 0xc3, 0x66, 0x02, 0x4c, 0x09, 0x67, 0x06, 0x53, 0x63, 0xe3, 0x3f, 0x7a, 0xc0, 0x70, - 0xb6, 0x7a, 0x72, 0x47, 0x99, 0xb3, 0xa7, 0xa1, 0xaa, 0xcd, 0xaa, 0x0f, 0xc7, 0xc0, 0x26, 0xec, - 0x1a, 0x20, 0xb0, 0x3a, 0xb2, 0xb4, 0x04, 0xe1, 0x20, 0xf8, 0x3d, 0x33, 0x31, 0x7a, 0xbd, 0x6c, - 0xcd, 0xe5, 0x74, 0x84, 0xd1, 0xb9, 0xdc, 0xa4, 0x2b, 0x56, 0x0e, 0xcf, 0xfb, 0x0d, 0xc2, 0x4b, - 0x1a, 0x0d, 0xfd, 0xae, 0xd1, 0xb0, 0xe9, 0x04, 0x95, 0xf0, 0xef, 0xf0, 0xa0, 0xd1, 0x38, 0x7c, - 0x1e, 0xf6, 0x1b, 0x2b, 0xff, 0xdb, 0x1d, 0x36, 0x1a, 0xfd, 0xc7, 0xc9, 0x4d, 0xb3, 0xf1, 0xd6, - 0x79, 0x3a, 0x79, 0x3e, 0x6e, 0xdc, 0x3e, 0x35, 0x4f, 0x1a, 0x17, 0x93, 0xe6, 0xbb, 0xd1, 0xd8, - 0x6d, 0x02, 0x53, 0x9a, 0x3c, 0x1d, 0x1d, 0xef, 0xda, 0xa5, 0xbd, 0xb2, 0x7a, 0x39, 0x79, 0xef, - 0x0f, 0x73, 0xe7, 0x8f, 0xe7, 0xfa, 0xfb, 0x73, 0xf3, 0xd5, 0xd1, 0x5f, 0x3a, 0xed, 0x8b, 0xd4, - 0xb5, 0x76, 0x72, 0x26, 0x9f, 0xe4, 0x46, 0xda, 0xdd, 0x99, 0xa9, 0x99, 0x0f, 0xc5, 0xbb, 0xb7, - 0x07, 0xd5, 0x50, 0x5a, 0x15, 0xe9, 0x64, 0xa6, 0x88, 0x2f, 0x77, 0xda, 0xc9, 0xe4, 0xd9, 0x2a, - 0xe8, 0xb7, 0xdd, 0xfd, 0xdc, 0x99, 0xee, 0x74, 0xaf, 0xc6, 0x8d, 0x7e, 0xaa, 0xe7, 0x64, 0x7a, - 0x6d, 0xfb, 0xcc, 0x3e, 0xd4, 0x2e, 0xce, 0x46, 0x03, 0x6d, 0x78, 0xfd, 0x72, 0xaa, 0x96, 0x2e, - 0xae, 0xf6, 0xf6, 0x8f, 0xfb, 0x93, 0xdb, 0x21, 0x70, 0x31, 0xb9, 0x38, 0xec, 0x6a, 0xa9, 0xd6, - 0xd1, 0xdd, 0xee, 0x60, 0xff, 0xb8, 0x7b, 0x74, 0x30, 0x95, 0x5f, 0x4b, 0x76, 0x7e, 0x3f, 0x33, - 0x7b, 0x1f, 0x9c, 0xb4, 0x5e, 0x9a, 0xa5, 0xdd, 0xeb, 0xeb, 0xb3, 0xde, 0xde, 0xc4, 0x30, 0x0f, - 0x32, 0x6a, 0x51, 0x7e, 0x6b, 0xed, 0x6b, 0xfb, 0x07, 0x7b, 0x8f, 0xd3, 0xf2, 0xf3, 0xfd, 0xc3, - 0xcb, 0x2c, 0x67, 0xcd, 0x86, 0xf9, 0x8b, 0xe2, 0x81, 0xf6, 0x7c, 0x9d, 0x1f, 0x8c, 0x52, 0xfa, - 0xa3, 0x7d, 0x78, 0xbc, 0x77, 0x7e, 0x7d, 0x90, 0xeb, 0x37, 0xa6, 0xb2, 0x94, 0x6f, 0xf4, 0x1b, - 0x96, 0x73, 0x7f, 0x3e, 0xe8, 0xbd, 0xf6, 0x5f, 0x7a, 0xfb, 0x8d, 0xb6, 0xda, 0x1c, 0x4c, 0x46, - 0xad, 0xe3, 0xc9, 0xfe, 0x5d, 0x73, 0x38, 0xea, 0x5e, 0x0d, 0xd4, 0xeb, 0xee, 0x6d, 0xd1, 0x1a, - 0x1f, 0xbf, 0x9c, 0xb5, 0x6e, 0x9e, 0xf7, 0x27, 0x7b, 0x83, 0x83, 0xca, 0xee, 0xb1, 0x6d, 0x18, - 0xc7, 0x85, 0xdc, 0xed, 0xf1, 0xcd, 0xb1, 0x71, 0x7c, 0xb7, 0x57, 0x7e, 0x9d, 0x5d, 0x3c, 0x1f, - 0x97, 0xee, 0x5e, 0x1a, 0xb3, 0x73, 0xeb, 0x26, 0x23, 0x9f, 0x67, 0xf6, 0x26, 0xf2, 0xa5, 0x69, - 0xbc, 0xcb, 0x83, 0xca, 0xd9, 0x61, 0xd3, 0x7e, 0xca, 0xbe, 0x5f, 0x64, 0x9f, 0x2e, 0xdf, 0xed, - 0xec, 0x59, 0x6e, 0xfa, 0xa6, 0x5c, 0x98, 0xf9, 0xf7, 0xc7, 0x97, 0xb7, 0x72, 0xfb, 0xf1, 0x36, - 0x33, 0x38, 0xdf, 0x3d, 0x7b, 0xc9, 0x14, 0x72, 0x4f, 0x7b, 0x8d, 0xe3, 0x56, 0xaa, 0x34, 0x2a, - 0x16, 0xcb, 0x7a, 0xee, 0x28, 0x75, 0x74, 0x73, 0xd5, 0x7d, 0xee, 0x4a, 0xa3, 0xdc, 0xed, 0x7b, - 0xf7, 0xe6, 0xb9, 0x7b, 0x7f, 0x7e, 0xdb, 0x3b, 0xd6, 0x0a, 0x47, 0xbd, 0xd3, 0x7e, 0x57, 0x6a, - 0x97, 0x5a, 0xe3, 0xb7, 0x6e, 0xe5, 0xa1, 0x32, 0x32, 0xad, 0xee, 0x55, 0xf9, 0xfa, 0xf6, 0x72, - 0xa8, 0xc8, 0xef, 0x85, 0xdb, 0xab, 0xcb, 0x9b, 0x13, 0x6d, 0x6f, 0xef, 0xe5, 0xe8, 0xfe, 0xe5, - 0x50, 0x6c, 0x5c, 0x9c, 0x5f, 0x3f, 0xd9, 0xc3, 0x1b, 0xeb, 0x54, 0x1b, 0x9a, 0xb3, 0xb7, 0xfb, - 0xd2, 0xeb, 0xa8, 0x7d, 0x7c, 0xdd, 0xcc, 0x1e, 0xb6, 0x8e, 0x5f, 0x0f, 0x5a, 0xa9, 0x73, 0x5d, - 0x69, 0x9e, 0xe4, 0xcb, 0x27, 0x27, 0x07, 0xf7, 0xcd, 0xc1, 0x75, 0x6f, 0x34, 0x39, 0x3d, 0x37, - 0xb3, 0xb3, 0xbb, 0x8a, 0x39, 0x7c, 0x93, 0xee, 0x4f, 0xef, 0x6e, 0x8a, 0x96, 0xe2, 0x88, 0x87, - 0xa6, 0xd8, 0x7a, 0xb9, 0x7f, 0xba, 0xb9, 0x39, 0x48, 0x3d, 0xbe, 0x94, 0x52, 0x97, 0xea, 0x5d, - 0xeb, 0x35, 0x73, 0x78, 0xfc, 0x3e, 0x92, 0x86, 0xea, 0xd1, 0xf3, 0xc3, 0x34, 0xd5, 0x2f, 0x3f, - 0x49, 0x37, 0x77, 0xaf, 0xce, 0xd5, 0xf0, 0xed, 0x58, 0x75, 0x6e, 0x6e, 0x1f, 0xef, 0x2f, 0xde, - 0xdf, 0x9b, 0xce, 0xe8, 0xe0, 0xea, 0xb4, 0x73, 0x24, 0xbe, 0xdf, 0xec, 0x1e, 0xa6, 0x9e, 0x2a, - 0x99, 0xa6, 0x3e, 0xd8, 0x95, 0xb3, 0xe2, 0xb8, 0x60, 0x1c, 0xf5, 0xec, 0xfd, 0xbb, 0xf3, 0xfe, - 0xe3, 0xf9, 0xd5, 0x7e, 0xef, 0xb2, 0xf0, 0xdc, 0x39, 0x99, 0x8a, 0x07, 0xc7, 0x57, 0xea, 0xfd, - 0x6c, 0xd2, 0x7f, 0x69, 0x17, 0xcf, 0x8f, 0x47, 0xf7, 0x29, 0xe3, 0x39, 0x3f, 0xce, 0xbe, 0xbe, - 0x16, 0x33, 0xef, 0xfa, 0xf1, 0x74, 0xef, 0xd4, 0xea, 0x8f, 0xce, 0xb3, 0xd9, 0x59, 0xaa, 0xfd, - 0x50, 0x9e, 0xdc, 0x1d, 0xbe, 0xa9, 0x25, 0xf9, 0xac, 0xdc, 0xbb, 0x3e, 0x79, 0x9f, 0xe8, 0xcd, - 0x97, 0xb2, 0x73, 0x6c, 0x9a, 0xdd, 0xe3, 0x4a, 0xfb, 0x69, 0xaf, 0x75, 0x7f, 0x72, 0xdf, 0xbc, - 0x3e, 0xd6, 0x55, 0xf3, 0x41, 0x3c, 0x6a, 0x3b, 0x1d, 0xad, 0x73, 0x5b, 0x1a, 0x37, 0x67, 0x67, - 0xc3, 0x47, 0xb9, 0x75, 0x6f, 0x5d, 0xb7, 0x2e, 0xce, 0x67, 0x6d, 0xf9, 0xe4, 0x64, 0x77, 0x90, - 0xbd, 0x52, 0x1f, 0xad, 0xc7, 0x76, 0xbf, 0x5b, 0x6c, 0xb4, 0xdf, 0x94, 0x4e, 0x77, 0xef, 0xf6, - 0xb2, 0xb2, 0x7f, 0xbd, 0x7f, 0xac, 0x3c, 0x88, 0xf7, 0x57, 0x0f, 0xd7, 0x9d, 0xee, 0x75, 0x59, - 0x73, 0xae, 0x2e, 0xf7, 0x47, 0xa9, 0x52, 0xf1, 0x2d, 0x7b, 0x3c, 0xbd, 0xbb, 0x35, 0x4e, 0x94, - 0x07, 0xb3, 0xf7, 0x72, 0xad, 0x1e, 0x1d, 0x1d, 0x15, 0x60, 0x2a, 0xed, 0x9d, 0xbd, 0x48, 0xed, - 0xa3, 0xfe, 0xf5, 0xf4, 0xd1, 0xbe, 0x83, 0x0e, 0x9d, 0x3e, 0xb5, 0xfb, 0xa9, 0xe6, 0x14, 0xfe, - 0x57, 0xac, 0x28, 0x47, 0x9d, 0xcb, 0x31, 0xb0, 0xe8, 0x13, 0x49, 0x2b, 0xb6, 0x45, 0x7d, 0xaf, - 0xf4, 0x72, 0x98, 0x6a, 0xb7, 0x1a, 0x52, 0xb7, 0xf9, 0x7c, 0x3f, 0x1d, 0x4e, 0xca, 0xcf, 0x27, - 0x99, 0xe3, 0x27, 0x67, 0x7a, 0xe5, 0xb4, 0x4f, 0xa6, 0x9a, 0x79, 0x9d, 0x39, 0x3b, 0x7c, 0x69, - 0xbd, 0x89, 0xe2, 0xed, 0xb0, 0x7b, 0x71, 0xfc, 0x3c, 0xb5, 0x0e, 0x15, 0x2d, 0x35, 0x4b, 0x59, - 0xcf, 0x27, 0x96, 0x91, 0xd2, 0xef, 0x06, 0xb9, 0x2b, 0xeb, 0xe2, 0xf8, 0x70, 0x72, 0x5a, 0x7c, - 0xb0, 0x1e, 0x2f, 0xce, 0xef, 0xb3, 0xd3, 0x5b, 0xe5, 0xe6, 0xe1, 0xa8, 0xf5, 0xd2, 0xea, 0xbc, - 0x3a, 0x67, 0x27, 0x3d, 0x45, 0xb2, 0x3a, 0x25, 0xdb, 0x9c, 0x8d, 0x5f, 0x73, 0xed, 0xe2, 0x7d, - 0xfe, 0x35, 0x5f, 0x6e, 0x59, 0xb9, 0xc6, 0x50, 0xba, 0x1a, 0x67, 0xae, 0xd5, 0xde, 0xc0, 0x3e, - 0xce, 0x8e, 0xce, 0xc7, 0x9d, 0x72, 0x31, 0x77, 0xa9, 0x5e, 0x5f, 0xdf, 0x5c, 0x18, 0x4a, 0xd7, - 0xbc, 0xea, 0x1d, 0xe9, 0xad, 0x49, 0x07, 0xb8, 0x61, 0x4a, 0xde, 0xdb, 0xdf, 0x2f, 0x96, 0x3a, - 0xa7, 0xef, 0xb7, 0xfd, 0x5d, 0xed, 0xba, 0xff, 0x62, 0xbe, 0xf4, 0x6f, 0xf7, 0xf4, 0x13, 0xe7, - 0x50, 0x7f, 0xcc, 0xbe, 0xb5, 0x87, 0x8f, 0x27, 0xc5, 0x83, 0xcb, 0xdd, 0xb3, 0xe7, 0xd2, 0xc4, - 0xb6, 0x52, 0x27, 0xcf, 0xef, 0x4f, 0x7a, 0xfb, 0xa5, 0xdb, 0x7e, 0x6d, 0x8e, 0xf6, 0x7b, 0x77, - 0xe2, 0xd1, 0x58, 0x9b, 0xbc, 0xb5, 0x9d, 0xbb, 0xfe, 0x49, 0xe9, 0xfd, 0xe6, 0xf1, 0xe0, 0xe2, - 0xc4, 0x1e, 0xb7, 0xa6, 0xda, 0xe4, 0x3d, 0xfb, 0xf0, 0xe4, 0xc8, 0xf9, 0xe9, 0x8b, 0xa5, 0x66, - 0x7a, 0xf6, 0x48, 0xd3, 0xf5, 0x83, 0xfb, 0xab, 0x99, 0xa1, 0x9b, 0x57, 0xe2, 0xcd, 0x59, 0xc1, - 0xb8, 0xbf, 0x38, 0x7d, 0x7d, 0xed, 0xed, 0x6b, 0x87, 0xf9, 0x8e, 0x7d, 0xbb, 0x77, 0xd1, 0xb0, - 0xfb, 0xef, 0xcd, 0x5c, 0xf9, 0xb0, 0xd4, 0x6f, 0x9d, 0xde, 0xf7, 0x5b, 0xcf, 0xa5, 0x61, 0xa6, - 0xb3, 0x3f, 0x3e, 0x6d, 0x9c, 0x0d, 0xa7, 0xa7, 0xef, 0x99, 0xcc, 0xa8, 0x34, 0x28, 0x2a, 0xfd, - 0xa3, 0x83, 0xd2, 0xb9, 0x75, 0x94, 0x7f, 0x39, 0x31, 0x33, 0xcf, 0xd3, 0xfc, 0x5b, 0x2e, 0x2b, - 0x97, 0x6f, 0x4b, 0xd2, 0x54, 0x3f, 0xba, 0xbf, 0x69, 0x1e, 0x6a, 0xbd, 0x83, 0xe7, 0x0b, 0xc7, - 0xe9, 0x66, 0x0f, 0x3a, 0x77, 0xb2, 0x3c, 0x2b, 0x2a, 0x95, 0xab, 0xd7, 0xc1, 0xa8, 0x33, 0xbb, - 0x11, 0x8d, 0xab, 0x91, 0xf4, 0x2e, 0xbd, 0x67, 0xf6, 0x76, 0x53, 0xe5, 0x89, 0x3a, 0x6d, 0x1c, - 0x74, 0xcf, 0xef, 0xa4, 0xbe, 0x3e, 0xdc, 0xcd, 0x4f, 0x1b, 0x93, 0x62, 0xd9, 0x9c, 0x1c, 0x75, - 0x1e, 0x5e, 0xb4, 0x03, 0x6b, 0x57, 0x7f, 0x9c, 0x9e, 0xbd, 0xbc, 0x14, 0x73, 0x77, 0x87, 0xfd, - 0xf1, 0xc5, 0xe1, 0xfd, 0x61, 0xe3, 0xe4, 0xe0, 0x7d, 0x7a, 0x30, 0x49, 0x3d, 0x18, 0x43, 0xbd, - 0x74, 0xde, 0x50, 0xdb, 0xf7, 0xed, 0x51, 0x51, 0x53, 0x8e, 0x6e, 0x76, 0x0b, 0x76, 0x47, 0x12, - 0x7b, 0x67, 0x4e, 0xdb, 0xea, 0x5a, 0x99, 0x93, 0xb7, 0xfb, 0xe2, 0x93, 0x95, 0x32, 0xc6, 0x93, - 0x03, 0xe7, 0xe6, 0x68, 0xbf, 0x74, 0x9e, 0x7f, 0x3f, 0xac, 0x88, 0x6f, 0x17, 0xbb, 0xc5, 0xa7, - 0x9b, 0x7d, 0xc3, 0x28, 0x48, 0xaf, 0x07, 0x27, 0x72, 0xfb, 0x2d, 0x77, 0xa1, 0x1c, 0xdd, 0x9f, - 0x76, 0x95, 0x5e, 0x66, 0x60, 0x9f, 0x1f, 0x1c, 0xb4, 0x4c, 0xa7, 0x30, 0x2c, 0x3f, 0x0e, 0x4f, - 0xde, 0xf6, 0xf6, 0x1a, 0xfa, 0x8d, 0xd8, 0xc9, 0x4b, 0xe5, 0xe1, 0x74, 0x38, 0xb5, 0xae, 0xdf, - 0xaf, 0x47, 0xb3, 0x2b, 0xdd, 0x36, 0x6f, 0x26, 0xbd, 0xc6, 0xd3, 0xab, 0xe9, 0x0c, 0xde, 0x2d, - 0x40, 0xcb, 0xad, 0x34, 0xbd, 0x68, 0xf5, 0xf2, 0x0f, 0xce, 0xee, 0xf9, 0x79, 0x65, 0xef, 0xfa, - 0x56, 0xaa, 0x8c, 0xce, 0x52, 0xfd, 0x76, 0xbe, 0xd4, 0x3f, 0x38, 0xbb, 0xca, 0x75, 0x6e, 0xc5, - 0xf2, 0x41, 0xf9, 0x38, 0xdf, 0x7d, 0x9e, 0x9e, 0x68, 0x79, 0xe9, 0xd0, 0x9e, 0x56, 0x1e, 0x8e, - 0xde, 0xcf, 0x76, 0x2f, 0x8f, 0xde, 0x1f, 0x5e, 0x6e, 0x5a, 0x95, 0x8b, 0xb3, 0xe6, 0xe5, 0xdd, - 0x6e, 0xf3, 0xe0, 0x3a, 0x35, 0x3a, 0x1c, 0xec, 0x66, 0xee, 0x4b, 0xcf, 0xef, 0x77, 0x93, 0xd3, - 0xfd, 0xd6, 0xed, 0x70, 0xcf, 0x52, 0x4f, 0x52, 0x77, 0x48, 0xfb, 0x99, 0xf6, 0xc1, 0xe3, 0xc1, - 0xf9, 0xd9, 0x99, 0xfd, 0xd2, 0x57, 0x1b, 0x4e, 0xde, 0x34, 0x4b, 0x23, 0xcd, 0x9c, 0xb6, 0xb3, - 0xce, 0xfb, 0x7e, 0xf9, 0xb8, 0x3c, 0x1d, 0xcc, 0x8e, 0x2e, 0xf7, 0x76, 0x4f, 0x73, 0xad, 0xc3, - 0x7e, 0xf1, 0xfa, 0x4a, 0xca, 0xee, 0xaa, 0x57, 0xb9, 0xa7, 0xf3, 0x49, 0xd6, 0xda, 0x3b, 0x70, - 0x1e, 0xee, 0xf6, 0x1e, 0xcf, 0x52, 0x8a, 0xad, 0x8f, 0x73, 0x47, 0x95, 0xeb, 0xe9, 0x5b, 0x6f, - 0xd8, 0xde, 0xd3, 0xdb, 0xe7, 0x67, 0x2f, 0x87, 0x77, 0x07, 0xe6, 0xdb, 0xdb, 0x73, 0x5b, 0x7f, - 0x68, 0xf5, 0x45, 0x6d, 0xf0, 0x30, 0xae, 0x4c, 0xee, 0x72, 0x85, 0xb7, 0xdb, 0xa3, 0xb7, 0xab, - 0xca, 0xfb, 0xdb, 0x9d, 0x75, 0x56, 0x7a, 0x7d, 0x3b, 0x7d, 0x29, 0x3f, 0xbd, 0x3c, 0xbf, 0xf7, - 0x45, 0xc9, 0x6c, 0x57, 0x52, 0xb3, 0xeb, 0xb2, 0xfd, 0xf8, 0x6c, 0x3e, 0x4d, 0x4f, 0x0f, 0xd5, - 0x83, 0x93, 0xdb, 0x0b, 0xfb, 0x78, 0x32, 0x31, 0x67, 0x37, 0xf9, 0x7c, 0x7f, 0xff, 0x52, 0xbf, - 0xcf, 0xa4, 0x14, 0x20, 0xa4, 0xee, 0xd1, 0x5e, 0x26, 0xab, 0x5d, 0xe7, 0x46, 0xad, 0xc2, 0x4c, - 0x7a, 0x7b, 0x3f, 0x7e, 0x77, 0x1e, 0xef, 0x2e, 0xae, 0xf6, 0x8b, 0x46, 0xf7, 0xe9, 0x44, 0xbc, - 0x7a, 0xbb, 0x53, 0x1f, 0x4e, 0x9c, 0xfe, 0xe9, 0xe1, 0xe9, 0xf9, 0xf1, 0xd9, 0x53, 0x51, 0xec, - 0x4e, 0x95, 0xa7, 0x99, 0xde, 0x6e, 0xa7, 0xec, 0x83, 0xd3, 0xd3, 0xb7, 0x0b, 0x5d, 0x7c, 0x78, - 0xcf, 0x5a, 0x67, 0xce, 0x79, 0x7b, 0xf7, 0xfa, 0xe1, 0x4a, 0x7f, 0x72, 0x86, 0x27, 0x72, 0xfe, - 0xe1, 0xed, 0xe0, 0xc6, 0x68, 0x67, 0x2a, 0xc3, 0xe1, 0x68, 0xd6, 0xb9, 0xbe, 0x1f, 0x97, 0xd4, - 0x5e, 0xf3, 0x62, 0xfc, 0x68, 0x69, 0x83, 0xf7, 0xfe, 0xde, 0xd9, 0xde, 0x18, 0x84, 0xf0, 0x54, - 0xf9, 0xa8, 0x30, 0x7d, 0x39, 0xad, 0xe4, 0xcb, 0x9d, 0x3d, 0xc5, 0x49, 0x1d, 0xc8, 0x8f, 0xbd, - 0x56, 0xea, 0xec, 0xd5, 0xc8, 0x3c, 0x38, 0xa9, 0x71, 0xab, 0xf3, 0x26, 0x5b, 0x6f, 0xc5, 0xd7, - 0xe7, 0xdb, 0xf6, 0x6b, 0xfe, 0x42, 0x3e, 0x7d, 0x33, 0x2f, 0xdb, 0xaf, 0xfb, 0xfb, 0xa6, 0x2d, - 0x77, 0x2a, 0x67, 0x92, 0x75, 0x73, 0xf1, 0x78, 0xd2, 0xbf, 0x6a, 0x5b, 0x0f, 0xb3, 0xbd, 0xee, - 0xd3, 0x8b, 0x52, 0x74, 0x76, 0xaf, 0x1b, 0xef, 0xce, 0x6b, 0xfb, 0xa9, 0x29, 0x4e, 0xf6, 0x94, - 0xfc, 0x9d, 0x7e, 0xa1, 0x9a, 0x43, 0xfd, 0x19, 0xa4, 0x95, 0x51, 0x66, 0xf4, 0xd2, 0x2b, 0x9e, - 0xf6, 0x4a, 0x63, 0x45, 0x92, 0xb2, 0x47, 0xa3, 0x5e, 0x25, 0xbb, 0x3f, 0xce, 0x94, 0x14, 0x7d, - 0x37, 0x93, 0xd2, 0xaf, 0x4a, 0x66, 0x1b, 0xc4, 0xcc, 0xeb, 0x93, 0xe7, 0xb6, 0x2a, 0xbe, 0x34, - 0x5b, 0xa6, 0x71, 0x51, 0x81, 0x8e, 0xdf, 0xbe, 0xbe, 0x94, 0x4e, 0xce, 0x27, 0x66, 0xfb, 0xa1, - 0x6f, 0x98, 0x8d, 0xf6, 0xc0, 0x69, 0x5f, 0x3e, 0xbc, 0xce, 0x9c, 0xc6, 0x41, 0xee, 0x34, 0x95, - 0x79, 0x33, 0xc4, 0x56, 0xa3, 0x75, 0xf1, 0x90, 0x3d, 0xcc, 0xb6, 0xcf, 0x7a, 0xba, 0x3d, 0x30, - 0x77, 0xf3, 0x72, 0xa5, 0x3b, 0x7c, 0x2f, 0x65, 0x8e, 0xa6, 0x99, 0x4c, 0xb7, 0x93, 0xbb, 0x7c, - 0xbc, 0x78, 0xce, 0x03, 0xad, 0xce, 0x1e, 0xef, 0xee, 0xb3, 0xdd, 0xa7, 0x1b, 0x7b, 0xaf, 0x52, - 0x7a, 0x3b, 0x3d, 0x2b, 0x55, 0xde, 0xe4, 0xf7, 0x11, 0x74, 0xed, 0x58, 0x1a, 0x5f, 0x3d, 0xde, - 0x96, 0x72, 0xa5, 0x42, 0xfb, 0xa1, 0x75, 0x68, 0x74, 0x76, 0x8d, 0xde, 0x5e, 0x56, 0x39, 0xbe, - 0x79, 0x3f, 0x11, 0x3b, 0xe7, 0x4d, 0x11, 0xa4, 0xb5, 0xc9, 0xb5, 0xd8, 0xef, 0x8d, 0x47, 0xad, - 0xee, 0xb8, 0x2b, 0xe5, 0x7b, 0xd2, 0x08, 0xa8, 0xfe, 0xec, 0x6a, 0x3f, 0x77, 0x72, 0x72, 0x74, - 0x56, 0x1c, 0x35, 0xbb, 0x19, 0xbd, 0xa0, 0x97, 0xbb, 0xb9, 0xc2, 0xdd, 0xe5, 0xe9, 0x95, 0x5e, - 0xd4, 0x07, 0x16, 0x2c, 0x90, 0xd6, 0x7d, 0x4e, 0xee, 0xe6, 0xf4, 0xf7, 0xac, 0x7a, 0xab, 0x5e, - 0x9c, 0xe5, 0xa5, 0xfc, 0xbe, 0xae, 0xf4, 0xce, 0x32, 0x27, 0x87, 0x67, 0xda, 0xc3, 0xb3, 0xf3, - 0xfc, 0x20, 0xbf, 0x19, 0xfb, 0x83, 0xfc, 0xb4, 0xf5, 0x32, 0xb6, 0x0f, 0xdb, 0x99, 0xe2, 0xb0, - 0x62, 0xc9, 0x07, 0x9a, 0x7d, 0x36, 0xcc, 0x8f, 0x8e, 0x5e, 0xaf, 0x1f, 0xb4, 0x71, 0xe9, 0x36, - 0x33, 0x51, 0x9e, 0xdf, 0x5f, 0x8e, 0x8e, 0x94, 0xd2, 0xf4, 0x59, 0xbd, 0x7b, 0x37, 0x4f, 0x0a, - 0x0f, 0x8d, 0x87, 0xdd, 0xb3, 0xbd, 0x8b, 0xc9, 0xcd, 0xe9, 0x74, 0x72, 0xf3, 0xa4, 0x1f, 0x18, - 0x8f, 0x87, 0xd3, 0x8e, 0x7c, 0x3a, 0xbd, 0x28, 0xee, 0xdd, 0x94, 0x77, 0x2f, 0xf4, 0xac, 0x51, - 0xb9, 0x78, 0x83, 0x11, 0x76, 0xc6, 0x96, 0x5c, 0xb8, 0xd5, 0x8f, 0x5f, 0x1e, 0xcf, 0x77, 0xb5, - 0xe1, 0xf1, 0xc1, 0x73, 0x6e, 0x76, 0xf5, 0xf4, 0x98, 0x3b, 0x77, 0x2a, 0xe3, 0xc2, 0x70, 0x78, - 0x34, 0x9a, 0x3c, 0x8d, 0xc7, 0xd3, 0xab, 0xb1, 0x62, 0x9d, 0x55, 0x94, 0xd6, 0xd8, 0x7e, 0x7f, - 0xbc, 0x78, 0xb9, 0x7b, 0xb4, 0x5e, 0xdb, 0x6f, 0x9d, 0xc3, 0xcb, 0xfb, 0x87, 0x6c, 0x7b, 0xbf, - 0xbd, 0x77, 0x78, 0xaa, 0xe6, 0xce, 0xcf, 0xee, 0x6f, 0x1f, 0xde, 0xdf, 0x1f, 0x8e, 0x0e, 0x0a, - 0xf9, 0xdd, 0x51, 0x26, 0x6b, 0x35, 0xa4, 0xb7, 0x57, 0xa3, 0xa8, 0x55, 0x7a, 0x07, 0xfd, 0xfb, - 0xf6, 0xee, 0xc8, 0xea, 0xdd, 0xef, 0x3e, 0x1c, 0x1c, 0x68, 0xf7, 0x0f, 0xd2, 0xa8, 0x3f, 0xbd, - 0x9c, 0x74, 0xec, 0x54, 0xf9, 0x21, 0x93, 0x01, 0xfe, 0xf4, 0x7c, 0xa2, 0x2a, 0x67, 0x5a, 0xe5, - 0xe1, 0xb1, 0x51, 0x56, 0x0e, 0xcf, 0x0a, 0x1d, 0x6b, 0xb7, 0xd4, 0x1b, 0x5c, 0x9e, 0xcf, 0xa6, - 0x5a, 0xb9, 0xfd, 0x72, 0xfd, 0x70, 0xf8, 0xb2, 0x2b, 0xb5, 0x1f, 0x32, 0xc6, 0x6b, 0xf1, 0xae, - 0xf3, 0xa6, 0xe8, 0xb6, 0x55, 0x3a, 0x28, 0x1f, 0x95, 0x46, 0x8e, 0x3d, 0xec, 0xbe, 0x19, 0x47, - 0xc3, 0xf7, 0x4a, 0xc5, 0x1a, 0xcf, 0x94, 0xfd, 0xcc, 0xd5, 0x3b, 0x08, 0x08, 0xf9, 0xe1, 0xf8, - 0xfe, 0xf1, 0xec, 0x65, 0xf6, 0x54, 0x1e, 0x97, 0x5f, 0x0a, 0x8f, 0x83, 0x67, 0xe5, 0x28, 0x27, - 0x5f, 0x3d, 0x96, 0x0a, 0x5d, 0x53, 0xbd, 0x2c, 0x28, 0x17, 0x99, 0xcb, 0xf7, 0x49, 0xe7, 0xb0, - 0xf4, 0xfe, 0xda, 0xd3, 0x9c, 0x8c, 0xdd, 0x2d, 0x28, 0xa5, 0xa7, 0xce, 0x5b, 0xfb, 0xd2, 0x98, - 0xf4, 0x6e, 0xfa, 0xd9, 0xec, 0x4d, 0xa1, 0x50, 0x2e, 0xc8, 0x4e, 0x76, 0xfc, 0xf8, 0x58, 0x2e, - 0x3d, 0x48, 0x4f, 0x62, 0xff, 0x5a, 0x2c, 0x55, 0xf2, 0x95, 0x92, 0xf2, 0x74, 0x2b, 0xed, 0xbf, - 0xce, 0x8c, 0xfd, 0xb7, 0xf3, 0x27, 0x90, 0x01, 0x8f, 0xba, 0xe5, 0xeb, 0xf1, 0xe9, 0xa1, 0x75, - 0x73, 0x58, 0x6c, 0x9f, 0x3c, 0xdd, 0xee, 0x35, 0x9b, 0xcf, 0x4f, 0x87, 0xfb, 0x0f, 0x9d, 0x61, - 0xe1, 0x50, 0x02, 0x34, 0x66, 0xd5, 0x42, 0xfe, 0xa9, 0xf2, 0xe0, 0xa8, 0xbb, 0xa3, 0x57, 0xed, - 0xaa, 0x50, 0x7a, 0x72, 0x76, 0x9f, 0xcf, 0x1b, 0x0f, 0xda, 0x28, 0xdb, 0x7b, 0x7a, 0xdf, 0x3b, - 0x2f, 0x5d, 0xa7, 0x0a, 0x07, 0xc0, 0xc9, 0x5b, 0xb9, 0xcb, 0xf7, 0xc2, 0x0b, 0xac, 0x61, 0xc7, - 0x72, 0xc7, 0x69, 0x3f, 0x5c, 0x19, 0x93, 0xd1, 0x75, 0xff, 0x62, 0x76, 0xa4, 0x8d, 0x4e, 0x35, - 0x79, 0x52, 0x99, 0xe8, 0xed, 0xcb, 0xa1, 0x33, 0x92, 0x5f, 0x8c, 0xcc, 0x7d, 0x6b, 0x52, 0x01, - 0x8e, 0xdc, 0xba, 0x99, 0x9c, 0x77, 0x46, 0x40, 0x96, 0xcf, 0x93, 0x83, 0xc1, 0xa0, 0x68, 0x97, - 0x06, 0xf6, 0x9b, 0xa5, 0x3e, 0x34, 0xed, 0x7e, 0x23, 0x6b, 0xe7, 0xf4, 0x03, 0x10, 0x9b, 0xf3, - 0xc7, 0xa5, 0xcb, 0x94, 0x6c, 0x4f, 0x27, 0xd3, 0xe7, 0xb6, 0x73, 0x76, 0x26, 0xe6, 0xf6, 0x2b, - 0xed, 0x41, 0xe7, 0xa6, 0xf8, 0xf4, 0x5e, 0x19, 0x1e, 0xb7, 0x0f, 0xc4, 0xbb, 0x4a, 0xf1, 0x54, - 0x9c, 0x1e, 0x36, 0x4a, 0xed, 0x69, 0x65, 0x96, 0xd2, 0xb2, 0x99, 0x4c, 0x29, 0xf7, 0x92, 0x3a, - 0xca, 0xaa, 0xe2, 0xfe, 0x61, 0x37, 0x5b, 0x1a, 0x35, 0xee, 0x2f, 0x8e, 0x33, 0x0f, 0x83, 0xe6, - 0xd3, 0xe8, 0xe1, 0xed, 0x78, 0x4f, 0x7e, 0x9a, 0xca, 0x5d, 0x5b, 0xd4, 0x3a, 0xf7, 0x07, 0xf7, - 0xa9, 0xee, 0xa5, 0x76, 0x34, 0xdc, 0x9d, 0x66, 0xde, 0x2e, 0x4b, 0x9d, 0x62, 0x66, 0xf4, 0xfc, - 0x28, 0x3a, 0x37, 0xca, 0x9d, 0x73, 0x72, 0x3d, 0x2e, 0xe6, 0x67, 0x40, 0xbe, 0x8d, 0xf1, 0x63, - 0x71, 0xba, 0xa7, 0xbc, 0x37, 0x1e, 0x33, 0xe5, 0x87, 0x61, 0xb9, 0xd9, 0x1f, 0x64, 0x2a, 0x85, - 0xcb, 0xca, 0xe5, 0xd4, 0xbe, 0x68, 0x3e, 0xe9, 0xf6, 0xe3, 0xc3, 0x75, 0xaa, 0x64, 0x36, 0xdf, - 0xcb, 0x99, 0x8b, 0xf3, 0xe7, 0x42, 0xe9, 0xb9, 0x71, 0x7c, 0xb8, 0xdf, 0xbd, 0x9d, 0xa4, 0x64, - 0xb3, 0x7c, 0x9f, 0x3a, 0xce, 0x5d, 0xdc, 0xdd, 0x2b, 0x30, 0xa7, 0x26, 0xea, 0x38, 0xa5, 0x75, - 0x3a, 0x6f, 0x2f, 0x52, 0x29, 0xfb, 0x58, 0x7a, 0x9a, 0x14, 0xfa, 0x27, 0x8d, 0xbb, 0xeb, 0xc3, - 0xa7, 0xab, 0xeb, 0xe2, 0xf5, 0x6c, 0x7a, 0xd3, 0xeb, 0x2b, 0xcd, 0xd4, 0x75, 0xa7, 0xf0, 0xa0, - 0x37, 0xce, 0x9b, 0x8d, 0xa3, 0x83, 0x71, 0xf1, 0xf6, 0xc4, 0x51, 0x9c, 0x9c, 0xa9, 0x67, 0xca, - 0xb9, 0x76, 0xfe, 0xa9, 0xd9, 0x38, 0xde, 0x1d, 0xe7, 0x0a, 0x46, 0xcf, 0xbc, 0xbd, 0x99, 0x39, - 0x85, 0xab, 0x17, 0x90, 0x49, 0x6f, 0xcb, 0xa7, 0x4f, 0x8d, 0xfd, 0xeb, 0xd3, 0xb2, 0x7e, 0xd0, - 0xdf, 0xed, 0x80, 0x58, 0x7c, 0x37, 0x01, 0xda, 0x7f, 0x3b, 0x6a, 0xed, 0x9e, 0x1a, 0xfb, 0x87, - 0xa5, 0xd3, 0xe7, 0xeb, 0xb3, 0x73, 0xf3, 0xc5, 0x28, 0x8c, 0x06, 0x72, 0xe6, 0xea, 0x38, 0x3b, - 0x1b, 0xed, 0x3e, 0x5c, 0x36, 0x6f, 0x5b, 0x7b, 0xcf, 0xf2, 0x8b, 0xf9, 0x76, 0x5d, 0x2c, 0xa7, - 0x9e, 0x65, 0xa9, 0xfc, 0xd2, 0x3f, 0xec, 0x3f, 0x9d, 0xdf, 0x96, 0xf5, 0xdd, 0xc1, 0xcb, 0x69, - 0xe7, 0xc0, 0x3a, 0x6d, 0x3e, 0x1d, 0x14, 0x67, 0xa7, 0xad, 0xe7, 0x9b, 0xb3, 0x83, 0x82, 0x73, - 0x53, 0x78, 0x3a, 0x1d, 0xdc, 0xbd, 0xbf, 0x5f, 0x3c, 0x9c, 0x17, 0xb2, 0xc3, 0xdd, 0xf1, 0xe8, - 0xea, 0x5c, 0x3d, 0x2b, 0x4d, 0xaf, 0xa6, 0xf9, 0x3b, 0xf9, 0xa6, 0x7f, 0xa0, 0x9e, 0x3c, 0x37, - 0xee, 0x0f, 0xec, 0xce, 0x73, 0xf6, 0xe8, 0xee, 0x78, 0x70, 0x77, 0xd5, 0xd9, 0x97, 0x8f, 0x0a, - 0x0f, 0x0f, 0x7b, 0xe3, 0xf1, 0x70, 0xdc, 0xbd, 0xea, 0x69, 0x85, 0x53, 0xb9, 0x39, 0xbe, 0x2c, - 0x1b, 0x52, 0xaa, 0x77, 0xd0, 0xdc, 0x6d, 0x17, 0x07, 0xe3, 0xd1, 0xd9, 0x7b, 0x59, 0x3b, 0xbf, - 0xb9, 0x9c, 0xf4, 0x5e, 0xae, 0x2e, 0xca, 0xaa, 0x6c, 0x55, 0xc4, 0x9b, 0x66, 0x53, 0xbd, 0x69, - 0x9e, 0x58, 0xb9, 0x51, 0xff, 0xed, 0xa8, 0x57, 0x3c, 0x7b, 0xeb, 0xdf, 0x3d, 0x3d, 0xd9, 0x85, - 0xc1, 0xfb, 0x78, 0x54, 0x71, 0xce, 0x8f, 0x2f, 0xef, 0xac, 0xcc, 0xd4, 0x1c, 0xdf, 0xd8, 0x17, - 0xf7, 0xe3, 0xee, 0x73, 0xc6, 0x4c, 0x0d, 0x77, 0xcb, 0x7a, 0xe9, 0x3e, 0x0b, 0x5c, 0x51, 0xbc, - 0x4d, 0xc9, 0x37, 0x83, 0x2b, 0xf3, 0x62, 0x60, 0x5f, 0x1c, 0x5c, 0xbe, 0x4d, 0x8d, 0xfd, 0xec, - 0x48, 0xb4, 0x47, 0x6f, 0xb7, 0xaa, 0xd9, 0x9f, 0x16, 0xca, 0xc7, 0x27, 0x0d, 0x62, 0xa4, 0xa8, - 0x27, 0xb9, 0x9e, 0x61, 0x0d, 0x65, 0x27, 0xf1, 0x0d, 0x15, 0xa8, 0x6f, 0xc9, 0x45, 0xd5, 0x32, - 0x0c, 0x67, 0xbe, 0xb5, 0xd5, 0xd9, 0x92, 0xaa, 0x5f, 0x25, 0x49, 0xaa, 0xe1, 0x63, 0xaf, 0xfa, - 0xb5, 0xd7, 0xeb, 0x91, 0xc7, 0x6c, 0x15, 0x4d, 0x43, 0xe4, 0x31, 0x57, 0xfd, 0x9a, 0xcb, 0xe5, - 0xc8, 0x63, 0xbe, 0xfa, 0x35, 0x9f, 0xcf, 0x93, 0xc7, 0x42, 0xf5, 0x6b, 0xa1, 0x50, 0x20, 0x8f, - 0xc5, 0xea, 0xd7, 0x62, 0xb1, 0x48, 0x1e, 0xcb, 0xd5, 0xaf, 0xe5, 0x72, 0x99, 0x3c, 0xb6, 0xab, - 0x5f, 0xdb, 0xed, 0x36, 0x79, 0xec, 0x54, 0xbf, 0x76, 0x3a, 0x1d, 0xf2, 0xa8, 0x54, 0xbf, 0x2a, - 0x8a, 0x42, 0x1e, 0xbb, 0xd5, 0xaf, 0xdd, 0x6e, 0x97, 0x3c, 0x5a, 0x90, 0x21, 0x47, 0x6b, 0xeb, - 0x43, 0xc5, 0x1d, 0xda, 0x1c, 0x0d, 0x6a, 0x2b, 0xcb, 0xe4, 0x71, 0x56, 0xfd, 0x2a, 0x57, 0x44, - 0x78, 0x74, 0x00, 0xae, 0x98, 0xa6, 0xf5, 0x1a, 0x55, 0xab, 0xdf, 0x96, 0x13, 0xb9, 0xbc, 0xc0, - 0xb9, 0xff, 0xc4, 0x74, 0x25, 0x49, 0xbe, 0x39, 0xed, 0xe5, 0x8f, 0xa0, 0xd7, 0x27, 0x08, 0x84, - 0xa4, 0x9b, 0x47, 0xa6, 0x99, 0x24, 0x31, 0x2b, 0x70, 0xfe, 0x9f, 0xe5, 0x7c, 0x03, 0x9a, 0xaf, - 0x20, 0x09, 0x9c, 0xfb, 0x2f, 0x9c, 0xc9, 0x19, 0x54, 0x4b, 0xa2, 0x39, 0xc5, 0x27, 0xd3, 0x7d, - 0x82, 0x52, 0xc5, 0x1c, 0x4d, 0x6b, 0x9b, 0x55, 0x29, 0x6f, 0x4e, 0x39, 0xfa, 0x47, 0x64, 0x4f, - 0x98, 0x07, 0xbe, 0x54, 0xe0, 0x55, 0xe4, 0x4a, 0xf8, 0x97, 0x94, 0xea, 0x56, 0x75, 0x43, 0x47, - 0x14, 0xd9, 0x7d, 0xb3, 0xca, 0xb7, 0xd1, 0x3c, 0xc2, 0xe3, 0x87, 0xa1, 0x53, 0x85, 0x92, 0x0b, - 0x34, 0x2c, 0xce, 0x89, 0x3d, 0x61, 0x4b, 0xa6, 0x26, 0x94, 0xa1, 0x0c, 0xf2, 0xff, 0x48, 0x23, - 0x16, 0x88, 0x45, 0xdb, 0xe8, 0xce, 0xe6, 0x43, 0xd9, 0xea, 0xab, 0x7a, 0x55, 0xac, 0xa1, 0x8d, - 0xa9, 0x6f, 0x19, 0x23, 0xbd, 0x4b, 0x4d, 0x7f, 0x55, 0xda, 0x6c, 0x18, 0xf5, 0x64, 0x2d, 0xa8, - 0x6f, 0x1f, 0x29, 0xda, 0x58, 0x71, 0xd4, 0x8e, 0x2c, 0xdc, 0x2b, 0x56, 0x57, 0xd6, 0x65, 0xc1, - 0x96, 0x75, 0x7b, 0xcb, 0x56, 0x2c, 0xb5, 0x47, 0x33, 0xda, 0xea, 0xbb, 0x52, 0x95, 0xa0, 0x95, - 0xb5, 0x30, 0xa0, 0x5e, 0xb2, 0xe6, 0x28, 0x53, 0x67, 0x4b, 0xd6, 0xd4, 0xbe, 0x5e, 0xed, 0x28, - 0x68, 0x4f, 0xa8, 0xa1, 0x95, 0xf0, 0x55, 0x75, 0xb6, 0x68, 0x33, 0x3b, 0xb2, 0xa6, 0xa1, 0x5d, - 0x87, 0x76, 0x8b, 0x7d, 0x1a, 0x01, 0x6c, 0x80, 0xaf, 0x29, 0x1d, 0xf7, 0xc3, 0xd0, 0x78, 0x8f, - 0x4b, 0xb5, 0x97, 0x13, 0x97, 0x73, 0xb9, 0xf5, 0xc9, 0xe6, 0xd6, 0x40, 0xed, 0x0f, 0x34, 0xb4, - 0x3f, 0xb1, 0x1e, 0x3b, 0x16, 0xf4, 0xc4, 0x94, 0x2d, 0x68, 0x59, 0xcd, 0xee, 0x58, 0x86, 0xa6, - 0xb5, 0x65, 0x8b, 0x9a, 0x56, 0xab, 0x45, 0xe8, 0x8e, 0x9f, 0x16, 0xee, 0x98, 0xdd, 0x4e, 0x72, - 0x81, 0xb2, 0x04, 0xb1, 0x02, 0x41, 0xfe, 0x40, 0x41, 0xf0, 0x55, 0x49, 0x14, 0xff, 0x59, 0xa3, - 0x70, 0xc8, 0xa3, 0x69, 0xd8, 0x2a, 0x19, 0x8f, 0x9e, 0x3a, 0x55, 0xba, 0x35, 0x03, 0x96, 0x55, - 0x0a, 0x7b, 0xab, 0xad, 0x0c, 0xe4, 0xb1, 0x0a, 0xb0, 0xb1, 0xb1, 0x8b, 0xaf, 0xed, 0x7e, 0x00, - 0xc4, 0x78, 0xe0, 0xc3, 0x18, 0x4f, 0xa2, 0x40, 0xde, 0xb7, 0x54, 0xbd, 0xab, 0x4c, 0xab, 0x5b, - 0x52, 0x68, 0x2c, 0xbd, 0x5c, 0x0c, 0xdf, 0x81, 0x4f, 0x96, 0x62, 0x2a, 0x32, 0xa2, 0x85, 0x3d, - 0x05, 0xbf, 0x91, 0x31, 0xec, 0x60, 0xc3, 0x6a, 0x86, 0x29, 0x77, 0x54, 0x67, 0x06, 0x24, 0x42, - 0xfa, 0x48, 0xa1, 0xb1, 0x44, 0x2e, 0x6b, 0x2f, 0x4c, 0x97, 0x86, 0x08, 0xb5, 0x8a, 0x5c, 0x16, - 0xff, 0x2e, 0x64, 0x41, 0xae, 0x8e, 0x55, 0xc8, 0xad, 0x74, 0x05, 0x73, 0x1e, 0xc6, 0x57, 0x37, - 0x19, 0xfc, 0x3c, 0x27, 0x44, 0xd1, 0x55, 0x3a, 0x86, 0x45, 0xe8, 0x92, 0x76, 0xbd, 0x3d, 0x72, - 0x1c, 0x43, 0x9f, 0x03, 0x31, 0x68, 0xaa, 0xae, 0x40, 0xe5, 0x9d, 0x91, 0x65, 0x03, 0x0c, 0xd3, - 0x50, 0xb1, 0x1f, 0x8b, 0xb4, 0x26, 0xb7, 0x15, 0xcd, 0xf6, 0xe9, 0xd7, 0x94, 0xbb, 0x5d, 0x55, - 0xef, 0x57, 0xcb, 0x81, 0x46, 0x7c, 0x45, 0xab, 0x34, 0xc9, 0x38, 0x8f, 0x60, 0xab, 0x6d, 0x00, - 0xf8, 0x61, 0x15, 0xe8, 0xad, 0x93, 0xa0, 0xcd, 0x6a, 0x0f, 0x92, 0x5c, 0x8a, 0x83, 0x61, 0x4e, - 0xd6, 0x2c, 0x82, 0xf1, 0xe2, 0x12, 0x01, 0x97, 0x93, 0x91, 0x56, 0xd4, 0x26, 0x16, 0x00, 0xd5, - 0xfb, 0x40, 0x90, 0x5d, 0xa5, 0x0a, 0xc8, 0xc2, 0x79, 0xa1, 0x6d, 0x59, 0xda, 0x22, 0xdd, 0xb6, - 0xd4, 0xb9, 0xdb, 0x24, 0x98, 0xc0, 0x8b, 0xf4, 0xc4, 0x42, 0x3b, 0x97, 0x15, 0x6d, 0x88, 0x63, - 0x98, 0xd0, 0x78, 0x4d, 0xe9, 0xc1, 0x94, 0x65, 0x15, 0x07, 0xc7, 0xcf, 0xab, 0xdb, 0x69, 0x27, - 0xbd, 0x21, 0x96, 0x16, 0x69, 0xb4, 0x8d, 0xdb, 0x71, 0x76, 0x30, 0x3a, 0x03, 0xd1, 0x62, 0x06, - 0x78, 0x04, 0x3e, 0xae, 0x05, 0xe6, 0x64, 0x16, 0x1a, 0xf2, 0x45, 0x1d, 0xe2, 0x46, 0x82, 0x0c, - 0x24, 0x8e, 0x88, 0xdd, 0x72, 0xc9, 0x2b, 0x90, 0xde, 0x55, 0x6d, 0x53, 0x93, 0x67, 0x55, 0x55, - 0x27, 0x39, 0x08, 0x5b, 0x59, 0xa4, 0x61, 0x30, 0xc2, 0xd8, 0xe8, 0x27, 0xfd, 0x32, 0xf0, 0xb9, - 0xd7, 0x8b, 0x7c, 0x2f, 0x06, 0xbe, 0xbb, 0x78, 0x03, 0x4d, 0x4f, 0x1e, 0x69, 0x4e, 0xb0, 0x20, - 0x8c, 0x04, 0x47, 0xbb, 0x23, 0xa4, 0x01, 0x19, 0xec, 0xd9, 0x1d, 0xd7, 0x2d, 0x32, 0x90, 0x5c, - 0x9e, 0x0c, 0x67, 0x7a, 0x30, 0xea, 0x33, 0xe3, 0x1f, 0xe9, 0x4f, 0x3e, 0x8b, 0x88, 0x35, 0x35, - 0xa0, 0x6c, 0x6b, 0xc6, 0xdd, 0x36, 0x76, 0xcf, 0xf6, 0x85, 0xb4, 0xad, 0xf4, 0x9d, 0xb9, 0x83, - 0x1b, 0x0e, 0x5b, 0xcc, 0x48, 0x4c, 0x11, 0xed, 0x4f, 0xbf, 0x05, 0xc9, 0xc3, 0xdd, 0xee, 0x79, - 0x03, 0x94, 0x0d, 0xe1, 0x65, 0x89, 0x49, 0x05, 0xea, 0xd8, 0x13, 0xbc, 0xc2, 0x01, 0x5e, 0x87, - 0xbc, 0xdb, 0x85, 0x25, 0xd6, 0x3c, 0x3a, 0xa0, 0x30, 0x86, 0x6a, 0xb7, 0xab, 0x29, 0x8b, 0xf4, - 0xab, 0x32, 0x73, 0x18, 0xb1, 0xd3, 0x0f, 0x38, 0xe8, 0x8b, 0xf4, 0x58, 0xd6, 0xc2, 0xc9, 0x84, - 0x08, 0x58, 0x3a, 0xa7, 0x06, 0xaa, 0xb1, 0x61, 0x34, 0x81, 0xb2, 0x6c, 0x62, 0x7f, 0x26, 0xbb, - 0x23, 0x73, 0x32, 0x23, 0x71, 0xbd, 0xa6, 0xbc, 0x0b, 0x18, 0xbb, 0x92, 0x80, 0xc6, 0x08, 0xf0, - 0x2f, 0xb9, 0x48, 0x2b, 0x2b, 0x33, 0x3d, 0x25, 0x68, 0x0e, 0xe0, 0x8c, 0x2b, 0xf3, 0x3c, 0x26, - 0x82, 0x50, 0x04, 0x2f, 0xaf, 0x10, 0x6a, 0x41, 0x64, 0x42, 0x2c, 0x4d, 0x74, 0x28, 0x26, 0x5b, - 0xc0, 0xd9, 0x49, 0x66, 0x8f, 0xf6, 0xe5, 0xb6, 0x6d, 0x68, 0x23, 0x47, 0x21, 0xe4, 0x0f, 0x33, - 0x96, 0x4e, 0x00, 0x09, 0xc6, 0x81, 0x8d, 0x13, 0x92, 0x6a, 0x8d, 0xd1, 0x66, 0x96, 0xcc, 0x1f, - 0x62, 0x83, 0x5e, 0x05, 0xc6, 0x25, 0x59, 0xc2, 0xe2, 0x5d, 0x98, 0x74, 0x36, 0x55, 0x70, 0x1a, - 0x47, 0x78, 0x47, 0x4f, 0xb3, 0xe6, 0xcb, 0x6b, 0x93, 0x87, 0x02, 0xcb, 0x40, 0xbb, 0x77, 0x42, - 0x4c, 0x06, 0x39, 0x9e, 0xf7, 0x99, 0x4b, 0xe7, 0xec, 0x5a, 0x7c, 0x4f, 0xfc, 0x19, 0x1c, 0xe0, - 0x46, 0x80, 0xc1, 0xa9, 0x29, 0xe0, 0x1f, 0x19, 0x66, 0x6f, 0x97, 0x23, 0xb5, 0x2f, 0x55, 0x26, - 0x95, 0xc5, 0xae, 0xd2, 0x07, 0x7c, 0xa9, 0xda, 0x3c, 0x6e, 0x02, 0xae, 0xa0, 0xaa, 0xaf, 0x9a, - 0x3a, 0x56, 0x70, 0x77, 0xd0, 0x5d, 0x27, 0x10, 0x6f, 0x21, 0x6c, 0x04, 0x96, 0x9d, 0xb6, 0x61, - 0xc1, 0xb8, 0x55, 0x45, 0xbf, 0x54, 0x76, 0xcf, 0x2d, 0x57, 0x81, 0xef, 0x31, 0xe5, 0x2a, 0x81, - 0x62, 0x2b, 0x3a, 0x5d, 0x80, 0x2c, 0x64, 0xf8, 0xf0, 0x21, 0x8e, 0x20, 0xb7, 0xe0, 0x83, 0x80, - 0x7f, 0xa0, 0x77, 0x30, 0x31, 0xe7, 0x4b, 0x92, 0x46, 0x70, 0xdd, 0x5d, 0x26, 0x20, 0x60, 0x10, - 0x2b, 0xb8, 0xb7, 0xc7, 0x37, 0x83, 0x7d, 0x5c, 0x25, 0xc6, 0x00, 0x03, 0x25, 0xd5, 0x73, 0x6c, - 0x65, 0x59, 0xdb, 0x8a, 0x9e, 0x66, 0xc0, 0xca, 0x88, 0xd0, 0xdd, 0xde, 0x53, 0xca, 0xf2, 0xc9, - 0x81, 0x94, 0x41, 0x52, 0x10, 0xa2, 0x80, 0x08, 0x7d, 0xac, 0x15, 0x84, 0x3a, 0xc9, 0xda, 0x50, - 0xd5, 0x99, 0x60, 0x91, 0x27, 0xd4, 0x8d, 0x9c, 0x8f, 0x35, 0xcc, 0x25, 0x1d, 0x26, 0x36, 0xb6, - 0x4d, 0xc8, 0xcd, 0x16, 0x39, 0xca, 0x2d, 0x63, 0xf3, 0xb5, 0x31, 0x1f, 0x9b, 0x3b, 0x85, 0x7f, - 0x06, 0x4a, 0xf8, 0x5d, 0xae, 0x0e, 0x70, 0x3d, 0x9f, 0xaf, 0xc1, 0xd0, 0x20, 0x19, 0x69, 0xa9, - 0x12, 0xc2, 0x59, 0x1a, 0xa5, 0xc8, 0xb1, 0xb2, 0x0e, 0x82, 0x1c, 0x62, 0xfa, 0x91, 0x29, 0xb6, - 0xf8, 0x10, 0x40, 0x71, 0x7d, 0x71, 0xdc, 0x72, 0x96, 0x61, 0x4a, 0x58, 0xa0, 0x8e, 0x80, 0xbc, - 0x11, 0x1c, 0x77, 0xfa, 0x18, 0x58, 0xcf, 0xf5, 0xe4, 0x1f, 0xf8, 0x21, 0xe9, 0x72, 0x11, 0xf2, - 0x09, 0x53, 0xb8, 0x2d, 0x57, 0x22, 0x37, 0x93, 0xde, 0x33, 0x74, 0xdd, 0x45, 0xf3, 0x16, 0x12, - 0xb5, 0x97, 0x23, 0x96, 0xa2, 0x03, 0xd5, 0xa8, 0x82, 0x98, 0xcc, 0x70, 0x5e, 0x95, 0x5b, 0xa4, - 0xce, 0xe4, 0x6a, 0x91, 0x0e, 0xd1, 0xc9, 0x76, 0xce, 0xe7, 0x01, 0x2a, 0xf3, 0x08, 0xdc, 0x52, - 0x50, 0x3a, 0x1f, 0x2b, 0x2b, 0xfa, 0x86, 0xef, 0x19, 0xb7, 0xb6, 0x24, 0x10, 0xe7, 0x14, 0xa9, - 0x0c, 0xc9, 0x80, 0xd2, 0xe9, 0x16, 0xa4, 0xf8, 0x13, 0x16, 0x5b, 0x01, 0x95, 0x4c, 0xaa, 0xf2, - 0xc8, 0x31, 0x6a, 0x41, 0x61, 0x74, 0xb5, 0xc8, 0xb9, 0xdf, 0xeb, 0x81, 0xb0, 0x6c, 0xcf, 0x5d, - 0x41, 0xd9, 0x85, 0xb1, 0x45, 0xb3, 0x63, 0x55, 0x44, 0x56, 0x5f, 0x7c, 0x35, 0xb1, 0x1f, 0xc2, - 0x57, 0xf3, 0x4d, 0x83, 0x3f, 0x23, 0x47, 0x85, 0x1f, 0x58, 0x1b, 0x69, 0x22, 0x3c, 0x78, 0x29, - 0xf8, 0x90, 0x75, 0xf7, 0x7d, 0xcb, 0xa8, 0x98, 0x04, 0xb2, 0x47, 0x72, 0xe1, 0xbc, 0x70, 0x39, - 0x19, 0xae, 0x06, 0xae, 0x68, 0x09, 0x4b, 0x11, 0x87, 0x9d, 0x40, 0xa1, 0x8e, 0x65, 0xe6, 0x70, - 0x25, 0x56, 0xbd, 0x79, 0x40, 0x86, 0x0d, 0x57, 0x90, 0x70, 0xc3, 0x58, 0x8b, 0x3c, 0x39, 0x91, - 0x40, 0x61, 0x0d, 0xf0, 0xa6, 0x50, 0x81, 0x08, 0x19, 0x30, 0x59, 0xec, 0x21, 0xe8, 0xba, 0x83, - 0x79, 0x2c, 0xdb, 0x0f, 0x0c, 0x7a, 0x4f, 0x90, 0x92, 0x7f, 0xa4, 0x0b, 0x76, 0x92, 0x53, 0x64, - 0x5b, 0xd9, 0x02, 0x21, 0x83, 0x8c, 0xeb, 0x16, 0x15, 0x35, 0xbd, 0xaa, 0x44, 0x6e, 0x8b, 0x40, - 0x76, 0x57, 0x83, 0x2d, 0xc6, 0xb7, 0x82, 0x3c, 0xda, 0x25, 0x3f, 0xe4, 0x74, 0x88, 0x6a, 0x48, - 0x8b, 0x72, 0xbb, 0x15, 0x4a, 0x44, 0x48, 0x72, 0x5c, 0x39, 0xa3, 0x72, 0xc9, 0x88, 0x00, 0xe8, - 0xd5, 0xdc, 0xd3, 0x94, 0x69, 0x8d, 0x2c, 0x26, 0x5b, 0x20, 0x86, 0x0f, 0x6d, 0x57, 0x43, 0x78, - 0x19, 0xd9, 0x8e, 0xda, 0x9b, 0x6d, 0x31, 0x2a, 0x75, 0x93, 0x3d, 0xe1, 0x53, 0xf2, 0x34, 0x82, - 0x74, 0xa5, 0x10, 0x64, 0x89, 0xe9, 0x12, 0xae, 0x8b, 0x64, 0x89, 0xdd, 0x52, 0x70, 0xdb, 0xda, - 0x66, 0x24, 0x6f, 0x3b, 0xf2, 0x0c, 0xba, 0x2e, 0x90, 0x07, 0x68, 0xb6, 0xb7, 0xc0, 0xd1, 0x95, - 0xcd, 0xeb, 0xae, 0x4b, 0x72, 0x50, 0x7f, 0xe7, 0x75, 0xe6, 0xa7, 0xd3, 0xf7, 0xa0, 0x84, 0x46, - 0xba, 0xee, 0xb6, 0x28, 0x5b, 0x0b, 0x0d, 0x2e, 0x1d, 0x61, 0xb7, 0xd2, 0x39, 0xc3, 0x79, 0x01, - 0x09, 0x83, 0x0a, 0x2e, 0x36, 0xa3, 0xc5, 0x9c, 0x28, 0xfa, 0x14, 0x46, 0xcb, 0x46, 0xeb, 0xf4, - 0x56, 0x1a, 0xaf, 0x2c, 0xe7, 0x2a, 0x1e, 0x41, 0xb2, 0x43, 0xf9, 0x6f, 0x85, 0x9c, 0xb6, 0x9a, - 0xd7, 0x65, 0x91, 0xe1, 0x4c, 0xb7, 0x42, 0x6d, 0xf1, 0x56, 0x05, 0x32, 0x4f, 0x22, 0x6d, 0x63, - 0x33, 0xdc, 0x92, 0xbb, 0xea, 0xc8, 0xa6, 0x63, 0xb9, 0xc4, 0x36, 0x40, 0xb6, 0x51, 0x35, 0x18, - 0x00, 0x21, 0x4d, 0x3d, 0x20, 0x56, 0x57, 0x9f, 0x4f, 0x46, 0x01, 0x16, 0x03, 0x22, 0x57, 0x71, - 0x19, 0x33, 0xbe, 0x32, 0x83, 0xda, 0x55, 0x0c, 0xc7, 0xf2, 0x28, 0xc4, 0x23, 0x10, 0x29, 0x4e, - 0x65, 0x84, 0x79, 0xc3, 0xa1, 0x5c, 0x23, 0x5b, 0x02, 0xad, 0x0d, 0x53, 0x84, 0x80, 0x78, 0x55, - 0xb0, 0x03, 0x4c, 0x97, 0xb8, 0x2e, 0x3d, 0xa1, 0x77, 0x86, 0xdb, 0x23, 0xb7, 0x9a, 0x91, 0x6e, - 0x2b, 0x8e, 0x9b, 0xca, 0xc1, 0x0a, 0x6a, 0x68, 0x8e, 0x6a, 0xa2, 0x20, 0xed, 0x4a, 0xa8, 0xa1, - 0xc4, 0x39, 0xaa, 0x9b, 0x6d, 0x55, 0xc3, 0x76, 0x0d, 0x40, 0x78, 0x52, 0xf4, 0xd5, 0x93, 0xa6, - 0xc0, 0x38, 0xeb, 0x40, 0xee, 0x02, 0xf3, 0xc4, 0x1e, 0x7b, 0xd6, 0x18, 0x7c, 0x08, 0x58, 0x46, - 0x3e, 0x61, 0xe1, 0x08, 0x32, 0x19, 0x04, 0x11, 0x41, 0x7b, 0xd1, 0x93, 0x79, 0xa5, 0xa2, 0x18, - 0xc4, 0xab, 0x27, 0x64, 0xf9, 0x78, 0x65, 0xd4, 0x48, 0xa6, 0xbf, 0x27, 0x72, 0xb1, 0x55, 0x8b, - 0xbc, 0x6f, 0x55, 0xe8, 0xd0, 0x2c, 0x4d, 0xc2, 0xf5, 0x5a, 0x7c, 0xba, 0x54, 0xb0, 0x63, 0x31, - 0xe9, 0xce, 0x1e, 0x29, 0x8b, 0x6a, 0x53, 0x4c, 0x86, 0x6a, 0x55, 0xee, 0x11, 0x72, 0x8b, 0xc1, - 0x38, 0xfb, 0x36, 0x77, 0x19, 0x09, 0xcf, 0xaf, 0x90, 0x20, 0xd7, 0xf4, 0xa7, 0xe0, 0xe3, 0x8b, - 0x22, 0x29, 0x90, 0x40, 0xb5, 0x5c, 0x80, 0xa3, 0x76, 0xdd, 0xa4, 0xe8, 0x30, 0x06, 0xcd, 0x32, - 0xab, 0x9e, 0xfd, 0x7e, 0x75, 0x06, 0x4a, 0xe7, 0x95, 0x4a, 0x49, 0xb1, 0xf4, 0x14, 0xf3, 0x29, - 0x48, 0x55, 0xe4, 0x51, 0xf3, 0x51, 0x2d, 0x2d, 0xc8, 0x12, 0x94, 0x56, 0xba, 0xc0, 0xd3, 0x88, - 0xe2, 0x12, 0x14, 0xb0, 0x41, 0x9b, 0x05, 0x98, 0xa1, 0xa4, 0xa0, 0x5a, 0xdc, 0x93, 0xe1, 0xe3, - 0x32, 0xc9, 0x46, 0x86, 0x31, 0x38, 0x45, 0x44, 0x4f, 0xd4, 0xf1, 0xd5, 0x0f, 0x11, 0xf9, 0x81, - 0x65, 0xbb, 0xcb, 0x1f, 0x5d, 0x23, 0xc9, 0x0a, 0xec, 0x18, 0x32, 0x24, 0xfb, 0xe0, 0xd6, 0xcf, - 0x05, 0x22, 0x4f, 0x48, 0x40, 0xc0, 0x04, 0xdb, 0x5c, 0x2c, 0x0b, 0x43, 0x55, 0xe1, 0x13, 0xd3, - 0x21, 0x4c, 0xfd, 0x85, 0x80, 0xe6, 0x9c, 0x0d, 0xb1, 0x95, 0xb0, 0x55, 0xab, 0xb0, 0x56, 0xc5, - 0x78, 0x24, 0x3a, 0x46, 0x72, 0xa5, 0x55, 0x07, 0x21, 0x27, 0xa3, 0x32, 0x79, 0xdc, 0x52, 0x45, - 0xd1, 0x92, 0xb6, 0x07, 0xc6, 0x64, 0xee, 0x33, 0x31, 0x59, 0x57, 0x87, 0xd4, 0x34, 0x85, 0xa3, - 0xa2, 0xea, 0x84, 0x61, 0xf9, 0x8f, 0x5c, 0x16, 0xff, 0x58, 0x0a, 0x8a, 0x54, 0x1e, 0x08, 0xc5, - 0xb2, 0x0c, 0x2b, 0x00, 0x63, 0x09, 0xbf, 0x5f, 0xdb, 0xd9, 0x78, 0xc8, 0x8b, 0xf4, 0xd0, 0xe8, - 0xca, 0x4b, 0x16, 0x2b, 0x77, 0xa1, 0x77, 0x55, 0x1f, 0x57, 0xd3, 0xc4, 0x21, 0x0d, 0x74, 0xd8, - 0x19, 0xa0, 0x50, 0x2b, 0x61, 0x7f, 0x57, 0x0e, 0xa9, 0x11, 0x2b, 0xd5, 0x3e, 0x25, 0xa8, 0xbc, - 0x1c, 0xaf, 0xf3, 0xe6, 0xed, 0xa0, 0x4e, 0x1b, 0x94, 0x29, 0x90, 0x69, 0x85, 0x04, 0x4d, 0xd4, - 0xd5, 0x0d, 0x5b, 0x99, 0x47, 0xd7, 0x52, 0xba, 0x6a, 0x53, 0xa1, 0x97, 0x1a, 0x39, 0xbe, 0xaa, - 0x7a, 0xcf, 0x10, 0xbe, 0xea, 0x46, 0x57, 0xb1, 0x3d, 0xbe, 0x9e, 0x5f, 0x7c, 0xb5, 0x88, 0xa2, - 0xe2, 0x26, 0xe4, 0x16, 0x5f, 0xf5, 0xae, 0xe6, 0x89, 0x70, 0x12, 0xb3, 0xed, 0x91, 0x4c, 0xb0, - 0xca, 0xc7, 0x9a, 0xd4, 0x22, 0x18, 0x49, 0x71, 0x05, 0xc4, 0x08, 0xb5, 0x32, 0x44, 0x35, 0xe4, - 0x88, 0x75, 0xe0, 0x2b, 0xcc, 0x54, 0x1d, 0x6a, 0xfe, 0xac, 0xc9, 0xd0, 0x87, 0x9c, 0x0f, 0x10, - 0x73, 0x61, 0x89, 0xd1, 0x93, 0x94, 0x25, 0x2a, 0xc0, 0xbd, 0x0a, 0xcf, 0x74, 0x9b, 0xa5, 0x18, - 0xe1, 0x5c, 0xd9, 0xc1, 0x9f, 0x5c, 0xd9, 0x88, 0x7c, 0x20, 0xe5, 0x11, 0x5c, 0x00, 0x97, 0xbe, - 0xc6, 0x17, 0x02, 0x81, 0x56, 0xc7, 0x79, 0x00, 0x04, 0xfb, 0x4a, 0xec, 0x63, 0x0c, 0xf1, 0xf4, - 0xe5, 0x03, 0x93, 0x19, 0x2b, 0xd6, 0xf5, 0xca, 0x74, 0xe7, 0x11, 0xa1, 0xb6, 0xec, 0x01, 0x4f, - 0xb7, 0x1d, 0xdd, 0x1d, 0xac, 0x42, 0xb8, 0x4a, 0xf2, 0x2d, 0x54, 0x6f, 0x28, 0xb7, 0xdb, 0xf8, - 0xae, 0x3a, 0x76, 0x33, 0xc1, 0x63, 0x00, 0x0d, 0xf9, 0xca, 0x92, 0x58, 0xc4, 0x8a, 0x7c, 0x55, - 0x87, 0xfd, 0x89, 0x0b, 0xa7, 0xcc, 0xb4, 0x85, 0xc5, 0x57, 0x2d, 0x58, 0xba, 0x48, 0x90, 0x18, - 0x6b, 0xde, 0xfc, 0x3a, 0x00, 0x79, 0xc4, 0x99, 0x2f, 0x2b, 0xf8, 0x95, 0x90, 0x2e, 0xef, 0xdb, - 0x84, 0x2d, 0xa5, 0xbb, 0x80, 0x2a, 0x03, 0xd0, 0xc9, 0x2a, 0x86, 0xaf, 0x01, 0x79, 0x7d, 0x91, - 0x9e, 0xa8, 0x73, 0xe2, 0xcf, 0xbc, 0x05, 0x4b, 0x0d, 0x8c, 0x07, 0x92, 0x86, 0x09, 0xc8, 0xc5, - 0x09, 0xd7, 0xad, 0x45, 0xbf, 0x74, 0x2c, 0x68, 0xdb, 0x96, 0xd2, 0xed, 0x2b, 0xb6, 0xab, 0xcb, - 0x13, 0x6e, 0xfd, 0x1f, 0xaf, 0xca, 0xac, 0x67, 0xc9, 0x43, 0xc0, 0x07, 0xe5, 0x13, 0xf3, 0x9e, - 0x65, 0x0c, 0xe7, 0x1e, 0x2f, 0xf0, 0xd8, 0xf8, 0xc2, 0x31, 0xe6, 0xeb, 0x99, 0xa0, 0xbf, 0x38, - 0xb9, 0x12, 0x2a, 0xc3, 0x87, 0xb7, 0x4c, 0x7f, 0xfb, 0xb6, 0x6a, 0x99, 0xce, 0xba, 0x86, 0x3a, - 0xdf, 0xba, 0x56, 0xf6, 0x65, 0xc6, 0x30, 0x7d, 0xaf, 0x96, 0x33, 0x09, 0x12, 0xe3, 0x44, 0x14, - 0x7f, 0x07, 0x03, 0xf7, 0xb0, 0xfa, 0x41, 0xcd, 0xff, 0x2b, 0x21, 0x64, 0x2e, 0xd2, 0x62, 0x92, - 0x8b, 0x14, 0x0d, 0xd4, 0x4b, 0x45, 0xcb, 0xad, 0x3e, 0xd6, 0x86, 0x5e, 0xb8, 0x15, 0xb4, 0xab, - 0x09, 0x5f, 0x45, 0x11, 0xb4, 0x31, 0xa9, 0xf0, 0x4f, 0x01, 0x06, 0x0e, 0xe0, 0xf5, 0xff, 0x36, - 0x78, 0x5f, 0xc5, 0x9e, 0x08, 0x00, 0xdb, 0x7f, 0x23, 0x40, 0x11, 0x7b, 0x3c, 0xf9, 0xfb, 0x00, - 0xf6, 0x7a, 0x08, 0xf0, 0x35, 0x06, 0xa0, 0xf0, 0x75, 0xd2, 0x96, 0xb5, 0x68, 0x2d, 0x1f, 0xc3, - 0xee, 0xf5, 0xca, 0x3d, 0xa9, 0xc7, 0x89, 0x04, 0x36, 0x87, 0xf6, 0xbd, 0xaf, 0x9d, 0x76, 0xb7, - 0x4d, 0xea, 0x19, 0x28, 0xd3, 0x89, 0x40, 0x6b, 0x13, 0xbe, 0xbe, 0x75, 0xec, 0x2d, 0x78, 0xb3, - 0xfa, 0x6d, 0xfa, 0x8e, 0xd5, 0x09, 0xb4, 0x6f, 0x11, 0x69, 0x88, 0x36, 0xa1, 0x3d, 0x6a, 0x23, - 0x33, 0x0a, 0x18, 0x81, 0x97, 0xf5, 0x8c, 0x58, 0xf3, 0x68, 0x84, 0xc6, 0xc4, 0x78, 0x62, 0xcc, - 0xc5, 0x48, 0xec, 0x81, 0x4d, 0x00, 0x94, 0xee, 0x83, 0xd3, 0x3d, 0xef, 0xd1, 0x39, 0x6a, 0x78, - 0x01, 0xe6, 0xe0, 0x0b, 0x66, 0x5c, 0x3a, 0x0b, 0x8b, 0x3f, 0x9a, 0x01, 0x04, 0x4f, 0x9a, 0x76, - 0x53, 0x02, 0xd2, 0xda, 0x92, 0x24, 0xb7, 0x00, 0x36, 0x6b, 0x8e, 0x9c, 0x50, 0xb7, 0x89, 0xd8, - 0xb1, 0x56, 0xa0, 0x0c, 0xf8, 0x76, 0x13, 0xd7, 0xee, 0x9f, 0x9e, 0x99, 0x06, 0x37, 0x97, 0x64, - 0x48, 0xeb, 0x28, 0x4b, 0x66, 0x5f, 0x7f, 0x67, 0x62, 0xf5, 0x66, 0x6f, 0xc8, 0x04, 0x1b, 0x5e, - 0x0f, 0x97, 0xea, 0xac, 0xf6, 0x8c, 0xce, 0xc8, 0xf6, 0xb7, 0xe6, 0x62, 0x72, 0xf8, 0xaa, 0x3c, - 0xdd, 0x2a, 0xb0, 0x46, 0xba, 0x4e, 0xd6, 0x17, 0xa8, 0xa7, 0xf3, 0x3a, 0x0f, 0x34, 0x8e, 0x31, - 0x8f, 0x9c, 0xb8, 0x64, 0xa6, 0x0f, 0x8e, 0x1f, 0x1a, 0x67, 0x3e, 0xae, 0xc5, 0x19, 0x8c, 0x86, - 0x6d, 0x6f, 0xc3, 0x34, 0xa8, 0x58, 0x2d, 0x2f, 0xc6, 0x21, 0x53, 0x71, 0x90, 0x1c, 0x22, 0x8d, - 0x58, 0x85, 0xdf, 0x80, 0x40, 0x0d, 0xc2, 0x64, 0x6c, 0xe3, 0x70, 0x97, 0x9a, 0xbc, 0xac, 0xef, - 0xf5, 0xd2, 0x58, 0x10, 0x07, 0x02, 0x51, 0x20, 0xff, 0x4b, 0x7e, 0x04, 0x99, 0x74, 0xd9, 0x35, - 0xf8, 0x31, 0xf1, 0x3c, 0x38, 0x98, 0xff, 0x26, 0x36, 0x62, 0xe5, 0x44, 0x94, 0x78, 0x16, 0x5f, - 0xc9, 0xb1, 0x09, 0x9b, 0xfb, 0xdd, 0x61, 0x29, 0xfb, 0x0d, 0x29, 0x7b, 0x0d, 0x21, 0x93, 0x2f, - 0xac, 0x5b, 0x48, 0x21, 0x7b, 0x2c, 0x91, 0x23, 0xd6, 0xd4, 0xb8, 0x02, 0x23, 0x71, 0x60, 0x17, - 0x41, 0xd1, 0x28, 0x38, 0x10, 0x8c, 0xe9, 0xe4, 0xc4, 0xb5, 0xd6, 0x0d, 0xd1, 0x6b, 0x47, 0x8c, - 0x88, 0x55, 0x0c, 0x88, 0x27, 0x6c, 0x3b, 0x1c, 0xb7, 0x2d, 0xbb, 0xf3, 0x18, 0x73, 0xdf, 0xd7, - 0xb6, 0xa5, 0x92, 0xb2, 0xcb, 0x52, 0x5c, 0xc0, 0x04, 0xdd, 0x1e, 0x3a, 0x51, 0x9e, 0xaa, 0x29, - 0xdd, 0x21, 0xfe, 0x9a, 0xb2, 0x86, 0x96, 0x57, 0x72, 0xb0, 0x66, 0x99, 0xd3, 0x8e, 0x97, 0x19, - 0x6e, 0xd8, 0xa0, 0x13, 0x68, 0xf2, 0x82, 0x41, 0x59, 0x52, 0x13, 0x89, 0x70, 0x16, 0x94, 0xfb, - 0x83, 0x7d, 0xcb, 0x47, 0x70, 0x16, 0x60, 0x9c, 0x95, 0xa5, 0x3d, 0x8f, 0xee, 0xd2, 0xcc, 0x8a, - 0x58, 0x9f, 0x0a, 0x21, 0x0e, 0xbb, 0xd5, 0x1d, 0x31, 0x6f, 0x00, 0xdc, 0x4d, 0x71, 0x09, 0x0a, - 0x69, 0x14, 0x0f, 0x80, 0x6c, 0x2d, 0x2b, 0xc6, 0x9e, 0x5f, 0xc7, 0x32, 0xc1, 0xe6, 0xba, 0x74, - 0x36, 0x51, 0x8d, 0x68, 0x45, 0xf9, 0xb5, 0xe5, 0x3c, 0xf5, 0xa6, 0xa3, 0xa9, 0x26, 0xd5, 0x69, - 0xc3, 0x49, 0x2b, 0x35, 0xe4, 0x5c, 0x72, 0x9d, 0x69, 0x96, 0xd9, 0xa1, 0x89, 0x0c, 0xbc, 0x65, - 0x53, 0xf3, 0x82, 0xe0, 0xdb, 0xb7, 0xe3, 0x52, 0xb3, 0xe1, 0x64, 0x7c, 0x71, 0xf7, 0x75, 0x56, - 0xb5, 0xa1, 0x90, 0x5c, 0xa7, 0xdd, 0x2f, 0x28, 0xbc, 0x79, 0x48, 0x88, 0xf5, 0xb6, 0x9b, 0xe0, - 0x13, 0xb1, 0x5c, 0xb8, 0xdb, 0xf1, 0xae, 0x2d, 0x6c, 0x4b, 0x22, 0x86, 0xed, 0xd8, 0x4d, 0xc9, - 0x15, 0x0e, 0x04, 0x08, 0x4b, 0x9f, 0x07, 0x09, 0xc6, 0xa3, 0xc7, 0xb2, 0x3b, 0x53, 0x30, 0x8f, - 0x3b, 0x99, 0xa4, 0x6c, 0x20, 0x4f, 0x81, 0x3a, 0x00, 0x90, 0xef, 0x50, 0x5b, 0xb7, 0x2b, 0xb8, - 0xcf, 0x5d, 0x45, 0xa3, 0xcf, 0x53, 0xb7, 0x0f, 0xf9, 0xf0, 0x76, 0x7e, 0x60, 0x3b, 0x21, 0xe4, - 0x77, 0x40, 0x8b, 0x30, 0xf8, 0xd4, 0xcd, 0x00, 0xdb, 0x10, 0x1c, 0x12, 0xff, 0xbb, 0x18, 0xd0, - 0x6d, 0x30, 0x79, 0x25, 0xb2, 0xf3, 0x91, 0x41, 0x75, 0x3b, 0x93, 0x23, 0x1c, 0x8c, 0xea, 0x34, - 0x69, 0x04, 0x15, 0x56, 0x7b, 0x82, 0x45, 0xa2, 0x14, 0xb0, 0x34, 0xf6, 0xf3, 0x75, 0xd6, 0xfe, - 0x35, 0xa4, 0xb8, 0x0a, 0x7f, 0xbe, 0x13, 0xcd, 0x64, 0xa0, 0x3a, 0xca, 0x16, 0xac, 0x1d, 0x64, - 0x99, 0x43, 0xa6, 0xb1, 0xa0, 0x8c, 0x65, 0x99, 0x33, 0x40, 0x72, 0x00, 0x79, 0x51, 0xf9, 0x2b, - 0xbf, 0x42, 0xd1, 0x72, 0x19, 0x46, 0x40, 0x6f, 0x20, 0xcf, 0x41, 0x5f, 0x94, 0x6c, 0x99, 0xc1, - 0x6f, 0x7b, 0x6c, 0x35, 0x62, 0x99, 0x0e, 0xe5, 0xf6, 0x97, 0xb3, 0x40, 0xa7, 0x51, 0x2e, 0xa5, - 0x6c, 0x73, 0x1e, 0x59, 0x45, 0xa8, 0x33, 0x58, 0xd0, 0x37, 0x87, 0x0b, 0x30, 0x36, 0x31, 0xca, - 0xc5, 0xd6, 0xa1, 0xfa, 0x73, 0x1c, 0xce, 0x5b, 0x96, 0x03, 0x56, 0xb3, 0x08, 0xef, 0x13, 0x57, - 0xf1, 0xbe, 0xc2, 0xdf, 0xc7, 0xfb, 0x56, 0x09, 0x32, 0x64, 0xe9, 0x8c, 0x26, 0xfe, 0x55, 0x46, - 0x19, 0x66, 0x8d, 0x8a, 0x06, 0xbc, 0xd1, 0x56, 0xed, 0xc5, 0x57, 0xc7, 0x99, 0xc7, 0x78, 0xd5, - 0x74, 0xb4, 0x65, 0x4a, 0x46, 0xb5, 0x85, 0x8d, 0x11, 0xf1, 0x38, 0x31, 0x85, 0xe0, 0x8b, 0x16, - 0x7e, 0x53, 0xe6, 0x41, 0xf6, 0x50, 0x5b, 0x16, 0xb0, 0xf2, 0x48, 0xaa, 0x5d, 0x75, 0x4c, 0xf3, - 0xcf, 0x97, 0xb7, 0x4b, 0xbc, 0x6f, 0x9f, 0xb1, 0x55, 0x5b, 0x4c, 0xaf, 0xc7, 0xd1, 0x02, 0x6a, - 0xca, 0xfa, 0xee, 0x2a, 0xa2, 0x6f, 0x7a, 0x65, 0x43, 0xeb, 0xea, 0xc9, 0x31, 0x22, 0x99, 0x3b, - 0xf8, 0xae, 0x02, 0xbd, 0x3a, 0x0b, 0xf3, 0x64, 0x89, 0xd0, 0x0f, 0x28, 0x59, 0x11, 0x2c, 0x2c, - 0xe3, 0x36, 0x90, 0xc1, 0xee, 0x87, 0xb1, 0x14, 0x44, 0xcd, 0x47, 0x9b, 0x44, 0x31, 0xfa, 0x52, - 0x50, 0x20, 0xd5, 0x41, 0xd4, 0x52, 0xac, 0x9f, 0x42, 0x20, 0x09, 0x9b, 0xf2, 0x73, 0xfe, 0x49, - 0xd5, 0xeb, 0xb3, 0x13, 0x84, 0xa0, 0x3c, 0xde, 0xfc, 0x48, 0x26, 0x69, 0x40, 0x33, 0x5b, 0xf6, - 0xc6, 0xc8, 0xda, 0x35, 0xdf, 0x8b, 0x30, 0x66, 0x16, 0x60, 0x8b, 0x7b, 0xaa, 0xa2, 0x75, 0x97, - 0xa6, 0x82, 0xff, 0x25, 0x2e, 0x31, 0x06, 0x11, 0x4b, 0x6e, 0x5c, 0x8c, 0x3c, 0x0a, 0x62, 0x58, - 0x45, 0xa0, 0x48, 0x5a, 0x1e, 0xb5, 0x65, 0x88, 0x54, 0xd7, 0x5a, 0x42, 0x30, 0x53, 0xc1, 0x62, - 0xd0, 0x5c, 0x8c, 0x1b, 0x20, 0x5f, 0x24, 0x57, 0x75, 0x1d, 0x77, 0x4e, 0x4c, 0x60, 0x88, 0xd4, - 0xa7, 0x43, 0x58, 0x97, 0x1b, 0xf0, 0x16, 0xce, 0xbd, 0x4a, 0xdd, 0xa4, 0xac, 0x96, 0x5b, 0xea, - 0x22, 0xb3, 0xbb, 0x29, 0xc3, 0xa5, 0xde, 0xa7, 0x4d, 0x67, 0xea, 0xcc, 0x23, 0x9e, 0x0d, 0xdc, - 0x16, 0x87, 0x3a, 0x7f, 0x72, 0x81, 0x59, 0x60, 0x26, 0xc8, 0x71, 0x3d, 0xcc, 0xc6, 0x10, 0xd2, - 0x32, 0x1c, 0x5c, 0x81, 0xbc, 0x0d, 0x91, 0x8a, 0x18, 0x6f, 0x8d, 0x5d, 0xa5, 0x24, 0x80, 0xc4, - 0xe4, 0x93, 0x8c, 0xa5, 0x10, 0x42, 0x23, 0x7c, 0x31, 0x42, 0x77, 0x01, 0x63, 0xef, 0x22, 0x2d, - 0x9b, 0x2a, 0x76, 0x89, 0x55, 0x59, 0x82, 0x3e, 0x57, 0xab, 0x74, 0x1a, 0x86, 0xa7, 0x98, 0xd7, - 0x6e, 0x74, 0x48, 0x22, 0x58, 0x70, 0x85, 0x2b, 0x89, 0x09, 0x57, 0xe5, 0x90, 0xfc, 0x12, 0x31, - 0x93, 0xf8, 0x68, 0x43, 0xaa, 0x0a, 0x4a, 0x34, 0x26, 0x7a, 0xbb, 0x12, 0xff, 0x44, 0x7c, 0x98, - 0x2f, 0xaf, 0xe5, 0x31, 0xbb, 0x31, 0xeb, 0x24, 0x5b, 0x97, 0x7d, 0x87, 0x97, 0xdb, 0x7c, 0x78, - 0x2a, 0x92, 0x01, 0x0b, 0xec, 0x02, 0x49, 0xa5, 0x35, 0x9b, 0xea, 0xfe, 0x2e, 0x35, 0x69, 0x2b, - 0x71, 0x85, 0xf3, 0x1a, 0xbc, 0xc2, 0x31, 0x4e, 0x74, 0xfd, 0x71, 0xb7, 0x8a, 0x88, 0x65, 0xbb, - 0x6d, 0x87, 0xd6, 0x6e, 0xd1, 0xc5, 0x58, 0xc4, 0xa3, 0xc2, 0xee, 0x9b, 0x49, 0x56, 0xcd, 0x9c, - 0x08, 0x2d, 0xd4, 0x55, 0xd4, 0x7b, 0x07, 0x61, 0xd2, 0x54, 0xbb, 0x9f, 0xf2, 0x48, 0x8c, 0xd8, - 0x7f, 0x97, 0x91, 0x18, 0x26, 0x47, 0x1c, 0x56, 0x5d, 0x99, 0x40, 0xaf, 0xe6, 0x61, 0xaf, 0x57, - 0xf4, 0xda, 0xf5, 0xda, 0x5e, 0xf4, 0x04, 0xce, 0xf4, 0xd4, 0x97, 0x5c, 0x03, 0x5e, 0x8f, 0xf9, - 0x7c, 0x48, 0xfa, 0x25, 0xd9, 0x3c, 0x39, 0xac, 0xea, 0x2f, 0x3d, 0x48, 0x05, 0x9e, 0x09, 0x96, - 0xe8, 0x72, 0x1d, 0x1b, 0x24, 0xc7, 0xa9, 0x2f, 0xa4, 0x2e, 0xd3, 0x77, 0x37, 0xe8, 0xba, 0xeb, - 0xe5, 0x07, 0xe8, 0xd1, 0xad, 0xd6, 0x60, 0x36, 0xcf, 0x97, 0x5a, 0x20, 0xb2, 0x1f, 0x41, 0x03, - 0xdb, 0x21, 0x27, 0x94, 0x4b, 0x55, 0x82, 0x80, 0xa2, 0x2d, 0xc4, 0xa7, 0x92, 0x94, 0xd8, 0xbc, - 0xd1, 0x44, 0x18, 0x22, 0xdb, 0xb1, 0x97, 0x3d, 0x35, 0x19, 0x0e, 0x88, 0xe3, 0x9c, 0x39, 0xb1, - 0x96, 0xfc, 0x8e, 0x63, 0x7d, 0xb6, 0x00, 0xb8, 0x40, 0xb6, 0xc5, 0xa2, 0xce, 0xa0, 0x32, 0x48, - 0x83, 0xcb, 0xae, 0x66, 0xdd, 0xa0, 0xcf, 0xb8, 0x47, 0x1c, 0xfe, 0x5e, 0x87, 0x6f, 0xff, 0x5e, - 0xa4, 0x7b, 0xd6, 0xfb, 0x9c, 0x90, 0x4b, 0x2e, 0x1b, 0xbb, 0x81, 0x8f, 0x24, 0xb5, 0x95, 0x5b, - 0x36, 0x70, 0x05, 0x57, 0xb4, 0x80, 0x6f, 0x77, 0xc0, 0x53, 0x14, 0x00, 0x87, 0xa7, 0x3f, 0xd9, - 0xa2, 0x16, 0xd2, 0xc8, 0xc4, 0x8c, 0x55, 0x6e, 0x34, 0x9e, 0xc9, 0x22, 0xda, 0x53, 0x4b, 0x19, - 0x77, 0x06, 0xaf, 0x5a, 0x64, 0xfe, 0x88, 0x1c, 0xea, 0x26, 0xae, 0xe5, 0xc1, 0xdb, 0x53, 0x08, - 0x88, 0xcd, 0xd8, 0xc9, 0xdb, 0x3d, 0x6e, 0xa9, 0xbc, 0x48, 0x4b, 0xfb, 0x7e, 0x5a, 0x5b, 0x6c, - 0x66, 0x91, 0x56, 0xd2, 0xd5, 0x80, 0xb5, 0x95, 0xbe, 0xc4, 0x60, 0xd4, 0x37, 0x91, 0x46, 0x90, - 0xe3, 0x09, 0x54, 0x4c, 0xc2, 0x62, 0x50, 0xa1, 0x22, 0xb7, 0xff, 0xf8, 0x18, 0x03, 0x31, 0xc8, - 0xa8, 0x02, 0x76, 0x64, 0xba, 0xfb, 0x18, 0xf5, 0x1c, 0xfd, 0x4b, 0x9a, 0x54, 0x16, 0xe8, 0xc3, - 0x6f, 0x41, 0x88, 0x61, 0x04, 0xf5, 0x9a, 0x80, 0x37, 0x73, 0xf6, 0x03, 0x93, 0xdb, 0xb2, 0x15, - 0x36, 0xd0, 0xdd, 0xf9, 0xb2, 0x30, 0xb4, 0x08, 0xf9, 0x2a, 0x10, 0xdc, 0xfe, 0xb7, 0x25, 0xfc, - 0x84, 0xbf, 0xfa, 0x0d, 0x5e, 0x6b, 0x0c, 0xf0, 0x80, 0xb8, 0x8e, 0x1d, 0x5e, 0xb9, 0xcf, 0x48, - 0xc8, 0x31, 0xc4, 0xca, 0x45, 0x41, 0xd2, 0xa9, 0x52, 0x61, 0x43, 0xe2, 0x8f, 0x52, 0xc1, 0x47, - 0x5d, 0xc0, 0x4d, 0xa6, 0x1a, 0x95, 0x7d, 0xc3, 0xee, 0x20, 0x40, 0x7e, 0x30, 0x3c, 0x39, 0x6a, - 0x1d, 0x88, 0xaf, 0x0f, 0xba, 0x60, 0x38, 0xf9, 0xc2, 0x7c, 0x59, 0x4b, 0x62, 0x2b, 0x4c, 0xbe, - 0x80, 0x9e, 0xd7, 0xe4, 0xfc, 0xd0, 0xaa, 0x6f, 0x2b, 0xd2, 0x19, 0x19, 0x70, 0x4b, 0x48, 0x72, - 0x37, 0x69, 0x03, 0x5d, 0x72, 0x69, 0xb0, 0xb0, 0xec, 0xeb, 0x52, 0xdd, 0x2a, 0x7d, 0xde, 0x24, - 0x4b, 0x66, 0xa2, 0x3f, 0xd4, 0x64, 0x5e, 0x86, 0x68, 0x91, 0xae, 0x93, 0x83, 0xe8, 0xf9, 0x84, - 0xcf, 0x2c, 0x5b, 0x6d, 0xd7, 0x46, 0x18, 0xdc, 0xd4, 0x4d, 0x9b, 0x20, 0x01, 0x91, 0x55, 0x7a, - 0xad, 0x2f, 0xdb, 0x0a, 0x59, 0x3e, 0xec, 0x03, 0x42, 0x7c, 0x5d, 0xd7, 0x4a, 0xeb, 0x05, 0x7b, - 0x49, 0x03, 0x0f, 0xeb, 0xca, 0x64, 0x21, 0xc7, 0xc6, 0x60, 0x5f, 0x51, 0xbc, 0x08, 0x88, 0x4a, - 0xac, 0xd5, 0xe1, 0x54, 0x92, 0x9b, 0x4b, 0xdb, 0x94, 0x75, 0xc5, 0x32, 0xe7, 0x92, 0x3b, 0x7d, - 0x2b, 0x84, 0x9d, 0x13, 0x0f, 0x3a, 0xe0, 0xbe, 0x58, 0x42, 0xf0, 0xbc, 0x83, 0x0c, 0x02, 0x20, - 0xd6, 0xa8, 0xe1, 0xef, 0xcb, 0xa7, 0x41, 0xee, 0xf3, 0xf8, 0xba, 0x2b, 0xcf, 0xe1, 0x3f, 0xc2, - 0x25, 0xa3, 0x98, 0x58, 0x12, 0xac, 0xe2, 0xed, 0x69, 0x2e, 0xe5, 0xd2, 0x86, 0x55, 0xfb, 0x96, - 0x3c, 0x23, 0x3e, 0x3f, 0xcc, 0x61, 0x23, 0x3e, 0x79, 0x91, 0xd6, 0xda, 0xda, 0x96, 0xf6, 0x31, - 0x19, 0x84, 0x56, 0x03, 0x5a, 0xca, 0x5e, 0xd1, 0x4d, 0x9f, 0xc9, 0x17, 0xc3, 0x72, 0x51, 0xce, - 0x9b, 0xc5, 0xf9, 0xf2, 0x3f, 0xe3, 0x0e, 0xd0, 0x68, 0xaa, 0xed, 0xcc, 0x57, 0x39, 0x39, 0x53, - 0x67, 0xc7, 0x8f, 0xc8, 0x82, 0xcd, 0x15, 0xcf, 0xc5, 0x93, 0xcb, 0xc6, 0x18, 0x9d, 0xa3, 0x18, - 0x85, 0x9a, 0x6d, 0xe7, 0x78, 0x1e, 0xe3, 0xe6, 0xba, 0x72, 0xb3, 0x69, 0x99, 0xb4, 0x3d, 0x89, - 0x98, 0x99, 0x40, 0x96, 0x9d, 0x44, 0xa3, 0x14, 0x1a, 0xe3, 0xb7, 0x5c, 0x0b, 0xba, 0x36, 0x8b, - 0x71, 0x36, 0xab, 0xc0, 0xf2, 0xe2, 0x5b, 0x00, 0x49, 0xf3, 0xc3, 0xab, 0x2b, 0x55, 0x2a, 0x94, - 0xee, 0x3c, 0x76, 0xb7, 0x7d, 0xe1, 0xba, 0x3c, 0x13, 0xff, 0x68, 0xba, 0x06, 0x00, 0x3f, 0x76, - 0x12, 0x3f, 0x3a, 0x9a, 0x6c, 0xdb, 0x7f, 0xd4, 0x5d, 0xf1, 0xe2, 0x67, 0x52, 0x20, 0xd0, 0xd7, - 0x66, 0x89, 0xab, 0xa3, 0x90, 0xf4, 0xdb, 0x10, 0x64, 0x45, 0x81, 0x44, 0x8f, 0x23, 0x05, 0x12, - 0x63, 0xec, 0x06, 0xb1, 0x1f, 0xa3, 0x16, 0x84, 0x65, 0xab, 0x39, 0x69, 0xb6, 0x8f, 0x86, 0xf0, - 0xca, 0x1e, 0xf9, 0x2a, 0xb0, 0x57, 0x32, 0x52, 0xf3, 0xa0, 0x2b, 0xa5, 0xe7, 0xdf, 0x89, 0x42, - 0x4c, 0x8c, 0x6f, 0x27, 0xf3, 0x23, 0xe7, 0x3c, 0x50, 0x2b, 0x51, 0xc4, 0x3c, 0x8c, 0xb3, 0xee, - 0x92, 0x46, 0x9c, 0xd0, 0x7b, 0x53, 0xa4, 0x79, 0x2e, 0xa6, 0xad, 0xe5, 0xfc, 0xf2, 0x77, 0xda, - 0x3c, 0xbf, 0x34, 0xee, 0xed, 0xac, 0x2d, 0x1e, 0xc9, 0x10, 0x29, 0x4f, 0x52, 0xdd, 0x63, 0x06, - 0xee, 0x04, 0xf7, 0x4e, 0x0f, 0xc7, 0x29, 0x64, 0x58, 0x60, 0xad, 0xda, 0xb8, 0xac, 0x16, 0xfe, - 0x55, 0xb6, 0x04, 0x35, 0xc1, 0x92, 0x32, 0x8e, 0xd9, 0x0f, 0x2d, 0xc6, 0x8a, 0xcf, 0x51, 0x99, - 0xcd, 0xf7, 0x13, 0x01, 0x5e, 0xad, 0x77, 0xe7, 0xab, 0x3d, 0xa6, 0xe3, 0xdc, 0xa3, 0xf5, 0x18, - 0x62, 0x0b, 0x0b, 0xd2, 0xa1, 0x13, 0x53, 0x71, 0xe7, 0x2b, 0x82, 0xea, 0x2f, 0x4e, 0x65, 0xb2, - 0x7f, 0x11, 0xd1, 0xd7, 0xdc, 0x59, 0x1f, 0x65, 0xf9, 0x31, 0xbc, 0x22, 0xde, 0xc6, 0xb1, 0x6e, - 0x4b, 0xe9, 0x2f, 0x62, 0x3e, 0xae, 0xef, 0x4b, 0x96, 0xa4, 0x25, 0x37, 0xf1, 0x15, 0xe5, 0xd8, - 0xfe, 0x53, 0xec, 0x37, 0x9c, 0x28, 0x55, 0xc0, 0x68, 0x47, 0x19, 0x18, 0x1a, 0x71, 0xd5, 0x1d, - 0x18, 0x13, 0x3d, 0xb9, 0x7e, 0x52, 0xa3, 0x98, 0xa1, 0x92, 0x73, 0x86, 0x81, 0x53, 0x1d, 0x44, - 0xa0, 0x5e, 0xb9, 0x6e, 0x14, 0xf3, 0x6c, 0x8f, 0x72, 0x4b, 0x17, 0xdc, 0xad, 0x91, 0x35, 0xbe, - 0xaa, 0x6b, 0x78, 0x3c, 0x73, 0xba, 0xe4, 0xfc, 0xfd, 0x34, 0xd6, 0x10, 0xee, 0xef, 0xd8, 0x61, - 0xc3, 0xae, 0x71, 0xc1, 0x39, 0xe9, 0xf6, 0x32, 0x4e, 0x5e, 0xa6, 0x11, 0x0a, 0xc9, 0xb3, 0xd2, - 0xfd, 0x6f, 0xcb, 0xd2, 0xac, 0xcb, 0x79, 0x82, 0x47, 0x0a, 0x3d, 0x17, 0xe3, 0x60, 0xa2, 0x8b, - 0x50, 0x3f, 0xc5, 0x6e, 0xdb, 0xa1, 0x57, 0x6c, 0x43, 0x48, 0x41, 0xf3, 0xab, 0x8d, 0x48, 0xb4, - 0x02, 0xf5, 0x89, 0x8d, 0x13, 0x0b, 0x82, 0x92, 0xd6, 0xb0, 0xe8, 0x1a, 0x28, 0x8a, 0x4c, 0x24, - 0x8f, 0xb3, 0xfb, 0x9b, 0x46, 0x36, 0xd4, 0xf3, 0xa8, 0xae, 0x09, 0x4a, 0xbd, 0x6c, 0xb9, 0xc7, - 0x8d, 0xd1, 0xd1, 0x2e, 0x3d, 0x00, 0x45, 0x98, 0x8e, 0x79, 0xf0, 0x24, 0x53, 0x76, 0xdd, 0xfe, - 0x4c, 0xdb, 0xb3, 0x13, 0x50, 0xed, 0x20, 0xe0, 0x96, 0xe0, 0x1e, 0xe3, 0x9f, 0x7b, 0x47, 0xfb, - 0xe3, 0xbe, 0x32, 0xaf, 0x8d, 0x88, 0x17, 0x4a, 0x6c, 0x46, 0xea, 0x72, 0xb0, 0x3c, 0x8d, 0xed, - 0xb6, 0xef, 0x70, 0x97, 0xce, 0x2e, 0x5b, 0x20, 0x57, 0x43, 0x5b, 0x3a, 0xab, 0x17, 0x80, 0x39, - 0x48, 0x2e, 0xfe, 0x63, 0x08, 0x23, 0x2e, 0x73, 0x30, 0xcf, 0x38, 0x58, 0x07, 0x38, 0x18, 0x4f, - 0x2e, 0xe1, 0x2e, 0xe3, 0xba, 0x92, 0x9c, 0x07, 0x5c, 0x13, 0x28, 0xa4, 0x54, 0x8c, 0xbb, 0xd1, - 0x7a, 0x57, 0x23, 0xb7, 0x0e, 0x0f, 0x7e, 0xe0, 0xb0, 0x0a, 0x1a, 0x0c, 0xbc, 0x4a, 0x18, 0xb0, - 0x10, 0x29, 0xaf, 0x29, 0x5c, 0x40, 0x23, 0x55, 0x92, 0xa5, 0x7a, 0x72, 0x73, 0xae, 0x84, 0xf6, - 0xda, 0xf9, 0x27, 0x5c, 0x45, 0x97, 0x9d, 0x59, 0xdd, 0xed, 0x54, 0x21, 0xba, 0xbd, 0x1a, 0x70, - 0x95, 0xfd, 0xc8, 0xb1, 0x34, 0x87, 0xc2, 0xe4, 0xda, 0x66, 0x23, 0xa3, 0x87, 0x3e, 0x07, 0x0e, - 0x6a, 0xba, 0xee, 0x34, 0xe9, 0xe2, 0x3f, 0x23, 0xd1, 0x07, 0xa8, 0x28, 0xbd, 0x0c, 0xcd, 0xeb, - 0x6e, 0x21, 0x2f, 0xf9, 0x48, 0xf0, 0xea, 0x28, 0xa1, 0x08, 0x1b, 0x5b, 0x47, 0x3e, 0x9d, 0xfd, - 0x6c, 0x1d, 0x4b, 0xd0, 0x02, 0xde, 0x27, 0x91, 0x43, 0x06, 0x9e, 0x07, 0x4a, 0x50, 0xbe, 0x0c, - 0xa8, 0x53, 0xd4, 0x31, 0xe5, 0xa3, 0x01, 0x2d, 0x55, 0xca, 0x64, 0xe8, 0x68, 0x8b, 0x2f, 0x88, - 0x2f, 0xf7, 0x67, 0x89, 0x41, 0xca, 0xe6, 0x2b, 0x81, 0xc2, 0x57, 0x9d, 0x61, 0xa4, 0x28, 0xc6, - 0x01, 0x25, 0xe1, 0x3f, 0xb9, 0xef, 0x19, 0x16, 0x16, 0x19, 0xa3, 0x6b, 0xc0, 0x0f, 0x8c, 0x1f, - 0xa7, 0x76, 0xeb, 0x7c, 0x67, 0xcc, 0x73, 0x44, 0x26, 0xab, 0xf3, 0xec, 0xfc, 0x1c, 0xbf, 0x8d, - 0xc1, 0x49, 0x01, 0x53, 0x1c, 0x86, 0xd6, 0xe5, 0xee, 0x8e, 0xd3, 0xe9, 0xf4, 0xf7, 0x0c, 0xe4, - 0xdf, 0xe6, 0x36, 0xbe, 0xeb, 0x06, 0x8b, 0x2b, 0x4a, 0x00, 0x44, 0x0a, 0x72, 0xa4, 0x2e, 0x78, - 0x77, 0x67, 0x01, 0xbf, 0xbd, 0xd1, 0x32, 0x2c, 0x6b, 0x26, 0xb8, 0xa0, 0x38, 0x5d, 0x51, 0xba, - 0x36, 0x77, 0x22, 0x8f, 0xe5, 0x16, 0x81, 0xf3, 0x85, 0x42, 0xfe, 0x9e, 0xf1, 0x00, 0xfb, 0x4d, - 0x6b, 0xf7, 0xf9, 0x6d, 0x56, 0x31, 0x49, 0xdb, 0x60, 0xd5, 0xb1, 0x50, 0x10, 0x3c, 0xc9, 0x04, - 0x48, 0xe7, 0xd9, 0x77, 0xf6, 0x19, 0x0f, 0xdc, 0x2e, 0xa7, 0x02, 0x41, 0x63, 0x39, 0x4c, 0xa5, - 0xc8, 0xe2, 0x36, 0x48, 0x1d, 0x14, 0x71, 0xc6, 0x04, 0xe1, 0x19, 0x7a, 0x47, 0xc3, 0x10, 0xbc, - 0x00, 0xb4, 0xdf, 0xd7, 0x14, 0x92, 0x9a, 0x48, 0x7a, 0xf8, 0x71, 0xfa, 0x1a, 0x34, 0x48, 0x75, - 0x5f, 0x49, 0xa0, 0x05, 0x7e, 0x7b, 0xf3, 0xeb, 0x54, 0x11, 0xcb, 0xbd, 0x1a, 0xa0, 0x5a, 0xdd, - 0xfe, 0x6e, 0x06, 0x5a, 0x41, 0xcf, 0x33, 0xf2, 0xdb, 0x04, 0xce, 0xf7, 0x8c, 0x09, 0x9d, 0xa1, - 0xd5, 0xf9, 0x6d, 0xf0, 0x9b, 0x70, 0xa1, 0xf1, 0xdc, 0x46, 0xa4, 0x01, 0x17, 0x1a, 0xd4, 0x1e, - 0x5f, 0x63, 0x56, 0xce, 0xd6, 0x56, 0x56, 0x88, 0x01, 0x62, 0x49, 0x85, 0x1b, 0xeb, 0x6a, 0x6c, - 0xcd, 0xf4, 0xce, 0x52, 0x9f, 0x31, 0x31, 0xb6, 0xd2, 0x0d, 0xac, 0x55, 0x92, 0x8a, 0xab, 0x6b, - 0xc5, 0xa2, 0x1f, 0xf5, 0xb2, 0x65, 0x2d, 0xf7, 0xf2, 0x8c, 0x1d, 0xa6, 0x5f, 0xd9, 0xd7, 0xbc, - 0x24, 0xae, 0xae, 0x75, 0xe3, 0x4a, 0x51, 0x5e, 0x3f, 0xaa, 0xf6, 0x78, 0xa9, 0x9f, 0xc7, 0xc0, - 0xce, 0x56, 0xf7, 0x53, 0x2c, 0xae, 0xe9, 0x27, 0x16, 0xfd, 0x70, 0x34, 0x71, 0x1a, 0xc7, 0x0c, - 0x28, 0x26, 0xaf, 0x1e, 0xd3, 0x6c, 0x77, 0x75, 0xad, 0xa4, 0xe8, 0x46, 0x7c, 0xbd, 0x6e, 0x2d, - 0xdf, 0x26, 0x20, 0xd9, 0x1b, 0x93, 0x34, 0x88, 0x15, 0xc4, 0x01, 0x22, 0x4d, 0xa3, 0x82, 0x67, - 0x6c, 0xc5, 0xc1, 0x30, 0x2b, 0x36, 0xff, 0x0d, 0x2b, 0xde, 0x88, 0xa1, 0xdf, 0x75, 0xd4, 0xd4, - 0x34, 0xf4, 0x9e, 0xda, 0x8f, 0xaf, 0x39, 0x38, 0x87, 0x3a, 0xc3, 0xe5, 0x19, 0xd4, 0x39, 0x87, - 0x66, 0x27, 0xbe, 0x88, 0x2b, 0xbb, 0x9c, 0xf3, 0xba, 0xbc, 0x11, 0x33, 0x71, 0x9a, 0x1c, 0x96, - 0x8f, 0x54, 0x1d, 0xe0, 0x08, 0xa4, 0x76, 0xca, 0x84, 0x71, 0x62, 0x7b, 0xad, 0x1f, 0x74, 0x61, - 0x20, 0x77, 0x2d, 0x37, 0x36, 0x36, 0x02, 0x08, 0x31, 0x03, 0x55, 0xc3, 0xec, 0xe1, 0x06, 0x71, - 0x81, 0xb0, 0x1c, 0xa1, 0x91, 0xeb, 0x6b, 0xb7, 0x18, 0xd1, 0x1d, 0x87, 0x8d, 0xce, 0x3c, 0x4a, - 0x1b, 0x21, 0x80, 0xbe, 0xbc, 0xc0, 0x31, 0xd8, 0x28, 0x0e, 0x52, 0xf4, 0xd0, 0x6f, 0xd0, 0x1a, - 0x82, 0x1e, 0x12, 0x11, 0x1b, 0x12, 0x15, 0x07, 0x52, 0x90, 0xb9, 0x18, 0x3a, 0xc9, 0x5b, 0xe7, - 0x69, 0x7c, 0xec, 0x5b, 0x4b, 0x56, 0xb5, 0x84, 0x33, 0x50, 0x6d, 0xf8, 0x06, 0x9c, 0xbe, 0xce, - 0x67, 0x0b, 0x05, 0x68, 0x0f, 0x2c, 0x7e, 0x75, 0x5e, 0xe2, 0xb9, 0x60, 0x60, 0x6a, 0x10, 0xa0, - 0xb5, 0x11, 0xbc, 0x49, 0xd9, 0x32, 0x1f, 0xd7, 0x1e, 0xb6, 0x16, 0xf8, 0x5c, 0xd4, 0xe5, 0xe2, - 0x54, 0x9a, 0x09, 0x67, 0xa6, 0x72, 0x08, 0xe6, 0xa5, 0x5f, 0x7d, 0x4c, 0xb3, 0x1f, 0x95, 0x1c, - 0xa1, 0x20, 0x38, 0x77, 0xe3, 0x5f, 0x40, 0xbb, 0x48, 0xe4, 0x6d, 0xb9, 0x8d, 0xa7, 0x5e, 0xda, - 0x9a, 0xac, 0xbf, 0x22, 0x00, 0x9a, 0x73, 0x09, 0x40, 0xa0, 0x7d, 0x5e, 0x24, 0x02, 0xb7, 0xdd, - 0x04, 0x53, 0xd4, 0x31, 0x94, 0x0f, 0xd0, 0x20, 0x93, 0xf7, 0xf9, 0xc0, 0x78, 0xb3, 0x48, 0xe8, - 0x6e, 0x26, 0x58, 0x37, 0xb0, 0xf9, 0x91, 0x95, 0x02, 0x33, 0x0e, 0x5c, 0xb2, 0xf8, 0x78, 0x9c, - 0xfc, 0x61, 0x3a, 0x5a, 0x02, 0x8c, 0xa4, 0xc0, 0x46, 0x08, 0x4f, 0x8d, 0x1c, 0xd1, 0x31, 0x0b, - 0x8c, 0x23, 0x8d, 0x7f, 0x2e, 0xba, 0xc3, 0x95, 0x2b, 0x54, 0xe0, 0x09, 0x47, 0x4b, 0x8c, 0x8c, - 0xd6, 0x06, 0x1b, 0x2e, 0x11, 0x17, 0x4a, 0xc5, 0x04, 0xb4, 0xe9, 0xb3, 0xb5, 0xe3, 0x06, 0xd8, - 0xa5, 0x0b, 0xea, 0x87, 0x27, 0x0a, 0x40, 0xca, 0xe7, 0xb2, 0xe4, 0xa8, 0x82, 0xc8, 0x49, 0x15, - 0x7a, 0xaa, 0x82, 0xcb, 0xd1, 0xe3, 0x15, 0x3d, 0xae, 0x90, 0xa5, 0xc7, 0x22, 0xb8, 0x62, 0x19, - 0xf3, 0xc0, 0x43, 0x99, 0x9d, 0xe4, 0xe0, 0x71, 0x89, 0x08, 0x0c, 0xd2, 0xf7, 0xb6, 0xb5, 0x3c, - 0xc3, 0xec, 0xcf, 0x23, 0x32, 0x40, 0xf0, 0xad, 0x65, 0x4c, 0x86, 0x10, 0xd9, 0xfa, 0x08, 0x91, - 0xa0, 0x75, 0xbb, 0x74, 0x2f, 0xae, 0xa0, 0x7b, 0xf1, 0xbf, 0x00, 0x95, 0x5f, 0x65, 0x59, 0xe6, - 0x44, 0x86, 0x9d, 0x95, 0xc8, 0xd9, 0xf0, 0xb0, 0x33, 0xfe, 0x2b, 0x64, 0x76, 0xcf, 0x7b, 0xfc, - 0x2e, 0x1e, 0x3b, 0xf7, 0x9f, 0xc2, 0x8e, 0x8b, 0x9c, 0x8d, 0x7f, 0x13, 0x3b, 0xe1, 0x7e, 0x6e, - 0xc4, 0x52, 0xc1, 0xeb, 0x5f, 0xe9, 0xe7, 0xe9, 0x47, 0xfd, 0x3c, 0xfd, 0x44, 0x3f, 0x2b, 0x12, - 0xeb, 0xa9, 0x54, 0x11, 0x57, 0x75, 0xb6, 0x08, 0x7a, 0xd1, 0xef, 0xf0, 0xc0, 0x25, 0x6e, 0xc1, - 0x1c, 0xbf, 0x43, 0xcb, 0x08, 0x0d, 0x55, 0xc0, 0xe1, 0x6a, 0x72, 0x73, 0xb8, 0xcb, 0x11, 0x05, - 0xd9, 0x5f, 0x4b, 0x48, 0x29, 0x52, 0x26, 0xb4, 0xac, 0x6c, 0xfc, 0x16, 0x82, 0x6e, 0x3e, 0xe2, - 0x37, 0x37, 0xfd, 0xf6, 0x47, 0x28, 0x22, 0x0b, 0xc4, 0x5a, 0x8e, 0xf3, 0x9b, 0x0b, 0x44, 0x74, - 0xe8, 0xfb, 0xb4, 0x97, 0x1b, 0xa1, 0xd5, 0xf3, 0x77, 0x7a, 0x79, 0xf8, 0x7f, 0x42, 0x2f, 0xdb, - 0xff, 0x6e, 0x2f, 0x77, 0xff, 0x77, 0xee, 0x65, 0x94, 0xde, 0x27, 0xeb, 0xa8, 0xfd, 0x01, 0x8d, - 0xd8, 0x1c, 0xb6, 0x52, 0x57, 0xb4, 0x30, 0xc5, 0x4f, 0x06, 0x6a, 0x1b, 0x45, 0x99, 0x8d, 0xcf, - 0x62, 0xe5, 0xe1, 0x83, 0x75, 0xe0, 0x01, 0x51, 0xb2, 0xf1, 0xd7, 0x70, 0xb2, 0x8c, 0x92, 0x8d, - 0xbf, 0x32, 0xf2, 0x78, 0xc8, 0x63, 0x15, 0x2a, 0x36, 0x28, 0x2e, 0x20, 0x07, 0x7a, 0xeb, 0x2d, - 0x49, 0x92, 0x1f, 0x76, 0xbf, 0x11, 0xcb, 0x01, 0x83, 0x62, 0x20, 0x85, 0x4c, 0x44, 0xbe, 0x34, - 0xe9, 0x50, 0x6c, 0xbf, 0x37, 0xfe, 0x06, 0xc1, 0x6f, 0x89, 0x08, 0x88, 0x6f, 0x7a, 0x04, 0x02, - 0xa4, 0xf9, 0x72, 0xfc, 0x37, 0xb3, 0x99, 0xe0, 0x51, 0xaa, 0x80, 0xff, 0xf8, 0xe4, 0x37, 0x8e, - 0x5c, 0xb3, 0x53, 0xe7, 0x6f, 0x94, 0x6e, 0xdc, 0x8a, 0xba, 0xe5, 0x99, 0x1c, 0xc3, 0xe2, 0xd8, - 0x3a, 0xc8, 0x32, 0x83, 0xbc, 0xc1, 0x40, 0x5f, 0xb2, 0x1e, 0xae, 0x02, 0xee, 0x16, 0x59, 0x59, - 0xc1, 0x46, 0xb4, 0x86, 0x4e, 0x39, 0xd4, 0xf6, 0x27, 0x45, 0xd3, 0x8c, 0xc9, 0xda, 0x0a, 0x48, - 0x89, 0xed, 0xd0, 0x4a, 0xbf, 0xae, 0x0b, 0xa0, 0x3e, 0x05, 0x2b, 0x78, 0x90, 0xad, 0x21, 0x47, - 0xa8, 0x66, 0x0d, 0x8e, 0xdc, 0x62, 0x9f, 0xef, 0x06, 0xfe, 0x17, 0xac, 0x85, 0x56, 0xb0, 0x06, - 0x7e, 0x2f, 0xde, 0x7a, 0x02, 0xd0, 0x39, 0x3c, 0x1c, 0x10, 0xed, 0x87, 0x28, 0x46, 0x06, 0x79, - 0x57, 0x03, 0xa0, 0xeb, 0xba, 0x10, 0x18, 0x06, 0x2a, 0x31, 0x7c, 0xd8, 0x07, 0x90, 0x41, 0x83, - 0x7d, 0xb8, 0x52, 0x41, 0x5f, 0x58, 0xd3, 0x05, 0x71, 0x75, 0x17, 0xe2, 0x5a, 0x1f, 0x82, 0xbd, - 0x0b, 0x13, 0x64, 0x0d, 0x6c, 0x11, 0x61, 0x6f, 0x7c, 0x8e, 0x48, 0x11, 0x72, 0xa7, 0x1c, 0x80, - 0xdd, 0x9c, 0xc9, 0xfa, 0x7a, 0xc4, 0x90, 0x02, 0x9f, 0x1d, 0x5b, 0xb1, 0x8c, 0x98, 0x09, 0xc0, - 0x3f, 0xb4, 0x14, 0x45, 0x5f, 0xd7, 0x78, 0x5a, 0xe0, 0x93, 0x14, 0x6a, 0xe9, 0xdd, 0xe0, 0xd4, - 0x95, 0xf5, 0xae, 0x31, 0xfc, 0x94, 0x3c, 0xec, 0x18, 0x1c, 0x51, 0xa1, 0x51, 0x16, 0x16, 0x0c, - 0x32, 0x2f, 0x89, 0x86, 0x21, 0xf4, 0xb1, 0x7d, 0x44, 0xa3, 0x10, 0xcc, 0x91, 0x65, 0x6a, 0xca, - 0x8a, 0x83, 0x8e, 0x5b, 0x12, 0x9a, 0x69, 0x01, 0xcf, 0x37, 0x2b, 0x18, 0x6f, 0xc7, 0xd6, 0xf8, - 0xb0, 0xf9, 0x04, 0x52, 0x44, 0x3e, 0x60, 0xb3, 0xe3, 0xa6, 0x53, 0x1b, 0x5e, 0x83, 0x0a, 0x39, - 0xdd, 0xcd, 0x6d, 0x69, 0x86, 0x43, 0x96, 0x08, 0xbc, 0xb1, 0x68, 0xcb, 0x22, 0x3c, 0x92, 0x3c, - 0xf6, 0xfd, 0xc7, 0xb6, 0xff, 0x38, 0xc1, 0xc7, 0x6d, 0xc9, 0x37, 0x23, 0x6c, 0x44, 0x6a, 0x95, - 0x62, 0x6b, 0x8d, 0xab, 0x54, 0x0a, 0x57, 0xba, 0xf1, 0x61, 0xad, 0xd9, 0x78, 0x4b, 0x11, 0x54, - 0x9a, 0xf5, 0x17, 0x87, 0x8f, 0x6a, 0xcd, 0x7e, 0xa6, 0xab, 0x1b, 0x81, 0x5a, 0x73, 0xcb, 0x26, - 0x93, 0xa5, 0xf5, 0x8d, 0x77, 0x1b, 0x72, 0x46, 0x0d, 0x2e, 0xfe, 0xf2, 0x46, 0x35, 0x68, 0x65, - 0x3a, 0x89, 0x33, 0x94, 0xb0, 0x48, 0xa6, 0x41, 0x73, 0x4f, 0x5f, 0xa3, 0xc2, 0x4d, 0xc8, 0x90, - 0x15, 0xd2, 0x0a, 0x01, 0x58, 0xc7, 0x5d, 0xbe, 0x71, 0x53, 0x2b, 0x4e, 0x2c, 0x78, 0x55, 0x66, - 0x5d, 0x63, 0xa2, 0x93, 0xcc, 0xfb, 0xb8, 0xd9, 0x85, 0xb2, 0x01, 0x6e, 0x59, 0xb9, 0x77, 0x6c, - 0xd5, 0x79, 0x03, 0x66, 0x39, 0x68, 0x85, 0xf2, 0x54, 0x53, 0xf4, 0xbe, 0x33, 0xa8, 0xf3, 0xe5, - 0x08, 0x05, 0x61, 0x3d, 0x7a, 0x2f, 0x34, 0x9a, 0xf4, 0xd0, 0x59, 0xa0, 0xb9, 0x44, 0x91, 0x57, - 0xa6, 0xcc, 0x12, 0x17, 0x32, 0x88, 0x71, 0xee, 0x99, 0x3d, 0xda, 0x95, 0x5c, 0x85, 0xd9, 0x1e, - 0x3f, 0x42, 0x26, 0x45, 0x25, 0xba, 0x15, 0x20, 0x5f, 0xf9, 0x14, 0xc6, 0x58, 0x0b, 0x08, 0xc6, - 0xda, 0x39, 0x8a, 0x31, 0x22, 0xfa, 0x70, 0x00, 0x46, 0x71, 0x1c, 0x5f, 0xda, 0xd8, 0x70, 0x81, - 0x4f, 0xc2, 0xba, 0x46, 0x68, 0xe5, 0xa7, 0xc1, 0xe1, 0xb8, 0x1e, 0x4c, 0x77, 0x0f, 0xf3, 0x41, - 0x74, 0x6f, 0x04, 0x76, 0x94, 0xeb, 0x7c, 0x8b, 0xc4, 0x95, 0xf5, 0x65, 0xb1, 0x6f, 0x34, 0xd0, - 0x2c, 0x11, 0x43, 0x04, 0x9e, 0xb9, 0x47, 0x90, 0x85, 0xd9, 0xd0, 0xc9, 0x1e, 0xf7, 0xca, 0x1c, - 0xcb, 0x04, 0xe2, 0xc7, 0x9a, 0x0d, 0xce, 0x5b, 0x4c, 0xd5, 0x99, 0x65, 0x8b, 0xe2, 0xb6, 0xdc, - 0x73, 0xc9, 0x24, 0x8a, 0x2e, 0x2f, 0xe6, 0xad, 0x6b, 0x9f, 0x94, 0x68, 0xce, 0x8d, 0x28, 0x07, - 0x71, 0x9b, 0xe1, 0x0d, 0x06, 0xbe, 0x84, 0x11, 0x83, 0xfb, 0xc6, 0xe4, 0xf2, 0x44, 0x1c, 0x27, - 0x6f, 0xb0, 0xe9, 0xae, 0x2d, 0xf1, 0x6a, 0x0b, 0x8c, 0x0a, 0xde, 0x0f, 0x77, 0x45, 0x91, 0x4f, - 0xec, 0xb4, 0x4b, 0x80, 0x02, 0x06, 0x29, 0xdb, 0x94, 0x75, 0x0f, 0x9c, 0xeb, 0xff, 0x01, 0x1f, - 0xd8, 0xee, 0x49, 0x3a, 0x9d, 0x06, 0x5a, 0xc1, 0x4c, 0x01, 0xf9, 0x8b, 0xb4, 0x61, 0x95, 0x6c, - 0x4e, 0x95, 0x6f, 0xbf, 0x6f, 0x2c, 0x94, 0xe4, 0x07, 0xf6, 0xb0, 0xde, 0x74, 0x85, 0xe8, 0x4a, - 0xa7, 0x1d, 0x86, 0xd6, 0x66, 0xb3, 0x9b, 0xc2, 0xe3, 0x86, 0xcc, 0xa4, 0xba, 0x92, 0x7a, 0x18, - 0xd8, 0x03, 0x35, 0x48, 0x49, 0x1b, 0x41, 0x52, 0xfa, 0x0d, 0x4a, 0xa2, 0x7e, 0x3a, 0x6b, 0x08, - 0xc9, 0xcd, 0x20, 0xf4, 0x8f, 0xbb, 0x09, 0x9e, 0xfa, 0x5e, 0xd8, 0x7c, 0x32, 0x4d, 0x1a, 0x86, - 0x37, 0xf7, 0xe1, 0x35, 0x7e, 0xf0, 0x41, 0x06, 0x16, 0x41, 0xa1, 0xb4, 0xb5, 0x91, 0x55, 0xff, - 0xb6, 0x32, 0xbb, 0xa5, 0x0c, 0x8d, 0xb1, 0xe2, 0x95, 0xf8, 0xaf, 0x25, 0xcf, 0xc0, 0x5a, 0xbe, - 0xb2, 0x41, 0xd4, 0x16, 0x9e, 0xe0, 0x31, 0x60, 0x19, 0x76, 0x81, 0xad, 0xbc, 0x61, 0x0f, 0x3a, - 0x77, 0xe7, 0xc1, 0xa5, 0xf4, 0x28, 0xa1, 0x33, 0x34, 0xfd, 0x8d, 0x74, 0x7e, 0xf0, 0xf8, 0xbf, - 0x9c, 0xc2, 0xbd, 0x95, 0x85, 0x45, 0x83, 0x0c, 0xd1, 0x31, 0xc3, 0x9c, 0xdb, 0x16, 0xfa, 0xee, - 0x77, 0xc8, 0xcf, 0x03, 0x13, 0xd4, 0x5f, 0x37, 0xa9, 0xd3, 0x07, 0xf1, 0x35, 0x25, 0xc3, 0x26, - 0x1d, 0xe4, 0x1a, 0xe5, 0x5a, 0x98, 0xff, 0x91, 0x3c, 0x6d, 0x63, 0xca, 0xd6, 0xca, 0x9e, 0x06, - 0xaa, 0xa7, 0x97, 0x35, 0xa4, 0x7c, 0xd2, 0x0a, 0x0e, 0xa6, 0x2e, 0x1d, 0x30, 0x1c, 0x04, 0xeb, - 0x42, 0xa7, 0x0e, 0x5c, 0x29, 0xdd, 0x7e, 0xbb, 0x1d, 0x66, 0x68, 0xf7, 0x9b, 0x29, 0xed, 0xf1, - 0x5c, 0x7c, 0x23, 0xcb, 0x95, 0x7c, 0x76, 0x65, 0x13, 0x37, 0x82, 0x6d, 0x24, 0x39, 0x83, 0x0a, - 0xe3, 0x6f, 0x37, 0x70, 0x23, 0xda, 0x42, 0xbf, 0x81, 0xd9, 0x95, 0x0d, 0xac, 0x14, 0x73, 0x3e, - 0x0e, 0x37, 0xd6, 0x21, 0x91, 0xe4, 0xfc, 0x44, 0x03, 0x37, 0x3e, 0x8f, 0x42, 0xbf, 0x81, 0xf7, - 0x86, 0x16, 0xdf, 0x42, 0x98, 0x2a, 0x95, 0x72, 0x2e, 0xff, 0xa9, 0x61, 0x26, 0x19, 0xd7, 0xb6, - 0x70, 0xe3, 0x77, 0x07, 0xd9, 0x6f, 0xe1, 0x81, 0xa5, 0xbc, 0xad, 0xa4, 0x45, 0xa8, 0xb9, 0xf0, - 0xd9, 0x26, 0x16, 0xfe, 0x36, 0x3a, 0x8c, 0x9f, 0x6a, 0xbe, 0x50, 0x4d, 0xdf, 0x3f, 0xdc, 0xff, - 0x8a, 0x67, 0x52, 0x21, 0xf9, 0x05, 0x3a, 0xaf, 0xbc, 0x7b, 0xfb, 0x62, 0xb9, 0x6c, 0x21, 0xb0, - 0x2f, 0xf6, 0x69, 0xf3, 0x50, 0xcb, 0x54, 0xd0, 0x98, 0x10, 0x63, 0x38, 0x0b, 0xd8, 0x48, 0x48, - 0xa6, 0xcf, 0x6f, 0x96, 0xfd, 0xad, 0x36, 0x13, 0xb6, 0x57, 0xb6, 0xf1, 0xd1, 0x66, 0x19, 0x19, - 0x20, 0xbf, 0x5f, 0x64, 0xcd, 0xf5, 0xb1, 0x1e, 0x88, 0x79, 0x09, 0xe4, 0xcb, 0x56, 0x62, 0x1b, - 0xbb, 0x15, 0xe5, 0xa0, 0xde, 0xae, 0x0b, 0x01, 0x23, 0xc5, 0x8e, 0xdb, 0xc6, 0xea, 0x81, 0xfb, - 0xc4, 0xb8, 0x91, 0xa6, 0xd9, 0xee, 0xb8, 0xe5, 0xc5, 0x0a, 0xf5, 0x5d, 0xf8, 0x3d, 0xbb, 0x16, - 0x5e, 0x67, 0x8b, 0xfe, 0xe6, 0xb3, 0x8f, 0xc6, 0xce, 0xcb, 0xf8, 0x7f, 0xc2, 0xf8, 0xc5, 0x8c, - 0x56, 0x74, 0x4c, 0x25, 0x7f, 0xfc, 0x54, 0xb7, 0x6b, 0xeb, 0xc7, 0x30, 0x1b, 0x19, 0x43, 0x8e, - 0x08, 0x02, 0x1f, 0x0c, 0x64, 0xc8, 0xf3, 0xe1, 0x37, 0xb7, 0xde, 0x9a, 0x52, 0x9c, 0x72, 0x15, - 0x34, 0xb0, 0x8e, 0x6c, 0xc7, 0x18, 0x12, 0x4d, 0x76, 0xe3, 0xf7, 0x86, 0x24, 0x6e, 0x44, 0xc4, - 0xdf, 0x33, 0xbe, 0x7e, 0x72, 0xf3, 0x19, 0x31, 0xba, 0xf1, 0x99, 0x01, 0xc9, 0xf2, 0xdb, 0xb4, - 0x3f, 0x9c, 0xb4, 0x7e, 0x1c, 0x72, 0x51, 0xab, 0x75, 0x60, 0x20, 0xd6, 0x8f, 0x83, 0xeb, 0x1f, - 0xf1, 0x9b, 0xbc, 0xad, 0x99, 0xfd, 0x68, 0x72, 0xb0, 0x81, 0xc8, 0xfe, 0x3d, 0x53, 0x43, 0xfc, - 0xff, 0x75, 0x62, 0xe4, 0x60, 0x62, 0xb0, 0x81, 0xc8, 0xae, 0x1f, 0x88, 0xfc, 0x5f, 0x9e, 0x10, - 0xa2, 0x52, 0xfe, 0x4b, 0x13, 0x22, 0xf7, 0xb9, 0x09, 0x91, 0xfb, 0xd4, 0x84, 0xc8, 0x49, 0xff, - 0x5b, 0xcf, 0x87, 0xbc, 0x37, 0x1f, 0x72, 0xab, 0x86, 0xa1, 0x37, 0x35, 0x4c, 0xc7, 0x9f, 0x0d, - 0xec, 0x88, 0x16, 0x51, 0x98, 0x42, 0x42, 0x0e, 0x7c, 0x10, 0x23, 0x12, 0x18, 0x39, 0xc6, 0xc5, - 0x06, 0x2c, 0xde, 0x79, 0xca, 0xb5, 0x65, 0xac, 0x27, 0x1c, 0x00, 0xcd, 0x96, 0xc8, 0xed, 0x26, - 0x01, 0xec, 0x4f, 0xde, 0xc0, 0xf0, 0x91, 0x3a, 0x2f, 0x3d, 0xb7, 0x17, 0x5f, 0x7c, 0x0a, 0x8d, - 0xde, 0x25, 0x69, 0x7f, 0x42, 0x12, 0xc8, 0x1e, 0x0a, 0xf3, 0xc1, 0xfe, 0xcb, 0xb2, 0x27, 0xb4, - 0x4c, 0x5a, 0xdf, 0xe9, 0x18, 0x0f, 0xaa, 0x5c, 0xbe, 0xfd, 0x1b, 0x9d, 0x96, 0xdc, 0x4e, 0x67, - 0x37, 0x22, 0xbd, 0xf6, 0x3b, 0x9d, 0x5d, 0xee, 0xf4, 0x46, 0x5c, 0xaf, 0xb3, 0x2b, 0x7a, 0xfd, - 0x89, 0x4e, 0x6f, 0x84, 0x7b, 0x9d, 0xfd, 0x9d, 0xa1, 0x26, 0xb3, 0x31, 0xdf, 0x09, 0x74, 0x7a, - 0xe3, 0xa3, 0x5e, 0x67, 0xdd, 0x5e, 0xe7, 0x56, 0x76, 0x3a, 0xc7, 0x2f, 0xab, 0x1b, 0x71, 0x9d, - 0xce, 0x7d, 0xba, 0xd3, 0x1b, 0x2b, 0x25, 0xe4, 0x78, 0x93, 0x74, 0x4b, 0xe9, 0x0f, 0x31, 0xa6, - 0x6a, 0xbc, 0xd5, 0xc5, 0x77, 0xfb, 0x60, 0xa7, 0xc4, 0xa2, 0xda, 0x70, 0x84, 0xdd, 0xd1, 0x63, - 0x68, 0x7c, 0xd0, 0xca, 0xd2, 0x36, 0x88, 0x6e, 0x1d, 0x75, 0x23, 0x71, 0x63, 0x54, 0x05, 0xac, - 0x99, 0x11, 0x0b, 0x26, 0x33, 0x31, 0x5a, 0x36, 0xbc, 0x04, 0x04, 0x3a, 0x0b, 0x5a, 0x4c, 0x84, - 0xb9, 0x8d, 0x1b, 0x05, 0x10, 0xc4, 0xd9, 0xac, 0x03, 0x31, 0x16, 0xcb, 0xed, 0x5b, 0xff, 0x8c, - 0x60, 0x10, 0xf7, 0x4e, 0x8c, 0x31, 0x96, 0x0d, 0x03, 0x3d, 0x6a, 0xe6, 0xf3, 0x3b, 0xc2, 0x00, - 0x8b, 0x85, 0x74, 0xc1, 0x75, 0x2d, 0x11, 0xd3, 0x92, 0xcf, 0xf8, 0xd2, 0x25, 0x20, 0x0c, 0xbd, - 0x6d, 0x9b, 0x35, 0xe6, 0x73, 0x67, 0xd2, 0x69, 0x4c, 0x43, 0xee, 0x79, 0x95, 0x30, 0x92, 0x22, - 0x39, 0x22, 0x18, 0xbb, 0xb2, 0xb0, 0x13, 0xeb, 0x6c, 0x5e, 0x04, 0xa0, 0xf9, 0xa6, 0xf1, 0x6b, - 0xec, 0xda, 0x5d, 0x7e, 0x9b, 0x01, 0x5a, 0x6f, 0xe8, 0xa2, 0xb0, 0xec, 0xb0, 0xa5, 0xeb, 0x43, - 0x43, 0xd7, 0xc6, 0x0a, 0x9b, 0x29, 0xa1, 0x87, 0xe4, 0x37, 0x6e, 0x85, 0xc1, 0x94, 0x7d, 0x8e, - 0x59, 0xe6, 0x82, 0x06, 0xa9, 0xcf, 0xd9, 0xa3, 0x36, 0x3e, 0x69, 0x2f, 0x5d, 0x32, 0x97, 0x92, - 0x46, 0x44, 0x8c, 0x48, 0x4c, 0xff, 0x0d, 0x1b, 0x41, 0x29, 0xfa, 0x90, 0xae, 0x7c, 0xfa, 0x5e, - 0xb5, 0x9c, 0x98, 0x94, 0xc8, 0x37, 0x56, 0x51, 0xf9, 0x6a, 0x3f, 0x40, 0x72, 0x39, 0x92, 0xc1, - 0xf8, 0x04, 0x2b, 0xe3, 0xba, 0x96, 0xfa, 0x59, 0x34, 0x55, 0x7f, 0x0d, 0x9a, 0xef, 0x0d, 0x53, - 0xd1, 0x6f, 0xe5, 0x76, 0x62, 0xb5, 0x5b, 0xa9, 0xbb, 0x04, 0xc5, 0xba, 0x95, 0x52, 0x37, 0xc3, - 0x78, 0x87, 0xd6, 0xa5, 0x4a, 0x37, 0x96, 0x6a, 0x95, 0x3e, 0xe1, 0xcc, 0xba, 0x5c, 0x29, 0x33, - 0xe6, 0x6e, 0x7c, 0xb2, 0xda, 0xa5, 0x5a, 0xb3, 0x2b, 0x9d, 0x95, 0xbd, 0xa5, 0x27, 0xd6, 0x29, - 0xdb, 0xe3, 0x06, 0x7f, 0xb1, 0xb7, 0xb9, 0xe4, 0x47, 0xcc, 0x3f, 0xd6, 0xe5, 0x9d, 0x92, 0xcf, - 0xc6, 0x7a, 0xd7, 0x5d, 0x16, 0x29, 0x3e, 0xbc, 0x51, 0x4a, 0x9d, 0xfa, 0x65, 0xb4, 0x75, 0x86, - 0x8d, 0xb3, 0xd6, 0x3e, 0xde, 0x09, 0x70, 0x8b, 0x9f, 0xf0, 0x44, 0x5e, 0x72, 0xb9, 0x98, 0x17, - 0x62, 0x65, 0x9d, 0xe7, 0x75, 0xa4, 0x0c, 0x9e, 0x6b, 0xf1, 0x26, 0x04, 0x39, 0xc4, 0x16, 0x43, - 0x83, 0xfe, 0x26, 0x12, 0x47, 0x62, 0xf3, 0x7f, 0xd6, 0x9d, 0x9c, 0x23, 0xa1, 0x13, 0x28, 0xbe, - 0xa4, 0xb2, 0xcc, 0xce, 0x08, 0xf8, 0xf8, 0xf0, 0x1a, 0x31, 0xec, 0xd3, 0x8d, 0xb6, 0x61, 0xdf, - 0x2d, 0x3f, 0x51, 0x79, 0x4e, 0xd6, 0x1c, 0xe6, 0x60, 0x8b, 0xd6, 0xa2, 0x2a, 0x09, 0x77, 0x9e, - 0x31, 0xf5, 0x7e, 0xad, 0x2d, 0xdb, 0x4a, 0x31, 0x2f, 0xa8, 0xf7, 0xbb, 0x97, 0x37, 0x13, 0xf1, - 0xf4, 0xb0, 0x6f, 0xe0, 0xdd, 0xc3, 0x17, 0xad, 0xbb, 0xc1, 0xfe, 0x5d, 0x1f, 0x9e, 0x76, 0xc9, - 0x5d, 0xc4, 0x07, 0xcd, 0xc6, 0x13, 0xfc, 0x34, 0x0b, 0x07, 0xa3, 0x5e, 0x01, 0x13, 0x1a, 0x8f, - 0x17, 0xad, 0x1b, 0xf1, 0xb8, 0x61, 0xd9, 0xf9, 0x4e, 0xf1, 0x1a, 0x13, 0x6e, 0xf4, 0xeb, 0x3b, - 0x69, 0x17, 0xf2, 0x4c, 0x5f, 0x26, 0xe3, 0xf2, 0xd3, 0xf5, 0x1d, 0x26, 0x9e, 0x74, 0xf6, 0x07, - 0xcf, 0x9d, 0x49, 0xa3, 0xb1, 0x67, 0x9f, 0xc3, 0x6b, 0x69, 0xaf, 0xd1, 0xe9, 0x8e, 0xdf, 0x0e, - 0xb1, 0xc0, 0x6e, 0xbb, 0x75, 0x77, 0xb3, 0x7b, 0xdf, 0x1c, 0xdc, 0x6a, 0x4f, 0x95, 0xf6, 0x9e, - 0xd1, 0x98, 0xec, 0x9d, 0x5f, 0x3c, 0x94, 0xf4, 0x8a, 0x3e, 0x69, 0xaa, 0xe6, 0xcc, 0xb9, 0xbe, - 0xc8, 0x3f, 0x97, 0x9d, 0xb6, 0x75, 0x7b, 0x34, 0xdc, 0x1b, 0x1e, 0xe4, 0x8d, 0xab, 0xf7, 0x99, - 0xd6, 0x9d, 0xdc, 0xbc, 0x99, 0x52, 0xab, 0xd5, 0xd5, 0xef, 0x33, 0x17, 0xa3, 0xe7, 0xd1, 0xfb, - 0x9b, 0x62, 0x35, 0x76, 0x67, 0xd3, 0xc7, 0x77, 0x7d, 0x77, 0x92, 0x53, 0xfb, 0xaf, 0xca, 0xc1, - 0x7e, 0xef, 0x71, 0x76, 0x37, 0x1a, 0x9c, 0x66, 0x66, 0x07, 0xe7, 0x62, 0x73, 0x7a, 0xd2, 0x9b, - 0xbd, 0x3d, 0x3e, 0xef, 0x5f, 0x76, 0x8a, 0x99, 0x96, 0x55, 0xc9, 0xb4, 0x7b, 0xa5, 0xd1, 0x71, - 0xb3, 0x70, 0x31, 0xe9, 0x96, 0x0c, 0xeb, 0x7c, 0xdc, 0xb8, 0x22, 0x7d, 0xd9, 0xd7, 0x0e, 0x6e, - 0x5f, 0x5b, 0xa3, 0xeb, 0x61, 0xb3, 0xc9, 0xe3, 0xae, 0x49, 0xd4, 0x5d, 0x71, 0x1c, 0xe6, 0x5c, - 0x21, 0x2f, 0x85, 0xd8, 0x35, 0x96, 0x1d, 0x7b, 0x0a, 0xd2, 0x8e, 0xa5, 0xbc, 0x8d, 0x14, 0xdb, - 0x39, 0xb1, 0x41, 0xe4, 0x80, 0xd1, 0xbd, 0x51, 0x7a, 0x40, 0xd7, 0x83, 0x95, 0xf3, 0x68, 0x05, - 0x94, 0x08, 0x05, 0x1e, 0xeb, 0xc0, 0x20, 0xf5, 0x8e, 0xc2, 0xe1, 0xe6, 0xc0, 0x6f, 0xc2, 0x72, - 0x3d, 0xfc, 0x71, 0x76, 0x26, 0xf8, 0x0c, 0xd5, 0x50, 0x78, 0x81, 0xff, 0x4f, 0x5b, 0xd1, 0xd0, - 0xfb, 0x61, 0xfb, 0x8e, 0xa4, 0x90, 0xe3, 0x36, 0x31, 0xde, 0xfa, 0x71, 0xb0, 0x89, 0x4c, 0x81, - 0xb3, 0x35, 0x2c, 0x56, 0x74, 0xf4, 0x1e, 0x91, 0x27, 0x68, 0xbf, 0xdb, 0x86, 0xe1, 0x44, 0x80, - 0x7a, 0x5b, 0x71, 0x04, 0xa9, 0x41, 0xe9, 0x6b, 0xc0, 0x6f, 0x9f, 0x83, 0x2a, 0xc1, 0x4d, 0x54, - 0x67, 0x10, 0xb0, 0x8b, 0x91, 0x2b, 0x02, 0x70, 0x2e, 0xc0, 0xe4, 0x2d, 0xe7, 0x6b, 0x30, 0x27, - 0x0e, 0xf6, 0xc5, 0xfd, 0x1a, 0x5b, 0x54, 0x36, 0xb8, 0xf6, 0x8c, 0x6b, 0xa8, 0x56, 0xc7, 0x30, - 0x8c, 0x57, 0x55, 0x21, 0x27, 0x9d, 0x9c, 0x81, 0xc2, 0x7d, 0x97, 0x39, 0x7a, 0x8a, 0x61, 0xe0, - 0x38, 0xa6, 0x5d, 0xcd, 0x64, 0x26, 0x20, 0x4c, 0xa4, 0x41, 0x97, 0xea, 0x18, 0x23, 0xcb, 0x56, - 0xd2, 0xe8, 0xbb, 0x60, 0x66, 0x40, 0x56, 0x96, 0xad, 0xbe, 0x02, 0x4a, 0xdb, 0x7f, 0x32, 0x2f, - 0xf4, 0x0d, 0x72, 0xe2, 0xa8, 0x63, 0x0c, 0x87, 0x23, 0x9d, 0x58, 0x68, 0xe4, 0xed, 0x55, 0xcb, - 0x97, 0x4e, 0x0f, 0x6b, 0xfc, 0xbb, 0x3c, 0x60, 0xd5, 0xe1, 0x8e, 0xcf, 0x32, 0x01, 0xbc, 0xa4, - 0x83, 0xdf, 0x26, 0xcd, 0x56, 0x19, 0x89, 0xd8, 0x4b, 0x54, 0xad, 0x2f, 0x53, 0x35, 0x13, 0x22, - 0x99, 0xe1, 0x6f, 0xd5, 0x0d, 0x5c, 0xfc, 0x67, 0xa9, 0x15, 0x57, 0x7f, 0xaf, 0x2b, 0xcb, 0x14, - 0x1f, 0x2f, 0x35, 0x0f, 0xfd, 0x1b, 0x31, 0x7d, 0x39, 0xc0, 0xc3, 0xa4, 0xd7, 0xfa, 0x60, 0x2e, - 0xd6, 0xde, 0xe5, 0x53, 0xec, 0xf8, 0x1c, 0xec, 0xe5, 0xc6, 0x1a, 0xd7, 0x74, 0x72, 0x89, 0xc9, - 0xf2, 0xd0, 0x45, 0x06, 0x00, 0xef, 0xbd, 0xf5, 0x0d, 0x6a, 0x14, 0xff, 0x9e, 0xc3, 0x12, 0x91, - 0x4f, 0x81, 0x59, 0xec, 0xf8, 0xd5, 0xe0, 0xbf, 0x0d, 0xee, 0xd6, 0xe0, 0x46, 0xb6, 0xc2, 0xb5, - 0x47, 0xaa, 0x86, 0x81, 0xff, 0x38, 0x85, 0xae, 0xe0, 0x02, 0x49, 0x45, 0x79, 0x09, 0xaa, 0xb6, - 0x40, 0x92, 0x65, 0x67, 0x0d, 0x39, 0x58, 0x77, 0x60, 0x66, 0xd2, 0xb2, 0x4f, 0xc6, 0x88, 0xeb, - 0x40, 0x1e, 0x4b, 0x71, 0x46, 0x96, 0xce, 0xa1, 0x27, 0x8d, 0x02, 0xdc, 0x5c, 0x1d, 0x2a, 0x64, - 0xfb, 0x15, 0x69, 0x1d, 0x8f, 0x17, 0xdb, 0x78, 0xca, 0x0e, 0xa9, 0x1c, 0xef, 0x61, 0x81, 0xc1, - 0x20, 0xcf, 0x28, 0x9d, 0xe2, 0x59, 0x77, 0x20, 0x5e, 0x4b, 0x57, 0xac, 0x34, 0x73, 0xc7, 0x5e, - 0x1a, 0xbc, 0x90, 0x9f, 0x88, 0x73, 0x66, 0x58, 0x44, 0x32, 0xb9, 0x74, 0x5b, 0x65, 0x10, 0x77, - 0xc5, 0x35, 0x2c, 0x60, 0xb9, 0x7c, 0x36, 0x58, 0x7e, 0xa4, 0x63, 0x00, 0x0d, 0x8b, 0x4c, 0x7d, - 0x0f, 0x4e, 0x60, 0xb2, 0x6f, 0xf8, 0xb3, 0x7d, 0xe3, 0xc0, 0xb0, 0xa0, 0xfb, 0xb6, 0xc3, 0x99, - 0x8a, 0x85, 0x4e, 0x40, 0x48, 0xbb, 0x02, 0xa7, 0x82, 0x76, 0x81, 0x17, 0xfb, 0xe0, 0x24, 0x54, - 0xc8, 0x91, 0x69, 0xc0, 0x03, 0xc1, 0x87, 0xd1, 0xeb, 0xb1, 0x6e, 0x03, 0x5a, 0x86, 0x88, 0x04, - 0x1b, 0x66, 0x33, 0xb0, 0xc4, 0xc9, 0x40, 0xd1, 0xc9, 0xb1, 0x5c, 0xc0, 0x05, 0xa0, 0x39, 0xbd, - 0x11, 0x9d, 0xb3, 0xaa, 0x3f, 0xec, 0x88, 0x33, 0x3e, 0x66, 0xa0, 0x97, 0xba, 0x25, 0x26, 0x63, - 0x07, 0x9f, 0x9d, 0x37, 0xdc, 0x18, 0x03, 0xea, 0x35, 0xa3, 0xa3, 0x9a, 0xc2, 0xe4, 0x41, 0x60, - 0x9e, 0x17, 0xf6, 0x1e, 0x2c, 0xb8, 0xc2, 0xc4, 0x16, 0x3a, 0x78, 0xdc, 0x44, 0x20, 0xf6, 0x1d, - 0x5b, 0xc0, 0xf1, 0x33, 0x46, 0x8e, 0x00, 0xb9, 0xeb, 0x5f, 0x24, 0x41, 0xb5, 0x2f, 0x75, 0xfc, - 0xd5, 0xb5, 0x06, 0x7d, 0x3d, 0x1b, 0xd3, 0x5f, 0x94, 0x06, 0xe8, 0x13, 0x99, 0x48, 0xf8, 0x68, - 0xcf, 0xf4, 0x4e, 0x0b, 0x90, 0xe0, 0x3e, 0xdf, 0xf6, 0xb5, 0x1b, 0xa5, 0x03, 0xf9, 0x45, 0x61, - 0x20, 0xdb, 0xc4, 0x99, 0x0f, 0x3f, 0xc1, 0xf3, 0xcd, 0xe1, 0x2e, 0x7b, 0x6a, 0x36, 0x6f, 0x29, - 0xf8, 0xbd, 0x91, 0x55, 0x2f, 0x8a, 0xf0, 0x70, 0x2b, 0x5b, 0x75, 0xfc, 0xc5, 0x53, 0x51, 0x04, - 0x12, 0x0b, 0x6c, 0x71, 0x30, 0x85, 0x64, 0xf7, 0xe5, 0x4a, 0xd6, 0xe0, 0xad, 0x03, 0xaf, 0xf8, - 0x33, 0xb2, 0x30, 0x1c, 0x16, 0x95, 0xc7, 0xea, 0x5b, 0x92, 0x00, 0xe8, 0x72, 0xe8, 0x22, 0x41, - 0x8a, 0xf4, 0x9b, 0x06, 0x0c, 0x34, 0x3c, 0x02, 0x57, 0xf5, 0x1e, 0x8d, 0x09, 0x8c, 0xe5, 0x9d, - 0x0e, 0x03, 0xd0, 0x85, 0x57, 0x50, 0xf9, 0x40, 0x8a, 0xc4, 0x74, 0xfa, 0x63, 0x76, 0xdc, 0xea, - 0xe9, 0x13, 0xe9, 0x3c, 0x82, 0x9d, 0xc0, 0x47, 0xc7, 0xaa, 0x97, 0x84, 0x6e, 0xbd, 0x0b, 0x0a, - 0x10, 0xca, 0x9d, 0x42, 0x6f, 0x8a, 0xa2, 0x4b, 0xfd, 0xc7, 0x4f, 0xc1, 0xc4, 0x55, 0xb4, 0x3e, - 0x5f, 0x08, 0x8a, 0xfb, 0xa0, 0xb9, 0x0f, 0xa6, 0xff, 0x74, 0x51, 0xe7, 0x79, 0xc1, 0x3c, 0xc6, - 0x6a, 0x2e, 0x46, 0x43, 0xfc, 0x19, 0x3a, 0x75, 0x09, 0xff, 0x9e, 0xb5, 0xe8, 0xdb, 0x19, 0xd4, - 0x84, 0x8d, 0x81, 0x1f, 0xe4, 0x5e, 0x58, 0x4a, 0xb5, 0xcf, 0xb1, 0x0d, 0x43, 0x6c, 0xc0, 0x70, - 0x80, 0xbd, 0xee, 0xf5, 0xeb, 0x73, 0x07, 0x4f, 0x6d, 0x55, 0xe7, 0x28, 0x2b, 0x55, 0x41, 0x80, - 0xb2, 0x5e, 0x79, 0xa1, 0xdd, 0xaf, 0xce, 0x47, 0x96, 0x56, 0xe5, 0xf9, 0x85, 0x20, 0x6b, 0xe6, - 0x40, 0x86, 0xcf, 0xfd, 0x6a, 0xba, 0x28, 0x80, 0xe8, 0x5a, 0x4d, 0x97, 0x17, 0x02, 0x75, 0xb0, - 0xc3, 0x44, 0xc8, 0x82, 0xaf, 0x43, 0xb3, 0x4a, 0x0f, 0xd2, 0xdb, 0xd5, 0x39, 0x3d, 0x79, 0x54, - 0x85, 0x21, 0xb3, 0xfa, 0xed, 0x2a, 0x54, 0xf8, 0x36, 0x82, 0x14, 0x7c, 0x1f, 0x28, 0x53, 0x78, - 0x87, 0x1e, 0x11, 0xfd, 0x13, 0x53, 0xcc, 0xce, 0x10, 0x38, 0x2f, 0x66, 0x32, 0xd5, 0x2e, 0x26, - 0x00, 0xaa, 0x35, 0x45, 0xaf, 0x92, 0x41, 0xeb, 0x9b, 0x13, 0x8b, 0x3d, 0x29, 0x53, 0x13, 0x9f, - 0x3a, 0x36, 0x29, 0x35, 0xe8, 0xca, 0x33, 0x1b, 0x21, 0x2d, 0x04, 0x50, 0x3a, 0xeb, 0x3f, 0x7e, - 0x88, 0x82, 0x24, 0x09, 0xd9, 0xbc, 0x90, 0x17, 0xbc, 0xf5, 0x4f, 0xf6, 0xd6, 0xc8, 0x74, 0x1f, - 0x16, 0xd8, 0x51, 0x3b, 0xad, 0x1a, 0x99, 0xe9, 0x50, 0xb6, 0xd3, 0x20, 0x19, 0xf2, 0x3f, 0x05, - 0x28, 0x93, 0x15, 0xa4, 0x92, 0x20, 0xf9, 0x45, 0x88, 0xe0, 0x68, 0xa7, 0x49, 0x8f, 0x3b, 0x06, - 0x6e, 0xbc, 0xa7, 0xa1, 0x67, 0x99, 0x7c, 0x45, 0xc2, 0x7f, 0x52, 0x36, 0x97, 0x7e, 0x31, 0x49, - 0xd1, 0xac, 0x98, 0x2d, 0x08, 0x39, 0x21, 0x8b, 0x20, 0xd6, 0x57, 0xa8, 0x00, 0xfa, 0x81, 0x37, - 0xb1, 0x2a, 0xa1, 0x5c, 0x0e, 0xca, 0x55, 0x7e, 0xbf, 0x58, 0x1e, 0x8a, 0xe4, 0xa4, 0xdf, 0x2c, - 0x27, 0x0a, 0x45, 0xc0, 0x48, 0xb0, 0x83, 0xb0, 0xc4, 0xab, 0x40, 0xd2, 0x4b, 0x5d, 0x44, 0x6f, - 0x32, 0x5c, 0xd0, 0x32, 0x13, 0x59, 0xd3, 0x4c, 0x19, 0xd8, 0x53, 0xa6, 0x20, 0x15, 0x4b, 0x95, - 0x2c, 0xc3, 0x49, 0x06, 0x3a, 0x0e, 0x29, 0x62, 0x25, 0x2b, 0xe5, 0x8a, 0xb9, 0x6c, 0x25, 0x5b, - 0xc8, 0x15, 0x69, 0x0d, 0x80, 0xf9, 0xbf, 0x5a, 0x83, 0x24, 0x55, 0xca, 0x65, 0x51, 0x0c, 0x56, - 0x91, 0x2d, 0x64, 0xb3, 0x65, 0xb1, 0x94, 0x2f, 0x4b, 0x85, 0x72, 0xa1, 0x28, 0x8a, 0xfc, 0xcf, - 0x9f, 0xb5, 0xde, 0x48, 0x27, 0xb1, 0x4d, 0xb9, 0x01, 0xc8, 0x3a, 0x9a, 0x72, 0xef, 0x45, 0x13, - 0x68, 0x12, 0x73, 0x57, 0x22, 0x39, 0xff, 0xd2, 0x4d, 0xd3, 0x90, 0x49, 0x9b, 0x9b, 0xba, 0x32, - 0xe1, 0x80, 0x27, 0xe1, 0x0d, 0x53, 0xee, 0xfc, 0xdd, 0xce, 0x29, 0xb9, 0xcd, 0xcd, 0x90, 0x88, - 0xba, 0xf0, 0x60, 0xda, 0xa0, 0xe4, 0x26, 0x14, 0xc1, 0x49, 0xce, 0x41, 0x58, 0x62, 0x93, 0x71, - 0x5f, 0x53, 0xf0, 0x27, 0x4d, 0x56, 0xde, 0x34, 0xf0, 0x83, 0x2b, 0x0b, 0xe4, 0x48, 0xcb, 0x99, - 0x91, 0x8c, 0x7e, 0x59, 0x74, 0x64, 0x51, 0x92, 0x73, 0xb6, 0x76, 0x75, 0xd3, 0x20, 0x57, 0xb1, - 0xa2, 0xbb, 0x33, 0xf2, 0x29, 0x90, 0x75, 0x7f, 0xb7, 0x79, 0xb1, 0x22, 0xb3, 0xbd, 0x3b, 0x6b, - 0x22, 0x73, 0xbe, 0x00, 0xad, 0x2c, 0x54, 0x48, 0xb5, 0xf7, 0x87, 0x26, 0xd6, 0xea, 0x15, 0x13, - 0xeb, 0xf5, 0xfa, 0x65, 0xfb, 0x05, 0x43, 0x2e, 0xbf, 0x2a, 0x33, 0x1b, 0xbe, 0xa4, 0xa9, 0x7b, - 0x5f, 0xb0, 0x10, 0x64, 0x08, 0x14, 0x51, 0x36, 0x37, 0x79, 0x83, 0x14, 0xe1, 0xeb, 0x75, 0x34, - 0xd9, 0x18, 0x3d, 0x4c, 0xfb, 0xd2, 0xb0, 0x2c, 0x79, 0x96, 0x56, 0x6d, 0xf2, 0x1b, 0xa9, 0x16, - 0x38, 0x8a, 0x62, 0xa9, 0x1d, 0x1f, 0xca, 0x17, 0x48, 0x93, 0x2f, 0x12, 0xa6, 0x0c, 0x92, 0xe4, - 0x01, 0x9e, 0xd6, 0x87, 0x4f, 0xc9, 0xcd, 0x4d, 0x15, 0x2d, 0x42, 0xc0, 0x91, 0x23, 0xc5, 0x6f, - 0xfa, 0x6d, 0xe2, 0x13, 0x1d, 0x6e, 0x38, 0x29, 0x7c, 0xac, 0x43, 0xd1, 0xb4, 0x05, 0x65, 0xc3, - 0x29, 0xfd, 0xa5, 0x94, 0x76, 0x00, 0x24, 0xb0, 0x91, 0x96, 0x63, 0xf9, 0xe0, 0xf0, 0x10, 0x52, - 0x82, 0x4f, 0x01, 0xa0, 0x14, 0xc8, 0xf4, 0xf0, 0xdb, 0x67, 0xbf, 0xed, 0x14, 0x9f, 0xe4, 0x43, - 0xe5, 0xf0, 0xf0, 0xa8, 0x57, 0x2e, 0x9d, 0x95, 0xb2, 0xc5, 0x3f, 0x42, 0x0d, 0x49, 0xa5, 0x4b, - 0x52, 0x21, 0xfb, 0x47, 0xa8, 0x29, 0xa9, 0xb4, 0x58, 0xca, 0x86, 0xd2, 0x82, 0x8d, 0xc1, 0x5d, - 0x90, 0xd6, 0x19, 0x02, 0x85, 0x15, 0x90, 0x73, 0xea, 0x4a, 0x1a, 0x39, 0x37, 0xa4, 0xa6, 0x27, - 0x3b, 0x81, 0x22, 0x5e, 0x62, 0xb2, 0x0a, 0x4c, 0x0d, 0x85, 0x67, 0x5d, 0xe1, 0xbf, 0xd4, 0xeb, - 0x7d, 0x3c, 0xb6, 0x31, 0x34, 0x47, 0xb0, 0x00, 0xb5, 0x90, 0xbe, 0x70, 0x0c, 0xd1, 0x86, 0xd6, - 0x22, 0x41, 0xa2, 0x6a, 0x74, 0x61, 0x83, 0xf1, 0x09, 0xa2, 0xd1, 0x05, 0x96, 0xdc, 0x81, 0x67, - 0x4a, 0x95, 0xbe, 0x3b, 0x32, 0xb1, 0xd2, 0xd4, 0x5d, 0x14, 0x79, 0x59, 0x05, 0xfb, 0xcf, 0x3f, - 0xbd, 0xdc, 0x1d, 0x37, 0x0f, 0x41, 0x87, 0x97, 0x67, 0x5b, 0xca, 0x96, 0x76, 0x88, 0x4f, 0x38, - 0x5f, 0x25, 0xae, 0xf3, 0x7c, 0xd2, 0x5b, 0x65, 0x37, 0x37, 0x9d, 0x6d, 0x71, 0x73, 0x33, 0xa6, - 0xc2, 0xfa, 0xaf, 0xa8, 0x03, 0x34, 0xbd, 0x54, 0x5e, 0xe0, 0xfe, 0x31, 0x5f, 0x6a, 0xc6, 0x82, - 0xcb, 0x89, 0xff, 0x14, 0x70, 0x24, 0x12, 0xff, 0x98, 0x3b, 0x0b, 0xc1, 0xfb, 0x93, 0x4c, 0xfe, - 0x4a, 0x26, 0xab, 0x09, 0xb7, 0x3a, 0x68, 0x2c, 0xac, 0x56, 0x49, 0x21, 0xae, 0xba, 0x98, 0xc2, - 0xbf, 0x62, 0xba, 0xe7, 0xc4, 0x74, 0x27, 0x30, 0x6e, 0xb2, 0x69, 0x6a, 0xb3, 0x66, 0xaf, 0x0f, - 0xfc, 0xa2, 0x43, 0x0f, 0x2a, 0xf3, 0x1a, 0xca, 0xd1, 0x30, 0x2d, 0xea, 0xb0, 0x0e, 0xa6, 0xc9, - 0x32, 0x98, 0xc6, 0x55, 0x30, 0x59, 0x43, 0x51, 0x47, 0x09, 0xa4, 0x92, 0x0a, 0xd2, 0xed, 0x7e, - 0x0d, 0xd0, 0x42, 0x38, 0x06, 0x4f, 0x62, 0x77, 0xf1, 0x02, 0xcb, 0xeb, 0x90, 0xbc, 0xb8, 0x0a, - 0xb2, 0x6b, 0x7b, 0x6b, 0x6e, 0x2e, 0xa7, 0x6d, 0xf2, 0x82, 0xb3, 0xc3, 0x4b, 0xe4, 0x66, 0x57, - 0xef, 0x7a, 0x57, 0x7c, 0x82, 0x46, 0x92, 0xe7, 0x2c, 0xbb, 0x11, 0x8a, 0x3c, 0xc0, 0x08, 0xb8, - 0x45, 0xdb, 0xac, 0xa8, 0x17, 0x4f, 0x8b, 0x13, 0xdd, 0x22, 0x2c, 0x2c, 0x47, 0x30, 0xf3, 0xa0, - 0x4b, 0x32, 0x93, 0x50, 0x39, 0x90, 0x8d, 0x90, 0x5b, 0xe0, 0xf3, 0xd0, 0x21, 0x9f, 0x45, 0x52, - 0x6d, 0x21, 0x54, 0x8f, 0xb3, 0xd5, 0xe6, 0x05, 0xbf, 0xaf, 0x84, 0x71, 0xe3, 0x35, 0xd3, 0x7e, - 0x0e, 0xbb, 0x6f, 0xd2, 0x1c, 0xa4, 0x87, 0x74, 0x5d, 0xde, 0xa1, 0x55, 0x54, 0x59, 0x8d, 0x90, - 0x59, 0x45, 0x1f, 0x17, 0x94, 0xf9, 0x64, 0xad, 0xe5, 0x18, 0x16, 0xf0, 0x74, 0xe4, 0x9d, 0xc7, - 0x8e, 0x32, 0x4c, 0xf0, 0xa8, 0x8c, 0xde, 0xa9, 0x80, 0x7d, 0x5e, 0x38, 0x69, 0x5d, 0x5e, 0xc0, - 0xb8, 0xe1, 0x45, 0x74, 0x6a, 0x6f, 0x96, 0x00, 0xb0, 0xc9, 0xa4, 0x27, 0xa5, 0x00, 0x3b, 0xeb, - 0xda, 0x9b, 0x9b, 0x54, 0x5f, 0xbf, 0x3b, 0x0e, 0x72, 0x6a, 0xd7, 0x11, 0x78, 0xee, 0x35, 0x84, - 0xca, 0x1b, 0x69, 0x10, 0x2a, 0xea, 0x5f, 0x62, 0x12, 0x05, 0x7f, 0xc4, 0x43, 0x50, 0xd8, 0x29, - 0xf5, 0x79, 0x78, 0xd0, 0xeb, 0xab, 0xa8, 0x61, 0x87, 0xca, 0x44, 0x55, 0xf6, 0x7d, 0x15, 0x54, - 0xd7, 0x59, 0x64, 0x1e, 0xa1, 0x84, 0x40, 0xd3, 0x68, 0xc2, 0x2a, 0x00, 0xc4, 0x2f, 0x7c, 0xa9, - 0x73, 0x40, 0xfb, 0xcb, 0x9d, 0x83, 0xc4, 0x58, 0x28, 0x8c, 0xae, 0x81, 0x35, 0x29, 0x3b, 0x89, - 0x10, 0x9d, 0xf2, 0x5f, 0x15, 0x25, 0x48, 0x0f, 0x9d, 0xad, 0x1e, 0x26, 0x92, 0x83, 0x2c, 0x81, - 0xc4, 0x2c, 0x26, 0x76, 0xbb, 0xdd, 0x50, 0x62, 0x0e, 0x13, 0xdb, 0xed, 0x76, 0x28, 0x31, 0x8f, - 0x89, 0xb2, 0x2c, 0x87, 0x12, 0x0b, 0x98, 0x58, 0xa9, 0x54, 0x42, 0x89, 0xc5, 0xb8, 0xc4, 0x32, - 0x26, 0x96, 0xcb, 0xe5, 0x50, 0x62, 0x1b, 0x13, 0xf3, 0xf9, 0x7c, 0x28, 0xb1, 0x83, 0x89, 0xb9, - 0x5c, 0x2e, 0x94, 0x88, 0xa6, 0x9c, 0xaf, 0x92, 0x24, 0x85, 0x12, 0xbb, 0x98, 0x98, 0xcd, 0x66, - 0x43, 0x89, 0x16, 0x69, 0x67, 0x36, 0x9c, 0xb3, 0x4f, 0x72, 0xca, 0xe1, 0x44, 0x8d, 0x24, 0x16, - 0x3b, 0xa1, 0x44, 0x03, 0x12, 0xc9, 0x3d, 0x59, 0x59, 0x31, 0x2f, 0x70, 0xfe, 0x1f, 0x31, 0x5d, - 0x49, 0x86, 0x32, 0xda, 0x6d, 0x86, 0xcf, 0x5c, 0x24, 0x79, 0xc0, 0xd2, 0x8b, 0xa1, 0x74, 0xa7, - 0xbd, 0x02, 0x30, 0xbb, 0x4b, 0x74, 0xab, 0x9d, 0x4c, 0x46, 0x0a, 0xc8, 0x6e, 0x09, 0xa9, 0x24, - 0x0a, 0x9c, 0xff, 0x67, 0x75, 0x89, 0xc1, 0xa7, 0xea, 0x20, 0xee, 0xb8, 0xc4, 0xb0, 0x9a, 0x64, - 0xec, 0x94, 0x3a, 0xd5, 0xa1, 0xc9, 0x17, 0xe3, 0x84, 0x26, 0xc4, 0x74, 0x19, 0xf2, 0x55, 0xa3, - 0x04, 0x15, 0x45, 0x3f, 0x21, 0x28, 0xba, 0x86, 0x44, 0x08, 0x2a, 0x3a, 0x26, 0xb9, 0xb8, 0x21, - 0xcd, 0xc7, 0x0d, 0x3e, 0x21, 0xa8, 0x42, 0xa1, 0xb0, 0x4c, 0x50, 0xc5, 0x62, 0xf1, 0x93, 0x04, - 0x15, 0xa5, 0x5c, 0x42, 0x50, 0x9d, 0x4e, 0x67, 0x99, 0xa0, 0xa2, 0x53, 0xa4, 0x1b, 0x37, 0x1b, - 0x08, 0x41, 0x29, 0xf9, 0xec, 0x32, 0x41, 0xe5, 0x95, 0xec, 0x32, 0x41, 0xe5, 0xcb, 0x72, 0x3c, - 0x41, 0xe5, 0x60, 0x20, 0xdc, 0x7f, 0x2b, 0xa8, 0x09, 0x90, 0x19, 0x4b, 0x4d, 0x90, 0x5e, 0x58, - 0x41, 0x4d, 0x41, 0xa8, 0x9f, 0x21, 0x25, 0x31, 0x0b, 0x54, 0xe4, 0xfd, 0xf9, 0x04, 0x29, 0x15, - 0x24, 0x81, 0x73, 0xff, 0x7d, 0x96, 0x8e, 0xc8, 0x0d, 0xea, 0x7c, 0x80, 0x4f, 0xa1, 0x1e, 0xb0, - 0xdb, 0xf7, 0x45, 0x28, 0x52, 0xb4, 0xdd, 0xc7, 0x3a, 0xeb, 0xdd, 0x74, 0xc7, 0x52, 0x80, 0xf9, - 0x33, 0xe1, 0x98, 0x80, 0xe4, 0x93, 0x35, 0xb5, 0x97, 0xb0, 0xd3, 0x68, 0xe2, 0x57, 0x04, 0x1e, - 0x78, 0x34, 0xc8, 0x0b, 0x9e, 0xca, 0x01, 0xea, 0xa6, 0x3d, 0x1a, 0xa6, 0xcd, 0x81, 0xe1, 0x18, - 0x76, 0x46, 0xaa, 0x64, 0xc5, 0x8c, 0x24, 0x96, 0x45, 0xe4, 0xe4, 0x50, 0x03, 0x2e, 0xcf, 0x7a, - 0xdd, 0x55, 0x0b, 0x6a, 0x3d, 0xc3, 0x4a, 0x10, 0x43, 0x06, 0x07, 0x72, 0x30, 0xe8, 0x8e, 0x7f, - 0xfe, 0xf9, 0xe3, 0x27, 0xcd, 0x24, 0xd7, 0x41, 0x00, 0xd5, 0x7e, 0x88, 0x3f, 0x77, 0x74, 0x14, - 0xce, 0x0f, 0x46, 0x9a, 0xf6, 0x04, 0x52, 0x4e, 0x22, 0x59, 0xc5, 0x44, 0xc1, 0xf0, 0x60, 0x24, - 0x64, 0x41, 0xfb, 0x21, 0xfd, 0x84, 0x3f, 0xd9, 0x9f, 0x49, 0x41, 0xf5, 0xd3, 0x0d, 0x68, 0x26, - 0x2e, 0x79, 0xe4, 0x45, 0x45, 0x20, 0xe4, 0x29, 0x99, 0xd2, 0x7e, 0xe4, 0x20, 0xa7, 0xbe, 0x5d, - 0x37, 0x40, 0x41, 0xf9, 0x5e, 0x57, 0x41, 0xac, 0xa2, 0x9d, 0xd1, 0x7e, 0xe4, 0x7f, 0x26, 0x17, - 0x0b, 0x1b, 0x5d, 0xf7, 0xf7, 0xf1, 0x8a, 0x52, 0x34, 0x75, 0x2b, 0xba, 0x62, 0x25, 0x88, 0x79, - 0x11, 0xe4, 0x8b, 0xfa, 0x36, 0xeb, 0x41, 0x40, 0xf6, 0x8e, 0xae, 0xd5, 0xed, 0x3e, 0x54, 0x4c, - 0x04, 0x74, 0x1d, 0xc4, 0xe8, 0x84, 0x5e, 0x4f, 0x17, 0x93, 0x82, 0xab, 0xbe, 0xb0, 0x18, 0x53, - 0x75, 0xdd, 0x4b, 0xf1, 0x45, 0xab, 0x63, 0x54, 0xbc, 0xea, 0xbf, 0x40, 0xd3, 0x07, 0xf9, 0x8a, - 0xb4, 0x88, 0x48, 0x56, 0x75, 0x1d, 0xfa, 0x4e, 0xc7, 0xd3, 0xdf, 0x29, 0x4a, 0x86, 0x64, 0x2d, - 0xde, 0x0d, 0x13, 0xd7, 0x01, 0x79, 0x3b, 0x32, 0xb2, 0xad, 0x57, 0x55, 0x6f, 0xb6, 0x5a, 0x38, - 0xbc, 0x30, 0x6a, 0x5f, 0xa8, 0x96, 0x44, 0x71, 0xec, 0xd4, 0x23, 0x8a, 0xcf, 0xad, 0xdc, 0x27, - 0x6a, 0x0f, 0x1a, 0xbd, 0x61, 0x9e, 0x21, 0xa2, 0x63, 0x48, 0x00, 0x37, 0xdd, 0x80, 0x06, 0xec, - 0xb4, 0xda, 0x85, 0xf1, 0x87, 0xf5, 0x4f, 0xd1, 0x70, 0xf7, 0x74, 0x86, 0x57, 0x59, 0x2a, 0x40, - 0x5a, 0x90, 0xe4, 0x6f, 0x46, 0x67, 0x3a, 0xb6, 0x8d, 0x29, 0xc4, 0x1a, 0x9e, 0x00, 0x71, 0x64, - 0x87, 0x50, 0x0a, 0x10, 0x0a, 0x9f, 0x22, 0xe6, 0xab, 0x2a, 0x9f, 0xe6, 0x93, 0x29, 0x3e, 0x63, - 0x43, 0x3b, 0xd3, 0x2c, 0x33, 0x89, 0x1c, 0x56, 0xe7, 0xf1, 0x54, 0x12, 0xe0, 0x09, 0xc3, 0x66, - 0x81, 0x60, 0x3d, 0x50, 0xb5, 0x6e, 0xc2, 0x86, 0xf1, 0xf1, 0xba, 0x67, 0xe8, 0x68, 0x6e, 0x85, - 0x65, 0x1a, 0x1d, 0x8f, 0x95, 0x2a, 0x90, 0x58, 0x34, 0x92, 0x90, 0x69, 0x19, 0x78, 0x0a, 0x4b, - 0x83, 0x71, 0x20, 0xd6, 0x2f, 0x51, 0x48, 0x90, 0x4a, 0xeb, 0x21, 0xb9, 0xa8, 0xef, 0xca, 0x45, - 0x90, 0x7a, 0x6c, 0x82, 0x98, 0x0a, 0xc2, 0x2c, 0xcd, 0x06, 0xe5, 0x41, 0xe7, 0x4b, 0xf0, 0x07, - 0x00, 0x9f, 0x04, 0xf5, 0x49, 0x73, 0x57, 0x1a, 0x5e, 0xf2, 0xc9, 0x91, 0xa0, 0x86, 0x34, 0x3e, - 0xd8, 0xf1, 0xd5, 0x17, 0x7e, 0x95, 0xa4, 0x45, 0x21, 0x0a, 0x04, 0x5a, 0x32, 0xe9, 0x8a, 0xb2, - 0xf1, 0xb5, 0xfb, 0x52, 0x59, 0x12, 0x25, 0x5b, 0x24, 0xac, 0x3a, 0x68, 0x7e, 0x7d, 0x65, 0x4f, - 0x51, 0x4c, 0x7c, 0xa3, 0xc2, 0x1a, 0x21, 0x3d, 0x1c, 0xc3, 0xa4, 0x40, 0xcc, 0x63, 0x57, 0x77, - 0x8e, 0xaa, 0x81, 0xa8, 0xe7, 0x8b, 0x20, 0xbe, 0x70, 0x48, 0x2c, 0x33, 0x3b, 0x3d, 0xc5, 0xe9, - 0x0c, 0x12, 0xeb, 0x90, 0x3f, 0xc0, 0xc0, 0x96, 0x90, 0x35, 0xfd, 0x02, 0x0a, 0x39, 0x2f, 0xcc, - 0x87, 0x8a, 0x33, 0x30, 0xba, 0x55, 0x1e, 0xda, 0x06, 0x04, 0x85, 0xe4, 0xad, 0x27, 0x80, 0xf8, - 0x15, 0xf2, 0x3d, 0x91, 0xf4, 0x53, 0xe6, 0x51, 0xc5, 0x15, 0xda, 0x8d, 0x36, 0x20, 0x50, 0x41, - 0x93, 0x69, 0x18, 0x04, 0xa8, 0x17, 0x73, 0xa1, 0x99, 0xd3, 0x00, 0x72, 0xd5, 0x8c, 0x7e, 0x82, - 0xbf, 0x30, 0x38, 0x19, 0x73, 0xb3, 0x39, 0x4f, 0x2a, 0x46, 0xcb, 0x69, 0xa8, 0x11, 0x69, 0x6e, - 0x8f, 0xde, 0x9f, 0x61, 0x13, 0x2a, 0x56, 0xba, 0xd0, 0x50, 0x00, 0xd9, 0x53, 0x75, 0xa0, 0x8a, - 0x59, 0x22, 0x91, 0x04, 0xa8, 0x8c, 0x71, 0x05, 0x04, 0xc4, 0x7e, 0x1a, 0x66, 0x0f, 0xe4, 0xab, - 0xae, 0xfa, 0xe4, 0xa3, 0x06, 0x48, 0x6d, 0x73, 0x33, 0x38, 0x41, 0x78, 0xa4, 0xc0, 0x26, 0x10, - 0x60, 0x52, 0x08, 0x9d, 0xd5, 0x14, 0x98, 0x43, 0x1d, 0xdb, 0x6d, 0xc6, 0x14, 0x6a, 0xd7, 0x5b, - 0x3d, 0x8a, 0x57, 0x43, 0x87, 0x50, 0x44, 0xe0, 0x54, 0x96, 0xd7, 0xe0, 0x83, 0x47, 0x34, 0xd2, - 0x06, 0xdf, 0xe9, 0x33, 0x8c, 0xe4, 0x2d, 0x35, 0xd4, 0xfa, 0xdf, 0xae, 0x02, 0x66, 0x5d, 0x9a, - 0x1a, 0xb6, 0x9b, 0x24, 0x17, 0x02, 0x6e, 0x29, 0x2f, 0xc8, 0xff, 0x28, 0x35, 0x30, 0x62, 0xe8, - 0xc6, 0xf0, 0x30, 0x3f, 0xf0, 0x23, 0xf5, 0x4c, 0xe2, 0x85, 0x78, 0x13, 0x8e, 0xf0, 0x45, 0xf2, - 0xf4, 0x07, 0xc2, 0x76, 0x3a, 0x63, 0x8f, 0xdf, 0xb8, 0xfc, 0x0b, 0x26, 0x12, 0xef, 0x58, 0x23, - 0x05, 0xe6, 0x5c, 0x3c, 0x1a, 0xcc, 0xce, 0x90, 0x87, 0x79, 0xf4, 0x25, 0x73, 0x6e, 0xb4, 0xd5, - 0x0c, 0xe8, 0xd4, 0xb6, 0x93, 0xd0, 0xe5, 0xb1, 0xda, 0x97, 0x21, 0x67, 0x7a, 0x64, 0x2b, 0x56, - 0xa3, 0x0f, 0xad, 0x03, 0x7a, 0x41, 0xf6, 0xb6, 0x16, 0x0a, 0xe4, 0x89, 0xc6, 0xe5, 0xaa, 0xb9, - 0xec, 0x0b, 0xb0, 0x61, 0xcd, 0x5a, 0x64, 0xb8, 0x0c, 0xab, 0xa1, 0x69, 0x89, 0x6f, 0x81, 0xb0, - 0xb4, 0xcc, 0xc1, 0xf1, 0xe7, 0xb7, 0xa4, 0xb7, 0xd0, 0xd8, 0x48, 0x74, 0x4e, 0x32, 0x8e, 0xc5, - 0x3b, 0xc6, 0xa8, 0x33, 0x40, 0xeb, 0x3c, 0xea, 0x66, 0xa4, 0xbe, 0x5d, 0xe2, 0xce, 0x08, 0xb8, - 0x58, 0x95, 0x1b, 0xd8, 0x52, 0x24, 0xaf, 0xcf, 0x9c, 0x22, 0x54, 0xa3, 0xb8, 0x2c, 0x97, 0xda, - 0x9e, 0x7c, 0xe7, 0x85, 0x98, 0xb6, 0x2d, 0x1f, 0x0a, 0x93, 0x3b, 0x18, 0x00, 0x17, 0xf2, 0x52, - 0xdb, 0xf5, 0x9f, 0x7f, 0x3a, 0x3f, 0x94, 0x9f, 0xd1, 0xb3, 0x66, 0x6e, 0xa6, 0x00, 0x83, 0x64, - 0xde, 0x10, 0x8a, 0xe0, 0xd4, 0x61, 0x50, 0xe7, 0xb4, 0xf4, 0xe6, 0xe6, 0x17, 0x07, 0x38, 0x9c, - 0xda, 0x42, 0x97, 0x29, 0xe0, 0xe0, 0xff, 0xd9, 0x8c, 0x39, 0xf5, 0x65, 0x0f, 0x0d, 0xc3, 0x01, - 0x39, 0x03, 0x69, 0x01, 0x32, 0x2c, 0x1b, 0xdf, 0x40, 0x14, 0x51, 0x79, 0x81, 0x02, 0x59, 0x9a, - 0x23, 0x4a, 0x50, 0xd5, 0xc7, 0x18, 0xb2, 0xd4, 0xff, 0xc1, 0x6d, 0x87, 0x03, 0x5c, 0x82, 0x52, - 0x16, 0x73, 0xa5, 0x48, 0xae, 0xb0, 0xa3, 0x78, 0x0b, 0x9b, 0x05, 0x32, 0x0d, 0x19, 0x74, 0x9b, - 0x8a, 0x27, 0xd4, 0xd5, 0x82, 0x2c, 0x42, 0x78, 0xb7, 0xd5, 0xd1, 0xed, 0xf9, 0x19, 0x59, 0x8b, - 0xc2, 0x28, 0x01, 0x15, 0x5b, 0x41, 0xef, 0x0b, 0x50, 0x17, 0xb1, 0x11, 0x30, 0x27, 0x89, 0x47, - 0x86, 0x3b, 0xcf, 0xd8, 0xc6, 0x08, 0x0e, 0x30, 0xad, 0x5e, 0xd6, 0xd5, 0x21, 0x59, 0x38, 0x98, - 0x81, 0xc8, 0xdd, 0x3a, 0xa9, 0x47, 0x27, 0x67, 0xdc, 0x18, 0xd1, 0x1a, 0x16, 0x42, 0xb6, 0x02, - 0x53, 0x52, 0x80, 0x2e, 0x06, 0x99, 0x9e, 0x12, 0xc1, 0x47, 0xc0, 0x29, 0x24, 0x39, 0xf7, 0x11, - 0xc4, 0x37, 0x01, 0x21, 0x0a, 0x53, 0x42, 0x0d, 0x8e, 0xe8, 0xb8, 0x5c, 0x4f, 0x86, 0xd5, 0xa7, - 0xfb, 0x05, 0xc6, 0x42, 0x0c, 0x6a, 0x97, 0x11, 0xdf, 0x12, 0xa5, 0x5e, 0x50, 0x72, 0x1e, 0x91, - 0x05, 0x71, 0xe4, 0x04, 0x1a, 0xcb, 0x22, 0x98, 0xd9, 0x09, 0x86, 0x18, 0xe4, 0xd7, 0xf1, 0x38, - 0x59, 0xd5, 0x75, 0x67, 0x65, 0xd7, 0x85, 0xb8, 0x4f, 0xac, 0x9a, 0x85, 0x10, 0x22, 0x09, 0x98, - 0xe0, 0x37, 0xb8, 0x53, 0x37, 0x54, 0x98, 0x25, 0x91, 0x36, 0xdb, 0x37, 0xd8, 0xa1, 0xec, 0x79, - 0x2e, 0x3b, 0x83, 0x74, 0x4f, 0x33, 0x60, 0x7a, 0x38, 0x99, 0x72, 0x31, 0x8f, 0x68, 0xd5, 0x83, - 0xa9, 0x09, 0x67, 0x8b, 0x24, 0xff, 0x61, 0x27, 0x33, 0xb9, 0x22, 0x7e, 0xd6, 0xe2, 0x3f, 0x6f, - 0xe1, 0xd7, 0x3f, 0xf4, 0x64, 0xa6, 0x08, 0x79, 0xe4, 0xba, 0xbd, 0x63, 0xa7, 0x78, 0x8e, 0x4f, - 0x25, 0xa4, 0x3a, 0x3c, 0xf3, 0xb0, 0xe6, 0xf0, 0xb8, 0xd5, 0x32, 0xb3, 0x71, 0x2d, 0x14, 0x38, - 0x1e, 0x6f, 0x39, 0x61, 0x96, 0x52, 0x39, 0x55, 0xd7, 0xff, 0xfc, 0xd3, 0xde, 0xd1, 0xbd, 0x02, - 0x3a, 0xac, 0xa1, 0xc6, 0x08, 0x49, 0x0a, 0x7f, 0xa0, 0x08, 0xe4, 0x16, 0xbe, 0xc0, 0x5a, 0xa2, - 0x03, 0x2a, 0x21, 0x3b, 0x02, 0x00, 0x54, 0x6c, 0x17, 0x2a, 0x30, 0xcf, 0x6c, 0x9a, 0xa6, 0xa5, - 0x88, 0x2b, 0x22, 0xa6, 0x7f, 0xc7, 0xa6, 0xa0, 0x35, 0x0f, 0xbf, 0x07, 0xf2, 0xb3, 0x74, 0x4c, - 0x71, 0xb6, 0x8a, 0xe2, 0x1f, 0x58, 0xc4, 0x56, 0x50, 0x2d, 0x92, 0x03, 0xc6, 0x5c, 0x1d, 0x78, - 0x85, 0x31, 0xc1, 0x79, 0x84, 0x46, 0x4c, 0xde, 0xb5, 0xa4, 0xfe, 0xfa, 0xee, 0x58, 0xdb, 0xdf, - 0x9d, 0xae, 0xbb, 0xad, 0xf8, 0xaa, 0xcc, 0x9c, 0x2e, 0xbf, 0xfd, 0x8f, 0xb9, 0xb2, 0xf8, 0x9e, - 0x71, 0xba, 0xc1, 0x4f, 0x63, 0x59, 0xa3, 0x9f, 0x9c, 0x05, 0x08, 0x99, 0xec, 0x73, 0x06, 0x8a, - 0xff, 0x0a, 0x8d, 0xce, 0x59, 0x60, 0x33, 0xed, 0x2a, 0x41, 0xc7, 0x47, 0xa9, 0x4b, 0x1e, 0xaf, - 0x22, 0x5b, 0x9d, 0x64, 0x6f, 0x2c, 0xe9, 0x80, 0x60, 0xbf, 0xb9, 0xa9, 0xa4, 0x52, 0x2e, 0xce, - 0x94, 0xed, 0x6c, 0x81, 0xd8, 0x2a, 0xeb, 0xf0, 0x9b, 0x14, 0x94, 0x00, 0xcd, 0xa2, 0x83, 0xeb, - 0x1d, 0x80, 0x0c, 0xb0, 0x43, 0xa0, 0xd4, 0x5f, 0x26, 0xb6, 0x54, 0xed, 0xfe, 0x4a, 0xd2, 0x48, - 0x32, 0xb5, 0x2f, 0x04, 0xf2, 0x0f, 0xe7, 0xe7, 0x9f, 0x7f, 0x8a, 0x5f, 0x10, 0x3a, 0xd6, 0xb1, - 0xe3, 0x67, 0xc5, 0x40, 0xd1, 0x90, 0xd9, 0x9f, 0xfa, 0x0e, 0x56, 0xb9, 0x43, 0xce, 0xa4, 0x95, - 0xcb, 0x35, 0xee, 0x78, 0x8f, 0x1b, 0x8e, 0x6c, 0x87, 0x6b, 0x2b, 0x1c, 0xa4, 0x73, 0x06, 0x28, - 0x18, 0x8a, 0x6d, 0xa7, 0x71, 0x60, 0xab, 0x6b, 0xa0, 0xfc, 0x72, 0xcb, 0xe3, 0x6e, 0xf2, 0xc4, - 0x52, 0x31, 0xfa, 0x24, 0xf7, 0x8f, 0xb9, 0x49, 0x64, 0x62, 0x27, 0xb9, 0xf8, 0x12, 0xc0, 0x91, - 0xc9, 0xf6, 0x07, 0x58, 0x37, 0x98, 0x07, 0x28, 0xd0, 0x88, 0xe2, 0xa2, 0x81, 0xf4, 0x61, 0x73, - 0x93, 0x76, 0x45, 0xf9, 0xe9, 0x3f, 0xa5, 0x91, 0x52, 0x80, 0xd8, 0xbd, 0x57, 0x18, 0xfe, 0xa0, - 0xc1, 0xfe, 0x4a, 0x93, 0x67, 0xe8, 0xe3, 0x18, 0x30, 0xd8, 0x7b, 0x79, 0x4d, 0xf6, 0x2d, 0x00, - 0xcd, 0x4d, 0x4a, 0x9b, 0x76, 0xa0, 0x79, 0xb2, 0xa9, 0xde, 0xcb, 0x9a, 0x2b, 0xf5, 0x93, 0xcc, - 0xb0, 0x1a, 0xbb, 0x85, 0x92, 0xcc, 0x72, 0xcf, 0xb3, 0x85, 0x94, 0xed, 0x62, 0x00, 0x85, 0xa8, - 0x7d, 0x3d, 0x81, 0x3b, 0x9a, 0x6e, 0x46, 0xb7, 0x37, 0x4e, 0x1a, 0x64, 0xeb, 0x1d, 0xf2, 0xb7, - 0x9a, 0xe8, 0x2a, 0x18, 0xd5, 0x00, 0xd2, 0x74, 0xc1, 0x7b, 0x34, 0xfd, 0xc7, 0x37, 0x2d, 0x6a, - 0x56, 0x74, 0x82, 0x93, 0xff, 0x4d, 0x73, 0x71, 0xf7, 0x21, 0xa6, 0xde, 0xb4, 0x9d, 0xc0, 0x33, - 0xee, 0x6e, 0xfa, 0xb4, 0x64, 0xee, 0x76, 0x5e, 0x3d, 0xca, 0xa4, 0x3a, 0x2b, 0x5a, 0x3e, 0x6b, - 0x0a, 0xbb, 0x38, 0x21, 0x41, 0xcc, 0xd7, 0x8a, 0xd3, 0x72, 0x6f, 0xe3, 0xbb, 0x21, 0xfb, 0x53, - 0xa2, 0x50, 0x21, 0xff, 0xa1, 0x8c, 0xa4, 0x4c, 0x95, 0x4e, 0xd3, 0x18, 0x0e, 0x41, 0x0c, 0xc2, - 0xb5, 0xc8, 0x9c, 0xa1, 0xec, 0x17, 0x64, 0xc6, 0xa6, 0x4a, 0xb7, 0xff, 0xf1, 0x9e, 0xbc, 0xb6, - 0x21, 0x5b, 0xc0, 0x85, 0x03, 0x1d, 0x31, 0xc9, 0x98, 0x13, 0x1e, 0xec, 0x53, 0x02, 0x6e, 0x90, - 0xc2, 0xd4, 0xac, 0x39, 0xd6, 0x6c, 0x9e, 0xb0, 0xd7, 0x09, 0x89, 0x20, 0xd9, 0xb0, 0xfd, 0xa2, - 0x6d, 0x49, 0x24, 0x24, 0x81, 0x0c, 0x9e, 0x09, 0xcd, 0xc9, 0xf9, 0x82, 0x6a, 0x9a, 0xbf, 0x82, - 0x8e, 0xa7, 0x24, 0xa4, 0x7c, 0x87, 0x07, 0xa2, 0x54, 0x76, 0xbe, 0xb9, 0xae, 0x33, 0x4b, 0x17, - 0x75, 0x93, 0x90, 0xce, 0x1c, 0xb9, 0xb6, 0x8e, 0xff, 0x56, 0xfd, 0xe6, 0x39, 0x16, 0x78, 0xdb, - 0xd0, 0xb5, 0x90, 0xaf, 0x6c, 0x6d, 0xc5, 0xf1, 0xbb, 0xda, 0x07, 0x90, 0x17, 0xdb, 0xbf, 0x6a, - 0x7a, 0x0a, 0x26, 0x26, 0x8f, 0x7e, 0x23, 0x03, 0x79, 0xac, 0x70, 0xba, 0xc1, 0x90, 0x62, 0x73, - 0x33, 0xc5, 0xf9, 0x02, 0x13, 0x8e, 0x05, 0x52, 0x06, 0x21, 0xdc, 0x52, 0xb8, 0x89, 0x6c, 0xa3, - 0x0b, 0x8a, 0x6a, 0xdb, 0x23, 0x85, 0x88, 0xf5, 0x38, 0xc1, 0x66, 0xc0, 0x46, 0xdd, 0x52, 0xb0, - 0xc8, 0xa1, 0x6c, 0x00, 0x50, 0x79, 0xd7, 0xa3, 0x85, 0x17, 0x68, 0x1d, 0x47, 0xc0, 0x91, 0x30, - 0x40, 0x3f, 0x03, 0xa5, 0xda, 0x1c, 0x0a, 0x0b, 0x23, 0x93, 0x15, 0x25, 0x27, 0x53, 0x51, 0x80, - 0x92, 0x31, 0x61, 0xac, 0x1a, 0x23, 0x9b, 0xfa, 0x23, 0x69, 0x9a, 0x4c, 0x37, 0x1c, 0xc6, 0xb0, - 0x8c, 0x62, 0x40, 0x71, 0xe2, 0xeb, 0xf2, 0x2f, 0x9d, 0xe3, 0xb8, 0x44, 0x0b, 0x04, 0x52, 0x68, - 0x81, 0xec, 0xc2, 0x98, 0xa8, 0x1a, 0x3d, 0x39, 0xc0, 0xa1, 0x03, 0x33, 0x71, 0xe6, 0x32, 0x18, - 0x2b, 0x50, 0x88, 0xe7, 0x07, 0xad, 0x32, 0x09, 0xfd, 0x3a, 0x62, 0x8d, 0x90, 0xdd, 0x66, 0x18, - 0xd4, 0x37, 0x04, 0x4d, 0xe7, 0xdc, 0xab, 0x6e, 0x4c, 0x80, 0x8d, 0x1a, 0x46, 0x17, 0x5d, 0x64, - 0x1c, 0x50, 0x4d, 0xb1, 0x13, 0xdf, 0xbe, 0xbb, 0x17, 0x5c, 0x52, 0xbf, 0xe1, 0x0e, 0x39, 0xdc, - 0xe0, 0xa6, 0x6d, 0x7b, 0xcd, 0x5a, 0xeb, 0x33, 0xc3, 0xc8, 0x1e, 0xdd, 0x81, 0xcd, 0x59, 0x88, - 0x34, 0x3d, 0x6f, 0x97, 0x6f, 0x49, 0x81, 0x20, 0x90, 0xf8, 0x9e, 0xf0, 0x54, 0x84, 0x67, 0x6e, - 0xdc, 0x01, 0x66, 0xa7, 0x0b, 0x9e, 0x14, 0x46, 0xe6, 0x0d, 0x65, 0xbd, 0x75, 0x3b, 0x62, 0x3e, - 0x70, 0xa9, 0x44, 0x21, 0x66, 0x08, 0xc2, 0x4d, 0x80, 0x1f, 0xa3, 0x7b, 0x43, 0x9d, 0x68, 0x41, - 0xe4, 0x79, 0x5b, 0x4c, 0xba, 0x53, 0xd9, 0x30, 0x47, 0x18, 0x45, 0xc7, 0x2d, 0xf6, 0x85, 0x69, - 0x4b, 0x48, 0x76, 0xf0, 0x2b, 0x8c, 0x0d, 0xb5, 0xcb, 0x81, 0x62, 0x51, 0x4b, 0x80, 0x10, 0x0b, - 0x09, 0x5f, 0xea, 0xec, 0x2b, 0x08, 0x22, 0xeb, 0xd4, 0x54, 0xa2, 0xa5, 0x32, 0x22, 0xf9, 0x40, - 0x49, 0xe5, 0xf3, 0x62, 0x1e, 0x6d, 0x52, 0x69, 0x44, 0xfd, 0xc8, 0xde, 0x99, 0x8b, 0xd5, 0xf9, - 0x62, 0x51, 0x8d, 0xd1, 0x5d, 0xa9, 0x6f, 0x87, 0x12, 0x6a, 0x60, 0xb4, 0x03, 0x61, 0x3d, 0x36, - 0x38, 0xe3, 0x41, 0x90, 0x8d, 0x2a, 0xa4, 0xb8, 0x1f, 0xe5, 0x8b, 0x4b, 0x0a, 0x70, 0x9a, 0x64, - 0xd4, 0x1c, 0xe3, 0x29, 0x84, 0x2e, 0x42, 0x3f, 0xec, 0x35, 0x36, 0x3b, 0xe3, 0x3a, 0xf8, 0xac, - 0xee, 0x76, 0x02, 0x94, 0xb3, 0x57, 0x10, 0x55, 0x22, 0xc2, 0xa5, 0xe0, 0xf5, 0x3b, 0xd0, 0x71, - 0xea, 0xb8, 0xc2, 0x98, 0x3e, 0xa8, 0x35, 0x96, 0x8a, 0x0d, 0x4a, 0xfa, 0x9d, 0xf7, 0x62, 0x89, - 0x84, 0x7a, 0x1f, 0x14, 0xe4, 0x91, 0x55, 0x2d, 0xf7, 0x1e, 0x55, 0xc6, 0xc0, 0x6e, 0x51, 0xa4, - 0xef, 0xa0, 0xea, 0xfe, 0x5e, 0xaf, 0x99, 0xef, 0xda, 0xdf, 0xd3, 0x69, 0xe5, 0x83, 0x4e, 0x33, - 0x57, 0xf7, 0xbf, 0xbd, 0xcf, 0x44, 0x79, 0xff, 0xbd, 0x7e, 0x53, 0xf7, 0xa3, 0xbf, 0xa7, 0xdb, - 0x09, 0xe6, 0xcb, 0xa4, 0x10, 0xdb, 0x6a, 0xda, 0x1e, 0xa8, 0x3d, 0xcc, 0x4a, 0x53, 0xd3, 0x23, - 0x9d, 0x26, 0xf0, 0xb5, 0x2f, 0x35, 0x3e, 0xdc, 0x73, 0xdf, 0x07, 0xea, 0x2f, 0xe0, 0x00, 0xd7, - 0x2e, 0x6c, 0x0b, 0x9b, 0x0b, 0x82, 0x79, 0x7d, 0x06, 0x90, 0x7c, 0xe7, 0x11, 0x17, 0xe9, 0xd7, - 0x67, 0xde, 0x12, 0x0e, 0x6b, 0x26, 0x30, 0x17, 0xc8, 0xe8, 0x2e, 0x8a, 0x22, 0xa0, 0xcb, 0x13, - 0x37, 0x0d, 0xfa, 0x09, 0x96, 0x27, 0xd0, 0x43, 0xd0, 0xf1, 0xa3, 0xbe, 0xad, 0xfc, 0x10, 0x7f, - 0x6e, 0x3b, 0xf0, 0x07, 0x3a, 0x8e, 0xdc, 0x35, 0xee, 0x3c, 0xcd, 0x35, 0xfa, 0x3a, 0x91, 0x81, - 0x40, 0x9f, 0xfe, 0x6f, 0xd8, 0x0e, 0x82, 0x87, 0x24, 0x94, 0xf8, 0xb5, 0xe2, 0xc4, 0xd2, 0xd4, - 0xe6, 0xf0, 0x06, 0x52, 0x16, 0x1a, 0x09, 0x24, 0x65, 0xa8, 0x62, 0xf1, 0xa6, 0xb5, 0x79, 0x37, - 0x18, 0x19, 0x26, 0x65, 0x7f, 0xee, 0xe0, 0x1f, 0x14, 0x49, 0xc2, 0xae, 0x7b, 0x94, 0x71, 0x24, - 0x58, 0x31, 0x58, 0x5c, 0x51, 0xd6, 0xfe, 0x21, 0xfd, 0x5c, 0x78, 0xfc, 0xf9, 0x57, 0x8d, 0xb2, - 0xe4, 0x37, 0x6d, 0x39, 0x5e, 0x8c, 0x7b, 0x4d, 0x0b, 0x8c, 0x05, 0x74, 0x41, 0xe1, 0x62, 0x73, - 0x7a, 0xba, 0x95, 0x97, 0x39, 0x08, 0x31, 0xa0, 0x10, 0x2f, 0x96, 0xf0, 0xed, 0xb1, 0x73, 0x97, - 0x93, 0x27, 0x28, 0x13, 0x0c, 0x58, 0x16, 0xd7, 0x4b, 0x2c, 0x49, 0x2a, 0x1a, 0x26, 0xe7, 0x4c, - 0xda, 0xa3, 0xe2, 0x99, 0xf8, 0x93, 0x09, 0x92, 0xa0, 0x0b, 0xd9, 0xd1, 0x39, 0x46, 0x0b, 0x80, - 0xaa, 0x4e, 0x06, 0xaf, 0x33, 0x34, 0xaf, 0x92, 0x2e, 0x3d, 0x50, 0x11, 0x07, 0x09, 0x23, 0xb0, - 0x11, 0x90, 0x60, 0x3e, 0x74, 0x36, 0x1d, 0x29, 0x22, 0xc0, 0x52, 0x3f, 0x1a, 0x34, 0xf4, 0x27, - 0x93, 0xb8, 0x94, 0xa9, 0x3a, 0xa8, 0x09, 0xb8, 0x5d, 0xa1, 0xf8, 0x4a, 0x23, 0x6e, 0x0c, 0x50, - 0x23, 0x81, 0x5c, 0xc7, 0x9c, 0x20, 0x31, 0xd6, 0x64, 0x58, 0x9f, 0x80, 0x6c, 0xcc, 0x91, 0x3d, - 0x48, 0xfc, 0x50, 0x04, 0x59, 0x70, 0xe5, 0x76, 0xdc, 0x01, 0xa0, 0xc9, 0xc0, 0x02, 0x9c, 0x54, - 0x8c, 0x98, 0x45, 0x02, 0xd3, 0xb8, 0x34, 0xa0, 0x2c, 0x0c, 0x7e, 0xfb, 0x97, 0x6f, 0x3d, 0x34, - 0xd5, 0x2e, 0x4a, 0x6c, 0xd1, 0x72, 0xaa, 0xa7, 0x75, 0xe1, 0xda, 0xfb, 0x2b, 0x06, 0x32, 0xb9, - 0xf3, 0xd8, 0x0b, 0x4a, 0x13, 0x4f, 0x39, 0xca, 0x22, 0x89, 0x60, 0x42, 0x9a, 0xc0, 0x0e, 0xef, - 0xb9, 0x07, 0x7f, 0x0b, 0x47, 0xfc, 0xfa, 0x46, 0x5d, 0xb4, 0x73, 0x15, 0x72, 0xae, 0x05, 0x75, - 0x9c, 0x85, 0xab, 0xb3, 0x28, 0xc9, 0x05, 0x48, 0x14, 0x51, 0xbf, 0x62, 0xef, 0xda, 0x20, 0xae, - 0xa7, 0x59, 0x81, 0x1e, 0xea, 0xf8, 0x21, 0x1c, 0x73, 0xa1, 0xa5, 0x80, 0x3a, 0x00, 0xdf, 0x52, - 0x92, 0x28, 0x2e, 0xdc, 0xa0, 0x5f, 0x1d, 0x76, 0xcb, 0x00, 0xe9, 0x63, 0x1c, 0xfc, 0x08, 0x70, - 0xf4, 0x17, 0x74, 0x61, 0x04, 0xc0, 0x53, 0xea, 0x8d, 0x42, 0xcf, 0x55, 0x68, 0x3c, 0x0e, 0x84, - 0x1b, 0x19, 0x11, 0xd0, 0x38, 0x83, 0x91, 0x7e, 0x5c, 0xd8, 0x1e, 0x68, 0xaf, 0x45, 0x0c, 0xfb, - 0xc4, 0x17, 0x33, 0x95, 0x5a, 0xac, 0x10, 0x80, 0x1c, 0xf2, 0x7d, 0x5b, 0xdc, 0x49, 0x10, 0x41, - 0x86, 0x48, 0x22, 0x9b, 0x9b, 0x22, 0xfb, 0x4d, 0xac, 0xf6, 0x9c, 0x40, 0xeb, 0x2e, 0xca, 0x0c, - 0x6c, 0x2a, 0x00, 0xd5, 0x11, 0xb7, 0xd0, 0xd5, 0xf9, 0x97, 0xbc, 0x2c, 0xe8, 0x8c, 0x48, 0xba, - 0x86, 0x64, 0x84, 0x55, 0x0d, 0x89, 0x16, 0x9e, 0xd5, 0xf9, 0xaa, 0x91, 0xf0, 0x57, 0x28, 0x64, - 0x96, 0x94, 0x2d, 0x04, 0xa4, 0x8c, 0x80, 0x90, 0x26, 0xa0, 0xbe, 0x1d, 0xd4, 0x01, 0xc9, 0xc4, - 0xe8, 0x19, 0x64, 0x6b, 0xcf, 0x75, 0x3c, 0x55, 0xd8, 0x4c, 0x55, 0xd2, 0x48, 0x81, 0xb5, 0xa5, - 0x7d, 0xa5, 0x20, 0x82, 0x9c, 0xf4, 0x90, 0x2c, 0x07, 0x99, 0x1f, 0xff, 0x1a, 0xe5, 0xc4, 0xbc, - 0xb8, 0x85, 0x3f, 0xbd, 0x1e, 0xfc, 0xcd, 0x8b, 0xf8, 0x92, 0xef, 0xb6, 0xe1, 0x25, 0xaf, 0x90, - 0x97, 0x4a, 0x0f, 0xbf, 0xf4, 0x2a, 0xe4, 0xa5, 0x27, 0x93, 0x97, 0x5e, 0xb1, 0x88, 0x2f, 0xbd, - 0x0a, 0x96, 0x91, 0x72, 0x12, 0xbc, 0xec, 0x95, 0x2a, 0x7b, 0x3f, 0x33, 0xb8, 0xc5, 0xb2, 0x62, - 0x4b, 0xcb, 0x8b, 0xc9, 0x88, 0x0e, 0xd3, 0xe4, 0xda, 0x55, 0xea, 0xd0, 0x84, 0xbb, 0x9a, 0xfc, - 0x1e, 0x69, 0x5e, 0x1b, 0x8d, 0x73, 0xf5, 0x7a, 0x1d, 0xc7, 0x69, 0x95, 0xa3, 0xe0, 0x3a, 0x30, - 0x4a, 0x1a, 0x5d, 0xfa, 0x89, 0xca, 0xc5, 0x27, 0xf0, 0x22, 0x8f, 0x24, 0x28, 0xee, 0x0e, 0xd9, - 0xc3, 0x71, 0x13, 0x59, 0x4a, 0x37, 0x4d, 0x79, 0xbe, 0xe3, 0x7b, 0x1a, 0x2b, 0xc4, 0x2b, 0x06, - 0xd8, 0x00, 0xbc, 0x84, 0x9c, 0xa2, 0x51, 0xe2, 0xb4, 0x5c, 0xbf, 0x63, 0x96, 0x0b, 0xde, 0x80, - 0x44, 0x89, 0x3b, 0xb0, 0x92, 0xee, 0xd9, 0x69, 0x14, 0x31, 0x87, 0x13, 0xff, 0x2b, 0x90, 0xc4, - 0x74, 0x27, 0xf4, 0x96, 0x9e, 0x54, 0x89, 0x3b, 0xf0, 0xba, 0x2c, 0x03, 0xc8, 0x92, 0x40, 0xf7, - 0xe1, 0xe1, 0x04, 0xbd, 0xc2, 0x86, 0xb8, 0x56, 0xba, 0x08, 0xf5, 0xa2, 0x38, 0x2d, 0xad, 0x2d, - 0x34, 0x90, 0x97, 0x80, 0x3f, 0xe7, 0xe4, 0xa4, 0x04, 0x9f, 0xdd, 0x0b, 0xf9, 0x64, 0xb9, 0x74, - 0xe6, 0xd2, 0x4c, 0x80, 0xa5, 0x43, 0xe3, 0x2d, 0x45, 0x19, 0x28, 0xb2, 0x99, 0x91, 0x94, 0x5c, - 0xcd, 0xae, 0xdb, 0x69, 0xc7, 0x38, 0x50, 0xa7, 0x4a, 0x37, 0x21, 0x25, 0x19, 0x1b, 0x67, 0x6d, - 0x34, 0x27, 0x96, 0xa0, 0xd5, 0xf9, 0x0b, 0xc3, 0xe1, 0x60, 0x46, 0x74, 0x08, 0xc4, 0x2e, 0x5f, - 0xd3, 0xb7, 0xa1, 0xe0, 0x8e, 0x56, 0x4f, 0xe8, 0xf0, 0xff, 0x4c, 0x1d, 0x5e, 0x92, 0x1e, 0x08, - 0xf8, 0x26, 0xee, 0x88, 0x55, 0x29, 0x09, 0x12, 0x10, 0xd7, 0xe0, 0xab, 0x3a, 0xf1, 0x75, 0x23, - 0x79, 0x0b, 0xe2, 0x1f, 0xc4, 0xa4, 0x47, 0x8c, 0xc2, 0x50, 0x10, 0x28, 0x1c, 0x33, 0x0d, 0x1b, - 0xbc, 0xcb, 0xea, 0xa9, 0xdc, 0xa0, 0xa4, 0x47, 0x49, 0x5c, 0x44, 0x90, 0x03, 0x39, 0x3f, 0x60, - 0x60, 0x7e, 0x82, 0x42, 0x16, 0x15, 0xf6, 0x20, 0x4f, 0xd2, 0x86, 0x95, 0x61, 0x47, 0x4e, 0xd5, - 0x5d, 0x5b, 0x1a, 0x64, 0x25, 0xfb, 0x9c, 0xb8, 0xb4, 0x54, 0xc3, 0xe9, 0xb4, 0x06, 0xa3, 0xce, - 0x9f, 0x8e, 0x46, 0x03, 0xf9, 0x75, 0xc4, 0xd7, 0x94, 0x34, 0xa8, 0x83, 0x69, 0xb2, 0x49, 0x60, - 0x3f, 0xa8, 0xce, 0x20, 0x81, 0x07, 0x89, 0xf3, 0x69, 0x62, 0x46, 0x85, 0x7c, 0x47, 0x06, 0x48, - 0x53, 0x84, 0xbe, 0x3a, 0x3a, 0x49, 0xc1, 0x07, 0xba, 0x08, 0x8c, 0x81, 0x4d, 0x61, 0xe1, 0x05, - 0x07, 0xe2, 0x83, 0xb1, 0xf0, 0xd4, 0xdb, 0xef, 0xe4, 0x92, 0x2b, 0x60, 0x5a, 0xff, 0x98, 0xcb, - 0x0b, 0xfc, 0x8b, 0xfb, 0xe9, 0x75, 0x79, 0x87, 0xe7, 0xab, 0xdf, 0x3c, 0xab, 0x9e, 0xa1, 0xe1, - 0x71, 0x82, 0x7a, 0x76, 0xfb, 0xfb, 0xc0, 0x72, 0x75, 0x75, 0xf7, 0xd8, 0x89, 0x7f, 0x57, 0x2e, - 0xbb, 0x1b, 0x99, 0xdd, 0xf0, 0x8b, 0xf7, 0x00, 0x2e, 0xdf, 0x93, 0x86, 0xa9, 0x44, 0xeb, 0x64, - 0x56, 0xbf, 0x6f, 0xa4, 0xce, 0x6c, 0xa1, 0xb8, 0x89, 0x7b, 0x3b, 0xce, 0x8e, 0xdb, 0x7b, 0x7e, - 0x4f, 0x69, 0x8f, 0xfa, 0xbc, 0xf0, 0x6d, 0xa5, 0x8c, 0x14, 0x3c, 0xcb, 0x1d, 0xd8, 0x94, 0x9a, - 0xff, 0xeb, 0x5b, 0x17, 0x8b, 0xfe, 0xeb, 0x5b, 0xf5, 0x5b, 0x2a, 0x21, 0x65, 0xcb, 0x0c, 0x30, - 0xdf, 0x93, 0x81, 0x71, 0xc1, 0xea, 0x44, 0x76, 0x8d, 0x92, 0xa9, 0x6f, 0x44, 0x34, 0x8a, 0x2e, - 0x1d, 0xe1, 0x22, 0xa0, 0xe5, 0x55, 0x49, 0xe4, 0x4c, 0xc8, 0xee, 0xdf, 0x58, 0x14, 0x3a, 0x87, - 0xf4, 0x0d, 0xcd, 0xaf, 0xa4, 0x0f, 0x5e, 0xcb, 0x77, 0x47, 0xaa, 0x86, 0x7b, 0xf5, 0xe9, 0xb1, - 0xda, 0x4d, 0x86, 0x3f, 0xb5, 0xd4, 0x3e, 0xc8, 0xad, 0xe4, 0xfc, 0x06, 0x4a, 0x98, 0x98, 0x69, - 0xa2, 0xf6, 0xd4, 0xb4, 0x4d, 0xd2, 0x53, 0xfc, 0x3f, 0x39, 0xe2, 0xc7, 0x4a, 0xd2, 0x2c, 0xdb, - 0x56, 0x05, 0x9e, 0xeb, 0xee, 0x0e, 0x81, 0x63, 0x84, 0xc1, 0xdc, 0x99, 0x68, 0xb9, 0x06, 0xcd, - 0x3a, 0x6c, 0xc5, 0x4e, 0x8f, 0x48, 0x7a, 0x32, 0x92, 0x1b, 0xe3, 0x4d, 0x71, 0x38, 0x73, 0x60, - 0x1e, 0x01, 0xc0, 0xd7, 0x5d, 0x06, 0x4e, 0x49, 0x9b, 0xb6, 0x25, 0x0f, 0x77, 0xc2, 0x19, 0xaf, - 0x5a, 0x37, 0x8d, 0x73, 0x5e, 0x48, 0xb0, 0xaf, 0x19, 0x49, 0xcc, 0xe6, 0x93, 0x81, 0xb9, 0xc6, - 0x20, 0x2c, 0xf5, 0x7a, 0x1f, 0xd8, 0xfb, 0x10, 0x67, 0x1a, 0xc7, 0xce, 0x4e, 0xf0, 0x82, 0x16, - 0x69, 0x48, 0x03, 0xc8, 0x0f, 0x16, 0x27, 0xee, 0xe0, 0xaa, 0x85, 0x3d, 0x27, 0x93, 0xb5, 0x67, - 0xda, 0x91, 0x5c, 0xe7, 0x8d, 0x26, 0x07, 0xec, 0x02, 0x8f, 0xf9, 0x60, 0xae, 0xa1, 0xdc, 0x89, - 0xf6, 0x47, 0xd5, 0x14, 0x7b, 0x66, 0xc3, 0xf2, 0x86, 0xdf, 0x81, 0xa7, 0x8d, 0x40, 0x6d, 0x41, - 0xb4, 0xc1, 0xa3, 0x93, 0xc2, 0xe6, 0x21, 0x16, 0x03, 0x93, 0x16, 0x16, 0xe7, 0x3f, 0x68, 0xc6, - 0x0c, 0xcd, 0x04, 0x13, 0xf8, 0x9f, 0x4b, 0x48, 0xdd, 0xd7, 0xc7, 0xaa, 0x65, 0xe8, 0x43, 0xd2, - 0x74, 0x25, 0x8d, 0x47, 0xc3, 0x89, 0xcd, 0x1d, 0x7d, 0x1c, 0x2c, 0x05, 0x1e, 0xc9, 0xd0, 0x68, - 0x13, 0xd5, 0x44, 0xaf, 0x62, 0x2c, 0x0c, 0x04, 0x4c, 0xe6, 0xce, 0x2f, 0x6a, 0xe2, 0x78, 0x1d, - 0x87, 0x57, 0x2f, 0x22, 0x53, 0x12, 0x11, 0x11, 0x6d, 0x33, 0x7e, 0x96, 0x15, 0xae, 0xde, 0x91, - 0x70, 0x27, 0x49, 0xea, 0x8a, 0xe2, 0x3a, 0x15, 0xbb, 0x36, 0x25, 0x56, 0xb2, 0xa5, 0xe2, 0x46, - 0x57, 0xbf, 0xe6, 0xb8, 0xce, 0x91, 0x2c, 0xdc, 0x4a, 0xd0, 0x3b, 0xc1, 0xe5, 0xa6, 0xee, 0x59, - 0xe6, 0x20, 0x47, 0x25, 0xa2, 0xab, 0x5d, 0x77, 0x17, 0x65, 0x4f, 0xfc, 0xc5, 0x33, 0x46, 0x89, - 0xe0, 0xf1, 0x96, 0xf0, 0x99, 0x16, 0x76, 0x94, 0x05, 0xe5, 0x8b, 0x3e, 0x13, 0x8e, 0xdd, 0xcc, - 0xa9, 0x14, 0x81, 0xa9, 0xf9, 0xe2, 0xb0, 0x9e, 0x06, 0xfa, 0xaf, 0x91, 0xad, 0x55, 0x1f, 0x08, - 0x11, 0x6c, 0x02, 0x30, 0xb5, 0x14, 0x90, 0x94, 0xb6, 0x8d, 0x80, 0xf1, 0x13, 0xc2, 0xd7, 0x92, - 0x04, 0x92, 0x4c, 0x6d, 0xaa, 0x00, 0x1f, 0x14, 0xd4, 0xa4, 0x60, 0xd4, 0xbf, 0x7c, 0x91, 0x71, - 0x7f, 0x22, 0x7e, 0x33, 0xc9, 0xd3, 0x44, 0xfe, 0xfc, 0x13, 0xbd, 0xe2, 0xb5, 0xcd, 0xcd, 0xa0, - 0x83, 0x2a, 0x7c, 0x46, 0xd7, 0x9c, 0x5f, 0xc1, 0xb0, 0x11, 0x20, 0x72, 0x6a, 0x0b, 0x3f, 0xc4, - 0x44, 0xdb, 0xe6, 0x89, 0xf5, 0x6b, 0x85, 0x30, 0x09, 0x8b, 0x0a, 0xf7, 0x8f, 0xb9, 0x9e, 0x36, - 0xf4, 0x1d, 0xdc, 0xe7, 0xe4, 0xa9, 0xde, 0xe5, 0x49, 0x80, 0xda, 0x02, 0x32, 0x84, 0xa5, 0x69, - 0xe8, 0xca, 0xd5, 0xc4, 0x4a, 0xe0, 0xb7, 0x64, 0x98, 0x79, 0x90, 0x6a, 0x56, 0x07, 0xe2, 0xa1, - 0x36, 0xb8, 0x40, 0x50, 0x24, 0x5a, 0x01, 0xb9, 0x3e, 0x60, 0x6d, 0x34, 0x1e, 0xa8, 0x11, 0x1d, - 0xba, 0x69, 0x8d, 0xbf, 0x13, 0x18, 0x69, 0xc5, 0xfd, 0x48, 0xd8, 0x5f, 0xa8, 0x15, 0xfa, 0x99, - 0x61, 0x8d, 0xfa, 0x28, 0x48, 0x12, 0xe9, 0x99, 0x27, 0x96, 0x33, 0x29, 0xd8, 0xaa, 0xeb, 0x74, - 0xc5, 0x12, 0x3a, 0xe4, 0xc9, 0x30, 0x85, 0xae, 0x9b, 0xf4, 0x24, 0x98, 0x2c, 0xed, 0x49, 0xe8, - 0xc3, 0xf8, 0xd0, 0xc0, 0x2a, 0xa1, 0x70, 0x2a, 0x40, 0xf8, 0x34, 0x32, 0xe0, 0x0d, 0x9a, 0x5f, - 0x41, 0xf6, 0x44, 0xc5, 0xe4, 0x1c, 0xd7, 0x27, 0xbe, 0xab, 0x5a, 0xd4, 0xb2, 0xce, 0x2f, 0x56, - 0x84, 0x0b, 0x0c, 0xe0, 0x0f, 0xe0, 0x44, 0xf0, 0x05, 0x00, 0x5d, 0x64, 0x61, 0x57, 0x21, 0xc3, - 0x0e, 0xcf, 0x42, 0xa3, 0x90, 0xf1, 0xdd, 0xfe, 0x20, 0x22, 0x8c, 0x1b, 0x1a, 0xe5, 0x97, 0x30, - 0xfa, 0xa0, 0xe9, 0xe7, 0x2a, 0x8a, 0xd5, 0x1f, 0xb7, 0x71, 0x18, 0xbd, 0xec, 0xea, 0x5c, 0x0d, - 0xb6, 0x70, 0xa8, 0xfe, 0xd5, 0x06, 0xf6, 0x50, 0x8a, 0x1a, 0x13, 0x51, 0xc5, 0x3e, 0x87, 0x59, - 0xd4, 0xfb, 0x1c, 0xae, 0x3f, 0x81, 0xd5, 0xa7, 0x65, 0xa4, 0x3e, 0x85, 0xb0, 0xfa, 0xf4, 0x57, - 0xdb, 0x3c, 0xfe, 0xbb, 0x90, 0xfa, 0xb4, 0x84, 0xd4, 0x50, 0x0b, 0x87, 0x7f, 0xb5, 0x85, 0x94, - 0x4f, 0x0d, 0xc2, 0x6c, 0x85, 0xd4, 0x28, 0x9b, 0x78, 0x54, 0x97, 0xc4, 0xaa, 0x84, 0xe7, 0x3a, - 0xcf, 0x12, 0x5c, 0xf3, 0x10, 0xde, 0x75, 0xcf, 0x02, 0x04, 0xed, 0x13, 0xc6, 0xc5, 0x49, 0x7b, - 0xdc, 0xc1, 0xa3, 0x6f, 0x80, 0x0f, 0xce, 0x33, 0x45, 0xdb, 0x32, 0xa1, 0x6e, 0xba, 0xa7, 0x14, - 0x4e, 0x0d, 0xd5, 0x29, 0x65, 0xa3, 0xdd, 0x94, 0xb2, 0x2e, 0xf7, 0x21, 0x50, 0xb9, 0xef, 0x2c, - 0x60, 0x95, 0x7f, 0x9f, 0xd6, 0x3f, 0xe6, 0xc0, 0x2c, 0x01, 0x03, 0x52, 0x76, 0x07, 0x77, 0x7b, - 0xe9, 0x41, 0x48, 0x8a, 0x84, 0x2b, 0x58, 0xef, 0x35, 0xfb, 0x7b, 0x86, 0x96, 0x89, 0x87, 0x20, - 0x21, 0x04, 0x69, 0x15, 0x84, 0x5d, 0xd9, 0x5a, 0x5f, 0x3c, 0x8b, 0xc5, 0xb3, 0xab, 0x8a, 0x37, - 0xac, 0xce, 0xfa, 0xe2, 0x39, 0x2c, 0x9e, 0x5b, 0x55, 0xbc, 0x49, 0x4e, 0x01, 0x87, 0x21, 0xc0, - 0x00, 0x92, 0x3c, 0x4b, 0xdc, 0xea, 0x97, 0x30, 0x64, 0xa3, 0x48, 0xc6, 0xcc, 0xd6, 0x11, 0xaf, - 0x6a, 0xec, 0x80, 0xb5, 0x50, 0xa4, 0xe0, 0x6c, 0x75, 0xf8, 0x6f, 0x8d, 0x96, 0x1d, 0x9d, 0xe8, - 0x2d, 0xf5, 0x93, 0x63, 0x65, 0xab, 0xcb, 0x88, 0x56, 0x64, 0x28, 0xaf, 0x7f, 0x76, 0xac, 0x62, - 0x20, 0x3c, 0x28, 0x0f, 0xaa, 0xa6, 0xdd, 0x18, 0x9d, 0xd7, 0x27, 0x63, 0xf4, 0xd9, 0x41, 0x8b, - 0x81, 0x73, 0x27, 0x89, 0xff, 0x99, 0xfb, 0xec, 0xa8, 0xc5, 0x96, 0xcf, 0x47, 0xcb, 0xaf, 0x1e, - 0xb3, 0x5a, 0xd4, 0xb6, 0x05, 0xb8, 0x25, 0x06, 0x1a, 0xa8, 0x40, 0xc3, 0xfd, 0x97, 0x21, 0xca, - 0x06, 0x4a, 0x7f, 0x87, 0x0f, 0x55, 0x02, 0x5f, 0x8d, 0x1d, 0x5f, 0x60, 0x58, 0x5a, 0xc8, 0xc9, - 0x08, 0xc4, 0x31, 0x1e, 0x1a, 0x0c, 0x9a, 0x09, 0x09, 0x1f, 0x31, 0x1d, 0x5b, 0xd1, 0xc2, 0x23, - 0x8c, 0xa2, 0x4d, 0x90, 0xeb, 0x40, 0x4a, 0x84, 0xed, 0x10, 0xc0, 0xeb, 0x59, 0x0f, 0x59, 0x55, - 0x29, 0xf7, 0x59, 0x63, 0xf7, 0xb2, 0xde, 0x43, 0x4d, 0x21, 0xef, 0xbe, 0xd5, 0x0b, 0xdd, 0xc8, - 0x88, 0x38, 0x09, 0xbf, 0xcc, 0xc5, 0x31, 0x91, 0xac, 0xf9, 0x71, 0x69, 0x49, 0x1b, 0x6b, 0x44, - 0x62, 0xc1, 0x76, 0x42, 0xe9, 0x1d, 0x9b, 0x99, 0x2b, 0xe8, 0x2f, 0x80, 0x05, 0x01, 0x0b, 0x50, - 0x98, 0x97, 0xf0, 0x04, 0x12, 0x06, 0x17, 0xc4, 0x9f, 0x5c, 0xb6, 0xc0, 0x2f, 0xe2, 0x4c, 0x67, - 0x90, 0x7f, 0xc9, 0xd6, 0x88, 0xd8, 0xd8, 0x9f, 0x06, 0x49, 0x1e, 0xeb, 0xd2, 0x77, 0xe0, 0x5f, - 0xd5, 0x8d, 0x25, 0x06, 0xb2, 0xb7, 0xb6, 0x88, 0x15, 0xc9, 0x96, 0xed, 0x87, 0xac, 0xab, 0xab, - 0x2d, 0x88, 0x5a, 0xd4, 0x7a, 0xe8, 0x09, 0x28, 0x9f, 0x36, 0x20, 0x6a, 0xb1, 0xc6, 0x43, 0x2d, - 0xc6, 0x70, 0xf8, 0x8f, 0x79, 0xf4, 0x74, 0x94, 0x4a, 0xf5, 0xa5, 0x28, 0x5e, 0x54, 0x3d, 0xd4, - 0x7c, 0x78, 0x5d, 0x26, 0xaf, 0xd0, 0xa5, 0x0f, 0xa6, 0x33, 0x75, 0x38, 0x4f, 0xfa, 0x0b, 0x14, - 0x75, 0x62, 0x2f, 0x7c, 0xf0, 0xef, 0x7b, 0xc8, 0x65, 0x83, 0x52, 0x1d, 0x43, 0x34, 0x52, 0x7e, - 0x28, 0x54, 0x17, 0xb9, 0x3c, 0x82, 0xc3, 0xd1, 0x4a, 0xa7, 0xd3, 0x3c, 0x95, 0xfa, 0xa8, 0x81, - 0xc0, 0x43, 0x10, 0x68, 0x0b, 0x24, 0x58, 0x9a, 0xc3, 0x9a, 0xea, 0xb8, 0x5c, 0x10, 0x34, 0x7a, - 0x26, 0x99, 0xb5, 0x50, 0xb2, 0xe3, 0x1e, 0x71, 0xf3, 0x9d, 0x3c, 0x9d, 0xed, 0xef, 0xf1, 0xd4, - 0xd1, 0x27, 0x92, 0x33, 0x88, 0x25, 0x68, 0xe7, 0x0e, 0xff, 0x80, 0x16, 0x04, 0x52, 0xce, 0x30, - 0x11, 0xc0, 0x52, 0x06, 0x1a, 0x9c, 0x04, 0xd4, 0x0d, 0x37, 0xd3, 0x4a, 0xd8, 0x28, 0x1f, 0x5e, - 0xf6, 0x7a, 0x78, 0xd4, 0xc0, 0xff, 0x4e, 0x4c, 0x0e, 0x4b, 0xcd, 0x66, 0xe8, 0x0e, 0xcb, 0xd6, - 0xd8, 0xc7, 0xf0, 0xe8, 0xd8, 0xae, 0x94, 0x1c, 0x1b, 0xdc, 0xed, 0x1f, 0x73, 0x34, 0x88, 0xed, - 0x0c, 0x27, 0x55, 0xd7, 0x50, 0x97, 0xdc, 0x92, 0x16, 0x01, 0x59, 0xda, 0x5a, 0x2c, 0xc9, 0xe4, - 0x67, 0x8a, 0xee, 0x4b, 0xeb, 0xde, 0x25, 0x1e, 0x50, 0x1d, 0xbd, 0xc4, 0x83, 0x11, 0x57, 0xb8, - 0x77, 0x9f, 0x6c, 0xac, 0xf2, 0xdb, 0x8d, 0x4d, 0x44, 0x91, 0x6d, 0x55, 0xc5, 0x64, 0xb0, 0x03, - 0x9d, 0x95, 0x59, 0xfe, 0xfd, 0x6e, 0xb9, 0x46, 0x25, 0x24, 0xf6, 0x2d, 0x59, 0x53, 0xfb, 0x7a, - 0x15, 0x39, 0x94, 0xe5, 0xd4, 0x78, 0x36, 0x9e, 0xa0, 0xe4, 0x13, 0x6f, 0x8c, 0x14, 0x89, 0x31, - 0xb0, 0x1a, 0x0b, 0xae, 0x7a, 0x40, 0x56, 0xeb, 0x25, 0xe6, 0x6e, 0xf4, 0xa2, 0x78, 0x09, 0xcc, - 0x0a, 0xa3, 0xb7, 0xae, 0x2f, 0xdb, 0xcb, 0x54, 0xc4, 0xaa, 0x62, 0x66, 0xb2, 0x6d, 0x4a, 0xed, - 0x4f, 0xae, 0xc7, 0x1b, 0xb4, 0x75, 0x09, 0x61, 0xfc, 0x11, 0xb1, 0x9a, 0xb9, 0xd4, 0xfb, 0x84, - 0x96, 0x25, 0x2f, 0xbf, 0x6f, 0x15, 0x73, 0x21, 0x7e, 0x62, 0xb0, 0xbf, 0xa5, 0xb4, 0xd4, 0x37, - 0xfb, 0x69, 0xed, 0x70, 0x7f, 0x4b, 0x25, 0x86, 0x83, 0x2d, 0x09, 0xad, 0x58, 0x6e, 0x7f, 0xbf, - 0xa5, 0xba, 0xf8, 0x16, 0xd3, 0x5b, 0x02, 0x70, 0xc5, 0xd0, 0xb1, 0x6f, 0xdb, 0x7e, 0x93, 0x3f, - 0xd9, 0x40, 0xe5, 0x33, 0x0d, 0x5c, 0xc2, 0x56, 0xb7, 0x8a, 0xc6, 0xd6, 0x60, 0xa3, 0x13, 0xe6, - 0x9a, 0x5c, 0xff, 0x66, 0x67, 0xd6, 0xd1, 0xe0, 0xb7, 0xd4, 0xd8, 0xa5, 0xbf, 0x1e, 0x3c, 0x78, - 0x03, 0xc5, 0x33, 0xbe, 0x1e, 0x66, 0x28, 0x87, 0x18, 0x5c, 0x49, 0xd5, 0xfb, 0xe1, 0x99, 0xdb, - 0x42, 0xd7, 0xf5, 0x68, 0xe2, 0xbf, 0xa6, 0xb9, 0xce, 0x97, 0xad, 0xad, 0x06, 0x9e, 0x9d, 0xd8, - 0xda, 0x82, 0x37, 0xe5, 0xef, 0x61, 0x56, 0x7d, 0xcb, 0x8c, 0xc5, 0xb8, 0x14, 0x54, 0xfe, 0x03, - 0xb4, 0x0f, 0xf9, 0xff, 0x97, 0xf2, 0x27, 0xdb, 0xec, 0xac, 0xa5, 0x88, 0x68, 0xfb, 0x20, 0xff, - 0x7f, 0x15, 0xa3, 0xc1, 0xa0, 0x41, 0x68, 0x0a, 0xfe, 0x84, 0xa1, 0x99, 0x1a, 0x59, 0x3c, 0xc0, - 0x11, 0xb1, 0xc1, 0xbb, 0x02, 0xc9, 0x8b, 0x74, 0x4a, 0xe5, 0xc9, 0xd8, 0x0b, 0x91, 0x62, 0x86, - 0x39, 0xe3, 0x9a, 0xe2, 0xc3, 0x3a, 0xc5, 0x80, 0x6b, 0x87, 0x95, 0x07, 0x20, 0xfa, 0xa0, 0xc1, - 0xc5, 0x5b, 0xef, 0xfa, 0x0b, 0xef, 0x75, 0x73, 0xd3, 0xdc, 0xea, 0x6e, 0x4b, 0x9b, 0x9b, 0x9d, - 0x2d, 0x6b, 0x5b, 0xda, 0x19, 0xb8, 0x64, 0x8a, 0x56, 0xdf, 0xc6, 0xa8, 0xab, 0x1a, 0x37, 0x0a, - 0xf5, 0xd6, 0xdf, 0xdc, 0x8c, 0x24, 0x10, 0x0b, 0x17, 0x5f, 0x1d, 0x52, 0xaa, 0x5e, 0xa3, 0x7f, - 0x87, 0x5a, 0xd4, 0x76, 0x86, 0x4c, 0x73, 0x61, 0xad, 0x21, 0x21, 0x53, 0x4d, 0x83, 0x58, 0xdc, - 0xa9, 0xa2, 0xce, 0x02, 0x41, 0xd1, 0x76, 0x7c, 0x42, 0x82, 0x66, 0x80, 0x1c, 0x13, 0x20, 0x0c, - 0x55, 0xe6, 0xe5, 0xc0, 0xc4, 0x69, 0xb6, 0x7e, 0xe1, 0x78, 0xdc, 0x9a, 0x09, 0xf4, 0xae, 0x27, - 0xa6, 0x12, 0xe0, 0xa6, 0x4c, 0xbe, 0xc6, 0xaf, 0x7a, 0xda, 0x31, 0x43, 0x22, 0x76, 0x35, 0xc6, - 0x82, 0x42, 0x1b, 0xf3, 0xa1, 0xd4, 0x1d, 0x14, 0xbb, 0x43, 0x83, 0xd3, 0x55, 0x3c, 0x8b, 0xdd, - 0x6a, 0xfa, 0x61, 0xbd, 0xb2, 0xa8, 0x0c, 0xe9, 0x5d, 0x06, 0x69, 0x82, 0xde, 0xc6, 0xe2, 0x45, - 0xe1, 0x41, 0x8e, 0xc0, 0x7e, 0x86, 0xf9, 0x29, 0x32, 0x0b, 0x5d, 0x1a, 0xe6, 0x11, 0xd6, 0x27, - 0x1b, 0xd3, 0x0d, 0x35, 0x66, 0x8f, 0x38, 0x53, 0x04, 0x9a, 0xd0, 0x0d, 0x2a, 0x2c, 0x1f, 0x34, - 0x41, 0xcc, 0x95, 0x96, 0x9b, 0x10, 0x31, 0x03, 0xc6, 0x4a, 0xc5, 0x30, 0x24, 0xea, 0xc2, 0xdb, - 0x2e, 0x5f, 0xb8, 0xf6, 0xde, 0xe5, 0x9d, 0x72, 0x66, 0x5a, 0x0e, 0x5a, 0x8e, 0xb7, 0xeb, 0x74, - 0xa3, 0xb3, 0xe6, 0x9f, 0x3a, 0xd2, 0xd8, 0x71, 0x21, 0x50, 0x2f, 0xf0, 0xe4, 0x5e, 0xd2, 0x75, - 0x2f, 0x74, 0xdf, 0xdd, 0xb8, 0xc7, 0xe8, 0xe6, 0xea, 0x59, 0xbc, 0xe5, 0xba, 0x58, 0x93, 0xbf, - 0xd7, 0xb1, 0xb7, 0x35, 0x39, 0x95, 0x4a, 0xfa, 0x9c, 0x45, 0xf6, 0x4e, 0x95, 0x10, 0xd3, 0x29, - 0xf1, 0xdb, 0x26, 0xb4, 0x29, 0xa3, 0x2d, 0xf6, 0x57, 0xd2, 0xab, 0xad, 0x6f, 0xf1, 0x29, 0xd9, - 0xdd, 0x3d, 0x66, 0x16, 0x51, 0xf7, 0x00, 0xc7, 0x97, 0x60, 0x31, 0x68, 0xc8, 0x2f, 0xaf, 0x15, - 0x9b, 0x9b, 0x9f, 0x6c, 0xac, 0x44, 0x8f, 0xbb, 0x32, 0x3b, 0xfb, 0xf7, 0xac, 0x9f, 0xb3, 0xdf, - 0x05, 0x15, 0x09, 0x1a, 0x1e, 0x5f, 0x77, 0x52, 0xf8, 0x42, 0x38, 0xc1, 0x17, 0x8d, 0x9e, 0xe5, - 0x0b, 0x2d, 0x9a, 0x9e, 0x95, 0xde, 0x6f, 0x1f, 0x42, 0x5a, 0xd8, 0xae, 0x0f, 0x7c, 0x12, 0x56, - 0xd5, 0xd4, 0xaa, 0x5c, 0x8a, 0x97, 0xeb, 0xbb, 0x2b, 0x40, 0x06, 0x5a, 0x65, 0xad, 0x68, 0x95, - 0xaa, 0x63, 0xa4, 0x10, 0xde, 0xc7, 0x1b, 0x8d, 0xdc, 0x1c, 0xcd, 0xe7, 0xf6, 0x14, 0xf8, 0x56, - 0x38, 0x7e, 0x05, 0xeb, 0x4f, 0xf8, 0xc4, 0x1f, 0xee, 0x49, 0x9b, 0x76, 0x12, 0x95, 0x53, 0x7c, - 0xf0, 0x1c, 0x9a, 0xe9, 0xd6, 0x89, 0x52, 0xff, 0x76, 0x46, 0x82, 0x28, 0x57, 0x69, 0x7c, 0xe5, - 0x18, 0xc3, 0x8c, 0xdd, 0x0f, 0x72, 0x96, 0xc8, 0x56, 0x22, 0x8d, 0xc0, 0xfc, 0xaf, 0x6f, 0x55, - 0x0f, 0x13, 0x81, 0xfb, 0x66, 0xc9, 0xcc, 0x08, 0x5b, 0x37, 0x7c, 0x83, 0xc6, 0xf6, 0x1d, 0x83, - 0xd9, 0xf5, 0xec, 0x19, 0xdf, 0x6a, 0xde, 0x06, 0x31, 0x71, 0x28, 0xe3, 0x68, 0x93, 0xc9, 0x46, - 0x0a, 0x71, 0x07, 0x0b, 0xc3, 0xc2, 0x23, 0x12, 0x28, 0xfd, 0x8a, 0xf5, 0xba, 0xb3, 0xc3, 0x33, - 0x55, 0x1d, 0x03, 0x4f, 0xd0, 0xa8, 0xd0, 0x29, 0x27, 0xc5, 0x53, 0x4f, 0xd4, 0x85, 0x57, 0xc3, - 0xaf, 0x9a, 0x42, 0x1c, 0x6f, 0x43, 0x26, 0x13, 0xe6, 0x81, 0xcb, 0x8a, 0x85, 0xfc, 0xb3, 0x22, - 0x5f, 0x96, 0x3d, 0xbc, 0xe8, 0x96, 0x7d, 0xc0, 0x15, 0x2c, 0x26, 0x6f, 0x60, 0x6f, 0x7f, 0x79, - 0xf3, 0xc9, 0x73, 0x6a, 0x64, 0x4e, 0x76, 0xc4, 0x09, 0x52, 0x20, 0x5b, 0x50, 0x8a, 0xeb, 0x0b, - 0xe8, 0x6d, 0x94, 0xa1, 0x67, 0xb8, 0xf3, 0x5d, 0x61, 0x63, 0x58, 0x73, 0x60, 0x3a, 0x2a, 0x3f, - 0x9c, 0x9f, 0xf5, 0xb9, 0xda, 0xad, 0xe2, 0x03, 0xee, 0x93, 0xa3, 0x72, 0x4a, 0x5f, 0xa4, 0x9f, - 0x0b, 0x84, 0x11, 0x74, 0xc8, 0x23, 0x2e, 0x25, 0xe4, 0xf4, 0xad, 0xa6, 0x60, 0x58, 0x1d, 0xd9, - 0x52, 0x12, 0x0e, 0x49, 0x4c, 0xe2, 0xa6, 0xb8, 0xeb, 0x6c, 0x88, 0xf0, 0x44, 0x0a, 0x89, 0x6f, - 0xe1, 0xa1, 0x4f, 0x7e, 0xe1, 0x37, 0x82, 0x9c, 0x82, 0x53, 0x5c, 0xf2, 0xc1, 0x43, 0xc6, 0x82, - 0x0e, 0x3f, 0x98, 0x1b, 0xf7, 0x03, 0xd1, 0xb5, 0x80, 0xa7, 0xe7, 0xcf, 0x49, 0x65, 0xaa, 0xde, - 0x55, 0xa6, 0x97, 0xbd, 0x04, 0x7f, 0xd3, 0xba, 0xdf, 0xe3, 0x93, 0xdf, 0x45, 0xe2, 0x2f, 0x16, - 0xa6, 0x51, 0xea, 0xc9, 0x88, 0x1e, 0xc6, 0xd4, 0xe9, 0x91, 0xd1, 0x28, 0x56, 0x82, 0xa7, 0xcc, - 0x69, 0x2a, 0x1e, 0x31, 0xa0, 0x1f, 0x76, 0xf8, 0x5a, 0xed, 0x4b, 0x4d, 0xe2, 0xab, 0xde, 0x87, - 0x1a, 0xc5, 0x0e, 0x6e, 0xcd, 0x6b, 0x3b, 0x3f, 0x7e, 0x56, 0x35, 0x90, 0x87, 0x34, 0x15, 0xbd, - 0x26, 0xc9, 0x21, 0x79, 0x87, 0x15, 0xfc, 0x9e, 0xfb, 0xf3, 0x4f, 0xb2, 0x7d, 0x4f, 0xdc, 0x03, - 0x21, 0x1f, 0xfe, 0xba, 0x59, 0x05, 0x72, 0x5a, 0xcd, 0x75, 0x6d, 0xdc, 0xdc, 0xe4, 0x31, 0xfc, - 0x10, 0xba, 0x1e, 0x90, 0xe8, 0x42, 0x6e, 0x8c, 0x27, 0x4c, 0x48, 0x32, 0x0f, 0x78, 0xff, 0xae, - 0x2f, 0x77, 0x47, 0xce, 0xab, 0x28, 0xef, 0x55, 0x94, 0xfb, 0xb9, 0x03, 0x42, 0x65, 0x15, 0x1f, - 0x6a, 0x22, 0x39, 0x89, 0x93, 0x40, 0x97, 0x88, 0xa4, 0x20, 0x07, 0xea, 0x4a, 0xc8, 0x80, 0xa7, - 0x8e, 0x36, 0x22, 0x4e, 0x1f, 0x12, 0xef, 0x57, 0x40, 0x2f, 0xea, 0xc2, 0xcc, 0xfe, 0xf7, 0x6c, - 0xe0, 0x3b, 0xbd, 0x27, 0x2b, 0xfc, 0x7d, 0x1c, 0xfc, 0x4e, 0x6e, 0xa9, 0x0a, 0x7f, 0xef, 0x85, - 0xbf, 0x17, 0x6a, 0xe8, 0x63, 0xe2, 0xa4, 0xea, 0x7d, 0x3c, 0x38, 0x89, 0xbc, 0x1d, 0x88, 0x16, - 0x9d, 0xa3, 0x8e, 0x9c, 0xa1, 0x96, 0xc0, 0x7b, 0x00, 0x05, 0x45, 0xd0, 0x05, 0x14, 0x21, 0x0e, - 0x1e, 0x01, 0x4b, 0x64, 0xdf, 0x9a, 0xae, 0x45, 0xee, 0x1d, 0x7b, 0xc1, 0xa5, 0x28, 0xc6, 0xa5, - 0xd1, 0x73, 0x56, 0xa6, 0x7e, 0xcd, 0x9e, 0x8b, 0x2b, 0x7b, 0x0b, 0x79, 0x8c, 0x4a, 0x3f, 0xa3, - 0xe4, 0x49, 0x5c, 0x0a, 0x59, 0x5e, 0x97, 0x40, 0x7f, 0x88, 0x82, 0x37, 0xe1, 0x7f, 0xba, 0x87, - 0xb6, 0x81, 0xec, 0xbc, 0x89, 0x82, 0x34, 0x4a, 0x8a, 0x20, 0xe3, 0x88, 0xef, 0x18, 0xf3, 0xd8, - 0xe6, 0x05, 0xf4, 0x03, 0x15, 0xb0, 0x1a, 0xd2, 0xc7, 0x2b, 0x37, 0xf9, 0x57, 0xf4, 0x06, 0x3b, - 0x93, 0xec, 0x90, 0x31, 0xf9, 0xf8, 0x1f, 0x73, 0x80, 0x0a, 0x79, 0xaf, 0x20, 0xb1, 0x69, 0xdb, - 0x09, 0xe2, 0xe6, 0xea, 0xb9, 0xb8, 0xfd, 0x72, 0x1d, 0x3e, 0xdd, 0xdb, 0x2c, 0xe3, 0x9d, 0x3e, - 0x2d, 0xa5, 0x6b, 0xc9, 0x13, 0x06, 0x25, 0xe1, 0x4e, 0xa9, 0x98, 0x43, 0xb3, 0xfc, 0x57, 0x06, - 0x89, 0x4b, 0x13, 0xaf, 0xc7, 0x64, 0x2d, 0xe8, 0x78, 0xcb, 0x29, 0xfe, 0x5e, 0xb8, 0x02, 0x34, - 0x18, 0x2a, 0x9e, 0xe0, 0xd3, 0x5e, 0xe3, 0xe9, 0xb1, 0x75, 0x16, 0x06, 0xaa, 0x1e, 0xe9, 0x80, - 0x17, 0x82, 0x4b, 0xed, 0x26, 0x83, 0xdb, 0xe4, 0xe1, 0x6c, 0xd4, 0x2f, 0x35, 0x18, 0xce, 0xd2, - 0x3f, 0x1b, 0xe8, 0xa7, 0xe1, 0x94, 0x44, 0xaf, 0x50, 0xc7, 0x3d, 0xc7, 0xc4, 0xd6, 0xae, 0x2a, - 0x47, 0x16, 0xaa, 0x9a, 0x54, 0xf7, 0xa6, 0x0a, 0xfa, 0x73, 0x01, 0xee, 0xeb, 0x64, 0x14, 0xc2, - 0x6c, 0x81, 0x0c, 0x3d, 0xfb, 0x8e, 0x4e, 0x7c, 0xa0, 0xf3, 0x24, 0xdd, 0x43, 0xa6, 0xcc, 0x25, - 0x95, 0x76, 0x59, 0xac, 0x29, 0xdf, 0x5d, 0x78, 0xc0, 0xe1, 0x53, 0xc9, 0x39, 0x5d, 0x44, 0xb4, - 0xba, 0xe3, 0x32, 0x07, 0x59, 0x30, 0x04, 0x55, 0xb0, 0x40, 0x5a, 0xa8, 0x2d, 0xb1, 0x1f, 0x2d, - 0x99, 0xb4, 0xea, 0x01, 0x7f, 0x08, 0xf4, 0x53, 0xcd, 0x40, 0x65, 0x7f, 0xe0, 0xd9, 0x6d, 0x81, - 0xfa, 0xaa, 0x0a, 0x46, 0x1d, 0x03, 0x58, 0x08, 0x6a, 0x1d, 0xa3, 0x53, 0xd4, 0x08, 0xc3, 0x07, - 0x40, 0xbc, 0x85, 0x2c, 0x27, 0x29, 0x63, 0xdb, 0x98, 0x1f, 0x14, 0xb9, 0x08, 0x39, 0x81, 0x1b, - 0xf2, 0xcb, 0x69, 0xea, 0x72, 0x1a, 0x01, 0xc5, 0x86, 0x0e, 0x2b, 0xda, 0x92, 0x98, 0xb7, 0x16, - 0x3d, 0x7f, 0x6b, 0x53, 0x51, 0x47, 0xd5, 0xba, 0x96, 0xa2, 0xd7, 0xe4, 0x80, 0xf7, 0x00, 0xf2, - 0x43, 0x77, 0xc8, 0x2c, 0xac, 0x2e, 0xfe, 0x53, 0x1f, 0x6b, 0x8d, 0xff, 0xd4, 0x4e, 0x2e, 0xbe, - 0xc0, 0x48, 0xd4, 0x2d, 0xc0, 0x71, 0x08, 0x01, 0x4a, 0xc6, 0xc5, 0x26, 0x41, 0x01, 0x9e, 0xbf, - 0x25, 0x9e, 0xb8, 0x2c, 0xb4, 0x98, 0x8c, 0x51, 0xc5, 0x0c, 0xfc, 0xa3, 0x2e, 0x92, 0x18, 0xc5, - 0x6c, 0xf1, 0xcf, 0x5f, 0xc9, 0x05, 0x3b, 0xe9, 0x18, 0xb8, 0xf8, 0x99, 0x5b, 0x79, 0xf3, 0x33, - 0x86, 0xcf, 0x78, 0x31, 0x54, 0x72, 0x44, 0xbe, 0xf6, 0x2b, 0x4c, 0x6c, 0xcb, 0x53, 0x95, 0x9c, - 0xa6, 0x04, 0x16, 0x84, 0x2b, 0x8b, 0x20, 0x87, 0x8e, 0x55, 0x46, 0xa6, 0xa8, 0x2b, 0x0c, 0x70, - 0x34, 0x4a, 0x31, 0xb3, 0x6f, 0x91, 0x3d, 0x2b, 0x14, 0xeb, 0x89, 0xc4, 0xc0, 0x85, 0x5c, 0xb8, - 0xc8, 0x37, 0x90, 0x0e, 0xd0, 0x78, 0x22, 0xa7, 0xbe, 0xf1, 0xdf, 0x16, 0x86, 0xde, 0xa4, 0x22, - 0x3e, 0xa8, 0xd5, 0x0b, 0x12, 0x48, 0x2d, 0x19, 0xb3, 0xe5, 0x11, 0x7f, 0xff, 0x65, 0xfc, 0xe6, - 0x41, 0x8c, 0xd1, 0x9a, 0x14, 0xe7, 0x43, 0x92, 0x0c, 0x31, 0x2b, 0xe3, 0xb3, 0xb2, 0xe0, 0x97, - 0xf7, 0x3a, 0x48, 0x81, 0x65, 0xad, 0x6b, 0xd5, 0x25, 0x9b, 0xcb, 0x6a, 0x9b, 0x7f, 0xcf, 0x26, - 0xdd, 0x76, 0xc2, 0xc3, 0xa5, 0xee, 0x06, 0x92, 0xaf, 0xc4, 0x79, 0x3a, 0x89, 0xa7, 0xcd, 0xa1, - 0x86, 0xe3, 0xab, 0x20, 0xde, 0x40, 0xb5, 0xb1, 0x1f, 0xc8, 0x0d, 0xec, 0x89, 0xca, 0xce, 0xc3, - 0x75, 0x30, 0xec, 0x46, 0x2e, 0x5b, 0x65, 0x53, 0x7e, 0xbf, 0x75, 0x95, 0xcb, 0xf2, 0x35, 0x9a, - 0x9a, 0x0b, 0xa5, 0x6e, 0xb5, 0xbc, 0x0f, 0xf9, 0xc8, 0x87, 0x9c, 0xfb, 0xa1, 0x10, 0xfe, 0xd0, - 0x74, 0x3f, 0x94, 0x83, 0x15, 0x94, 0xb3, 0xc5, 0x22, 0xcf, 0x28, 0x8f, 0xdf, 0x09, 0x1c, 0x3e, - 0x6c, 0xeb, 0xa1, 0x13, 0x8c, 0x3c, 0xc6, 0x01, 0x21, 0x67, 0x8e, 0x30, 0x7d, 0x07, 0xa4, 0x12, - 0xb3, 0x4a, 0x9f, 0x97, 0x97, 0x2b, 0x1a, 0xa4, 0x9a, 0xc4, 0xb8, 0xa4, 0xac, 0x06, 0x88, 0x4e, - 0xc7, 0x3f, 0x20, 0x8b, 0x20, 0xef, 0x00, 0x79, 0x09, 0x73, 0x24, 0x3d, 0x05, 0x09, 0x5d, 0x82, - 0x58, 0xe2, 0x6f, 0x48, 0x5b, 0x2e, 0x18, 0xc2, 0x4f, 0x65, 0x9a, 0xaa, 0xfb, 0xde, 0x8d, 0xbf, - 0xe2, 0x0e, 0x99, 0x79, 0xc7, 0x1b, 0x60, 0x39, 0x37, 0x17, 0xa1, 0x7b, 0x57, 0x59, 0x3c, 0x15, - 0x76, 0x40, 0xf4, 0x1b, 0x3b, 0xba, 0xc2, 0x72, 0x7e, 0xa3, 0xa7, 0x1c, 0x28, 0x52, 0xe4, 0x64, - 0xe0, 0xa4, 0x83, 0xf0, 0x0b, 0x92, 0xc9, 0x50, 0xca, 0x24, 0x26, 0x0c, 0x7c, 0x43, 0x9f, 0x47, - 0x95, 0x8a, 0xd5, 0x32, 0xba, 0xe8, 0xed, 0xf0, 0x17, 0x99, 0x06, 0x5f, 0x25, 0xcf, 0x0b, 0x54, - 0x63, 0x7f, 0xc1, 0x6a, 0x9c, 0x4a, 0x2d, 0xa0, 0x7b, 0xdd, 0xce, 0x77, 0x71, 0xc7, 0x06, 0x41, - 0x22, 0x14, 0x7b, 0x1e, 0x4f, 0xdd, 0x01, 0xbf, 0x47, 0x5b, 0x4d, 0x37, 0xcd, 0x57, 0x45, 0xe2, - 0x6d, 0x94, 0xc0, 0x6c, 0x17, 0x06, 0x67, 0xe0, 0xe9, 0x40, 0x3f, 0x10, 0x39, 0xd7, 0x43, 0x4e, - 0x91, 0x46, 0x29, 0x0d, 0x05, 0x7c, 0xcf, 0xc0, 0x13, 0xf0, 0x3b, 0x6b, 0x52, 0x77, 0x39, 0xaf, - 0x4c, 0x15, 0xbd, 0xcf, 0x08, 0xba, 0x16, 0x24, 0xa3, 0x4e, 0xf6, 0x8d, 0x22, 0xae, 0x66, 0x7a, - 0x68, 0xc9, 0xb5, 0xc3, 0x47, 0x7e, 0x58, 0x18, 0xf2, 0x4f, 0x9e, 0xf5, 0xa1, 0x61, 0xdc, 0x3f, - 0x73, 0xd4, 0xc7, 0x3b, 0x95, 0x3a, 0xd2, 0xba, 0x24, 0xda, 0x34, 0x56, 0xc6, 0x61, 0x6d, 0x1c, - 0xae, 0xdd, 0x34, 0x40, 0x40, 0xec, 0x19, 0xa0, 0xb8, 0x7b, 0x28, 0x84, 0x30, 0x41, 0xba, 0xae, - 0x68, 0x82, 0xf2, 0xc1, 0xf9, 0xa7, 0xa5, 0x08, 0x17, 0x44, 0x3b, 0xa7, 0xeb, 0x36, 0x0d, 0xe5, - 0xa1, 0xb0, 0x55, 0xb9, 0xe6, 0x39, 0xcf, 0xc9, 0x88, 0x61, 0xac, 0xe7, 0xb3, 0xce, 0x77, 0x78, - 0xa0, 0x04, 0xe7, 0x02, 0x88, 0xc9, 0x2b, 0x23, 0x75, 0x3a, 0xc4, 0x95, 0xcf, 0x8d, 0x47, 0x71, - 0x8f, 0xac, 0x8e, 0xc4, 0x56, 0xec, 0xf3, 0x49, 0x77, 0x6a, 0x29, 0xe9, 0x81, 0x6c, 0x37, 0x1c, - 0xc7, 0x52, 0x81, 0x20, 0xe1, 0xeb, 0x50, 0x9e, 0xf2, 0x49, 0x98, 0x9e, 0xb2, 0x9b, 0x44, 0x1c, - 0xb4, 0xa9, 0x3a, 0x59, 0x85, 0xa5, 0xd3, 0x0d, 0x2f, 0x10, 0xf4, 0x5b, 0x24, 0x1f, 0x33, 0x76, - 0xb2, 0xa6, 0x7f, 0x27, 0xa7, 0xda, 0x61, 0x12, 0x65, 0xa9, 0x94, 0xa0, 0x2d, 0x87, 0xde, 0xac, - 0xd0, 0xc8, 0x9b, 0x34, 0x6a, 0x45, 0xbb, 0x9f, 0x24, 0xf4, 0xf3, 0x4f, 0x37, 0xa1, 0xb3, 0x55, - 0x64, 0x29, 0xc9, 0x5f, 0xb5, 0x55, 0xf1, 0x9f, 0xb4, 0x05, 0x35, 0x8b, 0x84, 0xd0, 0xb6, 0x0a, - 0x83, 0x5e, 0xc0, 0x26, 0x7a, 0xdf, 0x1a, 0x45, 0x9c, 0xcc, 0x04, 0x7e, 0x4f, 0x22, 0x74, 0xf5, - 0x65, 0x3f, 0xbe, 0x61, 0x20, 0x64, 0x09, 0x89, 0x4f, 0x98, 0xa6, 0xf7, 0x10, 0xfc, 0xd5, 0x2a, - 0xe3, 0xe2, 0x87, 0x04, 0x2e, 0x84, 0x63, 0x91, 0x31, 0x22, 0x84, 0x83, 0x36, 0x1e, 0x4a, 0x36, - 0xbe, 0x75, 0x43, 0x41, 0x03, 0xc8, 0x52, 0x34, 0x88, 0xc8, 0x77, 0xd6, 0x1d, 0x50, 0xbc, 0x62, - 0x73, 0xf8, 0xc6, 0x91, 0xe5, 0xfd, 0x1f, 0xa7, 0x4a, 0x62, 0x48, 0xd8, 0x5b, 0x0e, 0x92, 0x97, - 0x6a, 0x9f, 0x53, 0xa9, 0x56, 0x5b, 0x51, 0xd7, 0x93, 0x5f, 0x99, 0xbc, 0xa2, 0xb2, 0xa7, 0x35, - 0xb5, 0x69, 0x50, 0x5b, 0x4d, 0xff, 0xa3, 0x2e, 0x6f, 0x69, 0x64, 0x2e, 0x18, 0xf5, 0x60, 0x51, - 0x34, 0xda, 0xfe, 0xa2, 0xb6, 0xa5, 0x2d, 0x07, 0x6d, 0xc5, 0x90, 0x0d, 0xed, 0x26, 0xc6, 0xe6, - 0xa6, 0xb1, 0xd2, 0x14, 0x50, 0x0b, 0x84, 0x68, 0xf3, 0xd4, 0xa3, 0xb0, 0x40, 0xfe, 0x8b, 0x08, - 0xe4, 0x3f, 0x02, 0x52, 0x89, 0x1f, 0x6f, 0x7d, 0xc1, 0xff, 0xa4, 0x55, 0x3a, 0xb4, 0xe3, 0xf6, - 0x0a, 0x71, 0x9e, 0xac, 0xe4, 0x8c, 0xc5, 0xdd, 0x2a, 0x53, 0x47, 0xd0, 0x43, 0x4d, 0x27, 0xfe, - 0x54, 0x00, 0x48, 0x27, 0xa1, 0xd3, 0x3c, 0x15, 0xfc, 0x7f, 0xfe, 0xf7, 0xff, 0x1b, 0x35, 0xf0, - 0x1d, 0x7d, 0x65, 0xf3, 0xab, 0x7a, 0xbc, 0xe1, 0x02, 0x14, 0x02, 0x22, 0xf2, 0x1a, 0xe8, 0x35, - 0xbf, 0xe2, 0xdc, 0x42, 0xb0, 0x01, 0x8e, 0xf9, 0x2b, 0x64, 0xa1, 0x5b, 0xd0, 0xf9, 0xc8, 0xb3, - 0xc8, 0x04, 0x49, 0x62, 0x21, 0xd0, 0xb7, 0xa5, 0x1d, 0xad, 0x8e, 0x91, 0x3b, 0x60, 0x75, 0xb6, - 0xf9, 0x2a, 0x7a, 0xdf, 0x90, 0x63, 0x05, 0xbc, 0x44, 0xf6, 0xad, 0x81, 0x12, 0x80, 0x5f, 0x7d, - 0x09, 0xf5, 0xac, 0x6f, 0x99, 0x2e, 0x01, 0xae, 0x18, 0x71, 0x92, 0xc3, 0xa5, 0x0a, 0x63, 0x05, - 0xe1, 0x98, 0x1d, 0x2f, 0x0f, 0x6a, 0xe5, 0x64, 0x46, 0xd6, 0xd9, 0x41, 0x09, 0x95, 0xf2, 0x98, - 0x8e, 0x02, 0x6c, 0x53, 0xcf, 0x24, 0xe4, 0x94, 0x01, 0x5a, 0x07, 0x0b, 0xe9, 0xac, 0xa2, 0x3e, - 0x22, 0x6f, 0x4b, 0x7f, 0xfe, 0x69, 0x6c, 0x8b, 0xf8, 0xac, 0xc1, 0xb2, 0xc5, 0x25, 0x50, 0x12, - 0xe6, 0xc6, 0xaa, 0xe5, 0x8c, 0x64, 0x2d, 0x09, 0xb2, 0x70, 0x88, 0x8c, 0x94, 0x70, 0x10, 0x0b, - 0x6d, 0x11, 0x9d, 0x68, 0x78, 0x86, 0x88, 0x6a, 0x00, 0x35, 0xc5, 0x0d, 0x3f, 0x84, 0xa7, 0x8d, - 0xf8, 0x64, 0x58, 0xa1, 0x55, 0x92, 0xb1, 0xb1, 0x5d, 0x5c, 0xe7, 0x9d, 0x64, 0xa0, 0x34, 0x1e, - 0x8f, 0xfc, 0xdd, 0xd2, 0x30, 0x22, 0xa1, 0xb0, 0xfe, 0x78, 0xbe, 0x33, 0x1c, 0x03, 0x24, 0xf4, - 0x79, 0x61, 0x00, 0x81, 0xc1, 0x02, 0xe0, 0x44, 0xc9, 0xc1, 0x07, 0x29, 0x24, 0x56, 0x95, 0x7d, - 0xd3, 0xda, 0xbf, 0x48, 0xdc, 0xa8, 0xd5, 0x85, 0x97, 0xd0, 0x84, 0x27, 0x57, 0xe7, 0xf4, 0x3c, - 0x3c, 0x91, 0x5e, 0xae, 0x8c, 0x89, 0x62, 0xb9, 0x96, 0x36, 0x64, 0x79, 0x75, 0xbc, 0x39, 0x61, - 0xc7, 0x0d, 0xb3, 0x84, 0x61, 0x5f, 0x02, 0xb9, 0x2f, 0xb4, 0x50, 0x56, 0x5d, 0x6b, 0xac, 0xca, - 0xd9, 0x9a, 0xe9, 0x9d, 0x50, 0x5e, 0xf7, 0x92, 0x85, 0x50, 0x01, 0xe4, 0x99, 0x4c, 0x90, 0x60, - 0x66, 0xf0, 0x96, 0x37, 0x8b, 0x97, 0x92, 0x98, 0x51, 0x21, 0x11, 0xb8, 0x4b, 0x61, 0xd9, 0x78, - 0xce, 0x58, 0xf2, 0xae, 0xa5, 0xc2, 0x7c, 0x5b, 0xf5, 0x95, 0xde, 0x6b, 0xbd, 0xfa, 0xbb, 0x7f, - 0x7f, 0xf2, 0xea, 0x3c, 0x4d, 0x69, 0xdd, 0xc7, 0xec, 0xba, 0x8f, 0x39, 0xfc, 0xe8, 0x06, 0xdd, - 0x4e, 0xac, 0xc8, 0x75, 0xb3, 0x06, 0xc2, 0xe1, 0x9a, 0x6f, 0xbb, 0xe4, 0xf8, 0xaa, 0x1f, 0x51, - 0x7b, 0x45, 0xb6, 0x07, 0xde, 0xdd, 0x5a, 0x98, 0xa0, 0x4f, 0xf8, 0x92, 0x7d, 0xdc, 0x05, 0x10, - 0xb5, 0x8e, 0xd3, 0x22, 0x6d, 0x59, 0x8b, 0x2b, 0xd1, 0x6c, 0xde, 0x46, 0xf2, 0x07, 0xa2, 0x5a, - 0x07, 0x82, 0x09, 0x53, 0xbb, 0xce, 0x40, 0x99, 0x4e, 0x96, 0xa0, 0x28, 0x18, 0x45, 0x39, 0xb6, - 0x52, 0x7a, 0xc3, 0x43, 0x5c, 0xb5, 0x04, 0x8f, 0xb0, 0x96, 0x93, 0x0c, 0xb1, 0x65, 0x07, 0xab, - 0xfa, 0x48, 0xe3, 0x9e, 0xaf, 0x2d, 0x6b, 0xff, 0x1b, 0x65, 0xc7, 0x6b, 0xca, 0xc6, 0x16, 0x78, - 0x5d, 0x5f, 0x59, 0x2c, 0x8e, 0x69, 0x49, 0xab, 0xdf, 0x5e, 0x5b, 0x56, 0xc1, 0x08, 0xce, 0xb1, - 0x25, 0xdf, 0x3a, 0xf6, 0xd6, 0x64, 0x4d, 0x39, 0x72, 0x93, 0x46, 0xb4, 0x64, 0xe0, 0xe0, 0x26, - 0x7b, 0x24, 0x31, 0xd2, 0x2c, 0x3b, 0xb1, 0x24, 0x02, 0x45, 0xe7, 0x6f, 0x28, 0x2a, 0x92, 0x6f, - 0xdd, 0x13, 0x96, 0x97, 0xe9, 0x5f, 0x34, 0xcc, 0x1d, 0xd5, 0xe9, 0x5d, 0x53, 0xe3, 0xcf, 0x1f, - 0x9e, 0xc2, 0xaf, 0xd0, 0x95, 0xde, 0x26, 0x0b, 0x74, 0x70, 0xdf, 0x8d, 0x1a, 0x7f, 0x96, 0x57, - 0xfd, 0x00, 0xa3, 0xc6, 0x7b, 0x1b, 0xd6, 0xb2, 0x72, 0xc1, 0xf9, 0x50, 0xe4, 0xa0, 0xf5, 0x23, - 0x03, 0xfe, 0x5c, 0xce, 0xd5, 0x7c, 0x9a, 0xed, 0x3d, 0xc6, 0x99, 0xab, 0xf0, 0xd8, 0x1f, 0x0a, - 0x4e, 0xca, 0xf7, 0x62, 0x52, 0x0b, 0x8b, 0xa1, 0x61, 0xb1, 0x43, 0x50, 0xb6, 0xb3, 0x9b, 0x9b, - 0xe4, 0x4c, 0xf8, 0xca, 0x2c, 0x05, 0x62, 0x3c, 0x47, 0x23, 0xdc, 0x6a, 0xe1, 0x8b, 0xc8, 0x28, - 0xa1, 0x63, 0x45, 0x5a, 0x92, 0x97, 0x88, 0xe2, 0xef, 0x1a, 0xbd, 0x30, 0x27, 0x92, 0xc6, 0x07, - 0xfb, 0x33, 0xcb, 0x2c, 0x3d, 0x18, 0xc8, 0xc8, 0x95, 0xec, 0x04, 0xd4, 0x9e, 0xd6, 0x0c, 0x7c, - 0x6f, 0x1a, 0x1c, 0xf3, 0xa8, 0x98, 0x87, 0x7b, 0x82, 0xce, 0xd2, 0xe0, 0xdb, 0x4b, 0x20, 0x43, - 0x83, 0xcf, 0x28, 0x66, 0xdd, 0xe8, 0xbb, 0xd1, 0xf2, 0xe8, 0x1d, 0x5d, 0x34, 0xb0, 0x85, 0x77, - 0x04, 0xf4, 0x2f, 0xc8, 0xa2, 0x7a, 0x72, 0xae, 0xaf, 0x59, 0xe4, 0xf1, 0x54, 0x34, 0xd9, 0xc5, - 0xba, 0x92, 0x2d, 0xe8, 0xb5, 0x83, 0x33, 0xc9, 0x87, 0xe2, 0xaa, 0x62, 0xfa, 0xe7, 0xe4, 0x58, - 0xff, 0x54, 0x13, 0xdb, 0xe5, 0x5e, 0x0e, 0x20, 0xd9, 0x55, 0xc7, 0x3f, 0xa2, 0x47, 0x07, 0xdc, - 0x10, 0x92, 0xd4, 0xee, 0x4b, 0x46, 0x5e, 0x4e, 0x6a, 0xcb, 0x92, 0xaf, 0xb2, 0x5a, 0xf2, 0x5d, - 0x41, 0x12, 0xb5, 0xdf, 0x69, 0x91, 0xeb, 0x18, 0xff, 0x61, 0x73, 0xfe, 0xaf, 0xff, 0x07, 0x9b, - 0x03, 0xe4, 0xec, 0xa7, 0xfd, 0x8f, 0xff, 0x77, 0x77, 0xa9, 0x89, 0x81, 0x76, 0x54, 0x57, 0x37, - 0x3d, 0x20, 0x29, 0x31, 0x16, 0x78, 0x83, 0x51, 0x91, 0xa8, 0x0d, 0x8b, 0x72, 0x58, 0x72, 0x9f, - 0xd9, 0xf2, 0x01, 0x6e, 0xf7, 0x9c, 0xb5, 0x48, 0xec, 0xf1, 0x86, 0x85, 0x13, 0x83, 0xb9, 0x30, - 0x43, 0x4b, 0x78, 0x92, 0x11, 0x4d, 0x10, 0x4f, 0x09, 0xd1, 0x9c, 0x26, 0xc9, 0xe1, 0x50, 0x2f, - 0x05, 0xef, 0x53, 0x4b, 0xf2, 0x1e, 0xc9, 0x6a, 0xaa, 0xb9, 0x43, 0xfe, 0x62, 0x70, 0x3e, 0x6f, - 0x1f, 0x0d, 0x37, 0xe3, 0xed, 0x3a, 0xcf, 0xf5, 0x2c, 0x63, 0xc8, 0xf1, 0x29, 0x9b, 0x2d, 0xdc, - 0x5a, 0xf8, 0x28, 0xe0, 0x2f, 0x7a, 0x3b, 0x1d, 0xb9, 0xd4, 0x4b, 0x51, 0x49, 0xc8, 0x27, 0x6c, - 0x05, 0xf1, 0xc6, 0xd1, 0x86, 0x0b, 0x62, 0xc0, 0x45, 0x7b, 0x25, 0xb3, 0xee, 0xf8, 0xd7, 0x74, - 0x2d, 0x2f, 0xc1, 0xb4, 0x3f, 0xa4, 0x33, 0x11, 0xbe, 0x1f, 0x88, 0x4c, 0x36, 0x34, 0xaf, 0x28, - 0x72, 0x70, 0x8f, 0x82, 0xec, 0x39, 0xe9, 0x6e, 0x7c, 0x24, 0x2f, 0x66, 0x49, 0x8d, 0x8e, 0x1d, - 0x74, 0x8d, 0x7c, 0x87, 0x69, 0x2a, 0x5b, 0x4d, 0xbc, 0x96, 0x8a, 0x84, 0x9c, 0x05, 0x0e, 0x1d, - 0x93, 0x5c, 0x9b, 0xd6, 0xed, 0xed, 0x7c, 0x69, 0x73, 0xd3, 0xfe, 0x5e, 0x28, 0xff, 0xf9, 0xa7, - 0xbd, 0x5d, 0xcc, 0xe3, 0x73, 0x45, 0xc2, 0xe7, 0x4a, 0x11, 0x9f, 0xa5, 0x6c, 0x0e, 0x5f, 0xb2, - 0x85, 0xc2, 0x0e, 0x5f, 0x87, 0xa6, 0x6d, 0xf3, 0xc2, 0xac, 0xae, 0x93, 0x42, 0x3a, 0x29, 0xa4, - 0x93, 0x42, 0x3a, 0x29, 0xa4, 0x93, 0x42, 0x3a, 0x2d, 0xa4, 0x07, 0x0b, 0xb1, 0xa8, 0x6f, 0x89, - 0x04, 0x69, 0x9d, 0x1b, 0x61, 0x6e, 0x87, 0xff, 0xce, 0x57, 0xa7, 0xc9, 0x14, 0xeb, 0x52, 0xc4, - 0xf4, 0x48, 0xf6, 0x51, 0xc2, 0x79, 0x67, 0xc9, 0x14, 0xed, 0x07, 0x8d, 0xfb, 0x24, 0x0a, 0x73, - 0x9d, 0xee, 0x73, 0x56, 0xbf, 0x88, 0x41, 0x4b, 0xd2, 0x50, 0x7e, 0x55, 0x1e, 0x5a, 0xc0, 0x03, - 0x27, 0xf6, 0x9f, 0x7f, 0x7a, 0x97, 0x4f, 0x4c, 0xec, 0xef, 0xe2, 0x9f, 0x7f, 0x26, 0x12, 0x13, - 0x9b, 0x04, 0xf5, 0x7e, 0x50, 0xda, 0x2d, 0xc0, 0xb7, 0xe2, 0x24, 0x12, 0x2c, 0xd8, 0xf8, 0x9a, - 0x80, 0xcf, 0x3b, 0xfc, 0xc4, 0x06, 0x95, 0x0f, 0xfe, 0xa2, 0xa5, 0x8d, 0x58, 0xde, 0x88, 0x21, - 0x8e, 0x9a, 0xdf, 0xa2, 0xa5, 0x06, 0x86, 0xed, 0x10, 0x93, 0x5f, 0x8a, 0xcf, 0x60, 0x89, 0x64, - 0xba, 0xad, 0xea, 0xb2, 0x35, 0xbb, 0x25, 0xc6, 0x74, 0x12, 0xac, 0xb8, 0x3d, 0x02, 0x1e, 0x64, - 0xf1, 0xc2, 0xc4, 0x4e, 0xe3, 0x21, 0x55, 0xdb, 0x46, 0x5b, 0x0d, 0x1a, 0xc8, 0x70, 0x8c, 0xd9, - 0x0d, 0x2b, 0x9e, 0x0d, 0x11, 0xe6, 0x23, 0xd9, 0xfa, 0xd9, 0x25, 0x85, 0x3c, 0x83, 0x46, 0x30, - 0x7c, 0x33, 0x29, 0x90, 0xa4, 0xbb, 0x58, 0xe4, 0x28, 0x6e, 0x72, 0x1e, 0x8a, 0xc3, 0x19, 0x08, - 0x9e, 0x93, 0x14, 0x02, 0x2f, 0x34, 0x1a, 0x78, 0xe0, 0x3a, 0x34, 0x37, 0xde, 0xb9, 0x10, 0x35, - 0xf2, 0xb9, 0xc1, 0x7b, 0x3f, 0x1b, 0x62, 0x55, 0xf3, 0x66, 0x9b, 0x93, 0x26, 0x87, 0x52, 0xed, - 0x9d, 0x84, 0x1f, 0x42, 0xc2, 0x4e, 0x86, 0x54, 0x12, 0x7a, 0x5b, 0xdc, 0xe6, 0x66, 0x28, 0x64, - 0x80, 0x9d, 0x4c, 0x56, 0x03, 0x87, 0x5a, 0x5d, 0x51, 0x83, 0x84, 0x40, 0xdb, 0x61, 0xbf, 0x55, - 0xa7, 0x16, 0x62, 0x22, 0xb6, 0xa0, 0x63, 0xe4, 0x62, 0xb9, 0xdb, 0x22, 0x31, 0x1a, 0x74, 0xe0, - 0x36, 0x0b, 0x8a, 0x64, 0x72, 0x5d, 0x25, 0x41, 0xf1, 0x6f, 0x87, 0x8a, 0x15, 0x02, 0xf1, 0x31, - 0x28, 0x6d, 0x09, 0x52, 0x01, 0x6d, 0x9e, 0x13, 0x1a, 0x4d, 0x9d, 0xd5, 0x80, 0xe1, 0x71, 0x49, - 0x05, 0x96, 0xf2, 0x66, 0x9f, 0x29, 0x7d, 0x59, 0xab, 0x87, 0xe9, 0xd2, 0x6f, 0x97, 0x1b, 0xb9, - 0x96, 0xcc, 0x68, 0x36, 0x99, 0xe9, 0x5e, 0x9f, 0x92, 0xb6, 0x47, 0x9d, 0x0e, 0x10, 0x84, 0x9b, - 0x2a, 0xd6, 0xc8, 0x0d, 0x7b, 0xe8, 0xc9, 0x27, 0x44, 0xf5, 0x2e, 0x16, 0x64, 0x4d, 0xc1, 0x73, - 0x9d, 0xe4, 0x02, 0x3e, 0x25, 0xad, 0x6b, 0x98, 0x91, 0xde, 0x96, 0x47, 0xde, 0xba, 0x23, 0x8b, - 0xdd, 0x99, 0x47, 0x5e, 0x1d, 0x9a, 0xf5, 0x40, 0xc6, 0x58, 0xbd, 0x98, 0xd0, 0x83, 0x27, 0xff, - 0x62, 0x3e, 0x25, 0x3d, 0xea, 0x9a, 0x78, 0x9c, 0x45, 0xef, 0x46, 0x6e, 0xcd, 0x03, 0xf1, 0x5b, - 0x23, 0xfc, 0x1e, 0x66, 0x0a, 0x3e, 0xe3, 0x25, 0x77, 0x8c, 0x39, 0x93, 0xab, 0x36, 0x69, 0xe3, - 0x1c, 0xc7, 0x6b, 0x95, 0x63, 0x65, 0x24, 0x51, 0x88, 0x39, 0xb6, 0xcc, 0xc8, 0x42, 0x04, 0xb6, - 0x24, 0xb2, 0x2b, 0x91, 0x3c, 0x2d, 0xa8, 0xee, 0xdd, 0xf8, 0x17, 0x71, 0x23, 0x49, 0xf8, 0xa7, - 0x94, 0x83, 0x0e, 0x25, 0x80, 0x31, 0x91, 0xd8, 0x61, 0xc8, 0xe7, 0x1f, 0xce, 0x4f, 0x8c, 0x22, - 0xef, 0x1f, 0x16, 0x22, 0xfc, 0x1c, 0xcd, 0x4d, 0x12, 0x8d, 0xde, 0x48, 0x72, 0xc0, 0x6a, 0x0f, - 0x22, 0xc2, 0x77, 0xca, 0xec, 0x1d, 0xe4, 0x8e, 0x59, 0xb6, 0xea, 0x87, 0x2e, 0xaa, 0x21, 0x66, - 0xb7, 0xce, 0x8f, 0x00, 0xe0, 0x9f, 0xac, 0xb5, 0x7f, 0xd6, 0xbf, 0x7c, 0x49, 0x48, 0x9b, 0x9a, - 0xaf, 0xfd, 0x91, 0x94, 0x32, 0x4b, 0x81, 0xf6, 0x93, 0xf7, 0x3c, 0xbc, 0x7b, 0xd6, 0x57, 0x04, - 0x62, 0x13, 0x2b, 0x34, 0xda, 0x8d, 0xd0, 0x55, 0x24, 0xae, 0x32, 0x39, 0x50, 0xcb, 0x52, 0x25, - 0x91, 0x3a, 0xbc, 0x2a, 0x90, 0x88, 0x64, 0x77, 0x45, 0x08, 0x58, 0xf6, 0x2f, 0x0c, 0xce, 0xc5, - 0x3a, 0x33, 0xe6, 0xfb, 0x96, 0x09, 0x78, 0x65, 0xd1, 0x28, 0xe2, 0x24, 0x61, 0x7f, 0xaf, 0xda, - 0x60, 0xc8, 0xde, 0x92, 0x6a, 0xca, 0x36, 0xee, 0x5c, 0x6f, 0x6d, 0x25, 0x8d, 0xd0, 0x5e, 0x6e, - 0x5d, 0x46, 0x5d, 0x13, 0x92, 0xc8, 0x3d, 0x0a, 0xa1, 0xbd, 0x5c, 0xff, 0x93, 0x14, 0xf9, 0xd4, - 0xf6, 0x3f, 0x65, 0x7f, 0x06, 0x74, 0xe8, 0x44, 0x28, 0xd7, 0xc4, 0xcf, 0x85, 0x57, 0x2c, 0xb0, - 0xbb, 0xb9, 0x0c, 0x12, 0x47, 0x94, 0xf8, 0xd0, 0x79, 0x61, 0xd5, 0xf1, 0x9e, 0x47, 0xd7, 0xfe, - 0x06, 0x65, 0x3a, 0x20, 0xab, 0x92, 0x1f, 0x68, 0xb2, 0xe7, 0xc9, 0x46, 0xa6, 0x4d, 0xc3, 0x23, - 0x4f, 0xf2, 0x3d, 0x29, 0x2c, 0x1b, 0x2b, 0xbc, 0xef, 0xf6, 0x54, 0x88, 0x37, 0x55, 0x78, 0x39, - 0xd4, 0x50, 0x0e, 0x34, 0x54, 0xf8, 0xc0, 0xa5, 0x1d, 0xfc, 0x53, 0x15, 0x85, 0x88, 0xb5, 0xc2, - 0xcf, 0x91, 0xc5, 0x1c, 0xd9, 0x48, 0x8e, 0x5c, 0x30, 0x47, 0x0e, 0x73, 0xe4, 0xdc, 0x1c, 0x44, - 0xf4, 0xbe, 0x94, 0x82, 0xce, 0x84, 0x5f, 0xe4, 0xb4, 0x21, 0x05, 0xbf, 0x66, 0xa3, 0x5f, 0xb3, - 0xc1, 0xaf, 0xb9, 0xe8, 0xd7, 0x1c, 0xcc, 0x0a, 0x12, 0x52, 0x99, 0x44, 0x2a, 0x62, 0xcf, 0x74, - 0x7d, 0x51, 0xd1, 0x43, 0xc5, 0xdd, 0x2e, 0x75, 0x3f, 0x90, 0x3d, 0x4d, 0x49, 0xac, 0xc2, 0x47, - 0x7f, 0xdf, 0x68, 0x88, 0xee, 0x7d, 0x5c, 0xcf, 0x8b, 0xe3, 0xf0, 0x85, 0xaf, 0xb5, 0x81, 0xd5, - 0xbd, 0xd2, 0x1d, 0x50, 0x49, 0xc2, 0xdc, 0x18, 0xbe, 0x45, 0xd1, 0x8d, 0x51, 0x7f, 0xc0, 0xd9, - 0xa6, 0xdc, 0xc1, 0xfb, 0x5d, 0x39, 0x1b, 0x43, 0x7c, 0xd2, 0x38, 0x45, 0x91, 0x22, 0x59, 0x2c, - 0xc2, 0x42, 0xe0, 0x62, 0x0d, 0x6c, 0xdb, 0x2d, 0x94, 0x27, 0x87, 0x79, 0xce, 0x55, 0x7a, 0x7b, - 0xac, 0x6a, 0xd1, 0x28, 0xff, 0xe1, 0x2c, 0x15, 0xcc, 0xd2, 0x08, 0xb4, 0x8c, 0x23, 0xdd, 0xe0, - 0x80, 0xde, 0x38, 0xa3, 0x03, 0xec, 0x0d, 0x77, 0xfc, 0x16, 0x81, 0x19, 0x43, 0x96, 0x3b, 0x12, - 0x24, 0x82, 0x64, 0x84, 0x95, 0x1e, 0x5e, 0x54, 0xb2, 0x51, 0xe5, 0x4e, 0xaf, 0xc0, 0xf5, 0xa2, - 0x32, 0x2c, 0xbe, 0x5a, 0xf0, 0xf6, 0x51, 0x39, 0xdd, 0x9b, 0x0a, 0x11, 0x2f, 0x99, 0xf0, 0x9c, - 0x0b, 0x5d, 0x34, 0xb7, 0xa4, 0x86, 0xb0, 0xe8, 0xba, 0x9f, 0x75, 0x37, 0x73, 0xf7, 0xc5, 0xa8, - 0x34, 0x10, 0x75, 0x3b, 0x03, 0x2d, 0xdf, 0x4b, 0x22, 0x3b, 0xc2, 0x18, 0x9c, 0xfa, 0xc7, 0xcf, - 0xaa, 0x1d, 0x74, 0x36, 0x23, 0x0e, 0x6b, 0x3a, 0x2b, 0x41, 0x9d, 0xc0, 0x30, 0x00, 0x15, 0xe6, - 0xc3, 0xdf, 0x80, 0xb3, 0x19, 0xa8, 0x3a, 0x6e, 0xbe, 0xef, 0x59, 0x37, 0xa7, 0xc4, 0x72, 0x4a, - 0xa1, 0x9c, 0x86, 0x9f, 0x33, 0xe7, 0xe6, 0xcc, 0xb2, 0x9c, 0x61, 0x07, 0x36, 0xcf, 0x49, 0x0f, - 0x38, 0x0b, 0x08, 0xa1, 0x35, 0x1b, 0x9d, 0x61, 0x28, 0xf1, 0x05, 0xe6, 0x04, 0x11, 0xc4, 0xad, - 0x60, 0x0a, 0xb9, 0x8e, 0x0b, 0x93, 0x6b, 0x5f, 0x1c, 0x14, 0x53, 0x13, 0x0a, 0x08, 0x9d, 0xe5, - 0x9d, 0x6c, 0xb5, 0x90, 0x04, 0x81, 0xcf, 0xc5, 0x90, 0x4d, 0xbd, 0xe2, 0x34, 0xe0, 0xbb, 0x3b, - 0x89, 0x50, 0xea, 0x17, 0x37, 0xd9, 0x0a, 0x5a, 0xba, 0x21, 0xa1, 0x1a, 0x4c, 0x10, 0x49, 0x38, - 0x6f, 0x3a, 0x4a, 0x40, 0xb5, 0xc8, 0x1c, 0xaa, 0x52, 0x30, 0x4d, 0xf5, 0x58, 0x42, 0x95, 0x6f, - 0x8e, 0x6c, 0xd0, 0x5e, 0x41, 0x2c, 0xb4, 0xb7, 0x60, 0xad, 0x51, 0x57, 0x6a, 0x3f, 0xc9, 0xaa, - 0xba, 0x42, 0x99, 0x87, 0xa1, 0xf7, 0x1a, 0x59, 0x60, 0x9a, 0x50, 0x6f, 0x6a, 0x98, 0x4e, 0xac, - 0x2b, 0x27, 0x2e, 0xdb, 0x01, 0x0c, 0x52, 0xaf, 0xa2, 0x1c, 0x71, 0x27, 0x2a, 0xa4, 0x94, 0xef, - 0x9a, 0xe7, 0xaf, 0x44, 0x1c, 0x03, 0xb5, 0x1f, 0x90, 0x08, 0x58, 0x20, 0x40, 0x11, 0x64, 0x4a, - 0x59, 0xed, 0x1f, 0x2a, 0xb8, 0xb9, 0x18, 0x9a, 0x95, 0xa0, 0xf2, 0x03, 0xb8, 0xf3, 0xc0, 0xf1, - 0x97, 0xc4, 0x4f, 0x95, 0xaf, 0xd2, 0x77, 0x90, 0x5c, 0xda, 0xb6, 0x63, 0x25, 0x44, 0x41, 0x2a, - 0x42, 0x3f, 0x57, 0xd4, 0x15, 0xec, 0xb2, 0xef, 0x88, 0xba, 0xdc, 0x51, 0x92, 0x8f, 0xf5, 0x12, - 0xe3, 0x9f, 0xe1, 0x19, 0x10, 0x60, 0x8c, 0xec, 0x36, 0x8b, 0x70, 0xa8, 0xbe, 0xa5, 0xcd, 0xdc, - 0x00, 0xad, 0x10, 0xf9, 0x9b, 0x46, 0x37, 0x4a, 0xa2, 0x3f, 0x6d, 0x81, 0xed, 0x79, 0x75, 0xa3, - 0x1a, 0xfe, 0x57, 0x6a, 0x26, 0xe1, 0x82, 0xe6, 0x0b, 0x6a, 0xf3, 0x08, 0xd9, 0x27, 0x94, 0x14, - 0x8f, 0x17, 0xec, 0x2d, 0x84, 0x52, 0x81, 0x99, 0x40, 0x3a, 0xe4, 0xb6, 0x5e, 0xfc, 0x83, 0xd1, - 0x54, 0x46, 0x75, 0x5c, 0x8c, 0x22, 0x03, 0x13, 0xb3, 0xc8, 0x86, 0x1c, 0xc0, 0x10, 0x4c, 0xcf, - 0x5f, 0x8a, 0x01, 0x63, 0x35, 0xe2, 0x67, 0xe1, 0xce, 0x75, 0x3a, 0x8c, 0x38, 0x95, 0x09, 0x8b, - 0xe8, 0xad, 0x1e, 0xbb, 0x5e, 0xc8, 0x74, 0x04, 0xed, 0x21, 0xc4, 0x4e, 0x4b, 0x62, 0x2d, 0x63, - 0xf2, 0xec, 0x0f, 0x55, 0x16, 0x68, 0xe8, 0xff, 0x6b, 0xee, 0xda, 0x9b, 0xdb, 0x36, 0x92, 0xfc, - 0xff, 0xf7, 0x29, 0x28, 0x6c, 0x12, 0x11, 0x2b, 0x48, 0x26, 0x25, 0x3b, 0x71, 0x40, 0x81, 0xac, - 0xc4, 0x76, 0x6e, 0x55, 0xeb, 0xf5, 0xaa, 0x22, 0x6f, 0xb2, 0x29, 0x97, 0xea, 0x4c, 0x52, 0xa0, - 0xc8, 0x32, 0x04, 0x20, 0x04, 0xf4, 0x5a, 0x0a, 0xfb, 0x05, 0xee, 0xbb, 0xdc, 0x67, 0xbc, 0xee, - 0x9e, 0x57, 0xcf, 0x00, 0xe0, 0x23, 0xce, 0xee, 0x5d, 0xd5, 0x66, 0x4d, 0x0d, 0xe6, 0xd1, 0xf3, - 0xee, 0xe9, 0xe9, 0xf9, 0xfd, 0x58, 0xf7, 0xde, 0x05, 0x77, 0x22, 0x36, 0x3a, 0x99, 0x1f, 0x44, - 0x39, 0x3e, 0x94, 0x8a, 0xbc, 0x03, 0x5a, 0x44, 0x72, 0x01, 0x2e, 0x2f, 0x7a, 0x6d, 0x66, 0x4f, - 0x94, 0x78, 0xe4, 0xfd, 0xf0, 0x40, 0xd3, 0x03, 0x7e, 0x7d, 0x7f, 0x8d, 0x13, 0xa2, 0xf0, 0x06, - 0xa0, 0x7f, 0xdd, 0xee, 0x21, 0x54, 0x28, 0xdb, 0xaa, 0x63, 0x18, 0x5f, 0xe8, 0x8f, 0x81, 0x99, - 0x94, 0x23, 0xab, 0x2a, 0xfc, 0x7a, 0xce, 0xa9, 0x47, 0x3f, 0xe0, 0x05, 0x7a, 0x30, 0xcf, 0xe2, - 0x83, 0x3e, 0x52, 0x4c, 0xee, 0xd2, 0x14, 0x4d, 0x59, 0x04, 0xed, 0x32, 0x8a, 0x8b, 0x31, 0xec, - 0x90, 0xb7, 0x35, 0x30, 0xbb, 0x29, 0xf5, 0xfc, 0x5c, 0x5b, 0x56, 0x91, 0xaf, 0xe0, 0xc6, 0xd8, - 0x59, 0x3d, 0x79, 0x14, 0x7b, 0x7a, 0xca, 0x1c, 0x1f, 0xdd, 0x8c, 0x5c, 0x74, 0xc5, 0xf5, 0x1c, - 0xfe, 0x16, 0x1e, 0x35, 0xf3, 0x16, 0xc3, 0xb5, 0xf0, 0xb1, 0x3f, 0xb4, 0x2d, 0xc2, 0x3c, 0x4b, - 0xcc, 0xc2, 0x18, 0x65, 0x22, 0xcf, 0x57, 0xd7, 0x60, 0x93, 0xa8, 0xf6, 0x69, 0x40, 0x17, 0x85, - 0x37, 0xe3, 0x07, 0xe8, 0x76, 0xf1, 0x73, 0x91, 0x76, 0xd1, 0x4d, 0x41, 0xcf, 0x23, 0x4a, 0x22, - 0x87, 0xc6, 0x04, 0xdb, 0xd7, 0xf7, 0x07, 0x18, 0x16, 0xb1, 0x0f, 0xb0, 0xdd, 0x42, 0xfa, 0x89, - 0x5f, 0x59, 0x35, 0xdb, 0x93, 0x55, 0x1b, 0xdd, 0xb0, 0x46, 0xc2, 0x80, 0x90, 0x07, 0xec, 0xbb, - 0x2f, 0x4f, 0xd0, 0x63, 0x5f, 0xbc, 0xb1, 0xe2, 0x8f, 0xbc, 0x89, 0x09, 0x52, 0xbe, 0x87, 0x99, - 0x9c, 0xd0, 0x63, 0x94, 0x0e, 0x9d, 0xca, 0x3a, 0xd2, 0x34, 0xbd, 0x2f, 0x86, 0xcf, 0xbf, 0x22, - 0x6b, 0xd2, 0x37, 0xf0, 0x45, 0xca, 0x7e, 0x30, 0x6f, 0x7c, 0x87, 0x41, 0x1a, 0x3d, 0x3b, 0xe1, - 0xf5, 0x07, 0xec, 0x7c, 0x67, 0x5e, 0x1b, 0x30, 0x80, 0xeb, 0xdd, 0xce, 0x9b, 0x8f, 0x70, 0xde, - 0xdc, 0x83, 0xe1, 0xa8, 0x8b, 0xf0, 0x57, 0xec, 0xbc, 0xfe, 0xf4, 0xc4, 0x8f, 0xf2, 0x35, 0x36, - 0x8d, 0x7b, 0xd8, 0xdd, 0xee, 0xd1, 0xde, 0x0a, 0x67, 0xdd, 0xae, 0x3e, 0x9f, 0x06, 0x2e, 0xb2, - 0x6f, 0x15, 0x9c, 0xc4, 0x27, 0xbe, 0xa2, 0xbd, 0x11, 0x51, 0xa2, 0x4d, 0x9e, 0x45, 0xc5, 0x02, - 0x3d, 0xcb, 0x64, 0x09, 0x78, 0x94, 0x7d, 0xa4, 0xb3, 0x6c, 0x14, 0x45, 0xda, 0x94, 0x72, 0xf4, - 0xd7, 0xf3, 0x37, 0xef, 0x40, 0xa9, 0x80, 0x35, 0x20, 0xcf, 0x0a, 0x7c, 0xdd, 0x80, 0xee, 0x47, - 0x74, 0xac, 0x45, 0xaf, 0x10, 0x22, 0x7a, 0x87, 0x33, 0x23, 0x48, 0xcc, 0x89, 0x35, 0xd0, 0xdc, - 0x70, 0x94, 0x66, 0xf7, 0x5d, 0x1f, 0xc1, 0x00, 0x15, 0x0e, 0x9f, 0x3e, 0x4e, 0x8a, 0x95, 0x10, - 0x96, 0xfe, 0xc5, 0x15, 0x6c, 0xb5, 0xe2, 0x87, 0xa2, 0xf9, 0xe1, 0x07, 0x50, 0x31, 0xee, 0xd9, - 0x15, 0x7a, 0xbf, 0xf7, 0xc7, 0xb1, 0xba, 0x35, 0xcf, 0xf6, 0xe0, 0x3c, 0x4a, 0xde, 0xc4, 0x26, - 0x41, 0x94, 0xf9, 0x55, 0x57, 0x9a, 0x51, 0x0c, 0x98, 0x66, 0xcc, 0x60, 0xf4, 0x4f, 0x9e, 0x93, - 0x8b, 0x0e, 0x1e, 0xd5, 0x83, 0x52, 0xef, 0xcd, 0x48, 0xac, 0xa1, 0x0e, 0x6f, 0x30, 0xf4, 0xe3, - 0x22, 0x27, 0xc7, 0xbe, 0xc8, 0x9c, 0xe8, 0x10, 0x6d, 0x4c, 0x25, 0xac, 0xd2, 0xd1, 0x7d, 0x41, - 0x07, 0xea, 0x2e, 0xf4, 0xde, 0xfe, 0xca, 0xbb, 0xf3, 0x42, 0x04, 0xad, 0xab, 0xf6, 0xfd, 0x50, - 0xb8, 0x74, 0x15, 0xda, 0x5b, 0x2b, 0x09, 0x90, 0x29, 0x2d, 0x46, 0x9a, 0x75, 0xa4, 0x6e, 0x41, - 0xe7, 0xc8, 0x43, 0xf4, 0x73, 0x83, 0x86, 0x44, 0x3a, 0xae, 0x85, 0xb0, 0x2f, 0x51, 0x77, 0x0c, - 0x3a, 0x68, 0xcb, 0xc3, 0x83, 0xf9, 0xdf, 0xde, 0xff, 0x70, 0xf8, 0xd2, 0xab, 0x82, 0x49, 0x76, - 0xf5, 0x18, 0x96, 0xdc, 0xd7, 0x6b, 0x07, 0x0b, 0xd0, 0x96, 0x08, 0xd0, 0xa5, 0xb0, 0x50, 0x6d, - 0x63, 0x2f, 0xc2, 0x11, 0xb6, 0xa3, 0xc9, 0xe8, 0x1a, 0x86, 0xbe, 0x34, 0x73, 0x96, 0xda, 0x0c, - 0xb2, 0x22, 0x27, 0x46, 0x6c, 0x56, 0xe3, 0x63, 0x42, 0xf6, 0x20, 0xb2, 0x9d, 0xe0, 0x52, 0x2a, - 0x78, 0xb4, 0x55, 0xe3, 0xd3, 0xdb, 0xa1, 0x29, 0xcc, 0x66, 0x02, 0x16, 0xf0, 0xed, 0x7d, 0x98, - 0x7d, 0x11, 0x1b, 0xaf, 0xd2, 0x05, 0x1c, 0x4e, 0xba, 0xab, 0xc5, 0x9d, 0x57, 0x73, 0x8a, 0xe7, - 0xc4, 0x71, 0xc8, 0x68, 0x73, 0x04, 0xad, 0x27, 0x57, 0x9f, 0x0d, 0x3e, 0xfb, 0xb0, 0xc8, 0x1e, - 0xc6, 0x81, 0xf7, 0xcf, 0x8e, 0xd0, 0x12, 0xf1, 0x84, 0x71, 0xe0, 0x75, 0xfe, 0xe9, 0x7d, 0x8e, - 0x0b, 0x3f, 0xe5, 0xc9, 0x7d, 0xf8, 0x2b, 0xcb, 0xba, 0xd6, 0x62, 0x51, 0xab, 0x8c, 0x0d, 0xaa, - 0x66, 0x49, 0x93, 0x00, 0xb4, 0xf4, 0x80, 0x44, 0xb4, 0xa9, 0x00, 0x96, 0xc5, 0xad, 0xb1, 0x81, - 0x4c, 0x4c, 0x42, 0x3f, 0xf3, 0x75, 0x67, 0xcd, 0xaa, 0xf0, 0xf4, 0xa4, 0xac, 0xb2, 0x48, 0x33, - 0x76, 0xfc, 0x02, 0xad, 0x74, 0xcc, 0x4a, 0x26, 0x71, 0x68, 0xd9, 0x51, 0x0c, 0x05, 0x80, 0x15, - 0xb5, 0xc8, 0x61, 0x31, 0x8f, 0x3d, 0x09, 0x14, 0xbe, 0xce, 0x91, 0xd0, 0xf5, 0x47, 0x23, 0x87, - 0x0b, 0x7d, 0x11, 0xb6, 0xca, 0xd2, 0x90, 0x0c, 0x69, 0x88, 0xfd, 0x9c, 0x56, 0x64, 0x54, 0xe3, - 0xd3, 0xd8, 0x58, 0x63, 0xc8, 0x24, 0x6f, 0xfd, 0x59, 0xc4, 0xd7, 0xc2, 0x90, 0x20, 0x0c, 0xf6, - 0xc8, 0xc9, 0x41, 0x06, 0x1d, 0x04, 0x33, 0x17, 0x96, 0x9d, 0x9e, 0x78, 0xd5, 0xe4, 0xa6, 0x0a, - 0x66, 0xcb, 0x7f, 0x84, 0x7b, 0x7d, 0x22, 0x53, 0x63, 0x5b, 0x43, 0xcd, 0x75, 0xee, 0x5d, 0x62, - 0xd1, 0x36, 0x75, 0xd1, 0x94, 0xb7, 0x07, 0xff, 0xe7, 0x8f, 0x3e, 0x62, 0xbb, 0xc3, 0x72, 0x28, - 0x1e, 0xf3, 0x76, 0x7e, 0x41, 0x72, 0x0b, 0x41, 0xe3, 0x44, 0xe4, 0x12, 0x74, 0x26, 0xfd, 0x62, - 0x45, 0xf6, 0xbd, 0x61, 0x8f, 0x41, 0x5c, 0x56, 0x14, 0x8a, 0xb8, 0xac, 0x10, 0x88, 0xb7, 0x29, - 0xb0, 0x82, 0xcc, 0x60, 0xb4, 0xca, 0x0f, 0xaf, 0x6f, 0x97, 0x15, 0xbe, 0xd0, 0x26, 0x9f, 0xc5, - 0x8f, 0xa1, 0x27, 0x4a, 0xb9, 0x12, 0x8f, 0x86, 0x11, 0xf6, 0x11, 0x7d, 0x5c, 0xad, 0xc7, 0x73, - 0x69, 0x12, 0x62, 0x13, 0x82, 0x50, 0x55, 0x55, 0x93, 0x1f, 0x7d, 0x50, 0xec, 0x1a, 0x68, 0x83, - 0xe2, 0x9e, 0xfa, 0xe5, 0xc3, 0x71, 0x81, 0xbc, 0x69, 0x49, 0x7c, 0x62, 0xe8, 0x43, 0x82, 0x8b, - 0x34, 0x2e, 0xef, 0xb3, 0xe5, 0x27, 0x51, 0x1d, 0xd8, 0x04, 0x3a, 0x18, 0x1f, 0xad, 0x03, 0x44, - 0x99, 0x01, 0x1b, 0x2e, 0xd2, 0xec, 0xbc, 0xc7, 0xdf, 0xa2, 0xda, 0x44, 0xa2, 0xb1, 0x39, 0x9f, - 0x4e, 0x92, 0xa5, 0xd7, 0x10, 0x09, 0x73, 0x3b, 0xf2, 0xd4, 0x9b, 0x9b, 0x15, 0x1a, 0x37, 0xc3, - 0x15, 0x2e, 0xc6, 0xa1, 0x92, 0xab, 0xaa, 0x06, 0x0c, 0x75, 0x97, 0x3a, 0x99, 0x4c, 0xa0, 0x4b, - 0xc4, 0xe0, 0xd5, 0xc2, 0x6f, 0xe8, 0x40, 0x04, 0xfd, 0xbd, 0x5b, 0xc4, 0xb0, 0x85, 0xad, 0xd4, - 0xc4, 0xa3, 0xc7, 0x8d, 0xe2, 0x2b, 0xcd, 0x3d, 0x9c, 0x92, 0x64, 0xee, 0xb6, 0x3e, 0x19, 0x03, - 0xf8, 0xdb, 0x3b, 0x1c, 0x9a, 0x6f, 0xef, 0xd4, 0xf3, 0xa0, 0x44, 0x66, 0xe9, 0x69, 0xd7, 0x42, - 0xdc, 0x46, 0x4d, 0xf8, 0xf1, 0x6b, 0x8f, 0x52, 0xf9, 0x2b, 0xce, 0xba, 0xf9, 0xfd, 0x23, 0x39, - 0x37, 0xb0, 0x48, 0xbe, 0xad, 0x24, 0xcd, 0xd0, 0xda, 0x40, 0xaf, 0x86, 0x59, 0x9c, 0x0e, 0xd2, - 0x95, 0x7a, 0xe3, 0x09, 0x4c, 0xf0, 0x70, 0x92, 0x8c, 0x53, 0x72, 0xdb, 0x17, 0x51, 0x87, 0xfb, - 0x42, 0x0b, 0xbe, 0xb1, 0xb2, 0x74, 0x6f, 0xe6, 0x50, 0x90, 0xad, 0x2e, 0xe0, 0x2a, 0x41, 0x18, - 0xea, 0x68, 0x56, 0x22, 0x79, 0xdd, 0x9f, 0xa5, 0x5c, 0xa7, 0x94, 0x20, 0x37, 0x92, 0xca, 0x0d, - 0xc4, 0xa7, 0x3c, 0xca, 0xd0, 0xaa, 0x85, 0xe5, 0x27, 0xe5, 0x3a, 0x5f, 0x61, 0x91, 0xcc, 0x43, - 0x8a, 0x1a, 0x1f, 0x57, 0xb1, 0x4d, 0x2b, 0x19, 0x7d, 0xa7, 0xfd, 0x1c, 0x36, 0xf3, 0x04, 0x76, - 0x73, 0x82, 0xa2, 0x85, 0xed, 0x5c, 0x92, 0x1c, 0xba, 0x63, 0x43, 0xf4, 0xfe, 0x4a, 0xf7, 0x7e, - 0xbd, 0xe3, 0xad, 0x11, 0x61, 0x86, 0x12, 0x62, 0x32, 0x63, 0x62, 0x1c, 0x17, 0x67, 0x62, 0x67, - 0xb3, 0xf8, 0x1a, 0x25, 0x29, 0x2f, 0x7c, 0x69, 0xec, 0x11, 0x4c, 0xb2, 0x55, 0x9f, 0xf0, 0x56, - 0x3a, 0x73, 0x1a, 0x49, 0x64, 0x62, 0x9a, 0xa9, 0xb6, 0x72, 0x49, 0xe7, 0x74, 0x35, 0xea, 0x9d, - 0x01, 0xbf, 0xb6, 0x6e, 0x94, 0x16, 0x2b, 0x47, 0x3f, 0x7c, 0x41, 0x9f, 0xa9, 0xda, 0x45, 0xa0, - 0x79, 0x93, 0x33, 0x7b, 0x53, 0xe5, 0x28, 0xda, 0xce, 0xb5, 0x7b, 0x27, 0xf3, 0xe3, 0x35, 0x94, - 0x39, 0x35, 0x55, 0x11, 0x77, 0x2c, 0x7c, 0x36, 0xaf, 0xf6, 0x90, 0x5e, 0x80, 0x20, 0xaa, 0x85, - 0xf5, 0x70, 0x9d, 0x0c, 0xd1, 0x78, 0xe8, 0x42, 0x4d, 0x22, 0x6d, 0xf2, 0xdf, 0x2c, 0x0e, 0xfb, - 0xc6, 0x89, 0x38, 0xe8, 0xf7, 0x1a, 0x3c, 0x7b, 0x5b, 0x52, 0x15, 0x3c, 0x15, 0x3a, 0xff, 0x22, - 0x0e, 0x42, 0x57, 0xc8, 0x71, 0x73, 0x0f, 0x87, 0xdf, 0x94, 0xbf, 0xd7, 0x06, 0x5d, 0x0c, 0x3d, - 0x3c, 0x54, 0x48, 0x1d, 0x59, 0x25, 0x46, 0x64, 0x95, 0x8a, 0xbf, 0xd6, 0xc6, 0xa6, 0x9d, 0x2e, - 0xb3, 0x24, 0x81, 0xb2, 0xb3, 0x9f, 0xb0, 0x63, 0x56, 0x93, 0x78, 0x3e, 0xbe, 0x5b, 0x64, 0xcb, - 0x50, 0x53, 0x36, 0xd2, 0xb4, 0x84, 0x3f, 0x89, 0xca, 0xb2, 0x52, 0xae, 0x19, 0xcd, 0x50, 0x6d, - 0x1a, 0x87, 0x6d, 0xd8, 0x88, 0x8e, 0xb5, 0x01, 0x0e, 0xab, 0x8e, 0x84, 0x55, 0xec, 0x80, 0x84, - 0xe5, 0x80, 0x5f, 0xbd, 0x03, 0xc5, 0xb4, 0x90, 0xd0, 0x63, 0x98, 0x51, 0x23, 0xfe, 0x95, 0x41, - 0xbe, 0x32, 0xb0, 0x2c, 0x84, 0x2b, 0x42, 0xe0, 0xd7, 0x91, 0x77, 0xf2, 0xf2, 0x4b, 0x6f, 0x4b, - 0x1c, 0xac, 0x96, 0x64, 0xff, 0x02, 0x50, 0xac, 0x67, 0x06, 0x40, 0x86, 0x89, 0xbc, 0x1d, 0x54, - 0x4b, 0xb1, 0x11, 0xf7, 0x4a, 0x20, 0x49, 0x1d, 0xf6, 0x35, 0x96, 0x94, 0x8d, 0x7b, 0x15, 0xb7, - 0xe1, 0xb6, 0x14, 0xed, 0xb8, 0x2d, 0x85, 0x8d, 0xdb, 0xb2, 0x8b, 0xb4, 0x9b, 0x80, 0xaf, 0xca, - 0xca, 0x79, 0x96, 0xf6, 0xbb, 0xc8, 0xb6, 0x0b, 0x76, 0x4c, 0xd1, 0x88, 0x3c, 0x3e, 0x29, 0xe7, - 0x35, 0xf0, 0x98, 0x62, 0x23, 0x78, 0x0c, 0xeb, 0xdb, 0xdf, 0x13, 0x8c, 0x6a, 0x67, 0x0c, 0xaa, - 0xe2, 0xb7, 0x60, 0x50, 0xf5, 0x5a, 0x20, 0x9b, 0x8a, 0x35, 0x90, 0x4d, 0xc5, 0x6f, 0xc0, 0x9f, - 0x2a, 0xb6, 0xc0, 0x9f, 0xba, 0x99, 0x5b, 0x38, 0x53, 0xe2, 0xcf, 0xcf, 0x92, 0x8e, 0xd0, 0xed, - 0x35, 0x3c, 0x54, 0x1b, 0xb6, 0x8f, 0x35, 0x76, 0x09, 0xd8, 0xe7, 0x8b, 0x95, 0x9e, 0x47, 0x71, - 0x45, 0x2f, 0x07, 0x18, 0xf2, 0x25, 0x4b, 0x3a, 0x6d, 0x85, 0x2c, 0xca, 0x2d, 0x68, 0x7c, 0xcd, - 0xc9, 0xec, 0x0d, 0x5f, 0xa1, 0x6f, 0x48, 0xc2, 0x46, 0x91, 0x03, 0xd1, 0xa2, 0x80, 0x35, 0x9d, - 0x15, 0x9f, 0x71, 0xb6, 0x71, 0xd7, 0x04, 0x95, 0x71, 0x4c, 0x8e, 0x09, 0xad, 0x69, 0x6a, 0xeb, - 0xbe, 0x12, 0xb3, 0x20, 0x16, 0x41, 0x5a, 0x9e, 0xc5, 0x3b, 0x56, 0x79, 0x6e, 0x95, 0x6c, 0x02, - 0xf8, 0xa4, 0xe9, 0xb6, 0x08, 0x8f, 0x9f, 0xe7, 0x0f, 0x9a, 0x08, 0xb0, 0x87, 0x13, 0xa7, 0x1d, - 0x9a, 0x73, 0x2d, 0xa8, 0x10, 0xc1, 0xaa, 0xd4, 0x20, 0x39, 0xd1, 0xbf, 0x4d, 0x80, 0x62, 0x6f, - 0x0b, 0xfb, 0xdb, 0x08, 0x6d, 0x49, 0x35, 0xf1, 0x18, 0xd5, 0xa1, 0xd6, 0x04, 0x90, 0xa6, 0x70, - 0x3d, 0x7c, 0x4e, 0xff, 0xe5, 0x98, 0x66, 0xf7, 0x77, 0x57, 0x57, 0x6a, 0xff, 0x11, 0x1d, 0x51, - 0x7b, 0x94, 0x8a, 0x99, 0x9e, 0x83, 0xd4, 0x89, 0x76, 0x07, 0x51, 0x2f, 0x38, 0x07, 0x4d, 0x6c, - 0x48, 0x69, 0x0b, 0x11, 0x12, 0xe7, 0x3a, 0xea, 0xa4, 0xea, 0xb1, 0x09, 0x79, 0xa7, 0xa6, 0x23, - 0xf1, 0x4f, 0x68, 0xf8, 0x44, 0xd1, 0xb1, 0x95, 0x6e, 0xcd, 0x12, 0xee, 0x5e, 0xe5, 0xfc, 0x79, - 0x84, 0x30, 0x26, 0xdd, 0xa2, 0x09, 0xc4, 0x04, 0xd3, 0xd3, 0xab, 0x64, 0xfc, 0x41, 0xd6, 0x7e, - 0x1b, 0xf3, 0x15, 0xdf, 0x5b, 0x1b, 0x00, 0x13, 0x73, 0x6f, 0xca, 0x87, 0xda, 0x0c, 0x84, 0x99, - 0x9f, 0x27, 0x6f, 0x5c, 0x07, 0xe5, 0x24, 0x56, 0x37, 0x1f, 0xa5, 0xe1, 0xea, 0x2a, 0xe0, 0xd4, - 0xc2, 0xfa, 0x68, 0xb6, 0x58, 0x16, 0xb0, 0x42, 0x78, 0x43, 0x45, 0x66, 0xd4, 0x91, 0xcd, 0x21, - 0x9a, 0x77, 0x9f, 0x9c, 0x4a, 0xd2, 0xd3, 0x3c, 0xd1, 0x7c, 0xa6, 0xca, 0xbb, 0x6f, 0x90, 0x1e, - 0x1c, 0xf8, 0x50, 0x27, 0xd1, 0xec, 0x30, 0xc7, 0x97, 0x8f, 0xd0, 0xf0, 0xc8, 0x24, 0x75, 0x60, - 0x17, 0x31, 0x5f, 0xfe, 0x43, 0x59, 0x55, 0xf6, 0x83, 0x92, 0x3f, 0xcc, 0x94, 0x6e, 0x22, 0x65, - 0xeb, 0xbb, 0x43, 0x9a, 0xaf, 0xc9, 0x21, 0xc2, 0x48, 0xf9, 0x83, 0x44, 0xdf, 0x97, 0xe2, 0xcb, - 0x1b, 0xb2, 0xa0, 0x37, 0xe1, 0xfa, 0x70, 0x7b, 0x27, 0xc1, 0xe3, 0x77, 0x89, 0x80, 0xc8, 0x5f, - 0x43, 0x2d, 0x40, 0xd9, 0x73, 0x90, 0xff, 0xce, 0xd8, 0x4f, 0xf5, 0x6d, 0x07, 0xf4, 0x15, 0x12, - 0x71, 0x19, 0xe0, 0x7e, 0xf6, 0xc1, 0x1f, 0xe2, 0x7b, 0x2a, 0xd1, 0x9b, 0xd6, 0x87, 0x90, 0xb7, - 0xd8, 0x07, 0xf3, 0x89, 0x2e, 0x10, 0x2e, 0x39, 0x0d, 0x80, 0xb0, 0xa8, 0x72, 0x7b, 0x0b, 0x4c, - 0xe7, 0xf3, 0x44, 0xb8, 0x28, 0x5a, 0xed, 0x8e, 0x37, 0xbd, 0xd3, 0xb8, 0x5b, 0x1e, 0xf4, 0x83, - 0x5e, 0x80, 0x4f, 0x44, 0xf5, 0xc7, 0xab, 0xdb, 0xa5, 0xfd, 0xd5, 0xfa, 0xf4, 0xa1, 0xbc, 0xe4, - 0x91, 0x8d, 0xc5, 0xb6, 0x2d, 0x8d, 0x89, 0x41, 0x49, 0xad, 0x11, 0xc6, 0xbc, 0x4d, 0xe3, 0xa4, - 0x51, 0x4c, 0x73, 0xab, 0xdd, 0x6d, 0x14, 0x3f, 0xe8, 0xb7, 0x89, 0x6e, 0x7f, 0x69, 0x90, 0x13, - 0x23, 0x58, 0xd2, 0x70, 0x4c, 0x9d, 0x24, 0x3e, 0x2f, 0x04, 0x5a, 0x80, 0x2d, 0x10, 0x62, 0xe4, - 0xe8, 0xf6, 0x2e, 0x6a, 0xaf, 0x2d, 0x21, 0xdd, 0xeb, 0xdb, 0xa5, 0x4a, 0x58, 0xd4, 0x2c, 0xe3, - 0x5d, 0xb7, 0x2d, 0xb9, 0xad, 0xbd, 0xdf, 0xfb, 0x63, 0xa1, 0x7b, 0x90, 0x67, 0xf9, 0x7e, 0xbb, - 0x1c, 0xad, 0x96, 0xde, 0x26, 0xe3, 0x1f, 0x19, 0x1d, 0xb7, 0xca, 0x65, 0x80, 0x6e, 0x43, 0xe2, - 0xa5, 0x55, 0x82, 0x1a, 0xe5, 0xb2, 0xbc, 0x66, 0x48, 0x5a, 0x01, 0xff, 0x92, 0x5b, 0x9f, 0x46, - 0x5d, 0xbc, 0xe4, 0x43, 0xa0, 0x35, 0x38, 0x03, 0x69, 0x7e, 0x60, 0xf4, 0x55, 0x63, 0x69, 0xb2, - 0xfe, 0xc7, 0x16, 0x04, 0xad, 0xd0, 0x24, 0xb7, 0x4f, 0x5c, 0xaa, 0x30, 0xf3, 0x12, 0x8f, 0x72, - 0x6d, 0x8c, 0x05, 0x93, 0xef, 0x4d, 0x7a, 0x65, 0x62, 0x6e, 0x28, 0x59, 0x18, 0x35, 0x1c, 0xe7, - 0xd4, 0x73, 0xfb, 0xc1, 0xbe, 0x5c, 0xf1, 0x90, 0xe9, 0x22, 0x36, 0xad, 0x8d, 0x36, 0xc5, 0xbc, - 0x08, 0xd1, 0x77, 0x0a, 0xfa, 0x11, 0xfe, 0xed, 0x21, 0xf0, 0x8b, 0x6e, 0xff, 0xf0, 0x43, 0xb9, - 0xbc, 0x0c, 0x44, 0x75, 0xc2, 0x5e, 0xb0, 0x0c, 0xd1, 0x2a, 0x99, 0x5e, 0x85, 0x3d, 0x7d, 0x44, - 0x33, 0xbd, 0x26, 0x62, 0x8d, 0xdc, 0x00, 0xd8, 0x80, 0x0b, 0x06, 0x77, 0x0f, 0xa3, 0x40, 0xe8, - 0xf7, 0x72, 0xe7, 0x66, 0x1c, 0xbd, 0xfd, 0x1e, 0x52, 0xf4, 0xca, 0x45, 0x71, 0x2d, 0x8c, 0xff, - 0xc5, 0xfc, 0x76, 0x36, 0x4b, 0x62, 0x82, 0x61, 0x6e, 0xdd, 0xbe, 0x4d, 0xb7, 0xf3, 0x2d, 0x1c, - 0x07, 0x8b, 0x60, 0xab, 0x43, 0x96, 0x6c, 0x23, 0xeb, 0xd3, 0x53, 0x8a, 0xee, 0xdd, 0x2e, 0xd0, - 0xdf, 0x46, 0x98, 0x3f, 0x03, 0x0b, 0xb1, 0x81, 0x1c, 0x81, 0x90, 0xfb, 0x70, 0xa1, 0x9b, 0x2d, - 0xd2, 0x45, 0x19, 0x27, 0x8f, 0x5b, 0x49, 0x9f, 0xaf, 0x13, 0x3f, 0x45, 0x6b, 0x2c, 0x88, 0xaa, - 0x84, 0xde, 0x59, 0x62, 0xd3, 0x29, 0x62, 0x64, 0xe9, 0x5e, 0x51, 0xd8, 0x34, 0xb2, 0x0c, 0xdb, - 0x69, 0xdc, 0x53, 0x49, 0x8d, 0x56, 0x29, 0xab, 0xd7, 0xa8, 0x5a, 0xbb, 0x5a, 0x34, 0xaf, 0x1d, - 0xd3, 0x97, 0x59, 0xcd, 0x50, 0xbf, 0xee, 0x1f, 0x7f, 0x43, 0xfa, 0x76, 0x4f, 0x6a, 0x05, 0x42, - 0x92, 0x34, 0xec, 0x57, 0xc3, 0x0e, 0xde, 0xed, 0x69, 0x0d, 0xd7, 0x81, 0xd2, 0xf7, 0x86, 0x30, - 0x71, 0xa4, 0xc3, 0x57, 0x28, 0xf0, 0xf6, 0xb7, 0x04, 0xdb, 0x4f, 0x62, 0x2e, 0x9b, 0x98, 0x81, - 0x2d, 0x4d, 0x4f, 0x0f, 0x1b, 0x40, 0xae, 0x88, 0x0f, 0x21, 0x7c, 0x0d, 0x69, 0xfd, 0x05, 0xb3, - 0x04, 0x4b, 0x77, 0x51, 0xf9, 0x87, 0xef, 0xa0, 0x15, 0x19, 0x60, 0xbd, 0x0b, 0x96, 0xff, 0xe2, - 0x05, 0xb6, 0x67, 0x51, 0x66, 0x4b, 0xe5, 0xb8, 0xc6, 0x22, 0x7f, 0xb1, 0x32, 0x0a, 0xdd, 0xda, - 0xa2, 0xe9, 0xbe, 0x02, 0x3b, 0xdb, 0xc2, 0x75, 0xb3, 0xb5, 0xf6, 0x5a, 0x37, 0x6e, 0x71, 0x38, - 0x28, 0x41, 0x32, 0xd8, 0xe0, 0xb0, 0x21, 0x82, 0x8e, 0xd2, 0x82, 0xb7, 0x62, 0x79, 0x7c, 0x0f, - 0x29, 0x9d, 0x73, 0xc4, 0xc7, 0x4a, 0x81, 0x06, 0x15, 0x1b, 0x88, 0x3b, 0xdc, 0x81, 0x6d, 0x41, - 0xb7, 0x9c, 0x09, 0x1c, 0xaf, 0xce, 0x84, 0x90, 0x74, 0xd2, 0xb8, 0x28, 0xe8, 0x80, 0xa2, 0xe1, - 0xef, 0xd7, 0xcc, 0x32, 0xac, 0xc7, 0x62, 0x42, 0x93, 0x4c, 0xce, 0xa2, 0xdf, 0x73, 0xd6, 0xaf, - 0x95, 0xfa, 0x02, 0x3d, 0x13, 0x95, 0xf1, 0x68, 0x82, 0x37, 0x95, 0xbb, 0x89, 0x5d, 0xfc, 0xdf, - 0x88, 0xfd, 0x4a, 0x94, 0xa7, 0x24, 0xc7, 0xeb, 0x13, 0xb1, 0x96, 0xed, 0x20, 0x38, 0x14, 0xe3, - 0xed, 0x24, 0xf0, 0xc7, 0x46, 0x1c, 0x47, 0x7d, 0x13, 0x26, 0xe1, 0x1c, 0xad, 0xbf, 0x19, 0xaa, - 0x63, 0xe1, 0x90, 0x3e, 0x20, 0x37, 0x07, 0x54, 0xd3, 0x46, 0x79, 0xdc, 0x85, 0x91, 0x83, 0xaa, - 0x91, 0xdc, 0xe4, 0x75, 0x2c, 0xc7, 0x06, 0x08, 0xc7, 0x8f, 0x2e, 0x84, 0xa3, 0x25, 0x26, 0x39, - 0x9b, 0x17, 0x2d, 0x48, 0x8e, 0x50, 0x0c, 0x3a, 0xbe, 0xe4, 0x6a, 0x66, 0x0b, 0x24, 0x45, 0x09, - 0xe7, 0xe4, 0x9c, 0x88, 0x76, 0x82, 0x7c, 0x2c, 0xea, 0x90, 0x8f, 0x12, 0xf8, 0x51, 0x61, 0x56, - 0x6d, 0xc7, 0x27, 0x20, 0x18, 0x46, 0xf0, 0x7c, 0x86, 0x70, 0x19, 0x06, 0x3a, 0x9d, 0x1a, 0xa8, - 0x7c, 0xd8, 0x85, 0x61, 0x00, 0x6a, 0x3a, 0x52, 0x0c, 0xb0, 0x5b, 0xd1, 0x0c, 0x38, 0x6b, 0x97, - 0x61, 0x4d, 0xee, 0xd0, 0x98, 0x09, 0xd7, 0xd8, 0x80, 0x0b, 0x8b, 0x12, 0xc1, 0xc8, 0xc3, 0xc4, - 0xf9, 0x35, 0x51, 0x6c, 0xb4, 0xac, 0x46, 0xbf, 0x26, 0x4d, 0x15, 0x7a, 0x36, 0x6c, 0x5a, 0x4e, - 0xe7, 0xde, 0xb0, 0x9b, 0xc4, 0x38, 0xc7, 0x63, 0xba, 0x65, 0x86, 0x41, 0x80, 0x57, 0x86, 0x4c, - 0x4c, 0xb1, 0x14, 0xfa, 0x56, 0x62, 0xe8, 0x76, 0x7a, 0x7a, 0x86, 0x4d, 0x4a, 0x5b, 0xf1, 0xbe, - 0xda, 0x8a, 0x71, 0xef, 0xdd, 0x57, 0x7a, 0xc9, 0x6f, 0x9f, 0xbe, 0x50, 0xc0, 0xc8, 0xbb, 0x80, - 0xde, 0xea, 0xe4, 0xfa, 0x6c, 0x0b, 0x6a, 0x78, 0xb6, 0xf4, 0x42, 0xec, 0x01, 0xef, 0xaf, 0x77, - 0x48, 0x2b, 0x06, 0x0a, 0x4a, 0xe7, 0x7e, 0x51, 0xce, 0x3b, 0x74, 0x6b, 0x0f, 0xa5, 0xfe, 0x0d, - 0x96, 0x69, 0xf9, 0x54, 0x43, 0x86, 0x55, 0x3b, 0xcd, 0xf9, 0x69, 0xe1, 0x28, 0x32, 0xf0, 0xe7, - 0xab, 0xc2, 0xa8, 0x32, 0x58, 0xe5, 0xa7, 0xa7, 0xf2, 0xf3, 0x14, 0xb0, 0x86, 0x5e, 0xc8, 0xb3, - 0x63, 0xce, 0x87, 0x7c, 0xec, 0x0d, 0xbf, 0x3b, 0x3f, 0xeb, 0x40, 0xff, 0xdd, 0x8c, 0xd3, 0x2b, - 0xc1, 0x65, 0x09, 0x03, 0x63, 0xbc, 0x8c, 0xc7, 0x2a, 0xc5, 0x38, 0x5f, 0xd4, 0x08, 0x33, 0x28, - 0x31, 0x7c, 0x20, 0x3b, 0x9d, 0x8c, 0x3f, 0x6c, 0x2e, 0xae, 0xcf, 0x8b, 0xeb, 0xa3, 0x69, 0xae, - 0xa8, 0x1a, 0x77, 0xdb, 0xce, 0xcd, 0xd7, 0xa0, 0xc8, 0xe2, 0xf8, 0x28, 0xb3, 0xce, 0xd9, 0xeb, - 0x36, 0xdd, 0xc9, 0xec, 0x52, 0x57, 0xae, 0x22, 0xa5, 0x55, 0x27, 0x6a, 0x16, 0xe8, 0xa1, 0x2b, - 0xae, 0x40, 0x1d, 0xbf, 0xe8, 0x91, 0x02, 0xd5, 0xd7, 0x0a, 0x14, 0xf6, 0x6f, 0x1c, 0xc2, 0x79, - 0xff, 0x2d, 0xbb, 0x5a, 0x3a, 0xef, 0xfa, 0xd5, 0xb0, 0x45, 0x1d, 0xc0, 0xe6, 0xdf, 0xac, 0x11, - 0xa0, 0x87, 0xfd, 0xb9, 0x50, 0x08, 0x24, 0x32, 0xdc, 0x7a, 0xdb, 0x95, 0xb2, 0x4c, 0x63, 0xdd, - 0x39, 0xfc, 0xb3, 0x10, 0x70, 0xbf, 0xbd, 0x44, 0x6a, 0x8a, 0xfd, 0x83, 0xf8, 0x60, 0xff, 0x2a, - 0x4e, 0x6c, 0xdc, 0xe9, 0xf3, 0x2e, 0x85, 0x6f, 0x0d, 0x3b, 0x2d, 0xb0, 0xab, 0xf7, 0xc3, 0xfd, - 0x6d, 0xcd, 0xa1, 0xe7, 0xb6, 0x3d, 0x74, 0xbf, 0x62, 0x92, 0x37, 0x0e, 0x84, 0xfb, 0xf1, 0x52, - 0x55, 0xc9, 0x9b, 0xe4, 0x82, 0x45, 0x68, 0xca, 0xba, 0x13, 0xbf, 0x1b, 0x44, 0x76, 0x55, 0x77, - 0x7b, 0xfd, 0x80, 0x51, 0x81, 0xd5, 0xf2, 0xe4, 0xd2, 0x8c, 0x79, 0xb8, 0x96, 0x3d, 0x21, 0x96, - 0x74, 0x55, 0x16, 0x06, 0x2e, 0x61, 0x4d, 0x1d, 0x34, 0xbd, 0x8d, 0x85, 0x99, 0xfb, 0x38, 0xc9, - 0x4a, 0xc1, 0xf6, 0x6a, 0x7b, 0xc4, 0x0a, 0x70, 0x95, 0x20, 0x6e, 0xb3, 0xc2, 0x4a, 0x32, 0x6b, - 0x73, 0xf7, 0x26, 0x35, 0xd1, 0x6e, 0xcf, 0x57, 0xcc, 0xe1, 0x1c, 0xe7, 0x27, 0xef, 0xe1, 0xea, - 0xef, 0xc3, 0x21, 0x7c, 0x96, 0x4d, 0x6f, 0xf1, 0xae, 0xb5, 0x54, 0xef, 0xc8, 0x08, 0xb5, 0x14, - 0x0e, 0x41, 0x57, 0xe8, 0x62, 0x13, 0xd3, 0x53, 0x2a, 0xf6, 0x34, 0x9a, 0x60, 0xcc, 0x20, 0xb2, - 0x08, 0x22, 0xef, 0xb0, 0xad, 0x6f, 0x0f, 0xa7, 0x71, 0x4a, 0xde, 0x27, 0xf2, 0x62, 0x37, 0x2f, - 0x7e, 0x10, 0x1e, 0x61, 0xcd, 0x0d, 0x01, 0x47, 0xce, 0xda, 0x91, 0x59, 0x5b, 0xec, 0xca, 0x46, - 0x3c, 0x45, 0x58, 0xf4, 0xf1, 0x7b, 0xed, 0xe2, 0x91, 0x19, 0xf3, 0xf0, 0x8b, 0xb6, 0xdb, 0x9f, - 0x6a, 0x36, 0x06, 0x7d, 0x6b, 0xf7, 0xb2, 0xf7, 0xa5, 0xc7, 0xc8, 0x71, 0x77, 0x61, 0x03, 0x73, - 0x0e, 0x82, 0x68, 0xd8, 0xd1, 0xb3, 0x2e, 0x90, 0x2c, 0x8d, 0xfa, 0x64, 0xe2, 0x7d, 0xe1, 0x9a, - 0x7b, 0x34, 0xea, 0x23, 0x1a, 0xdb, 0x14, 0x54, 0xb4, 0xbc, 0x06, 0x6a, 0x3a, 0x54, 0x50, 0x22, - 0xbf, 0x6a, 0x67, 0xd4, 0x52, 0x64, 0x04, 0xc8, 0xf6, 0xbb, 0xf1, 0x08, 0x91, 0x1c, 0xc2, 0x30, - 0x63, 0xb3, 0x4a, 0x98, 0xf3, 0xb6, 0x5f, 0x35, 0x94, 0xc5, 0xbb, 0x76, 0x9f, 0xa5, 0x6e, 0xb3, - 0x78, 0x5b, 0x1b, 0x71, 0x5e, 0xdf, 0x2e, 0xc9, 0x9d, 0xb1, 0x45, 0xda, 0xf7, 0xda, 0xd2, 0xd1, - 0x12, 0xe1, 0x0f, 0x20, 0xdc, 0x41, 0xbf, 0xda, 0xaa, 0x30, 0xd5, 0xc5, 0xcf, 0xa1, 0x8b, 0xd7, - 0xde, 0x32, 0xd9, 0xcb, 0xb8, 0xa5, 0xe6, 0x28, 0x79, 0xc5, 0x1a, 0xfe, 0xf5, 0x8b, 0x17, 0x27, - 0x47, 0x62, 0x19, 0xef, 0x1d, 0x1d, 0xc3, 0xc6, 0x1b, 0xe7, 0xf0, 0xa3, 0xcf, 0x0f, 0xcd, 0x64, - 0xa6, 0xab, 0x0d, 0x03, 0xad, 0xc6, 0xb8, 0x66, 0xba, 0x67, 0x7d, 0x24, 0x9d, 0x2f, 0x9a, 0x6b, - 0xfb, 0x7b, 0x54, 0xc0, 0xb4, 0xa8, 0xaa, 0x82, 0xae, 0x40, 0xaf, 0xb9, 0x02, 0xef, 0xb7, 0x93, - 0xdf, 0x32, 0x0a, 0xae, 0xad, 0xc6, 0x9a, 0x31, 0x58, 0xdf, 0x38, 0x76, 0x19, 0x83, 0x35, 0xd2, - 0x02, 0xa5, 0x39, 0x3b, 0x83, 0x43, 0x5f, 0xdc, 0xb5, 0xdc, 0xc6, 0xc8, 0x45, 0x3b, 0x7f, 0x77, - 0x7b, 0x83, 0x66, 0x7b, 0xe6, 0x90, 0xf8, 0x4b, 0x76, 0xdb, 0x49, 0x63, 0x38, 0x5d, 0x8d, 0xcb, - 0x0e, 0x28, 0x8f, 0xa0, 0x9c, 0x1d, 0x4b, 0x1b, 0x40, 0x81, 0x6a, 0x02, 0x26, 0xef, 0x8c, 0xb5, - 0xe6, 0xb6, 0x27, 0x91, 0x46, 0xfe, 0xbd, 0x2b, 0xbf, 0xba, 0x7d, 0xec, 0xf7, 0x7a, 0x6c, 0x17, - 0x20, 0x7b, 0x83, 0x75, 0x07, 0xc5, 0x6d, 0xd2, 0x3d, 0xb5, 0x24, 0x8b, 0x6d, 0x41, 0x6f, 0x0a, - 0xff, 0xae, 0xc5, 0x9d, 0xef, 0xe1, 0xab, 0xb6, 0xf4, 0x02, 0xc4, 0x43, 0x25, 0xde, 0xd4, 0xb2, - 0x3a, 0x76, 0xbd, 0x59, 0x95, 0x20, 0x0d, 0x2d, 0xdb, 0xa6, 0x70, 0xf0, 0x5b, 0x7f, 0xb6, 0xb1, - 0x6b, 0x83, 0xdc, 0x0c, 0x4e, 0x0c, 0xa5, 0xa6, 0x9d, 0xd9, 0x6a, 0xa5, 0x3c, 0x97, 0xb6, 0x23, - 0x35, 0x56, 0xb7, 0x2c, 0x38, 0x69, 0x2c, 0x99, 0x2c, 0x2b, 0xdb, 0x17, 0x2d, 0x07, 0xa8, 0xa1, - 0x3c, 0x67, 0x2e, 0x5d, 0xa4, 0xf8, 0xc7, 0x2e, 0x8e, 0x9a, 0x3c, 0x22, 0x18, 0x33, 0xfc, 0xc0, - 0x7c, 0x69, 0x30, 0x79, 0x97, 0x4d, 0xd8, 0x47, 0x32, 0xf6, 0x71, 0x53, 0x6c, 0x8a, 0x15, 0xca, - 0x44, 0x96, 0x34, 0xc4, 0xf6, 0x17, 0x2b, 0x2f, 0x6d, 0x72, 0xf6, 0x3b, 0x85, 0xb1, 0x3d, 0xd2, - 0xb8, 0x7d, 0x1f, 0x43, 0xca, 0xf8, 0x10, 0x02, 0xf1, 0x4c, 0x6b, 0x50, 0x6a, 0xea, 0x00, 0x92, - 0x04, 0x1a, 0x19, 0x70, 0xa5, 0x47, 0xe9, 0x31, 0x30, 0x0c, 0x1a, 0x81, 0x90, 0x65, 0x30, 0xd2, - 0x19, 0x23, 0x2c, 0xe8, 0xf8, 0x9a, 0x96, 0x7f, 0xee, 0xe0, 0x67, 0x2e, 0x9d, 0x75, 0xa3, 0x21, - 0x83, 0x76, 0xf8, 0xe1, 0xb2, 0x72, 0xde, 0x36, 0x0a, 0x46, 0x12, 0x7c, 0xdf, 0x88, 0xe5, 0x5e, - 0x0b, 0x80, 0x6a, 0x74, 0x19, 0x2e, 0xf0, 0x01, 0x29, 0xa2, 0xa5, 0x88, 0xa6, 0xad, 0xfc, 0x01, - 0xf7, 0xf1, 0x2b, 0x6b, 0x85, 0xbd, 0x79, 0xf8, 0xdc, 0xb2, 0x0a, 0x38, 0xcf, 0x55, 0xa8, 0xfe, - 0xc9, 0x37, 0xf2, 0x51, 0x1c, 0xac, 0x2f, 0x52, 0x00, 0x13, 0x33, 0x5f, 0x60, 0x2c, 0x96, 0x48, - 0x1c, 0x28, 0x3f, 0x0b, 0xa9, 0x90, 0x53, 0xa2, 0x58, 0x8e, 0xc2, 0x92, 0x04, 0xc7, 0x1e, 0x5c, - 0xba, 0x1b, 0x95, 0x9f, 0x5b, 0xb1, 0x11, 0xa5, 0x33, 0xdd, 0x84, 0xd2, 0x89, 0x97, 0x29, 0xbd, - 0xbd, 0x48, 0x5e, 0x84, 0x27, 0x56, 0x41, 0xd0, 0xc1, 0xec, 0x9e, 0x69, 0x6c, 0x83, 0x50, 0x2e, - 0xd8, 0x27, 0x1b, 0x5a, 0xd3, 0xaa, 0x55, 0xb0, 0xb0, 0xbe, 0xe5, 0xf7, 0x4b, 0x0b, 0x6e, 0xca, - 0x90, 0x98, 0x23, 0xaf, 0x38, 0xbe, 0x5b, 0x65, 0xcd, 0x95, 0x86, 0x65, 0x40, 0x7e, 0x74, 0xd8, - 0x15, 0x78, 0xaf, 0x52, 0x73, 0xe2, 0x29, 0x90, 0xa7, 0x25, 0x85, 0x0e, 0xb9, 0x0b, 0x93, 0xe0, - 0x66, 0x11, 0x8e, 0x03, 0xf4, 0x5b, 0x0f, 0x26, 0xcb, 0x45, 0xd8, 0x58, 0x6f, 0xa2, 0xae, 0xd1, - 0x08, 0xa6, 0xd0, 0x1b, 0x59, 0x55, 0x0d, 0x1c, 0x0c, 0x54, 0x06, 0x42, 0x39, 0xdd, 0x02, 0x84, - 0xf2, 0x6a, 0x33, 0x08, 0x65, 0x90, 0x37, 0xc7, 0xc9, 0x66, 0xa6, 0x1b, 0x96, 0x34, 0xf6, 0x20, - 0xe7, 0x68, 0x1a, 0x88, 0xdf, 0x90, 0x43, 0x74, 0x25, 0x7f, 0x67, 0xb3, 0x28, 0xaf, 0xc4, 0x4f, - 0x18, 0x19, 0xf4, 0x2e, 0x48, 0x50, 0x70, 0xc6, 0xb6, 0xab, 0xf5, 0x92, 0xdf, 0x33, 0x4b, 0x9f, - 0xab, 0xf5, 0x63, 0x68, 0x20, 0x26, 0x82, 0x33, 0x7c, 0x1c, 0xc4, 0x51, 0x18, 0x2e, 0xf2, 0x2e, - 0xbf, 0x76, 0xd1, 0xca, 0xa1, 0x59, 0x53, 0x36, 0xa6, 0x92, 0xd3, 0x02, 0x1f, 0xcc, 0x3d, 0x3d, - 0x25, 0x43, 0x82, 0xf9, 0xf5, 0x65, 0x82, 0x88, 0x82, 0x35, 0xc4, 0xfe, 0xf8, 0x34, 0x15, 0xd1, - 0xc6, 0xc3, 0x94, 0xa2, 0x99, 0xdb, 0x76, 0xf8, 0x4b, 0x47, 0x73, 0xfa, 0x9d, 0x0c, 0x4b, 0xe3, - 0xa7, 0xa7, 0xbd, 0x5a, 0x38, 0x92, 0x19, 0xf9, 0x57, 0x6a, 0x1e, 0x0a, 0xf8, 0x7d, 0xf1, 0xce, - 0xa9, 0x71, 0x5c, 0x25, 0x2d, 0xe3, 0x0a, 0xb1, 0x63, 0x0f, 0xc6, 0x62, 0x6c, 0x68, 0x9c, 0x5a, - 0xbb, 0x05, 0x11, 0x9e, 0x36, 0xb0, 0x1b, 0x0e, 0xe1, 0x68, 0x25, 0xc8, 0xa8, 0x61, 0xcc, 0x51, - 0xed, 0xb4, 0xac, 0xb7, 0x1d, 0xe5, 0x7e, 0x5a, 0x8a, 0x06, 0x58, 0x0c, 0x4b, 0x6a, 0x00, 0xe9, - 0x01, 0x82, 0x90, 0x3d, 0x2a, 0x71, 0x44, 0x51, 0x28, 0xfa, 0x52, 0x35, 0xeb, 0x52, 0x36, 0x2b, - 0x8f, 0xce, 0x9a, 0x18, 0xbe, 0x0c, 0x32, 0x31, 0x8c, 0x88, 0x69, 0x3e, 0x5a, 0x04, 0xea, 0xcf, - 0x2c, 0xff, 0x25, 0xaa, 0x55, 0x78, 0x81, 0x15, 0x5e, 0x56, 0xff, 0x2f, 0xa6, 0x42, 0xc6, 0xa6, - 0x42, 0xc6, 0xa6, 0x42, 0xa6, 0xa7, 0x42, 0x20, 0x78, 0xdc, 0x45, 0x40, 0x99, 0x47, 0x6d, 0xe0, - 0xb4, 0xe8, 0x4f, 0xa3, 0x3d, 0xc0, 0xac, 0x89, 0x92, 0x59, 0xb8, 0x5a, 0x7a, 0xdd, 0x36, 0x3c, - 0x53, 0xa3, 0x26, 0x5d, 0x16, 0x14, 0xd7, 0x39, 0xda, 0xb9, 0x6e, 0x60, 0xc3, 0x5b, 0x80, 0xc2, - 0x6f, 0xae, 0x0e, 0xe0, 0x8b, 0xbc, 0x60, 0x87, 0xdd, 0x79, 0x0f, 0xef, 0xce, 0x55, 0x56, 0x87, - 0x87, 0x41, 0xdb, 0x6e, 0x80, 0x43, 0xaf, 0x07, 0xcb, 0xbe, 0xb5, 0x85, 0x20, 0x87, 0xfc, 0x9a, - 0x2d, 0x04, 0x97, 0xba, 0xd6, 0x35, 0xda, 0xda, 0x42, 0x14, 0x1d, 0xfd, 0x9a, 0xbc, 0x7e, 0xb1, - 0xb3, 0xfa, 0xa5, 0x3d, 0xa7, 0xbf, 0x2c, 0xd6, 0xe4, 0x03, 0x0b, 0x6f, 0xdb, 0xd6, 0x50, 0xcf, - 0x67, 0x9d, 0x40, 0x37, 0xb6, 0x40, 0x37, 0xeb, 0x04, 0xea, 0x1f, 0xaf, 0xcb, 0xa8, 0x7f, 0x6c, - 0xe7, 0xd4, 0x27, 0x55, 0x4a, 0x1a, 0x67, 0xce, 0xd0, 0x6e, 0xe0, 0x66, 0x78, 0xb1, 0xae, 0x86, - 0x85, 0x5d, 0xc3, 0x62, 0xb1, 0x29, 0xb7, 0xf7, 0xf9, 0x9a, 0xdc, 0xca, 0x3c, 0x6c, 0x1b, 0xb1, - 0x35, 0xa9, 0xe2, 0xeb, 0xf3, 0xfb, 0xe5, 0x9a, 0xbc, 0x60, 0xbf, 0xdb, 0xdb, 0x61, 0x83, 0x6d, - 0xc8, 0xff, 0xfb, 0xe5, 0xba, 0x9a, 0x6f, 0xb5, 0x95, 0xda, 0x6f, 0x9c, 0x34, 0x99, 0xb6, 0x7a, - 0xd4, 0xcb, 0xd4, 0xaf, 0x15, 0x3e, 0xf1, 0xf2, 0x4a, 0x0f, 0x96, 0x56, 0x01, 0x3f, 0x43, 0x2e, - 0x1c, 0x42, 0xf1, 0x82, 0xd3, 0x58, 0x1c, 0x98, 0x27, 0x66, 0x31, 0x7b, 0x21, 0x2a, 0x1f, 0x88, - 0xd5, 0xde, 0x9d, 0x75, 0x21, 0xdb, 0x04, 0x8e, 0x58, 0x7d, 0x98, 0x44, 0x6b, 0xd4, 0xb2, 0xf2, - 0x87, 0xbf, 0x6b, 0x61, 0xc4, 0x4b, 0xd8, 0x28, 0x1e, 0x31, 0x40, 0x04, 0x17, 0xdc, 0x60, 0x5f, - 0x81, 0x1b, 0xb8, 0x70, 0x8f, 0xa1, 0xec, 0xa6, 0x7d, 0xcd, 0x13, 0xe7, 0x26, 0xfd, 0xd8, 0x96, - 0xd4, 0x45, 0x07, 0x65, 0xd0, 0x90, 0x0d, 0x0b, 0xc4, 0xec, 0xc1, 0xb4, 0x3a, 0xac, 0x9a, 0xb3, - 0x87, 0xab, 0x78, 0x06, 0xb5, 0x74, 0x7a, 0x4f, 0x23, 0x97, 0xee, 0x54, 0x37, 0xc5, 0x36, 0xd4, - 0x08, 0x62, 0xba, 0x4d, 0x0d, 0xd7, 0x66, 0xb0, 0x5b, 0x3d, 0x21, 0x59, 0x18, 0xbb, 0xd5, 0xc2, - 0x11, 0xe9, 0x0c, 0xc8, 0xda, 0x30, 0xac, 0xe3, 0x7a, 0xf9, 0xee, 0xd0, 0x46, 0x08, 0x92, 0x6e, - 0xd3, 0xc0, 0x2e, 0x1e, 0x1a, 0xf3, 0xb2, 0x00, 0x8d, 0x6a, 0x33, 0x45, 0x03, 0x1a, 0x35, 0x66, - 0xb9, 0x68, 0xce, 0xb2, 0x86, 0x82, 0x54, 0xcb, 0x56, 0x3c, 0x71, 0x85, 0x1e, 0x94, 0xf0, 0x66, - 0x78, 0x64, 0x7b, 0x7a, 0x8a, 0x87, 0x27, 0xbe, 0x3d, 0x6f, 0xaa, 0xca, 0xd5, 0xf6, 0x15, 0x04, - 0x12, 0x01, 0x86, 0xc8, 0xad, 0xf3, 0x84, 0x7a, 0x5f, 0x4c, 0xa7, 0xe9, 0x49, 0x54, 0x84, 0xc7, - 0x3c, 0xe0, 0x18, 0x02, 0xe4, 0xcf, 0x7e, 0x54, 0xb8, 0xf3, 0xc5, 0x12, 0x4b, 0x40, 0x95, 0xa0, - 0x58, 0x0c, 0x7a, 0xcd, 0x95, 0xad, 0xd0, 0xb2, 0xc9, 0x82, 0x0b, 0xb1, 0x43, 0x9f, 0x44, 0x7b, - 0x7b, 0xa5, 0x2c, 0x5a, 0x06, 0x1d, 0x53, 0x90, 0xfc, 0xa3, 0x8f, 0x7f, 0x58, 0xc5, 0x17, 0x4e, - 0xf1, 0x6f, 0xb3, 0xfa, 0x9a, 0x87, 0xf3, 0x3c, 0x76, 0x27, 0x00, 0xed, 0xef, 0xec, 0x88, 0x87, - 0x68, 0x6b, 0xd5, 0x40, 0x3e, 0xcc, 0x55, 0xb7, 0xcd, 0xb0, 0x4e, 0xec, 0xe9, 0x9b, 0xe7, 0x7b, - 0xd4, 0x9e, 0xf8, 0x5f, 0x06, 0xf4, 0xe1, 0x1c, 0x0d, 0x55, 0xb1, 0xe7, 0x9f, 0x46, 0x84, 0xfe, - 0x8e, 0xd9, 0xc1, 0x12, 0x58, 0x05, 0xd2, 0x91, 0x58, 0xd2, 0xaf, 0x94, 0x81, 0x4a, 0xed, 0x1b, - 0xa7, 0xba, 0x5f, 0x13, 0xf3, 0x3b, 0xc5, 0xa7, 0x5c, 0xca, 0x70, 0x00, 0xb2, 0xd1, 0x02, 0x97, - 0xa5, 0x88, 0x01, 0x1b, 0x30, 0xad, 0xe2, 0x6d, 0x36, 0x46, 0xb7, 0x6e, 0x69, 0x15, 0xeb, 0x78, - 0x07, 0xea, 0xce, 0xf8, 0xc0, 0xeb, 0x74, 0xe9, 0xc9, 0xb3, 0xef, 0xad, 0x59, 0xd4, 0xe8, 0xae, - 0x4a, 0xe1, 0x5c, 0x42, 0xdf, 0xe4, 0x67, 0xae, 0xff, 0x9d, 0xb8, 0x6b, 0xd3, 0x8b, 0xb4, 0x0f, - 0xd5, 0x3e, 0x3b, 0xed, 0xa3, 0x38, 0x10, 0xb7, 0xed, 0x0a, 0x0d, 0x34, 0xb4, 0xb3, 0xe1, 0xf1, - 0x8b, 0x9e, 0x0f, 0xf3, 0x79, 0x09, 0x52, 0x4a, 0x4f, 0xe8, 0xb3, 0xd7, 0xa0, 0xf4, 0xc0, 0x94, - 0x9f, 0xc4, 0x1d, 0xbc, 0x8e, 0xcb, 0xe0, 0x2c, 0x10, 0x17, 0xc5, 0x91, 0x44, 0xe5, 0x25, 0xce, - 0xa5, 0x6e, 0xfe, 0x8e, 0xd9, 0x40, 0xc8, 0xbc, 0x20, 0x4b, 0xc6, 0x12, 0xdf, 0x45, 0xdd, 0x72, - 0xe4, 0x69, 0x2f, 0x64, 0xcf, 0xf8, 0x58, 0xfb, 0x07, 0xf9, 0x99, 0x02, 0xb9, 0x5b, 0x99, 0xd3, - 0x58, 0x93, 0x25, 0xc5, 0x2f, 0x47, 0xa0, 0xe4, 0x2a, 0xa3, 0xa1, 0xf1, 0xd8, 0x0b, 0x0a, 0xd1, - 0xbe, 0xf8, 0x2f, 0x36, 0x73, 0x88, 0xbc, 0x08, 0x13, 0x26, 0x0d, 0x39, 0xc6, 0xb0, 0x43, 0x29, - 0x0c, 0x44, 0xfe, 0xb9, 0xa8, 0x7f, 0x9e, 0x5a, 0x9f, 0xa7, 0xf3, 0x4f, 0x35, 0x8f, 0x4b, 0xe9, - 0x39, 0x81, 0x38, 0xcb, 0x04, 0x1a, 0xe4, 0x84, 0x8a, 0xba, 0x13, 0x9e, 0xaf, 0x74, 0x76, 0x68, - 0xe8, 0x1e, 0x16, 0x13, 0xc1, 0x43, 0xf4, 0x71, 0x25, 0x65, 0xb9, 0x8d, 0x73, 0xbd, 0xd1, 0x0e, - 0xca, 0xe5, 0xe3, 0xaa, 0xe0, 0x48, 0x96, 0xa9, 0x5f, 0x89, 0x47, 0xde, 0x62, 0x1c, 0x14, 0x38, - 0xa0, 0xa3, 0x34, 0x30, 0xd8, 0x53, 0xd6, 0x01, 0xc1, 0x64, 0x8a, 0x97, 0x76, 0x16, 0x71, 0x01, - 0xd1, 0x05, 0xbe, 0x7c, 0x39, 0xe8, 0x88, 0x49, 0xd0, 0x21, 0x1b, 0x65, 0xe7, 0x11, 0x1f, 0x50, - 0xb3, 0x7b, 0xe6, 0x0e, 0xf9, 0x93, 0x0b, 0x90, 0x09, 0x36, 0x71, 0x56, 0x9e, 0x3f, 0x3c, 0xec, - 0xef, 0x5c, 0xd4, 0xc5, 0x23, 0xe8, 0x26, 0x0f, 0x12, 0x65, 0x6c, 0x91, 0x76, 0xa6, 0xe2, 0xb9, - 0x3f, 0x56, 0x8f, 0x17, 0x2a, 0x8a, 0x23, 0xe4, 0xad, 0xda, 0x54, 0xfd, 0xad, 0xd5, 0x93, 0x16, - 0x5d, 0x7a, 0x0b, 0x9d, 0x8f, 0xaf, 0x63, 0x18, 0xd8, 0x33, 0x74, 0x53, 0xbb, 0xc9, 0xae, 0x16, - 0xb3, 0x47, 0x9c, 0x96, 0xf4, 0xa0, 0x5a, 0xcc, 0x4d, 0x50, 0x9b, 0xc4, 0xc0, 0x82, 0x7f, 0x72, - 0x9c, 0x78, 0x51, 0x7e, 0x06, 0x63, 0x24, 0x8d, 0xf2, 0x77, 0x03, 0x66, 0x35, 0x91, 0x8e, 0x15, - 0xe6, 0x64, 0xcd, 0x39, 0x20, 0x0b, 0x58, 0x22, 0xe0, 0x68, 0xca, 0x17, 0x80, 0x8b, 0x31, 0x81, - 0xe1, 0xe2, 0xc4, 0x17, 0x53, 0x3e, 0x3f, 0xab, 0xcf, 0x79, 0x44, 0xfe, 0x3c, 0xca, 0x46, 0xe2, - 0xf5, 0xc2, 0x87, 0xfc, 0xec, 0x12, 0x16, 0x6e, 0xeb, 0xb9, 0x03, 0x04, 0x09, 0xa1, 0xea, 0xc1, - 0x59, 0x3d, 0xe8, 0xae, 0x1e, 0x84, 0x3e, 0x88, 0x30, 0x63, 0x4c, 0x01, 0xab, 0x34, 0xcc, 0xdf, - 0x05, 0x30, 0x90, 0x42, 0xaf, 0xad, 0xb5, 0x10, 0x8e, 0x2e, 0x8e, 0x45, 0x1b, 0xa5, 0xf1, 0x7d, - 0xf2, 0x48, 0xeb, 0xd1, 0x95, 0xea, 0xb1, 0x23, 0x0f, 0x76, 0x2b, 0x1c, 0x8a, 0x38, 0xf3, 0x75, - 0x41, 0x38, 0x34, 0x29, 0x14, 0xab, 0xf4, 0x6b, 0x62, 0x7d, 0x83, 0xc6, 0xc1, 0x30, 0xdf, 0x10, - 0x23, 0x29, 0xc0, 0x04, 0x6c, 0x0e, 0x63, 0xf2, 0x0e, 0x5c, 0x6c, 0x85, 0xfc, 0xa6, 0x7c, 0x0b, - 0xad, 0x19, 0xf5, 0x02, 0x8e, 0xb2, 0x20, 0xf1, 0xa6, 0x38, 0xc8, 0x81, 0xf0, 0xf6, 0x53, 0x0b, - 0x26, 0x71, 0x14, 0x2a, 0xa7, 0x7d, 0xfc, 0xa6, 0x06, 0x92, 0x1d, 0x8a, 0x6f, 0x47, 0xf9, 0x28, - 0xda, 0xde, 0x3f, 0xd0, 0x13, 0xa0, 0xbb, 0x64, 0x0d, 0x05, 0xb9, 0x07, 0x4e, 0xbe, 0xfd, 0x5d, - 0xf2, 0x3d, 0x79, 0x39, 0x13, 0x7e, 0x06, 0x68, 0xce, 0x37, 0x2b, 0xe5, 0xda, 0x95, 0xd0, 0xd9, - 0x5d, 0xcd, 0xbe, 0x21, 0x05, 0xb2, 0xf7, 0x56, 0x95, 0x11, 0xee, 0xe5, 0xce, 0x13, 0x80, 0x26, - 0x03, 0xf7, 0x15, 0x5a, 0xf8, 0x06, 0x56, 0x1b, 0x4e, 0xd3, 0xd9, 0xa8, 0x6b, 0xe7, 0x79, 0x85, - 0x96, 0xda, 0xca, 0xb7, 0x47, 0x1c, 0x02, 0x63, 0xd5, 0x7a, 0x98, 0x5f, 0x4d, 0xb4, 0x5e, 0x4c, - 0x90, 0x3f, 0xba, 0xb0, 0x86, 0x4f, 0xeb, 0x98, 0xb3, 0x3b, 0x34, 0xa7, 0xed, 0x3a, 0xb1, 0x87, - 0x69, 0x59, 0x2d, 0x40, 0x11, 0xb3, 0x2c, 0xba, 0x06, 0xe4, 0x6a, 0x85, 0x48, 0x65, 0x51, 0x3c, - 0x60, 0x6f, 0x70, 0xda, 0x80, 0x40, 0xd1, 0x39, 0xae, 0xf4, 0x9b, 0x6e, 0x52, 0x1e, 0x1e, 0x88, - 0xd4, 0x60, 0x80, 0xdc, 0x95, 0x6e, 0x55, 0xe5, 0x37, 0x1c, 0xe3, 0xe7, 0xc4, 0xdd, 0xd0, 0x5d, - 0x5e, 0x4f, 0x2e, 0xca, 0x65, 0xb7, 0x64, 0x30, 0x9f, 0x30, 0x45, 0x60, 0x29, 0x9c, 0x22, 0xb9, - 0x83, 0x68, 0x07, 0xb5, 0xd1, 0xb8, 0x74, 0x07, 0x81, 0xcd, 0xaa, 0x21, 0x6d, 0x43, 0xc6, 0x30, - 0x65, 0x41, 0x87, 0xb6, 0xd2, 0x76, 0x10, 0x1f, 0x87, 0x03, 0xd2, 0x28, 0xf8, 0x7e, 0x60, 0xd6, - 0xcd, 0xa3, 0x9e, 0x81, 0x73, 0xca, 0x5f, 0x49, 0x44, 0x46, 0x6f, 0x09, 0x6b, 0x36, 0x12, 0x91, - 0xad, 0x40, 0x7f, 0x5c, 0xcd, 0x43, 0xd8, 0x96, 0xe1, 0xbf, 0xbb, 0x10, 0x6f, 0x1d, 0xe0, 0xd8, - 0xcc, 0x9f, 0x41, 0xbc, 0xe8, 0xd9, 0x7c, 0x99, 0x07, 0x08, 0x12, 0x77, 0x95, 0xad, 0xe2, 0xa3, - 0x39, 0x8f, 0x76, 0xf2, 0xb5, 0x13, 0xcf, 0xaf, 0xee, 0xa1, 0xcd, 0xe3, 0x2e, 0x05, 0x8e, 0x27, - 0x45, 0x17, 0x12, 0x1c, 0x92, 0x44, 0xfe, 0x29, 0x66, 0x21, 0x84, 0x83, 0xc0, 0xca, 0xb4, 0x65, - 0x2c, 0x20, 0x51, 0xb1, 0xc9, 0xd0, 0xd5, 0xc3, 0xa5, 0xe9, 0xd1, 0xed, 0x26, 0x5f, 0xaf, 0xf3, - 0x16, 0x86, 0x6e, 0x18, 0xd8, 0x14, 0x28, 0x1a, 0x4a, 0x78, 0x19, 0xd8, 0xfc, 0x27, 0xfa, 0xc3, - 0x75, 0x60, 0x93, 0x9f, 0x18, 0xf0, 0x61, 0x31, 0x80, 0x40, 0x9d, 0xe7, 0x45, 0xcc, 0xe3, 0x87, - 0x0b, 0x02, 0x55, 0x62, 0xb8, 0x61, 0xfd, 0x9a, 0xfd, 0xde, 0x19, 0x70, 0x1f, 0x70, 0x44, 0xf2, - 0x5e, 0x1c, 0xa4, 0x62, 0xb3, 0x39, 0x80, 0xbd, 0xb2, 0xcc, 0x2e, 0x64, 0x36, 0x5f, 0x2b, 0x4a, - 0x15, 0x28, 0x64, 0xaa, 0x25, 0x29, 0x4c, 0x58, 0x3a, 0xdb, 0x8c, 0x36, 0x74, 0xe2, 0x7b, 0x92, - 0x0c, 0xc2, 0x12, 0xfb, 0x36, 0x0e, 0xc6, 0x56, 0x48, 0x31, 0x2e, 0xe5, 0xcd, 0x7f, 0x90, 0xd5, - 0x87, 0x29, 0x6f, 0xc6, 0x3f, 0x69, 0x51, 0x12, 0x0b, 0x57, 0xd6, 0x40, 0xba, 0xf2, 0xe0, 0x9f, - 0x74, 0x70, 0x06, 0x47, 0x92, 0xc5, 0x32, 0x3b, 0x7a, 0x25, 0x24, 0x28, 0xee, 0xde, 0x67, 0x3f, - 0x5e, 0x4f, 0xba, 0x30, 0xd2, 0x12, 0x18, 0x69, 0x30, 0xca, 0xd4, 0x58, 0x73, 0x73, 0x4d, 0xe3, - 0x07, 0xf5, 0x42, 0xec, 0x62, 0x31, 0x49, 0xa8, 0xb1, 0x1b, 0x59, 0xe0, 0xbc, 0x16, 0x66, 0xb9, - 0x3f, 0x8c, 0xc7, 0xe3, 0xce, 0x61, 0xff, 0xc5, 0x97, 0x41, 0x07, 0xc9, 0x52, 0xbd, 0x03, 0x98, - 0xd7, 0x07, 0x5e, 0x80, 0xff, 0x5e, 0xcb, 0x7f, 0x27, 0xb0, 0x85, 0xe3, 0x72, 0xb4, 0x46, 0xc2, - 0x71, 0x93, 0x7c, 0x3f, 0xfd, 0x2e, 0xf2, 0xf5, 0x7a, 0xbd, 0xed, 0xe4, 0x63, 0x25, 0xff, 0x59, - 0x37, 0x2c, 0xef, 0xad, 0x4f, 0x71, 0x02, 0xda, 0x89, 0x99, 0x25, 0x30, 0x4c, 0xc4, 0x3b, 0x5f, - 0x7f, 0xd5, 0x87, 0xc3, 0x9e, 0xb8, 0xeb, 0xfb, 0x14, 0x3f, 0x22, 0x3c, 0xfe, 0x57, 0x5f, 0x21, - 0x03, 0x00, 0x61, 0xc5, 0xf1, 0xa5, 0x53, 0x3e, 0x0c, 0x8e, 0x1b, 0x53, 0xe8, 0xcb, 0x09, 0x93, - 0x42, 0x67, 0xc2, 0xc9, 0x38, 0xf8, 0x90, 0x95, 0x6e, 0x59, 0xc6, 0x30, 0xc2, 0xe6, 0xca, 0xd7, - 0x3e, 0xc2, 0x68, 0x0a, 0x05, 0x59, 0x4f, 0x79, 0xef, 0x0f, 0x08, 0x4e, 0xcb, 0x81, 0xf8, 0x60, - 0x2a, 0x48, 0x85, 0x99, 0xac, 0xbd, 0x26, 0xe2, 0x6c, 0x36, 0x1e, 0xf7, 0x7a, 0x9e, 0x01, 0x31, - 0x5c, 0x33, 0xcd, 0x22, 0x81, 0x47, 0x58, 0xfa, 0xa3, 0x1e, 0xde, 0x24, 0xa8, 0x45, 0xe5, 0xd8, - 0x39, 0x9b, 0xaa, 0x65, 0x47, 0x6e, 0x9f, 0x08, 0xfd, 0xa5, 0x07, 0x05, 0x5e, 0x4e, 0x48, 0xeb, - 0x3e, 0x1c, 0xc4, 0xac, 0xf9, 0x03, 0xe7, 0xd9, 0xd2, 0x0f, 0x9d, 0xa0, 0x57, 0xf3, 0x31, 0x6c, - 0x6f, 0x09, 0xb4, 0x47, 0x71, 0x07, 0x1d, 0x09, 0xff, 0xf5, 0x5a, 0x97, 0xec, 0xcf, 0x61, 0x68, - 0x72, 0x7a, 0x03, 0xfa, 0x62, 0xbd, 0x20, 0x73, 0x6b, 0x28, 0xfd, 0xc9, 0x98, 0x39, 0xac, 0x7c, - 0x2e, 0x36, 0xe6, 0x53, 0x78, 0x8d, 0x4b, 0x80, 0x93, 0xcf, 0x4f, 0x1b, 0xf3, 0xb9, 0xf3, 0x1a, - 0xd7, 0x0c, 0x27, 0x9f, 0x3f, 0xd7, 0xf3, 0xe9, 0xae, 0xc4, 0x88, 0x0f, 0x9b, 0x66, 0x46, 0xe5, - 0xa4, 0xc7, 0xc9, 0x6c, 0x8d, 0x52, 0x67, 0x5f, 0x08, 0xca, 0xa8, 0x69, 0x57, 0x90, 0xd7, 0x45, - 0xee, 0x9e, 0x30, 0x30, 0x83, 0x45, 0x72, 0x30, 0x2b, 0x1f, 0x22, 0x82, 0x4b, 0xf8, 0x28, 0x1c, - 0x38, 0x9a, 0x39, 0xa3, 0xdd, 0xb1, 0xb9, 0x8c, 0xe2, 0xc0, 0x0d, 0xbb, 0x46, 0x48, 0x77, 0x27, - 0x6c, 0x12, 0x15, 0x0a, 0x20, 0x5c, 0x7e, 0x72, 0xaa, 0xf8, 0xb3, 0xed, 0x8b, 0xa9, 0x95, 0x81, - 0xa0, 0x59, 0xf3, 0x29, 0x6b, 0x73, 0x24, 0x56, 0x75, 0x16, 0xa5, 0xc8, 0x08, 0xf6, 0xe0, 0x8b, - 0x1d, 0x5b, 0x98, 0x9c, 0x19, 0xab, 0x76, 0x0d, 0x8b, 0x6e, 0x2b, 0x91, 0x2d, 0x1a, 0x76, 0x1d, - 0xa7, 0x4c, 0xd8, 0x6e, 0x7a, 0xa8, 0x93, 0x12, 0xc8, 0x1d, 0xf4, 0xd0, 0xf7, 0x09, 0xac, 0x9a, - 0x5d, 0x44, 0x82, 0xde, 0x38, 0x64, 0x88, 0x91, 0xf5, 0x78, 0x0f, 0x93, 0x72, 0x70, 0xf5, 0x46, - 0x7b, 0x9b, 0x56, 0xa5, 0x7c, 0x75, 0xd7, 0xe7, 0x6a, 0x0a, 0x63, 0xe8, 0x85, 0x42, 0x61, 0x92, - 0x2e, 0x8e, 0x96, 0x61, 0x16, 0x8c, 0xa1, 0x13, 0x52, 0x13, 0x74, 0x4d, 0x41, 0x93, 0x28, 0x31, - 0x41, 0x13, 0x0a, 0xba, 0x87, 0xcd, 0xcd, 0x69, 0x30, 0x2a, 0x44, 0x5d, 0x8b, 0x43, 0x21, 0xe1, - 0x87, 0x0f, 0x97, 0x01, 0xfd, 0xef, 0xb2, 0xaa, 0xe4, 0xb5, 0x31, 0xa2, 0xbe, 0x53, 0xec, 0xe8, - 0x83, 0x68, 0x9c, 0xec, 0xd2, 0xbd, 0x16, 0xb6, 0xec, 0xab, 0xe3, 0x04, 0x7d, 0x7f, 0x9b, 0xad, - 0xfe, 0xd3, 0x69, 0xc9, 0x4d, 0xcf, 0x78, 0x1e, 0x20, 0xec, 0xd6, 0x29, 0xd7, 0xf5, 0x90, 0xbb, - 0xe1, 0x3f, 0x71, 0x75, 0x90, 0x5c, 0x1e, 0xf8, 0xb7, 0xe2, 0x05, 0x79, 0xf6, 0xec, 0x7a, 0x51, - 0xce, 0x6f, 0x27, 0x78, 0xbf, 0xf8, 0xec, 0xbb, 0xc5, 0x72, 0x9a, 0x65, 0xd9, 0xa7, 0x45, 0xfc, - 0x0c, 0x69, 0x60, 0x9e, 0xdd, 0x2f, 0x3e, 0x2d, 0xf0, 0x38, 0xed, 0x22, 0x14, 0x2b, 0x40, 0xa4, - 0x6e, 0x77, 0x3e, 0x3d, 0x88, 0xfa, 0x2f, 0xfd, 0xe1, 0x09, 0xe2, 0x46, 0x76, 0xb1, 0x58, 0x3f, - 0x98, 0x4f, 0x87, 0xc7, 0xea, 0xcf, 0x93, 0x1e, 0x2e, 0xf5, 0xcf, 0x9f, 0x47, 0xd1, 0x7c, 0x4a, - 0x21, 0x07, 0xd1, 0x09, 0x86, 0xf4, 0x5e, 0xb2, 0x10, 0xc8, 0x40, 0x69, 0x37, 0x08, 0xc3, 0xe3, - 0x5b, 0xe7, 0x86, 0x8f, 0xf3, 0x02, 0x7d, 0xe5, 0xe6, 0xd3, 0x2a, 0xe8, 0x20, 0xe8, 0x51, 0xd0, - 0x79, 0xd1, 0xfb, 0x12, 0x89, 0x1d, 0x83, 0x6f, 0xfb, 0x0a, 0xa3, 0x38, 0x9d, 0x2d, 0x2d, 0xac, - 0x52, 0x08, 0xf8, 0x91, 0x4c, 0x8d, 0xc2, 0x12, 0x8a, 0xdf, 0xad, 0x05, 0x80, 0x8e, 0x32, 0x48, - 0xe3, 0xec, 0x0f, 0x14, 0xd7, 0x4c, 0xfb, 0x59, 0x85, 0xbb, 0x51, 0x21, 0x70, 0xe5, 0x6c, 0xb1, - 0xbc, 0xe9, 0xfc, 0x18, 0x4f, 0xb2, 0x4c, 0x1e, 0x1b, 0xbb, 0xa2, 0x7c, 0xd0, 0x52, 0x6b, 0x5c, - 0x29, 0x70, 0x14, 0x8f, 0xbc, 0x67, 0xc2, 0x2c, 0x51, 0x29, 0x51, 0x2f, 0x6c, 0x5c, 0x55, 0xd8, - 0x58, 0x0b, 0x7b, 0x7d, 0x5a, 0x16, 0x42, 0x36, 0x25, 0xfb, 0x85, 0xff, 0x1b, 0xa5, 0x14, 0x05, - 0x1b, 0x21, 0x2f, 0x88, 0xd9, 0x4a, 0xc9, 0x10, 0xb4, 0x64, 0x37, 0x73, 0xb3, 0xa3, 0xb6, 0xd4, - 0xb7, 0xa7, 0x0a, 0xbd, 0x4c, 0x38, 0xe8, 0xac, 0xc4, 0xd5, 0x7c, 0x4f, 0xdc, 0x8f, 0x2a, 0x38, - 0x10, 0xf2, 0xd6, 0xd8, 0xeb, 0x55, 0x97, 0x88, 0x45, 0xf8, 0x17, 0x75, 0x67, 0x24, 0x50, 0x02, - 0xb2, 0x3c, 0xba, 0xb9, 0x0f, 0x58, 0x00, 0xa4, 0xff, 0x3b, 0x1d, 0xdd, 0x59, 0x94, 0x5f, 0xa2, - 0x9b, 0x39, 0x07, 0x00, 0xef, 0x0f, 0x62, 0xe9, 0xfa, 0x13, 0x3b, 0xae, 0x3f, 0xf2, 0x5e, 0xb6, - 0xdd, 0xb5, 0x88, 0x2c, 0x0d, 0xe2, 0xbe, 0xa3, 0x78, 0x0d, 0x8b, 0x0f, 0x47, 0xaf, 0xcd, 0x59, - 0xb8, 0x8d, 0x38, 0x4f, 0x7c, 0x3d, 0x70, 0x84, 0x5f, 0x82, 0x06, 0x87, 0x58, 0x05, 0x08, 0x7c, - 0xd9, 0xf5, 0xee, 0x13, 0x42, 0xc7, 0x7f, 0xf0, 0x24, 0x90, 0x03, 0x2a, 0x30, 0xe2, 0x84, 0xcf, - 0xac, 0x7c, 0xa5, 0x20, 0x70, 0x40, 0xa8, 0xce, 0x3b, 0xf2, 0x32, 0xc7, 0x7f, 0x54, 0x17, 0xf2, - 0x12, 0xe1, 0x4b, 0x2e, 0x3a, 0x07, 0x69, 0xd0, 0xba, 0x5c, 0xd9, 0xa9, 0xac, 0x78, 0xab, 0x2a, - 0xb8, 0xd6, 0xf7, 0x47, 0xa2, 0x12, 0xbd, 0x40, 0x82, 0x55, 0x32, 0x31, 0x8b, 0x9a, 0x98, 0x81, - 0x83, 0xff, 0xba, 0xca, 0x43, 0x9e, 0x71, 0x70, 0xc7, 0x71, 0x1d, 0x91, 0x54, 0xbc, 0x7e, 0x7c, - 0x0c, 0x84, 0xfa, 0xa7, 0xcc, 0x38, 0x71, 0xf0, 0xed, 0xb7, 0xd6, 0xdd, 0x8d, 0x2b, 0x18, 0xd9, - 0x6c, 0xb6, 0xa3, 0xf3, 0x06, 0x51, 0x1e, 0x46, 0x39, 0xa9, 0xc8, 0x07, 0xb1, 0xcd, 0xea, 0xfd, - 0x19, 0x58, 0xb1, 0xcd, 0x84, 0xe0, 0x6b, 0x91, 0x5f, 0x0b, 0x34, 0x4d, 0xf1, 0x06, 0xb7, 0xef, - 0x10, 0xa0, 0xf9, 0xad, 0x56, 0x83, 0x6e, 0x83, 0x3c, 0xd0, 0xb7, 0x63, 0xe4, 0x1a, 0xb8, 0x6a, - 0xad, 0x71, 0xd0, 0x87, 0xf6, 0xa8, 0x02, 0x38, 0xe6, 0x86, 0x88, 0x4d, 0xbc, 0x25, 0x5d, 0x38, - 0x62, 0x7a, 0xff, 0x85, 0xc0, 0xe2, 0x62, 0x01, 0x16, 0xa2, 0xa9, 0x63, 0xd7, 0xb0, 0x19, 0xa3, - 0xab, 0x9e, 0xa0, 0x72, 0xf3, 0x7c, 0x7a, 0xde, 0xb7, 0x2b, 0x6d, 0x31, 0x2c, 0x4b, 0x69, 0xe4, - 0x1d, 0xbf, 0xf6, 0xe4, 0x5d, 0x90, 0x4d, 0xd9, 0x46, 0x28, 0xa1, 0x3c, 0xf0, 0xbf, 0xff, 0x07, - 0x49, 0xd2, 0x42, 0x13, 0x14, 0x63, 0x9c, 0x20, 0x6d, 0xa0, 0x92, 0xad, 0x91, 0xa3, 0x15, 0x31, - 0xc2, 0x08, 0x13, 0x36, 0x8c, 0x9e, 0x8c, 0x71, 0xfb, 0x91, 0x4a, 0x23, 0x0e, 0xa0, 0xe9, 0x5e, - 0xea, 0x2a, 0xae, 0x27, 0xa6, 0xc6, 0x1c, 0xc0, 0x26, 0x2a, 0xd7, 0xb4, 0x0d, 0x2d, 0x2b, 0x8b, - 0xc8, 0xcb, 0x89, 0x44, 0x2e, 0xc2, 0xf7, 0x8b, 0xbd, 0xb0, 0x3f, 0x58, 0x9c, 0x6a, 0x30, 0x95, - 0x85, 0x82, 0xad, 0x4f, 0xa3, 0xe2, 0xc3, 0xe2, 0x32, 0xd8, 0x96, 0x32, 0x0f, 0x4e, 0xf1, 0x7f, - 0xcb, 0xf3, 0x78, 0xf9, 0x6a, 0x8c, 0x08, 0xd5, 0x83, 0xd4, 0x91, 0xde, 0x30, 0xcc, 0xc9, 0x2a, - 0xd8, 0xf1, 0x91, 0x71, 0x4e, 0xf9, 0x8b, 0xc2, 0x30, 0x66, 0x24, 0x69, 0x49, 0x3c, 0x4e, 0x05, - 0xca, 0x74, 0x13, 0xf4, 0x83, 0x5c, 0xb1, 0x62, 0xf2, 0xf1, 0x5c, 0x64, 0xb7, 0x85, 0xdd, 0x84, - 0xea, 0xe4, 0x82, 0x18, 0xfe, 0xdc, 0x43, 0x14, 0x33, 0xc1, 0xb1, 0xf8, 0x06, 0x8f, 0x7a, 0x5d, - 0x3c, 0xef, 0x88, 0x5f, 0x1e, 0x5d, 0x14, 0xe3, 0xc9, 0x03, 0xc6, 0x19, 0x39, 0x2b, 0xa3, 0xe5, - 0x50, 0x50, 0x9c, 0xcb, 0x9c, 0x8f, 0x10, 0x38, 0x43, 0x8c, 0xc4, 0x45, 0x52, 0x12, 0x0d, 0x41, - 0x43, 0x73, 0x8b, 0x0b, 0x67, 0xf2, 0xd9, 0x57, 0x2f, 0xf3, 0x2e, 0xc9, 0x07, 0x7b, 0xf9, 0x66, - 0x2c, 0xa7, 0x40, 0xcc, 0x88, 0xa9, 0x2d, 0xb5, 0x9d, 0xb2, 0xfd, 0xe1, 0x41, 0xb1, 0x86, 0x28, - 0x1a, 0x29, 0x9b, 0xd2, 0x5b, 0x79, 0x52, 0xab, 0x83, 0x5f, 0xef, 0x52, 0xd7, 0x55, 0x67, 0x3c, - 0x32, 0x74, 0x93, 0xb3, 0xa4, 0x0c, 0x77, 0x6e, 0x83, 0xcf, 0xad, 0x25, 0x82, 0x4a, 0x97, 0xda, - 0x71, 0x82, 0xd3, 0x70, 0xf3, 0xea, 0x66, 0xcb, 0x9b, 0x71, 0xf9, 0xdd, 0xd2, 0xa8, 0xd3, 0x01, - 0xf2, 0xf8, 0x19, 0x74, 0x1f, 0x6c, 0x03, 0xfb, 0x0d, 0x72, 0x8c, 0x0f, 0x2b, 0x7c, 0x35, 0x4a, - 0xe9, 0xaf, 0x81, 0x38, 0xe8, 0xa6, 0x3e, 0xa1, 0x73, 0x93, 0x96, 0x4c, 0xe1, 0xd1, 0x87, 0xf4, - 0x12, 0x7d, 0xc5, 0xba, 0xa5, 0x88, 0x27, 0x33, 0xf5, 0x4f, 0x0b, 0x5f, 0xc3, 0x2b, 0x81, 0xba, - 0x98, 0x9c, 0x22, 0xd5, 0x7b, 0x02, 0x43, 0x5f, 0xc4, 0xa2, 0xed, 0x35, 0x16, 0xef, 0x37, 0x0e, - 0xfb, 0x82, 0x95, 0xa8, 0x26, 0x04, 0x43, 0x28, 0xf7, 0x57, 0xa9, 0x05, 0x59, 0x6e, 0x8b, 0x53, - 0x2e, 0x51, 0x1a, 0x86, 0x4f, 0xce, 0x85, 0x62, 0xe0, 0x32, 0xb6, 0x6c, 0xae, 0x5c, 0x2c, 0xa2, - 0x14, 0x8f, 0x3f, 0xcf, 0x40, 0x29, 0x4d, 0xa3, 0x6a, 0x9f, 0x4b, 0x76, 0x40, 0x11, 0x1e, 0xd6, - 0x02, 0x89, 0x28, 0x66, 0xee, 0xd5, 0x99, 0x3c, 0xb6, 0xc9, 0x23, 0x5f, 0x2e, 0xe9, 0x25, 0x1d, - 0xf6, 0x54, 0x68, 0x51, 0xcb, 0x66, 0x5c, 0x34, 0xda, 0x8c, 0x19, 0x1d, 0x67, 0x0c, 0x1d, 0x5f, - 0xda, 0x0c, 0xa7, 0x2a, 0x96, 0x7e, 0xd6, 0x20, 0x34, 0x89, 0x06, 0xa7, 0x6e, 0x13, 0x23, 0x88, - 0x87, 0xd4, 0x9d, 0xaa, 0xb3, 0x51, 0x64, 0x37, 0x95, 0xf1, 0x1c, 0x32, 0xe9, 0x10, 0xb9, 0x54, - 0xdf, 0x6c, 0xa7, 0xfe, 0x48, 0x3d, 0xb2, 0x4a, 0x2f, 0xa3, 0x5c, 0xfe, 0xd0, 0x97, 0x12, 0x81, - 0x19, 0x83, 0x3a, 0x16, 0xa1, 0xfa, 0x42, 0x17, 0xea, 0x00, 0x09, 0xad, 0xe2, 0x1b, 0x1c, 0x17, - 0x1d, 0x16, 0x19, 0x08, 0xa4, 0x94, 0x60, 0x4d, 0x78, 0x0c, 0xc2, 0x98, 0x77, 0xf3, 0x42, 0xe4, - 0x61, 0x2b, 0x23, 0x04, 0xa5, 0x51, 0x0f, 0x36, 0x44, 0x0f, 0xf1, 0x3b, 0x41, 0xf1, 0xde, 0x23, - 0x25, 0xaa, 0x2f, 0xf6, 0xc2, 0x23, 0x55, 0x64, 0x2c, 0xad, 0x29, 0x8c, 0x33, 0x6c, 0xbe, 0xf8, - 0x09, 0x4e, 0x30, 0xa9, 0xaf, 0x5d, 0xfc, 0x53, 0x7e, 0x5d, 0x1b, 0x25, 0x68, 0xaa, 0x4f, 0xea, - 0xb7, 0x96, 0x92, 0x64, 0x4b, 0x24, 0x70, 0xee, 0xb8, 0x05, 0x7a, 0x3e, 0x3d, 0x2d, 0x48, 0x5b, - 0x6f, 0x46, 0x6a, 0x8f, 0x61, 0x04, 0xfc, 0x04, 0x23, 0x3f, 0x6e, 0xa9, 0x81, 0x22, 0x43, 0xdf, - 0x74, 0xd9, 0x52, 0x95, 0xbf, 0xe1, 0x3d, 0x0b, 0xb3, 0xa9, 0xa7, 0xb4, 0x22, 0x1a, 0x9b, 0x7a, - 0xcd, 0x65, 0x67, 0x92, 0xdc, 0x2e, 0xbb, 0x8d, 0x7c, 0x62, 0xf5, 0x2f, 0xdc, 0x8b, 0x46, 0x7c, - 0xad, 0x04, 0x08, 0xc1, 0x7f, 0xbd, 0xaa, 0xf3, 0xd2, 0xa8, 0x71, 0x8b, 0x94, 0xa8, 0xc1, 0xbb, - 0xe8, 0x39, 0xcd, 0xc2, 0x05, 0x49, 0x02, 0xaa, 0xc4, 0x43, 0x4f, 0xf2, 0x37, 0x50, 0xe5, 0x2e, - 0xe8, 0xda, 0x50, 0xb6, 0xfa, 0x80, 0x49, 0x2f, 0x98, 0x0d, 0x56, 0xfa, 0x90, 0x24, 0x91, 0x10, - 0xde, 0x67, 0xb7, 0xd0, 0x4b, 0xc5, 0xc8, 0x0d, 0x40, 0xe2, 0x8e, 0x98, 0xe9, 0x5a, 0xe3, 0xe2, - 0x6c, 0x99, 0x11, 0x02, 0x99, 0xd2, 0xb6, 0xc4, 0x82, 0x81, 0xcc, 0x7c, 0x31, 0xe7, 0xe3, 0x23, - 0x25, 0x85, 0x48, 0xf6, 0xf0, 0xcc, 0x52, 0xfc, 0x0c, 0x07, 0xe7, 0xae, 0x07, 0x69, 0xf5, 0xc5, - 0x36, 0x9c, 0x78, 0x14, 0xdd, 0x21, 0x3f, 0x7f, 0x4c, 0x3f, 0xa9, 0x7d, 0x2c, 0x9f, 0xa2, 0x56, - 0xa7, 0x56, 0x24, 0x58, 0xbd, 0xc6, 0xcb, 0xeb, 0x98, 0x4d, 0x63, 0x5a, 0xf6, 0x65, 0xa0, 0xbd, - 0xe3, 0xea, 0x28, 0x03, 0x3e, 0xd7, 0xd5, 0x73, 0x6d, 0xd0, 0xf7, 0x78, 0x35, 0x4a, 0xe7, 0xef, - 0x02, 0xfe, 0xee, 0x42, 0x63, 0xaa, 0xa6, 0x82, 0xdc, 0xd0, 0x10, 0xfd, 0x77, 0xdd, 0xb0, 0xd7, - 0x6f, 0xbe, 0x7f, 0xf5, 0xae, 0xeb, 0x95, 0xe3, 0xc9, 0x54, 0x68, 0xdb, 0x9e, 0xff, 0x41, 0xf4, - 0xc2, 0xa5, 0x1c, 0x59, 0xef, 0xb3, 0x3c, 0xf8, 0xaf, 0x57, 0x4d, 0x6f, 0x4f, 0xe4, 0xf0, 0xda, - 0xeb, 0xaa, 0xbe, 0xe9, 0xf9, 0x16, 0x80, 0x1a, 0x8d, 0x7d, 0x51, 0x7f, 0x11, 0xe3, 0xab, 0xaf, - 0x9c, 0x76, 0xa8, 0x8b, 0x15, 0x95, 0x87, 0x0f, 0x48, 0xa1, 0x48, 0x37, 0x46, 0xa4, 0x83, 0x17, - 0xc8, 0xe7, 0x75, 0xd0, 0x4d, 0xff, 0x58, 0x3c, 0xbb, 0xff, 0x19, 0xd4, 0xf6, 0xec, 0x87, 0xc5, - 0x43, 0x7c, 0xd5, 0x3d, 0xf6, 0x07, 0xbd, 0x3d, 0x5c, 0x63, 0xbb, 0x42, 0xdc, 0x61, 0x8f, 0x00, - 0x95, 0x7c, 0x1d, 0x70, 0x4a, 0x74, 0xad, 0x18, 0x90, 0x0c, 0x8f, 0xfa, 0xc7, 0xa0, 0xb6, 0x6c, - 0x53, 0x55, 0x38, 0xb4, 0x89, 0x96, 0x81, 0x7c, 0xa0, 0xd6, 0x42, 0xeb, 0x22, 0x0f, 0xa6, 0x0c, - 0xd4, 0xb5, 0xf2, 0xb1, 0xeb, 0x1d, 0x1e, 0x2e, 0xbc, 0x40, 0xa4, 0x3b, 0x44, 0x6c, 0xe2, 0x24, - 0xea, 0x1f, 0x26, 0xca, 0x5c, 0x36, 0x46, 0xc5, 0xeb, 0x53, 0x21, 0x45, 0x00, 0x2d, 0xa2, 0x2d, - 0x8f, 0x99, 0x17, 0x24, 0xfe, 0xb6, 0xed, 0xda, 0x87, 0x8c, 0xe4, 0x8c, 0xe0, 0x9a, 0xb4, 0x61, - 0x1a, 0x5d, 0x35, 0xa0, 0x41, 0x3b, 0x1a, 0xa8, 0x3a, 0xeb, 0xa5, 0x57, 0x53, 0xba, 0x7b, 0xba, - 0xff, 0x79, 0xf8, 0xcd, 0xb7, 0xdf, 0x3c, 0x3d, 0xc1, 0xbf, 0x2f, 0x4e, 0xbe, 0xfd, 0xea, 0xab, - 0xfb, 0x9f, 0x4f, 0xbf, 0x39, 0xee, 0xf9, 0xad, 0x7c, 0xbd, 0x02, 0x05, 0x7c, 0x75, 0xff, 0xb3, - 0x62, 0x93, 0xa5, 0xc5, 0x8a, 0x60, 0x7f, 0x39, 0xe7, 0xe9, 0x80, 0x59, 0x33, 0xe8, 0x55, 0x9b, - 0xec, 0x5a, 0x81, 0xe2, 0x3a, 0x28, 0x5e, 0x65, 0x09, 0x56, 0x1f, 0xeb, 0x27, 0x29, 0xa7, 0x02, - 0x15, 0x36, 0x51, 0x46, 0x6a, 0x5a, 0xd9, 0xac, 0x74, 0x32, 0xa6, 0x40, 0xde, 0xee, 0x42, 0xbb, - 0x3f, 0x37, 0xc9, 0xca, 0xdc, 0x64, 0x25, 0x29, 0x12, 0x68, 0x8c, 0xd5, 0x21, 0xcb, 0x65, 0xb8, - 0x80, 0x02, 0x25, 0x48, 0x32, 0x0a, 0xf8, 0x2e, 0x92, 0xa3, 0xf2, 0xbb, 0xa0, 0xf9, 0x50, 0x9d, - 0x4f, 0x6f, 0xbc, 0x40, 0x46, 0xf1, 0xe5, 0x8f, 0x48, 0xff, 0x0d, 0x0d, 0xd7, 0x3f, 0x7e, 0xd1, - 0xd3, 0x63, 0xfb, 0xe9, 0x09, 0xf9, 0x3b, 0xba, 0x3a, 0x18, 0x5b, 0xfe, 0x9e, 0x7e, 0x53, 0x63, - 0x47, 0x2c, 0x54, 0xfc, 0x81, 0x53, 0x14, 0x0d, 0x73, 0x30, 0x78, 0xc4, 0xab, 0x46, 0x95, 0xe5, - 0x48, 0x16, 0xb5, 0xd7, 0x0f, 0x65, 0x69, 0x50, 0x88, 0x91, 0xdb, 0x88, 0xe0, 0x0c, 0x3e, 0xb5, - 0x95, 0x8a, 0xf1, 0x70, 0x0e, 0xd2, 0x73, 0x6c, 0x70, 0x91, 0xca, 0x02, 0x89, 0x67, 0xad, 0x2e, - 0x46, 0x8d, 0x20, 0x16, 0x93, 0x51, 0xa1, 0x50, 0xfd, 0x0c, 0x01, 0x9a, 0x02, 0xe2, 0x8d, 0xbc, - 0x1e, 0x9e, 0xc7, 0x6f, 0xcb, 0xcc, 0xdb, 0xa1, 0xf7, 0xf4, 0x54, 0x10, 0x8f, 0x7e, 0x95, 0x1c, - 0x68, 0xda, 0x83, 0xdc, 0x9e, 0xe3, 0x3f, 0xe4, 0x56, 0x7c, 0x1f, 0xc1, 0x3c, 0x67, 0xab, 0x48, - 0x0c, 0x8b, 0xe2, 0xeb, 0x38, 0xce, 0xe1, 0xcc, 0x78, 0x74, 0x74, 0xa4, 0x99, 0x54, 0xa4, 0xbe, - 0xa8, 0xd6, 0x7e, 0x4d, 0x15, 0x0d, 0x3b, 0xe2, 0x7c, 0x31, 0x83, 0x23, 0xb7, 0x78, 0x14, 0x02, - 0x07, 0x7a, 0xf2, 0xed, 0x13, 0xbf, 0x0a, 0xdf, 0xe7, 0xd8, 0x38, 0x0b, 0x18, 0xd7, 0xbe, 0xfc, - 0x82, 0x6f, 0xcf, 0x47, 0xb4, 0xca, 0x3f, 0x3d, 0xd9, 0x56, 0x80, 0x38, 0x58, 0x41, 0x28, 0xf9, - 0x5c, 0x04, 0x4c, 0x1a, 0x08, 0x0b, 0x28, 0x95, 0x1f, 0x36, 0xc6, 0xa7, 0x27, 0xf0, 0xda, 0xce, - 0x58, 0xab, 0x46, 0x25, 0x66, 0x54, 0xeb, 0x0a, 0x91, 0x7a, 0x01, 0x8c, 0x72, 0x39, 0xd9, 0x60, - 0xd7, 0xa7, 0xf3, 0x09, 0x2e, 0x14, 0x48, 0xca, 0x42, 0x96, 0x4c, 0x48, 0xef, 0x11, 0x3a, 0x7f, - 0x80, 0xba, 0x08, 0xe4, 0x53, 0x8f, 0x75, 0x93, 0xa1, 0xbf, 0x60, 0x76, 0x0f, 0x99, 0xe1, 0xb4, - 0x6e, 0x8f, 0x58, 0xe2, 0x0e, 0x29, 0xc0, 0xd0, 0x37, 0xc4, 0xa4, 0x2c, 0x33, 0x38, 0x23, 0x05, - 0xb8, 0xbe, 0x6f, 0x88, 0x77, 0x9b, 0x6f, 0x8a, 0x46, 0x05, 0x83, 0x02, 0x68, 0xe2, 0xfd, 0xc7, - 0xe9, 0x33, 0x58, 0x83, 0x17, 0x79, 0x39, 0xec, 0x9c, 0x3e, 0x43, 0xfa, 0x1f, 0xfc, 0x77, 0x5e, - 0xde, 0x24, 0xc3, 0xce, 0xff, 0x02, 0x4d, 0x5f, 0x02, 0x5e, 0x20, 0x7a, 0x01, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd4, 0xbd, 0x59, 0x76, 0xe3, 0xba, + 0xb2, 0x28, 0xf8, 0xef, 0x51, 0x30, 0x99, 0xe7, 0x38, 0xc5, 0x2d, 0x5a, 0x22, 0xd5, 0x59, 0x4d, + 0xca, 0x7e, 0xb2, 0xdc, 0xf7, 0xb6, 0xdc, 0xe7, 0xcd, 0x75, 0x93, 0x92, 0x28, 0x89, 0x36, 0x45, + 0xd2, 0x24, 0xd5, 0xd8, 0x4a, 0xbd, 0x61, 0xd4, 0x5a, 0x35, 0x81, 0xfa, 0xa8, 0x01, 0xd4, 0x00, + 0x6a, 0x28, 0x35, 0x92, 0x8a, 0x00, 0xd8, 0x80, 0x14, 0x25, 0x3b, 0xf7, 0xdd, 0xef, 0xd5, 0xab, + 0x7d, 0x4e, 0x5a, 0x24, 0x9a, 0x00, 0x10, 0x08, 0x04, 0x22, 0x02, 0x81, 0xe0, 0xf7, 0x2f, 0xbb, + 0x17, 0xcd, 0x9b, 0xc7, 0xcb, 0x3d, 0x6e, 0xe0, 0x0e, 0xf5, 0x2d, 0xee, 0x3b, 0xfe, 0x70, 0xba, + 0x62, 0xf4, 0xeb, 0xbc, 0x6a, 0xf0, 0x98, 0xa0, 0x2a, 0x5d, 0xf8, 0x19, 0xaa, 0xae, 0xc2, 0x19, + 0xca, 0x50, 0xad, 0xf3, 0x63, 0x4d, 0x9d, 0x58, 0xa6, 0xed, 0xf2, 0xdc, 0x5a, 0xc7, 0x34, 0x5c, + 0xd5, 0x70, 0xeb, 0xfc, 0x44, 0xeb, 0xba, 0x83, 0x7a, 0x57, 0x1d, 0x6b, 0x1d, 0x75, 0x83, 0xbc, + 0x88, 0x9a, 0xa1, 0xb9, 0x9a, 0xa2, 0x6f, 0x38, 0x1d, 0x45, 0x57, 0xeb, 0xb2, 0x38, 0x84, 0x84, + 0xe1, 0x68, 0xe8, 0xbf, 0xf3, 0x3e, 0xd0, 0xb5, 0xce, 0x40, 0xb1, 0x1d, 0x15, 0x80, 0x8c, 0xdc, + 0xde, 0x46, 0x99, 0x8f, 0x36, 0xe6, 0x0e, 0xd4, 0xa1, 0xba, 0xd1, 0x31, 0x75, 0xd3, 0xe6, 0xb9, + 0xa0, 0xb9, 0xaf, 0x39, 0xf2, 0x1f, 0x03, 0xc3, 0xcf, 0x79, 0x53, 0x1d, 0xde, 0xab, 0xaa, 0x58, + 0x96, 0xae, 0x6e, 0x0c, 0xcd, 0xb6, 0x06, 0x3f, 0x13, 0xb5, 0xbd, 0x01, 0x09, 0x1b, 0x1d, 0xc5, + 0x52, 0xda, 0xba, 0x8a, 0x35, 0x75, 0xcd, 0x78, 0xe1, 0x6c, 0x55, 0xaf, 0xf3, 0xce, 0x00, 0x86, + 0xd3, 0x19, 0xb9, 0x9c, 0x06, 0x70, 0x60, 0x58, 0x03, 0x5b, 0xed, 0xd5, 0xf9, 0xae, 0xe2, 0x2a, + 0x55, 0x6d, 0xa8, 0xf4, 0xd5, 0xec, 0x74, 0x03, 0x73, 0x6a, 0x6d, 0xc5, 0x51, 0x4b, 0x05, 0xb1, + 0xd1, 0x68, 0xec, 0x34, 0x1a, 0x7b, 0x8d, 0x3d, 0xf8, 0x8b, 0xbf, 0x07, 0x8d, 0xe6, 0x01, 0x3e, + 0xed, 0xf7, 0xe1, 0xcf, 0x91, 0x7e, 0x75, 0xf3, 0xd2, 0x39, 0x6f, 0x0e, 0xcc, 0x13, 0x4c, 0xdb, + 0xbd, 0xd5, 0x8f, 0xae, 0xf7, 0x8f, 0xf0, 0xf1, 0x8a, 0x96, 0xee, 0x93, 0xb2, 0x87, 0xd9, 0xcb, + 0xec, 0x23, 0xa6, 0xec, 0xc9, 0xc7, 0xd7, 0x7b, 0xfb, 0xb7, 0x17, 0x47, 0xf2, 0x33, 0x24, 0x65, + 0x2f, 0x27, 0x17, 0xd3, 0xfe, 0xf9, 0x81, 0xda, 0xb8, 0x3d, 0x9b, 0xee, 0x55, 0x0e, 0x4a, 0x9d, + 0xab, 0xe6, 0xc9, 0xee, 0x7d, 0x63, 0x60, 0x35, 0x76, 0x9f, 0x72, 0xbd, 0xf2, 0xe5, 0xd9, 0xf3, + 0x4e, 0x2b, 0x7f, 0x75, 0x2f, 0x95, 0xaf, 0x4e, 0x72, 0xd2, 0x89, 0xf2, 0xd4, 0xcc, 0xf5, 0x7b, + 0xcd, 0xca, 0xa0, 0x69, 0xbc, 0x9a, 0x23, 0xf3, 0xbc, 0xdf, 0xb8, 0xee, 0x3f, 0x6e, 0xbe, 0x9f, + 0x4d, 0x1b, 0x6f, 0xe7, 0xfa, 0x6d, 0xf7, 0xea, 0x50, 0x7f, 0xd0, 0x1a, 0xfa, 0x45, 0xee, 0x6c, + 0xb7, 0xb1, 0x5b, 0xca, 0xef, 0xdd, 0xbd, 0x9e, 0x1f, 0x36, 0x54, 0xa9, 0x41, 0x3a, 0xa2, 0xef, + 0xdf, 0xbc, 0xb4, 0x46, 0x57, 0xc3, 0x66, 0x93, 0xdf, 0x5a, 0xe3, 0xbe, 0xbb, 0x9a, 0xab, 0xab, + 0x5b, 0xf7, 0xa7, 0x7b, 0xbb, 0xdf, 0xb3, 0xf4, 0x99, 0xfb, 0xee, 0x74, 0x6c, 0xcd, 0x72, 0xb7, + 0xd6, 0x7a, 0x23, 0xa3, 0xe3, 0x6a, 0xa6, 0xc1, 0xf5, 0x54, 0xb5, 0xdb, 0x56, 0x3a, 0x2f, 0x29, + 0x61, 0x36, 0x1f, 0x2b, 0x36, 0x07, 0x53, 0x6e, 0x76, 0x46, 0x43, 0xc0, 0x7c, 0xa6, 0xaf, 0xba, + 0x7b, 0xba, 0x8a, 0x8f, 0xce, 0xce, 0xdb, 0x8d, 0xd2, 0x3f, 0x87, 0x39, 0x48, 0xf1, 0x48, 0x3d, + 0xbc, 0xf0, 0x43, 0xfa, 0x29, 0xea, 0x61, 0xd1, 0x8e, 0xad, 0x2a, 0xae, 0xea, 0x95, 0x4e, 0xf1, + 0xb4, 0x15, 0x5e, 0xa8, 0xe9, 0x19, 0xf7, 0xcd, 0xf2, 0x26, 0x4e, 0xeb, 0x28, 0xd8, 0x62, 0xf6, + 0x59, 0x19, 0x2b, 0x5e, 0x01, 0x51, 0xcf, 0x38, 0x76, 0xa7, 0xce, 0x6b, 0xb6, 0x99, 0x79, 0x76, + 0xf0, 0x55, 0xe9, 0x76, 0xf7, 0xc6, 0x00, 0xe3, 0x54, 0x73, 0x60, 0xf6, 0x55, 0x3b, 0xc5, 0xeb, + 0x26, 0xb4, 0x27, 0xaa, 0xf5, 0xad, 0x59, 0xc7, 0xd2, 0x3a, 0x2f, 0x75, 0x43, 0x9d, 0x70, 0x58, + 0xbe, 0x89, 0x04, 0x74, 0x09, 0x29, 0x58, 0xe8, 0xab, 0x45, 0x1e, 0x78, 0x71, 0x46, 0x28, 0xb5, + 0x9a, 0x2b, 0x49, 0xe2, 0x64, 0xa0, 0xaa, 0xfa, 0xa9, 0xd6, 0x1f, 0xb8, 0x86, 0xea, 0x38, 0xd5, + 0x2f, 0x32, 0x4d, 0x69, 0x18, 0x7d, 0x5d, 0xad, 0xe6, 0x36, 0xbd, 0x02, 0xbb, 0x9a, 0xad, 0x12, + 0x4c, 0x54, 0xf9, 0x8e, 0x6e, 0x76, 0x5e, 0x26, 0x9a, 0xa3, 0x42, 0x47, 0x94, 0x37, 0x73, 0xe4, + 0x56, 0x7f, 0xcc, 0x3a, 0xe6, 0xd0, 0x32, 0x0d, 0xe8, 0x50, 0x15, 0xdb, 0x1c, 0x69, 0x99, 0x7b, + 0xac, 0x24, 0x9a, 0x16, 0x56, 0x71, 0xaa, 0xb3, 0xf9, 0xfc, 0xe7, 0x5c, 0x10, 0x49, 0xcf, 0x32, + 0xa6, 0x91, 0xe2, 0x35, 0xc3, 0x82, 0x7a, 0xaa, 0x01, 0x5d, 0x4e, 0x09, 0xd0, 0x67, 0x58, 0x05, + 0xa4, 0xa3, 0x29, 0x59, 0x88, 0x94, 0x23, 0xe4, 0x5f, 0x85, 0x75, 0x62, 0xf4, 0x55, 0xaf, 0xe8, + 0xc8, 0x02, 0xf2, 0x54, 0x2f, 0x5b, 0xba, 0xd6, 0x55, 0x6d, 0x27, 0x05, 0xe5, 0x6b, 0x38, 0x21, + 0xee, 0xc7, 0x58, 0x76, 0x3f, 0xc0, 0xb2, 0x4b, 0xb1, 0x6c, 0x63, 0x63, 0xae, 0x39, 0xea, 0x0c, + 0x08, 0xb2, 0xdd, 0x95, 0xc8, 0x26, 0x85, 0x9d, 0xfa, 0x35, 0xfe, 0xdc, 0x90, 0x3a, 0x30, 0x94, + 0x91, 0x95, 0xfa, 0x46, 0x46, 0xf8, 0x83, 0x36, 0x48, 0x0a, 0xf1, 0x3f, 0xbf, 0x89, 0x33, 0xe8, + 0xac, 0xae, 0xba, 0xd0, 0x59, 0x28, 0x75, 0x04, 0x0b, 0xd7, 0x1e, 0x2b, 0x7a, 0x8a, 0x0c, 0x8b, + 0x47, 0x14, 0x42, 0x9e, 0xca, 0xd7, 0xeb, 0xe1, 0x50, 0x60, 0x24, 0xdd, 0xb7, 0x96, 0x0b, 0xc3, + 0x59, 0x5f, 0x4f, 0x75, 0x74, 0x55, 0xb1, 0x83, 0x5a, 0xae, 0x20, 0x9a, 0xc6, 0x29, 0x74, 0x24, + 0x25, 0x08, 0x73, 0x51, 0x96, 0x24, 0xc4, 0x1c, 0x80, 0xbd, 0xd1, 0x86, 0x2a, 0x4c, 0x0a, 0x85, + 0x3a, 0xc8, 0xc0, 0x60, 0x01, 0xcd, 0xcd, 0x81, 0xa6, 0x77, 0xa1, 0xca, 0x27, 0x0b, 0xea, 0x5e, + 0xc1, 0xb5, 0xef, 0x59, 0x6f, 0x25, 0xc0, 0x92, 0x70, 0xdf, 0x60, 0x69, 0xac, 0xfd, 0xb7, 0x1e, + 0x30, 0x9c, 0x8d, 0x9e, 0xd2, 0x51, 0x67, 0xde, 0xd3, 0x50, 0xd3, 0xdf, 0xaa, 0xf7, 0x47, 0xc0, + 0x26, 0x9c, 0x1a, 0x20, 0xb0, 0x3a, 0xb2, 0xf5, 0x14, 0xe1, 0x20, 0x98, 0x9f, 0x9d, 0x98, 0xbd, + 0x5e, 0xae, 0xe6, 0x73, 0x3a, 0xc2, 0xe8, 0x7c, 0x6e, 0xd2, 0x95, 0x2a, 0x07, 0x67, 0xfd, 0x06, + 0xe1, 0x25, 0x8d, 0x86, 0x71, 0xdb, 0x68, 0x38, 0x74, 0x81, 0xca, 0xf8, 0x77, 0xb8, 0xdf, 0x68, + 0x1c, 0x3c, 0x0d, 0xfb, 0x8d, 0xa5, 0xff, 0xed, 0x0c, 0x1b, 0x8d, 0xfe, 0xc3, 0xe4, 0xba, 0xd9, + 0x78, 0xed, 0x3c, 0x1e, 0x3f, 0x1d, 0x35, 0x6e, 0x1e, 0x9b, 0xc7, 0x8d, 0xf3, 0x49, 0xf3, 0xdd, + 0x6c, 0xec, 0x34, 0x81, 0x29, 0x4d, 0x1e, 0x0f, 0x8f, 0x76, 0x9c, 0xcd, 0xdd, 0xb2, 0x76, 0x31, + 0x79, 0xef, 0x0f, 0xf3, 0x67, 0x0f, 0x67, 0xc6, 0xfb, 0x53, 0xf3, 0xc5, 0x35, 0x9e, 0x3b, 0xed, + 0xf3, 0xf4, 0x95, 0x7e, 0x7c, 0xaa, 0x1c, 0xe7, 0x47, 0xfa, 0xed, 0xa9, 0xa5, 0x5b, 0xf7, 0xa5, + 0xdb, 0xd7, 0x7b, 0xcd, 0x54, 0x5b, 0x15, 0xf9, 0xf8, 0x4d, 0x95, 0x9e, 0x6f, 0xf5, 0xe3, 0xc9, + 0x93, 0x5d, 0x34, 0x6e, 0xba, 0x7b, 0xf9, 0x53, 0xc3, 0xed, 0x5e, 0x8e, 0x1b, 0xfd, 0x74, 0xcf, + 0xcd, 0xf6, 0xda, 0xce, 0xa9, 0x73, 0xa0, 0x9f, 0x9f, 0x8e, 0x06, 0xfa, 0xf0, 0xea, 0xf9, 0x44, + 0xdb, 0x3c, 0xbf, 0xdc, 0xdd, 0x3b, 0xea, 0x4f, 0x6e, 0x86, 0xc0, 0xc5, 0x94, 0xd2, 0xb0, 0xab, + 0xa7, 0x5b, 0x87, 0xb7, 0x3b, 0x83, 0xbd, 0xa3, 0xee, 0xe1, 0xfe, 0x54, 0x79, 0xd9, 0x74, 0x0a, + 0x7b, 0xd9, 0xb7, 0xf7, 0xc1, 0x71, 0xeb, 0xb9, 0xb9, 0xb9, 0x73, 0x75, 0x75, 0xda, 0xdb, 0x9d, + 0x98, 0xd6, 0x7e, 0x56, 0x2b, 0x29, 0xaf, 0xad, 0x3d, 0x7d, 0x6f, 0x7f, 0xf7, 0x61, 0x5a, 0x7e, + 0xba, 0xbb, 0x7f, 0x7e, 0xcb, 0xdb, 0x6f, 0xc3, 0xc2, 0x79, 0x69, 0x5f, 0x7f, 0xba, 0x2a, 0x0c, + 0x46, 0x69, 0xe3, 0xc1, 0x39, 0x38, 0xda, 0x3d, 0xbb, 0xda, 0xcf, 0xf7, 0x1b, 0x53, 0x45, 0x2e, + 0x34, 0xfa, 0x0d, 0xdb, 0xbd, 0x3b, 0x1b, 0xf4, 0x5e, 0xfa, 0xcf, 0xbd, 0xbd, 0x46, 0x5b, 0x6b, + 0x0e, 0x26, 0xa3, 0xd6, 0xd1, 0x64, 0xef, 0xb6, 0x39, 0x1c, 0x75, 0x2f, 0x07, 0xda, 0x55, 0xf7, + 0xa6, 0x64, 0x8f, 0x8f, 0x9e, 0x4f, 0x5b, 0xd7, 0x4f, 0x7b, 0x93, 0xdd, 0xc1, 0x7e, 0x65, 0xe7, + 0xc8, 0x31, 0xcd, 0xa3, 0x62, 0xfe, 0xe6, 0xe8, 0xfa, 0xc8, 0x3c, 0xba, 0xdd, 0x2d, 0xbf, 0xbc, + 0x9d, 0x3f, 0x1d, 0x6d, 0xde, 0x3e, 0x37, 0xde, 0xce, 0xec, 0xeb, 0xac, 0x72, 0x96, 0xdd, 0x9d, + 0x28, 0x17, 0x96, 0xf9, 0xae, 0x0c, 0x2a, 0xa7, 0x07, 0x4d, 0xe7, 0x31, 0xf7, 0x7e, 0x9e, 0x7b, + 0xbc, 0x78, 0x77, 0x72, 0xa7, 0xf9, 0xe9, 0xab, 0x7a, 0x6e, 0x15, 0xde, 0x1f, 0x9e, 0x5f, 0xcb, + 0xed, 0x87, 0x9b, 0xec, 0xe0, 0x6c, 0xe7, 0xf4, 0x39, 0x5b, 0xcc, 0x3f, 0xee, 0x36, 0x8e, 0x5a, + 0xe9, 0xcd, 0x51, 0xa9, 0x54, 0x36, 0xf2, 0x87, 0xe9, 0xc3, 0xeb, 0xcb, 0xee, 0x53, 0x57, 0x1e, + 0xe5, 0x6f, 0xde, 0xbb, 0xd7, 0x4f, 0xdd, 0xbb, 0xb3, 0x9b, 0xde, 0x91, 0x5e, 0x3c, 0xec, 0x9d, + 0xf4, 0xbb, 0x72, 0x7b, 0xb3, 0x35, 0x7e, 0xed, 0x56, 0xee, 0x2b, 0x23, 0xcb, 0xee, 0x5e, 0x96, + 0xaf, 0x6e, 0x2e, 0x86, 0xaa, 0xf2, 0x5e, 0xbc, 0xb9, 0xbc, 0xb8, 0x3e, 0xd6, 0x77, 0x77, 0x9f, + 0x0f, 0xef, 0x9e, 0x0f, 0xa4, 0xc6, 0xf9, 0xd9, 0xd5, 0xa3, 0x33, 0xbc, 0xb6, 0x4f, 0xf4, 0xa1, + 0xf5, 0xf6, 0x7a, 0xb7, 0xf9, 0x32, 0x6a, 0x1f, 0x5d, 0x35, 0x73, 0x07, 0xad, 0xa3, 0x97, 0xfd, + 0x56, 0xfa, 0xcc, 0x50, 0x9b, 0xc7, 0x85, 0xf2, 0xf1, 0xf1, 0xfe, 0x5d, 0x73, 0x70, 0xd5, 0x1b, + 0x4d, 0x4e, 0xce, 0xac, 0xdc, 0xdb, 0x6d, 0xc5, 0x1a, 0xbe, 0xca, 0x77, 0x27, 0xb7, 0xd7, 0x25, + 0x5b, 0x75, 0xa5, 0x03, 0x4b, 0x6a, 0x3d, 0xdf, 0x3d, 0x5e, 0x5f, 0xef, 0xa7, 0x1f, 0x9e, 0x37, + 0xd3, 0x17, 0xda, 0x6d, 0xeb, 0x25, 0x7b, 0x70, 0xf4, 0x3e, 0x92, 0x87, 0xda, 0xe1, 0xd3, 0xfd, + 0x34, 0xdd, 0x2f, 0x3f, 0xca, 0xd7, 0xb7, 0x2f, 0xee, 0xe5, 0xf0, 0xf5, 0x48, 0x73, 0xaf, 0x6f, + 0x1e, 0xee, 0xce, 0xdf, 0xdf, 0x9b, 0xee, 0x68, 0xff, 0xf2, 0xa4, 0x73, 0x28, 0xbd, 0x5f, 0xef, + 0x1c, 0xa4, 0x1f, 0x2b, 0xd9, 0xa6, 0x31, 0xd8, 0x51, 0x72, 0xd2, 0xb8, 0x68, 0x1e, 0xf6, 0x9c, + 0xbd, 0xdb, 0xb3, 0xfe, 0xc3, 0xd9, 0xe5, 0x5e, 0xef, 0xa2, 0xf8, 0xd4, 0x39, 0x9e, 0x4a, 0xfb, + 0x47, 0x97, 0xda, 0xdd, 0xdb, 0xa4, 0xff, 0xdc, 0x2e, 0x9d, 0x1d, 0x8d, 0xee, 0xd2, 0xe6, 0x53, + 0x61, 0x9c, 0x7b, 0x79, 0x29, 0x65, 0xdf, 0x8d, 0xa3, 0xe9, 0xee, 0x89, 0xdd, 0x1f, 0x9d, 0xe5, + 0x72, 0x6f, 0xe9, 0xf6, 0x7d, 0x79, 0x72, 0x7b, 0xf0, 0xaa, 0x6d, 0x2a, 0xa7, 0xe5, 0xde, 0xd5, + 0xf1, 0xfb, 0xc4, 0x68, 0x3e, 0x97, 0xdd, 0x23, 0xcb, 0xea, 0x1e, 0x55, 0xda, 0x8f, 0xbb, 0xad, + 0xbb, 0xe3, 0xbb, 0xe6, 0xd5, 0x91, 0xa1, 0x59, 0xf7, 0xd2, 0x61, 0xdb, 0xed, 0xe8, 0x9d, 0x9b, + 0xcd, 0x71, 0xf3, 0xed, 0x74, 0xf8, 0xa0, 0xb4, 0xee, 0xec, 0xab, 0xd6, 0xf9, 0xd9, 0x5b, 0x5b, + 0x39, 0x3e, 0xde, 0x19, 0xe4, 0x2e, 0xb5, 0x07, 0xfb, 0xa1, 0xdd, 0xef, 0x96, 0x1a, 0xed, 0x57, + 0xb5, 0xd3, 0xdd, 0xbd, 0xb9, 0xa8, 0xec, 0x5d, 0xed, 0x1d, 0xa9, 0xf7, 0xd2, 0xdd, 0xe5, 0xfd, + 0x55, 0xa7, 0x7b, 0x55, 0xd6, 0xdd, 0xcb, 0x8b, 0xbd, 0x51, 0x7a, 0xb3, 0xf4, 0x9a, 0x3b, 0x9a, + 0xde, 0xde, 0x98, 0xc7, 0xea, 0xbd, 0xd5, 0x7b, 0xbe, 0xd2, 0x0e, 0x0f, 0x0f, 0x8b, 0xb0, 0x94, + 0x76, 0x4f, 0x9f, 0xe5, 0xf6, 0x61, 0xff, 0x6a, 0xfa, 0xe0, 0xdc, 0xc2, 0x80, 0x4e, 0x1e, 0xdb, + 0xfd, 0x74, 0x73, 0x0a, 0xff, 0x2b, 0x55, 0xd4, 0xc3, 0xce, 0xc5, 0x18, 0x58, 0xf4, 0xb1, 0xac, + 0x97, 0xda, 0x92, 0xb1, 0xbb, 0xf9, 0x7c, 0x90, 0x6e, 0xb7, 0x1a, 0x72, 0xb7, 0xf9, 0x74, 0x37, + 0x1d, 0x4e, 0xca, 0x4f, 0xc7, 0xd9, 0xa3, 0x47, 0x77, 0x7a, 0xe9, 0xb6, 0x8f, 0xa7, 0xba, 0x75, + 0x95, 0x3d, 0x3d, 0x78, 0x6e, 0xbd, 0x4a, 0xd2, 0xcd, 0xb0, 0x7b, 0x7e, 0xf4, 0x34, 0xb5, 0x0f, + 0x54, 0x3d, 0xfd, 0x96, 0xb6, 0x9f, 0x8e, 0x6d, 0x33, 0x6d, 0xdc, 0x0e, 0xf2, 0x97, 0xf6, 0xf9, + 0xd1, 0xc1, 0xe4, 0xa4, 0x74, 0x6f, 0x3f, 0x9c, 0x9f, 0xdd, 0xe5, 0xa6, 0x37, 0xea, 0xf5, 0xfd, + 0x61, 0xeb, 0xb9, 0xd5, 0x79, 0x71, 0x4f, 0x8f, 0x7b, 0xaa, 0x6c, 0x77, 0x36, 0x1d, 0xeb, 0x6d, + 0xfc, 0x92, 0x6f, 0x97, 0xee, 0x0a, 0x2f, 0x85, 0x72, 0xcb, 0xce, 0x37, 0x86, 0xf2, 0xe5, 0x38, + 0x7b, 0xa5, 0xf5, 0x06, 0xce, 0x51, 0x6e, 0x74, 0x36, 0xee, 0x94, 0x4b, 0xf9, 0x0b, 0xed, 0xea, + 0xea, 0xfa, 0xdc, 0x54, 0xbb, 0xd6, 0x65, 0xef, 0xd0, 0x68, 0x4d, 0x3a, 0xc0, 0x0d, 0xd3, 0xca, + 0xee, 0xde, 0x5e, 0x69, 0xb3, 0x73, 0xf2, 0x7e, 0xd3, 0xdf, 0xd1, 0xaf, 0xfa, 0xcf, 0xd6, 0x73, + 0xff, 0x66, 0xd7, 0x38, 0x76, 0x0f, 0x8c, 0x87, 0xdc, 0x6b, 0x7b, 0xf8, 0x70, 0x5c, 0xda, 0xbf, + 0xd8, 0x39, 0x7d, 0xda, 0x9c, 0x38, 0x76, 0xfa, 0xf8, 0xe9, 0xfd, 0xd1, 0x68, 0x3f, 0x77, 0xdb, + 0x2f, 0xcd, 0xd1, 0x5e, 0xef, 0x56, 0x3a, 0x1c, 0xeb, 0x93, 0xd7, 0xb6, 0x7b, 0xdb, 0x3f, 0xde, + 0x7c, 0xbf, 0x7e, 0xd8, 0x3f, 0x3f, 0x76, 0xc6, 0xad, 0xa9, 0x3e, 0x79, 0xcf, 0xdd, 0x3f, 0xba, + 0x4a, 0x61, 0xfa, 0x6c, 0x6b, 0xd9, 0x9e, 0x33, 0xd2, 0x0d, 0x63, 0xff, 0xee, 0xf2, 0xcd, 0x34, + 0xac, 0x4b, 0xe9, 0xfa, 0xb4, 0x68, 0xde, 0x9d, 0x9f, 0xbc, 0xbc, 0xf4, 0xf6, 0xf4, 0x83, 0x42, + 0xc7, 0xb9, 0xd9, 0x3d, 0x6f, 0x38, 0xfd, 0xf7, 0x66, 0xbe, 0x7c, 0xb0, 0xd9, 0x6f, 0x9d, 0xdc, + 0xf5, 0x5b, 0x4f, 0x9b, 0xc3, 0x6c, 0x67, 0x6f, 0x7c, 0xd2, 0x38, 0x1d, 0x4e, 0x4f, 0xde, 0xb3, + 0xd9, 0xd1, 0xe6, 0xa0, 0xa4, 0xf6, 0x0f, 0xf7, 0x37, 0xcf, 0xec, 0xc3, 0xc2, 0xf3, 0xb1, 0x95, + 0x7d, 0x9a, 0x16, 0x5e, 0xf3, 0x39, 0xa5, 0x7c, 0xb3, 0x29, 0x4f, 0x8d, 0xc3, 0xbb, 0xeb, 0xe6, + 0x81, 0xde, 0xdb, 0x7f, 0x3a, 0x77, 0xdd, 0x6e, 0x6e, 0xbf, 0x73, 0xab, 0x28, 0x6f, 0x25, 0xb5, + 0x72, 0xf9, 0x32, 0x18, 0x75, 0xde, 0xae, 0x25, 0xf3, 0x72, 0x24, 0xbf, 0xcb, 0xef, 0xd9, 0xdd, + 0x9d, 0x74, 0x79, 0xa2, 0x4d, 0x1b, 0xfb, 0xdd, 0xb3, 0x5b, 0xb9, 0x6f, 0x0c, 0x77, 0x0a, 0xd3, + 0xc6, 0xa4, 0x54, 0xb6, 0x26, 0x87, 0x9d, 0xfb, 0x67, 0x7d, 0xdf, 0xde, 0x31, 0x1e, 0xa6, 0xa7, + 0xcf, 0xcf, 0xa5, 0xfc, 0xed, 0x41, 0x7f, 0x7c, 0x7e, 0x70, 0x77, 0xd0, 0x38, 0xde, 0x7f, 0x9f, + 0xee, 0x4f, 0xd2, 0xf7, 0xe6, 0xd0, 0xd8, 0x3c, 0x6b, 0x68, 0xed, 0xbb, 0xf6, 0xa8, 0xa4, 0xab, + 0x87, 0xd7, 0x3b, 0x45, 0xa7, 0x23, 0x4b, 0xbd, 0x53, 0xb7, 0x6d, 0x77, 0xed, 0xec, 0xf1, 0xeb, + 0x5d, 0xe9, 0xd1, 0x4e, 0x9b, 0xe3, 0xc9, 0xbe, 0x7b, 0x7d, 0xb8, 0xb7, 0x79, 0x56, 0x78, 0x3f, + 0xa8, 0x48, 0xaf, 0xe7, 0x3b, 0xa5, 0xc7, 0xeb, 0x3d, 0xd3, 0x2c, 0xca, 0x2f, 0xfb, 0xc7, 0x4a, + 0xfb, 0x35, 0x7f, 0xae, 0x1e, 0xde, 0x9d, 0x74, 0xd5, 0x5e, 0x76, 0xe0, 0x9c, 0xed, 0xef, 0xb7, + 0x2c, 0xb7, 0x38, 0x2c, 0x3f, 0x0c, 0x8f, 0x5f, 0x77, 0x77, 0x1b, 0xc6, 0xb5, 0xd4, 0x29, 0xc8, + 0xe5, 0xe1, 0x74, 0x38, 0xb5, 0xaf, 0xde, 0xaf, 0x46, 0x6f, 0x97, 0x86, 0x63, 0x5d, 0x4f, 0x7a, + 0x8d, 0xc7, 0x17, 0xcb, 0x1d, 0xbc, 0xdb, 0x80, 0x96, 0x1b, 0x79, 0x7a, 0xde, 0xea, 0x15, 0xee, + 0xdd, 0x9d, 0xb3, 0xb3, 0xca, 0xee, 0xd5, 0x8d, 0x5c, 0x19, 0x9d, 0xa6, 0xfb, 0xed, 0xc2, 0x66, + 0x7f, 0xff, 0xf4, 0x32, 0xdf, 0xb9, 0x91, 0xca, 0xfb, 0xe5, 0xa3, 0x42, 0xf7, 0x69, 0x7a, 0xac, + 0x17, 0xe4, 0x03, 0x67, 0x5a, 0xb9, 0x3f, 0x7c, 0x3f, 0xdd, 0xb9, 0x38, 0x7c, 0xbf, 0x7f, 0xbe, + 0x6e, 0x55, 0xce, 0x4f, 0x9b, 0x17, 0xb7, 0x3b, 0xcd, 0xfd, 0xab, 0xf4, 0xe8, 0x60, 0xb0, 0x93, + 0xbd, 0xdb, 0x7c, 0x7a, 0xbf, 0x9d, 0x9c, 0xec, 0xb5, 0x6e, 0x86, 0xbb, 0xb6, 0x76, 0x9c, 0xbe, + 0x45, 0xda, 0xcf, 0xb6, 0xf7, 0x1f, 0xf6, 0xcf, 0x4e, 0x4f, 0x9d, 0xe7, 0xbe, 0xd6, 0x70, 0x0b, + 0x96, 0xb5, 0x39, 0xd2, 0xad, 0x69, 0x3b, 0xe7, 0xbe, 0xef, 0x95, 0x8f, 0xca, 0xd3, 0xc1, 0xdb, + 0xe1, 0xc5, 0xee, 0xce, 0x49, 0xbe, 0x75, 0xd0, 0x2f, 0x5d, 0x5d, 0xca, 0xb9, 0x1d, 0xed, 0x32, + 0xff, 0x78, 0x36, 0xc9, 0xd9, 0xbb, 0xfb, 0xee, 0xfd, 0xed, 0xee, 0xc3, 0x69, 0x5a, 0x75, 0x8c, + 0x71, 0xfe, 0xb0, 0x72, 0x35, 0x7d, 0xed, 0x0d, 0xdb, 0xbb, 0x46, 0xfb, 0xec, 0xf4, 0xf9, 0xe0, + 0x76, 0xdf, 0x7a, 0x7d, 0x7d, 0x6a, 0x1b, 0xf7, 0xad, 0xbe, 0xa4, 0x0f, 0xee, 0xc7, 0x95, 0xc9, + 0x6d, 0xbe, 0xf8, 0x7a, 0x73, 0xf8, 0x7a, 0x59, 0x79, 0x7f, 0xbd, 0xb5, 0x4f, 0x37, 0x5f, 0x5e, + 0x4f, 0x9e, 0xcb, 0x8f, 0xcf, 0x4f, 0xef, 0x7d, 0x49, 0xb6, 0xda, 0x95, 0xf4, 0xdb, 0x55, 0xd9, + 0x79, 0x78, 0xb2, 0x1e, 0xa7, 0x27, 0x07, 0xda, 0xfe, 0xf1, 0xcd, 0xb9, 0x73, 0x34, 0x99, 0x58, + 0x6f, 0xd7, 0x85, 0x42, 0x7f, 0xef, 0xc2, 0xb8, 0xcb, 0xa6, 0x55, 0x20, 0xa4, 0xee, 0xe1, 0x6e, + 0x36, 0xa7, 0x5f, 0xe5, 0x47, 0xad, 0xe2, 0x9b, 0xfc, 0xfa, 0x7e, 0xf4, 0xee, 0x3e, 0xdc, 0x9e, + 0x5f, 0xee, 0x95, 0xcc, 0xee, 0xe3, 0xb1, 0x74, 0xf9, 0x7a, 0xab, 0xdd, 0x1f, 0xbb, 0xfd, 0x93, + 0x83, 0x93, 0xb3, 0xa3, 0xd3, 0xc7, 0x92, 0xd4, 0x9d, 0xaa, 0x8f, 0x6f, 0x46, 0xbb, 0x9d, 0x76, + 0xf6, 0x4f, 0x4e, 0x5e, 0xcf, 0x0d, 0xe9, 0xfe, 0x3d, 0x67, 0x9f, 0xba, 0x67, 0xed, 0x9d, 0xab, + 0xfb, 0x4b, 0xe3, 0xd1, 0x1d, 0x1e, 0x2b, 0x85, 0xfb, 0xd7, 0xfd, 0x6b, 0xb3, 0x9d, 0xad, 0x0c, + 0x87, 0xa3, 0xb7, 0xce, 0xd5, 0xdd, 0x78, 0x53, 0xeb, 0x35, 0xcf, 0xc7, 0x0f, 0xb6, 0x3e, 0x78, + 0xef, 0xef, 0x9e, 0xee, 0x8e, 0x41, 0x08, 0x4f, 0x97, 0x0f, 0x8b, 0xd3, 0xe7, 0x93, 0x4a, 0xa1, + 0xdc, 0xd9, 0x55, 0xdd, 0xf4, 0xbe, 0xf2, 0xd0, 0x6b, 0xa5, 0x4f, 0x5f, 0xcc, 0xec, 0xbd, 0x9b, + 0x1e, 0xb7, 0x3a, 0xaf, 0x8a, 0xfd, 0x5a, 0x7a, 0x79, 0xba, 0x69, 0xbf, 0x14, 0xce, 0x95, 0x93, + 0x57, 0xeb, 0xa2, 0xfd, 0xb2, 0xb7, 0x67, 0x39, 0x4a, 0xa7, 0x72, 0x2a, 0xdb, 0xd7, 0xe7, 0x0f, + 0xc7, 0xfd, 0xcb, 0xb6, 0x7d, 0xff, 0xb6, 0xdb, 0x7d, 0x7c, 0x56, 0x4b, 0xee, 0xce, 0x55, 0xe3, + 0xdd, 0x7d, 0x69, 0x3f, 0x36, 0xa5, 0xc9, 0xae, 0x5a, 0xb8, 0x35, 0xce, 0x35, 0x6b, 0x68, 0x3c, + 0x81, 0xb4, 0x32, 0xca, 0x8e, 0x9e, 0x7b, 0xa5, 0x93, 0xde, 0xe6, 0x58, 0x95, 0xe5, 0xdc, 0xe1, + 0xa8, 0x57, 0xc9, 0xed, 0x8d, 0xb3, 0x9b, 0xaa, 0xb1, 0x93, 0x4d, 0x1b, 0x97, 0x9b, 0x56, 0x1b, + 0xc4, 0xcc, 0xab, 0xe3, 0xa7, 0xb6, 0x26, 0x3d, 0x37, 0x5b, 0x96, 0x79, 0x5e, 0x81, 0x81, 0xdf, + 0xbc, 0x3c, 0x6f, 0x1e, 0x9f, 0x4d, 0xac, 0xf6, 0x7d, 0xdf, 0xb4, 0x1a, 0xed, 0x81, 0xdb, 0xbe, + 0xb8, 0x7f, 0x79, 0x73, 0x1b, 0xfb, 0xf9, 0x93, 0x74, 0xf6, 0xd5, 0x94, 0x5a, 0x8d, 0xd6, 0xf9, + 0x7d, 0xee, 0x20, 0xd7, 0x3e, 0xed, 0x19, 0xce, 0xc0, 0xda, 0x29, 0x28, 0x95, 0xee, 0xf0, 0x7d, + 0x33, 0x7b, 0x38, 0xcd, 0x66, 0xbb, 0x9d, 0xfc, 0xc5, 0xc3, 0xf9, 0x53, 0x01, 0x68, 0xf5, 0xed, + 0xe1, 0xf6, 0x2e, 0xd7, 0x7d, 0xbc, 0x76, 0x76, 0x2b, 0x9b, 0xaf, 0x27, 0xa7, 0x9b, 0x95, 0x57, + 0xe5, 0x7d, 0x04, 0x43, 0x3b, 0x92, 0xc7, 0x97, 0x0f, 0x37, 0x9b, 0xf9, 0xcd, 0x62, 0xfb, 0xbe, + 0x75, 0x60, 0x76, 0x76, 0xcc, 0xde, 0x6e, 0x4e, 0x3d, 0xba, 0x7e, 0x3f, 0x96, 0x3a, 0x67, 0x4d, + 0x09, 0xa4, 0xb5, 0xc9, 0x95, 0xd4, 0xef, 0x8d, 0x47, 0xad, 0xee, 0xb8, 0x2b, 0x17, 0x7a, 0xf2, + 0x08, 0xa8, 0xfe, 0xf4, 0x72, 0x2f, 0x7f, 0x7c, 0x7c, 0x78, 0x5a, 0x1a, 0x35, 0xbb, 0x59, 0xa3, + 0x68, 0x94, 0xbb, 0xf9, 0xe2, 0xed, 0xc5, 0xc9, 0xa5, 0x51, 0x32, 0x06, 0x36, 0x6c, 0x90, 0xf6, + 0x5d, 0x5e, 0xe9, 0xe6, 0x8d, 0xf7, 0x9c, 0x76, 0xa3, 0x9d, 0x9f, 0x16, 0xe4, 0xc2, 0x9e, 0xa1, + 0xf6, 0x4e, 0xb3, 0xc7, 0x07, 0xa7, 0xfa, 0xfd, 0x93, 0xfb, 0x74, 0xaf, 0xbc, 0x9a, 0x7b, 0x83, + 0xc2, 0xb4, 0xf5, 0x3c, 0x76, 0x0e, 0xda, 0xd9, 0xd2, 0xb0, 0x62, 0x2b, 0xfb, 0xba, 0x73, 0x3a, + 0x2c, 0x8c, 0x0e, 0x5f, 0xae, 0xee, 0xf5, 0xf1, 0xe6, 0x4d, 0x76, 0xa2, 0x3e, 0xbd, 0x3f, 0x1f, + 0x1e, 0xaa, 0x9b, 0xd3, 0x27, 0xed, 0xf6, 0xdd, 0x3a, 0x2e, 0xde, 0x37, 0xee, 0x77, 0x4e, 0x77, + 0xcf, 0x27, 0xd7, 0x27, 0xd3, 0xc9, 0xf5, 0xa3, 0xb1, 0x6f, 0x3e, 0x1c, 0x4c, 0x3b, 0xca, 0xc9, + 0xf4, 0xbc, 0xb4, 0x7b, 0x5d, 0xde, 0x39, 0x37, 0x72, 0x66, 0xe5, 0xfc, 0x15, 0x66, 0xd8, 0x1d, + 0xdb, 0x4a, 0xf1, 0xc6, 0x38, 0x7a, 0x7e, 0x38, 0xdb, 0xd1, 0x87, 0x47, 0xfb, 0x4f, 0xf9, 0xb7, + 0xcb, 0xc7, 0x87, 0xfc, 0x99, 0x5b, 0x19, 0x17, 0x87, 0xc3, 0xc3, 0xd1, 0xe4, 0x71, 0x3c, 0x9e, + 0x5e, 0x8e, 0x55, 0xfb, 0xb4, 0xa2, 0xb6, 0xc6, 0xce, 0xfb, 0xc3, 0xf9, 0xf3, 0xed, 0x83, 0xfd, + 0xd2, 0x7e, 0xed, 0x1c, 0x5c, 0xdc, 0xdd, 0xe7, 0xda, 0x7b, 0xed, 0xdd, 0x83, 0x13, 0x2d, 0x7f, + 0x76, 0x7a, 0x77, 0x73, 0xff, 0xfe, 0x7e, 0x7f, 0xb8, 0x5f, 0x2c, 0xec, 0x8c, 0xb2, 0x39, 0xbb, + 0x21, 0xbf, 0xbe, 0x98, 0x25, 0xbd, 0xd2, 0xdb, 0xef, 0xdf, 0xb5, 0x77, 0x46, 0x76, 0xef, 0x6e, + 0xe7, 0x7e, 0x7f, 0x5f, 0xbf, 0xbb, 0x97, 0x47, 0xfd, 0xe9, 0xc5, 0xa4, 0xe3, 0xa4, 0xcb, 0xf7, + 0xd9, 0x2c, 0xf0, 0xa7, 0xa7, 0x63, 0x4d, 0x3d, 0xd5, 0x2b, 0xf7, 0x0f, 0x8d, 0xb2, 0x7a, 0x70, + 0x5a, 0xec, 0xd8, 0x3b, 0x9b, 0xbd, 0xc1, 0xc5, 0xd9, 0xdb, 0x54, 0x2f, 0xb7, 0x9f, 0xaf, 0xee, + 0x0f, 0x9e, 0x77, 0xe4, 0xf6, 0x7d, 0xd6, 0x7c, 0x29, 0xdd, 0x76, 0x5e, 0x55, 0xc3, 0xb1, 0x37, + 0xf7, 0xcb, 0x87, 0x9b, 0x23, 0xd7, 0x19, 0x76, 0x5f, 0xcd, 0xc3, 0xe1, 0x7b, 0xa5, 0x62, 0x8f, + 0xdf, 0xd4, 0xbd, 0xec, 0xe5, 0x3b, 0x08, 0x08, 0x85, 0xe1, 0xf8, 0xee, 0xe1, 0xf4, 0xf9, 0xed, + 0xb1, 0x3c, 0x2e, 0x3f, 0x17, 0x1f, 0x06, 0x4f, 0xea, 0x61, 0x5e, 0xb9, 0x7c, 0xd8, 0x2c, 0x76, + 0x2d, 0xed, 0xa2, 0xa8, 0x9e, 0x67, 0x2f, 0xde, 0x27, 0x9d, 0x83, 0xcd, 0xf7, 0x97, 0x9e, 0xee, + 0x66, 0x9d, 0x6e, 0x51, 0xdd, 0x7c, 0xec, 0xbc, 0xb6, 0x2f, 0xcc, 0x49, 0xef, 0xba, 0x9f, 0xcb, + 0x5d, 0x17, 0x8b, 0xe5, 0xa2, 0xe2, 0xe6, 0xc6, 0x0f, 0x0f, 0xe5, 0xcd, 0x7b, 0xf9, 0x51, 0xea, + 0x5f, 0x49, 0x9b, 0x95, 0x42, 0x65, 0x53, 0x7d, 0xbc, 0x91, 0xf7, 0x5e, 0xde, 0xcc, 0xbd, 0xd7, + 0xb3, 0x47, 0x90, 0x01, 0x0f, 0xbb, 0xe5, 0xab, 0xf1, 0xc9, 0x81, 0x7d, 0x7d, 0x50, 0x6a, 0x1f, + 0x3f, 0xde, 0xec, 0x36, 0x9b, 0x4f, 0x8f, 0x07, 0x7b, 0xf7, 0x9d, 0x61, 0xf1, 0x40, 0x06, 0x34, + 0xe6, 0xb4, 0x62, 0xe1, 0xb1, 0x72, 0xef, 0x6a, 0x3b, 0xa3, 0x17, 0xfd, 0xb2, 0xb8, 0xf9, 0xe8, + 0xee, 0x3c, 0x9d, 0x35, 0xee, 0xf5, 0x51, 0xae, 0xf7, 0xf8, 0xbe, 0x7b, 0xb6, 0x79, 0x95, 0x2e, + 0xee, 0x03, 0x27, 0x6f, 0xe5, 0x2f, 0xde, 0x8b, 0xcf, 0xb0, 0x87, 0x1d, 0x29, 0x1d, 0xb7, 0x7d, + 0x7f, 0x69, 0x4e, 0x46, 0x57, 0xfd, 0xf3, 0xb7, 0x43, 0x7d, 0x74, 0xa2, 0x2b, 0x93, 0xca, 0xc4, + 0x68, 0x5f, 0x0c, 0xdd, 0x91, 0xf2, 0x6c, 0x66, 0xef, 0x5a, 0x93, 0x0a, 0x70, 0xe4, 0xd6, 0xf5, + 0xe4, 0xac, 0x33, 0x02, 0xb2, 0x7c, 0x9a, 0xec, 0x0f, 0x06, 0x25, 0x67, 0x73, 0xe0, 0xbc, 0xda, + 0xda, 0x7d, 0xd3, 0xe9, 0x37, 0x72, 0x4e, 0xde, 0xd8, 0x07, 0xb1, 0xb9, 0x70, 0xb4, 0x79, 0x91, + 0x56, 0x9c, 0xe9, 0x64, 0xfa, 0xd4, 0x76, 0x4f, 0x4f, 0xa5, 0xfc, 0x5e, 0xa5, 0x3d, 0xe8, 0x5c, + 0x97, 0x1e, 0xdf, 0x2b, 0xc3, 0xa3, 0xf6, 0xbe, 0x74, 0x5b, 0x29, 0x9d, 0x48, 0xd3, 0x83, 0xc6, + 0x66, 0x7b, 0x5a, 0x79, 0x4b, 0xeb, 0xb9, 0x6c, 0x76, 0x33, 0xff, 0x9c, 0x3e, 0xcc, 0x69, 0xd2, + 0xde, 0x41, 0x37, 0xb7, 0x39, 0x6a, 0xdc, 0x9d, 0x1f, 0x65, 0xef, 0x07, 0xcd, 0xc7, 0xd1, 0xfd, + 0xeb, 0xd1, 0xae, 0xf2, 0x38, 0x55, 0xba, 0x8e, 0xa4, 0x77, 0xee, 0xf6, 0xef, 0xd2, 0xdd, 0x0b, + 0xfd, 0x70, 0xb8, 0x33, 0xcd, 0xbe, 0x5e, 0x6c, 0x76, 0x4a, 0xd9, 0xd1, 0xd3, 0x83, 0xe4, 0x5e, + 0xab, 0xb7, 0xee, 0xf1, 0xd5, 0xb8, 0x54, 0x78, 0x03, 0xf2, 0x6d, 0x8c, 0x1f, 0x4a, 0xd3, 0x5d, + 0xf5, 0xbd, 0xf1, 0x90, 0x2d, 0xdf, 0x0f, 0xcb, 0xcd, 0xfe, 0x20, 0x5b, 0x29, 0x5e, 0x54, 0x2e, + 0xa6, 0xce, 0x79, 0xf3, 0xd1, 0x70, 0x1e, 0xee, 0xaf, 0xd2, 0x9b, 0x56, 0xf3, 0xbd, 0x9c, 0x3d, + 0x3f, 0x7b, 0x2a, 0x6e, 0x3e, 0x35, 0x8e, 0x0e, 0xf6, 0xba, 0x37, 0x93, 0xb4, 0x62, 0x95, 0xef, + 0xd2, 0x47, 0xf9, 0xf3, 0xdb, 0x3b, 0x15, 0xd6, 0xd4, 0x44, 0x1b, 0xa7, 0xf5, 0x4e, 0xe7, 0xf5, + 0x59, 0xde, 0xcc, 0x3d, 0x6c, 0x3e, 0x4e, 0x8a, 0xfd, 0xe3, 0xc6, 0xed, 0xd5, 0xc1, 0xe3, 0xe5, + 0x55, 0xe9, 0xea, 0x6d, 0x7a, 0xdd, 0xeb, 0xab, 0xcd, 0xf4, 0x55, 0xa7, 0x78, 0x6f, 0x34, 0xce, + 0x9a, 0x8d, 0xc3, 0xfd, 0x71, 0xe9, 0xe6, 0xd8, 0x55, 0xdd, 0xbc, 0x65, 0x64, 0xcb, 0xf9, 0x76, + 0xe1, 0xb1, 0xd9, 0x38, 0xda, 0x19, 0xe7, 0x8b, 0x66, 0xcf, 0xba, 0xb9, 0x7e, 0x73, 0x8b, 0x97, + 0xcf, 0x20, 0x93, 0xde, 0x94, 0x4f, 0x1e, 0x1b, 0x7b, 0x57, 0x27, 0x65, 0x63, 0xbf, 0xbf, 0xd3, + 0x01, 0xb1, 0xf8, 0x76, 0x02, 0xb4, 0xff, 0x7a, 0xd8, 0xda, 0x39, 0x31, 0xf7, 0x0e, 0x36, 0x4f, + 0x9e, 0xae, 0x4e, 0xcf, 0xac, 0x67, 0xb3, 0x38, 0x1a, 0x28, 0xd9, 0xcb, 0xa3, 0xdc, 0xdb, 0x68, + 0xe7, 0xfe, 0xa2, 0x79, 0xd3, 0xda, 0x7d, 0x52, 0x9e, 0xad, 0xd7, 0xab, 0x52, 0x39, 0xfd, 0xa4, + 0xc8, 0xe5, 0xe7, 0xfe, 0x41, 0xff, 0xf1, 0xec, 0xa6, 0x6c, 0xec, 0x0c, 0x9e, 0x4f, 0x3a, 0xfb, + 0xf6, 0x49, 0xf3, 0x71, 0xbf, 0xf4, 0x76, 0xd2, 0x7a, 0xba, 0x3e, 0xdd, 0x2f, 0xba, 0xd7, 0xc5, + 0xc7, 0x93, 0xc1, 0xed, 0xfb, 0xfb, 0xf9, 0xfd, 0x59, 0x31, 0x37, 0xdc, 0x19, 0x8f, 0x2e, 0xcf, + 0xb4, 0xd3, 0xcd, 0xe9, 0xe5, 0xb4, 0x70, 0xab, 0x5c, 0xf7, 0xf7, 0xb5, 0xe3, 0xa7, 0xc6, 0xdd, + 0xbe, 0xd3, 0x79, 0xca, 0x1d, 0xde, 0x1e, 0x0d, 0x6e, 0x2f, 0x3b, 0x7b, 0xca, 0x61, 0xf1, 0xfe, + 0x7e, 0x77, 0x3c, 0x1e, 0x8e, 0xbb, 0x97, 0x3d, 0xbd, 0x78, 0xa2, 0x34, 0xc7, 0x17, 0x65, 0x53, + 0x4e, 0xf7, 0xf6, 0x9b, 0x3b, 0xed, 0xd2, 0x60, 0x3c, 0x3a, 0x7d, 0x2f, 0xeb, 0x67, 0xd7, 0x17, + 0x93, 0xde, 0xf3, 0xe5, 0x79, 0x59, 0x53, 0xec, 0x8a, 0x74, 0xdd, 0x6c, 0x6a, 0xd7, 0xcd, 0x63, + 0x3b, 0x3f, 0xea, 0xbf, 0x1e, 0xf6, 0x4a, 0xa7, 0xaf, 0xfd, 0xdb, 0xc7, 0x47, 0xa7, 0x38, 0x78, + 0x1f, 0x8f, 0x2a, 0xee, 0xd9, 0xd1, 0xc5, 0xad, 0x9d, 0x9d, 0x5a, 0xe3, 0x6b, 0xe7, 0xfc, 0x6e, + 0xdc, 0x7d, 0xca, 0x5a, 0xe9, 0xe1, 0x4e, 0xd9, 0xd8, 0xbc, 0xcb, 0x01, 0x57, 0x94, 0x6e, 0xd2, + 0xca, 0xf5, 0xe0, 0xd2, 0x3a, 0x1f, 0x38, 0xe7, 0xfb, 0x17, 0xaf, 0x53, 0x73, 0x2f, 0x37, 0x92, + 0x9c, 0xd1, 0xeb, 0x8d, 0x66, 0xf5, 0xa7, 0xc5, 0xf2, 0xd1, 0x71, 0x83, 0x18, 0x29, 0xea, 0x02, + 0xd7, 0x33, 0xed, 0xa1, 0xe2, 0xa6, 0xbe, 0xa1, 0x02, 0xf5, 0x4d, 0x98, 0x57, 0x6d, 0xd3, 0x74, + 0x67, 0x1b, 0x1b, 0x9d, 0x0d, 0xb9, 0xfa, 0x55, 0x96, 0xe5, 0x1a, 0x3e, 0xf6, 0xaa, 0x5f, 0x7b, + 0xbd, 0x1e, 0x79, 0xcc, 0x55, 0xd1, 0x34, 0x44, 0x1e, 0xf3, 0xd5, 0xaf, 0xf9, 0x7c, 0x9e, 0x3c, + 0x16, 0xaa, 0x5f, 0x0b, 0x85, 0x02, 0x79, 0x2c, 0x56, 0xbf, 0x16, 0x8b, 0x45, 0xf2, 0x58, 0xaa, + 0x7e, 0x2d, 0x95, 0x4a, 0xe4, 0xb1, 0x5c, 0xfd, 0x5a, 0x2e, 0x97, 0xc9, 0x63, 0xbb, 0xfa, 0xb5, + 0xdd, 0x6e, 0x93, 0xc7, 0x4e, 0xf5, 0x6b, 0xa7, 0xd3, 0x21, 0x8f, 0x6a, 0xf5, 0xab, 0xaa, 0xaa, + 0xe4, 0xb1, 0x5b, 0xfd, 0xda, 0xed, 0x76, 0xc9, 0xa3, 0x0d, 0x05, 0xf2, 0xb4, 0xb5, 0x3e, 0x34, + 0xdc, 0xa1, 0xdd, 0xd1, 0xa1, 0xb5, 0xb2, 0x42, 0x1e, 0xdf, 0xaa, 0x5f, 0x95, 0x8a, 0x04, 0x8f, + 0x2e, 0xc0, 0x95, 0x32, 0xb4, 0x5d, 0xb3, 0x6a, 0xf7, 0xdb, 0x4a, 0x2a, 0x5f, 0x10, 0x39, 0xff, + 0x9f, 0x94, 0xa9, 0x08, 0x24, 0xcf, 0x6d, 0x2f, 0x66, 0x82, 0x5e, 0x9f, 0x22, 0x10, 0x04, 0xbf, + 0x8c, 0x42, 0x0b, 0xc9, 0x52, 0x4e, 0xe4, 0xc2, 0x3f, 0x8b, 0xe5, 0x06, 0xb4, 0x5c, 0x51, 0x16, + 0x39, 0xff, 0x5f, 0xb4, 0x90, 0x3b, 0xa8, 0x6e, 0x4a, 0xd6, 0x14, 0x9f, 0x2c, 0xff, 0x09, 0x6a, + 0x95, 0xf2, 0x34, 0xad, 0x6d, 0x55, 0xe5, 0x82, 0x35, 0xe5, 0xe8, 0x1f, 0xc9, 0x7b, 0xc2, 0x32, + 0x90, 0x53, 0x81, 0x57, 0x89, 0xdb, 0xc4, 0xbf, 0xa4, 0x56, 0xb7, 0x6a, 0x98, 0x06, 0xa2, 0xc8, + 0xe9, 0x5b, 0x55, 0xbe, 0x8d, 0xe6, 0x11, 0x1e, 0x33, 0x86, 0x6e, 0x15, 0x6a, 0xce, 0xd1, 0xb0, + 0x38, 0x23, 0xf6, 0x84, 0x0d, 0x85, 0x9a, 0x50, 0x86, 0x0a, 0xc8, 0xff, 0x23, 0x9d, 0x58, 0x20, + 0xe6, 0x6d, 0xb3, 0xfb, 0x36, 0x1b, 0x2a, 0x76, 0x5f, 0x33, 0xaa, 0x52, 0x0d, 0x6d, 0x4c, 0x7d, + 0xdb, 0x1c, 0x19, 0x5d, 0x6a, 0xfa, 0xab, 0xd2, 0x6e, 0xc3, 0xac, 0x0b, 0x35, 0x56, 0xdf, 0x3e, + 0x54, 0xf5, 0xb1, 0xea, 0x6a, 0x1d, 0x45, 0xbc, 0x53, 0xed, 0xae, 0x62, 0x28, 0xa2, 0xa3, 0x18, + 0xce, 0x86, 0xa3, 0xda, 0x5a, 0x8f, 0x16, 0x74, 0xb4, 0x77, 0xb5, 0x2a, 0x43, 0x2f, 0x6b, 0x51, + 0x40, 0x3d, 0xa1, 0xe6, 0xaa, 0x53, 0x77, 0x43, 0xd1, 0xb5, 0xbe, 0x51, 0xed, 0xa8, 0x68, 0x4f, + 0xa8, 0xa1, 0x95, 0xf0, 0x45, 0x73, 0x37, 0x68, 0x37, 0x3b, 0x8a, 0xae, 0xa3, 0x5d, 0x87, 0x0e, + 0xcb, 0xcb, 0x1a, 0x01, 0x6c, 0x80, 0xaf, 0xab, 0x1d, 0x3f, 0x63, 0x68, 0xbe, 0x27, 0xa5, 0x3a, + 0x8b, 0x89, 0x8b, 0xa5, 0xfc, 0xf6, 0x14, 0x6b, 0x63, 0xa0, 0xf5, 0x07, 0x3a, 0xda, 0x9f, 0xbc, + 0x11, 0xbb, 0x36, 0x8c, 0xc4, 0x52, 0x6c, 0xe8, 0x59, 0xcd, 0xe9, 0xd8, 0xa6, 0xae, 0xb7, 0x15, + 0x9b, 0x9a, 0x56, 0xab, 0x25, 0x18, 0x4e, 0x98, 0x16, 0x1d, 0x98, 0xd3, 0x16, 0x38, 0xa6, 0x2e, + 0x41, 0xac, 0x48, 0x90, 0x3f, 0x50, 0x11, 0x7c, 0x55, 0x96, 0xa4, 0x7f, 0xd7, 0x28, 0x1c, 0xf2, + 0x68, 0x99, 0x8e, 0x46, 0xe6, 0xa3, 0xa7, 0x4d, 0xd5, 0x6e, 0xcd, 0x84, 0x6d, 0x95, 0xc2, 0xde, + 0x68, 0xab, 0x03, 0x65, 0xac, 0x01, 0x6c, 0xec, 0xec, 0xfc, 0x6b, 0xbb, 0xcf, 0x80, 0x18, 0x0f, + 0x42, 0x18, 0xe3, 0x49, 0x1c, 0xc8, 0xfb, 0x86, 0x66, 0x74, 0xd5, 0x69, 0x75, 0x43, 0x8e, 0xcc, + 0x65, 0x50, 0xca, 0xc3, 0x37, 0x93, 0x65, 0xab, 0x96, 0xaa, 0x20, 0x5a, 0xbc, 0x27, 0x36, 0x8f, + 0xcc, 0x61, 0x07, 0x3b, 0x56, 0x33, 0x2d, 0xa5, 0xa3, 0xb9, 0x6f, 0x40, 0x22, 0x64, 0x8c, 0x14, + 0x9a, 0x97, 0xc8, 0xe5, 0x9c, 0xb9, 0xe5, 0xd3, 0x10, 0xa1, 0x56, 0x89, 0xcb, 0xe1, 0xdf, 0xb9, + 0x22, 0x2a, 0xd5, 0xb1, 0x06, 0xa5, 0xd5, 0xae, 0x68, 0xcd, 0xa2, 0xf8, 0xea, 0x0a, 0x6c, 0xf6, + 0x8c, 0x10, 0x45, 0x57, 0xed, 0x98, 0x36, 0xa1, 0x4b, 0x3a, 0xf4, 0xf6, 0xc8, 0x75, 0x4d, 0x63, + 0x06, 0xc4, 0xa0, 0x6b, 0x86, 0x0a, 0x8d, 0x77, 0x46, 0xb6, 0x03, 0x30, 0x2c, 0x53, 0xc3, 0x71, + 0xcc, 0x33, 0xba, 0xd2, 0x56, 0x75, 0x27, 0xa4, 0x5f, 0x4b, 0xe9, 0x76, 0x35, 0xa3, 0x5f, 0x2d, + 0x33, 0x9d, 0xf8, 0x8a, 0x56, 0x69, 0x52, 0x70, 0x16, 0xc3, 0x56, 0xdb, 0x04, 0xf0, 0xc3, 0x2a, + 0xd0, 0x5b, 0x27, 0x45, 0xbb, 0xd5, 0x1e, 0x08, 0x5c, 0x9a, 0x83, 0x69, 0x16, 0x6a, 0x36, 0xc1, + 0x78, 0x69, 0x81, 0x80, 0xcb, 0x42, 0xac, 0x17, 0xb5, 0x89, 0x0d, 0x40, 0x8d, 0x3e, 0x10, 0x64, + 0x57, 0xad, 0x02, 0xb2, 0x70, 0x5d, 0xe8, 0x1b, 0xb6, 0x3e, 0xcf, 0xb4, 0x6d, 0x6d, 0xe6, 0x77, + 0x09, 0x16, 0xf0, 0x3c, 0x33, 0xb1, 0xd1, 0xce, 0x65, 0xc7, 0x3b, 0xe2, 0x9a, 0x16, 0x74, 0x5e, + 0x57, 0x7b, 0xb0, 0x64, 0xbd, 0x86, 0xd9, 0xf9, 0x0b, 0xda, 0x76, 0xdb, 0x42, 0x30, 0xc5, 0xf2, + 0x3c, 0x83, 0xb6, 0x71, 0x27, 0xc9, 0x0e, 0x46, 0x57, 0x20, 0x5a, 0xcc, 0x00, 0x8f, 0xc0, 0xc7, + 0x75, 0x66, 0x4d, 0xe6, 0xa0, 0x23, 0x5f, 0xb4, 0x21, 0x1e, 0x24, 0x28, 0x40, 0xe2, 0x88, 0xd8, + 0x0d, 0x9f, 0xbc, 0x98, 0xf4, 0xae, 0xe6, 0x58, 0xba, 0xf2, 0x56, 0xd5, 0x0c, 0x52, 0x82, 0xb0, + 0x95, 0x79, 0x06, 0x26, 0x23, 0x8a, 0x8d, 0xbe, 0x10, 0xd6, 0x81, 0xec, 0x5e, 0x2f, 0x96, 0x5f, + 0x62, 0xf2, 0x7d, 0xbc, 0x81, 0xa6, 0xa7, 0x8c, 0x74, 0x97, 0xad, 0x08, 0x33, 0xc1, 0xd1, 0xe1, + 0x88, 0x19, 0x40, 0x86, 0xf7, 0xec, 0xcf, 0xeb, 0x06, 0x99, 0x48, 0xae, 0x40, 0xa6, 0x33, 0x33, + 0x18, 0xf5, 0x3d, 0xe3, 0x1f, 0x19, 0x4f, 0x21, 0x87, 0x88, 0xb5, 0x74, 0xa0, 0x6c, 0xfb, 0x8d, + 0xbb, 0x69, 0xec, 0x9c, 0xee, 0x89, 0x19, 0x47, 0xed, 0xbb, 0x33, 0x17, 0x0f, 0x1c, 0x36, 0x3c, + 0x23, 0x31, 0x45, 0x74, 0xb8, 0xfc, 0xe6, 0xa4, 0x0c, 0x77, 0xb3, 0x1b, 0x4c, 0x50, 0x2e, 0x82, + 0x97, 0x05, 0x26, 0xc5, 0xb4, 0xb1, 0x2b, 0x06, 0x95, 0x19, 0x5e, 0x87, 0xbc, 0xdb, 0x87, 0x25, + 0xd5, 0x02, 0x3a, 0xa0, 0x30, 0x86, 0x5a, 0xb7, 0xab, 0xab, 0xf3, 0xcc, 0x8b, 0xfa, 0xe6, 0x7a, + 0xc4, 0x4e, 0x33, 0x70, 0xd2, 0xe7, 0x99, 0xb1, 0xa2, 0x47, 0x93, 0x09, 0x11, 0x78, 0xe9, 0x9c, + 0xc6, 0x34, 0xe3, 0xc0, 0x6c, 0x02, 0x65, 0x39, 0xc4, 0xfe, 0x4c, 0x4e, 0x47, 0x66, 0x64, 0x45, + 0xe2, 0x7e, 0x4d, 0x79, 0x17, 0x30, 0x76, 0x35, 0x05, 0x9d, 0x11, 0xe1, 0x9f, 0x30, 0xcf, 0xa8, + 0x4b, 0x0b, 0x3d, 0xa6, 0x68, 0x09, 0xe0, 0x8c, 0x4b, 0xcb, 0x3c, 0xa4, 0x58, 0x28, 0x62, 0x50, + 0x56, 0x8c, 0xf4, 0x20, 0xb6, 0x20, 0x16, 0x16, 0x3a, 0x54, 0x53, 0x6c, 0xe0, 0xec, 0xa4, 0x70, + 0x40, 0xfb, 0x4a, 0xdb, 0x31, 0xf5, 0x91, 0xab, 0x12, 0xf2, 0x87, 0x15, 0x4b, 0x17, 0x80, 0x0c, + 0xf3, 0xe0, 0xcd, 0x13, 0x92, 0x6a, 0xcd, 0xa3, 0xcd, 0x1c, 0x59, 0x3f, 0xc4, 0x06, 0xbd, 0x0c, + 0x8c, 0x4f, 0xb2, 0x84, 0xc5, 0xfb, 0x30, 0xe9, 0x6a, 0xaa, 0xe0, 0x32, 0x8e, 0xf1, 0x8e, 0x9e, + 0x6e, 0xcf, 0x16, 0xf7, 0xa6, 0x00, 0x05, 0xb6, 0x89, 0x76, 0xef, 0x94, 0x24, 0xb0, 0x1c, 0x2f, + 0xc8, 0xe6, 0x32, 0x79, 0xa7, 0x96, 0x3c, 0x92, 0x70, 0x05, 0x33, 0xdc, 0x08, 0x30, 0x38, 0xb5, + 0x44, 0xfc, 0xa3, 0xc0, 0xea, 0xed, 0x72, 0xa4, 0xf5, 0x85, 0xc6, 0xe4, 0xb2, 0xd4, 0x55, 0xfb, + 0x80, 0x2f, 0x4d, 0x9f, 0x25, 0x2d, 0xc0, 0x25, 0x54, 0xf5, 0x55, 0xd7, 0xc6, 0x2a, 0x9e, 0x0e, + 0xfa, 0xfb, 0x04, 0xe2, 0x2d, 0x82, 0x0d, 0x66, 0xdb, 0x69, 0x9b, 0x36, 0xcc, 0x5b, 0x55, 0x0a, + 0x6b, 0xe5, 0x76, 0xfd, 0x7a, 0x15, 0xc8, 0x4f, 0xa8, 0x57, 0x61, 0xaa, 0x2d, 0x19, 0x74, 0x11, + 0x8a, 0x90, 0xe9, 0xc3, 0x87, 0x24, 0x82, 0xdc, 0x80, 0x0c, 0x11, 0xff, 0xc0, 0xe8, 0x60, 0x61, + 0xce, 0x16, 0x24, 0x0d, 0x76, 0xdf, 0x5d, 0x24, 0x20, 0x60, 0x10, 0x4b, 0xb8, 0x77, 0xc0, 0x37, + 0xd9, 0x31, 0x2e, 0x13, 0x63, 0x80, 0x81, 0x92, 0xe6, 0x39, 0x6f, 0x67, 0x59, 0xd9, 0x8b, 0x9e, + 0x6e, 0xc2, 0xce, 0x88, 0xd0, 0xfd, 0xd1, 0x53, 0xca, 0x0a, 0xc9, 0x81, 0xd4, 0x41, 0x52, 0x10, + 0xe3, 0x80, 0x08, 0x7d, 0xac, 0x14, 0x84, 0x3a, 0x42, 0x6d, 0xa8, 0x19, 0x9e, 0x60, 0x51, 0x20, + 0xd4, 0x8d, 0x9c, 0xcf, 0xeb, 0x98, 0x4f, 0x3a, 0x9e, 0xd8, 0xd8, 0xb6, 0xa0, 0xb4, 0xb7, 0xc9, + 0x51, 0x6e, 0x99, 0x58, 0xae, 0x8d, 0xe5, 0xbc, 0xb5, 0x53, 0xfc, 0x37, 0x53, 0x23, 0x1c, 0x72, + 0x75, 0x80, 0xfb, 0xf9, 0x6c, 0x05, 0x86, 0x06, 0x42, 0xac, 0xa7, 0x6a, 0x04, 0x67, 0x19, 0x94, + 0x22, 0xc7, 0xea, 0x2a, 0x08, 0x4a, 0x84, 0xe9, 0xc7, 0x96, 0xd8, 0xfc, 0x43, 0x00, 0xa5, 0xd5, + 0xd5, 0xf1, 0xc8, 0x59, 0x81, 0x25, 0x61, 0x83, 0x3a, 0x02, 0xf2, 0x06, 0x3b, 0xef, 0xf4, 0x91, + 0xd9, 0xcf, 0x0d, 0xe1, 0x2f, 0xcc, 0x10, 0x7c, 0x2e, 0x42, 0xb2, 0x30, 0x85, 0xdb, 0xf0, 0x25, + 0x72, 0x4b, 0x08, 0x9e, 0x61, 0xe8, 0x3e, 0x9a, 0x37, 0x90, 0xa8, 0x83, 0x12, 0x89, 0x14, 0xcd, + 0x34, 0xa3, 0x89, 0x92, 0x90, 0xe5, 0x82, 0x26, 0x37, 0x48, 0x9b, 0xc2, 0x72, 0x91, 0x0e, 0xd1, + 0xe9, 0x9d, 0x9c, 0xcf, 0x18, 0x2a, 0x0b, 0x08, 0xdc, 0x56, 0x51, 0x3a, 0x1f, 0xab, 0x4b, 0xc6, + 0x86, 0xef, 0x59, 0xbf, 0x35, 0x01, 0x88, 0x73, 0x8a, 0x54, 0x86, 0x64, 0x40, 0xe9, 0x74, 0x03, + 0x52, 0xc2, 0x05, 0x8b, 0xbd, 0x80, 0x46, 0x26, 0x55, 0x65, 0xe4, 0x9a, 0x35, 0x56, 0x18, 0x5d, + 0x2e, 0x72, 0xee, 0xf5, 0x7a, 0x20, 0x2c, 0x3b, 0x33, 0x5f, 0x50, 0xf6, 0x61, 0x6c, 0xd0, 0xe2, + 0xd8, 0x14, 0x91, 0xd5, 0xe7, 0x5f, 0x2d, 0x1c, 0x87, 0xf8, 0xd5, 0x7a, 0xd5, 0xe1, 0xcf, 0xc8, + 0xd5, 0xe0, 0x07, 0xf6, 0x46, 0x9a, 0x08, 0x0f, 0x41, 0x0a, 0x3e, 0xe4, 0xfc, 0x73, 0xdf, 0x32, + 0x2a, 0x26, 0x4c, 0xf1, 0x58, 0x29, 0x5c, 0x17, 0x3e, 0x27, 0xc3, 0xdd, 0xc0, 0x17, 0x2d, 0x61, + 0x2b, 0xe2, 0x70, 0x10, 0x28, 0xd4, 0x79, 0x85, 0x39, 0xdc, 0x89, 0xb5, 0x60, 0x1d, 0x90, 0x69, + 0xc3, 0x1d, 0x24, 0xda, 0x31, 0xaf, 0x47, 0x81, 0x9c, 0x48, 0xa0, 0x78, 0x1d, 0x08, 0x96, 0x50, + 0x91, 0x08, 0x19, 0xb0, 0x58, 0x9c, 0x21, 0xe8, 0xba, 0x83, 0x59, 0x22, 0xdb, 0x67, 0x26, 0xbd, + 0x27, 0xca, 0xc2, 0x5f, 0x99, 0xa2, 0x23, 0x70, 0xaa, 0xe2, 0xa8, 0x1b, 0x20, 0x64, 0x90, 0x79, + 0xdd, 0xa0, 0xa2, 0x66, 0xd0, 0x94, 0xc4, 0x6d, 0x10, 0xc8, 0xfe, 0x6e, 0xb0, 0xe1, 0xf1, 0x2d, + 0x96, 0x47, 0xfb, 0xe4, 0x87, 0x9c, 0x0e, 0x51, 0x0d, 0x69, 0x71, 0x6e, 0xb7, 0x44, 0x89, 0x88, + 0x48, 0x8e, 0x4b, 0x57, 0x54, 0x5e, 0x88, 0x09, 0x80, 0x41, 0xcb, 0x3d, 0x5d, 0x9d, 0xd6, 0xc8, + 0x66, 0xb2, 0x01, 0x62, 0xf8, 0xd0, 0xf1, 0x35, 0x84, 0xe7, 0x91, 0xe3, 0x6a, 0xbd, 0xb7, 0x0d, + 0x8f, 0x4a, 0xfd, 0xe4, 0x40, 0xf8, 0x94, 0x03, 0x8d, 0x20, 0x53, 0x29, 0xb2, 0x2c, 0x31, 0xb3, + 0x89, 0xfb, 0x22, 0xd9, 0x62, 0x37, 0x54, 0x3c, 0xb6, 0x76, 0x3c, 0x92, 0x77, 0x5c, 0xe5, 0x0d, + 0x86, 0x2e, 0x92, 0x07, 0xe8, 0x76, 0xb0, 0xc1, 0xd1, 0x9d, 0x2d, 0x18, 0xae, 0x4f, 0x72, 0xd0, + 0x7e, 0xe7, 0xe5, 0x2d, 0x4c, 0xa7, 0xef, 0xac, 0x84, 0x46, 0x86, 0xee, 0xf7, 0x28, 0x57, 0x8b, + 0x4c, 0x2e, 0x9d, 0x61, 0xbf, 0xd1, 0x99, 0x87, 0xf3, 0x22, 0x12, 0x06, 0x15, 0x5c, 0x1c, 0x8f, + 0x16, 0xf3, 0x92, 0x14, 0x52, 0x18, 0xad, 0x1b, 0x6f, 0x33, 0xd8, 0x69, 0x82, 0xba, 0x9c, 0xaf, + 0x78, 0xb0, 0x64, 0x87, 0xf2, 0xdf, 0x12, 0x39, 0x0d, 0xa8, 0x61, 0xba, 0x11, 0x69, 0x2f, 0xe0, + 0xfc, 0xb9, 0xd2, 0x62, 0xfb, 0xde, 0x2a, 0xb6, 0x95, 0xae, 0x36, 0x72, 0xe8, 0x7c, 0x2d, 0xb2, + 0x86, 0x18, 0x39, 0x11, 0x9a, 0xd7, 0x8c, 0x9e, 0xc9, 0x79, 0x6d, 0x8a, 0x61, 0x67, 0xbd, 0x4e, + 0x2c, 0x25, 0x8f, 0x1c, 0x90, 0x5d, 0x4f, 0xd3, 0x61, 0xca, 0xc4, 0x0c, 0xf5, 0x99, 0x58, 0x5e, + 0xb6, 0x20, 0xc4, 0xbb, 0x57, 0x62, 0x84, 0xb4, 0xd2, 0x22, 0x2e, 0x43, 0xf5, 0x07, 0xf5, 0xb1, + 0x84, 0x81, 0x04, 0x34, 0x15, 0x90, 0x94, 0x9c, 0xa4, 0x64, 0xc2, 0x4a, 0xe3, 0x50, 0x12, 0x52, + 0x6c, 0x91, 0xb6, 0x86, 0x29, 0x22, 0x23, 0x90, 0x15, 0x1d, 0x86, 0x4d, 0x13, 0x67, 0xa7, 0x47, + 0xf4, 0xe7, 0xf0, 0x47, 0xe4, 0x37, 0x33, 0x32, 0x1c, 0xd5, 0xf5, 0x53, 0x39, 0xd8, 0x73, 0x4d, + 0xdd, 0xd5, 0x2c, 0x14, 0xbd, 0x7d, 0x99, 0x36, 0x92, 0x38, 0x43, 0x05, 0xb5, 0xad, 0xe9, 0xd8, + 0xaf, 0x01, 0x88, 0x5b, 0xaa, 0xb1, 0x7c, 0x99, 0x15, 0x3d, 0x5e, 0x3c, 0x50, 0xba, 0xc0, 0x6e, + 0x71, 0xc4, 0x81, 0xfd, 0x06, 0x1f, 0x18, 0x5b, 0xca, 0x27, 0x6c, 0x22, 0x2c, 0xe2, 0x50, 0x90, + 0x8d, 0x62, 0xbd, 0x14, 0x08, 0xc9, 0x32, 0x21, 0xa0, 0x45, 0xa9, 0x2c, 0x44, 0xab, 0x47, 0x21, + 0x65, 0x56, 0x44, 0xf3, 0x76, 0x39, 0xf2, 0xbe, 0x51, 0xa1, 0x13, 0xb3, 0xb0, 0x68, 0x57, 0x6b, + 0xfd, 0x99, 0xcd, 0xa2, 0x93, 0x88, 0x47, 0x7f, 0xb5, 0xc9, 0x39, 0x54, 0xb3, 0x12, 0x0a, 0x54, + 0xab, 0x4a, 0x8f, 0x10, 0x5b, 0x02, 0xbe, 0xbd, 0xbc, 0x99, 0xcf, 0x78, 0x78, 0x7e, 0x89, 0xc4, + 0x49, 0xd8, 0x5f, 0xf2, 0x78, 0x8a, 0x21, 0xba, 0x28, 0x8e, 0x98, 0x04, 0xaa, 0x15, 0x03, 0x1c, + 0xad, 0xeb, 0x27, 0xc5, 0x27, 0x91, 0x35, 0xe3, 0x2c, 0x7b, 0x0e, 0xc7, 0xd5, 0x19, 0xa8, 0x9d, + 0x17, 0x2a, 0x55, 0x25, 0x52, 0x53, 0x42, 0x16, 0x4b, 0x53, 0xe4, 0x51, 0x0f, 0x51, 0x2d, 0xcf, + 0xc9, 0x96, 0x95, 0x51, 0xbb, 0xc0, 0x03, 0x89, 0xa2, 0xc3, 0x0a, 0xe4, 0xa0, 0xfd, 0x02, 0xcc, + 0x48, 0x12, 0xab, 0x46, 0xf7, 0x14, 0xc8, 0x5c, 0x24, 0xd8, 0xd8, 0x34, 0xb2, 0x0b, 0x44, 0x0a, + 0x44, 0xa3, 0x50, 0x5d, 0x91, 0x90, 0x1b, 0xd8, 0x8e, 0xbf, 0x5d, 0xd2, 0x3d, 0x95, 0xec, 0xd8, + 0xae, 0xa9, 0x40, 0x72, 0x08, 0x6e, 0xf5, 0x4a, 0x20, 0xf2, 0x87, 0x0c, 0xe4, 0x4b, 0xb0, 0xcd, + 0x85, 0xdc, 0xa6, 0x16, 0xb2, 0x43, 0x54, 0x2d, 0x3e, 0xb1, 0x18, 0xa2, 0xc4, 0x5f, 0x64, 0x34, + 0xed, 0x5c, 0x84, 0xa9, 0x44, 0xad, 0x60, 0xc5, 0x95, 0x2a, 0xc9, 0x03, 0xd1, 0x49, 0x84, 0xa5, + 0x56, 0x20, 0x84, 0x2c, 0xc4, 0x65, 0xf8, 0xa4, 0xad, 0x8d, 0xa2, 0x25, 0xe3, 0x0c, 0xcc, 0xc9, + 0x2c, 0x64, 0x61, 0x8a, 0xa1, 0x0d, 0xa9, 0x29, 0x0b, 0x67, 0x45, 0x33, 0x08, 0xbb, 0x0a, 0x1f, + 0xb9, 0x1c, 0xfe, 0xb1, 0x55, 0x14, 0xc1, 0x02, 0x10, 0xaa, 0x6d, 0x9b, 0x36, 0x03, 0x63, 0x01, + 0xbf, 0x5f, 0xdb, 0xb9, 0x64, 0xc8, 0xf3, 0xcc, 0xd0, 0xec, 0x2a, 0x0b, 0x16, 0x2e, 0x5f, 0x30, + 0xf0, 0x55, 0x25, 0x5f, 0x33, 0xc5, 0x29, 0x65, 0x06, 0xec, 0x0e, 0x50, 0x08, 0x96, 0x71, 0xbc, + 0x4b, 0xa7, 0xd4, 0x4c, 0x94, 0x82, 0x1f, 0x53, 0x54, 0xbe, 0x4e, 0xd6, 0x91, 0x0b, 0x0e, 0xab, + 0x03, 0xb3, 0x32, 0x08, 0xf2, 0xac, 0x88, 0x60, 0x8a, 0xba, 0xbd, 0xe9, 0xa8, 0xb3, 0xf8, 0xde, + 0x4b, 0x77, 0x79, 0x2a, 0x24, 0x53, 0xa3, 0x08, 0xd9, 0xe5, 0xc4, 0xaf, 0x86, 0xd9, 0x55, 0x9d, + 0x80, 0xab, 0x17, 0xe6, 0x5f, 0x6d, 0xa2, 0xd8, 0xf8, 0x09, 0xf9, 0xf9, 0x57, 0xa3, 0xab, 0x07, + 0x22, 0x9f, 0xec, 0xd9, 0x02, 0x49, 0x21, 0x90, 0x0a, 0x12, 0x4d, 0x70, 0x31, 0x8c, 0xa4, 0xb9, + 0x22, 0x62, 0x84, 0x5a, 0x25, 0xe2, 0x1a, 0x75, 0xcc, 0x9a, 0xf0, 0x15, 0x56, 0xaa, 0x01, 0x2d, + 0x7f, 0xd6, 0xc4, 0x18, 0x42, 0x2e, 0x30, 0xc4, 0x5c, 0x5c, 0xe0, 0xf3, 0x24, 0x65, 0x81, 0x0a, + 0xf0, 0x6c, 0x23, 0x30, 0xf5, 0xe6, 0xa2, 0xfb, 0x3e, 0x23, 0x6b, 0xe4, 0x62, 0xb2, 0x86, 0x5c, + 0x40, 0x70, 0x0c, 0x2e, 0x43, 0x0d, 0x31, 0x02, 0x02, 0xad, 0x94, 0x33, 0x06, 0x84, 0x97, 0x4b, + 0xec, 0x69, 0x1e, 0xe2, 0xe9, 0xcb, 0x07, 0x26, 0x36, 0xaf, 0x5a, 0x37, 0xa8, 0xd3, 0x9d, 0xc5, + 0xa4, 0x96, 0x72, 0x28, 0xb5, 0xb4, 0x5d, 0xc3, 0x9f, 0xac, 0x62, 0xb4, 0x49, 0x92, 0x17, 0x69, + 0x37, 0x52, 0xda, 0xef, 0x7c, 0x57, 0x1b, 0xfb, 0x85, 0xe0, 0x91, 0x41, 0x43, 0xa1, 0xb2, 0x20, + 0x62, 0x79, 0x55, 0xbe, 0x6a, 0xc3, 0xfe, 0xc4, 0x87, 0x53, 0xf6, 0xb4, 0x8b, 0xf9, 0x57, 0x9d, + 0xad, 0x5d, 0x22, 0x48, 0x4c, 0x34, 0x87, 0x7e, 0x1d, 0x80, 0x34, 0xe2, 0xce, 0x16, 0x0d, 0x02, + 0x95, 0x88, 0xee, 0x1f, 0xda, 0x90, 0x6d, 0xb5, 0x3b, 0x87, 0x26, 0x19, 0xe8, 0x64, 0x17, 0xc3, + 0x57, 0x46, 0xbe, 0x9f, 0x67, 0x26, 0xda, 0x8c, 0xf8, 0x3f, 0x6f, 0xc0, 0x56, 0x03, 0xf3, 0x81, + 0xa4, 0x61, 0x01, 0x72, 0x71, 0xc1, 0x75, 0x6b, 0xf1, 0x9c, 0x8e, 0x0d, 0x7d, 0xdb, 0x50, 0xbb, + 0x7d, 0xd5, 0xf1, 0x75, 0x7f, 0xc2, 0xad, 0xff, 0xdb, 0x8b, 0xfa, 0xd6, 0xb3, 0x95, 0x21, 0xe0, + 0x83, 0xf2, 0x89, 0x59, 0xcf, 0x36, 0x87, 0xb3, 0x80, 0x17, 0x04, 0x6c, 0x7c, 0xee, 0x9a, 0xb3, + 0xd5, 0x4c, 0x30, 0xdc, 0x9c, 0x7c, 0x89, 0xd6, 0xc3, 0x47, 0xb0, 0x4d, 0x7f, 0xfb, 0xb6, 0x6c, + 0x9b, 0xce, 0xf9, 0x86, 0xbd, 0xd0, 0x1a, 0x57, 0x0e, 0x25, 0xc6, 0x28, 0x7d, 0x2f, 0x97, 0x32, + 0x09, 0x12, 0x93, 0x44, 0x94, 0xf0, 0xc4, 0x03, 0xcf, 0xbc, 0xfa, 0xac, 0xa5, 0xe0, 0x2b, 0x21, + 0x64, 0x2e, 0xd6, 0x63, 0x52, 0x8a, 0x54, 0x65, 0xda, 0xa5, 0x82, 0xe5, 0x46, 0x1f, 0x5b, 0x43, + 0xaf, 0xdd, 0x0a, 0xda, 0xe1, 0xc4, 0xaf, 0x92, 0x04, 0xda, 0x9b, 0x5c, 0xfc, 0xb7, 0x08, 0x13, + 0x07, 0xf0, 0xfa, 0xff, 0x18, 0xbc, 0xaf, 0x52, 0x4f, 0x02, 0x80, 0xed, 0x7f, 0x10, 0xa0, 0x84, + 0x23, 0x9e, 0xfc, 0x73, 0x00, 0x7b, 0x3d, 0x04, 0xf8, 0x92, 0x00, 0x50, 0xfc, 0x3a, 0x69, 0x2b, + 0x7a, 0xbc, 0x95, 0x8f, 0x61, 0xf7, 0x7a, 0xe5, 0x9e, 0xdc, 0xe3, 0x24, 0x02, 0x9b, 0x43, 0x7b, + 0xe0, 0xd7, 0x4e, 0xbb, 0xdb, 0x26, 0xed, 0x0c, 0xd4, 0xe9, 0x44, 0xfc, 0x3a, 0xc0, 0xd6, 0x44, + 0xda, 0xa8, 0xf8, 0xf5, 0xb5, 0xe3, 0x6c, 0x40, 0xa2, 0xdd, 0x6f, 0xd3, 0x77, 0x87, 0xfe, 0x60, + 0xe3, 0x22, 0x1d, 0x69, 0x4c, 0x36, 0xa2, 0x1d, 0x6a, 0x8f, 0xda, 0xc8, 0x9a, 0x18, 0x13, 0xf2, + 0xa2, 0xce, 0x91, 0x68, 0x5c, 0x8d, 0x51, 0x9c, 0x94, 0x4c, 0x9a, 0xf9, 0x04, 0xe9, 0x9d, 0x39, + 0x42, 0x40, 0x49, 0x9f, 0x5d, 0xfc, 0x85, 0x80, 0xea, 0x51, 0x3f, 0x64, 0x58, 0x45, 0x28, 0xa6, + 0x71, 0x99, 0x1c, 0x88, 0x02, 0x68, 0x44, 0x10, 0x03, 0xd9, 0xda, 0x4f, 0x61, 0x64, 0xb7, 0x05, + 0xb9, 0x6e, 0x0e, 0x4c, 0xd7, 0x1a, 0xb9, 0x91, 0x61, 0x13, 0x21, 0x64, 0xa5, 0x78, 0xc9, 0x78, + 0x86, 0x13, 0xc7, 0xf0, 0x9f, 0x81, 0x91, 0x07, 0x8f, 0xa6, 0x14, 0x48, 0xeb, 0xa8, 0x0b, 0x46, + 0xe3, 0xf0, 0x5c, 0x63, 0xf9, 0x51, 0x71, 0xc4, 0x80, 0x1b, 0xdd, 0x1d, 0x17, 0xda, 0xac, 0xf6, + 0xcc, 0xce, 0xc8, 0x09, 0x0f, 0xf6, 0x12, 0x4a, 0x84, 0x86, 0x00, 0x7a, 0xd0, 0x60, 0x8f, 0x0c, + 0x83, 0xec, 0x36, 0xd0, 0x4e, 0xe7, 0x65, 0xc6, 0x74, 0xce, 0x63, 0x25, 0x79, 0x69, 0xc1, 0xc8, + 0xcf, 0xce, 0x1f, 0x9a, 0x76, 0x3e, 0x6e, 0xc5, 0x1d, 0x8c, 0x86, 0xed, 0xe0, 0xb8, 0x95, 0xd5, + 0xb2, 0x16, 0xb7, 0xe6, 0x88, 0xa1, 0x99, 0x25, 0x87, 0x58, 0x27, 0x96, 0xe1, 0x97, 0x11, 0xaf, + 0x41, 0xb4, 0x4c, 0xec, 0x1c, 0x9e, 0x71, 0x93, 0x97, 0xd5, 0xa3, 0x5e, 0x98, 0x0b, 0xe2, 0x7e, + 0x20, 0x89, 0xe4, 0x7f, 0xc2, 0x47, 0x90, 0xc9, 0x90, 0x7d, 0x73, 0xa1, 0x27, 0xac, 0xb3, 0x93, + 0xf9, 0x5f, 0xc4, 0x46, 0xa2, 0xd4, 0x88, 0xf2, 0xcf, 0xfc, 0x2b, 0xb9, 0x74, 0xe1, 0x70, 0x7f, + 0x3a, 0x2d, 0xe5, 0xb0, 0x23, 0xa1, 0x66, 0x4c, 0x16, 0x5f, 0x54, 0xd3, 0x90, 0x23, 0xd6, 0x5c, + 0x22, 0x55, 0xac, 0x68, 0x71, 0x09, 0x46, 0x92, 0xc0, 0xce, 0x59, 0x41, 0x89, 0x9d, 0x08, 0x8f, + 0xe9, 0xe4, 0xa5, 0x95, 0x96, 0x0e, 0x29, 0xe8, 0x47, 0x82, 0xc0, 0xc5, 0xda, 0x83, 0x0a, 0x9e, + 0x49, 0xd2, 0x2b, 0x1e, 0xb5, 0x72, 0x92, 0x53, 0xa5, 0x41, 0x77, 0x96, 0x60, 0x44, 0xfc, 0xda, + 0xb6, 0x35, 0x02, 0x73, 0x51, 0xd6, 0x63, 0x0c, 0xdb, 0xed, 0xa1, 0x1b, 0x70, 0x5e, 0x5d, 0xed, + 0x0e, 0x91, 0xb9, 0x5a, 0x8a, 0x8e, 0x86, 0x5c, 0x72, 0x4f, 0xc7, 0xe3, 0xc0, 0x51, 0xab, 0x69, + 0x8d, 0xe9, 0xe6, 0xdc, 0x2b, 0xc8, 0x2a, 0x8a, 0x1b, 0xc8, 0x37, 0x23, 0x47, 0xbb, 0x6e, 0x78, + 0x4a, 0x51, 0x66, 0x8c, 0xb9, 0x9e, 0x55, 0x24, 0x82, 0x32, 0x86, 0x6f, 0x56, 0x16, 0x0e, 0x4c, + 0xba, 0x0b, 0x0b, 0x2b, 0x66, 0x88, 0x2a, 0x46, 0x18, 0xec, 0x46, 0x77, 0xe4, 0xb9, 0x12, 0xe0, + 0x51, 0x8c, 0x4f, 0x4f, 0x48, 0xa2, 0x78, 0x7b, 0x64, 0x63, 0x51, 0x4b, 0x0e, 0x9c, 0x42, 0x16, + 0xe9, 0x35, 0xdf, 0xa5, 0x8b, 0x89, 0xaa, 0x47, 0x4b, 0xea, 0xaf, 0xac, 0x17, 0xe8, 0x3a, 0x1d, + 0x5d, 0xb3, 0xa8, 0x82, 0x1b, 0x4d, 0x5a, 0xaa, 0x2e, 0xe7, 0x85, 0x55, 0x76, 0x5d, 0xcf, 0x88, + 0x4d, 0x04, 0xe2, 0x0d, 0x87, 0xda, 0x1a, 0xc4, 0xd0, 0x38, 0x9e, 0x94, 0x9a, 0x8b, 0x26, 0xe3, + 0x8b, 0x7f, 0x28, 0xb4, 0xac, 0x0f, 0x45, 0x61, 0x95, 0xaa, 0x3f, 0xa7, 0xf0, 0x66, 0x11, 0x89, + 0x36, 0x38, 0xab, 0x82, 0x2c, 0x62, 0xc6, 0xf0, 0xcf, 0xf2, 0x7d, 0xb3, 0xd8, 0x86, 0x4c, 0xac, + 0xe2, 0x89, 0x27, 0x9a, 0x4b, 0xbc, 0x0f, 0x10, 0x96, 0x31, 0x63, 0x09, 0x26, 0x20, 0xcd, 0xb2, + 0x6f, 0xbc, 0xc7, 0x32, 0xfe, 0x5a, 0x92, 0x73, 0x4c, 0x99, 0x22, 0xf5, 0x1e, 0x20, 0xf9, 0xd0, + 0x5a, 0xb7, 0x2b, 0xfa, 0xcf, 0x5d, 0x55, 0xa7, 0xcf, 0x53, 0x7f, 0x0c, 0x85, 0xa8, 0x2f, 0x00, + 0x73, 0x16, 0x11, 0xa3, 0x6c, 0xac, 0xe2, 0xc1, 0xa7, 0x3e, 0x0a, 0x64, 0xb5, 0x32, 0x53, 0x12, + 0xe6, 0x4b, 0x8c, 0xa2, 0x83, 0xc9, 0x4b, 0x91, 0x5d, 0x88, 0x4d, 0xaa, 0x3f, 0x98, 0x3c, 0x61, + 0x60, 0x54, 0xc1, 0xc9, 0x20, 0xa8, 0xa8, 0x0e, 0xc4, 0x56, 0x89, 0x53, 0xc0, 0xc2, 0xdc, 0xcf, + 0x56, 0x1d, 0x15, 0xac, 0x20, 0xc5, 0x65, 0xf8, 0x0b, 0x3d, 0x70, 0x26, 0x03, 0xcd, 0x55, 0x37, + 0x60, 0xeb, 0x20, 0xbb, 0x1c, 0x32, 0xa1, 0x79, 0x84, 0x8d, 0x84, 0xd6, 0xa4, 0x0c, 0x24, 0x33, + 0xc8, 0x8b, 0x8b, 0x5f, 0x85, 0x25, 0x5a, 0x97, 0xcf, 0x30, 0x18, 0x25, 0x82, 0x3c, 0xb3, 0x8e, + 0x2c, 0xb9, 0xb2, 0x07, 0xbf, 0x1d, 0x70, 0xd5, 0x98, 0x91, 0x3a, 0x52, 0x3a, 0xdc, 0xcd, 0x98, + 0x41, 0xa3, 0x90, 0x4a, 0xb9, 0xe3, 0x2c, 0xb6, 0x89, 0x50, 0x4f, 0xb2, 0x59, 0xdc, 0x40, 0x1b, + 0xa0, 0x20, 0xc6, 0xc5, 0x56, 0xa1, 0xfa, 0x73, 0x1c, 0x2e, 0xd8, 0x95, 0x19, 0x13, 0x5a, 0x8c, + 0xf7, 0x49, 0xcb, 0x78, 0x5f, 0xf1, 0x9f, 0xe3, 0x7d, 0xcb, 0xe4, 0x18, 0xb2, 0x73, 0xc6, 0x13, + 0xff, 0x2e, 0xa3, 0x8c, 0xb2, 0x46, 0x55, 0x07, 0xde, 0xe8, 0x68, 0xce, 0xfc, 0xab, 0xeb, 0xce, + 0x12, 0x5c, 0x72, 0x3a, 0xfa, 0x22, 0x25, 0xa3, 0x0e, 0xe3, 0xcd, 0x11, 0x71, 0x57, 0xb1, 0x44, + 0xf6, 0x45, 0x8f, 0xbe, 0xa9, 0x33, 0x96, 0x3d, 0xd4, 0x16, 0xe5, 0xab, 0x02, 0x92, 0x6a, 0x57, + 0x1b, 0xd3, 0xf2, 0xb3, 0x85, 0x4d, 0x3d, 0xcc, 0xfb, 0x8c, 0xe1, 0xda, 0xf6, 0x94, 0x7c, 0x9c, + 0x2d, 0xa0, 0xa6, 0x5c, 0xe8, 0xeb, 0x22, 0x85, 0x76, 0x58, 0x6f, 0x6a, 0x7d, 0xa5, 0x39, 0x41, + 0x22, 0xf3, 0x27, 0xdf, 0xd7, 0xa6, 0x97, 0x17, 0xf1, 0xdc, 0x60, 0x62, 0xf4, 0x03, 0x1a, 0x57, + 0x0c, 0x0b, 0x8b, 0xb8, 0x65, 0x0a, 0x38, 0xfd, 0x28, 0x96, 0x58, 0xd4, 0x7c, 0x74, 0x5e, 0x94, + 0xa0, 0x2e, 0xb1, 0xf2, 0xa8, 0x01, 0x92, 0x96, 0x6a, 0xff, 0x14, 0x99, 0x24, 0xec, 0xca, 0xcf, + 0xd9, 0x27, 0x35, 0xaf, 0xcf, 0x2e, 0x10, 0x82, 0xf2, 0x64, 0x5b, 0x24, 0x59, 0xa4, 0x8c, 0x62, + 0xb6, 0xe8, 0xca, 0x91, 0x73, 0x6a, 0xa1, 0x0b, 0x62, 0xc2, 0x2a, 0xc0, 0x1e, 0xf7, 0x34, 0x55, + 0xef, 0x2e, 0x2c, 0x85, 0x30, 0x27, 0x29, 0x31, 0x01, 0x11, 0x0b, 0x3e, 0x60, 0x1e, 0x79, 0x14, + 0xa5, 0xa8, 0x86, 0x40, 0x91, 0xb4, 0x38, 0x6b, 0x8b, 0x10, 0xa9, 0xaa, 0xb5, 0x80, 0x60, 0x4f, + 0x03, 0x4b, 0x40, 0x73, 0x29, 0x69, 0x82, 0x42, 0x89, 0x5c, 0x33, 0x0c, 0x3c, 0x46, 0xb1, 0x80, + 0x21, 0x52, 0x87, 0x10, 0x71, 0x55, 0x69, 0xc0, 0x5b, 0xb4, 0xf4, 0x32, 0x6d, 0x93, 0xb2, 0x5a, + 0x6e, 0x61, 0x88, 0x9e, 0x11, 0x4e, 0x1d, 0x2e, 0x8c, 0x3e, 0x63, 0xb9, 0x53, 0x77, 0x16, 0x73, + 0x8b, 0xe0, 0x36, 0x38, 0x54, 0xf9, 0x85, 0x39, 0x16, 0x81, 0x95, 0xa0, 0x24, 0x8d, 0x30, 0x97, + 0x40, 0x48, 0x8b, 0x70, 0x70, 0x07, 0x0a, 0x4e, 0x47, 0x88, 0x09, 0x31, 0xc1, 0x34, 0xbb, 0x4c, + 0x47, 0x00, 0x89, 0x29, 0x24, 0x19, 0x5b, 0x25, 0x84, 0x46, 0xf8, 0x62, 0x8c, 0xee, 0x18, 0xcb, + 0xef, 0x3c, 0xa3, 0x58, 0x1a, 0x0e, 0xc9, 0x6b, 0x72, 0x13, 0xc6, 0x5c, 0xad, 0xd2, 0x65, 0x18, + 0x5d, 0x62, 0x41, 0xbf, 0xd1, 0x9b, 0x89, 0x60, 0xc1, 0x17, 0xae, 0x64, 0x4f, 0xb8, 0x2a, 0x47, + 0xe4, 0x97, 0x98, 0x95, 0x24, 0x44, 0x5b, 0x31, 0x26, 0xab, 0x5b, 0xe8, 0x2a, 0x4b, 0x9c, 0x1b, + 0xf1, 0x61, 0xb6, 0xb8, 0x97, 0x27, 0x1c, 0xcd, 0xac, 0x92, 0x6c, 0x7d, 0xf6, 0x1d, 0xdd, 0x6e, + 0x0b, 0xd1, 0xa5, 0x48, 0x26, 0x8c, 0x39, 0x12, 0x92, 0x37, 0x57, 0x9c, 0xc8, 0x07, 0x6c, 0x97, + 0xf6, 0x95, 0xf8, 0xd1, 0x05, 0x1d, 0x5e, 0xe2, 0x55, 0x27, 0xf9, 0xce, 0xbc, 0x1b, 0x25, 0xc4, + 0xb2, 0xd3, 0x76, 0x22, 0x7b, 0xb7, 0xe4, 0x63, 0x2c, 0xe6, 0x8e, 0xe1, 0xf4, 0x2d, 0xc1, 0x6b, + 0x66, 0x46, 0x84, 0x16, 0xea, 0x67, 0x1a, 0xbc, 0x83, 0x30, 0x69, 0x69, 0xdd, 0x4f, 0xb9, 0x33, + 0xc6, 0x8c, 0xc1, 0x8b, 0x48, 0x8c, 0x92, 0x23, 0x4e, 0xab, 0xa1, 0x4e, 0x60, 0x54, 0xb3, 0xa8, + 0xcb, 0x2c, 0xba, 0xfc, 0x06, 0x7d, 0x2f, 0x05, 0x02, 0x67, 0x66, 0x1a, 0x4a, 0xae, 0x8c, 0xcb, + 0x64, 0xa1, 0x10, 0x91, 0x7e, 0x49, 0xb1, 0x50, 0x9d, 0x0b, 0xb7, 0x1e, 0xa4, 0x82, 0xc0, 0x1e, + 0x4b, 0xd4, 0xba, 0x8e, 0x03, 0x92, 0xe3, 0x34, 0x14, 0x52, 0x17, 0xe9, 0xbb, 0xcb, 0xfa, 0xfd, + 0x06, 0xe5, 0x01, 0x7a, 0xfc, 0xdc, 0x95, 0x2d, 0x16, 0x38, 0x62, 0x8b, 0x44, 0xf6, 0x23, 0x68, + 0xf0, 0x0e, 0xcb, 0x09, 0xe5, 0x52, 0x95, 0x80, 0xd1, 0xb3, 0xc5, 0xe4, 0x54, 0x92, 0x92, 0x58, + 0x36, 0x9e, 0x08, 0x53, 0xe4, 0xb8, 0xce, 0xa2, 0x9b, 0x67, 0xa8, 0x5f, 0x43, 0x89, 0x89, 0xbd, + 0xe0, 0xb4, 0x9c, 0xe8, 0xf0, 0x05, 0xc0, 0x45, 0x72, 0x46, 0x16, 0xf7, 0x24, 0x55, 0x40, 0x1a, + 0x5c, 0xf4, 0x53, 0xeb, 0xb2, 0x0e, 0xe7, 0x01, 0x71, 0x84, 0x07, 0x1f, 0xa1, 0x31, 0x7c, 0x9e, + 0xe9, 0xd9, 0xef, 0x33, 0x42, 0x2e, 0xf9, 0x5c, 0xe2, 0x61, 0x3e, 0xd1, 0xac, 0xf3, 0x8b, 0xf6, + 0x2d, 0x76, 0x47, 0x63, 0x1c, 0xc3, 0x19, 0x37, 0x53, 0x00, 0x1c, 0x5d, 0xfe, 0xe4, 0xbc, 0x5a, + 0xcc, 0x20, 0x13, 0x33, 0x97, 0xf9, 0xe0, 0x04, 0x16, 0x8b, 0xf8, 0x48, 0x6d, 0x75, 0xdc, 0x19, + 0xbc, 0xe8, 0xb1, 0xf5, 0x23, 0x71, 0xa8, 0x9b, 0xf8, 0x06, 0x86, 0xe0, 0x80, 0x81, 0x11, 0x9b, + 0x71, 0x90, 0x37, 0xbb, 0xdc, 0x42, 0x7d, 0x89, 0xd6, 0x0e, 0x9d, 0xbc, 0x36, 0xbc, 0x95, 0x45, + 0x7a, 0x49, 0x77, 0x03, 0xaf, 0xaf, 0xf4, 0x25, 0x01, 0xa3, 0xa1, 0x85, 0x34, 0x86, 0x9c, 0x40, + 0xa0, 0xf2, 0x24, 0x2c, 0x0f, 0x2a, 0x34, 0xe4, 0x8f, 0x1f, 0x1f, 0x13, 0x20, 0xb2, 0x8c, 0x8a, + 0x31, 0x23, 0xd3, 0xa3, 0xc8, 0xb8, 0xdb, 0xe9, 0xdf, 0xd2, 0xa4, 0xd0, 0xe3, 0x26, 0xec, 0x41, + 0x84, 0x61, 0xb0, 0x7a, 0x0d, 0xe3, 0x0a, 0x9d, 0xfb, 0xc0, 0xe2, 0xb6, 0x68, 0x84, 0x65, 0x86, + 0x3b, 0x5b, 0x14, 0x86, 0xe6, 0x11, 0xc7, 0x05, 0x82, 0xdb, 0xff, 0xbe, 0x80, 0x9f, 0x68, 0x6e, + 0xd8, 0xe1, 0x95, 0xc6, 0x80, 0x00, 0x88, 0xef, 0xe5, 0x11, 0xd4, 0xfb, 0x8c, 0x84, 0x9c, 0x40, + 0xac, 0x5c, 0x1c, 0x24, 0x5d, 0x2a, 0x15, 0x6f, 0x4a, 0xc2, 0x59, 0x2a, 0x86, 0xa8, 0x93, 0xc3, + 0xfd, 0xba, 0x1a, 0x97, 0x7d, 0xa3, 0xbe, 0x21, 0x40, 0x7e, 0x30, 0x3d, 0x79, 0x6a, 0x1d, 0x48, + 0x6e, 0x0f, 0x86, 0x60, 0xba, 0x85, 0xe2, 0x6c, 0x51, 0x4b, 0xf2, 0x76, 0x98, 0x42, 0x11, 0xdd, + 0xb6, 0xc9, 0xe5, 0xa3, 0x65, 0x79, 0x4b, 0xd2, 0x3d, 0x32, 0xe0, 0x16, 0x90, 0xe4, 0x9f, 0xd8, + 0x32, 0x43, 0xf2, 0x69, 0xb0, 0xb8, 0xe8, 0xf8, 0x52, 0xdd, 0xd8, 0xfc, 0xbc, 0x45, 0x96, 0xac, + 0xc4, 0x70, 0xaa, 0xc9, 0xba, 0x8c, 0xd0, 0x22, 0xdd, 0x27, 0x07, 0xf1, 0xcb, 0x0d, 0x9f, 0xd9, + 0xb6, 0xda, 0xfe, 0x45, 0x20, 0xf6, 0x84, 0x37, 0x63, 0x81, 0x04, 0x44, 0x76, 0xe9, 0x55, 0x3e, + 0x68, 0xcb, 0x64, 0xf9, 0xa8, 0x43, 0x08, 0x71, 0x94, 0x5d, 0x29, 0xad, 0x17, 0x9d, 0x05, 0x0d, + 0x3c, 0xaa, 0x2b, 0x93, 0x8d, 0x1c, 0x3b, 0x83, 0x63, 0x45, 0xf1, 0x82, 0x11, 0x95, 0xbc, 0x5e, + 0x47, 0x53, 0x49, 0x69, 0x2e, 0xe3, 0x50, 0xd6, 0x95, 0xc8, 0x9c, 0x37, 0xfd, 0xe5, 0x5b, 0x21, + 0xec, 0x9c, 0x38, 0xd3, 0x01, 0xf7, 0xc5, 0x1a, 0x62, 0xe0, 0x2a, 0x64, 0x12, 0x00, 0x89, 0x46, + 0x8d, 0xf0, 0x90, 0x3e, 0x03, 0x72, 0x5f, 0xc0, 0xd7, 0x7d, 0x79, 0x0e, 0xff, 0x11, 0x2e, 0x19, + 0xc7, 0xc4, 0x82, 0x60, 0x95, 0x6c, 0x4f, 0xf3, 0x29, 0x97, 0x76, 0xac, 0xda, 0xb7, 0x95, 0x37, + 0xe2, 0x00, 0xe4, 0x79, 0x6f, 0x24, 0x27, 0xcf, 0x33, 0x7a, 0x5b, 0xdf, 0xd0, 0x3f, 0x26, 0x83, + 0xc8, 0x6e, 0x40, 0x6b, 0x39, 0x4b, 0x86, 0x19, 0x32, 0xf9, 0x52, 0x54, 0x2e, 0xca, 0x07, 0xab, + 0xb8, 0x50, 0xfe, 0x77, 0xd2, 0xed, 0x1b, 0x5d, 0x73, 0xdc, 0xd9, 0x32, 0x0f, 0x69, 0xe2, 0x51, + 0xfc, 0x21, 0x59, 0x78, 0x6b, 0x25, 0xf0, 0x0f, 0xe5, 0x72, 0x09, 0x46, 0xe7, 0x38, 0x46, 0xa1, + 0x65, 0xc7, 0x3d, 0x9a, 0x25, 0xf8, 0xc8, 0x2e, 0x3d, 0x6b, 0x5a, 0x24, 0xed, 0x40, 0x22, 0xf6, + 0x4c, 0x20, 0x8b, 0x1e, 0xa6, 0x71, 0x0a, 0x4d, 0x70, 0x7a, 0xae, 0xb1, 0x7e, 0xd1, 0x52, 0x92, + 0xcd, 0x8a, 0xd9, 0x5e, 0x42, 0x0b, 0x20, 0xe9, 0x7e, 0x74, 0x77, 0xa5, 0x4a, 0x85, 0xda, 0x9d, + 0x25, 0x1e, 0xbd, 0xcf, 0x7d, 0x7f, 0x69, 0xe2, 0x5c, 0x4d, 0xf7, 0x00, 0xe0, 0xc7, 0x6e, 0xea, + 0x47, 0x47, 0x57, 0x1c, 0xe7, 0xaf, 0xba, 0x2f, 0x5e, 0xfc, 0x14, 0x44, 0x02, 0x7d, 0x65, 0x91, + 0xa4, 0x36, 0x8a, 0x42, 0xd8, 0x07, 0x96, 0x15, 0x31, 0x89, 0x01, 0x47, 0x62, 0x12, 0x13, 0xec, + 0x06, 0x89, 0x99, 0x71, 0x0b, 0xc2, 0xa2, 0xd5, 0x9c, 0x74, 0x3b, 0x44, 0x43, 0x74, 0x67, 0x8f, + 0xe5, 0x8a, 0xde, 0x2b, 0x99, 0xa9, 0x19, 0xeb, 0x56, 0x19, 0xb8, 0x7a, 0xa2, 0x10, 0x93, 0xe0, + 0xe6, 0xe9, 0x39, 0xa1, 0x73, 0x01, 0xa8, 0xa5, 0x28, 0xf2, 0xdc, 0x93, 0x73, 0xfe, 0x96, 0x46, + 0xbc, 0x79, 0x7b, 0x53, 0xa4, 0x79, 0x2e, 0xa1, 0xaf, 0xe5, 0xc2, 0x62, 0x3e, 0xed, 0x5e, 0x58, + 0x1b, 0x4f, 0x72, 0x56, 0x56, 0x8f, 0x15, 0x88, 0xd5, 0x27, 0xa9, 0xfe, 0x1d, 0x05, 0x7f, 0x81, + 0x07, 0x57, 0x8f, 0x93, 0x14, 0x32, 0xac, 0xb0, 0x52, 0x6d, 0x5c, 0x54, 0x0b, 0xff, 0x2e, 0x5b, + 0x82, 0x96, 0x60, 0x4b, 0x19, 0x27, 0x1c, 0x87, 0x96, 0x12, 0xc5, 0xe7, 0xb8, 0xcc, 0x16, 0x3a, + 0x8d, 0x00, 0xaf, 0x36, 0xba, 0xec, 0xb5, 0x84, 0x8f, 0x15, 0x4f, 0xa8, 0xb0, 0x48, 0x6c, 0x51, + 0x41, 0x3a, 0x72, 0xdd, 0x2a, 0xe9, 0x72, 0x06, 0xab, 0xfe, 0xe2, 0x52, 0x26, 0xe7, 0x17, 0x31, + 0x7d, 0xcd, 0x5f, 0xf5, 0x71, 0x96, 0x9f, 0xc0, 0x2b, 0x92, 0x6d, 0x1c, 0xab, 0x8e, 0x94, 0xfe, + 0x26, 0xe6, 0x93, 0xc6, 0xbe, 0x60, 0x49, 0x5a, 0xf0, 0x18, 0x5f, 0x52, 0xcf, 0x3b, 0x7f, 0x4a, + 0xcc, 0xc3, 0x85, 0x52, 0x05, 0x8c, 0x76, 0xd4, 0x81, 0xa9, 0x13, 0xbf, 0xdd, 0x81, 0x39, 0x31, + 0x84, 0xd5, 0x8b, 0x1a, 0xc5, 0x0c, 0x8d, 0x5c, 0x52, 0x64, 0xae, 0x84, 0x10, 0x81, 0x7a, 0xe9, + 0xbe, 0x51, 0x22, 0x1c, 0x9e, 0x1c, 0x2c, 0x89, 0xfe, 0xd1, 0xc8, 0x0a, 0xc7, 0xd5, 0x95, 0x2e, + 0xf4, 0xc4, 0x03, 0x93, 0x0b, 0xcf, 0xd3, 0xbc, 0x8e, 0x70, 0xff, 0xc4, 0x09, 0x1b, 0x0e, 0x8d, + 0x63, 0xd7, 0xa4, 0x3f, 0xca, 0x24, 0x79, 0x99, 0x86, 0x37, 0x24, 0xcf, 0x6a, 0xf7, 0xbf, 0x2f, + 0x4a, 0xb3, 0x3e, 0xe7, 0x61, 0xef, 0x23, 0x06, 0xfe, 0xc6, 0x6c, 0xa2, 0x8f, 0xd0, 0x30, 0xc5, + 0x69, 0x3b, 0x91, 0x57, 0xec, 0x43, 0x44, 0x41, 0x0b, 0x9b, 0x8d, 0x49, 0xb4, 0x22, 0x75, 0x90, + 0x4d, 0x12, 0x0b, 0x58, 0x49, 0x2b, 0xde, 0x38, 0x71, 0x78, 0x8e, 0xf5, 0x60, 0x31, 0x0d, 0xbb, + 0xb1, 0xda, 0x35, 0x7a, 0x58, 0xf2, 0x0d, 0x1f, 0x25, 0x4f, 0xd4, 0x4f, 0x3a, 0x4f, 0xb0, 0xcc, + 0x5c, 0x04, 0x42, 0x5c, 0x87, 0xcd, 0x58, 0x13, 0xc5, 0xf6, 0xef, 0x40, 0xa3, 0x37, 0x5f, 0x66, + 0x00, 0x0a, 0x36, 0xa5, 0x25, 0xf6, 0x7a, 0x55, 0x6e, 0xd5, 0xb9, 0x4f, 0x3b, 0xb0, 0x3f, 0x50, + 0xad, 0x83, 0xf1, 0x76, 0xf0, 0x63, 0x0b, 0xcc, 0x82, 0x78, 0x03, 0x49, 0xb9, 0x9e, 0x33, 0x48, + 0xcc, 0xb9, 0x25, 0xb1, 0x20, 0xf5, 0x64, 0x58, 0x64, 0x0f, 0x4e, 0x3b, 0xf4, 0xea, 0xcb, 0xe4, + 0x16, 0x2d, 0x9b, 0xcb, 0xa1, 0x2d, 0x5c, 0x20, 0x64, 0x60, 0x0e, 0x84, 0xf9, 0x7f, 0x1b, 0x02, + 0x25, 0x29, 0x1c, 0xac, 0x5f, 0x0e, 0xf6, 0x17, 0x0e, 0x26, 0x88, 0x4b, 0xf9, 0xe2, 0x81, 0xa1, + 0x0a, 0x33, 0xc6, 0xe3, 0x81, 0x42, 0x4a, 0x27, 0x78, 0x31, 0xad, 0xf6, 0x60, 0xf2, 0xdb, 0x08, + 0xe0, 0x33, 0xb7, 0x6b, 0xd0, 0x10, 0x11, 0x34, 0xe2, 0x01, 0x8b, 0x2c, 0x91, 0x15, 0x95, 0x8b, + 0x68, 0xfc, 0x12, 0xbc, 0xd4, 0x40, 0x1e, 0xcf, 0x6f, 0xa2, 0x1d, 0x78, 0xf6, 0x09, 0x7f, 0xd4, + 0x45, 0x8f, 0x59, 0xff, 0x98, 0x56, 0x8c, 0x1f, 0xdb, 0x32, 0xfe, 0xb8, 0x1f, 0x79, 0xaf, 0xe6, + 0x51, 0x48, 0x5d, 0xd9, 0x6d, 0xdc, 0x40, 0x60, 0xcc, 0xcc, 0xed, 0x51, 0xdf, 0x4b, 0x27, 0x53, + 0xfa, 0x77, 0x2c, 0x24, 0x02, 0x15, 0xd1, 0x17, 0xa1, 0x05, 0xc3, 0x2d, 0x16, 0xe4, 0x10, 0x09, + 0x41, 0x1b, 0x9b, 0x28, 0x1a, 0x27, 0xb6, 0x51, 0xc8, 0xe4, 0x3e, 0xdb, 0xc6, 0x02, 0x34, 0xc6, + 0x79, 0x25, 0xb6, 0x5c, 0x03, 0x07, 0x16, 0x56, 0x6e, 0x65, 0xd4, 0x34, 0xea, 0xd7, 0xf2, 0xd1, + 0x84, 0x6e, 0x56, 0xca, 0x64, 0xea, 0x68, 0x8f, 0xcf, 0x89, 0xc3, 0xf8, 0x67, 0x89, 0x41, 0xce, + 0x15, 0x2a, 0x4c, 0xe5, 0xcb, 0xce, 0x30, 0x56, 0x15, 0x83, 0x93, 0x92, 0x98, 0xa4, 0xdc, 0xf7, + 0xac, 0x17, 0xab, 0x19, 0x43, 0x7e, 0xc0, 0x0f, 0xcc, 0x1f, 0xa7, 0x75, 0xeb, 0x7c, 0x67, 0xcc, + 0x73, 0x44, 0xd6, 0xab, 0xf3, 0xde, 0xa5, 0x3e, 0x7e, 0x0b, 0x23, 0xa6, 0x02, 0xa6, 0x38, 0x8c, + 0xf7, 0xcb, 0xdd, 0x1e, 0x65, 0x32, 0x99, 0xef, 0x59, 0x28, 0xbf, 0xc5, 0xad, 0x7d, 0x37, 0x4c, + 0x2f, 0xd8, 0x29, 0x01, 0x10, 0xab, 0xc8, 0x91, 0xb6, 0xe0, 0xdd, 0x5f, 0x05, 0xfc, 0xd6, 0x5a, + 0xcb, 0xb4, 0xed, 0x37, 0xd1, 0x07, 0xc5, 0x19, 0xaa, 0xda, 0x75, 0xb8, 0x63, 0x65, 0xac, 0xb4, + 0x08, 0x9c, 0x2f, 0x14, 0xf2, 0xf7, 0x6c, 0x00, 0x38, 0xec, 0x5a, 0xbb, 0xcf, 0x6f, 0x79, 0x0d, + 0x93, 0xb4, 0x35, 0xaf, 0x39, 0x2f, 0x3e, 0x05, 0x4f, 0x0a, 0x01, 0xd2, 0x79, 0x2f, 0xdf, 0xcb, + 0xc6, 0x5b, 0xc0, 0x8b, 0xa9, 0x40, 0xd0, 0x58, 0x0f, 0x53, 0x29, 0xb2, 0xb8, 0x35, 0xd2, 0x06, + 0x45, 0x9c, 0x39, 0x41, 0x78, 0xa6, 0xd1, 0xd1, 0x31, 0x2e, 0x30, 0x00, 0xed, 0xf7, 0x75, 0x95, + 0xa4, 0xa6, 0x84, 0x00, 0x3f, 0x6e, 0x5f, 0x87, 0x0e, 0x69, 0xfe, 0x2b, 0x89, 0xfe, 0xc0, 0x6f, + 0xad, 0x7f, 0x9d, 0xaa, 0x52, 0xb9, 0x57, 0x03, 0x54, 0x6b, 0x5b, 0xdf, 0x2d, 0xa6, 0x17, 0xf4, + 0x92, 0x25, 0xbf, 0x45, 0xe0, 0x7c, 0xcf, 0x5a, 0x30, 0x18, 0xda, 0x5c, 0xd8, 0x87, 0xb0, 0x0b, + 0xe7, 0x3a, 0xcf, 0xad, 0xc5, 0x3a, 0x70, 0xae, 0x43, 0xeb, 0xc9, 0x2d, 0xe6, 0x94, 0x5c, 0x6d, + 0x69, 0x83, 0x18, 0xb5, 0x96, 0x34, 0xb8, 0xb6, 0xaa, 0xc5, 0xd6, 0x9b, 0xd1, 0x59, 0x18, 0x33, + 0x26, 0x26, 0x36, 0xba, 0x86, 0xad, 0xca, 0x72, 0x69, 0x79, 0xab, 0x58, 0xf5, 0xa3, 0x51, 0xb6, + 0xec, 0xc5, 0x51, 0x9e, 0x7a, 0x37, 0xfc, 0x97, 0x8e, 0xb5, 0x20, 0x4b, 0xcb, 0x5b, 0x5d, 0xbb, + 0x54, 0xd5, 0x97, 0x8f, 0x9a, 0x3d, 0x5a, 0x18, 0xe7, 0x11, 0xb0, 0xb3, 0xe5, 0xe3, 0x94, 0x4a, + 0x2b, 0xc6, 0x89, 0x55, 0x3f, 0x9c, 0x4d, 0x5c, 0xc6, 0x09, 0x13, 0x8a, 0xc9, 0xcb, 0xe7, 0x34, + 0xd7, 0x5d, 0xde, 0x2a, 0xa9, 0xba, 0x96, 0xdc, 0xae, 0xdf, 0xca, 0xb7, 0x09, 0x68, 0x0c, 0xe6, + 0x24, 0x03, 0xe2, 0x0a, 0x71, 0xac, 0xc8, 0xd0, 0x50, 0xe5, 0x59, 0x47, 0x75, 0x31, 0xf6, 0x8b, + 0xc3, 0x7f, 0xc3, 0x86, 0xd7, 0x12, 0xe8, 0x77, 0x15, 0x35, 0x35, 0x4d, 0xa3, 0xa7, 0xf5, 0x93, + 0x5b, 0x66, 0xd7, 0x50, 0x67, 0xb8, 0xb8, 0x82, 0x3a, 0x67, 0xd0, 0xed, 0xd4, 0x17, 0x69, 0xe9, + 0x90, 0xf3, 0xc1, 0x90, 0xd7, 0x12, 0x16, 0x4e, 0x93, 0xc3, 0xfa, 0xb1, 0xa6, 0x19, 0x8e, 0x40, + 0x5a, 0xa7, 0x4c, 0x18, 0x17, 0x76, 0xd0, 0xfb, 0x41, 0x17, 0x26, 0x72, 0xc7, 0xf6, 0x03, 0x76, + 0x23, 0x80, 0x08, 0x33, 0xd0, 0x74, 0x2c, 0x1e, 0xed, 0x10, 0xc7, 0xc4, 0x0a, 0x89, 0xcc, 0x5c, + 0x5f, 0xbf, 0xc1, 0x30, 0xf3, 0x38, 0x6d, 0x74, 0xe5, 0x51, 0xda, 0x88, 0x00, 0x0c, 0xe5, 0x05, + 0xce, 0x83, 0x8d, 0x62, 0x26, 0x45, 0x0f, 0xcd, 0x83, 0xde, 0x10, 0xf4, 0x90, 0x30, 0xdd, 0x90, + 0xa8, 0xba, 0x90, 0x82, 0xcc, 0xc5, 0x34, 0x48, 0xd9, 0x3a, 0x4f, 0x83, 0x76, 0xdf, 0xd8, 0x8a, + 0xa6, 0xa7, 0xdc, 0x81, 0xe6, 0x40, 0x1e, 0x70, 0xfa, 0x3a, 0x9f, 0x2b, 0x16, 0xa1, 0x3f, 0xb0, + 0xf9, 0xd5, 0x79, 0x99, 0xe7, 0xd8, 0x68, 0xd9, 0x20, 0x98, 0xeb, 0x23, 0x78, 0x93, 0x73, 0x65, + 0x3e, 0xa9, 0x3f, 0xde, 0x5e, 0x10, 0x72, 0x51, 0x9f, 0x8b, 0x53, 0x69, 0x26, 0x5a, 0x98, 0xca, + 0x21, 0x58, 0x96, 0xe6, 0x86, 0x98, 0xf6, 0x7e, 0x34, 0x72, 0x4f, 0x83, 0xe0, 0xdc, 0x0f, 0xca, + 0x01, 0xfd, 0x22, 0xe1, 0xc0, 0x95, 0x36, 0x5e, 0xad, 0x69, 0xeb, 0x8a, 0xf1, 0x82, 0x00, 0x68, + 0xc9, 0x05, 0x00, 0x4c, 0xff, 0x82, 0xf0, 0x08, 0x7e, 0xbf, 0x09, 0xa6, 0xa8, 0x03, 0x29, 0xcf, + 0xd0, 0xa0, 0xa7, 0x47, 0xf0, 0xcc, 0x7c, 0x7b, 0xe1, 0xd9, 0xfd, 0x42, 0xb0, 0x6f, 0x60, 0xf7, + 0x63, 0x3b, 0x05, 0x16, 0x24, 0x7e, 0xfa, 0x7c, 0x74, 0x90, 0xfc, 0xa7, 0xa6, 0x2d, 0x9c, 0xb5, + 0x43, 0x3e, 0xa0, 0x4b, 0xbf, 0xa1, 0x70, 0xc2, 0xf0, 0xa6, 0xca, 0x21, 0x9d, 0x42, 0x66, 0x5a, + 0x69, 0x8c, 0x76, 0xc9, 0x9f, 0xbd, 0x7c, 0xb1, 0x02, 0x4f, 0x38, 0x79, 0x12, 0xc0, 0x4a, 0x9a, + 0x3d, 0x09, 0xf7, 0x4d, 0xd5, 0x02, 0x2c, 0x1a, 0x6f, 0x2b, 0xa7, 0x11, 0x90, 0x4d, 0xf7, 0xd7, + 0x0f, 0x6f, 0x31, 0x80, 0xd0, 0xcf, 0xe5, 0xc8, 0xf5, 0x08, 0x89, 0x93, 0x2b, 0xf4, 0x26, 0x07, + 0x97, 0xa7, 0x57, 0x3a, 0x7a, 0x5c, 0x31, 0x47, 0xaf, 0x62, 0x70, 0xa5, 0x32, 0x96, 0x81, 0x87, + 0xb2, 0x77, 0x7b, 0x84, 0xc7, 0x1d, 0x23, 0x32, 0x67, 0x0e, 0x68, 0x2f, 0xc1, 0x7c, 0x84, 0x97, + 0x43, 0xf9, 0xad, 0xc3, 0x11, 0xac, 0x4b, 0xcc, 0x5d, 0x5c, 0x91, 0x0e, 0x45, 0xfc, 0xda, 0x7f, + 0x09, 0xf3, 0xad, 0x85, 0x19, 0xc6, 0x35, 0xc9, 0x60, 0xbe, 0xf5, 0x11, 0xe6, 0x65, 0x49, 0x0a, + 0x31, 0x1f, 0x41, 0xfc, 0x9a, 0xbf, 0x6e, 0xa4, 0xff, 0x01, 0xb8, 0xff, 0xaa, 0x28, 0x0a, 0x27, + 0x79, 0xe8, 0x4c, 0xc2, 0xe6, 0x5a, 0x12, 0x3a, 0x5b, 0x8a, 0xeb, 0x79, 0xc3, 0x2d, 0xc3, 0xea, + 0x38, 0x99, 0x9c, 0xd7, 0xfe, 0x08, 0xab, 0x77, 0x1f, 0x61, 0xf5, 0xee, 0x7f, 0x2a, 0x56, 0x3f, + 0x8f, 0x9f, 0x3b, 0x84, 0x9d, 0x65, 0x59, 0x7a, 0x32, 0x96, 0x5e, 0xfe, 0x09, 0xda, 0x3b, 0xf9, + 0x08, 0x4b, 0x27, 0x9f, 0xc0, 0x52, 0x45, 0xf6, 0xf0, 0x24, 0x57, 0xa4, 0x65, 0xa8, 0x2a, 0x81, + 0x36, 0xf7, 0x0f, 0x21, 0xe8, 0x44, 0xd5, 0xc7, 0x9a, 0x91, 0xbd, 0x51, 0x87, 0x20, 0x1a, 0x23, + 0x31, 0x2d, 0x5d, 0x9e, 0xde, 0x55, 0xa5, 0x08, 0xe7, 0xb5, 0xff, 0x01, 0x5e, 0x79, 0xfd, 0x11, + 0xaf, 0xbc, 0xee, 0xb7, 0x3f, 0xc2, 0x1b, 0xd9, 0xeb, 0x56, 0x72, 0xcb, 0x3f, 0xdc, 0xeb, 0x56, + 0x60, 0xec, 0x1a, 0x98, 0x24, 0xf6, 0xc4, 0x50, 0xf5, 0x65, 0xa8, 0xea, 0xff, 0x13, 0x6b, 0xee, + 0xe0, 0x23, 0x6a, 0xfa, 0x53, 0xbc, 0x24, 0xaf, 0xba, 0xbf, 0x83, 0x97, 0x24, 0xb4, 0xac, 0x1d, + 0xd8, 0xaa, 0x6a, 0x7c, 0x84, 0x99, 0xf6, 0x0a, 0x82, 0x59, 0xfb, 0x2c, 0x66, 0x76, 0x16, 0x31, + 0x93, 0x84, 0x98, 0xb5, 0xbf, 0x87, 0x99, 0x45, 0xc4, 0xac, 0xfd, 0xd7, 0x30, 0xb3, 0x03, 0xf0, + 0x7c, 0xbc, 0xac, 0xc5, 0x11, 0x13, 0xc3, 0xcf, 0x64, 0x05, 0x7e, 0x48, 0xfe, 0x40, 0x6b, 0xa3, + 0x44, 0xf8, 0x69, 0x5c, 0xdd, 0x7f, 0x80, 0xab, 0xfb, 0xff, 0x95, 0x30, 0x75, 0x8f, 0x87, 0x2b, + 0x4b, 0x51, 0x15, 0xe0, 0xa0, 0xad, 0xe8, 0x7f, 0x87, 0xe7, 0xac, 0x31, 0x68, 0x69, 0x24, 0xa1, + 0x85, 0x15, 0xb2, 0x15, 0x1d, 0xbd, 0x37, 0x89, 0x40, 0x9d, 0x21, 0xe3, 0x4c, 0x10, 0xab, 0xa5, + 0x7f, 0x44, 0xac, 0x26, 0xe8, 0x58, 0x5b, 0x81, 0x8f, 0x36, 0xed, 0xcb, 0x32, 0x74, 0x90, 0x0b, + 0x08, 0xf1, 0x09, 0x80, 0xc4, 0x50, 0xab, 0xfa, 0x66, 0x35, 0x53, 0x3c, 0x0a, 0x75, 0xf0, 0x1f, + 0x2f, 0x7c, 0xe3, 0xc8, 0x97, 0x98, 0xea, 0x3c, 0x30, 0xb2, 0xc0, 0xf4, 0xb2, 0x78, 0xc9, 0x4e, + 0xed, 0x32, 0x52, 0x1d, 0x33, 0x96, 0x44, 0xc8, 0x4a, 0x14, 0xf2, 0x85, 0xcf, 0x64, 0x96, 0x41, + 0xf7, 0xab, 0x6c, 0x2d, 0x6b, 0x60, 0x2d, 0xde, 0x42, 0xa7, 0x1c, 0x69, 0xe1, 0x51, 0xd5, 0x75, + 0x73, 0xb2, 0xbc, 0xfb, 0x7e, 0x8d, 0xad, 0x40, 0x77, 0xf9, 0x68, 0x08, 0xa0, 0xcc, 0xb2, 0x0d, + 0xdc, 0x2b, 0xf6, 0x90, 0x23, 0xf8, 0x5f, 0x3d, 0x0c, 0x52, 0xed, 0xf3, 0xc3, 0xc0, 0xff, 0xd8, + 0x56, 0x68, 0x03, 0x2b, 0xe0, 0xf7, 0x92, 0x6d, 0x59, 0x00, 0x9d, 0xc3, 0x2b, 0x20, 0xf1, 0x71, + 0x48, 0x52, 0x6c, 0x92, 0x77, 0x74, 0x00, 0xba, 0x6a, 0x08, 0xcc, 0x34, 0x7c, 0x6f, 0xdb, 0x9f, + 0x19, 0x03, 0xa8, 0x00, 0xec, 0x18, 0x2e, 0x35, 0xd0, 0xde, 0x56, 0x0c, 0x41, 0x5a, 0x3e, 0x84, + 0xa4, 0xde, 0x47, 0x60, 0x23, 0xeb, 0x5c, 0x01, 0x5b, 0x42, 0xd8, 0x9f, 0x24, 0x52, 0x84, 0xdc, + 0x29, 0x33, 0xb0, 0x9b, 0x6f, 0x8a, 0xb1, 0x1a, 0x31, 0xa4, 0xc2, 0x67, 0xe7, 0x56, 0x2a, 0x23, + 0x66, 0x18, 0xf8, 0x64, 0x3f, 0x5c, 0xd5, 0x79, 0x5a, 0xe1, 0x93, 0x14, 0x6a, 0x1b, 0x5d, 0x76, + 0xe9, 0x2a, 0x46, 0xd7, 0x1c, 0x7e, 0x4a, 0xbb, 0x70, 0x4d, 0x8e, 0x48, 0xbf, 0xa8, 0x59, 0x88, + 0x26, 0x59, 0x98, 0x44, 0xc1, 0x13, 0xfb, 0xd8, 0x3f, 0xa2, 0xd0, 0x89, 0xd6, 0xc8, 0xb6, 0x74, + 0x75, 0xc9, 0x6d, 0xd6, 0x0d, 0x19, 0x8d, 0xe6, 0x80, 0xe7, 0xeb, 0x25, 0x7b, 0x56, 0xc7, 0xd1, + 0xf9, 0xa8, 0x31, 0x0b, 0x52, 0x24, 0x9e, 0xb1, 0xa0, 0x72, 0xd3, 0xa9, 0x03, 0xaf, 0xac, 0x79, + 0x84, 0x9e, 0xd9, 0xb7, 0x74, 0xd3, 0x25, 0x3b, 0x0d, 0x7e, 0xd4, 0x6a, 0xc3, 0x26, 0x2c, 0x95, + 0x3c, 0xf6, 0xc3, 0xc7, 0x76, 0xf8, 0x38, 0xc1, 0xc7, 0x2d, 0x39, 0x34, 0xea, 0xac, 0xc5, 0x5a, + 0x95, 0x13, 0x5b, 0x4d, 0x6a, 0x54, 0x8e, 0x36, 0xba, 0xf6, 0x61, 0xab, 0xb9, 0x64, 0xbb, 0x1d, + 0x34, 0x9a, 0x0b, 0xb7, 0xe3, 0x8f, 0x5a, 0xcd, 0x7d, 0x66, 0xa8, 0x6b, 0x4c, 0xab, 0xf9, 0x45, + 0x03, 0x56, 0x60, 0xad, 0xa2, 0x61, 0xda, 0xb8, 0x01, 0xef, 0x77, 0xe4, 0x94, 0x9a, 0xbf, 0x42, + 0xb3, 0x15, 0xb5, 0x67, 0xa8, 0xd3, 0x49, 0x92, 0xd9, 0xca, 0x0b, 0x76, 0xcb, 0x1a, 0xdf, 0xfa, + 0x3a, 0x15, 0x9d, 0x22, 0x66, 0xc5, 0x88, 0x51, 0x0a, 0x80, 0x75, 0xfc, 0x5d, 0x8f, 0xec, 0x51, + 0x09, 0xdb, 0xe8, 0x8b, 0xfa, 0xd6, 0x35, 0x27, 0x06, 0x29, 0xbc, 0x87, 0x47, 0x8f, 0x28, 0x62, + 0xe0, 0x01, 0xa2, 0xff, 0x19, 0xb6, 0x3a, 0x6f, 0xc2, 0x2a, 0x87, 0x4d, 0x54, 0x99, 0xea, 0xaa, + 0xd1, 0x77, 0x07, 0x75, 0xbe, 0x1c, 0xa3, 0x20, 0x6c, 0xc7, 0xe8, 0x45, 0x66, 0x93, 0x5e, 0x2d, + 0x64, 0xba, 0x4b, 0xec, 0x28, 0xea, 0xd4, 0xb3, 0x8b, 0x46, 0xcc, 0x93, 0x9c, 0x7f, 0x33, 0x93, + 0x0e, 0x25, 0x5f, 0xf1, 0x2c, 0xc1, 0x1f, 0x21, 0x93, 0xa2, 0x12, 0x9d, 0x47, 0x90, 0xaf, 0x7c, + 0x0a, 0x63, 0x5e, 0x0f, 0x08, 0xc6, 0xda, 0x79, 0x8a, 0x31, 0x22, 0x41, 0x71, 0x00, 0x46, 0x75, + 0x5d, 0x35, 0x98, 0x8e, 0x35, 0x1f, 0xf8, 0x84, 0x8f, 0x1a, 0x14, 0x59, 0x49, 0x81, 0xc6, 0x0f, + 0xe4, 0x7a, 0xb0, 0xdc, 0x03, 0xcc, 0xb3, 0xe8, 0x5e, 0x63, 0xfc, 0x06, 0xea, 0x7c, 0x8b, 0x84, + 0x1e, 0x0e, 0x45, 0xba, 0x6f, 0x34, 0x16, 0x31, 0x11, 0x5b, 0x44, 0xde, 0x73, 0x82, 0x41, 0xbe, + 0x01, 0x0b, 0x8f, 0x78, 0x32, 0x2c, 0x2d, 0xb1, 0x48, 0x20, 0x61, 0x38, 0x62, 0x76, 0xdd, 0x62, + 0xaa, 0xe1, 0xd9, 0x19, 0x29, 0x6e, 0xcb, 0x3d, 0x9f, 0x4c, 0xe2, 0xe8, 0x0a, 0xc2, 0x22, 0xfb, + 0xd6, 0x62, 0x99, 0x96, 0x5c, 0x8b, 0x73, 0x10, 0xbf, 0x1b, 0xc1, 0x64, 0xe0, 0x4b, 0x14, 0x31, + 0xe8, 0x1d, 0x40, 0xbe, 0xaf, 0x89, 0xf3, 0x14, 0x4c, 0x36, 0x3d, 0x9b, 0x27, 0xbe, 0x8b, 0xcc, + 0xac, 0xe0, 0x27, 0x04, 0x2f, 0x29, 0xf2, 0x89, 0xd5, 0x7c, 0x01, 0x10, 0x63, 0x1e, 0x8c, 0xe8, + 0x79, 0xbe, 0x97, 0x0f, 0x64, 0x78, 0x67, 0x59, 0x99, 0x4c, 0x86, 0x5b, 0x10, 0xd9, 0x49, 0x1f, + 0x16, 0x44, 0x78, 0xf6, 0x67, 0x2d, 0x1c, 0x9b, 0x17, 0x6d, 0xf4, 0x03, 0xeb, 0x64, 0x6f, 0xca, + 0x27, 0x2d, 0x6d, 0x10, 0xd0, 0xc8, 0xb2, 0xc3, 0xe8, 0xeb, 0xde, 0xea, 0xa6, 0xf0, 0xb8, 0xa1, + 0x67, 0xe0, 0x5e, 0x4a, 0x3d, 0x1e, 0xd8, 0x7d, 0x8d, 0xa5, 0xa4, 0x35, 0x96, 0x94, 0xfe, 0x80, + 0x92, 0xa8, 0x37, 0xd6, 0x0a, 0x42, 0xf2, 0x0b, 0x88, 0xfd, 0xa3, 0x6e, 0x8a, 0xa7, 0x1e, 0x36, + 0x0e, 0x2f, 0x64, 0x48, 0xc7, 0xf0, 0xe3, 0x8e, 0xf8, 0xa5, 0x47, 0xc8, 0x50, 0x80, 0x45, 0x50, + 0x28, 0x6d, 0x7d, 0x64, 0xd7, 0xbf, 0x2d, 0x2d, 0x6e, 0xab, 0x43, 0x73, 0xac, 0x06, 0x35, 0xfe, + 0xc7, 0x92, 0x27, 0xb3, 0x97, 0x2f, 0xed, 0x10, 0x3d, 0x99, 0x48, 0xf1, 0xe8, 0x88, 0x81, 0x43, + 0xf0, 0x76, 0xde, 0xa8, 0x9f, 0xa4, 0x7f, 0x0e, 0xe4, 0x53, 0x7a, 0x9c, 0xd0, 0x3d, 0x34, 0xfd, + 0x83, 0x74, 0xbe, 0xff, 0xf0, 0x3f, 0x9d, 0xc2, 0x83, 0x9d, 0xc5, 0x8b, 0xc1, 0x19, 0xa1, 0x63, + 0x0f, 0x73, 0x7e, 0x5f, 0xe8, 0x7b, 0x38, 0xa0, 0xb0, 0xcc, 0x25, 0x2a, 0x71, 0x7e, 0xb7, 0xa8, + 0x6b, 0x0f, 0xf1, 0x28, 0x26, 0xd3, 0x26, 0xef, 0xe7, 0x1b, 0xe5, 0x5a, 0x94, 0xff, 0x91, 0x32, + 0x6d, 0x73, 0xea, 0xed, 0x95, 0x3d, 0x1d, 0x34, 0xd8, 0xa0, 0x68, 0x44, 0x87, 0xa5, 0x0d, 0xec, + 0x4f, 0x7d, 0x3a, 0x88, 0x6a, 0x9c, 0x81, 0xc7, 0x10, 0xee, 0x94, 0xfe, 0xb8, 0xfd, 0x01, 0x7b, + 0x68, 0x0f, 0xbb, 0x29, 0xef, 0xf2, 0x5c, 0x72, 0x27, 0xcb, 0x95, 0x42, 0x6e, 0x69, 0x17, 0xd7, + 0xd8, 0x3e, 0x92, 0x92, 0xac, 0x82, 0xf9, 0xc7, 0x1d, 0x5c, 0x8b, 0xf7, 0x30, 0xec, 0x60, 0x6e, + 0x69, 0x07, 0x2b, 0xa5, 0x7c, 0x88, 0xc3, 0xb5, 0x55, 0x48, 0x24, 0x25, 0x3f, 0xd1, 0xc1, 0xb5, + 0xcf, 0xa3, 0x30, 0xec, 0xe0, 0x9d, 0xa9, 0x27, 0xf7, 0x10, 0x96, 0x4a, 0xa5, 0x9c, 0x2f, 0x7c, + 0x6a, 0x9a, 0x49, 0xc1, 0x95, 0x3d, 0x5c, 0xfb, 0xd3, 0x49, 0x0e, 0x7b, 0xb8, 0x6f, 0xab, 0xaf, + 0x4b, 0x69, 0x11, 0x5a, 0x2e, 0x7e, 0xb6, 0x8b, 0xc5, 0x7f, 0x8c, 0x0e, 0x93, 0x97, 0x9a, 0x94, + 0x60, 0xf6, 0x58, 0x79, 0x1a, 0x99, 0xcc, 0xa4, 0x22, 0xf2, 0x0b, 0x0c, 0x5e, 0x7d, 0x0f, 0x4e, + 0x29, 0xf3, 0xb9, 0x22, 0x73, 0x4a, 0xf9, 0x69, 0x2b, 0x53, 0xcb, 0x52, 0xd1, 0x98, 0x90, 0x60, + 0xaf, 0x64, 0x6c, 0x2a, 0xa4, 0xd0, 0xe7, 0x8f, 0x2e, 0xff, 0x51, 0x73, 0xae, 0x77, 0x72, 0xb9, + 0xf6, 0xd1, 0xd1, 0x25, 0x99, 0xa0, 0x70, 0x5c, 0x64, 0xcf, 0x0d, 0xb1, 0x1e, 0x35, 0x78, 0x7a, + 0x3b, 0xb1, 0x83, 0xc3, 0x5a, 0x7a, 0xa6, 0x45, 0xc0, 0xc8, 0x89, 0xf3, 0xb6, 0xb6, 0x7c, 0xe2, + 0x3e, 0x31, 0x6f, 0xa4, 0x6b, 0x8e, 0x3f, 0x6f, 0x05, 0xa9, 0x42, 0x3d, 0x49, 0xfe, 0xcc, 0xf6, + 0x8e, 0x5f, 0x3c, 0xc6, 0x5b, 0x05, 0x6f, 0x1f, 0xcd, 0x5d, 0x50, 0xf0, 0xff, 0x0f, 0xf3, 0x97, + 0x30, 0x5b, 0xf1, 0x39, 0x95, 0xc3, 0xf9, 0xd3, 0xfc, 0xa1, 0xad, 0x9e, 0xc3, 0x5c, 0x6c, 0x0e, + 0x39, 0x22, 0x08, 0x7c, 0x30, 0x91, 0x11, 0x3f, 0x94, 0x3f, 0x3c, 0xf9, 0x6f, 0xca, 0x1f, 0xd8, + 0x28, 0x9b, 0x23, 0xc7, 0x35, 0x87, 0x44, 0x93, 0x5d, 0xfb, 0xb3, 0x29, 0x49, 0x3e, 0x4e, 0xfe, + 0x23, 0x1b, 0xee, 0x27, 0x5d, 0x01, 0x96, 0xda, 0x36, 0xe3, 0x13, 0x92, 0xe3, 0xb7, 0xe8, 0x78, + 0x38, 0x79, 0xf5, 0x3c, 0xe4, 0xe3, 0xc6, 0x6f, 0x66, 0x22, 0x56, 0xcf, 0x83, 0xef, 0xad, 0xf2, + 0x87, 0xbc, 0xad, 0x99, 0xfb, 0x68, 0x71, 0x78, 0x13, 0x91, 0xfb, 0x67, 0x96, 0x86, 0xf4, 0xff, + 0xe9, 0xc2, 0xc8, 0xc3, 0xc2, 0xf0, 0x26, 0x22, 0xb7, 0x7a, 0x22, 0x0a, 0x7f, 0x7b, 0x41, 0x48, + 0x6a, 0xf9, 0x6f, 0x2d, 0x88, 0xfc, 0xe7, 0x16, 0x44, 0xfe, 0x53, 0x0b, 0x22, 0x2f, 0xff, 0x2f, + 0xbd, 0x1e, 0x0a, 0xc1, 0x7a, 0xc8, 0x2f, 0x9b, 0x86, 0xde, 0xd4, 0xb4, 0xdc, 0x70, 0x35, 0x78, + 0x17, 0xf1, 0x88, 0xc2, 0x14, 0x11, 0x72, 0x20, 0x43, 0x8a, 0x49, 0x60, 0xe4, 0xb2, 0x9e, 0x37, + 0x61, 0xc9, 0xae, 0x6c, 0xbe, 0x2d, 0x63, 0x35, 0xe1, 0x00, 0x68, 0x6f, 0x8b, 0xdc, 0x6a, 0x12, + 0xc0, 0xe1, 0xe2, 0x65, 0xa6, 0x8f, 0xb4, 0x79, 0x11, 0x38, 0x21, 0x85, 0xe2, 0x53, 0x64, 0xf6, + 0x2e, 0x48, 0xff, 0x53, 0xb2, 0x48, 0xce, 0x5c, 0x3c, 0x4f, 0xfb, 0xbf, 0x2d, 0x7b, 0x42, 0xcf, + 0xe4, 0xd5, 0x83, 0x4e, 0xf0, 0x67, 0xcb, 0x17, 0xda, 0x7f, 0x30, 0x68, 0xd9, 0x1f, 0x74, 0x6e, + 0x2d, 0x36, 0xea, 0x70, 0xd0, 0xb9, 0xc5, 0x41, 0xaf, 0x25, 0x8d, 0x3a, 0xb7, 0x64, 0xd4, 0x9f, + 0x18, 0xf4, 0x5a, 0x74, 0xd4, 0xb9, 0x3f, 0x99, 0x6a, 0xb2, 0x1a, 0x0b, 0x1d, 0x66, 0xd0, 0x6b, + 0x1f, 0x8d, 0x3a, 0xe7, 0x8f, 0x3a, 0xbf, 0x74, 0xd0, 0x79, 0x7e, 0x51, 0xdd, 0x48, 0x1a, 0x74, + 0xfe, 0xd3, 0x83, 0x5e, 0x5b, 0x2a, 0x21, 0x27, 0x9b, 0xa4, 0x5b, 0x6a, 0x7f, 0x88, 0x61, 0x74, + 0x93, 0xad, 0x2e, 0x6b, 0x21, 0x27, 0xa3, 0x77, 0x01, 0xe3, 0xda, 0x70, 0x8c, 0xdd, 0xd1, 0xcb, + 0x86, 0x3c, 0x6b, 0x65, 0x69, 0x9b, 0x44, 0xb7, 0x66, 0x4d, 0xf7, 0x4c, 0xd1, 0x1c, 0x63, 0xcd, + 0x8c, 0x59, 0x30, 0x3d, 0x13, 0xa3, 0xed, 0xc0, 0x0b, 0x23, 0xd0, 0xd9, 0xd0, 0x63, 0x22, 0xcc, + 0xad, 0x5d, 0xab, 0x80, 0x20, 0xce, 0xf1, 0x06, 0x90, 0x60, 0xb1, 0xdc, 0xba, 0x09, 0x6f, 0x82, + 0xb2, 0xb8, 0x77, 0x5d, 0x9f, 0xd6, 0xe8, 0xfd, 0x41, 0xe6, 0x94, 0x92, 0x30, 0xbc, 0x52, 0x31, + 0x53, 0xf4, 0x1d, 0x6c, 0xa4, 0x8c, 0x1c, 0x32, 0xba, 0xcc, 0x26, 0x10, 0x82, 0xd1, 0x76, 0xac, + 0x9a, 0xe7, 0xf1, 0x68, 0x51, 0x67, 0x3d, 0x12, 0x35, 0x31, 0xe4, 0x2f, 0x1e, 0x09, 0x91, 0x12, + 0x31, 0x0c, 0x5d, 0xda, 0xd8, 0xe9, 0x0f, 0x3d, 0xf0, 0x5e, 0x75, 0x9e, 0x31, 0xfe, 0x25, 0x18, + 0xbb, 0xb6, 0x3c, 0x40, 0x1f, 0x1b, 0xb6, 0x2c, 0xc7, 0x33, 0x6c, 0xad, 0x25, 0xd8, 0x48, 0xff, + 0xc4, 0x44, 0x4a, 0xa6, 0x7f, 0x85, 0x81, 0xd4, 0xcb, 0xff, 0xff, 0xd6, 0x3c, 0x4a, 0x3a, 0x11, + 0x37, 0x1a, 0x91, 0xa5, 0x12, 0xb5, 0x79, 0x52, 0xec, 0x21, 0x19, 0x85, 0xe4, 0xbc, 0xf4, 0x18, + 0xdd, 0x5a, 0x4d, 0xd4, 0x49, 0x46, 0x1f, 0xc6, 0x53, 0x1e, 0xcb, 0x52, 0x8f, 0x0e, 0x5a, 0x29, + 0x4a, 0xed, 0x78, 0x71, 0x44, 0x33, 0x5e, 0x58, 0x6b, 0xbd, 0x69, 0xa9, 0xc6, 0x8d, 0xd2, 0x4e, + 0x49, 0xc2, 0x32, 0xee, 0x1b, 0x6c, 0x39, 0xc9, 0xde, 0xc4, 0xe8, 0xe3, 0xb9, 0xc4, 0x9b, 0xf8, + 0xe3, 0x56, 0xe5, 0xbf, 0xe7, 0x49, 0xec, 0x19, 0x6f, 0x93, 0x9b, 0x5d, 0x68, 0x75, 0x6d, 0xa1, + 0xd9, 0xdc, 0xb2, 0x66, 0x83, 0x9d, 0x26, 0xd1, 0x23, 0xde, 0x5b, 0xfc, 0x6b, 0x9f, 0x6c, 0x77, + 0xa1, 0xd9, 0xfc, 0x72, 0x0f, 0x75, 0x9f, 0xd9, 0x27, 0x5e, 0x38, 0x08, 0x57, 0xdf, 0x72, 0xbf, + 0x69, 0xef, 0x5b, 0x00, 0xb1, 0x73, 0x57, 0x7a, 0xa5, 0x42, 0x41, 0xdb, 0x66, 0x64, 0x2d, 0xd8, + 0x7b, 0xf8, 0xd5, 0x87, 0x1b, 0xcc, 0xc1, 0x6b, 0x96, 0x42, 0x82, 0xbf, 0x6d, 0x10, 0x38, 0x67, + 0xc1, 0x0d, 0x3c, 0x74, 0x7b, 0x8f, 0xb5, 0x84, 0x97, 0x8a, 0x02, 0xca, 0x25, 0x37, 0x13, 0x79, + 0xe6, 0x2c, 0x70, 0xe1, 0xcc, 0x88, 0x23, 0x5f, 0x5f, 0xf8, 0xac, 0x2f, 0x3f, 0x47, 0xe2, 0x61, + 0xf8, 0x37, 0x17, 0xca, 0x4a, 0xfc, 0xe4, 0x28, 0xe8, 0xc4, 0xb0, 0x4f, 0xcf, 0xd5, 0x86, 0x7d, + 0xbf, 0xfe, 0x44, 0xe3, 0x39, 0x45, 0x77, 0x3d, 0xef, 0x66, 0x34, 0x0e, 0x55, 0x49, 0x40, 0xfb, + 0xac, 0x65, 0xf4, 0x6b, 0x6d, 0xc5, 0x51, 0x4b, 0x05, 0x51, 0xbb, 0xdb, 0xb9, 0xb8, 0x9e, 0x48, + 0x27, 0x07, 0x7d, 0x13, 0xbf, 0x46, 0x7d, 0xde, 0xba, 0x1d, 0xec, 0xdd, 0xf6, 0xe1, 0x69, 0x87, + 0x7c, 0x9d, 0x7a, 0xbf, 0xd9, 0x78, 0x84, 0x9f, 0x66, 0x71, 0x7f, 0xd4, 0x2b, 0x62, 0x42, 0xe3, + 0xe1, 0xbc, 0x75, 0x2d, 0x1d, 0x35, 0x6c, 0xa7, 0xd0, 0x29, 0x5d, 0x61, 0xc2, 0xb5, 0x71, 0x75, + 0x2b, 0xef, 0x40, 0x99, 0xe9, 0xf3, 0x64, 0x5c, 0x7e, 0xbc, 0xba, 0xc5, 0xc4, 0xe3, 0xce, 0xde, + 0xe0, 0xa9, 0x33, 0x69, 0x34, 0x76, 0x9d, 0x33, 0x78, 0xdd, 0xdc, 0x6d, 0x74, 0xba, 0xe3, 0xd7, + 0x03, 0xac, 0xb0, 0xd3, 0x6e, 0xdd, 0x5e, 0xef, 0xdc, 0x35, 0x07, 0x37, 0xfa, 0x63, 0xa5, 0xbd, + 0x6b, 0x36, 0x26, 0xbb, 0x67, 0xe7, 0xf7, 0x9b, 0x46, 0xc5, 0x98, 0x34, 0x35, 0xeb, 0xcd, 0xbd, + 0x3a, 0x2f, 0x3c, 0x95, 0xdd, 0xb6, 0x7d, 0x73, 0x38, 0xdc, 0x1d, 0xee, 0x17, 0xcc, 0xcb, 0xf7, + 0x37, 0xbd, 0x3b, 0xb9, 0x7e, 0xb5, 0xe4, 0x56, 0xab, 0x6b, 0xdc, 0x65, 0xcf, 0x47, 0x4f, 0xa3, + 0xf7, 0x57, 0xd5, 0x6e, 0xec, 0xbc, 0x4d, 0x1f, 0xde, 0x8d, 0x9d, 0x49, 0x5e, 0xeb, 0xbf, 0xa8, + 0xfb, 0x7b, 0xbd, 0x87, 0xb7, 0xdb, 0xd1, 0xe0, 0x24, 0xfb, 0xb6, 0x7f, 0x26, 0x35, 0xa7, 0xc7, + 0xbd, 0xb7, 0xd7, 0x87, 0xa7, 0xbd, 0x8b, 0x4e, 0x29, 0xdb, 0xb2, 0x2b, 0xd9, 0x76, 0x6f, 0x73, + 0x74, 0xd4, 0x2c, 0x9e, 0x4f, 0xba, 0x9b, 0xa6, 0x7d, 0x36, 0x6e, 0x5c, 0x92, 0xb1, 0xec, 0xe9, + 0xfb, 0x37, 0x2f, 0xad, 0xd1, 0xd5, 0xb0, 0xd9, 0xe4, 0xf1, 0x90, 0x24, 0xee, 0x85, 0x39, 0x66, + 0x39, 0x57, 0xcc, 0x29, 0x21, 0x71, 0x4b, 0xf5, 0xee, 0x9c, 0xb1, 0x6b, 0xcf, 0x56, 0x5f, 0x47, + 0xaa, 0xe3, 0x1e, 0x3b, 0x20, 0x61, 0x08, 0xe8, 0xae, 0xd7, 0x03, 0xb2, 0x1e, 0x2c, 0x5d, 0x46, + 0x4b, 0xa0, 0xc4, 0x28, 0xf0, 0xc8, 0x00, 0x06, 0x69, 0x74, 0x54, 0x0e, 0xcf, 0x02, 0xfe, 0x10, + 0x96, 0x7f, 0xbd, 0x02, 0x57, 0x67, 0x8a, 0xcf, 0x52, 0x85, 0x84, 0x17, 0xf9, 0xff, 0x74, 0x54, + 0x1d, 0x9d, 0x1d, 0xb6, 0x6e, 0x49, 0x0a, 0xb9, 0xeb, 0xb4, 0x9c, 0xb9, 0x45, 0x60, 0x13, 0x11, + 0x02, 0x17, 0x6b, 0x54, 0x8a, 0xe8, 0x18, 0x3d, 0x22, 0x3e, 0xd0, 0x71, 0xb7, 0x4d, 0xd3, 0x8d, + 0x01, 0x0d, 0xd6, 0x2c, 0x41, 0x2a, 0x2b, 0x6c, 0x0d, 0xf8, 0xad, 0x33, 0xd0, 0x1c, 0xb8, 0x89, + 0xe6, 0x0e, 0x18, 0x33, 0x18, 0xf9, 0x08, 0x04, 0xb2, 0x2c, 0x58, 0xbc, 0xe5, 0x42, 0x0d, 0x96, + 0xc4, 0xfe, 0x9e, 0xb4, 0x57, 0xf3, 0xf6, 0x94, 0x35, 0xae, 0xfd, 0xc6, 0x35, 0x34, 0xbb, 0x63, + 0x9a, 0xe6, 0x8b, 0xa6, 0x92, 0x6b, 0x66, 0xee, 0x40, 0xe5, 0xbe, 0x2b, 0x1c, 0xbd, 0x42, 0x32, + 0x70, 0x5d, 0xcb, 0xa9, 0x66, 0xb3, 0x13, 0x10, 0x26, 0x32, 0xa0, 0x3a, 0x75, 0xcc, 0x91, 0xed, + 0xa8, 0x19, 0x74, 0x55, 0xb0, 0xb2, 0x20, 0xae, 0x28, 0x76, 0x5f, 0x05, 0x1d, 0xed, 0x3f, 0xbd, + 0x2b, 0x00, 0x6b, 0xe4, 0xba, 0x57, 0xc7, 0x1c, 0x0e, 0x47, 0x06, 0x31, 0xc8, 0x28, 0x5b, 0xcb, + 0x76, 0x2f, 0x83, 0xde, 0x94, 0x89, 0xf1, 0x80, 0x24, 0xa4, 0xad, 0xe4, 0x01, 0xcb, 0x6e, 0xd6, + 0xf8, 0x4c, 0xc0, 0xe7, 0x01, 0x6b, 0x4b, 0x98, 0x00, 0x7e, 0x86, 0x85, 0xdf, 0x22, 0xdd, 0xd6, + 0x3c, 0x12, 0x71, 0x16, 0xa8, 0xda, 0x58, 0xa4, 0x6a, 0x4f, 0x66, 0xf4, 0xec, 0x7c, 0xcb, 0xbe, + 0xc9, 0xc6, 0x7f, 0x96, 0x5a, 0x71, 0xf7, 0x0f, 0x86, 0xb2, 0x48, 0xf1, 0xc9, 0x42, 0xf2, 0x30, + 0xfc, 0x46, 0x6a, 0x28, 0xe5, 0x05, 0x98, 0x0c, 0x7a, 0xcf, 0x96, 0xf2, 0xfa, 0xbb, 0x18, 0x9a, + 0x00, 0x9f, 0x63, 0x52, 0x47, 0xb8, 0x78, 0xe3, 0x8e, 0xc4, 0x78, 0xef, 0x6f, 0x71, 0xea, 0x62, + 0x13, 0x80, 0x5f, 0x42, 0x0e, 0xed, 0x67, 0x14, 0xff, 0x81, 0x7f, 0x12, 0x91, 0x4f, 0x81, 0x59, + 0x6c, 0x87, 0xcd, 0xe0, 0xbf, 0x35, 0xee, 0xc6, 0xe4, 0x46, 0x8e, 0xca, 0xb5, 0x47, 0x9a, 0x8e, + 0xd1, 0x1c, 0x39, 0x95, 0x6e, 0xe0, 0x22, 0x49, 0x45, 0x79, 0x09, 0x9a, 0xb6, 0x41, 0x90, 0xf5, + 0x2e, 0x7a, 0x72, 0xb0, 0xed, 0xc0, 0xca, 0xa4, 0x75, 0x1f, 0xcd, 0x11, 0xd7, 0x81, 0x32, 0xb6, + 0xea, 0x8e, 0x6c, 0x83, 0x43, 0xc7, 0x19, 0x15, 0xb8, 0xb9, 0x36, 0x54, 0xc9, 0x69, 0x2b, 0xd2, + 0x3a, 0x5e, 0xdb, 0x76, 0xf0, 0x8a, 0x23, 0x52, 0x39, 0x7e, 0x69, 0x07, 0x26, 0x83, 0x3c, 0xa3, + 0x70, 0x8a, 0x01, 0x0c, 0x80, 0x78, 0x6d, 0x43, 0xb5, 0x61, 0xfc, 0xa4, 0xaf, 0x0b, 0x93, 0x17, + 0x71, 0x0b, 0x71, 0x4f, 0x4d, 0x9b, 0x48, 0x26, 0x17, 0x7e, 0xaf, 0x4c, 0xe2, 0xe7, 0xb7, 0x82, + 0x05, 0x2c, 0xd6, 0xcf, 0xb1, 0xf5, 0x47, 0x06, 0x46, 0x45, 0xb1, 0xc9, 0xd2, 0x0f, 0xe0, 0x30, + 0x8b, 0x7d, 0x2d, 0x5c, 0xed, 0x6b, 0xfb, 0xa6, 0x0d, 0xc3, 0x77, 0x5c, 0xce, 0x52, 0x6d, 0xf4, + 0xf9, 0x41, 0xda, 0x15, 0x39, 0x0d, 0x94, 0x09, 0xfc, 0x74, 0x13, 0x2e, 0x42, 0x95, 0x5c, 0x40, + 0x07, 0x3c, 0x10, 0x7c, 0x98, 0xbd, 0x9e, 0x37, 0x6c, 0x40, 0xcb, 0x10, 0x91, 0xe0, 0xc0, 0x6a, + 0x06, 0x96, 0x38, 0x19, 0xa8, 0x06, 0xb9, 0x13, 0x0d, 0xb8, 0x00, 0x34, 0x2f, 0x4a, 0x9c, 0x5a, + 0x38, 0xed, 0x88, 0x33, 0x3e, 0x61, 0xa2, 0x17, 0x86, 0x25, 0x09, 0x89, 0x93, 0xef, 0x5d, 0xf6, + 0x5c, 0x1b, 0x03, 0xea, 0x75, 0xb3, 0xa3, 0x59, 0xe2, 0xe4, 0x5e, 0xf4, 0x1c, 0x2d, 0x9c, 0x5d, + 0xd8, 0x70, 0xc5, 0x89, 0x23, 0x76, 0xf0, 0xae, 0x8f, 0x48, 0xcc, 0x39, 0x8e, 0x88, 0xf3, 0x67, + 0x8e, 0x5c, 0x11, 0x4a, 0xd7, 0xbf, 0xc8, 0xa2, 0xe6, 0x5c, 0x18, 0xf8, 0x6b, 0xe8, 0x0d, 0xfa, + 0x7a, 0x3a, 0xa6, 0xbf, 0x28, 0x0d, 0xd0, 0x27, 0xb2, 0x90, 0xf0, 0xd1, 0x79, 0x33, 0x3a, 0x2d, + 0x40, 0x82, 0xff, 0x7c, 0xd3, 0xd7, 0xaf, 0xd5, 0x0e, 0x94, 0x97, 0xc4, 0x81, 0xe2, 0x10, 0xdf, + 0x3d, 0xcc, 0x82, 0xe7, 0xeb, 0x83, 0x1d, 0xef, 0xa9, 0xd9, 0xbc, 0xa1, 0xe0, 0x77, 0x47, 0x76, + 0xbd, 0x24, 0xc1, 0xc3, 0x8d, 0x62, 0xd7, 0xf1, 0x17, 0xaf, 0xa4, 0x11, 0x48, 0x6a, 0xff, 0x14, + 0x15, 0x32, 0x49, 0xf4, 0xe3, 0x96, 0xec, 0xb3, 0x2f, 0x97, 0x8a, 0x0e, 0x6f, 0x1d, 0x78, 0xc5, + 0x9f, 0x91, 0x8d, 0xd1, 0xce, 0xa8, 0x60, 0x56, 0xdf, 0x90, 0x45, 0x40, 0x9c, 0x4b, 0xb7, 0x0b, + 0x52, 0xa5, 0xdf, 0x34, 0x61, 0xca, 0xe1, 0x11, 0xf8, 0x6b, 0xf0, 0x68, 0x4e, 0x60, 0x56, 0x6f, + 0x0d, 0x98, 0x8a, 0x2e, 0xbc, 0x42, 0x53, 0x20, 0x4f, 0x62, 0x3a, 0xfd, 0xb1, 0x3a, 0x7e, 0x47, + 0xe8, 0x13, 0x41, 0x03, 0x82, 0x9d, 0x40, 0xa6, 0x6b, 0xd7, 0x37, 0xc5, 0x6e, 0xbd, 0x0b, 0x9a, + 0x10, 0x4a, 0xa0, 0x62, 0x6f, 0x8a, 0x42, 0x4c, 0xfd, 0xc7, 0x4f, 0xd1, 0xc2, 0xfd, 0xb4, 0x3e, + 0x9b, 0x8b, 0xaa, 0xff, 0xa0, 0xfb, 0x0f, 0x56, 0xf8, 0x74, 0x5e, 0xe7, 0x79, 0xd1, 0x3a, 0xc2, + 0x66, 0xce, 0x47, 0x43, 0xfc, 0x19, 0xba, 0x75, 0x19, 0xff, 0x9e, 0xb6, 0xe8, 0xdb, 0x29, 0xb4, + 0x84, 0x9d, 0x81, 0x1f, 0xe4, 0x63, 0x58, 0x4b, 0x73, 0xce, 0xb0, 0x0f, 0x43, 0xec, 0xc0, 0x70, + 0x80, 0xa3, 0xee, 0xf5, 0xeb, 0x33, 0x17, 0x2f, 0xcf, 0x55, 0x67, 0x28, 0x35, 0x55, 0x41, 0x94, + 0xb2, 0x5f, 0x78, 0xb1, 0xdd, 0xaf, 0xce, 0x46, 0xb6, 0x5e, 0xe5, 0xf9, 0xb9, 0xa8, 0xe8, 0xd6, + 0x40, 0x81, 0xec, 0x7e, 0x35, 0x53, 0x12, 0x41, 0x86, 0xad, 0x66, 0xca, 0x73, 0x91, 0x7a, 0xd6, + 0x61, 0x22, 0x14, 0xc1, 0xd7, 0xa1, 0x55, 0xa5, 0xf1, 0x0c, 0x9c, 0xea, 0x8c, 0x5e, 0x00, 0xab, + 0xc2, 0xe4, 0xd9, 0xfd, 0x76, 0x15, 0x1a, 0x7c, 0x1d, 0x41, 0x0a, 0xbe, 0x0f, 0xd4, 0x29, 0xbc, + 0xc3, 0x88, 0x88, 0x22, 0x8a, 0x29, 0x56, 0x67, 0x08, 0x3c, 0x18, 0x0b, 0x59, 0x5a, 0x17, 0x13, + 0x00, 0xd5, 0xba, 0x6a, 0x54, 0xe9, 0xf4, 0x59, 0x13, 0xdb, 0x7b, 0x52, 0xa7, 0x16, 0x3e, 0x75, + 0x1c, 0x52, 0x6b, 0xd0, 0x55, 0xde, 0x1c, 0x84, 0x34, 0x17, 0x41, 0xfb, 0xac, 0xff, 0xf8, 0x21, + 0x89, 0xb2, 0x2c, 0xe6, 0x0a, 0x62, 0x41, 0x0c, 0x76, 0x42, 0x25, 0xd8, 0x2d, 0x33, 0x7d, 0xd8, + 0x6a, 0x47, 0xed, 0x8c, 0x66, 0x66, 0xa7, 0x43, 0xc5, 0xc9, 0x80, 0x8c, 0xc8, 0xff, 0x14, 0xa1, + 0x4e, 0x4e, 0x94, 0x37, 0x45, 0x39, 0xac, 0x42, 0x44, 0x48, 0x27, 0x43, 0x46, 0xdc, 0x31, 0xf1, + 0xc4, 0x3d, 0x03, 0x23, 0xcb, 0x16, 0x2a, 0x32, 0xfe, 0x93, 0x73, 0xf9, 0xcc, 0xb3, 0x45, 0xaa, + 0xe6, 0xa4, 0x5c, 0x51, 0xcc, 0x8b, 0x39, 0x04, 0xb1, 0xba, 0x41, 0x15, 0xd0, 0x0f, 0x5c, 0xca, + 0x6b, 0x12, 0xea, 0xe5, 0xa1, 0x5e, 0xe5, 0xcf, 0xab, 0x15, 0xa0, 0x4a, 0x5e, 0xfe, 0xc3, 0x7a, + 0x92, 0x58, 0x02, 0x8c, 0xb0, 0x03, 0x84, 0xcd, 0x5e, 0x03, 0x92, 0x5e, 0x18, 0x22, 0xba, 0x91, + 0xe1, 0xd6, 0x96, 0x9d, 0x28, 0xba, 0x6e, 0x29, 0xc0, 0xa8, 0xb2, 0x45, 0xb9, 0xb4, 0x59, 0xc9, + 0x79, 0x38, 0xc9, 0xc2, 0xc0, 0x21, 0x45, 0xaa, 0xe4, 0xe4, 0x7c, 0x29, 0x9f, 0xab, 0xe4, 0x8a, + 0xf9, 0x12, 0x6d, 0x01, 0x30, 0xff, 0x77, 0x5b, 0x90, 0xe5, 0x4a, 0xb9, 0x2c, 0x49, 0x6c, 0x13, + 0xb9, 0x62, 0x2e, 0x57, 0x96, 0x36, 0x0b, 0x65, 0xb9, 0x58, 0x2e, 0x96, 0x24, 0x89, 0xff, 0xf9, + 0xb3, 0xd6, 0x1b, 0x19, 0x24, 0x74, 0x2d, 0x37, 0x00, 0xa9, 0x47, 0x57, 0xef, 0x82, 0xa0, 0x0e, + 0x4d, 0x62, 0xe7, 0x4a, 0x09, 0xb3, 0x2f, 0xdd, 0x0c, 0x8d, 0x88, 0xb5, 0xbe, 0x6e, 0xa8, 0x13, + 0x0e, 0xb8, 0x13, 0x7e, 0x4d, 0xcc, 0x5f, 0xbf, 0x5b, 0x79, 0x35, 0xbf, 0xbe, 0x1e, 0x11, 0x56, + 0xe7, 0x01, 0x4c, 0x07, 0xd4, 0xdd, 0x94, 0x2a, 0xba, 0xc2, 0x0c, 0xc4, 0x26, 0x6f, 0x31, 0xee, + 0xe9, 0x2a, 0xfe, 0x64, 0xc8, 0x1e, 0x9c, 0x01, 0x7e, 0x70, 0x69, 0x83, 0x44, 0x69, 0xbb, 0x6f, + 0xa4, 0x60, 0x58, 0x17, 0x3d, 0x58, 0x54, 0x61, 0xe6, 0xed, 0x62, 0xdd, 0x0c, 0x48, 0x58, 0x5e, + 0xd5, 0x9d, 0x37, 0x92, 0xc5, 0x14, 0xdd, 0xdb, 0x69, 0x9e, 0x2f, 0x29, 0xec, 0xec, 0xbc, 0x35, + 0x91, 0x4d, 0x9f, 0x83, 0x7a, 0x16, 0xa9, 0xa4, 0x39, 0x7b, 0x43, 0x0b, 0x5b, 0x0d, 0xaa, 0x49, + 0xf5, 0x7a, 0xfd, 0xa2, 0xfd, 0x8c, 0x11, 0xb5, 0x5f, 0xd4, 0x37, 0x07, 0x72, 0x32, 0xd4, 0xaf, + 0x8f, 0xad, 0x04, 0x05, 0x98, 0x2a, 0xea, 0xfa, 0x3a, 0x6f, 0x92, 0x2a, 0x7c, 0xbd, 0x8e, 0xb6, + 0x1b, 0xb3, 0x87, 0x69, 0x5f, 0x1a, 0xb6, 0xad, 0xbc, 0x65, 0x34, 0x87, 0xfc, 0xc6, 0x9a, 0x05, + 0x8e, 0xa2, 0xda, 0x5a, 0x27, 0x84, 0xf2, 0x05, 0xd2, 0x94, 0xf3, 0x94, 0xa5, 0x80, 0x4c, 0xb9, + 0x8f, 0x41, 0x13, 0x20, 0x4b, 0x58, 0x5f, 0xd7, 0xd0, 0x36, 0x04, 0xbc, 0x39, 0x56, 0xfd, 0xba, + 0xdf, 0x26, 0xce, 0xd0, 0xd1, 0x8e, 0x93, 0xca, 0x47, 0x06, 0x54, 0xcd, 0xd8, 0x50, 0x37, 0x9a, + 0xd2, 0x5f, 0x48, 0x69, 0x33, 0x20, 0x81, 0x8d, 0xb4, 0x5c, 0x3b, 0x04, 0x87, 0x37, 0xa4, 0x52, + 0x7c, 0x1a, 0x00, 0xa5, 0x41, 0xba, 0x87, 0xdf, 0xbe, 0xf7, 0xdb, 0x4e, 0xf3, 0x02, 0x1f, 0xa9, + 0x87, 0x77, 0x78, 0x83, 0x7a, 0x99, 0x9c, 0x9c, 0x2b, 0xfd, 0x15, 0xe9, 0x48, 0x3a, 0xb3, 0x29, + 0x17, 0x73, 0x7f, 0x45, 0xba, 0x92, 0xce, 0x48, 0x9b, 0xb9, 0x48, 0x1a, 0xdb, 0x19, 0x3c, 0xfe, + 0x68, 0x9d, 0x22, 0x50, 0xd8, 0x0b, 0x39, 0xb7, 0xae, 0x66, 0x90, 0x73, 0x43, 0x6a, 0x66, 0xb2, + 0xcd, 0x54, 0x09, 0x12, 0x85, 0x2a, 0x30, 0x35, 0x14, 0xa3, 0x0d, 0x95, 0xff, 0x52, 0xaf, 0xf7, + 0xf1, 0xda, 0xc7, 0xd0, 0x1a, 0xc1, 0x06, 0xd4, 0x42, 0xfa, 0xc2, 0x39, 0x44, 0x63, 0x5a, 0x8b, + 0xc4, 0x00, 0xab, 0xd1, 0x2d, 0x0e, 0xe6, 0x87, 0x45, 0xa3, 0x0f, 0x4c, 0xd8, 0x4e, 0x39, 0xbf, + 0x7f, 0xc3, 0x3b, 0xa5, 0x4c, 0xc2, 0x6f, 0xeb, 0xfe, 0x20, 0x83, 0x42, 0x5b, 0x72, 0x6e, 0x73, + 0x9b, 0xb8, 0x78, 0xf3, 0x55, 0xe2, 0x09, 0xcf, 0x0b, 0xa2, 0x5f, 0x25, 0x74, 0x5f, 0xae, 0xfb, + 0x1b, 0xeb, 0xfa, 0xba, 0xbb, 0x25, 0x6d, 0xff, 0x8a, 0x7b, 0x33, 0xcb, 0x65, 0x72, 0x59, 0x92, + 0xfb, 0xd7, 0xcc, 0xc7, 0x7e, 0xd0, 0xc0, 0x9c, 0xcb, 0x4b, 0xff, 0x16, 0x11, 0xbb, 0xa9, 0x7f, + 0xcd, 0xdc, 0xb9, 0x18, 0xfc, 0x11, 0x84, 0x5f, 0xd5, 0x85, 0xd2, 0x42, 0x35, 0x15, 0x0c, 0x2a, + 0x6c, 0x33, 0x05, 0x7b, 0x53, 0x62, 0xb7, 0x7e, 0x25, 0x80, 0xfd, 0x25, 0x2e, 0x0e, 0xdb, 0x4d, + 0x18, 0x26, 0x33, 0x4b, 0x8a, 0x65, 0xe9, 0x6f, 0xcd, 0x5e, 0x1f, 0xb8, 0x43, 0x87, 0xde, 0x0e, + 0xe7, 0x75, 0x94, 0x9f, 0x61, 0x11, 0xd4, 0x61, 0xd7, 0xcb, 0x90, 0x4d, 0x2f, 0x83, 0x7b, 0x9e, + 0x50, 0x43, 0x11, 0x47, 0x65, 0x52, 0x49, 0x03, 0x99, 0x76, 0xbf, 0x06, 0xfd, 0x24, 0xfc, 0x81, + 0x27, 0x81, 0xd8, 0x78, 0xd1, 0x2b, 0xeb, 0x92, 0xb2, 0xb8, 0xe7, 0x79, 0x1f, 0x70, 0xae, 0xf9, + 0xa5, 0xdc, 0xb6, 0xc5, 0x8b, 0xee, 0x36, 0x2f, 0x93, 0x2f, 0xf6, 0x06, 0x9f, 0xed, 0xc5, 0x27, + 0xe8, 0x24, 0x79, 0xce, 0x79, 0x5f, 0xf7, 0x22, 0x0f, 0x30, 0x33, 0x7e, 0xd5, 0xb6, 0x57, 0x35, + 0x08, 0x8e, 0xc6, 0x49, 0x7e, 0x15, 0x2f, 0x16, 0x0a, 0x5b, 0x78, 0xd0, 0x25, 0x85, 0x49, 0xdc, + 0x23, 0x28, 0x46, 0x88, 0x8b, 0xc9, 0x1e, 0xba, 0x24, 0x5b, 0x22, 0xcd, 0x16, 0x23, 0xed, 0xb8, + 0x1b, 0x6d, 0x5e, 0x0c, 0xc7, 0x4a, 0xd8, 0x34, 0x7e, 0x70, 0x3c, 0x2c, 0xe1, 0xf4, 0x2d, 0x5a, + 0x82, 0x8c, 0x90, 0xee, 0xc2, 0xdb, 0xb4, 0x89, 0xaa, 0xd7, 0x22, 0x14, 0xd6, 0xd0, 0x95, 0x05, + 0x65, 0x3d, 0x45, 0x6f, 0xb9, 0xa6, 0x0d, 0x1c, 0x1c, 0x39, 0xe5, 0x91, 0xab, 0x0e, 0x53, 0x3c, + 0x2a, 0xa1, 0xb7, 0x1a, 0x60, 0x9f, 0x17, 0x8f, 0x5b, 0x17, 0xe7, 0x30, 0x6f, 0xf8, 0x89, 0x41, + 0xad, 0xf7, 0x96, 0x02, 0xb0, 0x82, 0x10, 0xc8, 0x24, 0xc0, 0xbc, 0xba, 0xce, 0xfa, 0x3a, 0xd5, + 0xd3, 0x6f, 0x8f, 0x58, 0xbe, 0xec, 0xfb, 0xfb, 0xce, 0x82, 0x8e, 0x50, 0xe9, 0x22, 0x03, 0x22, + 0x44, 0xfd, 0x4b, 0x42, 0xa2, 0x18, 0xce, 0x78, 0x04, 0x8a, 0x17, 0x1a, 0x60, 0x16, 0x9d, 0xf4, + 0xfa, 0x32, 0x6a, 0xd8, 0xa6, 0x12, 0x50, 0xd5, 0xcb, 0x5f, 0x06, 0xd5, 0xf7, 0x09, 0x99, 0xc5, + 0x28, 0x81, 0xe9, 0x1a, 0x4d, 0x58, 0x06, 0x80, 0xb8, 0x7f, 0x2f, 0x0c, 0x0e, 0x68, 0x7f, 0x71, + 0x70, 0x90, 0x98, 0x08, 0xc5, 0xa3, 0x6b, 0x60, 0x44, 0x2a, 0xf0, 0x05, 0x96, 0x4e, 0xf9, 0xaf, + 0xaa, 0xca, 0xd2, 0x43, 0x67, 0xa3, 0x87, 0x89, 0xe4, 0xbe, 0x0a, 0x93, 0x98, 0xc3, 0xc4, 0x6e, + 0xb7, 0x1b, 0x49, 0xcc, 0x63, 0x62, 0xbb, 0xdd, 0x8e, 0x24, 0x16, 0x30, 0x51, 0x51, 0x94, 0x48, + 0x62, 0x11, 0x13, 0x2b, 0x95, 0x4a, 0x24, 0xb1, 0x94, 0x94, 0x58, 0xc6, 0xc4, 0x72, 0xb9, 0x1c, + 0x49, 0x6c, 0x63, 0x62, 0xa1, 0x50, 0x88, 0x24, 0x76, 0x30, 0x31, 0x9f, 0xcf, 0x47, 0x12, 0xd1, + 0x84, 0xf3, 0x55, 0x96, 0xe5, 0x48, 0x62, 0x17, 0x13, 0x73, 0xb9, 0x5c, 0x24, 0xd1, 0x26, 0xfd, + 0xcc, 0x45, 0x4b, 0xf6, 0x49, 0x49, 0x25, 0x9a, 0xa8, 0x93, 0xc4, 0x52, 0x27, 0x92, 0x68, 0x42, + 0x22, 0xf9, 0xe6, 0x59, 0x4e, 0x2a, 0x88, 0x5c, 0xf8, 0x47, 0xca, 0x54, 0x84, 0x48, 0x41, 0xa7, + 0xed, 0xe1, 0x33, 0x1f, 0x4b, 0x1e, 0x78, 0xe9, 0xa5, 0x48, 0xba, 0xdb, 0x5e, 0x02, 0xd8, 0xfb, + 0x4a, 0xec, 0x46, 0x5b, 0x10, 0x62, 0x15, 0x14, 0xbf, 0x86, 0xbc, 0x29, 0x89, 0x5c, 0xf8, 0x67, + 0x79, 0x8d, 0xc1, 0xa7, 0xda, 0x20, 0x5e, 0xb7, 0xc4, 0xa0, 0x2a, 0x78, 0xec, 0x94, 0xfa, 0xce, + 0xa1, 0xa9, 0x17, 0x83, 0xbe, 0xa6, 0xa4, 0x4c, 0x19, 0xca, 0x55, 0xe3, 0x04, 0x15, 0x47, 0x3f, + 0x21, 0x28, 0xba, 0xb7, 0xc4, 0x08, 0x2a, 0x3e, 0x27, 0xf9, 0xa4, 0x29, 0x2d, 0x24, 0x4d, 0x3e, + 0x21, 0xa8, 0x62, 0xb1, 0xb8, 0x48, 0x50, 0xa5, 0x52, 0xe9, 0x93, 0x04, 0x15, 0xa7, 0x5c, 0x42, + 0x50, 0x9d, 0x4e, 0x67, 0x91, 0xa0, 0xe2, 0x4b, 0xa4, 0x9b, 0xb4, 0x1a, 0x08, 0x41, 0xa9, 0x85, + 0xdc, 0x22, 0x41, 0x15, 0xd4, 0xdc, 0x22, 0x41, 0x15, 0xca, 0x4a, 0x32, 0x41, 0xe5, 0x61, 0x22, + 0xfc, 0x7f, 0x4b, 0xa8, 0x09, 0x90, 0x99, 0x48, 0x4d, 0x90, 0x5e, 0x5c, 0x42, 0x4d, 0x2c, 0xd4, + 0xcf, 0x90, 0x92, 0x94, 0x03, 0x2a, 0x0a, 0xfe, 0x7c, 0x82, 0x94, 0x8a, 0xb2, 0xc8, 0xf9, 0xff, + 0x3e, 0x4b, 0x47, 0x23, 0x03, 0xf6, 0x01, 0x9e, 0xe1, 0x53, 0x28, 0xf5, 0xef, 0xf4, 0x43, 0x81, + 0x89, 0x54, 0x6d, 0xf7, 0xb1, 0xcd, 0x7a, 0x37, 0xd3, 0xb1, 0x55, 0x60, 0xfe, 0x9e, 0x28, 0x4c, + 0x40, 0xf2, 0x42, 0x4d, 0xeb, 0xa5, 0x9c, 0x0c, 0x9a, 0xf6, 0x55, 0x91, 0x07, 0x1e, 0xad, 0xfe, + 0xfe, 0x1d, 0x28, 0x18, 0xa0, 0x5c, 0x3a, 0xa3, 0x61, 0xc6, 0x1a, 0x98, 0xae, 0xe9, 0x64, 0xe5, + 0x4a, 0x4e, 0xca, 0xca, 0x52, 0x59, 0x42, 0x4e, 0x0e, 0x2d, 0xe0, 0xf6, 0x6c, 0xd4, 0x7d, 0x25, + 0xa0, 0xd6, 0x33, 0xed, 0x14, 0x31, 0x60, 0x70, 0x20, 0xf5, 0x82, 0xa6, 0xf8, 0xfb, 0xf7, 0x8f, + 0x9f, 0xb4, 0x90, 0x52, 0x07, 0x71, 0x53, 0xff, 0x21, 0xfd, 0xdc, 0x36, 0x50, 0x14, 0xdf, 0x1f, + 0xe9, 0xfa, 0x23, 0xc8, 0x3f, 0x29, 0xa1, 0x8a, 0x89, 0xa2, 0x16, 0xc0, 0x48, 0x29, 0xa2, 0xfe, + 0x43, 0xfe, 0x09, 0x7f, 0x72, 0x3f, 0x05, 0xd1, 0x0c, 0xd3, 0x35, 0xa1, 0x66, 0xe2, 0x96, 0x47, + 0x5e, 0x4c, 0x04, 0x42, 0x9e, 0x84, 0xb4, 0xfe, 0x23, 0x0f, 0x25, 0x8d, 0xad, 0xba, 0x06, 0xea, + 0xc8, 0xf7, 0xba, 0x09, 0xc2, 0x0e, 0x1d, 0x8c, 0xfe, 0xa3, 0xf0, 0x53, 0x98, 0xcf, 0x1d, 0xf4, + 0xd0, 0xdf, 0xc3, 0x8f, 0xcf, 0xa2, 0x89, 0x5b, 0x35, 0x54, 0x3b, 0x45, 0xcc, 0x8a, 0x20, 0x5f, + 0xd4, 0xb7, 0xbc, 0x11, 0x30, 0x92, 0x76, 0x7c, 0xaf, 0x6e, 0xf7, 0x01, 0x3f, 0x44, 0x1c, 0x37, + 0x40, 0x68, 0x4e, 0x19, 0xf5, 0x4c, 0x49, 0x10, 0x7d, 0x65, 0xc5, 0x0b, 0xec, 0x55, 0x37, 0x82, + 0x94, 0x50, 0xb4, 0x3a, 0x42, 0x35, 0xab, 0xfe, 0x0b, 0xf4, 0x7a, 0x90, 0xaf, 0x48, 0x8f, 0x88, + 0x64, 0x55, 0x37, 0x60, 0xec, 0x74, 0x3e, 0xc3, 0x03, 0x22, 0x21, 0x22, 0x6b, 0xf1, 0x7e, 0x6c, + 0xbe, 0x0e, 0x48, 0xd7, 0xb1, 0x99, 0x6d, 0xbd, 0x68, 0x46, 0xb3, 0xd5, 0xc2, 0xe9, 0x85, 0x59, + 0xfb, 0x42, 0x75, 0x22, 0x8a, 0x63, 0xb7, 0x1e, 0x53, 0x73, 0x6e, 0x94, 0x3e, 0x51, 0x72, 0xd0, + 0xd8, 0x0d, 0xeb, 0x0c, 0x11, 0x9d, 0x40, 0x02, 0x78, 0xd6, 0x06, 0x34, 0xe0, 0x64, 0xb4, 0x2e, + 0xcc, 0x3f, 0xec, 0x7f, 0xaa, 0x8e, 0xa7, 0xa6, 0x6f, 0xf8, 0x59, 0x52, 0x15, 0x48, 0x0b, 0x92, + 0xc2, 0x33, 0xe8, 0x6c, 0xc7, 0x71, 0x30, 0x85, 0x58, 0xc1, 0x53, 0x20, 0x8e, 0x6c, 0x13, 0x4a, + 0x01, 0x42, 0xe1, 0xd3, 0xc4, 0x6c, 0x55, 0xe5, 0x33, 0xbc, 0x90, 0xe6, 0xb3, 0x0e, 0xf4, 0x33, + 0xe3, 0x15, 0x26, 0xe1, 0xda, 0xea, 0x3c, 0x5e, 0x3e, 0x02, 0x3c, 0x61, 0xac, 0x32, 0xa3, 0xdb, + 0x1c, 0x68, 0x7a, 0x37, 0xe5, 0xc0, 0xfc, 0x04, 0xc3, 0x33, 0x0d, 0x34, 0xb3, 0xc2, 0x36, 0x8d, + 0xfe, 0xc5, 0x6a, 0x15, 0x48, 0x2c, 0x1e, 0xbe, 0xc9, 0xb2, 0x4d, 0xbc, 0x6c, 0xa5, 0xc3, 0x3c, + 0x10, 0xab, 0x97, 0x24, 0xa6, 0x48, 0xa3, 0xf5, 0x88, 0x5c, 0xd4, 0xf7, 0xe5, 0x22, 0x48, 0x3d, + 0xb2, 0x40, 0x4c, 0x05, 0x61, 0x96, 0x16, 0x83, 0xfa, 0xa0, 0xe1, 0xa5, 0xf8, 0x7d, 0x80, 0x4f, + 0x22, 0x29, 0x65, 0xb8, 0x4b, 0x1d, 0x3f, 0xd8, 0xca, 0x91, 0x48, 0x92, 0x34, 0x28, 0xdb, 0xd1, + 0xe5, 0x17, 0x7e, 0x99, 0xa4, 0x45, 0x21, 0x8a, 0x04, 0x9a, 0x20, 0xf8, 0xa2, 0x6c, 0x72, 0xeb, + 0xa1, 0x54, 0x26, 0xa0, 0x64, 0x8b, 0x84, 0x55, 0x07, 0x3d, 0xaf, 0xaf, 0xee, 0xaa, 0xaa, 0x85, + 0x6f, 0x54, 0x58, 0x23, 0xa4, 0x87, 0x73, 0x28, 0x88, 0xc4, 0x18, 0x76, 0x79, 0xeb, 0x6a, 0x3a, + 0x88, 0x7a, 0xa1, 0x08, 0x12, 0x0a, 0x87, 0xc4, 0x0e, 0xb3, 0xdd, 0x53, 0xdd, 0xce, 0x20, 0xb5, + 0x0a, 0xf9, 0x03, 0x8c, 0x52, 0x0a, 0x45, 0x33, 0xcf, 0xa0, 0x7e, 0xf3, 0xe2, 0x6c, 0xa8, 0xba, + 0x03, 0xb3, 0x5b, 0xe5, 0xa1, 0x6f, 0x40, 0x50, 0x48, 0xde, 0x46, 0x0a, 0x88, 0x5f, 0x25, 0xf9, + 0x29, 0x21, 0x4c, 0x99, 0xc5, 0xd5, 0x54, 0xe8, 0x37, 0x5a, 0x7c, 0x40, 0xe1, 0x14, 0x32, 0x30, + 0x09, 0xd0, 0x2e, 0x96, 0x42, 0xf3, 0xa6, 0x09, 0xe4, 0xaa, 0x9b, 0xfd, 0x14, 0x7f, 0x6e, 0x72, + 0x0a, 0x96, 0xf6, 0xd6, 0x3c, 0x69, 0x18, 0x2d, 0xa6, 0x91, 0x4e, 0x64, 0xb8, 0x5d, 0xfa, 0x31, + 0x14, 0x87, 0x50, 0xb1, 0xda, 0x85, 0x8e, 0x02, 0xc8, 0x9e, 0x66, 0x00, 0x55, 0xbc, 0xa5, 0x52, + 0x02, 0x40, 0xf5, 0x18, 0x17, 0x23, 0x20, 0xf6, 0x33, 0xb0, 0x7a, 0xa0, 0x5c, 0x75, 0x59, 0x56, + 0x88, 0x1a, 0x20, 0xb5, 0xf5, 0x75, 0x76, 0x81, 0xf0, 0x48, 0x81, 0x4d, 0x20, 0x40, 0x41, 0x8c, + 0x5c, 0xc9, 0x14, 0x3d, 0xbf, 0x39, 0xef, 0x90, 0x19, 0x53, 0xa8, 0x15, 0x6f, 0xf9, 0x2c, 0x5e, + 0x0e, 0x5d, 0x42, 0x11, 0xcc, 0xe5, 0xab, 0xa0, 0xc3, 0xfb, 0x0f, 0x68, 0x9c, 0x65, 0xdf, 0xe9, + 0x33, 0xcc, 0xe4, 0x0d, 0x35, 0xd0, 0x86, 0x79, 0x97, 0x8c, 0x39, 0x97, 0xa6, 0x46, 0xad, 0x24, + 0xc2, 0x5c, 0xc4, 0xa3, 0xe4, 0x39, 0xf9, 0x1f, 0xa5, 0x06, 0x8f, 0x18, 0xba, 0x09, 0x3c, 0x2c, + 0x8c, 0xb6, 0x49, 0x1d, 0x90, 0x78, 0x31, 0xd9, 0x60, 0x23, 0x7e, 0x91, 0x03, 0xfd, 0x81, 0xb0, + 0x9d, 0xce, 0x38, 0xe0, 0x37, 0x3e, 0xff, 0x82, 0x85, 0xc4, 0xbb, 0xf6, 0x48, 0x85, 0x35, 0x97, + 0x8c, 0x06, 0xab, 0x33, 0xe4, 0x61, 0x1d, 0x7d, 0xc9, 0x9e, 0x99, 0x6d, 0x2d, 0x0b, 0x1a, 0xb4, + 0xe3, 0xa6, 0x0c, 0x65, 0xac, 0xf5, 0x15, 0x28, 0x99, 0x19, 0x39, 0xaa, 0xdd, 0xe8, 0x43, 0xef, + 0x80, 0x5e, 0x90, 0xbd, 0xad, 0x84, 0x02, 0x65, 0xe2, 0xc1, 0xd0, 0x6a, 0x3e, 0xfb, 0x02, 0x6c, + 0xd8, 0x6f, 0x2d, 0x32, 0x5d, 0xa6, 0xdd, 0xd0, 0xf5, 0xd4, 0x37, 0x26, 0xc6, 0xb0, 0xe7, 0xc7, + 0xf8, 0xf3, 0x9b, 0x10, 0x6c, 0x34, 0x0e, 0x12, 0x9d, 0x2b, 0x24, 0xb1, 0x78, 0xd7, 0x1c, 0x75, + 0x06, 0x68, 0x95, 0x47, 0xdd, 0x8c, 0xb4, 0xb7, 0x43, 0xbc, 0x16, 0x01, 0x17, 0xcb, 0x4a, 0x03, + 0x5b, 0x8a, 0x95, 0x0d, 0x99, 0x53, 0x8c, 0x6a, 0x54, 0x9f, 0xe5, 0x52, 0x4b, 0x53, 0xe8, 0xb3, + 0x90, 0xd0, 0xb7, 0xc5, 0xbb, 0x5f, 0x4a, 0x07, 0xa3, 0x19, 0x43, 0x59, 0x6a, 0xa9, 0xfe, 0xfd, + 0xdb, 0xfd, 0xa1, 0xfe, 0x8c, 0x5f, 0x29, 0xf3, 0x0b, 0x31, 0x0c, 0xd2, 0xf3, 0x82, 0x50, 0x45, + 0xb7, 0x0e, 0x93, 0x3a, 0xa3, 0xb5, 0x41, 0xcf, 0x77, 0x81, 0xc3, 0x69, 0x2d, 0xf4, 0xb1, 0x04, + 0x0e, 0xfe, 0x9f, 0xcd, 0x84, 0xcb, 0x5d, 0xce, 0xd0, 0x34, 0x5d, 0x90, 0x33, 0x90, 0x16, 0xa0, + 0xc0, 0xa2, 0xa9, 0x0d, 0x44, 0x11, 0x8d, 0x17, 0x29, 0x90, 0x85, 0x35, 0xa2, 0xb2, 0xaa, 0x3e, + 0x06, 0x04, 0xa6, 0x7e, 0x0f, 0x7e, 0x3f, 0x5c, 0xe0, 0x12, 0x94, 0xb2, 0x3c, 0x17, 0x0a, 0x61, + 0x61, 0x33, 0x6c, 0x46, 0x37, 0x36, 0x1b, 0x64, 0x1a, 0x32, 0xe9, 0x0e, 0x15, 0x4f, 0xa8, 0x87, + 0x05, 0xd9, 0x84, 0xf0, 0x43, 0x65, 0x87, 0x37, 0x67, 0xa7, 0x64, 0x2f, 0x8a, 0xa2, 0x04, 0x54, + 0x6c, 0x15, 0xbd, 0x2e, 0x40, 0x5d, 0xc4, 0x4e, 0xc0, 0x9a, 0x24, 0x9e, 0x18, 0xfe, 0x3a, 0xf3, + 0x0e, 0x44, 0x70, 0x82, 0x69, 0xf3, 0x8a, 0xa1, 0x0d, 0xc9, 0xc6, 0xe1, 0x99, 0x83, 0xfc, 0x23, + 0x93, 0x7a, 0x7c, 0x71, 0x26, 0xcd, 0x11, 0x6d, 0x61, 0x2e, 0xe6, 0x2a, 0xb0, 0x24, 0x45, 0x18, + 0x22, 0xcb, 0xf4, 0xd4, 0x18, 0x3e, 0x18, 0x67, 0x10, 0x61, 0x16, 0x22, 0x88, 0x6f, 0x02, 0x42, + 0x54, 0x4f, 0x09, 0x35, 0x39, 0xa2, 0xe3, 0x72, 0x3d, 0x05, 0x76, 0x9f, 0xee, 0x17, 0x98, 0x0b, + 0x89, 0xd5, 0x2e, 0x63, 0x3e, 0x25, 0x6a, 0xbd, 0xa8, 0xe6, 0x03, 0x22, 0x63, 0x71, 0xe4, 0x32, + 0x9d, 0xf5, 0xc2, 0xc6, 0x39, 0x29, 0x0f, 0x31, 0xc8, 0xaf, 0x93, 0x71, 0xb2, 0x6c, 0xe8, 0xee, + 0xd2, 0xa1, 0x8b, 0x49, 0x59, 0x5e, 0x33, 0x73, 0x31, 0x42, 0x12, 0xb0, 0xc0, 0xaf, 0xf1, 0x84, + 0x6e, 0xa8, 0x7a, 0x76, 0x43, 0xda, 0xed, 0xd0, 0x3c, 0x87, 0xb2, 0xe7, 0x99, 0xe2, 0x0e, 0x32, + 0x3d, 0xdd, 0x84, 0xe5, 0xe1, 0x66, 0xcb, 0xa5, 0x02, 0xa2, 0xd5, 0x60, 0x53, 0x53, 0xee, 0x06, + 0x49, 0xfe, 0xcb, 0x11, 0xb2, 0xf9, 0x12, 0x66, 0xeb, 0xc9, 0xd9, 0x1b, 0x98, 0xfb, 0x97, 0x21, + 0x64, 0x4b, 0x50, 0x46, 0xa9, 0x3b, 0xdb, 0x4e, 0x9a, 0xe7, 0xf8, 0x74, 0x4a, 0xae, 0xc3, 0x33, + 0x0f, 0x7b, 0x0e, 0x8f, 0x07, 0x2b, 0x6f, 0x0e, 0xee, 0x85, 0x22, 0xc7, 0xe3, 0x27, 0x6b, 0x3c, + 0xbb, 0xa8, 0x92, 0xae, 0x1b, 0xbf, 0x7f, 0x3b, 0xdb, 0x46, 0x50, 0xc1, 0x80, 0x3d, 0xd4, 0x1c, + 0x21, 0x49, 0xe1, 0x0f, 0x54, 0x81, 0xd2, 0xe2, 0x17, 0xd8, 0x4b, 0x0c, 0x40, 0x25, 0x14, 0x47, + 0x00, 0x80, 0x8a, 0xad, 0x62, 0x05, 0xd6, 0x99, 0x43, 0xd3, 0xf4, 0x34, 0xf1, 0xb0, 0xc6, 0xf4, + 0xef, 0xd8, 0x15, 0x34, 0xe9, 0x61, 0x3e, 0x53, 0xde, 0x4b, 0xc7, 0x14, 0x77, 0xa3, 0x24, 0xfd, + 0x85, 0x55, 0x1c, 0x15, 0xd5, 0x22, 0x85, 0x31, 0xdd, 0x1a, 0xc0, 0x2b, 0xcc, 0x09, 0xae, 0x23, + 0x34, 0x59, 0xf2, 0xbe, 0xdd, 0xf4, 0xd7, 0x77, 0xd7, 0xde, 0xfa, 0xee, 0x76, 0xfd, 0xe3, 0xc4, + 0x17, 0xf5, 0xcd, 0xed, 0xf2, 0x5b, 0xff, 0x9a, 0xa9, 0xf3, 0xef, 0x59, 0xb7, 0xcb, 0x66, 0x8d, + 0x15, 0x9d, 0x66, 0xb9, 0x73, 0x10, 0x32, 0xbd, 0xec, 0x2c, 0x54, 0xff, 0x15, 0x99, 0x9d, 0x53, + 0xe6, 0xe8, 0xec, 0x32, 0x45, 0xe7, 0x47, 0xad, 0xcb, 0x01, 0xaf, 0x22, 0x47, 0x9c, 0xe4, 0x24, + 0x4c, 0x70, 0x41, 0xb0, 0x5f, 0x5f, 0x57, 0xd3, 0x69, 0x1f, 0x67, 0xea, 0x56, 0xae, 0x88, 0x43, + 0x51, 0xeb, 0xf0, 0x2b, 0x88, 0x2a, 0x43, 0xb3, 0xe8, 0xc7, 0x7a, 0x0b, 0x20, 0x19, 0x76, 0x08, + 0x94, 0xfa, 0xcb, 0xc2, 0x9e, 0x6a, 0xdd, 0x5f, 0x02, 0x0d, 0x30, 0x53, 0xfb, 0x42, 0x20, 0xff, + 0x70, 0x7f, 0xfe, 0xfe, 0x2d, 0x7d, 0x41, 0xe8, 0xd8, 0xc6, 0x76, 0x58, 0x14, 0xa3, 0x73, 0x43, + 0xe1, 0x70, 0xe9, 0xbb, 0xd8, 0xe4, 0x36, 0xb9, 0x7a, 0x56, 0x2e, 0xd7, 0xb8, 0xa3, 0x5d, 0x6e, + 0x38, 0x72, 0x5c, 0xae, 0xad, 0x72, 0x90, 0xce, 0x99, 0xa0, 0x60, 0xa8, 0x8e, 0x93, 0xc1, 0x89, + 0xad, 0xae, 0x80, 0xf2, 0xcb, 0xaf, 0x8f, 0xa7, 0xc8, 0x13, 0x5b, 0xc3, 0x90, 0x9f, 0xdc, 0xbf, + 0x66, 0x16, 0x91, 0x89, 0x5d, 0x61, 0xfe, 0x85, 0xc1, 0x91, 0xe5, 0x9d, 0x06, 0x78, 0xc3, 0xf0, + 0x1c, 0x3f, 0x81, 0x46, 0x54, 0x1f, 0x0d, 0x64, 0x0c, 0xeb, 0xeb, 0x74, 0x28, 0xea, 0xcf, 0xf0, + 0x29, 0x63, 0x10, 0xf3, 0x6a, 0xf8, 0x0a, 0xd3, 0xcf, 0x9a, 0xe7, 0x2f, 0x75, 0xe5, 0x0d, 0x5d, + 0x1b, 0x19, 0xf3, 0x7c, 0x50, 0xd6, 0xf2, 0xf2, 0x18, 0x68, 0x7e, 0x52, 0xc6, 0x72, 0x98, 0xee, + 0x29, 0x96, 0x76, 0xa7, 0xe8, 0xbe, 0xd4, 0x4f, 0x0a, 0xc3, 0x6e, 0xec, 0x57, 0x12, 0x3c, 0x3b, + 0x3d, 0xef, 0x6d, 0xa4, 0xde, 0x99, 0x05, 0x50, 0x88, 0xd6, 0x37, 0x52, 0x78, 0x7e, 0xe9, 0x17, + 0xf4, 0x47, 0xe3, 0x66, 0x40, 0xb6, 0xde, 0x26, 0x7f, 0xab, 0xa9, 0xae, 0x8a, 0xc1, 0x0b, 0x20, + 0xcd, 0x10, 0x83, 0x47, 0x2b, 0x7c, 0x7c, 0xd5, 0xe3, 0x66, 0x45, 0x97, 0x5d, 0xfc, 0xaf, 0xba, + 0x8f, 0xbb, 0x0f, 0x31, 0xf5, 0xaa, 0x6f, 0x33, 0xcf, 0x78, 0x96, 0x19, 0xd2, 0x92, 0xb5, 0xd3, + 0x79, 0x09, 0x28, 0x93, 0xea, 0xac, 0x68, 0xf9, 0xac, 0xa9, 0xde, 0x57, 0x30, 0x52, 0xc4, 0x7c, + 0xad, 0xba, 0x2d, 0xff, 0xd3, 0x8a, 0xd7, 0xe4, 0x34, 0x4a, 0x12, 0x2b, 0xe4, 0x3f, 0x94, 0x91, + 0xd4, 0xa9, 0xda, 0x69, 0x9a, 0xc3, 0x21, 0x88, 0x41, 0xb8, 0x17, 0x59, 0x6f, 0x28, 0xfb, 0xb1, + 0xcc, 0xd8, 0xd2, 0xe8, 0xb1, 0x3f, 0x7e, 0xf4, 0xb0, 0x6d, 0x2a, 0x36, 0x70, 0x61, 0x66, 0x20, + 0x16, 0x99, 0x73, 0xc2, 0x83, 0x43, 0x4a, 0xc0, 0xe3, 0x50, 0x58, 0x9a, 0x35, 0xd7, 0x7e, 0x9b, + 0xa5, 0x9c, 0x55, 0x42, 0x22, 0x48, 0x36, 0xde, 0xe9, 0xd0, 0x96, 0x2c, 0x11, 0x92, 0x40, 0x06, + 0xef, 0x09, 0xcd, 0xc2, 0x6c, 0x4e, 0x35, 0xcd, 0x5f, 0xac, 0xf7, 0x2f, 0xf9, 0x3e, 0x40, 0x87, + 0x07, 0xa2, 0x54, 0xb7, 0xbf, 0xf9, 0x2e, 0x33, 0x0b, 0x5f, 0x5d, 0x27, 0x71, 0xb4, 0x39, 0xf2, + 0x0d, 0x42, 0xfe, 0x5b, 0xf5, 0x5b, 0xe0, 0x50, 0x10, 0x1c, 0x3a, 0xd7, 0x22, 0x3e, 0xb2, 0xb5, + 0x25, 0xb7, 0xec, 0x6a, 0x1f, 0x40, 0x9e, 0x6f, 0xfd, 0xaa, 0x19, 0x69, 0x58, 0x98, 0x3c, 0xfa, + 0x8b, 0x0c, 0x94, 0xb1, 0xca, 0x19, 0xa6, 0x87, 0x14, 0x87, 0x7b, 0x53, 0xdd, 0x2f, 0xb0, 0xe0, + 0xbc, 0xe8, 0xd5, 0x20, 0x84, 0xdb, 0x2a, 0x37, 0x51, 0x1c, 0x74, 0x3d, 0xd1, 0x1c, 0x67, 0xa4, + 0x12, 0xb1, 0x1e, 0x17, 0xd8, 0x1b, 0xb0, 0x51, 0xbf, 0x16, 0x6c, 0x72, 0x28, 0x1b, 0x00, 0x54, + 0xde, 0xf7, 0x64, 0xe1, 0x45, 0xda, 0xc6, 0x21, 0x70, 0x24, 0xfc, 0xda, 0x82, 0x07, 0x4a, 0x73, + 0x38, 0x14, 0x16, 0x46, 0x96, 0x57, 0x95, 0x5c, 0x40, 0x45, 0x01, 0x4a, 0xc1, 0x84, 0xb1, 0x66, + 0x8e, 0x1c, 0xea, 0x87, 0xa4, 0xeb, 0x0a, 0x3d, 0x70, 0x18, 0xc3, 0x36, 0x8a, 0x51, 0xdc, 0x89, + 0x8f, 0xcb, 0x7f, 0x18, 0x1c, 0xc7, 0xa5, 0x5a, 0x20, 0x90, 0x42, 0x0f, 0x14, 0x1f, 0xc6, 0x44, + 0xd3, 0xe9, 0x05, 0x01, 0x0e, 0xfd, 0x96, 0x89, 0x13, 0x97, 0xe9, 0xb1, 0x02, 0x95, 0x78, 0x7c, + 0xd0, 0x26, 0x05, 0x18, 0xd7, 0xa1, 0xd7, 0x09, 0xc5, 0xef, 0x86, 0x49, 0x7d, 0x42, 0xd0, 0x74, + 0xce, 0xbd, 0x18, 0xe6, 0x04, 0xd8, 0xa8, 0x69, 0x76, 0xd1, 0x35, 0xc6, 0x05, 0xd5, 0x14, 0x07, + 0xf1, 0xed, 0xbb, 0xff, 0xb5, 0x52, 0xea, 0x2e, 0xdc, 0x21, 0x77, 0x18, 0xfc, 0xb4, 0xad, 0xa0, + 0x5b, 0x2b, 0x7d, 0x65, 0x3c, 0xb2, 0x47, 0x37, 0x60, 0xeb, 0x2d, 0x42, 0x9a, 0x81, 0x97, 0xcb, + 0x37, 0x41, 0x24, 0x08, 0x24, 0x3e, 0x27, 0x3c, 0x15, 0xe1, 0x3d, 0xef, 0x6d, 0x86, 0xd9, 0x19, + 0x62, 0x20, 0x85, 0x91, 0x75, 0x43, 0x59, 0x6f, 0xdd, 0x89, 0x99, 0x0f, 0x7c, 0x2a, 0x51, 0x89, + 0x19, 0x82, 0x70, 0x13, 0xe0, 0xc7, 0xe8, 0xcc, 0x50, 0x27, 0x5a, 0x10, 0x79, 0xde, 0x92, 0x04, + 0x7f, 0x29, 0x9b, 0xd6, 0x08, 0x83, 0xe5, 0xf8, 0xd5, 0xbe, 0x78, 0xda, 0x12, 0x92, 0x1d, 0xfc, + 0x8a, 0x63, 0x53, 0xeb, 0x72, 0xa0, 0x58, 0xd4, 0x52, 0x20, 0xc4, 0x42, 0xc2, 0x97, 0xba, 0x97, + 0x0b, 0x82, 0xc8, 0x2a, 0x35, 0x95, 0x68, 0xa9, 0x1e, 0x91, 0x7c, 0xa0, 0xa4, 0xf2, 0x05, 0xa9, + 0x80, 0x36, 0xa9, 0x0c, 0xa2, 0x7e, 0xe4, 0x6c, 0xcf, 0xa4, 0xea, 0x6c, 0x3e, 0xaf, 0x26, 0xe8, + 0xae, 0xd4, 0x93, 0x43, 0x8d, 0x74, 0x30, 0x3e, 0x80, 0xa8, 0x1e, 0xcb, 0xae, 0x78, 0x10, 0x64, + 0xe3, 0x0a, 0x29, 0x9e, 0x47, 0x85, 0xe2, 0x92, 0x0a, 0x9c, 0x46, 0x88, 0x9b, 0x63, 0x02, 0x85, + 0xd0, 0x47, 0xe8, 0x87, 0xa3, 0xc6, 0x6e, 0x67, 0x7d, 0xc7, 0x9e, 0xe5, 0xc3, 0x4e, 0x81, 0x72, + 0xf6, 0x02, 0xa2, 0x4a, 0x4c, 0xb8, 0x14, 0x83, 0x71, 0x33, 0x03, 0xa7, 0x6e, 0x2a, 0x1e, 0xd3, + 0x07, 0xb5, 0xc6, 0xd6, 0xb0, 0x43, 0x42, 0x38, 0xf8, 0x20, 0x64, 0x48, 0x64, 0xf4, 0xac, 0x20, + 0x8f, 0xac, 0x6a, 0x71, 0xf4, 0xa8, 0x32, 0x32, 0xa7, 0x45, 0xb1, 0xb1, 0x83, 0xaa, 0xfb, 0x67, + 0xa3, 0xf6, 0x7c, 0xd6, 0xfe, 0x99, 0x41, 0xab, 0x1f, 0x0c, 0xda, 0xf3, 0x70, 0xff, 0xc7, 0xc7, + 0x4c, 0x94, 0xf7, 0x3f, 0x1b, 0x37, 0x75, 0x36, 0xfa, 0x67, 0x86, 0x9d, 0xf2, 0x3c, 0x97, 0x54, + 0x62, 0x5b, 0xcd, 0x38, 0x03, 0xad, 0x87, 0x45, 0x69, 0x6a, 0x66, 0x64, 0xd0, 0x04, 0xbe, 0xf6, + 0xa5, 0xc6, 0x47, 0x47, 0x1e, 0x7a, 0x3c, 0xfd, 0x0d, 0x1c, 0xe0, 0xde, 0x85, 0x7d, 0xf1, 0xd6, + 0x82, 0x68, 0x5d, 0x9d, 0x02, 0xa4, 0xd0, 0x55, 0xc4, 0x47, 0xfa, 0xd5, 0x69, 0xb0, 0x85, 0xc3, + 0x9e, 0x09, 0xcc, 0x05, 0x0a, 0xfa, 0x9b, 0xa2, 0x04, 0xe8, 0x0a, 0xc4, 0x4d, 0x93, 0x66, 0xc1, + 0xf6, 0x04, 0x7a, 0x08, 0xba, 0x79, 0xd4, 0xb7, 0xd4, 0x1f, 0xd2, 0xcf, 0x2d, 0x17, 0xfe, 0xc0, + 0xc0, 0x91, 0xbb, 0x26, 0x5d, 0xa3, 0xb9, 0x42, 0xcf, 0x26, 0x32, 0x11, 0xe8, 0xcb, 0xff, 0x0d, + 0xfb, 0x41, 0xf0, 0x20, 0x40, 0x8d, 0x5f, 0xcb, 0xdd, 0xe4, 0xf1, 0x73, 0xb2, 0xde, 0xf5, 0x1a, + 0x90, 0x94, 0xa1, 0x89, 0xf9, 0xab, 0xde, 0xe6, 0xfd, 0x98, 0x63, 0x98, 0x94, 0xfb, 0xb9, 0x8d, + 0x7f, 0x50, 0x24, 0x89, 0xba, 0xec, 0x51, 0xc6, 0x91, 0xf2, 0xaa, 0xc1, 0xe6, 0x8a, 0xb2, 0xf6, + 0x0f, 0xf9, 0xe7, 0x3c, 0xe0, 0xcf, 0xbf, 0x6a, 0x94, 0x25, 0xbf, 0xea, 0x8b, 0x61, 0x61, 0xfc, + 0x8f, 0xdd, 0xc0, 0x5c, 0xc0, 0x10, 0x54, 0x2e, 0xb1, 0x64, 0xa0, 0x5b, 0x05, 0x85, 0x59, 0x88, + 0x8c, 0x42, 0x3c, 0x5f, 0xc0, 0x77, 0xc0, 0xce, 0x7d, 0x4e, 0x9e, 0xa2, 0x4c, 0x90, 0xb1, 0x2c, + 0xae, 0x96, 0x58, 0x04, 0x2a, 0x1a, 0x0a, 0x33, 0x4f, 0xda, 0xa3, 0xe2, 0x99, 0xf4, 0xd3, 0x13, + 0x24, 0x41, 0x17, 0x72, 0xe2, 0x6b, 0x8c, 0x56, 0x00, 0x55, 0x9d, 0x4c, 0x5e, 0x67, 0x68, 0x5d, + 0x0a, 0x3e, 0x3d, 0x50, 0x11, 0x07, 0x09, 0x83, 0x39, 0x08, 0x48, 0x79, 0x1e, 0x73, 0x0e, 0x9d, + 0x29, 0x22, 0xc0, 0x52, 0xaf, 0x19, 0x34, 0xf4, 0x0b, 0x02, 0x6e, 0x65, 0x9a, 0x01, 0x6a, 0x02, + 0x1e, 0x57, 0xa8, 0xa1, 0xd2, 0x88, 0x07, 0x03, 0xd4, 0x48, 0xa0, 0xd4, 0xb1, 0x24, 0x48, 0x8c, + 0x35, 0x05, 0xf6, 0x27, 0x20, 0x1b, 0x6b, 0xe4, 0x0c, 0x52, 0x3f, 0x54, 0x51, 0x11, 0x7d, 0xb9, + 0x1d, 0x4f, 0x00, 0x68, 0x32, 0xb0, 0x00, 0x37, 0x9d, 0x20, 0x66, 0x91, 0xf8, 0x33, 0x3e, 0x0d, + 0xa8, 0x73, 0x93, 0xdf, 0xfa, 0x15, 0x5a, 0x0f, 0x2d, 0xad, 0x8b, 0x12, 0x5b, 0xbc, 0x9e, 0x16, + 0x68, 0x5d, 0xb8, 0xf7, 0xfe, 0x4a, 0x80, 0x4c, 0x3e, 0x60, 0x1d, 0xc4, 0x9e, 0x49, 0xa6, 0x1c, + 0x75, 0x2e, 0x20, 0x98, 0x88, 0x26, 0xb0, 0xcd, 0x07, 0x6e, 0xc1, 0xdf, 0xa2, 0x81, 0xbd, 0xbe, + 0x51, 0xd7, 0xec, 0x7c, 0x85, 0x5c, 0xcf, 0x40, 0x1d, 0x67, 0xee, 0xeb, 0x2c, 0xaa, 0x30, 0x07, + 0x89, 0x22, 0xee, 0x4f, 0x1c, 0x7c, 0x03, 0x8a, 0xeb, 0xe9, 0x36, 0x33, 0x42, 0x03, 0x33, 0xa2, + 0xa1, 0x15, 0x5a, 0x2a, 0xa8, 0x03, 0x90, 0x97, 0x96, 0x25, 0x69, 0xee, 0xc7, 0xf6, 0xea, 0x78, + 0x9f, 0x76, 0x20, 0x63, 0x4c, 0x82, 0x1f, 0x03, 0x8e, 0xde, 0x81, 0x3e, 0x0c, 0x06, 0x3c, 0xa5, + 0xde, 0x38, 0xf4, 0x7c, 0x85, 0x86, 0xdd, 0x40, 0xb8, 0xb1, 0x19, 0x01, 0x8d, 0x93, 0x0d, 0xe8, + 0xe3, 0xc3, 0x0e, 0x40, 0x07, 0x3d, 0xf2, 0xb0, 0x4f, 0x3c, 0x2f, 0xd3, 0xe9, 0xf9, 0x12, 0x01, + 0xc8, 0x25, 0xf9, 0x5b, 0xd2, 0x76, 0x8a, 0x08, 0x32, 0x44, 0x12, 0x59, 0x5f, 0x97, 0xbc, 0xdf, + 0xd4, 0x72, 0xcf, 0x09, 0xb4, 0xee, 0xa2, 0xcc, 0xe0, 0x2d, 0x05, 0xa0, 0x3a, 0xe2, 0x04, 0xba, + 0xbc, 0xfc, 0x82, 0x97, 0x05, 0x5d, 0x11, 0x82, 0x6f, 0x48, 0x46, 0x58, 0xd5, 0x88, 0x68, 0x11, + 0x58, 0x9d, 0x2f, 0x1b, 0xa9, 0x70, 0x87, 0x42, 0x66, 0x49, 0xd9, 0x02, 0x23, 0x65, 0x30, 0x42, + 0x9a, 0x88, 0xfa, 0x36, 0xab, 0x03, 0x92, 0x85, 0xd1, 0x33, 0xc9, 0xd1, 0x9e, 0xef, 0x66, 0xaa, + 0x7a, 0x2b, 0x55, 0xcd, 0x20, 0x05, 0xd6, 0x16, 0xce, 0x95, 0x58, 0x04, 0xb9, 0x99, 0x21, 0xd9, + 0x0e, 0xb2, 0x3f, 0xfe, 0x63, 0x94, 0x97, 0x0a, 0xd2, 0x06, 0xfe, 0xf4, 0x7a, 0xf0, 0xb7, 0x20, + 0xe1, 0x4b, 0xa1, 0xdb, 0x86, 0x97, 0x82, 0x4a, 0x5e, 0x2a, 0x3d, 0xcc, 0xe9, 0x55, 0xc8, 0x4b, + 0x4f, 0x21, 0x2f, 0xbd, 0x52, 0x09, 0x5f, 0x7a, 0x15, 0xac, 0x23, 0xe7, 0x65, 0x78, 0xd9, 0xdd, + 0xac, 0xec, 0xfe, 0xcc, 0xe2, 0x11, 0xcb, 0x92, 0x23, 0xad, 0x20, 0xf4, 0x22, 0x3a, 0x4a, 0x93, + 0x6f, 0xe8, 0x52, 0x57, 0x27, 0x3c, 0xd5, 0xe4, 0x77, 0x49, 0xf7, 0xda, 0x68, 0x9c, 0xab, 0xd7, + 0xeb, 0x38, 0x4f, 0xcb, 0xdc, 0x02, 0x57, 0x81, 0x51, 0x33, 0xe8, 0xca, 0x4f, 0x54, 0x2e, 0x3e, + 0x85, 0x5f, 0x4f, 0x11, 0x40, 0x71, 0x77, 0xc9, 0x19, 0x8e, 0x9f, 0xe8, 0xa5, 0x74, 0x33, 0x94, + 0xe7, 0xbb, 0xa1, 0x5f, 0xb1, 0x4a, 0xbc, 0x62, 0x80, 0x0d, 0xc0, 0x4b, 0xc4, 0x19, 0x1a, 0x25, + 0x4e, 0xdb, 0xf7, 0x32, 0xf6, 0x4a, 0xc1, 0x1b, 0x90, 0x28, 0x71, 0xfe, 0x55, 0x33, 0x3d, 0x27, + 0x83, 0x22, 0xe6, 0x70, 0x12, 0xe6, 0x02, 0x49, 0x4c, 0xb7, 0x23, 0x6f, 0x99, 0x49, 0x95, 0x38, + 0xff, 0xae, 0x2a, 0x32, 0x80, 0x22, 0x29, 0x74, 0x16, 0x1e, 0x4e, 0xb6, 0x40, 0x73, 0x1c, 0xe2, + 0x5e, 0xe9, 0x23, 0x34, 0x08, 0xd6, 0xb4, 0xb0, 0xb7, 0xd0, 0x78, 0x5d, 0x22, 0xfe, 0x9c, 0x91, + 0x1b, 0x12, 0x7c, 0x6e, 0x37, 0xe2, 0x93, 0xe5, 0xd3, 0x99, 0x4f, 0x33, 0x0c, 0x4b, 0x87, 0xce, + 0xdb, 0xaa, 0x3a, 0x50, 0x15, 0x2b, 0x2b, 0xab, 0xf9, 0x9a, 0x53, 0x77, 0x32, 0xae, 0xb9, 0xaf, + 0x4d, 0xd5, 0x6e, 0x4a, 0x16, 0x3c, 0x36, 0xee, 0xf5, 0xd1, 0x9a, 0xd8, 0xa2, 0x5e, 0xe7, 0xcf, + 0x4d, 0x97, 0x83, 0x15, 0xd1, 0x21, 0x10, 0xbb, 0x7c, 0xcd, 0xd8, 0x82, 0x8a, 0xdb, 0x7a, 0x3d, + 0x65, 0xc0, 0xff, 0xb3, 0x75, 0x78, 0x11, 0x02, 0x10, 0x90, 0x27, 0x6d, 0x4b, 0x55, 0x59, 0x00, + 0x09, 0x88, 0x6b, 0xf0, 0x55, 0x03, 0x47, 0x95, 0x22, 0x65, 0x8b, 0xd2, 0x5f, 0xc4, 0xa4, 0x47, + 0x8c, 0xc2, 0x50, 0x11, 0x28, 0x1c, 0x0b, 0x0d, 0x1b, 0xbc, 0xcf, 0xea, 0xa9, 0xdc, 0xa0, 0x66, + 0x46, 0x02, 0x6e, 0x22, 0xc8, 0x81, 0xdc, 0x1f, 0x30, 0x31, 0x3f, 0x41, 0x21, 0x8b, 0x0b, 0x7b, + 0x50, 0x46, 0x70, 0x60, 0x67, 0xd8, 0x56, 0xd2, 0x75, 0xdf, 0x96, 0x06, 0x45, 0xc9, 0x39, 0x27, + 0x6e, 0x2d, 0xd5, 0x68, 0x3a, 0x6d, 0x41, 0xab, 0xf3, 0x27, 0xa3, 0xd1, 0x40, 0x79, 0x19, 0xf1, + 0x35, 0x35, 0x03, 0xea, 0x60, 0x86, 0x1c, 0x12, 0x38, 0xf7, 0x9a, 0x3b, 0x48, 0xe1, 0xfd, 0xe1, + 0x42, 0x86, 0x98, 0x51, 0xa1, 0xdc, 0xa1, 0x09, 0xd2, 0x14, 0xa1, 0xaf, 0x8e, 0x41, 0x52, 0xf0, + 0x81, 0x6e, 0x02, 0x63, 0x60, 0x53, 0x58, 0x79, 0xce, 0x81, 0xf8, 0xa0, 0xcd, 0x03, 0xf5, 0xf6, + 0x3b, 0xf9, 0xb2, 0x18, 0x30, 0xad, 0x7f, 0xcd, 0x94, 0x39, 0xfe, 0xc5, 0xf3, 0xf4, 0xba, 0xb2, + 0xcd, 0xf3, 0xd5, 0x6f, 0x81, 0x55, 0xcf, 0xd4, 0xf1, 0x1a, 0x41, 0x3d, 0xb7, 0xf5, 0x7d, 0x60, + 0xfb, 0xba, 0xba, 0x7f, 0xdd, 0x24, 0xfc, 0xf0, 0xb1, 0xf7, 0xa1, 0x6b, 0xef, 0x73, 0xcd, 0xf8, + 0x51, 0xc7, 0xc5, 0x8f, 0xd3, 0x61, 0x2a, 0xd1, 0x3a, 0x3d, 0xab, 0xdf, 0x37, 0xd2, 0x66, 0xae, + 0x58, 0x5a, 0xc7, 0xb3, 0x1d, 0x77, 0xdb, 0x1f, 0x3d, 0xbf, 0xab, 0xb6, 0x47, 0x7d, 0x5e, 0xfc, + 0xb6, 0x54, 0x46, 0x62, 0xaf, 0x6c, 0x33, 0x87, 0x52, 0xb3, 0xff, 0xf8, 0xd6, 0xc5, 0xaa, 0xff, + 0xf1, 0xad, 0xfa, 0x2d, 0x9d, 0x92, 0x73, 0x65, 0x0f, 0x30, 0xdf, 0x53, 0x80, 0x71, 0xc1, 0xee, + 0x44, 0x4e, 0x8d, 0x84, 0xf4, 0x37, 0x22, 0x1a, 0xc5, 0xb7, 0x8e, 0x68, 0x15, 0xd0, 0xf2, 0xaa, + 0x24, 0x40, 0x26, 0x14, 0x0f, 0x3f, 0x13, 0x15, 0xb9, 0x7f, 0xf4, 0x0d, 0xcd, 0xaf, 0x64, 0x0c, + 0x41, 0xcf, 0x77, 0x46, 0x9a, 0x8e, 0x67, 0xf5, 0x99, 0xb1, 0xd6, 0x15, 0xa2, 0x59, 0x2d, 0xad, + 0x0f, 0x72, 0x2b, 0xb9, 0xb7, 0x81, 0x12, 0x26, 0x16, 0x9a, 0x68, 0x3d, 0x2d, 0xe3, 0x90, 0xf4, + 0x34, 0xff, 0x6f, 0x8e, 0x78, 0xad, 0x92, 0x34, 0xdb, 0x71, 0x34, 0x91, 0xe7, 0xba, 0x3b, 0x43, + 0xe0, 0x18, 0x51, 0x30, 0xb7, 0x16, 0x5a, 0xae, 0x41, 0xb3, 0x8e, 0x5a, 0xb1, 0x33, 0x23, 0x92, + 0x2e, 0xc4, 0x4a, 0x63, 0x58, 0x29, 0x0e, 0x57, 0x0e, 0xac, 0x23, 0x00, 0xf8, 0xb2, 0xe3, 0x81, + 0x53, 0x33, 0x96, 0x63, 0x2b, 0xc3, 0xed, 0x68, 0xc1, 0xcb, 0xd6, 0x75, 0xe3, 0x8c, 0x17, 0x53, + 0x5e, 0x6e, 0x56, 0x96, 0x72, 0x05, 0x81, 0x59, 0x6b, 0x1e, 0x84, 0x85, 0x51, 0xef, 0x01, 0x7b, + 0x1f, 0xe2, 0x4a, 0xe3, 0xbc, 0x9b, 0x12, 0xbc, 0xa8, 0xc7, 0x3a, 0xd2, 0x00, 0xf2, 0x83, 0xcd, + 0x89, 0xdb, 0xbf, 0x6c, 0xe1, 0xc8, 0xc9, 0x62, 0xed, 0x59, 0x4e, 0xac, 0xd4, 0x59, 0xa3, 0xc9, + 0x01, 0xbb, 0xc0, 0xeb, 0x3d, 0x58, 0x6a, 0xa8, 0x74, 0xe2, 0xe3, 0xd1, 0x74, 0xd5, 0x79, 0x73, + 0x60, 0x7b, 0xc3, 0x7c, 0xe0, 0x69, 0x23, 0x50, 0x5b, 0x10, 0x6d, 0xf0, 0xe8, 0xa6, 0xb1, 0x7b, + 0x88, 0x45, 0x66, 0xd1, 0xc2, 0xe6, 0xfc, 0x17, 0x2d, 0x98, 0xa5, 0x85, 0x60, 0x01, 0xff, 0x7b, + 0x01, 0xa9, 0x7b, 0xc6, 0x58, 0xb3, 0x4d, 0x63, 0x48, 0xba, 0xae, 0x66, 0xf0, 0x4a, 0x38, 0xb1, + 0xb9, 0xa3, 0x8f, 0x83, 0xad, 0xc2, 0x23, 0x99, 0x1a, 0x7d, 0xa2, 0x59, 0xe8, 0x43, 0x8c, 0x95, + 0x81, 0x80, 0xc9, 0xda, 0xf9, 0x45, 0x4d, 0x1c, 0x2f, 0xe3, 0xe8, 0xee, 0x45, 0x64, 0x4a, 0x22, + 0x22, 0xa2, 0x6d, 0x26, 0x2c, 0xb2, 0xc4, 0xb1, 0x3b, 0x16, 0xd5, 0x44, 0xa0, 0xae, 0x28, 0xbe, + 0x0b, 0xb1, 0x6f, 0x53, 0xf2, 0x6a, 0xb6, 0x34, 0x3c, 0xe8, 0xea, 0xd7, 0x5c, 0xdf, 0x39, 0xd2, + 0x8b, 0xaa, 0xc2, 0x7a, 0x27, 0xf8, 0xdc, 0xd4, 0xbf, 0xc3, 0xcc, 0x72, 0x54, 0x22, 0xba, 0x3a, + 0x75, 0x7f, 0x53, 0x0e, 0xc4, 0x5f, 0xbc, 0x5b, 0x94, 0x62, 0x2f, 0xb3, 0x44, 0x6f, 0xb0, 0x78, + 0x17, 0x57, 0x50, 0xbe, 0xe8, 0x7b, 0xc2, 0xb1, 0x5f, 0x38, 0x9d, 0x26, 0x30, 0xf5, 0x50, 0x1c, + 0x36, 0x32, 0x40, 0xff, 0x35, 0x72, 0xb4, 0x1a, 0x02, 0x21, 0x82, 0x0d, 0x03, 0x53, 0x4f, 0x03, + 0x49, 0xe9, 0x5b, 0x08, 0x18, 0xb3, 0x10, 0xbe, 0x2e, 0x10, 0x48, 0x0a, 0xb5, 0xa9, 0x02, 0x7c, + 0x50, 0x50, 0x05, 0x51, 0xab, 0x7f, 0xf9, 0xa2, 0xe0, 0xf9, 0x44, 0xf2, 0x61, 0x52, 0xa0, 0x89, + 0xfc, 0xfe, 0x8d, 0x3e, 0xf0, 0xfa, 0xfa, 0x3a, 0xeb, 0xa0, 0x0a, 0xd9, 0xe8, 0x9a, 0xf3, 0x8b, + 0x8d, 0x0e, 0x01, 0x22, 0xa7, 0x3e, 0x0f, 0x2f, 0xdd, 0xb7, 0x1d, 0x9e, 0x58, 0xbf, 0x96, 0x08, + 0x93, 0xb0, 0xa9, 0x70, 0xff, 0x9a, 0x19, 0x19, 0xd3, 0xd8, 0xc6, 0x73, 0x4e, 0x9e, 0xea, 0x5d, + 0x81, 0x04, 0xa8, 0xcf, 0xa1, 0x40, 0x54, 0x9a, 0x86, 0xa1, 0x5c, 0x4e, 0xec, 0x14, 0xe6, 0x09, + 0x51, 0xe6, 0x41, 0x9a, 0x59, 0x1e, 0x6f, 0x87, 0xda, 0xe0, 0x98, 0xd8, 0x47, 0xb4, 0x01, 0xf2, + 0xb1, 0x81, 0x95, 0x41, 0x77, 0xa0, 0x45, 0x74, 0xf4, 0xa6, 0x2d, 0xfe, 0x49, 0xfc, 0xa3, 0x25, + 0x1f, 0xa5, 0xc2, 0xf1, 0x42, 0xab, 0x30, 0xce, 0xac, 0xd7, 0xa9, 0x8f, 0x62, 0x21, 0x91, 0x91, + 0x05, 0x62, 0xb9, 0x27, 0x05, 0xdb, 0x75, 0x83, 0xee, 0x58, 0x62, 0x87, 0x3c, 0x99, 0x96, 0xd8, + 0xf5, 0x93, 0x1e, 0x45, 0xcb, 0x4b, 0x7b, 0x14, 0xfb, 0x30, 0x3f, 0x34, 0x7e, 0x4a, 0x24, 0x6a, + 0x0a, 0x10, 0x3e, 0x0d, 0x00, 0x78, 0x8d, 0xe6, 0x57, 0x90, 0x3d, 0x51, 0x31, 0x39, 0xc3, 0xfd, + 0x89, 0xef, 0x6a, 0x36, 0xb5, 0xac, 0xf3, 0xf3, 0x25, 0x51, 0x01, 0x19, 0xfc, 0x01, 0x9c, 0x18, + 0xbe, 0x00, 0xa0, 0x8f, 0x2c, 0x1c, 0x2a, 0x14, 0xd8, 0xe6, 0xbd, 0x08, 0x28, 0x64, 0x7e, 0xb7, + 0x3e, 0x08, 0xfc, 0xe2, 0x47, 0x40, 0xf9, 0x25, 0x8e, 0x3e, 0xe8, 0xfa, 0x99, 0x86, 0x62, 0xf5, + 0xc7, 0x7d, 0x1c, 0xc6, 0xbf, 0x30, 0x76, 0xa6, 0xb1, 0x3d, 0x1c, 0x6a, 0x7f, 0xb7, 0x83, 0x3d, + 0x94, 0xa2, 0x06, 0x44, 0x54, 0x71, 0xce, 0xd6, 0xd7, 0xed, 0xef, 0xc3, 0xc9, 0x5f, 0xc3, 0x01, + 0x2c, 0xa7, 0xde, 0xe7, 0x90, 0xfe, 0x09, 0xf4, 0x3e, 0x2e, 0x62, 0xf7, 0x31, 0x82, 0xde, 0xc7, + 0xbf, 0xdb, 0xf9, 0xc1, 0x3f, 0x85, 0xdd, 0xc7, 0x05, 0xec, 0x46, 0x7a, 0x38, 0xfc, 0xbb, 0x3d, + 0xa4, 0x0c, 0x6b, 0x1c, 0xe5, 0x2f, 0xa4, 0x45, 0xc5, 0xc2, 0xbb, 0xba, 0x24, 0x36, 0x25, 0x3c, + 0xd7, 0x79, 0x2f, 0xc1, 0xb7, 0x13, 0xb5, 0xf5, 0x0d, 0xc7, 0x0b, 0x08, 0xb4, 0x47, 0x38, 0x18, + 0x27, 0xef, 0x72, 0xfb, 0x0f, 0xa1, 0x25, 0x9e, 0x5d, 0x70, 0xaa, 0xbe, 0x61, 0x41, 0xdb, 0xf4, + 0x70, 0x29, 0x9a, 0x1a, 0x69, 0x53, 0xce, 0xc5, 0x87, 0x29, 0xe7, 0x7c, 0x36, 0x44, 0xa0, 0x72, + 0xdf, 0xbd, 0x00, 0x55, 0xe1, 0xe7, 0xcb, 0xfe, 0x35, 0x03, 0xae, 0x09, 0x18, 0x90, 0x73, 0xdb, + 0x78, 0xec, 0x4b, 0xef, 0x3f, 0x52, 0x24, 0x5c, 0xc2, 0xc6, 0xaf, 0x3b, 0xdf, 0xb3, 0xb4, 0x4e, + 0x32, 0x04, 0x19, 0x21, 0xc8, 0xcb, 0x20, 0xec, 0x28, 0xf6, 0xea, 0xea, 0x39, 0xac, 0x9e, 0x5b, + 0x56, 0xbd, 0x61, 0x77, 0x56, 0x57, 0xcf, 0x63, 0xf5, 0xfc, 0xb2, 0xea, 0x4d, 0x72, 0x0d, 0x38, + 0x0a, 0x01, 0x26, 0x90, 0x94, 0x59, 0x60, 0x5b, 0xbf, 0xc4, 0xa1, 0x37, 0x8b, 0x64, 0xce, 0x1c, + 0x03, 0xf1, 0xaa, 0x25, 0x4e, 0x58, 0x0b, 0x65, 0x0b, 0xce, 0xd1, 0x86, 0xff, 0xa5, 0xd9, 0x72, + 0xe2, 0x2b, 0xbe, 0xa5, 0x7d, 0x72, 0xae, 0x1c, 0x6d, 0x11, 0xd1, 0xaa, 0x02, 0xf5, 0x8d, 0xcf, + 0xce, 0x55, 0x02, 0x84, 0x7b, 0xf5, 0x5e, 0xd3, 0xf5, 0x6b, 0xb3, 0xf3, 0xf2, 0x68, 0x8e, 0x3e, + 0x3b, 0x69, 0x09, 0x70, 0x6e, 0x65, 0xe9, 0x3f, 0xf3, 0x9f, 0x9d, 0xb5, 0xc4, 0xfa, 0x85, 0x78, + 0xfd, 0xe5, 0x73, 0x56, 0x8b, 0x1b, 0xb9, 0x00, 0xb7, 0xc4, 0x52, 0x03, 0x0d, 0xe8, 0x78, 0x10, + 0x33, 0x44, 0x21, 0x41, 0xed, 0x6f, 0xf3, 0x91, 0x46, 0x70, 0x23, 0xd9, 0x0e, 0x25, 0x87, 0x85, + 0x1d, 0x9d, 0xcc, 0x40, 0x12, 0xe3, 0xa1, 0xc1, 0x9f, 0x3d, 0x69, 0xe1, 0x23, 0xa6, 0xe3, 0x78, + 0xd1, 0x54, 0x82, 0x19, 0x46, 0x19, 0x87, 0xe5, 0x3a, 0x90, 0x12, 0x63, 0x3b, 0x04, 0xf0, 0x6a, + 0xd6, 0x43, 0xb6, 0x57, 0xca, 0x7d, 0x56, 0x18, 0xc0, 0xec, 0xf7, 0x48, 0x57, 0xc8, 0x7b, 0x68, + 0xfe, 0x42, 0x7f, 0x32, 0x22, 0x57, 0xc2, 0xaf, 0xe7, 0xeb, 0x98, 0x12, 0x6a, 0x61, 0x1c, 0x5a, + 0xd2, 0xc7, 0x1a, 0x11, 0x5d, 0xb0, 0x9f, 0x50, 0x7b, 0xdb, 0xf1, 0xec, 0x16, 0xf4, 0x17, 0xc0, + 0x82, 0xa4, 0x05, 0x28, 0x2c, 0xc8, 0x78, 0x15, 0x09, 0x83, 0x09, 0xe2, 0x4f, 0x3e, 0x57, 0xe4, + 0xe7, 0x49, 0x36, 0x34, 0x28, 0xbf, 0x60, 0x74, 0x44, 0x6c, 0xec, 0x4d, 0x59, 0x92, 0xc7, 0xb6, + 0x8c, 0x6d, 0xf8, 0x57, 0xf5, 0x63, 0x87, 0x81, 0x10, 0xae, 0xcf, 0x13, 0x65, 0xb3, 0x45, 0x43, + 0xa2, 0x37, 0xd4, 0xe5, 0xa6, 0x44, 0x3d, 0x6e, 0x46, 0x0c, 0x24, 0x95, 0x4f, 0x5b, 0x12, 0xf5, + 0x44, 0x2b, 0xa2, 0x9e, 0x60, 0x41, 0xfc, 0xd7, 0x2c, 0x7e, 0x4d, 0xca, 0xa4, 0x8a, 0x53, 0x1c, + 0x2f, 0x9a, 0x11, 0xe9, 0x3e, 0xbc, 0x2e, 0x92, 0x57, 0xe4, 0x23, 0x0f, 0x96, 0x3b, 0x75, 0x23, + 0x55, 0xdc, 0xc4, 0x0f, 0x3b, 0x84, 0xdf, 0x75, 0xc8, 0xe7, 0x58, 0xb1, 0xce, 0x43, 0x30, 0x52, + 0x7c, 0x24, 0x44, 0x17, 0xf9, 0x48, 0x04, 0x87, 0xb3, 0x94, 0xc9, 0x64, 0x78, 0x2a, 0xf6, 0x51, + 0x0b, 0x41, 0x80, 0x18, 0x50, 0x17, 0x48, 0x50, 0x34, 0xd7, 0xeb, 0xa2, 0xeb, 0x73, 0x3f, 0x50, + 0xe9, 0x89, 0x68, 0x16, 0x88, 0x17, 0xdb, 0x7c, 0x0b, 0x65, 0x3c, 0xee, 0x01, 0x8f, 0xe1, 0xc9, + 0xd3, 0xe9, 0xde, 0x2e, 0x4f, 0x5d, 0x7e, 0x96, 0x55, 0x61, 0xf1, 0x05, 0x3d, 0xdf, 0xe6, 0xef, + 0xd1, 0xa8, 0x40, 0x00, 0x98, 0x16, 0x42, 0x5a, 0x28, 0x40, 0xe3, 0x94, 0x80, 0x06, 0xe2, 0x17, + 0xfa, 0xb8, 0x11, 0x94, 0x1d, 0x2f, 0x7a, 0x3d, 0xbc, 0x86, 0x10, 0x16, 0x24, 0xe6, 0x88, 0x85, + 0x11, 0x79, 0x33, 0xc0, 0x50, 0x70, 0x74, 0x75, 0xc7, 0x03, 0xbd, 0x45, 0xe2, 0xbc, 0xfd, 0x6b, + 0x96, 0x8a, 0xb4, 0x3b, 0x9c, 0x54, 0x7d, 0x2b, 0x9e, 0xb0, 0x21, 0xcf, 0x19, 0x41, 0xdb, 0x9e, + 0x2f, 0x08, 0xec, 0xa7, 0xaa, 0x11, 0x8a, 0xf2, 0xc1, 0x87, 0x3c, 0xa0, 0x5d, 0xfa, 0x21, 0x0f, + 0x8f, 0xe0, 0xa2, 0xe3, 0xfc, 0xa0, 0xb7, 0xea, 0x07, 0xbd, 0x5d, 0xd6, 0x59, 0xb6, 0xa7, 0x9d, + 0x8d, 0x54, 0x7c, 0x0a, 0xec, 0xaa, 0x24, 0xfc, 0x23, 0xfd, 0xf7, 0x4d, 0x4b, 0x48, 0xe9, 0x1b, + 0x8a, 0xae, 0xf5, 0x8d, 0x2a, 0xb2, 0x27, 0xdb, 0xad, 0xf1, 0xf1, 0x29, 0x04, 0x9d, 0x9f, 0x38, + 0x67, 0xa4, 0x49, 0x80, 0x81, 0xc5, 0x71, 0x73, 0xf1, 0x29, 0x27, 0x9b, 0xf6, 0x02, 0x8f, 0x37, + 0x7b, 0x71, 0x94, 0x30, 0x8b, 0xc4, 0xec, 0xad, 0x1a, 0xd5, 0xd6, 0x22, 0xe5, 0xc4, 0xdb, 0xf4, + 0xec, 0x67, 0x5b, 0x94, 0xf8, 0x1f, 0x7d, 0x57, 0x38, 0xe8, 0xf5, 0x02, 0x0e, 0xf9, 0x43, 0x62, + 0x4e, 0xf3, 0x69, 0xf8, 0x11, 0x4d, 0x4e, 0x41, 0xf9, 0xd0, 0x5c, 0xe6, 0x43, 0x5c, 0x31, 0xd1, + 0xdf, 0xd2, 0x7a, 0xfa, 0x9b, 0xf3, 0xb8, 0x72, 0xaa, 0xbf, 0xa5, 0x53, 0xc3, 0xc1, 0x86, 0x8c, + 0x66, 0x2d, 0x7f, 0xc0, 0xdf, 0xd2, 0x5d, 0x7c, 0x4b, 0x18, 0x2e, 0x01, 0xb8, 0x64, 0x16, 0xbd, + 0xbc, 0xad, 0xb0, 0xab, 0x1f, 0x74, 0x4c, 0xfd, 0xa8, 0x63, 0xc3, 0x41, 0xa4, 0x53, 0x29, 0x6b, + 0x91, 0xde, 0xba, 0x55, 0xb4, 0xc1, 0xfe, 0xd7, 0x3b, 0xbb, 0x8a, 0xdc, 0xbe, 0xa5, 0x07, 0x3e, + 0x85, 0xf5, 0xe0, 0x21, 0x98, 0x00, 0xde, 0xe3, 0xdf, 0x51, 0x2e, 0x71, 0x80, 0x51, 0x94, 0x34, + 0xa3, 0x1f, 0x5d, 0x8d, 0x2d, 0xf4, 0x55, 0x8f, 0x27, 0xfe, 0xd7, 0xf8, 0x4d, 0xdf, 0xb6, 0x12, + 0xf1, 0x27, 0xb3, 0x3a, 0x3d, 0x43, 0xc2, 0x50, 0xfe, 0x7f, 0x0a, 0x67, 0x71, 0xac, 0xce, 0xca, + 0x79, 0x8d, 0xf7, 0x0b, 0xca, 0xff, 0x0f, 0xe7, 0x18, 0x9f, 0xb1, 0x1c, 0x53, 0xab, 0x49, 0x00, + 0x3a, 0xb6, 0xfd, 0x07, 0x9f, 0x2e, 0x0a, 0x22, 0x94, 0x52, 0xb9, 0x30, 0xf1, 0x43, 0x46, 0x09, + 0x13, 0x9b, 0xf5, 0x6d, 0xeb, 0x51, 0xdd, 0x60, 0xc0, 0xb5, 0xa3, 0x4a, 0x00, 0x10, 0x35, 0x6b, + 0x41, 0x59, 0xdc, 0xad, 0xfa, 0xf3, 0xc5, 0xf4, 0xf5, 0x75, 0x6b, 0xa3, 0xbb, 0x25, 0xaf, 0xaf, + 0x77, 0x36, 0xec, 0x2d, 0x79, 0x7b, 0xec, 0x13, 0x26, 0x1a, 0x76, 0x1b, 0xa3, 0xae, 0x66, 0x5e, + 0xab, 0xd4, 0x21, 0x7f, 0x7d, 0x3d, 0x96, 0x40, 0x8c, 0x58, 0x7c, 0x75, 0x48, 0xe9, 0x78, 0x85, + 0x66, 0x1d, 0xe9, 0x63, 0xdb, 0x1d, 0x7a, 0x3a, 0x49, 0xbc, 0x7f, 0x24, 0x0a, 0xaa, 0x65, 0x12, + 0xeb, 0x3a, 0xd5, 0xc5, 0xbd, 0x60, 0x4f, 0x78, 0x10, 0x1c, 0x29, 0xfa, 0x6d, 0xb5, 0xbc, 0x4c, + 0x16, 0xa8, 0x6b, 0xc5, 0x34, 0xa2, 0x1b, 0x2b, 0x58, 0xd5, 0xc0, 0x0f, 0x8c, 0x8c, 0x6b, 0x45, + 0xe4, 0x65, 0x21, 0xcd, 0x6f, 0xe1, 0x59, 0xc5, 0xc7, 0x90, 0x93, 0xac, 0x2b, 0x11, 0xc8, 0x31, + 0xfb, 0x0a, 0x81, 0x3c, 0xa7, 0xa4, 0xf6, 0xa1, 0x38, 0xce, 0xca, 0xe3, 0x91, 0xd9, 0xee, 0xaa, + 0x81, 0x4d, 0x6f, 0x39, 0x41, 0x7a, 0xdd, 0xb4, 0xa9, 0x70, 0x19, 0x7c, 0x15, 0xd2, 0x02, 0x85, + 0xce, 0x8b, 0x24, 0x85, 0x57, 0x3d, 0x98, 0x13, 0x0f, 0xeb, 0x53, 0x74, 0x1b, 0xf9, 0x7a, 0x58, + 0x40, 0xa9, 0x9f, 0xec, 0x4c, 0x37, 0xd2, 0x99, 0x5d, 0xe2, 0x6e, 0xc1, 0x74, 0xa1, 0xcb, 0x6a, + 0x32, 0x1f, 0x74, 0x41, 0xca, 0x6f, 0x2e, 0x76, 0x21, 0x66, 0x28, 0x4c, 0x14, 0x97, 0x81, 0x4c, + 0xcd, 0x79, 0x70, 0xa0, 0x3e, 0xf7, 0x2d, 0xc2, 0x8b, 0x67, 0xe9, 0x9e, 0xf1, 0x99, 0xb5, 0x2d, + 0x6f, 0xd5, 0xe9, 0x51, 0x68, 0x2d, 0xbc, 0x97, 0xa4, 0x7b, 0x17, 0x8a, 0x40, 0xef, 0xc0, 0xbb, + 0x7d, 0x82, 0xef, 0x80, 0xe8, 0xbf, 0xfb, 0x01, 0x90, 0xd1, 0x11, 0x36, 0xb0, 0x89, 0x2b, 0x75, + 0xa9, 0xa6, 0x7c, 0xaf, 0xe3, 0x68, 0x6b, 0x4a, 0x3a, 0x2d, 0x84, 0xcc, 0x4a, 0x09, 0xee, 0x9d, + 0x10, 0xe3, 0x2a, 0xf1, 0xec, 0x26, 0xcb, 0x45, 0x41, 0x6b, 0xed, 0x2f, 0x21, 0x68, 0xad, 0x6f, + 0xf3, 0x69, 0x65, 0xd9, 0x79, 0xe8, 0x17, 0xb6, 0x1e, 0xf4, 0xe4, 0x57, 0xd0, 0x8d, 0xf5, 0xf5, + 0x4f, 0xf6, 0x56, 0xa6, 0x37, 0x62, 0x3d, 0x53, 0xfc, 0xf7, 0x5c, 0x58, 0xb2, 0xdf, 0x05, 0xe5, + 0x09, 0x7a, 0xbe, 0xac, 0x71, 0xbf, 0x98, 0x25, 0x2d, 0x3b, 0xaf, 0x85, 0x0e, 0x92, 0x35, 0xfc, + 0x45, 0xa7, 0x57, 0x02, 0x23, 0x5b, 0x71, 0x60, 0xec, 0x0f, 0xc7, 0x80, 0xad, 0xcd, 0x1d, 0xdf, + 0x95, 0x5e, 0x80, 0xbd, 0x3a, 0xbd, 0xac, 0x94, 0x1a, 0x94, 0xfa, 0xee, 0x8b, 0x9a, 0x4c, 0xcf, + 0x6d, 0xbf, 0xe7, 0xf4, 0x3c, 0xdd, 0x33, 0x35, 0xa3, 0x06, 0x82, 0xa1, 0x48, 0x98, 0xbe, 0xd3, + 0x38, 0xcf, 0xf1, 0x72, 0x3e, 0x36, 0x80, 0x37, 0x46, 0xc3, 0x60, 0x88, 0xd1, 0x2b, 0x83, 0x78, + 0xa8, 0x6d, 0x39, 0x02, 0x2a, 0xb5, 0xf8, 0x10, 0x78, 0x44, 0xd3, 0xb3, 0x17, 0xb5, 0xfe, 0xed, + 0x94, 0x44, 0x5f, 0xae, 0xd2, 0xb8, 0xcc, 0x09, 0x06, 0x1d, 0xa7, 0xcf, 0xb2, 0x95, 0xd8, 0x59, + 0x24, 0x0d, 0xdd, 0xfc, 0x1f, 0xdf, 0xaa, 0x01, 0x0e, 0x98, 0xef, 0xd8, 0x92, 0x85, 0x13, 0xb5, + 0x8a, 0x84, 0x86, 0x90, 0xad, 0x5b, 0x0f, 0x66, 0x37, 0xb0, 0x83, 0x7c, 0xab, 0x05, 0x27, 0xcc, + 0xc4, 0x23, 0x8d, 0xa3, 0x5d, 0x26, 0x27, 0x31, 0xc4, 0x9f, 0x2c, 0x0a, 0xeb, 0x5f, 0x33, 0x37, + 0xa3, 0x75, 0xe7, 0x28, 0x3b, 0x4b, 0xf5, 0x3a, 0x3e, 0x6f, 0xf3, 0x9e, 0xa2, 0xcf, 0x57, 0xdd, + 0x0c, 0x7a, 0xd3, 0x83, 0x0e, 0xe8, 0x05, 0x97, 0x4e, 0x63, 0x7e, 0x9a, 0xa7, 0xbe, 0xad, 0xf3, + 0xa0, 0xc9, 0x5f, 0x35, 0x95, 0xb8, 0xf2, 0x46, 0x6c, 0x2f, 0x9e, 0x4f, 0xaf, 0x57, 0x33, 0xe2, + 0xf1, 0x15, 0xcb, 0x59, 0xf4, 0x19, 0xa3, 0x44, 0xc5, 0x38, 0x97, 0x25, 0x94, 0x65, 0xa8, 0x6f, + 0xf1, 0x38, 0x2b, 0x70, 0x93, 0xf4, 0xdc, 0xf6, 0x88, 0x5b, 0xa5, 0x48, 0x0e, 0xb5, 0x54, 0xdf, + 0xbb, 0x30, 0x38, 0x7a, 0x43, 0x5f, 0x73, 0xf7, 0xbb, 0xea, 0x4d, 0x6a, 0xcd, 0x85, 0xe5, 0xab, + 0xfe, 0x70, 0x7f, 0xd6, 0x67, 0x5a, 0xb7, 0x8a, 0x0f, 0x78, 0xf2, 0x8e, 0xda, 0x2e, 0x7d, 0x91, + 0x7f, 0xce, 0x11, 0x06, 0xeb, 0xe2, 0x47, 0x9c, 0x54, 0xc8, 0x7d, 0x5e, 0x5d, 0xc5, 0xb0, 0x3c, + 0x8a, 0xad, 0xa6, 0x5c, 0x92, 0x28, 0xe0, 0x31, 0xbb, 0xef, 0xbe, 0x88, 0xf0, 0x24, 0x0a, 0x89, + 0x6f, 0xe1, 0x35, 0x52, 0x7e, 0x1e, 0x76, 0x82, 0xdc, 0xab, 0x53, 0x7d, 0x7a, 0xc2, 0x6b, 0xcb, + 0xa2, 0x01, 0x3f, 0x58, 0x1a, 0x4f, 0x18, 0xd1, 0x59, 0x81, 0xa7, 0x37, 0xda, 0x49, 0x63, 0x9a, + 0xd1, 0x55, 0xa7, 0x17, 0xbd, 0x14, 0x7f, 0xdd, 0xba, 0xdb, 0xe5, 0x85, 0xef, 0x12, 0xf1, 0x40, + 0x8b, 0x12, 0x2d, 0xf5, 0x8d, 0x44, 0x9f, 0x65, 0xea, 0x46, 0xe9, 0x11, 0x2d, 0x36, 0x82, 0xf7, + 0xd6, 0x69, 0x2a, 0x5e, 0x5a, 0xa0, 0x19, 0xdb, 0x7c, 0xad, 0xf6, 0xa5, 0x26, 0xf3, 0xd5, 0x20, + 0xa3, 0x46, 0xb1, 0x83, 0x87, 0xfd, 0xfa, 0xf6, 0x8f, 0x9f, 0x55, 0x1d, 0x44, 0x32, 0x5d, 0x43, + 0x3f, 0x4c, 0x72, 0xed, 0xde, 0xf5, 0x2a, 0x7e, 0xcf, 0xff, 0xfe, 0x4d, 0x1c, 0x02, 0x88, 0xc3, + 0x21, 0x94, 0xc3, 0x5f, 0xbf, 0xa8, 0x48, 0xee, 0xbf, 0xf9, 0xce, 0x92, 0xeb, 0xeb, 0x3c, 0x86, + 0x2f, 0x42, 0x67, 0x06, 0x12, 0x9d, 0xc8, 0x8f, 0x11, 0x85, 0x09, 0x82, 0xe7, 0x53, 0x1f, 0x7e, + 0x24, 0xcc, 0x3f, 0xe3, 0x0b, 0x1a, 0x2a, 0x04, 0x0d, 0xe5, 0x7f, 0x6e, 0x83, 0x3c, 0x5b, 0xc5, + 0x87, 0x9a, 0x44, 0xee, 0xf6, 0xa4, 0xd0, 0xc9, 0x42, 0x10, 0x15, 0xa6, 0xad, 0x94, 0x02, 0x78, + 0xea, 0xe8, 0x23, 0xe2, 0x46, 0x22, 0xf1, 0x61, 0x03, 0xe5, 0x5c, 0xae, 0x54, 0x23, 0x85, 0xc3, + 0x7c, 0x99, 0xcd, 0x27, 0x5f, 0x00, 0x8b, 0xe6, 0xe7, 0x98, 0x7c, 0xfa, 0x01, 0xae, 0x68, 0xfe, + 0x98, 0xcd, 0x27, 0x9f, 0xbf, 0x8a, 0xe6, 0xf7, 0xa2, 0xf9, 0xc5, 0x1a, 0x7a, 0xb5, 0xb8, 0xe9, + 0x7a, 0x1f, 0xaf, 0x6a, 0xe2, 0x5e, 0x01, 0x44, 0x8d, 0xee, 0x58, 0x87, 0xee, 0x50, 0x4f, 0xe1, + 0x07, 0x06, 0x45, 0x55, 0x34, 0x44, 0x94, 0x40, 0xf6, 0x1f, 0x00, 0x8b, 0xe4, 0xa4, 0x9c, 0xee, + 0x6d, 0xfe, 0xc7, 0xfb, 0xd8, 0xad, 0x2d, 0xc1, 0x89, 0x32, 0x70, 0x8f, 0xa6, 0x9e, 0xd4, 0x81, + 0x53, 0xad, 0xf7, 0x16, 0xf1, 0x51, 0x95, 0x7f, 0xc6, 0xc9, 0x97, 0x38, 0x31, 0x7a, 0x65, 0x7d, + 0x02, 0xfe, 0x21, 0x89, 0x01, 0x6f, 0xf8, 0xe9, 0x5f, 0x13, 0x07, 0xb2, 0x0c, 0x16, 0x12, 0xd2, + 0x30, 0xa9, 0x82, 0x9c, 0x26, 0x79, 0x60, 0x9e, 0x8f, 0x38, 0x2f, 0xa2, 0xe7, 0xa9, 0x88, 0xcd, + 0x90, 0x31, 0x5e, 0xfa, 0xc9, 0xbf, 0xe2, 0x9f, 0xc6, 0xb3, 0xc8, 0x99, 0x9c, 0x27, 0xc2, 0xff, + 0x6b, 0x06, 0x50, 0xa1, 0xec, 0x25, 0x24, 0x36, 0x1d, 0x27, 0x45, 0x1c, 0x6b, 0x03, 0xa7, 0xba, + 0x5f, 0xbe, 0x8b, 0xa9, 0xff, 0x99, 0xcc, 0x64, 0x37, 0x53, 0x5b, 0xed, 0xda, 0xca, 0xc4, 0x83, + 0x92, 0xf2, 0x97, 0x5c, 0xc2, 0x35, 0x5d, 0xfe, 0xab, 0x07, 0x89, 0xcb, 0x10, 0x3f, 0x4b, 0xa1, + 0xc6, 0xba, 0xfa, 0x72, 0x6a, 0x78, 0xfa, 0xae, 0x02, 0x8d, 0x46, 0xaa, 0xa7, 0xf8, 0x4c, 0xd0, + 0x79, 0x7a, 0x51, 0xde, 0x0b, 0x3c, 0x55, 0x8f, 0x0d, 0x20, 0x08, 0xf1, 0xa5, 0x75, 0x05, 0xf6, + 0x60, 0x3e, 0x5a, 0x8c, 0x7a, 0xc2, 0xb2, 0x81, 0x33, 0xc3, 0xdb, 0x88, 0x61, 0x1a, 0x2e, 0x59, + 0xf4, 0x43, 0x75, 0xfd, 0x9b, 0x53, 0xde, 0x36, 0x57, 0xe5, 0xc8, 0x9e, 0x56, 0x93, 0xeb, 0xc1, + 0x52, 0x42, 0x0f, 0x32, 0xc0, 0x7d, 0x9d, 0xcc, 0x42, 0x94, 0x6d, 0x90, 0xa9, 0xf7, 0xf2, 0xd1, + 0x6d, 0x10, 0xd4, 0x32, 0xc1, 0xbf, 0xd6, 0xea, 0x39, 0xc1, 0xd2, 0x21, 0x4b, 0x35, 0xf5, 0xbb, + 0x0f, 0x0f, 0x76, 0x80, 0xb4, 0x30, 0xa3, 0xbb, 0x8e, 0x5e, 0x77, 0x7d, 0xe6, 0xa1, 0x88, 0x9a, + 0x68, 0x8a, 0x36, 0x08, 0x1f, 0xb5, 0x05, 0xf6, 0xa4, 0x0b, 0x82, 0x5d, 0x67, 0x3c, 0x30, 0xd0, + 0x33, 0x36, 0x0b, 0x8d, 0xfd, 0x85, 0xb7, 0xc5, 0x45, 0xea, 0x1d, 0x2b, 0x6a, 0x75, 0x0c, 0x99, + 0x21, 0x9a, 0x75, 0x8c, 0x87, 0x51, 0x23, 0x1b, 0x02, 0x00, 0xe2, 0x6d, 0x64, 0x49, 0x82, 0x82, + 0x7d, 0xf3, 0x3c, 0xaf, 0xc8, 0x17, 0x96, 0x53, 0xe8, 0x02, 0xb0, 0x98, 0x66, 0x2e, 0xa6, 0x11, + 0x50, 0xde, 0xd4, 0x61, 0x43, 0x1b, 0xb2, 0xe7, 0x1f, 0x46, 0x6f, 0xfc, 0x3a, 0x54, 0x72, 0xd2, + 0xf4, 0xae, 0xad, 0x1a, 0x35, 0x85, 0xf1, 0x57, 0x40, 0x7e, 0xe9, 0x4f, 0x99, 0x8d, 0xcd, 0x25, + 0x67, 0xf5, 0xb1, 0xd5, 0xe4, 0xac, 0xb6, 0x30, 0xff, 0x02, 0x33, 0x51, 0xb7, 0x01, 0xc7, 0x11, + 0x04, 0xa8, 0x59, 0x1f, 0x9b, 0x04, 0x05, 0x78, 0xe3, 0x97, 0xf8, 0xfe, 0x7a, 0xc1, 0xcc, 0x14, + 0x8c, 0x63, 0xa6, 0xe1, 0x1f, 0x73, 0x2e, 0x60, 0x44, 0xb5, 0xf9, 0xbf, 0x7f, 0x09, 0x73, 0xef, + 0x6e, 0x25, 0xf3, 0x45, 0x69, 0x6e, 0xe9, 0x27, 0xa5, 0x31, 0x60, 0xc7, 0xb3, 0xa9, 0x91, 0x4b, + 0xf9, 0xb5, 0x5f, 0x51, 0x62, 0x5b, 0x5c, 0xaa, 0xe4, 0xfe, 0x26, 0xb0, 0x20, 0xdc, 0x79, 0x44, + 0x25, 0x72, 0x91, 0x33, 0xb6, 0x44, 0xa9, 0xe8, 0x80, 0xe7, 0x33, 0x24, 0x1e, 0xb2, 0x67, 0x41, + 0x23, 0x87, 0x63, 0xa8, 0x26, 0xe0, 0x35, 0x4e, 0x3c, 0xc6, 0x60, 0x9c, 0xc6, 0x48, 0x1e, 0x48, + 0x0f, 0x68, 0xbd, 0x51, 0xd2, 0xdf, 0xf8, 0x6f, 0x73, 0xd3, 0x68, 0x52, 0x95, 0x01, 0x34, 0xff, + 0x39, 0x09, 0xdd, 0x26, 0x24, 0x9c, 0xad, 0x24, 0x7f, 0x58, 0x33, 0xf9, 0x94, 0x22, 0xc1, 0x3a, + 0x4e, 0xaa, 0x33, 0x36, 0x06, 0xec, 0x17, 0x6e, 0xa7, 0xf8, 0xac, 0xce, 0xf9, 0xc5, 0x43, 0x15, + 0x52, 0x61, 0x51, 0x8b, 0x5b, 0xf6, 0xf5, 0xce, 0x45, 0x35, 0x30, 0xfc, 0x80, 0x27, 0x3d, 0xdf, + 0xc2, 0xeb, 0xac, 0xfe, 0x49, 0x55, 0xa8, 0x14, 0x06, 0x3a, 0x4e, 0xa0, 0x1d, 0xa2, 0xc6, 0x14, + 0xaa, 0x34, 0xc1, 0x44, 0xb5, 0x71, 0x1c, 0xc8, 0x0d, 0x9c, 0x89, 0xe6, 0xdd, 0xc0, 0xeb, 0x60, + 0xa0, 0x8f, 0x7c, 0xae, 0xea, 0x2d, 0xf9, 0xbd, 0xd6, 0x65, 0x3e, 0xc7, 0xd7, 0x68, 0x6a, 0x3e, + 0x92, 0xba, 0xd1, 0x0a, 0x32, 0x0a, 0xb1, 0x8c, 0xbc, 0x9f, 0x51, 0x8c, 0x66, 0x34, 0xfd, 0x8c, + 0x32, 0xdb, 0x40, 0x39, 0x57, 0x2a, 0xf1, 0x1e, 0xe5, 0xf1, 0xdb, 0xcc, 0x75, 0xc7, 0xb6, 0x11, + 0xb9, 0x33, 0xc9, 0x63, 0xe4, 0x11, 0x72, 0xcb, 0x09, 0xd3, 0xb7, 0x41, 0x6a, 0xb1, 0xaa, 0xf4, + 0x79, 0x71, 0xbb, 0xa2, 0xe1, 0xb0, 0x49, 0x0c, 0x4d, 0xca, 0x6a, 0x80, 0xe8, 0x0c, 0xfc, 0x03, + 0xb2, 0x0a, 0xf2, 0x0e, 0x90, 0xa7, 0xb0, 0x84, 0x10, 0x28, 0x5c, 0xe8, 0x84, 0xe4, 0x25, 0xfe, + 0x81, 0x34, 0xe6, 0x83, 0x21, 0xfc, 0x54, 0xa1, 0xa9, 0x46, 0xe8, 0x4f, 0xf9, 0x2b, 0xe9, 0x5a, + 0x5b, 0x70, 0xa1, 0x02, 0xb6, 0x73, 0x6b, 0x1e, 0xf9, 0xa0, 0xab, 0x17, 0xc1, 0xc5, 0xbb, 0x92, + 0xfa, 0xcd, 0xbb, 0x2c, 0xe3, 0x95, 0xfc, 0x46, 0xef, 0x55, 0x50, 0xa4, 0x28, 0x02, 0x73, 0xb7, + 0x42, 0xfc, 0x05, 0xc9, 0x64, 0x2a, 0x15, 0x12, 0x85, 0x06, 0xf2, 0xd0, 0xcb, 0x52, 0xa3, 0x42, + 0xb8, 0x82, 0x4e, 0x81, 0xdb, 0xfc, 0x79, 0xb6, 0xc1, 0x57, 0xc9, 0xf3, 0x1c, 0xd5, 0xe2, 0x5f, + 0xb0, 0x1b, 0xa7, 0xd3, 0x73, 0x18, 0x5e, 0xb7, 0xf3, 0x5d, 0xda, 0x76, 0x40, 0x90, 0x88, 0x44, + 0xb9, 0xc7, 0x7b, 0x7e, 0xc0, 0xef, 0xd1, 0x98, 0xd4, 0xcd, 0xf0, 0x55, 0x89, 0xf8, 0x37, 0xa5, + 0xb0, 0xd8, 0xb9, 0xc9, 0x99, 0x78, 0x1f, 0x31, 0x0c, 0x79, 0xce, 0xf5, 0x90, 0x53, 0x64, 0x50, + 0x8a, 0x43, 0x8d, 0x20, 0xb0, 0x40, 0x31, 0x9e, 0x6e, 0x4d, 0xea, 0xa0, 0x17, 0xd4, 0xa9, 0xa2, + 0xbf, 0x1b, 0x41, 0xd7, 0x9c, 0x14, 0x34, 0xc8, 0x01, 0x55, 0xcc, 0xb9, 0xcd, 0x88, 0x6c, 0xb9, + 0x4e, 0xf4, 0x92, 0x91, 0x17, 0xf0, 0xfc, 0x93, 0xb7, 0x8b, 0x68, 0xc0, 0xf8, 0xcf, 0x5c, 0x2e, + 0x0a, 0xee, 0xc1, 0x8e, 0xf4, 0x2e, 0x89, 0x6b, 0x8d, 0x8d, 0x71, 0xd8, 0x1a, 0x87, 0x7b, 0x37, + 0x0d, 0x49, 0x90, 0x78, 0xeb, 0x28, 0xe9, 0x8b, 0x17, 0x62, 0x94, 0x20, 0x7d, 0xe7, 0x37, 0x51, + 0xfd, 0xe0, 0xc6, 0xd5, 0x42, 0x4c, 0x0d, 0xa2, 0xed, 0xd3, 0x7d, 0x9b, 0x06, 0x0f, 0x51, 0xbd, + 0x5d, 0xb9, 0x16, 0xb8, 0xeb, 0x29, 0x88, 0x61, 0x6c, 0xe7, 0xb3, 0xee, 0x7e, 0x78, 0x85, 0x05, + 0xd7, 0x02, 0x88, 0xd1, 0x4b, 0x23, 0x81, 0xba, 0xc4, 0x79, 0xd0, 0x8f, 0x80, 0x71, 0x87, 0xac, + 0x8e, 0x44, 0x73, 0xec, 0xf3, 0x82, 0xbf, 0xb4, 0xd4, 0xcc, 0x40, 0x71, 0x1a, 0xae, 0x6b, 0x6b, + 0x40, 0x90, 0x90, 0x3b, 0x54, 0xa6, 0xbc, 0x00, 0xcb, 0x53, 0xf1, 0x93, 0x88, 0x4b, 0x38, 0xd5, + 0x3f, 0xab, 0xb0, 0x75, 0xfa, 0x01, 0x0d, 0x58, 0x4f, 0x49, 0x92, 0x99, 0x75, 0x84, 0x9a, 0xf1, + 0x9d, 0xdc, 0xa3, 0x87, 0x45, 0x94, 0xa3, 0x52, 0x82, 0x5e, 0x5f, 0x08, 0x03, 0x5a, 0xa1, 0x51, + 0x40, 0x69, 0x9c, 0x8c, 0x76, 0x5f, 0x20, 0xf4, 0xf3, 0x6f, 0x3f, 0xa1, 0xb3, 0x51, 0xf2, 0x52, + 0x84, 0x5f, 0xb5, 0x65, 0x11, 0xa7, 0xf4, 0x39, 0x35, 0xb3, 0x44, 0xd0, 0xb6, 0x0c, 0x83, 0x41, + 0x88, 0x28, 0xfa, 0x21, 0x37, 0x8a, 0x38, 0xc5, 0x53, 0x08, 0x02, 0x89, 0xd0, 0x57, 0xb0, 0xc3, + 0x88, 0x8a, 0x4c, 0x90, 0x14, 0x12, 0x11, 0x31, 0x43, 0xbf, 0x78, 0xf0, 0x77, 0x9b, 0x4c, 0x8a, + 0x58, 0xc2, 0x7c, 0x69, 0xce, 0x8b, 0xc5, 0x11, 0x23, 0x1c, 0xb4, 0x19, 0x31, 0x61, 0xb0, 0xa8, + 0x25, 0x44, 0x45, 0x63, 0x89, 0x4f, 0x3f, 0xb1, 0x30, 0x14, 0xb1, 0x52, 0xde, 0xa8, 0x40, 0x3f, + 0x4b, 0x2c, 0x11, 0x9a, 0x53, 0x16, 0xcf, 0x97, 0xdc, 0x2a, 0x09, 0x5e, 0xe1, 0x6c, 0xf8, 0x96, + 0xb2, 0x08, 0xe8, 0xc7, 0x5f, 0x28, 0x95, 0x45, 0x60, 0x61, 0x92, 0x56, 0x8f, 0x75, 0x00, 0x04, + 0x9f, 0x58, 0x83, 0x20, 0x00, 0xb2, 0x29, 0x66, 0x0f, 0x92, 0x3a, 0x54, 0xd2, 0x1a, 0xbe, 0xb4, + 0x1e, 0x0f, 0x81, 0x0f, 0x75, 0xc3, 0xd7, 0x5d, 0x1a, 0xba, 0x4d, 0x73, 0xce, 0x04, 0xa4, 0xf5, + 0xad, 0x3a, 0x31, 0x0b, 0x0b, 0x24, 0x3c, 0x96, 0x77, 0xff, 0x57, 0x12, 0xf5, 0x0c, 0x8d, 0xc9, + 0x0e, 0xbf, 0x9a, 0x81, 0x41, 0x60, 0xe9, 0xec, 0xd2, 0x6c, 0x19, 0x14, 0x2f, 0xcc, 0x26, 0xbf, + 0x34, 0x5b, 0x23, 0x0f, 0x04, 0x12, 0x3e, 0x43, 0xa6, 0x6f, 0x4c, 0xda, 0x90, 0x45, 0x33, 0xcc, + 0x4c, 0x93, 0x37, 0x26, 0x5b, 0xec, 0xac, 0xaf, 0x77, 0x96, 0xd8, 0xc5, 0xba, 0xeb, 0xeb, 0xdd, + 0x25, 0x59, 0x20, 0xdc, 0xd9, 0x4b, 0x0d, 0x1b, 0x54, 0xf8, 0x8c, 0x01, 0x8e, 0x16, 0x89, 0xc3, + 0x8e, 0xe5, 0xc6, 0xc0, 0x33, 0x2d, 0x93, 0x99, 0x63, 0xa4, 0x52, 0xdd, 0xa7, 0x07, 0x46, 0x1c, + 0x55, 0x96, 0x52, 0x80, 0x06, 0x14, 0x50, 0x33, 0xfe, 0xaa, 0x9b, 0x1b, 0x1a, 0x01, 0x64, 0x45, + 0x26, 0x0e, 0xcd, 0xfb, 0xbf, 0xa8, 0x15, 0x71, 0xc3, 0xc5, 0x53, 0x05, 0x28, 0x86, 0x36, 0x30, + 0x6b, 0x7d, 0xdd, 0x5a, 0x3e, 0x58, 0x26, 0x5e, 0x5f, 0xa0, 0xb9, 0x46, 0x75, 0xa5, 0x5f, 0x44, + 0x57, 0xfa, 0xc1, 0x08, 0x8c, 0x61, 0xa8, 0xfd, 0x39, 0xff, 0x93, 0x36, 0xe9, 0x52, 0x4d, 0xcb, + 0x59, 0xa2, 0x69, 0x11, 0x21, 0xcb, 0xdb, 0x7d, 0x6e, 0xd4, 0xa9, 0x2b, 0x1a, 0x91, 0xae, 0x13, + 0x9f, 0x3a, 0x00, 0x64, 0x90, 0x38, 0x7a, 0x81, 0xf5, 0xe4, 0xff, 0xf9, 0xdf, 0xfe, 0x0f, 0x34, + 0x9e, 0x6c, 0x1b, 0x4b, 0xbb, 0x5f, 0x35, 0x96, 0x58, 0x3c, 0xe7, 0xd4, 0x3c, 0x65, 0xe1, 0xed, + 0xc4, 0x15, 0x76, 0x53, 0xbf, 0x03, 0xae, 0xf5, 0x2b, 0x62, 0x8b, 0x25, 0xec, 0xcc, 0xaa, 0xf3, + 0x5e, 0x98, 0x0a, 0x81, 0x18, 0x77, 0x8c, 0x2d, 0x79, 0xdb, 0xaa, 0x63, 0x18, 0x17, 0x10, 0x9c, + 0x1c, 0xbe, 0x8a, 0x1e, 0x58, 0x08, 0xbf, 0xce, 0xcb, 0xc4, 0x63, 0x01, 0x56, 0x27, 0x6c, 0x25, + 0x5f, 0x22, 0x23, 0xeb, 0xdb, 0x00, 0x99, 0x72, 0xf6, 0x7e, 0xf2, 0x92, 0x27, 0x25, 0x7c, 0x32, + 0x18, 0x2d, 0x61, 0x1c, 0x56, 0x27, 0x28, 0x83, 0x06, 0x15, 0x74, 0xb4, 0xee, 0xd7, 0xbd, 0x5b, + 0x33, 0x3d, 0xca, 0xfe, 0x3b, 0x2a, 0xec, 0x68, 0x46, 0x36, 0xd5, 0x4f, 0x8f, 0x40, 0x21, 0xf4, + 0xa2, 0x79, 0xf7, 0x88, 0xc5, 0x79, 0x4b, 0xfe, 0xfd, 0x7b, 0xb4, 0x25, 0xe1, 0xb3, 0x05, 0x12, + 0x05, 0x07, 0x02, 0x7c, 0x6f, 0xce, 0x8d, 0x35, 0xdb, 0x1d, 0x29, 0xba, 0x00, 0x6a, 0x0a, 0xb1, + 0x0e, 0xfb, 0x6b, 0x99, 0x96, 0xe2, 0xb9, 0x1f, 0x78, 0xd9, 0xcc, 0xfa, 0x19, 0xc3, 0x14, 0xd0, + 0x61, 0x24, 0xe0, 0x89, 0x15, 0xe7, 0x90, 0x78, 0xdd, 0x8c, 0xaa, 0x6e, 0x35, 0xd5, 0x8f, 0x54, + 0x85, 0x17, 0xd3, 0x78, 0x21, 0x6a, 0x89, 0x50, 0x85, 0xc4, 0x30, 0x40, 0xbe, 0x7b, 0x97, 0xc0, + 0xd4, 0xc6, 0x9b, 0xb4, 0x7f, 0x5a, 0x1b, 0xe6, 0x2b, 0xf2, 0xbd, 0x07, 0xbc, 0x0a, 0x1c, 0x0d, + 0x17, 0x13, 0xc9, 0x9e, 0x9b, 0x40, 0x7e, 0xb0, 0x73, 0xbb, 0x71, 0x62, 0x09, 0x41, 0x8a, 0xa9, + 0x65, 0x75, 0x5f, 0xf5, 0xf6, 0x2f, 0x12, 0x62, 0x6c, 0x79, 0xe5, 0x79, 0x1c, 0x4d, 0x78, 0xc9, + 0x79, 0x46, 0x43, 0x27, 0x10, 0xb1, 0xf3, 0xd2, 0x9c, 0xa8, 0xb6, 0x6f, 0x42, 0xc5, 0xbd, 0xaa, + 0x8e, 0x1f, 0xd7, 0xd8, 0xf6, 0x23, 0x72, 0x61, 0x84, 0x20, 0xa6, 0xf4, 0xb9, 0x1e, 0x29, 0x6a, + 0xe8, 0x8d, 0x65, 0x25, 0x5b, 0x6f, 0x46, 0x27, 0x52, 0xd6, 0xff, 0x0e, 0x47, 0xa4, 0x02, 0x6e, + 0x76, 0x9e, 0x04, 0xe8, 0x9d, 0x87, 0xb4, 0x82, 0x35, 0xbe, 0x90, 0xe4, 0x59, 0x83, 0x52, 0xcc, + 0x47, 0x36, 0x16, 0x4f, 0x51, 0xbc, 0xbd, 0x74, 0xc7, 0xd6, 0xf0, 0xfc, 0x61, 0x49, 0x2e, 0xfd, + 0xd2, 0xf9, 0xf2, 0xfc, 0xf0, 0x8b, 0xda, 0xcb, 0xcb, 0x34, 0xe5, 0x55, 0x99, 0xb9, 0x55, 0x99, + 0x79, 0xcc, 0xf4, 0x03, 0x97, 0xa7, 0x96, 0x94, 0xba, 0x5e, 0x01, 0xe1, 0x60, 0x45, 0xde, 0x0e, + 0xb9, 0xe9, 0x1c, 0x46, 0x43, 0x5f, 0x52, 0xec, 0x9e, 0x17, 0xd8, 0xe8, 0xe4, 0x4c, 0x50, 0x68, + 0x6a, 0x2d, 0x9b, 0xe0, 0xa5, 0x82, 0x85, 0x93, 0x11, 0x1f, 0x6c, 0xfc, 0x5c, 0x84, 0x56, 0x69, + 0x2b, 0x7a, 0x52, 0x8d, 0x66, 0xf3, 0x26, 0xb1, 0xfc, 0x40, 0x9d, 0x4e, 0x16, 0xca, 0xab, 0x18, + 0x70, 0x3b, 0xb1, 0x38, 0xfd, 0xf4, 0x47, 0x52, 0x03, 0x04, 0x8f, 0x20, 0x84, 0x91, 0x02, 0xc9, + 0x4d, 0x2d, 0x1b, 0x0d, 0x8d, 0x1d, 0xbf, 0xb2, 0xae, 0xf3, 0x5f, 0xa8, 0x3b, 0x5e, 0x51, 0x37, + 0xb1, 0xc2, 0xcb, 0xea, 0xc6, 0x56, 0x60, 0xd3, 0xee, 0xb7, 0x57, 0xd6, 0x55, 0x31, 0xd8, 0x77, + 0x62, 0xcd, 0xd7, 0x8e, 0xb3, 0x31, 0x59, 0x51, 0x8f, 0x7c, 0x62, 0x25, 0x5e, 0x93, 0xb9, 0xe3, + 0xeb, 0x3d, 0x92, 0x70, 0x7a, 0xb6, 0x93, 0x5a, 0x90, 0x5d, 0xe3, 0xeb, 0x37, 0x12, 0x40, 0x2b, + 0x34, 0xcb, 0x8a, 0x8b, 0x9b, 0xf8, 0x2f, 0x1a, 0x11, 0x91, 0x1a, 0x63, 0x7c, 0x1b, 0xf1, 0xcf, + 0x1f, 0x81, 0xa5, 0x46, 0xa5, 0x72, 0x80, 0x43, 0xb6, 0x6f, 0xf6, 0x00, 0x96, 0x5a, 0xed, 0x16, + 0x65, 0x02, 0x86, 0x51, 0xe3, 0x07, 0x3d, 0x56, 0xb2, 0x72, 0xd1, 0xfd, 0x50, 0x20, 0xa1, 0xed, + 0x23, 0x03, 0xfe, 0x5c, 0xc9, 0xe5, 0x7c, 0x9a, 0x11, 0xad, 0xe3, 0x76, 0x46, 0xbc, 0x21, 0x8a, + 0x62, 0x95, 0xfa, 0xbd, 0x24, 0xe8, 0x51, 0xfd, 0x21, 0x26, 0xff, 0xa9, 0x5b, 0xb9, 0xf5, 0x75, + 0x12, 0x3e, 0x60, 0x69, 0x91, 0x22, 0x39, 0x15, 0x41, 0xeb, 0xe9, 0x6a, 0x39, 0x94, 0x8b, 0xdc, + 0x40, 0xd3, 0x05, 0x5e, 0x26, 0x16, 0x1b, 0xdf, 0x5a, 0x89, 0x25, 0x91, 0x34, 0x3e, 0x38, 0x78, + 0x5b, 0x64, 0xe9, 0x6c, 0xcc, 0x2b, 0x5f, 0xee, 0x13, 0x51, 0xed, 0x5d, 0x31, 0xf1, 0xbd, 0x29, + 0x3b, 0xe7, 0x71, 0x21, 0x10, 0xcf, 0x7d, 0xdd, 0x85, 0xc9, 0x77, 0x16, 0x40, 0x46, 0x26, 0xdf, + 0xa3, 0x98, 0x55, 0xb3, 0xef, 0x07, 0x56, 0xa4, 0x9f, 0x71, 0xa3, 0x31, 0x50, 0x82, 0xdb, 0xc2, + 0x7f, 0x43, 0x52, 0x35, 0x84, 0x99, 0xb1, 0x62, 0x93, 0xc7, 0x0b, 0xf4, 0xe4, 0x78, 0xf2, 0x52, + 0xb1, 0x61, 0xd4, 0x2e, 0xae, 0xa4, 0x10, 0x8a, 0xaf, 0x43, 0xab, 0x09, 0xc7, 0x11, 0xec, 0x29, + 0x04, 0x35, 0xb5, 0x7b, 0x73, 0xb6, 0xf0, 0x11, 0x11, 0xd3, 0x72, 0x99, 0xb3, 0xba, 0x9a, 0xca, + 0x9c, 0x32, 0x90, 0x83, 0x31, 0x90, 0xf0, 0xbc, 0xef, 0x5a, 0xfd, 0xfe, 0x2d, 0x07, 0xcf, 0x90, + 0xf1, 0x05, 0x4f, 0xd4, 0x30, 0x72, 0x67, 0xfe, 0x67, 0x28, 0x25, 0x4b, 0xe4, 0x80, 0x71, 0x7b, + 0x09, 0x11, 0x54, 0xd5, 0xa5, 0x04, 0x26, 0x78, 0x4a, 0xbb, 0xf1, 0x39, 0x91, 0x5d, 0xab, 0xc7, + 0x7c, 0x37, 0x16, 0x03, 0xa7, 0x76, 0xb5, 0xf1, 0x8f, 0xf8, 0x4d, 0x19, 0x3f, 0x74, 0x2a, 0x83, + 0x12, 0x4d, 0x50, 0x16, 0x85, 0xfc, 0xe5, 0xfd, 0xac, 0x2e, 0x19, 0x5a, 0xed, 0x4f, 0x7a, 0xe4, + 0xdf, 0x03, 0xf9, 0xb0, 0x3b, 0xff, 0xfb, 0xff, 0x89, 0xdd, 0x59, 0x5f, 0x67, 0xd2, 0xfe, 0xef, + 0xff, 0x6b, 0x67, 0xa1, 0x8b, 0x9f, 0x43, 0x31, 0x23, 0xf6, 0x79, 0xfc, 0xfc, 0x1a, 0xa3, 0x81, + 0x51, 0x4b, 0x2a, 0xdd, 0x2e, 0xc8, 0xf7, 0xfb, 0x16, 0x03, 0x17, 0xf8, 0xf1, 0x05, 0xc8, 0xb1, + 0x3f, 0x88, 0x03, 0xb8, 0xca, 0x3d, 0x8f, 0x7d, 0xe8, 0x09, 0x4f, 0x0a, 0xa2, 0x21, 0xec, 0x31, + 0x25, 0x59, 0x53, 0x81, 0x5c, 0x8a, 0x0e, 0x52, 0xf0, 0xfb, 0x81, 0x02, 0x1f, 0xac, 0x3f, 0x5d, + 0xb3, 0xb6, 0xc9, 0x5f, 0x0c, 0x4a, 0x19, 0x9c, 0xf6, 0xa2, 0x87, 0x89, 0x03, 0x62, 0x7e, 0xcf, + 0x36, 0x87, 0x1c, 0x9f, 0x76, 0x3c, 0x67, 0x0c, 0x3d, 0x7a, 0x05, 0xf6, 0x17, 0xfd, 0x1a, 0x23, + 0xf9, 0x88, 0x9d, 0xaa, 0x91, 0x50, 0x67, 0xd8, 0x0b, 0xe2, 0xa2, 0xa6, 0x0f, 0xe7, 0xe4, 0x18, + 0x01, 0xad, 0xe6, 0x9e, 0x8d, 0x31, 0xfc, 0x2c, 0xdd, 0xa2, 0x3c, 0x41, 0xc7, 0x43, 0x06, 0x13, + 0xdb, 0xc4, 0x98, 0x88, 0x7c, 0x43, 0xeb, 0x92, 0x22, 0x07, 0x2d, 0x2c, 0xe4, 0xe4, 0xd3, 0xf0, + 0xe3, 0x82, 0x05, 0xb1, 0x7a, 0x6a, 0x74, 0xee, 0x60, 0x68, 0x24, 0x1f, 0x78, 0x8e, 0x62, 0x37, + 0xf1, 0xe3, 0x6b, 0x24, 0xd4, 0x32, 0x6c, 0x37, 0x09, 0xc9, 0xb5, 0x69, 0xdd, 0xd9, 0x2a, 0x6c, + 0xae, 0xaf, 0x3b, 0xdf, 0x8b, 0xe5, 0xdf, 0xbf, 0x9d, 0xad, 0x52, 0x01, 0x9f, 0x2b, 0x32, 0x3e, + 0x57, 0x4a, 0xf8, 0x2c, 0xe7, 0xf2, 0xf8, 0x92, 0x2b, 0x16, 0xb7, 0xf9, 0x3a, 0x74, 0x6d, 0x8b, + 0x17, 0xdf, 0xea, 0x06, 0xa9, 0x64, 0x90, 0x4a, 0x06, 0xa9, 0x64, 0x90, 0x4a, 0x06, 0xa9, 0x64, + 0xd0, 0x4a, 0x06, 0x5b, 0xc9, 0x8b, 0x76, 0x98, 0x4a, 0x91, 0xde, 0xf9, 0x91, 0x15, 0xb7, 0xf9, + 0xef, 0x7c, 0x75, 0x2a, 0xa4, 0xbd, 0x21, 0xc5, 0x0c, 0xe0, 0xe4, 0x34, 0x2f, 0x5a, 0xf6, 0x4d, + 0x48, 0xd3, 0x71, 0xd0, 0x78, 0x67, 0x92, 0x38, 0x33, 0xe8, 0x69, 0x7c, 0xf5, 0x8b, 0xc4, 0xda, + 0x33, 0x87, 0xca, 0x8b, 0x7a, 0xdf, 0x02, 0x86, 0x3e, 0x71, 0x7e, 0xff, 0x0e, 0x3e, 0xba, 0x32, + 0x71, 0xbe, 0x4b, 0xbf, 0x7f, 0xa7, 0x52, 0x13, 0x87, 0x04, 0xb3, 0xbf, 0x57, 0xdb, 0x2d, 0xc0, + 0xb7, 0xea, 0xa6, 0x52, 0x5e, 0x90, 0xfd, 0x15, 0x81, 0xce, 0xb7, 0xf9, 0x89, 0x03, 0xda, 0x2d, + 0xfc, 0x45, 0x7b, 0x2f, 0xb1, 0xff, 0x12, 0x73, 0x30, 0x35, 0x02, 0xc7, 0x6b, 0x0d, 0x4c, 0xc7, + 0x25, 0x86, 0xe7, 0x34, 0x9f, 0xc5, 0x1a, 0x42, 0xa6, 0xad, 0x19, 0x8a, 0xfd, 0x76, 0x43, 0x8e, + 0x74, 0x48, 0x90, 0xee, 0xf6, 0x08, 0x18, 0xaa, 0xcd, 0x8b, 0x13, 0x27, 0x83, 0x97, 0xb3, 0x1d, + 0x07, 0x2d, 0x86, 0x68, 0xa6, 0xc5, 0x39, 0xf6, 0xbe, 0x22, 0x14, 0x58, 0xb2, 0x61, 0x3d, 0x92, + 0x03, 0xc8, 0x1d, 0x52, 0x29, 0x88, 0x32, 0xcf, 0x86, 0x2d, 0x27, 0x15, 0x04, 0x7a, 0x96, 0x4a, + 0xae, 0xa0, 0x0b, 0xb3, 0x48, 0xfc, 0x59, 0x26, 0x68, 0x94, 0x20, 0x32, 0x2f, 0x34, 0x0a, 0x3e, + 0xf3, 0xd1, 0x3f, 0x3f, 0xce, 0xbf, 0x18, 0x37, 0x35, 0xfb, 0x41, 0xab, 0x3f, 0x1b, 0x5a, 0x58, + 0x0f, 0x56, 0x1b, 0xf0, 0x70, 0xbc, 0x8c, 0xed, 0x6c, 0xa7, 0xc2, 0xd0, 0x29, 0x8e, 0x10, 0xd1, + 0xaf, 0xe8, 0xd7, 0x11, 0xd7, 0xd7, 0x23, 0xa1, 0x32, 0x1c, 0x41, 0xa8, 0x32, 0x97, 0xb9, 0x7d, + 0xb9, 0x89, 0x84, 0xfe, 0xdb, 0xf6, 0x7e, 0xab, 0x6e, 0x2d, 0xc2, 0x44, 0x1c, 0xd1, 0xc0, 0x88, + 0xdd, 0x4a, 0xb7, 0x45, 0x62, 0x93, 0x18, 0xc0, 0x6d, 0xe6, 0x14, 0xc9, 0xe4, 0xf3, 0xac, 0x04, + 0xc5, 0x7f, 0x1c, 0x22, 0x59, 0x64, 0xe2, 0xc2, 0x50, 0xda, 0x12, 0xe5, 0x22, 0x5a, 0xde, 0x27, + 0xf4, 0x2b, 0x02, 0x5e, 0x0b, 0x18, 0x16, 0x9a, 0x34, 0x60, 0xab, 0xaf, 0xce, 0xa9, 0xda, 0x57, + 0xf4, 0x7a, 0x94, 0x2e, 0xc3, 0x7e, 0xf9, 0x11, 0x9b, 0xc9, 0x8a, 0xf6, 0x16, 0x33, 0x3d, 0x71, + 0x56, 0x33, 0xce, 0xa8, 0xd3, 0x01, 0x82, 0xf0, 0x53, 0xa5, 0x1a, 0xf9, 0xa2, 0x24, 0xba, 0xb7, + 0x8a, 0x71, 0x25, 0xd2, 0xb3, 0x1e, 0xaa, 0x78, 0x9f, 0x99, 0x7c, 0x70, 0x52, 0xcd, 0x18, 0x3a, + 0x16, 0xa4, 0x5f, 0x87, 0x24, 0x6f, 0xdd, 0x91, 0xed, 0x7d, 0x23, 0x92, 0xbc, 0xba, 0xb4, 0xe8, + 0xbe, 0x82, 0x31, 0xaa, 0x31, 0xa1, 0x07, 0x4f, 0xe1, 0x87, 0x28, 0xd5, 0xcc, 0xa8, 0x6b, 0xe1, + 0xed, 0x2d, 0xa3, 0x1b, 0xfb, 0x36, 0x24, 0xe8, 0x12, 0x3a, 0xe1, 0xf7, 0xb0, 0x52, 0xf0, 0x19, + 0x3f, 0xe5, 0xe8, 0x31, 0x67, 0xf2, 0x69, 0x59, 0xda, 0x39, 0xd7, 0x0d, 0x7a, 0xe5, 0xda, 0x59, + 0x59, 0x12, 0x13, 0xae, 0xeb, 0x7b, 0x64, 0x21, 0x01, 0x5b, 0x92, 0xbc, 0x0f, 0x7f, 0x05, 0xca, + 0x5b, 0x3d, 0xfc, 0xc2, 0x65, 0xf0, 0x19, 0xcb, 0x98, 0xdb, 0x53, 0x2a, 0xbc, 0xa7, 0xcf, 0x3a, + 0x40, 0x01, 0xee, 0x24, 0x62, 0x7c, 0x22, 0xd9, 0x3f, 0xdc, 0x9f, 0xf8, 0x1d, 0x85, 0xf0, 0x96, + 0x1c, 0xe1, 0xec, 0x68, 0x63, 0x93, 0x69, 0xfc, 0x52, 0x52, 0x02, 0x84, 0x18, 0x90, 0x7c, 0xbe, + 0x53, 0xb6, 0xef, 0x22, 0x9f, 0xcc, 0x79, 0xc2, 0x4c, 0xe4, 0x53, 0x4d, 0xc4, 0xd6, 0xd8, 0xf9, + 0xc1, 0x00, 0xfe, 0xe9, 0xf5, 0xfb, 0x77, 0xfd, 0xcb, 0x97, 0x94, 0xbc, 0xae, 0x87, 0x4a, 0x2d, + 0x49, 0xc9, 0x79, 0x29, 0x30, 0x12, 0xf2, 0x5e, 0x58, 0x0f, 0x6e, 0xff, 0xa7, 0xc2, 0xc6, 0x5d, + 0xd3, 0xda, 0x60, 0xde, 0x14, 0xdb, 0x15, 0xfe, 0x8a, 0x66, 0x3f, 0x6e, 0x47, 0x5f, 0x63, 0xc5, + 0x1f, 0xab, 0x32, 0x88, 0x8b, 0x1e, 0x9a, 0xbc, 0xdf, 0xef, 0xca, 0xb6, 0x52, 0xf5, 0x9e, 0x83, + 0x03, 0x08, 0xac, 0xe4, 0x90, 0x83, 0x18, 0xb4, 0xcf, 0xa1, 0x37, 0x55, 0xd2, 0xf8, 0x14, 0x66, + 0x60, 0x0b, 0xe3, 0x8a, 0x0d, 0xcb, 0x1f, 0xd5, 0x1c, 0x29, 0x58, 0xf1, 0xb7, 0x23, 0xe6, 0x70, + 0xeb, 0xdc, 0xe4, 0xfc, 0x29, 0xf7, 0xce, 0xb3, 0x42, 0x1b, 0x0f, 0xbc, 0x7a, 0x21, 0x60, 0x92, + 0x74, 0x8a, 0xd0, 0x5d, 0x43, 0xf3, 0xe6, 0x77, 0x43, 0xae, 0xa9, 0x5b, 0xe8, 0xbc, 0xb1, 0xb1, + 0x21, 0x68, 0x11, 0x77, 0x86, 0xba, 0x82, 0x86, 0x01, 0x48, 0x22, 0x1f, 0x2f, 0x89, 0xb8, 0x33, + 0x84, 0x59, 0x72, 0x2c, 0xab, 0x1d, 0x66, 0xe5, 0x7e, 0x8a, 0xa9, 0x60, 0xe6, 0x7e, 0x7f, 0x59, + 0xf8, 0x60, 0x1b, 0x09, 0x40, 0xc3, 0xd6, 0x9d, 0x84, 0x75, 0xf1, 0x6b, 0x27, 0xde, 0x47, 0xf1, + 0x34, 0x12, 0xd2, 0x97, 0xf8, 0xaa, 0x06, 0x5f, 0x38, 0xc0, 0x0f, 0xac, 0xfa, 0xd6, 0x4f, 0xa8, + 0xd3, 0x71, 0x51, 0x7c, 0x82, 0x1f, 0x18, 0x48, 0xe0, 0x0d, 0x4a, 0x56, 0x72, 0x23, 0x58, 0x31, + 0x24, 0x5f, 0x10, 0x17, 0x8d, 0x41, 0x41, 0xbe, 0x33, 0x15, 0x93, 0x4d, 0x41, 0x41, 0x09, 0x2d, + 0x52, 0x02, 0x0d, 0x41, 0x21, 0x70, 0x79, 0x1b, 0xff, 0x54, 0x25, 0x31, 0x66, 0x0d, 0x0a, 0x4b, + 0xe4, 0xb0, 0x44, 0x2e, 0x56, 0x22, 0xcf, 0x96, 0xc8, 0x63, 0x89, 0xbc, 0x5f, 0x82, 0xa8, 0x36, + 0x17, 0x32, 0xeb, 0xb4, 0xfb, 0x45, 0xc9, 0x98, 0x32, 0x9b, 0x9b, 0x8b, 0xe7, 0xe6, 0xd8, 0xdc, + 0x7c, 0x3c, 0x37, 0x0f, 0xcb, 0x93, 0x44, 0x37, 0x27, 0x41, 0xc3, 0xbc, 0x67, 0xba, 0xe5, 0x99, + 0xe8, 0xba, 0xe5, 0xfb, 0x11, 0xf8, 0x19, 0xe4, 0xb0, 0x5f, 0x96, 0xaa, 0x90, 0x19, 0x1e, 0xa8, + 0x0e, 0xf1, 0x20, 0x84, 0xeb, 0x05, 0x21, 0x55, 0xbe, 0xf0, 0xb5, 0x36, 0x70, 0xdf, 0x17, 0xea, + 0x1a, 0x20, 0xcb, 0x58, 0x1a, 0x23, 0x29, 0xa9, 0x86, 0x39, 0xea, 0x0f, 0x38, 0xc7, 0x52, 0x3a, + 0xf8, 0x89, 0x65, 0xce, 0xc1, 0x68, 0xbb, 0x34, 0x64, 0x58, 0xac, 0x4a, 0x0e, 0xab, 0x78, 0xd1, + 0xa8, 0xb1, 0x05, 0xef, 0x3c, 0x3a, 0x52, 0x26, 0x8f, 0x65, 0xce, 0x34, 0xfa, 0x01, 0x67, 0xcd, + 0xa6, 0x1f, 0xdc, 0x88, 0x16, 0xa9, 0x60, 0x91, 0x06, 0xd3, 0x33, 0x8e, 0x0c, 0x83, 0x03, 0x82, + 0xe3, 0xcc, 0x0e, 0x70, 0x5c, 0x3c, 0x0a, 0x9f, 0x33, 0xeb, 0x88, 0xec, 0xc0, 0x24, 0x5e, 0x0b, + 0x29, 0x08, 0xc2, 0x07, 0xbc, 0x98, 0xe4, 0x04, 0xd7, 0x5f, 0x74, 0xcc, 0x77, 0x7d, 0x15, 0x90, + 0x07, 0x74, 0xf6, 0xb3, 0xbf, 0x4a, 0xa6, 0x37, 0x15, 0x63, 0xee, 0x63, 0xd1, 0x95, 0xf8, 0xff, + 0x16, 0x77, 0xad, 0xcb, 0x8d, 0x1b, 0xc7, 0xfa, 0xff, 0x79, 0x0a, 0x0a, 0x8e, 0x2d, 0x20, 0x82, + 0xb4, 0xa4, 0xb4, 0xb2, 0xd7, 0xa0, 0x40, 0x96, 0xbd, 0xbb, 0x3e, 0x51, 0xc5, 0xde, 0xa8, 0xac, + 0x8d, 0x9d, 0x2d, 0x95, 0x2a, 0x4b, 0x52, 0xa0, 0x88, 0x5a, 0x08, 0xa0, 0x09, 0xe8, 0x16, 0x8a, + 0x79, 0x81, 0xf3, 0x2e, 0xe7, 0x19, 0x4f, 0x77, 0xcf, 0xad, 0x67, 0x00, 0x90, 0x94, 0x37, 0xc9, + 0xa9, 0x8a, 0xb3, 0xd4, 0x60, 0x2e, 0x3d, 0xf7, 0x9e, 0x9e, 0x9e, 0xef, 0xb3, 0x18, 0x1e, 0x6b, + 0xc7, 0x3c, 0x79, 0xaf, 0xb7, 0xad, 0x9f, 0xa6, 0x7d, 0xe1, 0xe7, 0xfa, 0x6b, 0x86, 0xa5, 0x09, + 0x22, 0x57, 0x09, 0xc4, 0x89, 0xbf, 0xb8, 0x8c, 0x4a, 0xee, 0xa5, 0x49, 0x9e, 0x9e, 0xb9, 0x4c, + 0x21, 0xbc, 0x27, 0x11, 0x0b, 0x0e, 0xe3, 0xe1, 0xbf, 0xcc, 0x4b, 0x33, 0x1c, 0xe9, 0x78, 0x27, + 0x87, 0x2a, 0x66, 0x4f, 0xc6, 0xec, 0x59, 0x31, 0x53, 0x13, 0xf3, 0x48, 0xc5, 0x3c, 0x94, 0x31, + 0x6d, 0xcf, 0x4f, 0xed, 0xdd, 0x0a, 0xeb, 0x0d, 0xe8, 0xc5, 0xfd, 0x12, 0xbd, 0xc4, 0xc4, 0xe0, + 0x63, 0x73, 0x82, 0xce, 0x06, 0x0b, 0x1e, 0x42, 0xcc, 0x78, 0x18, 0xdc, 0xdf, 0xa9, 0x50, 0x73, + 0xf6, 0x13, 0xd0, 0x83, 0x5f, 0x0d, 0x0f, 0xa3, 0xe3, 0x00, 0x74, 0x50, 0xd5, 0x42, 0xa5, 0x70, + 0x27, 0xcd, 0x60, 0x35, 0x1e, 0xfa, 0x56, 0xe8, 0x8e, 0x0a, 0x5e, 0xb0, 0x93, 0x06, 0x06, 0x44, + 0x3c, 0xa0, 0x4b, 0xc8, 0xfa, 0xa2, 0x97, 0x60, 0xd4, 0xe2, 0xe2, 0x10, 0xf5, 0x78, 0x58, 0xaa, + 0x97, 0x84, 0xc8, 0x7b, 0x7d, 0x0b, 0x9b, 0xc6, 0x0d, 0x68, 0xaa, 0xe5, 0x3e, 0x6c, 0x7a, 0x45, + 0xfb, 0x99, 0x37, 0x2a, 0x5a, 0x8c, 0x25, 0xd0, 0xf5, 0x5a, 0xc8, 0x63, 0x79, 0x38, 0x9b, 0x3e, + 0xc0, 0x51, 0xbd, 0xd1, 0x07, 0x1a, 0x35, 0x09, 0xd6, 0x82, 0xc2, 0xdd, 0xee, 0x88, 0xfc, 0xec, + 0x8e, 0xf7, 0x92, 0x93, 0x4c, 0x3b, 0xf2, 0x91, 0x47, 0x6d, 0x76, 0x01, 0x81, 0xd0, 0x0a, 0x94, + 0x29, 0x66, 0xb9, 0x97, 0xb4, 0x3b, 0x56, 0x87, 0x2a, 0x96, 0x6c, 0xe6, 0x84, 0x9f, 0xc7, 0xa0, + 0xed, 0x74, 0x76, 0xde, 0x5f, 0xc8, 0xc1, 0xdb, 0x8b, 0xc4, 0xdf, 0xa0, 0x4c, 0x8d, 0xcb, 0x6a, + 0xe1, 0x77, 0xc3, 0xde, 0xd7, 0x50, 0xcf, 0x96, 0xb2, 0x78, 0x95, 0x8d, 0x07, 0x77, 0xbd, 0xa2, + 0x14, 0x4f, 0xd6, 0x12, 0xa1, 0x08, 0xf1, 0xfd, 0x16, 0x2c, 0x8c, 0x92, 0x58, 0xc6, 0x46, 0xcd, + 0xac, 0x79, 0x39, 0xb0, 0xb1, 0x42, 0x47, 0x02, 0x01, 0x34, 0x16, 0xa0, 0x23, 0xfa, 0xb1, 0xbc, + 0x71, 0xbc, 0x72, 0x8d, 0x0e, 0x5f, 0x08, 0x33, 0x54, 0x87, 0x9b, 0x87, 0x84, 0x4d, 0xc9, 0xb2, + 0xff, 0x24, 0x7b, 0x1e, 0x72, 0x5d, 0xae, 0xc2, 0x6f, 0x8e, 0xa5, 0x89, 0x69, 0x42, 0x34, 0xd9, + 0xf8, 0x7f, 0x08, 0x6c, 0x74, 0x1b, 0xe3, 0x66, 0xe4, 0x74, 0x4c, 0xc3, 0xd6, 0x6b, 0x79, 0x46, + 0x8a, 0x6b, 0x34, 0x1d, 0x0b, 0x5a, 0xac, 0x4f, 0x0e, 0x48, 0x6a, 0xae, 0x8b, 0x6e, 0xc4, 0xa9, + 0x4c, 0x4b, 0xc4, 0xb4, 0xbd, 0xef, 0xa6, 0x96, 0x69, 0x0e, 0xe4, 0xa1, 0xc1, 0x2e, 0x52, 0x62, + 0x29, 0x33, 0xfa, 0x6d, 0xba, 0xea, 0x10, 0xc6, 0x10, 0xeb, 0xde, 0x59, 0x38, 0x13, 0xb1, 0xf1, + 0xa1, 0xc6, 0x5e, 0x3c, 0xc7, 0x27, 0x8c, 0xb1, 0xb7, 0x47, 0x8b, 0xc8, 0x5c, 0xf0, 0x3c, 0x88, + 0x5e, 0x9b, 0xda, 0x13, 0x25, 0x19, 0x7a, 0x3f, 0x3c, 0xd0, 0xf4, 0x80, 0x5f, 0xdf, 0x5f, 0xe3, + 0x84, 0x28, 0xbd, 0x3e, 0x28, 0x82, 0xb7, 0x3b, 0x88, 0xda, 0xcb, 0xb6, 0xea, 0x04, 0xc6, 0x17, + 0x3a, 0x2a, 0x61, 0x26, 0xd5, 0xd0, 0xaa, 0x0a, 0xbf, 0x1c, 0x75, 0xea, 0xd1, 0x0b, 0x79, 0x81, + 0x1e, 0xcc, 0xb3, 0x64, 0xaf, 0x87, 0xb4, 0xaf, 0xcf, 0x69, 0x8a, 0xa6, 0x2c, 0xc2, 0x76, 0x19, + 0x83, 0x95, 0xea, 0x90, 0x1f, 0x6b, 0xb8, 0x92, 0x13, 0xea, 0xf9, 0x3b, 0x6d, 0xb9, 0x46, 0xea, + 0x90, 0x1b, 0x63, 0xc7, 0x16, 0xf7, 0x7f, 0xfa, 0x66, 0x07, 0xb9, 0x6a, 0x52, 0xc7, 0xcb, 0x3d, + 0x25, 0x27, 0x77, 0x71, 0x4b, 0x8a, 0xbf, 0x03, 0xe1, 0x74, 0x76, 0xd7, 0xfc, 0x54, 0x65, 0x5f, + 0xd8, 0x2b, 0x42, 0x9e, 0x0b, 0xa6, 0x32, 0x36, 0xa2, 0xd8, 0x0b, 0xd4, 0x15, 0xe3, 0x38, 0xae, + 0x7d, 0xea, 0xd3, 0x15, 0x2d, 0xa8, 0xa9, 0xd0, 0xe5, 0xe2, 0x67, 0x9a, 0xfb, 0xe8, 0xbb, 0xa3, + 0xe7, 0x10, 0x25, 0x91, 0xc3, 0x62, 0x8c, 0x6d, 0x1b, 0x40, 0x1d, 0xd0, 0xc1, 0x97, 0x7d, 0x80, + 0xad, 0x16, 0xd2, 0x8f, 0x61, 0xad, 0xe2, 0x95, 0xd9, 0x91, 0xb5, 0x19, 0xde, 0xb0, 0x06, 0xc2, + 0x80, 0x88, 0x07, 0xec, 0xba, 0xcf, 0xbb, 0xf0, 0xdd, 0x8b, 0x78, 0x19, 0xc9, 0x21, 0x16, 0x88, + 0x90, 0x55, 0x3e, 0x3a, 0x1b, 0x1f, 0xd1, 0x8b, 0xaf, 0x0e, 0x1d, 0x12, 0x3b, 0xd2, 0xec, 0xbf, + 0x2b, 0x86, 0xce, 0xbf, 0x23, 0x6b, 0xd2, 0x35, 0xf0, 0xd9, 0xd7, 0x6e, 0x58, 0xeb, 0x06, 0x61, + 0x27, 0xc2, 0xd6, 0x65, 0x07, 0xce, 0x5e, 0x9f, 0x1d, 0x37, 0xcd, 0x9b, 0x1d, 0x86, 0x33, 0xff, + 0xbc, 0xe3, 0xef, 0x23, 0x1c, 0x7f, 0x77, 0x60, 0x28, 0xea, 0x22, 0x82, 0x25, 0x33, 0x1f, 0x3c, + 0x3d, 0x71, 0xcb, 0x42, 0x8d, 0xd4, 0xe6, 0x1e, 0x76, 0xb6, 0x7b, 0xb4, 0x65, 0xc3, 0xd1, 0xdb, + 0xd7, 0xc7, 0xe5, 0xd0, 0x05, 0xd8, 0x5e, 0x85, 0x47, 0xc9, 0x51, 0xa0, 0xd8, 0xa7, 0x44, 0x94, + 0x78, 0x93, 0xbb, 0x5d, 0x99, 0xa2, 0xbb, 0xa5, 0x2c, 0x01, 0x4f, 0xd6, 0x8f, 0x74, 0xb4, 0x8e, + 0xe3, 0x58, 0x5b, 0x76, 0x0e, 0xfe, 0x72, 0xf6, 0xf6, 0x1d, 0x28, 0x14, 0x30, 0xff, 0xe7, 0x45, + 0x89, 0xaf, 0xd0, 0xd1, 0x27, 0x8f, 0x4e, 0xd9, 0xe8, 0x2a, 0x75, 0x87, 0xc4, 0x75, 0x70, 0x84, + 0x05, 0x89, 0x39, 0xbf, 0x0d, 0x5a, 0x3f, 0x0e, 0xf2, 0xe2, 0xde, 0x0f, 0x10, 0x93, 0x53, 0xc1, + 0x61, 0xea, 0xd3, 0xad, 0x58, 0x05, 0x61, 0xd9, 0x4f, 0xaf, 0x60, 0x9b, 0x15, 0x3f, 0x14, 0xdb, + 0x16, 0x3f, 0x0f, 0x8b, 0x71, 0xcf, 0xfc, 0x5a, 0x7a, 0xdd, 0x3f, 0x2a, 0x37, 0x96, 0x7e, 0xba, + 0x03, 0xc7, 0x63, 0x72, 0xb1, 0x37, 0x09, 0xe2, 0x34, 0x58, 0xf9, 0xd2, 0xaa, 0x63, 0x30, 0x6d, + 0x13, 0xc6, 0x66, 0x71, 0xf4, 0x92, 0xfc, 0xd6, 0xd0, 0x72, 0x10, 0x56, 0x7a, 0x5f, 0x46, 0x7e, + 0x1b, 0x75, 0x9c, 0x83, 0xa1, 0x9f, 0x94, 0x73, 0xf2, 0x76, 0x8d, 0xcd, 0x19, 0x0f, 0x41, 0xff, + 0x54, 0xc2, 0x55, 0x3e, 0xbc, 0x2f, 0xe9, 0x7c, 0xef, 0x43, 0xef, 0xed, 0x2e, 0xbd, 0x3b, 0x2f, + 0x42, 0xec, 0xc8, 0xd5, 0x6e, 0x10, 0x09, 0x3f, 0xc7, 0x52, 0xbb, 0x30, 0x66, 0x21, 0x12, 0x16, + 0xc2, 0x7e, 0x15, 0x2d, 0x91, 0x41, 0x09, 0x3d, 0x86, 0xf7, 0xd1, 0xf9, 0x13, 0x1a, 0x12, 0x59, + 0xf1, 0x52, 0x61, 0xee, 0xa2, 0xee, 0xe8, 0x77, 0xd0, 0xb4, 0x88, 0x76, 0x82, 0xbf, 0xbe, 0xff, + 0x61, 0xff, 0x95, 0xb7, 0x0a, 0xc7, 0xc5, 0xd5, 0x63, 0x54, 0x71, 0x07, 0xc8, 0x67, 0x18, 0xa4, + 0xb6, 0x04, 0x62, 0xaf, 0x84, 0xc1, 0x6c, 0x1b, 0xf3, 0x15, 0x8e, 0xb0, 0x67, 0x5a, 0xb0, 0xae, + 0x61, 0xe8, 0x4b, 0xab, 0x6b, 0xa5, 0xad, 0x32, 0x4b, 0xf2, 0xec, 0xc5, 0x66, 0x35, 0xde, 0x3d, + 0x64, 0x9e, 0x22, 0x53, 0x0e, 0xae, 0x9e, 0x82, 0xbc, 0x5e, 0x35, 0x3e, 0xbd, 0xc0, 0x9b, 0xc0, + 0x6c, 0x26, 0x30, 0x8f, 0xc0, 0xde, 0x83, 0xd9, 0x17, 0xb1, 0xe9, 0x2a, 0x3d, 0xc0, 0xa1, 0x86, + 0xbc, 0x4a, 0xef, 0xbc, 0xda, 0x4b, 0x11, 0xce, 0xdf, 0x88, 0xc4, 0x52, 0x07, 0xd0, 0x7a, 0x72, + 0xf5, 0xd9, 0xf0, 0x90, 0x05, 0x16, 0xd9, 0xfd, 0x24, 0xf4, 0xfe, 0xd9, 0x11, 0x1a, 0x22, 0x9e, + 0x2e, 0xf6, 0xbc, 0xce, 0x3f, 0xbd, 0xcf, 0x79, 0xd7, 0x42, 0x79, 0xf2, 0x87, 0x2d, 0x2b, 0xcb, + 0xd8, 0xd7, 0x62, 0xe0, 0x5b, 0x19, 0x93, 0x58, 0xcd, 0xb0, 0x27, 0x71, 0xa0, 0xe9, 0xd5, 0x95, + 0x68, 0x53, 0x81, 0xef, 0x8c, 0xdb, 0x62, 0x03, 0xa7, 0x9f, 0x44, 0x60, 0xe7, 0xeb, 0xce, 0x9a, + 0x55, 0xe1, 0xe9, 0x49, 0x19, 0x89, 0x91, 0xed, 0xef, 0xf0, 0x18, 0x8d, 0x86, 0xcc, 0x68, 0x27, + 0xe1, 0xa0, 0xd9, 0x31, 0x0c, 0x05, 0x80, 0x15, 0xb5, 0x9c, 0xc3, 0x62, 0x9e, 0x78, 0x12, 0xaf, + 0x7f, 0x9d, 0x77, 0xad, 0xeb, 0xa4, 0x49, 0xce, 0x2c, 0xfa, 0x92, 0x71, 0x59, 0xe4, 0x11, 0xd9, + 0xf5, 0x10, 0x82, 0x3d, 0x5f, 0x91, 0x8d, 0x8f, 0x4f, 0x63, 0x63, 0x9f, 0xa1, 0x1b, 0x02, 0xeb, + 0xcf, 0x32, 0xb9, 0x16, 0x46, 0x04, 0x71, 0x7f, 0x80, 0xb6, 0x32, 0x32, 0xf1, 0x20, 0xa7, 0x80, + 0xb0, 0xf5, 0x74, 0xc5, 0x53, 0x40, 0x37, 0x55, 0x38, 0x5d, 0xfc, 0x23, 0xda, 0xe9, 0x11, 0xa7, + 0x21, 0xdb, 0x1a, 0x6a, 0xfe, 0xa4, 0xef, 0x32, 0x8b, 0x3d, 0xcd, 0x47, 0xcb, 0xe2, 0x0e, 0xfc, + 0x5f, 0x30, 0xfc, 0x88, 0xed, 0x0e, 0xcb, 0xa1, 0x78, 0x70, 0xdf, 0xf9, 0x80, 0x1c, 0x33, 0x82, + 0x4d, 0x8d, 0x38, 0x5e, 0xe8, 0x3c, 0xfa, 0x87, 0x25, 0x99, 0x1b, 0x07, 0x5d, 0x86, 0x34, 0xbb, + 0xa2, 0x50, 0x84, 0x47, 0x86, 0x40, 0xbc, 0xdc, 0x81, 0x15, 0x64, 0x0a, 0xa3, 0x55, 0x7e, 0x78, + 0x73, 0xbb, 0x58, 0x21, 0xb2, 0x02, 0x39, 0xf2, 0x7e, 0x8c, 0x3c, 0x51, 0xca, 0x95, 0x78, 0xd8, + 0x8f, 0xe8, 0xab, 0xe8, 0xf8, 0x6d, 0x3d, 0x41, 0xcd, 0xb3, 0x08, 0x9b, 0x10, 0x84, 0x5a, 0xad, + 0x6a, 0xf2, 0xa3, 0x7f, 0x8f, 0x5d, 0x03, 0x6d, 0xdf, 0xdc, 0x51, 0xbf, 0x02, 0x38, 0x2a, 0x90, + 0x8b, 0x39, 0x89, 0x4f, 0x44, 0x99, 0xc8, 0x33, 0x93, 0x27, 0xd5, 0x7d, 0xb1, 0xf8, 0x24, 0xaa, + 0x03, 0x9b, 0x40, 0x07, 0xe3, 0xa3, 0x65, 0x80, 0x98, 0x6b, 0x60, 0xc3, 0x45, 0xb6, 0xab, 0xf7, + 0xf8, 0x5b, 0x54, 0x9b, 0xb8, 0x6c, 0x36, 0xe7, 0xd3, 0xc9, 0x8a, 0xfc, 0x1a, 0x22, 0x61, 0x6e, + 0x07, 0x9e, 0x72, 0x6e, 0x59, 0xa2, 0xad, 0x35, 0x5a, 0xe2, 0x62, 0x1c, 0x29, 0xb9, 0x56, 0xab, + 0x3e, 0x03, 0xbf, 0xa6, 0x4e, 0x26, 0x8b, 0xec, 0x02, 0xa1, 0xb0, 0xb5, 0xf0, 0x1b, 0x3a, 0x10, + 0xb1, 0xb7, 0xef, 0xd2, 0x04, 0xb6, 0xb0, 0xa5, 0x9a, 0x78, 0xc2, 0x9d, 0x8d, 0xbe, 0xd2, 0xdc, + 0xc3, 0x29, 0x49, 0xd6, 0x77, 0xeb, 0x93, 0xb1, 0xc7, 0xff, 0x78, 0x87, 0x43, 0xf3, 0xc7, 0x3b, + 0xf5, 0x66, 0x2e, 0x93, 0x59, 0x7a, 0xca, 0xd3, 0x95, 0x88, 0x0e, 0x4c, 0xf8, 0xe1, 0x1b, 0x8f, + 0x52, 0x05, 0x4b, 0x4e, 0x7e, 0xfb, 0xfd, 0x23, 0x39, 0x8e, 0xb0, 0x48, 0x81, 0xad, 0x24, 0x4d, + 0xd1, 0xd2, 0x40, 0x4f, 0xf3, 0x59, 0x9c, 0x0e, 0xb2, 0x06, 0x7b, 0xa3, 0x31, 0x4c, 0xf0, 0x68, + 0x9c, 0x8d, 0x72, 0x7a, 0xcb, 0x22, 0xa2, 0x0e, 0x76, 0x85, 0x06, 0x7c, 0x63, 0x65, 0xe9, 0x5e, + 0x14, 0xa2, 0x20, 0x5b, 0xdd, 0x07, 0xae, 0x04, 0x6f, 0xaf, 0xa3, 0x59, 0x89, 0xe4, 0xd6, 0x75, + 0x9c, 0xd4, 0x4d, 0xd6, 0x28, 0x25, 0x48, 0x51, 0xa6, 0x72, 0x03, 0xf1, 0x29, 0x8f, 0x2a, 0xb2, + 0x6a, 0x61, 0xf9, 0xa0, 0xb9, 0x8e, 0x6d, 0x58, 0x24, 0xf3, 0x3e, 0xa3, 0xc6, 0xc7, 0x55, 0x6c, + 0xd3, 0x4a, 0x46, 0xdf, 0x69, 0x3f, 0x87, 0xcd, 0x3c, 0x83, 0xdd, 0x9c, 0x10, 0xa1, 0x61, 0x3b, + 0x97, 0x5c, 0xa3, 0xee, 0xd8, 0x10, 0xbd, 0xbf, 0xd4, 0xbd, 0x5f, 0xef, 0x78, 0x6b, 0x44, 0x98, + 0xa1, 0x84, 0xd0, 0xe8, 0x98, 0x18, 0xc7, 0xc5, 0xa9, 0xd8, 0xd9, 0x2c, 0xda, 0x54, 0xc9, 0x8d, + 0x0d, 0x5f, 0x1a, 0x7b, 0x04, 0x93, 0x6c, 0xd5, 0x27, 0xbc, 0x95, 0x4e, 0x9d, 0x46, 0x12, 0x99, + 0x98, 0x66, 0xaa, 0xad, 0x5c, 0xf2, 0xc5, 0x86, 0x1a, 0xf5, 0xce, 0x80, 0x5f, 0x5b, 0x37, 0x4a, + 0x8b, 0x95, 0xa3, 0x1f, 0x81, 0x60, 0xb1, 0x55, 0xed, 0x22, 0x40, 0xf5, 0xe9, 0x85, 0x47, 0x53, + 0xe5, 0x28, 0xda, 0xb3, 0x6b, 0xf7, 0x4e, 0xe6, 0xc7, 0x6b, 0x28, 0x73, 0x6a, 0xaa, 0x22, 0xee, + 0x58, 0x88, 0x4d, 0xa1, 0xf6, 0x90, 0x6e, 0x88, 0x58, 0xc6, 0xa5, 0x85, 0x0e, 0x41, 0x46, 0x68, + 0x3c, 0x74, 0xa1, 0x26, 0x91, 0x37, 0x79, 0xce, 0x96, 0xfb, 0x3d, 0xe3, 0x52, 0x1f, 0xf6, 0xba, + 0x0d, 0x3e, 0xd5, 0x2d, 0xa9, 0x4a, 0x9e, 0x0a, 0xdd, 0xae, 0x11, 0xb0, 0xd6, 0x17, 0x72, 0xdc, + 0xdc, 0xc3, 0xc1, 0x37, 0xe7, 0x78, 0x07, 0xa0, 0x8b, 0xa1, 0xf7, 0x8c, 0x76, 0x5a, 0xaf, 0x95, + 0x92, 0x20, 0xde, 0xd1, 0x8a, 0xa3, 0x1d, 0x60, 0xd3, 0x4e, 0x16, 0x45, 0x96, 0x41, 0xd9, 0xc5, + 0x2f, 0xd8, 0x31, 0xcb, 0x71, 0x32, 0x1b, 0xdd, 0xa5, 0xc5, 0x22, 0xd2, 0xcc, 0xa9, 0x34, 0x2d, + 0xe1, 0x4f, 0x62, 0x94, 0x5d, 0x29, 0xb7, 0x97, 0x66, 0xa0, 0x44, 0x8d, 0x82, 0x38, 0x68, 0xc4, + 0xa6, 0x6b, 0x03, 0xa3, 0xd3, 0xf8, 0x30, 0xe5, 0x33, 0xf0, 0xe7, 0x1c, 0xc8, 0xb9, 0x77, 0xa0, + 0x88, 0x96, 0x12, 0xe8, 0x0f, 0x33, 0x6a, 0x44, 0x9d, 0x33, 0x78, 0x73, 0x06, 0x2e, 0x89, 0xf0, + 0x7f, 0x08, 0x73, 0x3e, 0xf6, 0x8e, 0x5e, 0x7d, 0x29, 0x21, 0xc2, 0x36, 0x82, 0xce, 0xb5, 0x24, + 0xfb, 0x37, 0x00, 0xcf, 0xbd, 0x30, 0xc0, 0x4e, 0x4c, 0xe4, 0xf5, 0x50, 0x4a, 0xe5, 0x46, 0x48, + 0x39, 0x14, 0xf6, 0xe6, 0x7e, 0xbf, 0x17, 0x99, 0x57, 0x0e, 0x1c, 0x9f, 0x2d, 0x69, 0xc3, 0x55, + 0x2a, 0xdb, 0x71, 0x95, 0x4a, 0x1b, 0x57, 0x69, 0x1b, 0x29, 0x37, 0x41, 0xc9, 0x59, 0x98, 0x71, + 0xd5, 0xbf, 0x4a, 0xa6, 0xe7, 0x20, 0x3a, 0x95, 0x8d, 0x00, 0xff, 0xe3, 0x6a, 0x56, 0x83, 0x74, + 0x2a, 0x37, 0x42, 0x3a, 0xd9, 0x7d, 0x49, 0x49, 0xc5, 0xeb, 0x16, 0x95, 0xb9, 0xc1, 0xa4, 0x26, + 0xfb, 0x15, 0x6a, 0xf7, 0x0d, 0xb8, 0x6f, 0x36, 0xbe, 0x4d, 0x23, 0xec, 0x1b, 0x23, 0x44, 0xad, + 0x15, 0xf7, 0x66, 0x4d, 0x71, 0xdb, 0x0f, 0xaf, 0x0f, 0x1b, 0x7a, 0x0e, 0x81, 0xe1, 0x4c, 0xe7, + 0x75, 0xff, 0x33, 0xa3, 0x69, 0xb3, 0x50, 0x7c, 0x3c, 0xd1, 0x14, 0x98, 0x45, 0xbd, 0xcf, 0x1f, + 0x56, 0x9b, 0xb1, 0xba, 0x2c, 0x39, 0x09, 0xa8, 0xeb, 0x0f, 0x4b, 0x3d, 0xf3, 0x92, 0x15, 0xbd, + 0xe6, 0x60, 0x88, 0xb4, 0x2c, 0xe9, 0xa4, 0x15, 0x82, 0x6c, 0x6e, 0x71, 0x57, 0x68, 0xd2, 0x74, + 0x6f, 0xf0, 0x1a, 0x9d, 0x58, 0x32, 0x36, 0xfe, 0x1c, 0x84, 0x24, 0x05, 0x78, 0xeb, 0xec, 0x05, + 0x8c, 0x54, 0x91, 0xfb, 0x50, 0xa8, 0x8c, 0x13, 0xf2, 0xa0, 0x68, 0x4d, 0x53, 0xdb, 0x11, 0x94, + 0x98, 0x25, 0xd1, 0x7c, 0xd2, 0x42, 0x2e, 0x9e, 0x7d, 0xcb, 0x13, 0xad, 0xa4, 0xfb, 0xc0, 0x17, + 0x80, 0xb7, 0x65, 0x74, 0xf8, 0x72, 0xfe, 0xa0, 0x99, 0x3a, 0xbb, 0x38, 0xe5, 0xda, 0x21, 0x73, + 0xd7, 0x82, 0x74, 0x11, 0xa8, 0x51, 0x0d, 0x2a, 0x17, 0x1d, 0xf1, 0x04, 0x6a, 0xfd, 0xb6, 0x70, + 0xdc, 0x8d, 0x90, 0xb3, 0x54, 0x13, 0x8f, 0x71, 0x91, 0x6a, 0x1d, 0x01, 0x79, 0x44, 0xd7, 0xa3, + 0x57, 0xf5, 0x5e, 0x8d, 0x68, 0x5d, 0xf8, 0xee, 0xea, 0x4a, 0xed, 0x54, 0xa2, 0x23, 0x6a, 0x6f, + 0xb8, 0x31, 0xd3, 0x33, 0x90, 0x3a, 0xd3, 0x7e, 0x2b, 0xea, 0xc1, 0x73, 0xbf, 0x89, 0xae, 0x2c, + 0x6f, 0x61, 0x2a, 0xe3, 0x64, 0x64, 0x1d, 0x69, 0x1f, 0x93, 0x94, 0x62, 0xf9, 0x50, 0xfc, 0x13, + 0x19, 0xc2, 0x5f, 0x74, 0x27, 0xa6, 0xbb, 0xb4, 0x8c, 0xfb, 0x81, 0x39, 0x7f, 0x1e, 0x20, 0x4c, + 0x90, 0x5f, 0x36, 0x81, 0x04, 0x61, 0x7a, 0x7a, 0xc4, 0x8f, 0x3f, 0xe8, 0x0e, 0xc0, 0xc6, 0x62, + 0x46, 0x78, 0x02, 0x83, 0x07, 0x64, 0x6e, 0x53, 0xf9, 0x50, 0x9b, 0x82, 0x30, 0xb3, 0xb3, 0xec, + 0xad, 0xeb, 0x16, 0x9e, 0x25, 0xea, 0x3e, 0xa4, 0x32, 0x64, 0x7a, 0x25, 0x9c, 0x67, 0x58, 0x1f, + 0x4d, 0xd3, 0x45, 0x09, 0x4b, 0x83, 0x37, 0x50, 0x6c, 0x63, 0x1d, 0xd9, 0x1c, 0xa2, 0x79, 0x77, + 0xc9, 0xfb, 0x25, 0x3f, 0x99, 0x67, 0x9a, 0x70, 0x58, 0xb9, 0x21, 0xf6, 0xf3, 0xbd, 0xbd, 0x00, + 0xea, 0x24, 0x9a, 0x1d, 0xa6, 0xf8, 0xe2, 0x11, 0x1a, 0x1e, 0xa9, 0xde, 0xf6, 0xec, 0x22, 0x66, + 0x8b, 0x7f, 0x28, 0x7b, 0xcb, 0x6e, 0x58, 0xf1, 0x77, 0xcc, 0xd2, 0x8b, 0xa5, 0x6a, 0x7d, 0xa6, + 0x4b, 0xf3, 0x35, 0xdb, 0x47, 0x14, 0xb7, 0xa0, 0x9f, 0xe9, 0x5b, 0x54, 0x7c, 0xb1, 0x48, 0xb6, + 0xf5, 0x06, 0x4b, 0xb3, 0x65, 0x09, 0x25, 0xfe, 0x0a, 0x9f, 0x18, 0xc2, 0x82, 0x35, 0xdc, 0x1f, + 0x94, 0x3d, 0x67, 0xe1, 0xe8, 0x8c, 0x82, 0x5c, 0xdf, 0x81, 0x40, 0x5f, 0xe1, 0xc3, 0x2a, 0xc3, + 0xac, 0xc1, 0x3e, 0x04, 0x03, 0x7c, 0xe3, 0x26, 0x7a, 0xd3, 0xfa, 0x10, 0xf1, 0x16, 0xbb, 0x30, + 0x9f, 0xe8, 0x6a, 0xe1, 0x92, 0xf3, 0x74, 0x08, 0x5b, 0x2b, 0xb7, 0xc4, 0xc0, 0x74, 0x3e, 0xcb, + 0x84, 0x2f, 0xa5, 0xd5, 0xee, 0x78, 0xff, 0x3b, 0x49, 0xfc, 0x6a, 0xaf, 0x17, 0x76, 0x43, 0x7c, + 0x51, 0xad, 0x3f, 0x5e, 0xdd, 0x2e, 0xec, 0xaf, 0xd6, 0xa7, 0x8b, 0xea, 0x92, 0x47, 0x36, 0xb6, + 0xdc, 0xb6, 0x34, 0x26, 0x06, 0x25, 0xb5, 0x46, 0x18, 0x73, 0x8b, 0x4d, 0xb2, 0x46, 0x31, 0xcd, + 0x5d, 0xb7, 0xdf, 0x28, 0x7e, 0xd8, 0x6b, 0x13, 0xdd, 0xfe, 0xd2, 0x20, 0x27, 0x46, 0xb0, 0xa4, + 0xe1, 0x10, 0x55, 0x59, 0x72, 0x56, 0x0a, 0x70, 0x0d, 0x5b, 0x20, 0x84, 0x9c, 0xd2, 0xed, 0x5d, + 0xd6, 0x1e, 0x27, 0x43, 0xba, 0x37, 0xb7, 0x0b, 0x95, 0xb0, 0xac, 0xd9, 0xcc, 0x7d, 0xb7, 0x2d, + 0xb9, 0x15, 0xbe, 0xd7, 0xfd, 0x63, 0xa9, 0x7b, 0x90, 0x67, 0xf9, 0x7e, 0xbb, 0x1c, 0xad, 0x96, + 0xde, 0x26, 0xe3, 0x9f, 0xcd, 0x24, 0xd7, 0xb9, 0xf4, 0xd1, 0xc5, 0x48, 0xbc, 0x6f, 0xcb, 0x50, + 0x07, 0x5d, 0x54, 0xd7, 0x0c, 0xc7, 0x2e, 0xe4, 0x5f, 0xe6, 0xd6, 0xa7, 0xa1, 0x8f, 0x57, 0x7f, + 0x88, 0x73, 0x08, 0xa7, 0x23, 0x4d, 0xe0, 0x8d, 0x4e, 0x75, 0x2c, 0x4d, 0xd1, 0xfb, 0x18, 0x34, + 0xcf, 0xb4, 0xc8, 0x24, 0xb7, 0xcf, 0x62, 0xaa, 0x30, 0xf3, 0x3a, 0x92, 0x72, 0x6d, 0x8c, 0x05, + 0x93, 0xef, 0x6d, 0x7e, 0x65, 0x62, 0x6e, 0x28, 0x59, 0x98, 0x3b, 0x1c, 0x2f, 0xda, 0x33, 0x1b, + 0xdf, 0x42, 0xae, 0x78, 0x48, 0x45, 0x93, 0x98, 0xd6, 0x46, 0x6b, 0xe3, 0xbc, 0x8c, 0xd0, 0xcf, + 0x0a, 0xfa, 0x11, 0xfe, 0xed, 0x22, 0x4e, 0x92, 0x6e, 0xff, 0xe8, 0xa2, 0x5a, 0x5c, 0x86, 0xa2, + 0x3a, 0x51, 0x37, 0x5c, 0x44, 0x68, 0xaf, 0xcc, 0xaf, 0xa2, 0xae, 0x3e, 0xbc, 0x99, 0x5e, 0x13, + 0xb1, 0x86, 0x6e, 0x00, 0x6c, 0xc0, 0x25, 0xa3, 0xa1, 0x80, 0x51, 0x20, 0x4e, 0x04, 0x72, 0xe7, + 0x66, 0x24, 0xda, 0xbd, 0x2e, 0x72, 0x68, 0xcb, 0x45, 0x71, 0x2d, 0xbd, 0xc6, 0xf9, 0xec, 0x76, + 0x3a, 0xcd, 0x12, 0x82, 0x47, 0x6f, 0xdd, 0xbe, 0x4d, 0xb7, 0xf3, 0x2d, 0x1c, 0x07, 0x8b, 0xa0, + 0x93, 0x44, 0x1a, 0x7b, 0x23, 0xeb, 0xd3, 0x53, 0x8e, 0x7e, 0xe8, 0x2e, 0xea, 0xfd, 0x46, 0x94, + 0x4d, 0x83, 0xa2, 0xb2, 0x81, 0xb4, 0x84, 0x80, 0x33, 0x71, 0xa1, 0x9b, 0xa6, 0x79, 0x5a, 0x25, + 0xd9, 0xe3, 0x56, 0xd2, 0xcf, 0xd7, 0x89, 0x9f, 0xa3, 0x9d, 0x16, 0x44, 0x55, 0x42, 0x3f, 0x5b, + 0x62, 0xd3, 0x29, 0x62, 0x64, 0xe9, 0x5e, 0x51, 0x50, 0x4e, 0xb2, 0x0c, 0xdb, 0xbb, 0xdd, 0x53, + 0x49, 0x8d, 0x56, 0x29, 0xab, 0x67, 0xd5, 0x47, 0xe9, 0xcd, 0xbc, 0x36, 0x4c, 0x3b, 0x66, 0x35, + 0xa1, 0xd7, 0xf3, 0x87, 0xdf, 0x90, 0x86, 0xdd, 0x95, 0x5a, 0x80, 0x28, 0x39, 0x07, 0x8d, 0x7a, + 0xd0, 0xc1, 0x5b, 0x3e, 0xad, 0xd1, 0x3a, 0x94, 0x16, 0xde, 0x00, 0x26, 0x8a, 0x74, 0xfb, 0x8a, + 0x04, 0xef, 0xc5, 0x96, 0xa4, 0x17, 0xa0, 0x08, 0x30, 0xd9, 0xc4, 0x8c, 0x6b, 0x69, 0x6a, 0x7a, + 0x71, 0x01, 0x72, 0xc5, 0x7c, 0xc8, 0xe0, 0x9b, 0x53, 0xeb, 0x2f, 0x98, 0x15, 0x58, 0xba, 0xcb, + 0x8e, 0x31, 0x78, 0x07, 0xad, 0xc6, 0x88, 0x23, 0x5c, 0xd2, 0x8a, 0xe3, 0x63, 0x6c, 0xbf, 0xb2, + 0x2a, 0x16, 0xca, 0x7d, 0x8d, 0x45, 0x86, 0x73, 0x86, 0x56, 0xe0, 0xd6, 0x16, 0x4d, 0x37, 0x17, + 0xd8, 0xb9, 0x16, 0x2c, 0xa2, 0xad, 0xa5, 0xd7, 0xba, 0x6d, 0x8b, 0xc3, 0x40, 0x05, 0x92, 0xc1, + 0x86, 0x86, 0x0d, 0x11, 0x76, 0x94, 0xd6, 0xbb, 0x15, 0xed, 0xea, 0x7b, 0x48, 0xe9, 0x9c, 0x1b, + 0x3e, 0xae, 0x14, 0xa6, 0x56, 0xb9, 0x81, 0x40, 0xc7, 0x1d, 0xc8, 0x16, 0xb2, 0xd1, 0xa9, 0x80, + 0xb9, 0xeb, 0x8c, 0x09, 0x68, 0x2a, 0x4f, 0xca, 0x92, 0x0e, 0x24, 0x9a, 0x86, 0x62, 0xcd, 0xac, + 0xc2, 0x7a, 0xa4, 0x63, 0x9a, 0x54, 0x72, 0xd6, 0xfc, 0x2b, 0x67, 0xf9, 0x5a, 0xa9, 0xcf, 0xd1, + 0x3f, 0x51, 0x99, 0x95, 0xc6, 0x78, 0x67, 0xf9, 0x3c, 0xb1, 0xcb, 0xff, 0x1f, 0xb1, 0x5f, 0x8b, + 0xf2, 0x94, 0xe4, 0x78, 0x91, 0x22, 0xd6, 0xae, 0x67, 0x08, 0x0e, 0xc5, 0x78, 0xcf, 0x12, 0xf8, + 0xa3, 0x83, 0x12, 0xa7, 0x6f, 0xc3, 0x24, 0x30, 0xaa, 0xf5, 0x37, 0xc3, 0x47, 0x2d, 0x1d, 0xda, + 0x15, 0x64, 0xc7, 0x81, 0x0a, 0xda, 0x78, 0xa9, 0xcf, 0xe1, 0xc4, 0xa1, 0x0a, 0x64, 0x37, 0xf3, + 0x3a, 0x2a, 0x6a, 0x03, 0x18, 0xea, 0x47, 0x17, 0x0c, 0xd5, 0x12, 0x93, 0xbc, 0xde, 0xcb, 0x76, + 0x4c, 0x54, 0x28, 0x09, 0xfd, 0x5f, 0xe6, 0x6a, 0x5a, 0x0b, 0x14, 0x52, 0x85, 0x92, 0xda, 0x71, + 0x4f, 0x40, 0x9f, 0x81, 0x9f, 0x5a, 0xd6, 0xf1, 0x53, 0x25, 0x8a, 0xaa, 0x02, 0x78, 0x5b, 0xcf, + 0xf2, 0x21, 0xf8, 0x7e, 0xf0, 0x54, 0x86, 0x98, 0x32, 0x86, 0xc1, 0x80, 0x1a, 0x8b, 0x58, 0x40, + 0xb6, 0xe6, 0xfd, 0x80, 0x2a, 0x0f, 0x15, 0x31, 0xf3, 0x56, 0xe4, 0x1f, 0xce, 0x0a, 0x66, 0xc8, + 0xcc, 0x3b, 0x34, 0x72, 0xa2, 0x35, 0x04, 0x25, 0x25, 0x89, 0x66, 0xe4, 0x60, 0x62, 0xfc, 0x96, + 0x29, 0x72, 0x68, 0x56, 0x93, 0xdf, 0xb2, 0xa6, 0x8a, 0xbc, 0x18, 0x34, 0x2d, 0xa6, 0x33, 0x6f, + 0xe0, 0x67, 0x09, 0xce, 0xf0, 0x84, 0x6e, 0x9b, 0x61, 0x20, 0xe0, 0xd5, 0x21, 0x13, 0x4f, 0x2c, + 0x84, 0x81, 0x95, 0x18, 0xba, 0x9e, 0x5e, 0xc4, 0x61, 0x53, 0xd2, 0xc6, 0xbb, 0xab, 0x36, 0x5e, + 0xdc, 0x69, 0x77, 0x95, 0x16, 0xf2, 0xfb, 0x27, 0x2f, 0x14, 0x30, 0xf4, 0xce, 0xa1, 0x97, 0x3a, + 0x73, 0x7d, 0x92, 0x05, 0xa5, 0xbb, 0x58, 0x78, 0x11, 0xb6, 0xbc, 0xf7, 0x97, 0x3b, 0x64, 0xf9, + 0x03, 0x75, 0xa4, 0x73, 0x9f, 0x56, 0xb3, 0x0e, 0xdd, 0xde, 0x43, 0xa9, 0x7f, 0x85, 0x45, 0x5a, + 0xbe, 0x20, 0x91, 0x61, 0xab, 0x67, 0xcd, 0xf8, 0x49, 0xe9, 0xa8, 0x2d, 0xf0, 0xe7, 0xeb, 0xd2, + 0x28, 0x2e, 0x58, 0xe5, 0xa7, 0xa7, 0xea, 0xf3, 0xd4, 0xad, 0x86, 0x5e, 0x98, 0x17, 0x87, 0x9c, + 0x9e, 0xfc, 0xd0, 0x1b, 0x7c, 0x77, 0x76, 0xda, 0x81, 0xfe, 0xbb, 0x19, 0xe5, 0x57, 0x82, 0x5a, + 0x16, 0x06, 0xc4, 0x68, 0x91, 0x8c, 0x54, 0x8a, 0xd1, 0x3c, 0xd5, 0xb4, 0x35, 0x94, 0x08, 0x02, + 0xc8, 0x1a, 0x27, 0xe3, 0x0d, 0x9a, 0x8b, 0xe9, 0xf1, 0x62, 0x7a, 0x68, 0x80, 0x2b, 0x57, 0x8d, + 0x7b, 0x6c, 0xe7, 0xe6, 0x6b, 0x50, 0x57, 0x71, 0x5c, 0x54, 0x45, 0xe7, 0xf4, 0x0d, 0x27, 0x51, + 0x14, 0x7b, 0xd1, 0x95, 0x6b, 0x66, 0xd4, 0x0a, 0x12, 0x55, 0x1f, 0x7a, 0xe2, 0x8a, 0xab, 0x49, + 0x87, 0xc7, 0x5d, 0x52, 0x93, 0x7a, 0x5a, 0x4d, 0xc2, 0x7e, 0x4c, 0x22, 0x38, 0xc5, 0xff, 0xc8, + 0xae, 0x92, 0xce, 0xfc, 0x60, 0x35, 0x68, 0xd9, 0xf4, 0xb1, 0x99, 0x37, 0xef, 0xfb, 0xe8, 0x4d, + 0x7f, 0x26, 0xb6, 0x7d, 0x09, 0x8f, 0xb8, 0xde, 0x22, 0xa5, 0x2c, 0xd5, 0x58, 0x57, 0x8e, 0xa9, + 0x2e, 0x04, 0xdc, 0x6d, 0x2f, 0x91, 0x9a, 0x62, 0x77, 0x2f, 0xd9, 0xdb, 0xbd, 0x4a, 0x32, 0x1b, + 0xcc, 0xfd, 0xcc, 0xa7, 0xf0, 0xad, 0xb1, 0xdc, 0x05, 0x20, 0xfc, 0x6e, 0xb4, 0xbb, 0xad, 0x91, + 0xf3, 0xcc, 0xb6, 0x72, 0xee, 0xae, 0x98, 0xe4, 0x8d, 0x1d, 0x7f, 0x3f, 0x5a, 0xa8, 0x2a, 0x79, + 0xe3, 0xb9, 0xe0, 0xec, 0x9a, 0xb0, 0xb1, 0x80, 0xdf, 0x0d, 0x6f, 0x82, 0xaa, 0xbb, 0xbd, 0x4e, + 0xc0, 0x28, 0xc0, 0x6a, 0x79, 0x72, 0xc9, 0xc5, 0x3c, 0x5c, 0x7b, 0x9d, 0x10, 0x4b, 0xba, 0x25, + 0x0b, 0xb3, 0x95, 0xb0, 0x91, 0xf6, 0x9b, 0x9e, 0xe6, 0xc2, 0x0c, 0x7d, 0x1c, 0x17, 0x95, 0x20, + 0x59, 0xb6, 0xbd, 0x5f, 0x05, 0x50, 0x4d, 0x98, 0xb4, 0xd9, 0x56, 0x25, 0x87, 0xbc, 0xb9, 0x6b, + 0x93, 0xfa, 0xa6, 0xdf, 0x0d, 0x56, 0xca, 0xb2, 0xcb, 0x10, 0x95, 0xe6, 0x5d, 0x9c, 0x2c, 0x01, + 0x1c, 0xad, 0xa7, 0xc5, 0xe4, 0x16, 0xef, 0x56, 0x2b, 0xf5, 0x8c, 0x8d, 0xa0, 0x7b, 0xe1, 0x68, + 0x73, 0x85, 0x2e, 0x35, 0x09, 0xbd, 0xdf, 0x62, 0xcf, 0xcc, 0x09, 0xcb, 0x0f, 0x22, 0x8b, 0x20, + 0xf2, 0x06, 0xdb, 0xfa, 0xb6, 0x70, 0x92, 0xe4, 0xe4, 0x6d, 0x22, 0x2f, 0x72, 0xe7, 0xe5, 0x0f, + 0xc2, 0x03, 0xac, 0xb9, 0x21, 0xe0, 0x20, 0x59, 0x3b, 0x08, 0x6b, 0x3b, 0x5c, 0xd5, 0x08, 0x2a, + 0x0a, 0x8b, 0x3b, 0x7e, 0xaf, 0x5d, 0x34, 0x32, 0x13, 0x1d, 0x7e, 0xd1, 0xd6, 0xf8, 0x13, 0xcd, + 0x92, 0xa2, 0x6f, 0xed, 0x5e, 0x75, 0xbf, 0xf4, 0x18, 0x27, 0xf5, 0x73, 0xb8, 0xf7, 0x9c, 0xe3, + 0x1d, 0x9a, 0x6b, 0xf4, 0xac, 0x0b, 0x25, 0x39, 0xaa, 0x3e, 0x7f, 0x78, 0x7f, 0x70, 0x8d, 0x38, + 0x1a, 0xfa, 0x14, 0x4d, 0x68, 0xf2, 0x66, 0x4b, 0x71, 0x62, 0x34, 0x1d, 0x1d, 0x28, 0x51, 0xb0, + 0x6a, 0xe7, 0xaf, 0x53, 0x94, 0x21, 0x48, 0xb2, 0xbd, 0xf1, 0xa0, 0x90, 0xed, 0xc3, 0x30, 0x63, + 0xb3, 0x4a, 0x18, 0xe9, 0xb6, 0x5f, 0x35, 0x94, 0x1d, 0xbb, 0x76, 0xbf, 0xa5, 0x6e, 0x41, 0x78, + 0x5b, 0x1b, 0x71, 0xde, 0xdc, 0x2e, 0xc8, 0x7d, 0xb1, 0x45, 0xda, 0xf7, 0xda, 0x7e, 0xd1, 0x12, + 0xe1, 0x0b, 0x10, 0x6e, 0xaf, 0xb7, 0xda, 0xaa, 0x30, 0xd5, 0xc5, 0x2f, 0xa1, 0x8b, 0x1b, 0x2f, + 0x8d, 0xec, 0xe5, 0xdb, 0x52, 0x5f, 0x94, 0x9c, 0x62, 0xed, 0xfe, 0xfa, 0xf8, 0xf8, 0xe8, 0x40, + 0x2c, 0xdf, 0xdd, 0x83, 0x43, 0xd8, 0x58, 0x93, 0x39, 0xfc, 0xe8, 0xf1, 0x23, 0x31, 0x19, 0xdd, + 0x6a, 0xdd, 0xaf, 0xd5, 0x14, 0xd7, 0xe8, 0xf6, 0xa2, 0xd7, 0x85, 0xde, 0x2e, 0x9b, 0x6b, 0xf9, + 0x39, 0x82, 0x9b, 0x16, 0x54, 0xa2, 0x6b, 0xc1, 0xbb, 0xcd, 0x82, 0xbf, 0xdf, 0x4e, 0x6e, 0xcb, + 0xb4, 0xb7, 0x56, 0xfc, 0x35, 0x63, 0xae, 0xbe, 0x51, 0x3c, 0x67, 0xcc, 0xd5, 0x98, 0x3f, 0x94, + 0x06, 0xec, 0x0c, 0x06, 0x7d, 0xfd, 0xd6, 0x72, 0xa7, 0x22, 0x17, 0xe9, 0xf9, 0xbb, 0xdb, 0x1b, + 0x34, 0xbe, 0x33, 0x87, 0xc3, 0x0f, 0xc5, 0x6d, 0x27, 0x4f, 0xe0, 0xcc, 0x34, 0xaa, 0x3a, 0xa0, + 0x14, 0x82, 0xd2, 0x75, 0x28, 0x4f, 0xf6, 0x25, 0xaa, 0x01, 0x98, 0xbc, 0x33, 0xd2, 0x1a, 0xd9, + 0x8e, 0x44, 0x69, 0xf9, 0xcf, 0xae, 0xf4, 0xea, 0x0e, 0xb1, 0xd7, 0xed, 0xb2, 0x55, 0x9f, 0xac, + 0x08, 0xd6, 0x4d, 0x12, 0xb7, 0x2c, 0x77, 0xd5, 0x12, 0x2c, 0xb6, 0x01, 0xbd, 0x09, 0xfc, 0xa7, + 0x16, 0x73, 0xbe, 0x67, 0x2f, 0xdb, 0xd2, 0x0b, 0x00, 0x14, 0x95, 0x78, 0x53, 0xcb, 0xea, 0xd8, + 0xf5, 0x66, 0x55, 0x82, 0x34, 0xb4, 0x6c, 0x9b, 0x82, 0xc1, 0x6f, 0xfd, 0xd9, 0x46, 0xae, 0xcd, + 0x6a, 0x53, 0x38, 0x09, 0x54, 0x51, 0x96, 0x4c, 0xab, 0xfe, 0xb6, 0x2b, 0xe3, 0x99, 0xb4, 0x08, + 0xa9, 0xb1, 0xba, 0x65, 0xc1, 0x59, 0x63, 0xc9, 0x64, 0x2f, 0xd9, 0xbe, 0x68, 0x39, 0x40, 0x75, + 0xe1, 0xbb, 0xcc, 0x65, 0x8b, 0x14, 0xfa, 0xc4, 0xc5, 0xa0, 0x93, 0xaa, 0xbf, 0x31, 0xa6, 0xf7, + 0xcd, 0x97, 0x06, 0xc3, 0x75, 0xd5, 0x84, 0x1b, 0x25, 0x63, 0x1f, 0x36, 0xc5, 0xa6, 0x58, 0x91, + 0x4c, 0x64, 0x49, 0x43, 0x5c, 0x9a, 0x89, 0xf2, 0xc2, 0x26, 0x67, 0xbe, 0x13, 0x18, 0xdb, 0x43, + 0x8d, 0x88, 0xf8, 0x31, 0xa2, 0x8c, 0xf7, 0x21, 0x10, 0xcf, 0xa8, 0x06, 0xe1, 0xa7, 0x8e, 0x9a, + 0x4a, 0x48, 0xa9, 0x21, 0x57, 0x72, 0x94, 0xde, 0x02, 0xc3, 0xa0, 0x11, 0xfd, 0x5b, 0x06, 0xe3, + 0x43, 0x6f, 0xc4, 0xc2, 0x1d, 0x5d, 0xd3, 0xb2, 0xcf, 0x1d, 0xf8, 0xcc, 0xd5, 0xb1, 0x6e, 0x34, + 0x24, 0xaa, 0x8f, 0x2e, 0x2e, 0x57, 0xce, 0xbb, 0x45, 0x41, 0xeb, 0x83, 0x6f, 0x17, 0xb1, 0xdc, + 0x6b, 0x81, 0xca, 0x8e, 0x2e, 0xc1, 0x25, 0x3e, 0x0e, 0x45, 0x70, 0x16, 0xd1, 0xb4, 0xab, 0xa0, + 0xcf, 0x7d, 0xf8, 0xaa, 0x5a, 0x61, 0x6f, 0x1f, 0x3e, 0xb7, 0xac, 0x12, 0xce, 0x69, 0x2b, 0x54, + 0xf7, 0xe4, 0x43, 0xfc, 0x38, 0x09, 0xd7, 0x17, 0x29, 0xd0, 0xb8, 0x99, 0xaf, 0x2f, 0x16, 0x4b, + 0xcc, 0x26, 0x94, 0x9f, 0x85, 0x01, 0xc9, 0x69, 0x85, 0x2c, 0x47, 0x60, 0xc9, 0x24, 0x65, 0x0f, + 0x2e, 0xdd, 0x8d, 0xca, 0x8f, 0xad, 0xdc, 0x88, 0x49, 0x9b, 0x6f, 0xc2, 0xa4, 0xc5, 0x2b, 0x91, + 0xee, 0x4e, 0x2c, 0xaf, 0xb3, 0x6d, 0x00, 0x5a, 0xe8, 0x60, 0x76, 0x5b, 0x64, 0x23, 0xd1, 0xde, + 0xa4, 0xec, 0x93, 0x83, 0x48, 0xcb, 0x6b, 0xe5, 0x60, 0xd3, 0xce, 0xef, 0x17, 0x16, 0x54, 0x17, + 0x82, 0xfc, 0x60, 0xbb, 0xfa, 0xe8, 0x31, 0x88, 0x4e, 0xd2, 0x31, 0x6b, 0xae, 0x3c, 0xaa, 0x42, + 0xf2, 0x93, 0xc3, 0xae, 0xc0, 0xdb, 0x91, 0x9a, 0x0f, 0x5e, 0x89, 0x3c, 0x46, 0x39, 0x74, 0xc8, + 0x5d, 0x94, 0x85, 0x37, 0x69, 0x34, 0x0a, 0x8b, 0x3c, 0x2a, 0xc2, 0xf1, 0x22, 0x8d, 0x1a, 0xeb, + 0x4d, 0xfc, 0x4f, 0x1a, 0xaf, 0x17, 0x7a, 0x23, 0x5d, 0xad, 0xfa, 0xf2, 0x4d, 0x51, 0x03, 0xbc, + 0xe7, 0x64, 0x0b, 0x78, 0xcf, 0xab, 0xcd, 0xf0, 0x9e, 0xe1, 0xbc, 0x39, 0x0e, 0xc2, 0xf2, 0xaa, + 0x6e, 0x58, 0xd0, 0xd8, 0x83, 0x9c, 0xe3, 0x49, 0x28, 0x7e, 0x43, 0x0e, 0xf1, 0x95, 0xfc, 0x5d, + 0x4c, 0xe3, 0xf9, 0x4a, 0xfc, 0x84, 0x91, 0x41, 0xef, 0x7e, 0x04, 0xc1, 0x6d, 0x62, 0xbb, 0x52, + 0x2f, 0xf8, 0x6d, 0xb1, 0xf4, 0xb9, 0x5a, 0x3f, 0x86, 0xfa, 0x62, 0x22, 0xb8, 0x88, 0xc2, 0xb9, + 0x8b, 0x28, 0x2c, 0x6f, 0xe4, 0x6b, 0xd7, 0xa5, 0xe1, 0xa8, 0x7e, 0x65, 0x5d, 0xf7, 0xc8, 0xcc, + 0xc8, 0xdd, 0x72, 0xea, 0x67, 0x27, 0x25, 0x3e, 0x93, 0x7b, 0x7a, 0xca, 0x06, 0x84, 0x78, 0xad, + 0x80, 0x17, 0x10, 0x0f, 0x47, 0x65, 0x19, 0x53, 0x14, 0xf1, 0x4e, 0xe9, 0x24, 0x17, 0xd1, 0x47, + 0xfb, 0x8d, 0x59, 0x0e, 0xf2, 0x5a, 0x26, 0xe6, 0xce, 0x1d, 0xbf, 0x10, 0x64, 0xa8, 0x9d, 0x90, + 0x8c, 0x4d, 0xa3, 0xa7, 0xa7, 0x9d, 0x5a, 0x38, 0xb2, 0x89, 0xf1, 0xbc, 0x3a, 0x57, 0x6a, 0x3e, + 0x4b, 0xb4, 0x87, 0xc6, 0xa1, 0x99, 0x89, 0xa1, 0x39, 0x12, 0x03, 0x89, 0xbc, 0x73, 0x33, 0xc1, + 0xab, 0xc7, 0x17, 0x62, 0x0b, 0xd3, 0xb9, 0xac, 0x61, 0x3a, 0xf7, 0xc5, 0x0b, 0x6d, 0xc3, 0x46, + 0xa5, 0x5a, 0x77, 0x51, 0x6f, 0xf1, 0x7a, 0xeb, 0x16, 0xb2, 0x75, 0x8b, 0x93, 0x4a, 0x34, 0x57, + 0x31, 0xa8, 0x6a, 0x0d, 0xa3, 0x4e, 0xa9, 0x95, 0x6e, 0xdd, 0x85, 0xea, 0x8c, 0xc5, 0xfa, 0xce, + 0xa0, 0x76, 0x14, 0x43, 0x92, 0x50, 0x3b, 0xe2, 0x22, 0x54, 0x7f, 0x16, 0xf3, 0x0f, 0xf1, 0x62, + 0x85, 0xd5, 0x9c, 0xd4, 0x21, 0x72, 0xa9, 0xf1, 0x55, 0x23, 0xe8, 0x6a, 0x4c, 0x36, 0xc0, 0x65, + 0x5b, 0x13, 0x27, 0xdf, 0x3c, 0x71, 0x52, 0x3d, 0x71, 0x2a, 0x25, 0x16, 0x4c, 0x9c, 0x52, 0xfe, + 0x86, 0x89, 0x93, 0x87, 0xd4, 0x29, 0x2e, 0x34, 0x30, 0x22, 0x63, 0x50, 0x94, 0xca, 0x86, 0x5c, + 0xe6, 0xb0, 0xc1, 0xe8, 0x55, 0xa3, 0xfd, 0xc0, 0xac, 0x89, 0x96, 0xda, 0xee, 0x0e, 0x72, 0x9e, + 0x19, 0xaa, 0xb7, 0x61, 0x93, 0x2a, 0x0c, 0x7a, 0xef, 0x0c, 0xcd, 0x60, 0x37, 0xb0, 0x5f, 0xa6, + 0x70, 0x5e, 0x30, 0xf7, 0x09, 0xf0, 0x45, 0xde, 0xb2, 0xc3, 0xe6, 0xbe, 0x83, 0x17, 0xe8, 0x2a, + 0xab, 0xfd, 0xfd, 0xb0, 0x6d, 0x33, 0xc1, 0x61, 0xd7, 0x85, 0x5d, 0xc3, 0xda, 0x81, 0xaa, 0x9f, + 0x93, 0xbb, 0x35, 0x3b, 0x10, 0xae, 0x94, 0xad, 0x4b, 0xbc, 0xb5, 0x03, 0x89, 0xac, 0x3e, 0xac, + 0xcb, 0xeb, 0x83, 0x9d, 0xd5, 0x87, 0xf6, 0x9c, 0x7e, 0x4a, 0xd7, 0xe4, 0x03, 0xeb, 0x76, 0xdb, + 0xce, 0x52, 0xcf, 0x67, 0x9d, 0x40, 0x37, 0xb6, 0x40, 0x37, 0xeb, 0x04, 0xea, 0x1d, 0xae, 0xcb, + 0xa8, 0x77, 0x68, 0xe7, 0xd4, 0x23, 0x4d, 0x4c, 0xda, 0x72, 0x4e, 0xd1, 0xcc, 0xe0, 0x66, 0x78, + 0xbe, 0xae, 0x86, 0xa5, 0x5d, 0xc3, 0x32, 0xdd, 0x94, 0xdb, 0xfb, 0xf9, 0x9a, 0xdc, 0xaa, 0x79, + 0xd4, 0x36, 0x60, 0x6b, 0x52, 0x25, 0xd7, 0x67, 0xf7, 0x8b, 0x35, 0x79, 0xc1, 0x76, 0xb9, 0xf3, + 0x8c, 0xfd, 0xb9, 0x21, 0xff, 0xef, 0x17, 0xeb, 0x6a, 0xbe, 0xd5, 0x4e, 0x6c, 0x3f, 0x81, 0xd2, + 0x4c, 0xf7, 0xea, 0xcd, 0x2f, 0xd3, 0xde, 0x96, 0xf8, 0x02, 0xcc, 0xab, 0x3c, 0x58, 0x6c, 0x05, + 0x32, 0x0d, 0xf9, 0x71, 0x08, 0xbd, 0x0d, 0x0e, 0x73, 0x49, 0x68, 0x5e, 0xa0, 0x25, 0xec, 0x01, + 0xa9, 0x7c, 0x3f, 0x56, 0x7b, 0x96, 0xe6, 0x43, 0xb6, 0x19, 0x9c, 0xd0, 0x7a, 0x30, 0x89, 0xd6, + 0x68, 0x75, 0xd5, 0x0f, 0x7f, 0xd3, 0xc2, 0x88, 0x87, 0xb2, 0x71, 0x32, 0x64, 0x58, 0x09, 0x2e, + 0xee, 0xc1, 0xae, 0xc2, 0x3d, 0x70, 0x91, 0x36, 0x23, 0xd9, 0x4d, 0xbb, 0x9a, 0x86, 0xd1, 0x4d, + 0xfa, 0xb1, 0x2d, 0xa9, 0x0b, 0xcc, 0xca, 0x50, 0x39, 0x1b, 0x16, 0x88, 0xe9, 0x83, 0x69, 0x75, + 0x58, 0x46, 0xa7, 0x0f, 0x57, 0xc9, 0x14, 0x6a, 0xe9, 0xf4, 0x9e, 0x06, 0x8d, 0x7d, 0x56, 0xdd, + 0x14, 0x43, 0x57, 0x23, 0x7e, 0xec, 0x36, 0x35, 0x5c, 0x9b, 0xc1, 0xf3, 0xea, 0x09, 0xc9, 0xa2, + 0xc4, 0xad, 0x16, 0x8e, 0x48, 0x67, 0x40, 0xd6, 0x86, 0x61, 0x1d, 0x85, 0x2c, 0x70, 0x87, 0x36, + 0xa2, 0x93, 0xf8, 0x4d, 0x03, 0xbb, 0x7c, 0x68, 0xcc, 0xcb, 0xc2, 0x3a, 0xaa, 0xcd, 0x14, 0x8d, + 0x75, 0xd4, 0x98, 0x65, 0xda, 0x9c, 0x65, 0x0d, 0x20, 0xa9, 0x96, 0xad, 0x78, 0x01, 0x0b, 0x3d, + 0x28, 0xc1, 0xd8, 0xf0, 0xc4, 0xf7, 0xf4, 0x94, 0x0c, 0x8e, 0x02, 0x7b, 0xde, 0xac, 0x56, 0xee, + 0x7e, 0xab, 0xd0, 0x91, 0x08, 0x4b, 0x44, 0xee, 0xa5, 0x47, 0xd4, 0xfb, 0x62, 0x3a, 0x4d, 0x8e, + 0xe2, 0x32, 0x3a, 0xe4, 0x01, 0x87, 0x10, 0x20, 0x7f, 0xf6, 0x60, 0x83, 0x75, 0xe6, 0x8b, 0x25, + 0x96, 0x40, 0x31, 0x41, 0xb1, 0x18, 0x50, 0x9c, 0x2b, 0x5b, 0xa9, 0x65, 0x93, 0x05, 0x97, 0x62, + 0xcb, 0x3e, 0x8a, 0x77, 0x76, 0x2a, 0x59, 0xb4, 0x0c, 0x3a, 0xa4, 0x20, 0xf9, 0x47, 0x0f, 0xff, + 0xb0, 0x8a, 0x2f, 0x9d, 0xe2, 0x7f, 0x2c, 0xea, 0x6b, 0x1e, 0xce, 0xf3, 0xc4, 0x9d, 0x00, 0xb4, + 0xbd, 0xb3, 0x13, 0x22, 0x62, 0xc3, 0xad, 0x10, 0x68, 0x5f, 0x9d, 0xfb, 0x7d, 0x84, 0xd0, 0x92, + 0xef, 0x78, 0xd5, 0xad, 0x34, 0xa2, 0x4f, 0xe8, 0x1b, 0xea, 0x7b, 0x54, 0xa0, 0xf8, 0x5f, 0x06, + 0x23, 0xe2, 0x0c, 0xed, 0x5e, 0x89, 0x17, 0x9c, 0xc4, 0x04, 0xd3, 0x8f, 0xd9, 0xc3, 0x92, 0xb8, + 0x0a, 0xa5, 0x77, 0xb1, 0xa4, 0x30, 0xaa, 0x42, 0x95, 0x3a, 0x30, 0x9e, 0x76, 0xbf, 0x65, 0xe6, + 0x77, 0x8e, 0x2f, 0xbf, 0x2c, 0x79, 0x60, 0xc1, 0x2b, 0x72, 0x84, 0xe3, 0x0d, 0x99, 0x96, 0xf1, + 0x63, 0x31, 0x42, 0x5f, 0x6f, 0x69, 0x64, 0xeb, 0x78, 0x7b, 0xea, 0x4a, 0x79, 0xcf, 0xeb, 0xf8, + 0xf4, 0x42, 0x3a, 0xf0, 0xd6, 0x2c, 0x72, 0x74, 0xd5, 0xa5, 0x50, 0x3a, 0xa1, 0xaf, 0xe6, 0xa7, + 0xae, 0x53, 0x9e, 0xb8, 0xaa, 0xd3, 0x8b, 0x76, 0x00, 0xd5, 0x3e, 0x3d, 0xe9, 0x11, 0x01, 0xc1, + 0x69, 0xdc, 0x76, 0x03, 0x07, 0x67, 0x9f, 0xd3, 0xc1, 0xe1, 0x71, 0x37, 0x80, 0xf9, 0xbd, 0x00, + 0x29, 0xa5, 0x7b, 0xf4, 0xe9, 0x1b, 0x50, 0x82, 0x60, 0x09, 0x18, 0x27, 0x1d, 0xbc, 0xcd, 0x2b, + 0xe0, 0x68, 0x91, 0x94, 0xe5, 0x81, 0x22, 0xea, 0x40, 0x80, 0x23, 0x7f, 0xfe, 0x8e, 0x99, 0x54, + 0xc8, 0x5a, 0x21, 0x4b, 0xc6, 0x12, 0xdf, 0xc5, 0x7e, 0x35, 0xf4, 0xb4, 0x6b, 0xb2, 0x67, 0x1c, + 0xaf, 0x83, 0xbd, 0xf9, 0xa9, 0x82, 0xe8, 0x5b, 0x9a, 0xc3, 0x5d, 0x93, 0x61, 0x26, 0xa8, 0x86, + 0xa0, 0xe7, 0x2a, 0x1b, 0xa4, 0x71, 0xe3, 0x0b, 0x4b, 0xd1, 0xbe, 0xf8, 0x2f, 0x36, 0x73, 0x84, + 0x04, 0x16, 0x63, 0x26, 0x0d, 0x79, 0xcf, 0xb0, 0x33, 0x2e, 0x0c, 0x4c, 0xfe, 0xb9, 0xac, 0x7f, + 0x9e, 0x58, 0x9f, 0x27, 0xb3, 0x4f, 0x35, 0x37, 0x4c, 0xe9, 0x64, 0x81, 0x8a, 0x29, 0xe1, 0x0b, + 0x39, 0xa1, 0xa2, 0xee, 0x04, 0xad, 0x2c, 0x9d, 0x22, 0x1a, 0xba, 0x87, 0xc5, 0x44, 0xac, 0x11, + 0x6a, 0x4b, 0x43, 0xb2, 0xf7, 0x51, 0x5d, 0xee, 0xea, 0xb3, 0x5f, 0xb5, 0x78, 0x5c, 0x96, 0x1c, + 0x87, 0x33, 0x0f, 0x56, 0xe2, 0x4d, 0xb8, 0x18, 0x07, 0x25, 0x0e, 0x68, 0x50, 0xa0, 0x0d, 0x4c, + 0x95, 0x75, 0x46, 0x30, 0x99, 0xe2, 0x9d, 0x9f, 0x45, 0x21, 0x41, 0x94, 0x9b, 0xaf, 0x5e, 0xf5, + 0x3b, 0x62, 0x12, 0x74, 0xc8, 0xe4, 0xd9, 0x79, 0xc4, 0xf7, 0xd6, 0xec, 0x3a, 0xba, 0x43, 0x4e, + 0xe6, 0x02, 0x93, 0x82, 0x4d, 0x9c, 0xa5, 0x17, 0x0c, 0xf6, 0x7b, 0xcf, 0x2e, 0xea, 0xfc, 0x11, + 0x74, 0x95, 0x07, 0x09, 0x48, 0x96, 0xe6, 0x9d, 0x89, 0x40, 0x07, 0xc0, 0xea, 0xf1, 0x42, 0x45, + 0x71, 0x04, 0xd2, 0x55, 0x9b, 0xaa, 0xbf, 0xb7, 0x7a, 0xd2, 0x40, 0x4c, 0x4f, 0xa7, 0xe7, 0xa3, + 0xeb, 0x04, 0x06, 0xf6, 0x14, 0x7d, 0xd9, 0x6e, 0x8a, 0xab, 0x74, 0xfa, 0x88, 0xd3, 0x92, 0xde, + 0x5f, 0x8b, 0xb9, 0x09, 0x6a, 0x94, 0x18, 0x58, 0xf0, 0xcf, 0x1c, 0x27, 0x5e, 0x3c, 0x3f, 0x85, + 0x31, 0x02, 0x67, 0x9d, 0x77, 0x7d, 0x66, 0x84, 0x91, 0xfe, 0x17, 0xe6, 0xa0, 0xce, 0x79, 0x56, + 0x4b, 0x58, 0x22, 0xe0, 0xb4, 0xca, 0x17, 0x80, 0xf3, 0x11, 0x41, 0xf9, 0xe2, 0xc4, 0x17, 0x53, + 0x7e, 0x7e, 0x5a, 0x9f, 0xf3, 0x88, 0x5b, 0x7a, 0x50, 0x0c, 0xc5, 0x93, 0x86, 0x8b, 0xf9, 0xe9, + 0x25, 0x2c, 0xe4, 0xd6, 0x1b, 0x08, 0x08, 0x12, 0x42, 0xd5, 0x83, 0x8b, 0x7a, 0xd0, 0x5d, 0x3d, + 0x08, 0x1d, 0x15, 0x61, 0xc6, 0x98, 0x02, 0x96, 0x79, 0x34, 0x7f, 0x17, 0xc2, 0x40, 0x8a, 0xbc, + 0xb6, 0xd6, 0x42, 0xe4, 0xba, 0x24, 0x11, 0x6d, 0x94, 0x27, 0xf7, 0xd9, 0x23, 0xad, 0x47, 0x57, + 0xaa, 0xc7, 0x0e, 0x3c, 0xd8, 0xbd, 0x70, 0x28, 0xe2, 0xcc, 0xd7, 0x05, 0xe1, 0xd0, 0xa4, 0x50, + 0xac, 0xd2, 0x6f, 0x99, 0xf5, 0x0d, 0x1a, 0x07, 0xc3, 0x02, 0x43, 0x2e, 0xa6, 0xf0, 0x15, 0xb0, + 0x39, 0x8c, 0x05, 0x3d, 0x74, 0xa1, 0x18, 0xe6, 0x37, 0xd5, 0x8f, 0xd0, 0x9a, 0xc8, 0x73, 0xc4, + 0x40, 0x19, 0x24, 0x34, 0x15, 0xc7, 0x44, 0x10, 0x2e, 0x81, 0x6a, 0xc1, 0x24, 0x9e, 0x4f, 0xe5, + 0xc9, 0x8f, 0xdf, 0xd4, 0x40, 0xb2, 0x43, 0xf1, 0xa9, 0x29, 0x1f, 0x45, 0xdb, 0x3b, 0x11, 0x7a, + 0x02, 0x32, 0x98, 0x8c, 0xab, 0x20, 0x77, 0xdf, 0xc9, 0xb7, 0xf7, 0x9c, 0x7c, 0x8f, 0x5e, 0x4d, + 0x85, 0x9b, 0x02, 0xde, 0x0e, 0x98, 0x95, 0x72, 0xed, 0x4a, 0xe8, 0xec, 0xb6, 0x66, 0xdf, 0x90, + 0x02, 0xd9, 0x7b, 0xad, 0xca, 0x08, 0xf7, 0x76, 0xe7, 0x5d, 0x40, 0x93, 0xbd, 0xfc, 0x0a, 0x0d, + 0x86, 0x7d, 0xab, 0x0d, 0x27, 0xf9, 0x74, 0xe8, 0xdb, 0x79, 0x5e, 0xa1, 0xe1, 0x77, 0x15, 0xd8, + 0x23, 0x0e, 0x31, 0xb4, 0x6a, 0x3d, 0xcc, 0x6f, 0x3a, 0x5a, 0xef, 0x39, 0xc8, 0x49, 0x5d, 0x18, + 0xd7, 0x27, 0x75, 0xc4, 0xdc, 0x67, 0x34, 0xa7, 0xed, 0x79, 0xb1, 0x83, 0x69, 0x59, 0x2d, 0x40, + 0x31, 0xb3, 0x0c, 0xc4, 0x06, 0x0f, 0x6b, 0x89, 0xa0, 0x66, 0x71, 0xd2, 0x67, 0x0f, 0x73, 0xda, + 0x90, 0x44, 0xd1, 0x8f, 0xae, 0x0a, 0x9a, 0x2e, 0x66, 0x1e, 0x1e, 0x88, 0x5f, 0xa2, 0x8f, 0xfc, + 0xaf, 0x6e, 0x55, 0xe5, 0x37, 0x1c, 0xe3, 0x67, 0x44, 0xa3, 0xe1, 0x2f, 0xae, 0xc7, 0xe7, 0xd5, + 0xc2, 0xaf, 0x18, 0x22, 0x28, 0x4c, 0x11, 0x58, 0x0a, 0x27, 0xc8, 0xb3, 0x21, 0xda, 0x41, 0x6d, + 0x34, 0x2e, 0xf3, 0x44, 0x68, 0x13, 0x9c, 0x48, 0xf3, 0x90, 0xb1, 0x58, 0x59, 0x28, 0xa3, 0xad, + 0x0c, 0x2a, 0x48, 0x8d, 0xe2, 0xe2, 0x39, 0x12, 0x04, 0x14, 0x9e, 0xcc, 0x66, 0x88, 0x95, 0xab, + 0x5f, 0x34, 0xbc, 0x96, 0xe0, 0x8d, 0xde, 0x02, 0xd6, 0x6c, 0x24, 0xf3, 0x5b, 0x82, 0x3e, 0xb9, + 0x9c, 0x45, 0xb0, 0x2d, 0xc3, 0x7f, 0x77, 0x11, 0x5e, 0x62, 0xc0, 0x31, 0x9a, 0xbf, 0x8d, 0x38, + 0xee, 0xda, 0x9c, 0xb3, 0x7b, 0x88, 0x27, 0x77, 0x55, 0x2c, 0x93, 0x83, 0x19, 0x8f, 0x76, 0xf4, + 0xb5, 0x13, 0x2f, 0x58, 0xdd, 0x43, 0x9b, 0x27, 0x3e, 0x05, 0x8e, 0xc6, 0xa5, 0x0f, 0x09, 0xf6, + 0x49, 0xa2, 0xe0, 0x04, 0xb3, 0x10, 0xc2, 0x41, 0xe0, 0xca, 0xb4, 0x65, 0x22, 0xd0, 0x53, 0xb1, + 0xc9, 0xd0, 0x53, 0xc4, 0x65, 0x4c, 0xd2, 0xed, 0x26, 0x1f, 0xbb, 0xf3, 0x16, 0x86, 0x6e, 0xe8, + 0xdb, 0x6c, 0x34, 0x1a, 0x08, 0x79, 0x11, 0xda, 0x54, 0x34, 0xfa, 0xc3, 0x75, 0x68, 0xf3, 0xd0, + 0x18, 0xe8, 0x64, 0x31, 0x80, 0x40, 0xbd, 0xe7, 0x45, 0xcc, 0x92, 0x87, 0x73, 0xc2, 0x60, 0x62, + 0x30, 0x63, 0xbd, 0x9a, 0x3d, 0xcd, 0x19, 0x70, 0x17, 0x38, 0x22, 0x79, 0x2f, 0xf6, 0x73, 0xb1, + 0xd9, 0xec, 0xc1, 0x5e, 0x59, 0x15, 0xe7, 0x32, 0x9b, 0xaf, 0x83, 0x40, 0x93, 0xcc, 0x4c, 0xb4, + 0x24, 0xa5, 0x09, 0xcb, 0xa7, 0x9b, 0xc1, 0x89, 0x8e, 0x02, 0x4f, 0xf2, 0x72, 0x58, 0x62, 0xdf, + 0x26, 0xe1, 0xc8, 0x0a, 0x29, 0x47, 0x95, 0x74, 0x20, 0x08, 0xd3, 0xfa, 0x30, 0xe5, 0xcd, 0xf8, + 0x27, 0x2d, 0x4a, 0x66, 0x41, 0xd0, 0x1a, 0xf4, 0x57, 0x1e, 0xfc, 0x8b, 0x0e, 0x4e, 0xe1, 0x88, + 0x92, 0x2e, 0x8a, 0x83, 0xd7, 0x42, 0x82, 0xf2, 0xee, 0x7d, 0xf1, 0xf3, 0xf5, 0xd8, 0x87, 0x91, + 0x96, 0xc1, 0x48, 0x83, 0x51, 0xa6, 0xc6, 0x9a, 0x9b, 0x6b, 0x9e, 0x3c, 0xa8, 0x67, 0x63, 0xe7, + 0xe9, 0x38, 0xa3, 0xc6, 0x6e, 0x64, 0x52, 0xf4, 0x5a, 0xd8, 0x19, 0xbf, 0x18, 0x8d, 0x46, 0x9d, + 0xfd, 0xde, 0xf1, 0x97, 0x61, 0x07, 0x09, 0x87, 0xd1, 0x59, 0x75, 0xb1, 0xe7, 0x85, 0xf8, 0xef, + 0xb5, 0xfc, 0x77, 0x0c, 0x5b, 0x38, 0x2e, 0x47, 0x6b, 0x24, 0x1c, 0x35, 0xc9, 0xf7, 0xcb, 0xbf, + 0x44, 0xbe, 0x6e, 0xb7, 0xbb, 0x9d, 0x7c, 0xac, 0xe4, 0x3f, 0xeb, 0x86, 0xe5, 0xbd, 0xf5, 0x29, + 0xc9, 0x40, 0x3b, 0x31, 0xb3, 0x04, 0x86, 0x89, 0x78, 0xfb, 0x1b, 0x2c, 0x7b, 0x70, 0xf8, 0x13, + 0x57, 0x87, 0x9f, 0x92, 0x47, 0x04, 0xf7, 0xff, 0xea, 0x2b, 0xe4, 0x2f, 0x20, 0x68, 0x39, 0xbe, + 0x74, 0xca, 0xc7, 0xc2, 0x49, 0x63, 0x0a, 0x7d, 0xd7, 0x61, 0x52, 0xe8, 0x4c, 0x38, 0x2f, 0x0a, + 0x1f, 0xb2, 0x7d, 0xc7, 0x32, 0x9d, 0xb0, 0xb9, 0xf2, 0x75, 0x80, 0x88, 0x9b, 0x42, 0x41, 0xd6, + 0x53, 0xde, 0xfb, 0x02, 0x71, 0x6c, 0x39, 0x6e, 0x1f, 0x4c, 0x05, 0xa9, 0x30, 0x93, 0xf5, 0xd7, + 0x44, 0x9c, 0x4e, 0x47, 0xa3, 0x6e, 0xd7, 0x33, 0x78, 0x87, 0x6b, 0xa6, 0x59, 0x2c, 0x10, 0x0b, + 0xab, 0x60, 0xd8, 0xc5, 0x5b, 0x05, 0xb5, 0xa8, 0x1c, 0x3a, 0x67, 0x55, 0xb5, 0xec, 0xc8, 0xed, + 0x13, 0x91, 0xc2, 0xf4, 0xa0, 0xc0, 0x3b, 0x0a, 0x69, 0xe0, 0x87, 0x83, 0x98, 0x35, 0x7f, 0xe0, + 0x7c, 0x5b, 0x05, 0x91, 0x13, 0xf4, 0x7a, 0x36, 0x82, 0xed, 0x2d, 0x83, 0xf6, 0x28, 0xef, 0xa0, + 0x23, 0xe1, 0xbf, 0x6e, 0xeb, 0x92, 0xfd, 0x39, 0x64, 0x59, 0x4e, 0x6f, 0x40, 0x5f, 0xac, 0x17, + 0x64, 0x66, 0x0d, 0xa5, 0x3f, 0x19, 0xb3, 0x87, 0x95, 0xcf, 0xf9, 0xc6, 0x7c, 0x4a, 0xaf, 0x71, + 0x09, 0x70, 0xf2, 0xf9, 0x65, 0x63, 0x3e, 0x77, 0x5e, 0xe3, 0x9a, 0xe1, 0xe4, 0xf3, 0xe7, 0x7a, + 0x3e, 0xfe, 0x52, 0x8c, 0xf8, 0xa8, 0x69, 0x66, 0xac, 0x9c, 0xf4, 0x38, 0x99, 0xad, 0x51, 0xea, + 0xec, 0x0b, 0x61, 0x15, 0x37, 0xed, 0x0a, 0xf2, 0x1e, 0xc9, 0xdd, 0x13, 0xfa, 0x66, 0xb0, 0x48, + 0x1e, 0x73, 0xe5, 0x92, 0x44, 0xef, 0xec, 0x3f, 0x0a, 0x7f, 0x90, 0x66, 0xde, 0x75, 0x77, 0x6c, + 0x2e, 0xe2, 0x24, 0x74, 0xc3, 0xae, 0x11, 0x86, 0xde, 0x09, 0x1b, 0xc7, 0xa5, 0xc2, 0x12, 0x97, + 0x9f, 0x9c, 0x2a, 0xfe, 0x6a, 0xbb, 0x72, 0x6a, 0x65, 0x20, 0x6c, 0xd6, 0x7c, 0xaa, 0xda, 0x1c, + 0x49, 0x54, 0x9d, 0x45, 0x29, 0x32, 0x82, 0x3d, 0xf8, 0x12, 0xc7, 0x36, 0x26, 0x67, 0xc6, 0xb2, + 0x5d, 0xc3, 0xa2, 0xcb, 0x4f, 0x64, 0x5c, 0x87, 0x5d, 0xc7, 0x29, 0x13, 0xb6, 0x9b, 0x2e, 0xea, + 0xa4, 0x84, 0x89, 0x07, 0x3d, 0xf4, 0x7d, 0x06, 0xab, 0xa6, 0x8f, 0xa0, 0xd1, 0x1b, 0x87, 0x0c, + 0xb1, 0x1a, 0x1f, 0xee, 0x60, 0x52, 0xc3, 0x15, 0xe7, 0xa7, 0x8d, 0xf6, 0x37, 0xad, 0x4a, 0x05, + 0xea, 0x12, 0xd0, 0xd5, 0x14, 0x46, 0xd0, 0x0b, 0xa5, 0xe2, 0x35, 0x2b, 0x0e, 0x16, 0x51, 0x1a, + 0x8e, 0xa0, 0x13, 0x72, 0x13, 0x74, 0x4d, 0x41, 0xe3, 0x38, 0x33, 0x41, 0x63, 0x0a, 0x82, 0xa5, + 0xc5, 0x6d, 0x30, 0x2a, 0x44, 0xdd, 0xb2, 0x43, 0x21, 0xd1, 0xc5, 0xc5, 0x65, 0x48, 0xff, 0xbb, + 0x5c, 0xad, 0xe4, 0x2d, 0x34, 0x02, 0xc4, 0x53, 0xec, 0xf8, 0x42, 0x34, 0x4e, 0x7a, 0xe9, 0xde, + 0x32, 0x5b, 0xf6, 0xd6, 0x51, 0x86, 0xae, 0xc3, 0xcd, 0xb7, 0x00, 0x93, 0x49, 0xc5, 0x4d, 0xd1, + 0x78, 0x1e, 0x20, 0xcc, 0xdc, 0x09, 0xd7, 0xf5, 0x90, 0x79, 0xe2, 0xbf, 0x71, 0x75, 0x90, 0x4c, + 0x24, 0xf8, 0xb7, 0x62, 0x35, 0x79, 0xf1, 0xe2, 0x3a, 0xad, 0x66, 0xb7, 0x63, 0xbc, 0xf1, 0x7c, + 0xf1, 0x5d, 0xba, 0x98, 0x14, 0x45, 0xf1, 0x29, 0x4d, 0x5e, 0x20, 0x89, 0xcd, 0x8b, 0xfb, 0xf4, + 0x53, 0x8a, 0xc7, 0x69, 0x17, 0xcc, 0x58, 0xe1, 0x27, 0xf9, 0xfe, 0x6c, 0xb2, 0x17, 0xf7, 0x5e, + 0x05, 0x83, 0x23, 0x84, 0x99, 0xf4, 0xb1, 0xd8, 0x20, 0x9c, 0x4d, 0x06, 0x87, 0xea, 0xcf, 0xa3, + 0x2e, 0x2e, 0xf5, 0x2f, 0x5f, 0xc6, 0xf1, 0x6c, 0x42, 0x21, 0x7b, 0xf1, 0x11, 0x86, 0x74, 0x5f, + 0xb1, 0x10, 0xc8, 0x40, 0x69, 0x37, 0x88, 0xda, 0x13, 0x58, 0xe7, 0x86, 0x8f, 0xb3, 0x12, 0x5d, + 0xef, 0x66, 0x93, 0x55, 0xd8, 0x41, 0x8c, 0xa4, 0xb0, 0x73, 0xdc, 0xfd, 0x12, 0x19, 0x38, 0xc3, + 0x6f, 0x7b, 0x0a, 0xce, 0x38, 0x9f, 0x2e, 0x2c, 0x68, 0x53, 0x08, 0xf8, 0x99, 0x4c, 0x8f, 0xc2, + 0x32, 0x8a, 0xdf, 0xad, 0x05, 0x80, 0x8e, 0x32, 0x48, 0x85, 0x1e, 0xf4, 0x15, 0x53, 0x4e, 0xfb, + 0x59, 0x85, 0x7b, 0x65, 0x21, 0xce, 0xe5, 0x34, 0x5d, 0xdc, 0x74, 0x7e, 0x4e, 0xc6, 0x45, 0x21, + 0x8f, 0x8d, 0xbe, 0x28, 0x1f, 0xb4, 0xd4, 0x1a, 0xd3, 0x0b, 0x1c, 0xc5, 0x63, 0xef, 0x85, 0x30, + 0x4b, 0xac, 0x94, 0xa8, 0xe7, 0x36, 0x0c, 0x2b, 0x6c, 0xac, 0xa5, 0xbd, 0x3e, 0x2d, 0x4a, 0x21, + 0x9b, 0x92, 0xfd, 0x3c, 0xf8, 0x9d, 0x52, 0x8a, 0x82, 0x8d, 0x90, 0xe7, 0x44, 0x32, 0xa6, 0x64, + 0x08, 0x5b, 0xb2, 0x9b, 0xba, 0xd9, 0x51, 0x5b, 0xea, 0xdb, 0x54, 0x05, 0x76, 0x26, 0xfc, 0x7d, + 0x96, 0xe2, 0x9a, 0xbe, 0x2b, 0xee, 0x4b, 0x35, 0xc9, 0x30, 0x3a, 0x7f, 0xec, 0x74, 0x57, 0x97, + 0x08, 0x5d, 0xf8, 0x93, 0xba, 0x43, 0x12, 0xd0, 0x01, 0xc5, 0x3c, 0xbe, 0xb9, 0x0f, 0x59, 0x00, + 0xa4, 0xff, 0x1b, 0x1d, 0xdd, 0x59, 0x94, 0x0f, 0xf1, 0xcd, 0x8c, 0x63, 0x85, 0xf7, 0xfa, 0x89, + 0xf4, 0x24, 0x4a, 0x1c, 0x4f, 0x22, 0x79, 0x4f, 0xdb, 0xee, 0xa9, 0x44, 0x96, 0x06, 0x71, 0xff, + 0x51, 0xbe, 0x81, 0xc5, 0x87, 0x83, 0xdd, 0xce, 0x59, 0xb8, 0x0d, 0x4e, 0x4f, 0x6c, 0x43, 0x70, + 0x84, 0x5f, 0x80, 0x06, 0x87, 0x00, 0x06, 0x88, 0x93, 0xe9, 0x7b, 0xf7, 0x19, 0x01, 0xe9, 0x3f, + 0x78, 0x12, 0xdd, 0x01, 0x15, 0x18, 0x71, 0xc2, 0x67, 0x56, 0xbe, 0x4a, 0x70, 0x3d, 0x20, 0xb2, + 0xe7, 0x1d, 0x39, 0xa9, 0xe3, 0x3f, 0xaa, 0x0b, 0x79, 0x89, 0xf0, 0x65, 0x2e, 0x3a, 0x07, 0x19, + 0xe9, 0x7c, 0xae, 0xec, 0xac, 0xac, 0x78, 0xcb, 0x55, 0x78, 0xad, 0xef, 0x93, 0x44, 0x25, 0xba, + 0xa1, 0xc4, 0xb6, 0x64, 0x62, 0x96, 0x35, 0x31, 0x43, 0x07, 0x2e, 0x76, 0x39, 0x8f, 0x78, 0xc6, + 0xe1, 0x1d, 0x87, 0x81, 0x84, 0x3f, 0x56, 0xf5, 0xe3, 0x63, 0x28, 0xd4, 0x3f, 0x65, 0xc6, 0x49, + 0xc2, 0x6f, 0xbf, 0xb5, 0xee, 0x72, 0x5c, 0xc1, 0xc8, 0x66, 0x23, 0xa0, 0x62, 0x37, 0x61, 0xf4, + 0x82, 0x28, 0x0f, 0xc3, 0x39, 0xa9, 0xc8, 0x7b, 0x89, 0x86, 0x95, 0x25, 0x14, 0xde, 0xcf, 0x80, + 0x96, 0xe5, 0x98, 0xb2, 0x5b, 0x02, 0xc5, 0x96, 0x68, 0x9a, 0xe2, 0x0d, 0x6e, 0xdf, 0x21, 0x40, + 0xf3, 0x5b, 0xad, 0x06, 0xdd, 0x06, 0x79, 0xa0, 0x7b, 0xc7, 0xd0, 0x35, 0x70, 0xd5, 0x5a, 0x63, + 0xaf, 0x07, 0xed, 0xb1, 0x0a, 0xe1, 0x98, 0x1b, 0x21, 0x94, 0xf1, 0x7a, 0x50, 0x50, 0xa3, 0xbf, + 0xc3, 0xde, 0xf5, 0x13, 0x61, 0xcb, 0x25, 0x02, 0x41, 0x44, 0xb3, 0xf8, 0xae, 0xa1, 0x9d, 0xe6, + 0x94, 0x7a, 0xf4, 0x12, 0xf0, 0xb9, 0xfc, 0xd2, 0xb0, 0x2c, 0xe5, 0xb1, 0x77, 0xf8, 0xc6, 0x93, + 0x77, 0x43, 0x36, 0xe1, 0x1c, 0x81, 0x8a, 0xf2, 0xc0, 0xff, 0xf9, 0x5f, 0xa4, 0x78, 0x8b, 0x4c, + 0x50, 0x82, 0x71, 0xc2, 0xbc, 0x81, 0xd5, 0xb7, 0x46, 0xed, 0x56, 0x26, 0x88, 0x3a, 0x4c, 0x80, + 0x31, 0x7a, 0x32, 0x26, 0xed, 0x47, 0x2a, 0x0d, 0x43, 0x80, 0xa6, 0x7b, 0xa9, 0xab, 0xb8, 0x8e, + 0x9d, 0x1a, 0x88, 0x00, 0x9b, 0xa8, 0x0a, 0x36, 0xd0, 0x0d, 0xa6, 0xb1, 0x37, 0x27, 0x0a, 0x3c, + 0xa8, 0x6b, 0x05, 0x27, 0x83, 0x5e, 0x3f, 0x3d, 0xd1, 0x08, 0x2b, 0xa9, 0x42, 0xb8, 0xcf, 0xe3, + 0xf2, 0x02, 0x76, 0xe7, 0x6c, 0x4b, 0xc2, 0x3f, 0x38, 0xc5, 0xff, 0x75, 0x3e, 0x4f, 0x16, 0xaf, + 0x47, 0x08, 0x68, 0xdd, 0xcf, 0x1d, 0xe9, 0x33, 0xd3, 0x52, 0xa2, 0x0a, 0x76, 0x7c, 0xe4, 0xcb, + 0x53, 0xee, 0xa7, 0x30, 0x8c, 0x19, 0xc5, 0x5b, 0x96, 0x8c, 0x72, 0x01, 0x4a, 0xdd, 0x84, 0x07, + 0x21, 0x57, 0xac, 0x84, 0x5c, 0x46, 0xd3, 0xe2, 0xb6, 0xb4, 0x9b, 0x50, 0x9d, 0x5c, 0x10, 0xee, + 0x9f, 0x3b, 0x9c, 0x62, 0x26, 0x38, 0x16, 0xdf, 0xe2, 0x51, 0xcf, 0xc7, 0xf3, 0x8e, 0xf8, 0xe5, + 0xd1, 0xc5, 0x31, 0x9e, 0x3c, 0x60, 0x9c, 0x91, 0xef, 0x33, 0x5a, 0x0e, 0x91, 0x74, 0x2d, 0x57, + 0x9d, 0x73, 0x80, 0x68, 0x1a, 0x62, 0x24, 0xa6, 0x59, 0x45, 0x8c, 0x05, 0x0d, 0xcd, 0x2d, 0x2e, + 0xa0, 0xe9, 0x09, 0x80, 0x7a, 0xc0, 0x77, 0x49, 0x2e, 0xdd, 0x8b, 0xb7, 0x23, 0x39, 0x05, 0x12, + 0xc6, 0x20, 0x6e, 0xa9, 0xed, 0x94, 0xed, 0x0f, 0x0f, 0x8a, 0x60, 0x44, 0x91, 0x60, 0xd9, 0xdc, + 0xeb, 0xca, 0x31, 0x5b, 0x1d, 0xfc, 0xba, 0x97, 0xba, 0xae, 0x3a, 0xe3, 0xa1, 0xa1, 0x8a, 0x9c, + 0x66, 0x55, 0xf4, 0xec, 0x36, 0xf8, 0xdc, 0x5a, 0x22, 0x06, 0x75, 0xa5, 0x1d, 0x29, 0x38, 0x5f, + 0x3a, 0xaf, 0x6e, 0xb1, 0xb8, 0x19, 0x55, 0xdf, 0x2d, 0x8c, 0x3a, 0x1d, 0x22, 0x0b, 0xa1, 0x81, + 0xfc, 0xc1, 0x36, 0xb0, 0x9f, 0x2b, 0x27, 0xf8, 0x3e, 0x23, 0x50, 0xa3, 0x94, 0xfe, 0xea, 0x8b, + 0x83, 0x6e, 0x1e, 0x10, 0x98, 0x37, 0x69, 0xc9, 0x14, 0x1e, 0x5f, 0xe4, 0x97, 0xc8, 0xd5, 0xe1, + 0x57, 0x22, 0x9e, 0xcc, 0x34, 0x38, 0x29, 0x03, 0x8d, 0xb9, 0x04, 0xea, 0x62, 0x76, 0x52, 0xee, + 0x57, 0xfd, 0x0c, 0x86, 0xbe, 0x88, 0x45, 0xdb, 0x6b, 0x22, 0x9e, 0x81, 0xec, 0xf7, 0x04, 0x81, + 0x51, 0x4d, 0x08, 0x06, 0x68, 0x1e, 0x2c, 0x73, 0x0b, 0xe1, 0xdc, 0x16, 0xa7, 0x5a, 0xa0, 0x34, + 0x0c, 0xce, 0x9c, 0x0b, 0xc5, 0x10, 0x67, 0x6c, 0xd9, 0x5c, 0xb9, 0x58, 0x44, 0x29, 0x1e, 0x7f, + 0xed, 0x81, 0x52, 0x9a, 0x46, 0xd5, 0x2e, 0x9c, 0xec, 0x80, 0x22, 0x1c, 0xb6, 0x05, 0x3c, 0x51, + 0xc2, 0xbc, 0xb5, 0x0b, 0x79, 0x6c, 0x93, 0x47, 0xbe, 0xb9, 0x24, 0xc7, 0x74, 0x88, 0x6c, 0xa1, + 0x45, 0x2d, 0x9b, 0x71, 0xd9, 0x68, 0x33, 0x66, 0xcc, 0xa8, 0x09, 0x74, 0x7c, 0x65, 0x93, 0xcd, + 0xaa, 0x58, 0xfa, 0x95, 0x84, 0xd0, 0x24, 0x1a, 0x7c, 0xc4, 0x4d, 0x8c, 0x30, 0x19, 0x50, 0x77, + 0xaa, 0xce, 0x46, 0x91, 0xdd, 0x54, 0xc6, 0x93, 0xc8, 0xa4, 0x43, 0xa0, 0x53, 0x7d, 0xb3, 0x9d, + 0x07, 0x43, 0xf5, 0x46, 0x2b, 0xbf, 0x8c, 0xe7, 0xf2, 0x87, 0xbe, 0x94, 0x08, 0xcd, 0x18, 0xd4, + 0xb1, 0x08, 0x04, 0x18, 0xba, 0x50, 0x07, 0x48, 0xbc, 0x95, 0xc0, 0x80, 0xbb, 0xe8, 0xb0, 0xd8, + 0xe0, 0x22, 0xe5, 0x84, 0x75, 0xc2, 0x63, 0x10, 0x24, 0xbd, 0x9b, 0x17, 0x02, 0x15, 0x5b, 0x19, + 0x21, 0x52, 0x8d, 0x7a, 0xff, 0x21, 0x7a, 0x88, 0xdf, 0x09, 0x8a, 0xe7, 0x23, 0x39, 0x71, 0x85, + 0xb1, 0x07, 0x23, 0xb9, 0xe2, 0x6d, 0x69, 0x4d, 0x61, 0x7c, 0x6b, 0xe7, 0xe9, 0x2f, 0x70, 0x82, + 0xc9, 0x03, 0xfd, 0x62, 0x20, 0xe7, 0xd7, 0xb5, 0x71, 0x86, 0xa6, 0xfa, 0xac, 0x7e, 0x6b, 0x29, + 0xf9, 0xb8, 0x44, 0x02, 0xe7, 0x8e, 0x5b, 0x80, 0xed, 0xd3, 0x4b, 0x85, 0xbc, 0xf5, 0x66, 0xa4, + 0xf6, 0xb6, 0x46, 0x60, 0x54, 0x30, 0x1e, 0xea, 0x96, 0x1a, 0x28, 0x5e, 0xfa, 0x4d, 0x97, 0x2d, + 0xab, 0xea, 0x77, 0x3c, 0x8f, 0x61, 0x36, 0xf5, 0x9c, 0x56, 0x44, 0x63, 0x53, 0xaf, 0xb9, 0xf0, + 0x8c, 0xb3, 0xdb, 0x85, 0xdf, 0x48, 0x3d, 0x56, 0xff, 0xc2, 0xbd, 0x6a, 0xc4, 0xd7, 0x95, 0xc0, + 0x2b, 0xf8, 0xfb, 0xeb, 0x3a, 0x85, 0x8d, 0x1a, 0xb7, 0x48, 0xe8, 0x1a, 0xbe, 0x8b, 0x5f, 0xd2, + 0x2c, 0x4c, 0x49, 0x12, 0x50, 0x25, 0x1e, 0xba, 0x92, 0xee, 0x81, 0x2a, 0x77, 0x4e, 0xd7, 0x86, + 0xb2, 0xd5, 0xfb, 0x4c, 0x7a, 0x41, 0x84, 0xb0, 0xd4, 0x87, 0x24, 0x09, 0x9a, 0xf0, 0xbe, 0xb8, + 0x85, 0x5e, 0x2a, 0x87, 0x6e, 0x00, 0xf2, 0x7c, 0x24, 0x4c, 0xd7, 0x1a, 0x95, 0xa7, 0x8b, 0x82, + 0x60, 0xc9, 0x94, 0xb6, 0x25, 0x16, 0x0c, 0x64, 0x13, 0x4c, 0x38, 0x87, 0x20, 0x29, 0x29, 0x9a, + 0x5e, 0xaf, 0xfc, 0x15, 0x0e, 0xce, 0xbe, 0x07, 0x69, 0xf5, 0xc5, 0x36, 0x9c, 0x78, 0x14, 0x59, + 0x23, 0x3f, 0x7f, 0x4c, 0x3e, 0xa9, 0x7d, 0x6c, 0x3e, 0x41, 0xad, 0x4e, 0xad, 0x48, 0xb0, 0x7a, + 0x8d, 0x16, 0xd7, 0x09, 0x9b, 0xc6, 0xb4, 0xec, 0xcb, 0x40, 0x7b, 0xc7, 0xd5, 0x51, 0xfa, 0x7c, + 0xae, 0xe7, 0x05, 0xb5, 0x39, 0xea, 0x7b, 0xbc, 0x1a, 0x95, 0xf3, 0x77, 0x09, 0x7f, 0xfb, 0xd0, + 0x98, 0xaa, 0xa9, 0x20, 0x37, 0x34, 0x44, 0xff, 0x4d, 0x37, 0xec, 0xf5, 0xdb, 0xef, 0x5f, 0xbf, + 0xf3, 0xbd, 0x6a, 0x34, 0x9e, 0x08, 0x6d, 0xdb, 0x0b, 0x2e, 0x44, 0x2f, 0x5c, 0xca, 0x91, 0xf5, + 0xbe, 0x98, 0x87, 0x7f, 0x7f, 0xdd, 0xf4, 0x94, 0x45, 0x0e, 0xaf, 0x1d, 0x5f, 0xf5, 0x4d, 0x37, + 0xb0, 0x50, 0xd5, 0x68, 0xec, 0x8b, 0xfa, 0x8b, 0x18, 0x5f, 0x7d, 0xe5, 0xb4, 0x43, 0x5d, 0xac, + 0xb8, 0xda, 0x7f, 0x40, 0x02, 0x48, 0xba, 0x31, 0x22, 0x1d, 0xbc, 0x44, 0xea, 0xaf, 0x3d, 0x3f, + 0xff, 0x63, 0xf9, 0xe2, 0xfe, 0x57, 0x50, 0xdb, 0x8b, 0x1f, 0xd2, 0x87, 0xe4, 0xca, 0x3f, 0x0c, + 0xfa, 0xdd, 0x1d, 0x5c, 0x63, 0x7d, 0x21, 0xee, 0xa0, 0x4b, 0x28, 0x4b, 0x81, 0x0e, 0x38, 0x21, + 0xb2, 0x59, 0x0c, 0xc8, 0x06, 0x07, 0xbd, 0x43, 0x50, 0x5b, 0xb6, 0xa9, 0x2a, 0x1c, 0xda, 0x44, + 0xcb, 0x40, 0x3e, 0x50, 0x6b, 0xa1, 0x75, 0x91, 0x47, 0x53, 0x01, 0xea, 0x5a, 0xf5, 0xe8, 0x7b, + 0xfb, 0xfb, 0xa9, 0x17, 0x8a, 0x74, 0xfb, 0x08, 0x65, 0x9c, 0xc5, 0xbd, 0xfd, 0x4c, 0x99, 0xcb, + 0x46, 0xa8, 0x78, 0x7d, 0x2a, 0xa5, 0x08, 0xa0, 0x45, 0xb4, 0xe5, 0x31, 0xf5, 0xc2, 0x2c, 0xd8, + 0xb6, 0x5d, 0x7b, 0x90, 0x91, 0x9c, 0x11, 0x5c, 0x93, 0x36, 0x3c, 0xa9, 0xcb, 0x06, 0xf0, 0x68, + 0x47, 0x03, 0x55, 0x67, 0xbd, 0xfc, 0x6a, 0x42, 0x77, 0x4f, 0xf7, 0xbf, 0x0e, 0xbe, 0xf9, 0xf6, + 0x9b, 0xa7, 0x27, 0xf8, 0xf7, 0xf8, 0xe8, 0xdb, 0xaf, 0xbe, 0xba, 0xff, 0xf5, 0xe4, 0x9b, 0xc3, + 0x6e, 0xd0, 0xca, 0x36, 0x2c, 0x40, 0xc3, 0x97, 0xf7, 0xbf, 0x2a, 0x2e, 0x5c, 0x5a, 0xac, 0x08, + 0x35, 0x98, 0x33, 0xb6, 0xf6, 0x99, 0x35, 0x83, 0x1e, 0xc9, 0xc9, 0xae, 0x15, 0xc0, 0xaf, 0xfd, + 0xf2, 0x75, 0x91, 0x61, 0xf5, 0xb1, 0x7e, 0x92, 0x9d, 0x2a, 0x54, 0x61, 0x63, 0x65, 0xa4, 0xa6, + 0x95, 0xcd, 0x4a, 0x27, 0x63, 0x0a, 0xa0, 0x6e, 0x1f, 0xda, 0xfd, 0xa5, 0x49, 0x56, 0xcd, 0x4d, + 0x56, 0x92, 0x51, 0x81, 0xc6, 0x58, 0x1d, 0xe1, 0x5c, 0x86, 0x0b, 0x7c, 0x50, 0xc2, 0x29, 0xa3, + 0x80, 0xef, 0x62, 0x39, 0x2a, 0xbf, 0x0b, 0x9b, 0x0f, 0xd5, 0xf3, 0xc9, 0x8d, 0x17, 0xca, 0x28, + 0x81, 0xfc, 0x11, 0xeb, 0xbf, 0xa1, 0xe1, 0x7a, 0x87, 0xc7, 0x5d, 0x3d, 0xb6, 0x9f, 0x9e, 0x90, + 0xee, 0xc3, 0xd7, 0xc1, 0xd8, 0xf2, 0xf7, 0xf4, 0x9b, 0x1a, 0x3b, 0x66, 0xa1, 0xe2, 0x0f, 0x9c, + 0xa2, 0x68, 0x98, 0x83, 0xc1, 0x23, 0x1e, 0x49, 0xaa, 0x2c, 0x87, 0xb2, 0xa8, 0x9d, 0x5e, 0x24, + 0x4b, 0x83, 0x42, 0x8c, 0xdc, 0x46, 0x04, 0x67, 0xf0, 0xa9, 0xad, 0x54, 0x8c, 0x87, 0x33, 0x90, + 0x9e, 0x43, 0x89, 0x8b, 0x54, 0x16, 0xa6, 0x3c, 0x6b, 0x75, 0x31, 0x6a, 0x04, 0x07, 0x99, 0x8c, + 0x0a, 0x85, 0xea, 0x87, 0x11, 0xd0, 0x14, 0x10, 0x6f, 0xe8, 0x75, 0xf1, 0x3c, 0x7e, 0x5b, 0x15, + 0xde, 0x33, 0x7a, 0x4f, 0x4f, 0x05, 0xf1, 0x76, 0x58, 0xc9, 0x81, 0xa6, 0x3d, 0xc8, 0xed, 0x25, + 0xfe, 0x43, 0x6e, 0xc6, 0xf7, 0x31, 0xcc, 0x73, 0xb6, 0x8a, 0x24, 0xb0, 0x28, 0xbe, 0x49, 0x92, + 0x39, 0x9c, 0x19, 0x0f, 0x0e, 0x0e, 0x34, 0xf1, 0x8a, 0xd4, 0x17, 0xd5, 0xda, 0xaf, 0x89, 0xae, + 0x61, 0x47, 0x9c, 0xa5, 0x53, 0x38, 0x72, 0x8b, 0x67, 0x23, 0x70, 0xa0, 0x27, 0xdf, 0x3e, 0xf1, + 0xab, 0x0c, 0x02, 0x0e, 0xa3, 0x93, 0xc2, 0xb8, 0x0e, 0xe4, 0x17, 0x7c, 0xba, 0x3e, 0xa4, 0x55, + 0xfe, 0xe9, 0xc9, 0xb6, 0x02, 0x24, 0xe1, 0x12, 0x42, 0xc9, 0xe7, 0x22, 0x64, 0xd2, 0x40, 0x58, + 0x48, 0xa9, 0x82, 0xa8, 0x31, 0x3e, 0xbd, 0xa0, 0xd7, 0x76, 0xc6, 0x5a, 0x35, 0x56, 0x62, 0x46, + 0xb5, 0xae, 0x10, 0xb9, 0x17, 0xc2, 0x28, 0x97, 0x93, 0x0d, 0x76, 0x7d, 0x3a, 0x9f, 0xe0, 0x42, + 0x81, 0x1c, 0x2e, 0x64, 0xc9, 0x84, 0xf4, 0x1e, 0x81, 0xf9, 0x87, 0xa8, 0x8b, 0x40, 0x3e, 0xf5, + 0x58, 0x37, 0x05, 0xfa, 0x0b, 0x16, 0xf7, 0x90, 0x19, 0x4e, 0xeb, 0xf6, 0x88, 0x15, 0xee, 0x90, + 0x02, 0x3b, 0x7d, 0x43, 0x4c, 0xca, 0xb2, 0x80, 0x33, 0x52, 0x88, 0xeb, 0xfb, 0x86, 0x78, 0xb7, + 0xf3, 0x4d, 0xd1, 0xa8, 0x60, 0x50, 0x00, 0x4d, 0xbc, 0xff, 0x3a, 0x79, 0x01, 0x6b, 0x70, 0x3a, + 0xaf, 0x06, 0x9d, 0x93, 0x17, 0xc8, 0x16, 0x84, 0xff, 0xce, 0xaa, 0x9b, 0x6c, 0xd0, 0xf9, 0x3f, + 0x4b, 0xc4, 0xad, 0x8f, 0xe0, 0x7f, 0x01, 0x00 }; diff --git a/wled00/improv.cpp b/wled00/improv.cpp index 51f19ecb..f238a2a5 100644 --- a/wled00/improv.cpp +++ b/wled00/improv.cpp @@ -189,7 +189,7 @@ void sendImprovInfoResponse() { out[11] = 4; //Firmware len ("WLED") out[12] = 'W'; out[13] = 'L'; out[14] = 'E'; out[15] = 'D'; uint8_t lengthSum = 17; - uint8_t vlen = sprintf_P(out+lengthSum,PSTR("0.14.0-b1/%i"),VERSION); + uint8_t vlen = sprintf_P(out+lengthSum,PSTR("0.14.0-b2/%i"),VERSION); out[16] = vlen; lengthSum += vlen; uint8_t hlen = 7; #ifdef ESP8266 diff --git a/wled00/json.cpp b/wled00/json.cpp index 6ff6a74c..77d89f17 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -14,16 +14,16 @@ * JSON API (De)serialization */ -void deserializeSegment(JsonObject elem, byte it, byte presetId) +bool deserializeSegment(JsonObject elem, byte it, byte presetId) { byte id = elem["id"] | it; - if (id >= strip.getMaxSegments()) return; + if (id >= strip.getMaxSegments()) return false; int stop = elem["stop"] | -1; // if using vectors use this code to append segment if (id >= strip.getSegmentsNum()) { - if (stop <= 0) return; // ignore empty/inactive segments + if (stop <= 0) return false; // ignore empty/inactive segments strip.appendSegment(Segment(0, strip.getLengthTotal())); id = strip.getSegmentsNum()-1; // segments are added at the end of list } @@ -56,7 +56,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) elem["rev"] = !elem["rev"]; // alternate reverse on even/odd segments deserializeSegment(elem, i, presetId); // recursive call with new id } - return; + return true; } if (elem["n"]) { @@ -107,6 +107,8 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) if (stop > start && of > len -1) of = len -1; seg.set(start, stop, grp, spc, of, startY, stopY); + if (seg.reset && seg.stop == 0) return true; // segment was deleted & is marked for reset, no need to change anything else + byte segbri = seg.opacity; if (getVal(elem["bri"], &segbri)) { if (segbri > 0) seg.setOpacity(segbri); @@ -211,6 +213,9 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) JsonArray iarr = elem[F("i")]; //set individual LEDs if (!iarr.isNull()) { + uint8_t oldMap1D2D = seg.map1D2D; + seg.map1D2D = M12_Pixels; // no mapping + // set brightness immediately and disable transition transitionDelayTemp = 0; jsonTransitionOnce = true; @@ -254,10 +259,13 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) set = 0; } } + seg.map1D2D = oldMap1D2D; // restore mapping strip.trigger(); // force segment update } // send UDP/WS if segment options changed (except selection; will also deselect current preset) if (seg.differs(prev) & 0x7F) stateChanged = true; + + return true; } // deserializes WLED state (fileDoc points to doc object if called from web server) @@ -373,11 +381,12 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId) deserializeSegment(segVar, id, presetId); //apply only the segment with the specified ID } } else { + size_t deleted = 0; JsonArray segs = segVar.as(); for (JsonObject elem : segs) { - deserializeSegment(elem, it, presetId); - it++; + if (deserializeSegment(elem, it++, presetId) && !elem["stop"].isNull() && elem["stop"]==0) deleted++; } + if (strip.getSegmentsNum() > 3 && deleted >= strip.getSegmentsNum()/2U) strip.purgeSegments(); // batch deleting more than half segments } usermods.readFromJsonState(root); @@ -639,8 +648,14 @@ void serializeInfo(JsonObject root) root[F("cpalcount")] = strip.customPalettes.size(); //number of custom palettes JsonArray ledmaps = root.createNestedArray(F("maps")); - for (size_t i=0; i<10; i++) { - if ((ledMaps>>i) & 0x0001) ledmaps.add(i); + for (size_t i=0; i>i) & 0x00000001U) { + JsonObject ledmaps0 = ledmaps.createNestedObject(); + ledmaps0["id"] = i; + #ifndef ESP8266 + if (i && ledmapNames[i-1]) ledmaps0["n"] = ledmapNames[i-1]; + #endif + } } JsonObject wifi_info = root.createNestedObject("wifi"); @@ -703,9 +718,9 @@ void serializeInfo(JsonObject root) #ifndef WLED_DISABLE_ALEXA os += 0x40; #endif - #ifndef WLED_DISABLE_BLYNK - os += 0x20; - #endif + + //os += 0x20; // indicated now removed Blynk support, may be reused to indicate another build-time option + #ifdef USERMOD_CRONIXIE os += 0x10; #endif diff --git a/wled00/led.cpp b/wled00/led.cpp index 3c878b35..545aff4d 100644 --- a/wled00/led.cpp +++ b/wled00/led.cpp @@ -105,7 +105,7 @@ void stateUpdated(byte callMode) { if (callMode != CALL_MODE_NOTIFICATION && callMode != CALL_MODE_NO_NOTIFY) notify(callMode); - //set flag to update blynk, ws and mqtt + //set flag to update ws and mqtt interfaceUpdateCallMode = callMode; stateChanged = false; } else { @@ -129,6 +129,9 @@ void stateUpdated(byte callMode) { //deactivate nightlight if target brightness is reached if (bri == nightlightTargetBri && callMode != CALL_MODE_NO_NOTIFY && nightlightMode != NL_MODE_SUN) nightlightActive = false; + // notify usermods of state change + usermods.onStateChange(callMode); + if (fadeTransition) { //set correct delay if not using notification delay if (callMode != CALL_MODE_NOTIFICATION && !jsonTransitionOnce) transitionDelayTemp = transitionDelay; // load actual transition duration @@ -167,10 +170,6 @@ void updateInterfaces(uint8_t callMode) espalexaDevice->setColor(col[0], col[1], col[2]); } #endif - #ifndef WLED_DISABLE_BLYNK - if (callMode != CALL_MODE_BLYNK && - callMode != CALL_MODE_NO_NOTIFY) updateBlynk(); - #endif doPublishMqtt = true; interfaceUpdateCallMode = 0; //disable } @@ -275,9 +274,7 @@ void handleNightlight() applyFinalBri(); } } - #ifndef WLED_DISABLE_BLYNK - updateBlynk(); - #endif + if (macroNl > 0) applyPreset(macroNl); nightlightActiveOld = false; diff --git a/wled00/net_debug.cpp b/wled00/net_debug.cpp index 6bcbe1e2..4d9552a8 100644 --- a/wled00/net_debug.cpp +++ b/wled00/net_debug.cpp @@ -3,7 +3,7 @@ #ifdef WLED_DEBUG_HOST size_t NetworkDebugPrinter::write(uint8_t c) { - if (!WLED_CONNECTED) return 0; + if (!WLED_CONNECTED || !netDebugEnabled) return 0; if (!debugPrintHostIP && !debugPrintHostIP.fromString(netDebugPrintHost)) { #ifdef ESP8266 @@ -24,7 +24,7 @@ size_t NetworkDebugPrinter::write(uint8_t c) { } size_t NetworkDebugPrinter::write(const uint8_t *buf, size_t size) { - if (!WLED_CONNECTED || buf == nullptr) return 0; + if (!WLED_CONNECTED || buf == nullptr || !netDebugEnabled) return 0; if (!debugPrintHostIP && !debugPrintHostIP.fromString(netDebugPrintHost)) { #ifdef ESP8266 diff --git a/wled00/net_debug.h b/wled00/net_debug.h index abe863fd..13028fdc 100644 --- a/wled00/net_debug.h +++ b/wled00/net_debug.h @@ -13,6 +13,7 @@ class NetworkDebugPrinter : public Print { virtual size_t write(const uint8_t *buf, size_t s); }; +// use it on your linux/macOS with: nc -p 7868 -u -l -s extern NetworkDebugPrinter NetDebug; #endif \ No newline at end of file diff --git a/wled00/ntp.cpp b/wled00/ntp.cpp index 1486b682..1d867846 100644 --- a/wled00/ntp.cpp +++ b/wled00/ntp.cpp @@ -144,8 +144,8 @@ void updateTimezone() { break; } case TZ_MX_CENTRAL : { - tcrDaylight = {First, Sun, Apr, 2, -300}; //CDT = UTC - 5 hours - tcrStandard = {Last, Sun, Oct, 2, -360}; //CST = UTC - 6 hours + tcrDaylight = {First, Sun, Apr, 2, -360}; //CST = UTC - 6 hours + tcrStandard = tcrDaylight; break; } case TZ_PAKISTAN : { diff --git a/wled00/overlay.cpp b/wled00/overlay.cpp index d34a71fe..cfee7e81 100644 --- a/wled00/overlay.cpp +++ b/wled00/overlay.cpp @@ -11,15 +11,15 @@ void _overlayAnalogClock() { _overlayAnalogCountdown(); return; } - double hourP = ((double)(hour(localTime)%12))/12; - double minuteP = ((double)minute(localTime))/60; - hourP = hourP + minuteP/12; - double secondP = ((double)second(localTime))/60; - int hourPixel = floor(analogClock12pixel + overlaySize*hourP); + float hourP = ((float)(hour(localTime)%12))/12.0f; + float minuteP = ((float)minute(localTime))/60.0f; + hourP = hourP + minuteP/12.0f; + float secondP = ((float)second(localTime))/60.0f; + int hourPixel = floorf(analogClock12pixel + overlaySize*hourP); if (hourPixel > overlayMax) hourPixel = overlayMin -1 + hourPixel - overlayMax; - int minutePixel = floor(analogClock12pixel + overlaySize*minuteP); + int minutePixel = floorf(analogClock12pixel + overlaySize*minuteP); if (minutePixel > overlayMax) minutePixel = overlayMin -1 + minutePixel - overlayMax; - int secondPixel = floor(analogClock12pixel + overlaySize*secondP); + int secondPixel = floorf(analogClock12pixel + overlaySize*secondP); if (secondPixel > overlayMax) secondPixel = overlayMin -1 + secondPixel - overlayMax; if (analogClockSecondsTrail) { @@ -36,7 +36,7 @@ void _overlayAnalogClock() { for (byte i = 0; i <= 12; i++) { - int pix = analogClock12pixel + round((overlaySize / 12.0) *i); + int pix = analogClock12pixel + roundf((overlaySize / 12.0f) *i); if (pix > overlayMax) pix -= overlaySize; strip.setPixelColor(pix, 0x00FFAA); } @@ -52,29 +52,29 @@ void _overlayAnalogCountdown() if ((unsigned long)toki.second() < countdownTime) { long diff = countdownTime - toki.second(); - double pval = 60; + float pval = 60.0f; if (diff > 31557600L) //display in years if more than 365 days { - pval = 315576000L; //10 years + pval = 315576000.0f; //10 years } else if (diff > 2592000L) //display in months if more than a month { - pval = 31557600L; //1 year + pval = 31557600.0f; //1 year } else if (diff > 604800) //display in weeks if more than a week { - pval = 2592000L; //1 month + pval = 2592000.0f; //1 month } else if (diff > 86400) //display in days if more than 24 hours { - pval = 604800; //1 week + pval = 604800.0f; //1 week } else if (diff > 3600) //display in hours if more than 60 minutes { - pval = 86400; //1 day + pval = 86400.0f; //1 day } else if (diff > 60) //display in minutes if more than 60 seconds { - pval = 3600; //1 hour + pval = 3600.0f; //1 hour } int overlaySize = overlayMax - overlayMin +1; - double perc = (pval-(double)diff)/pval; - if (perc > 1.0) perc = 1.0; + float perc = (pval-(float)diff)/pval; + if (perc > 1.0f) perc = 1.0f; byte pixelCnt = perc*overlaySize; if (analogClock12pixel + pixelCnt > overlayMax) { diff --git a/wled00/playlist.cpp b/wled00/playlist.cpp index 01b570ab..d74ac5a3 100644 --- a/wled00/playlist.cpp +++ b/wled00/playlist.cpp @@ -156,7 +156,7 @@ void serializePlaylist(JsonObject sObj) { JsonArray ps = playlist.createNestedArray("ps"); JsonArray dur = playlist.createNestedArray("dur"); JsonArray transition = playlist.createNestedArray(F("transition")); - playlist[F("repeat")] = playlistRepeat; + playlist[F("repeat")] = (playlistIndex < 0) ? playlistRepeat - 1 : playlistRepeat; // remove added repetition count (if not yet running) playlist["end"] = playlistEndPreset; playlist["r"] = playlistOptions & PL_OPTION_SHUFFLE; for (int i=0; i 250 || !fileDoc) return; // cannot save API calls to temporary preset (255) sObj.remove("o"); @@ -220,11 +220,12 @@ void savePreset(byte index, const char* pname, JsonObject sObj) sObj.remove(F("psave")); if (sObj["n"].isNull()) sObj["n"] = saveName; initPresetsFile(); // just in case if someone deleted presets.json using /edit - writeObjectToFileUsingId(getFileName(index), index, fileDoc); + writeObjectToFileUsingId(getFileName(index<255), index, fileDoc); presetsModifiedTime = toki.second(); //unix time updateFSInfo(); } else { // store playlist + // WARNING: playlist will be loaded in json.cpp after this call and will have repeat counter increased by 1 includeBri = true; // !sObj["on"].isNull(); playlistSave = true; } diff --git a/wled00/set.cpp b/wled00/set.cpp index fa433fae..1b5272fb 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -83,7 +83,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) cctFromRgb = request->hasArg(F("CR")); strip.cctBlending = request->arg(F("CB")).toInt(); Bus::setCCTBlend(strip.cctBlending); - Bus::setAutoWhiteMode(request->arg(F("AW")).toInt()); + Bus::setGlobalAWMode(request->arg(F("AW")).toInt()); strip.setTargetFps(request->arg(F("FR")).toInt()); strip.useLedsArray = request->hasArg(F("LD")); @@ -208,11 +208,21 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (t <= 250) bootPreset = t; gammaCorrectBri = request->hasArg(F("GB")); gammaCorrectCol = request->hasArg(F("GC")); + gammaCorrectVal = request->arg(F("GV")).toFloat(); + if (gammaCorrectVal > 1.0f && gammaCorrectVal <= 3) + calcGammaTable(gammaCorrectVal); + else { + gammaCorrectVal = 1.0f; // no gamma correction + gammaCorrectBri = false; + gammaCorrectCol = false; + } fadeTransition = request->hasArg(F("TF")); t = request->arg(F("TD")).toInt(); if (t >= 0) transitionDelayDefault = t; strip.paletteFade = request->hasArg(F("PF")); + t = request->arg(F("TP")).toInt(); + randomPaletteChangeTime = MIN(255,MAX(1,t)); nightlightTargetBri = request->arg(F("TB")).toInt(); t = request->arg(F("TL")).toInt(); @@ -240,6 +250,10 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) } simplifiedUI = request->hasArg(F("SU")); #endif + DEBUG_PRINTLN(F("Enumerating ledmaps")); + enumerateLedmaps(); + DEBUG_PRINTLN(F("Loading custom palettes")); + strip.loadCustomPalettes(); // (re)load all custom palettes } //SYNC @@ -286,6 +300,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (t >= 0 && t <= 510) DMXAddress = t; t = request->arg(F("XX")).toInt(); if (t >= 0 && t <= 150) DMXSegmentSpacing = t; + t = request->arg(F("PY")).toInt(); + if (t >= 0 && t <= 200) e131Priority = t; t = request->arg(F("DM")).toInt(); if (t >= DMX_MODE_DISABLED && t <= DMX_MODE_PRESET) DMXMode = t; t = request->arg(F("ET")).toInt(); @@ -300,16 +316,6 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) t = request->arg(F("AP")).toInt(); if (t >= 0 && t <= 9) alexaNumPresets = t; - #ifndef WLED_DISABLE_BLYNK - strlcpy(blynkHost, request->arg("BH").c_str(), 33); - t = request->arg(F("BP")).toInt(); - if (t > 0) blynkPort = t; - - if (request->hasArg("BK") && !request->arg("BK").equals(F("Hidden"))) { - strlcpy(blynkApiKey, request->arg("BK").c_str(), 36); initBlynk(blynkApiKey, blynkHost, blynkPort); - } - #endif - #ifdef WLED_ENABLE_MQTT mqttEnabled = request->hasArg(F("MQ")); strlcpy(mqttServer, request->arg(F("MS")).c_str(), 33); @@ -409,15 +415,15 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) k[0] = 'W'; //weekdays timerWeekday[i] = request->arg(k).toInt(); if (i<8) { - k[0] = 'M'; //start month - timerMonth[i] = request->arg(k).toInt() & 0x0F; - timerMonth[i] <<= 4; - k[0] = 'P'; //end month - timerMonth[i] += (request->arg(k).toInt() & 0x0F); - k[0] = 'D'; //start day - timerDay[i] = request->arg(k).toInt(); - k[0] = 'E'; //end day - timerDayEnd[i] = request->arg(k).toInt(); + k[0] = 'M'; //start month + timerMonth[i] = request->arg(k).toInt() & 0x0F; + timerMonth[i] <<= 4; + k[0] = 'P'; //end month + timerMonth[i] += (request->arg(k).toInt() & 0x0F); + k[0] = 'D'; //start day + timerDay[i] = request->arg(k).toInt(); + k[0] = 'E'; //end day + timerDayEnd[i] = request->arg(k).toInt(); } } } @@ -645,15 +651,9 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (subPage == 10) { strip.isMatrix = request->arg(F("SOMP")).toInt(); - // strip.panelH = MAX(1,MIN(128,request->arg(F("PH")).toInt())); - // strip.panelW = MAX(1,MIN(128,request->arg(F("PW")).toInt())); strip.panel.clear(); // release memory if allocated if (strip.isMatrix) { strip.panels = MAX(1,MIN(WLED_MAX_PANELS,request->arg(F("MPC")).toInt())); - strip.matrix.bottomStart = request->arg(F("PB")).toInt(); - strip.matrix.rightStart = request->arg(F("PR")).toInt(); - strip.matrix.vertical = request->arg(F("PV")).toInt(); - strip.matrix.serpentine = request->hasArg(F("PS")); strip.panel.reserve(strip.panels); // pre-allocate memory for (uint8_t i=0; iarg(pO).toInt(); strip.panel.push_back(p); } + strip.setUpMatrix(); // will check limits + strip.makeAutoSegments(true); + strip.deserializeMap(); } else { Segment::maxWidth = strip.getLengthTotal(); Segment::maxHeight = 1; } - strip.setUpMatrix(); // will check limits } #endif @@ -800,7 +802,7 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply) //apply preset if (updateVal(req.c_str(), "PL=", &presetCycCurr, presetCycMin, presetCycMax)) { - unloadPlaylist(); + unloadPlaylist(); applyPreset(presetCycCurr); } diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkApi.h b/wled00/src/dependencies/blynk/Blynk/BlynkApi.h deleted file mode 100644 index cd1543cc..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkApi.h +++ /dev/null @@ -1,321 +0,0 @@ -/** - * @file BlynkApi.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief High-level functions - * - */ - -#ifndef BlynkApi_h -#define BlynkApi_h - -#include "BlynkConfig.h" -#include "BlynkDebug.h" -#include "BlynkParam.h" -#include "BlynkTimer.h" -#include "BlynkHandlers.h" -#include "BlynkProtocolDefs.h" - -#if defined(BLYNK_EXPERIMENTAL) - #include -#endif - -/** - * Represents high-level functions of Blynk - */ -template -class BlynkApi -{ -public: - BlynkApi() { - } - -#ifdef DOXYGEN // These API here are only for the documentation - - /** - * Connects to the server. - * Blocks until connected or timeout happens. - * May take less or more then timeout value. - * - * @param timeout Connection timeout - * @returns True if connected to the server - */ - bool connect(unsigned long timeout = BLYNK_TIMEOUT_MS*3); - - /** - * Disconnects from the server. - * It will not try to reconnect, until connect() is called - */ - void disconnect(); - - /** - * @returns True if connected to the server - */ - bool connected(); - - /** - * Performs Blynk-related housekeeping - * and processes incoming commands - * - * @param available True if there is incoming data to process - * Only used when user manages connection manually. - */ - bool run(bool available = false); - -#endif // DOXYGEN - - /** - * Sends value to a Virtual Pin - * - * @param pin Virtual Pin number - * @param data Value to be sent - */ - template - void virtualWrite(int pin, Args... values) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add("vw"); - cmd.add(pin); - cmd.add_multi(values...); - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sends buffer to a Virtual Pin - * - * @param pin Virtual Pin number - * @param buff Data buffer - * @param len Length of data - */ - void virtualWriteBinary(int pin, const void* buff, size_t len) { - char mem[8]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add("vw"); - cmd.add(pin); - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength(), buff, len); - } - - /** - * Sends BlynkParam to a Virtual Pin - * - * @param pin Virtual Pin number - * @param param - */ - void virtualWrite(int pin, const BlynkParam& param) { - virtualWriteBinary(pin, param.getBuffer(), param.getLength()); - } - - void virtualWrite(int pin, const BlynkParamAllocated& param) { - virtualWriteBinary(pin, param.getBuffer(), param.getLength()); - } - - /** - * Requests Server to re-send current values for all widgets. - */ - void syncAll() { - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE_SYNC); - } - - /** - * Sends internal command - */ - template - void sendInternal(Args... params) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add_multi(params...); - static_cast(this)->sendCmd(BLYNK_CMD_INTERNAL, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Requests App or Server to re-send current value of a Virtual Pin. - * This will probably cause user-defined BLYNK_WRITE handler to be called. - * - * @param pin Virtual Pin number - */ - template - void syncVirtual(Args... pins) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add("vr"); - cmd.add_multi(pins...); - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE_SYNC, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Tweets a message - * - * @param msg Text of the message - */ - template - void tweet(const T& msg) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(msg); - static_cast(this)->sendCmd(BLYNK_CMD_TWEET, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sends a push notification to the App - * - * @param msg Text of the message - */ - template - void notify(const T& msg) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(msg); - static_cast(this)->sendCmd(BLYNK_CMD_NOTIFY, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sends an SMS - * - * @param msg Text of the message - */ - template - void sms(const T& msg) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(msg); - static_cast(this)->sendCmd(BLYNK_CMD_SMS, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sends an email message - * - * @param email Email to send to - * @param subject Subject of message - * @param msg Text of the message - */ - template - void email(const char* email, const T1& subject, const T2& msg) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(email); - cmd.add(subject); - cmd.add(msg); - static_cast(this)->sendCmd(BLYNK_CMD_EMAIL, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sends an email message - * - * @param subject Subject of message - * @param msg Text of the message - */ - template - void email(const T1& subject, const T2& msg) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(subject); - cmd.add(msg); - static_cast(this)->sendCmd(BLYNK_CMD_EMAIL, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - /** - * Sets property of a Widget - * - * @experimental - * - * @param pin Virtual Pin number - * @param property Property name ("label", "labels", "color", ...) - * @param value Property value - */ - template - void setProperty(int pin, const T& property, Args... values) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(pin); - cmd.add(property); - cmd.add_multi(values...); - static_cast(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength()-1); - } - - template - void setProperty(int pin, const T& property, const BlynkParam& param) { - char mem[32]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(pin); - cmd.add(property); - static_cast(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength(), param.getBuffer(), param.getLength()); - } - - template - void setProperty(int pin, const T& property, const BlynkParamAllocated& param) { - char mem[32]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(pin); - cmd.add(property); - static_cast(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength(), param.getBuffer(), param.getLength()); - } - - template - void logEvent(const NAME& event_name) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(event_name); - static_cast(this)->sendCmd(BLYNK_CMD_EVENT_LOG, 0, cmd.getBuffer(), cmd.getLength()); - } - - template - void logEvent(const NAME& event_name, const DESCR& description) { - char mem[BLYNK_MAX_SENDBYTES]; - BlynkParam cmd(mem, 0, sizeof(mem)); - cmd.add(event_name); - cmd.add(description); - static_cast(this)->sendCmd(BLYNK_CMD_EVENT_LOG, 0, cmd.getBuffer(), cmd.getLength()); - } - -#if defined(BLYNK_EXPERIMENTAL) - // Attention! - // Every function in this section may be changed, removed or renamed. - - /** - * Refreshes value of a widget by running - * user-defined BLYNK_READ handler of a pin. - * - * @experimental - * - * @param pin Virtual Pin number - */ - void refresh(int pin) { - if (WidgetReadHandler handler = GetReadHandler(pin)) { - BlynkReq req = { 0, BLYNK_SUCCESS, (uint8_t)pin }; - handler(req); - } - } - - /** - * Delays for N milliseconds, handling server communication in background. - * - * @experimental - * @warning Should be used very carefully, especially on platforms with small RAM. - * - * @param ms Milliseconds to wait - */ - void delay(unsigned long ms) { - uint16_t start = (uint16_t)micros(); - while (ms > 0) { - static_cast(this)->run(); -#if !defined(BLYNK_NO_YIELD) - yield(); -#endif - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } - } - -#endif - -protected: - void processCmd(const void* buff, size_t len); - void sendInfo(); -}; - - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkApiArduino.h b/wled00/src/dependencies/blynk/Blynk/BlynkApiArduino.h deleted file mode 100644 index 4c4b0ace..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkApiArduino.h +++ /dev/null @@ -1,199 +0,0 @@ -/** - * @file BlynkApiArduino.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Mar 2015 - * @brief - * - */ - -#ifndef BlynkApiArduino_h -#define BlynkApiArduino_h - -#include "BlynkApi.h" -#include - -#ifdef BLYNK_NO_INFO - -template -BLYNK_FORCE_INLINE -void BlynkApi::sendInfo() {} - -#else - -template -BLYNK_FORCE_INLINE -void BlynkApi::sendInfo() -{ - static const char profile[] BLYNK_PROGMEM = "blnkinf\0" -#ifdef BOARD_FIRMWARE_VERSION - BLYNK_PARAM_KV("ver" , BOARD_FIRMWARE_VERSION) - BLYNK_PARAM_KV("blynk" , BLYNK_VERSION) -#else - BLYNK_PARAM_KV("ver" , BLYNK_VERSION) -#endif -#ifdef BOARD_TEMPLATE_ID - BLYNK_PARAM_KV("tmpl" , BOARD_TEMPLATE_ID) -#endif - BLYNK_PARAM_KV("h-beat" , BLYNK_TOSTRING(BLYNK_HEARTBEAT)) - BLYNK_PARAM_KV("buff-in", BLYNK_TOSTRING(BLYNK_MAX_READBYTES)) -#ifdef BLYNK_INFO_DEVICE - BLYNK_PARAM_KV("dev" , BLYNK_INFO_DEVICE) -#endif -#ifdef BLYNK_INFO_CPU - BLYNK_PARAM_KV("cpu" , BLYNK_INFO_CPU) -#endif -#ifdef BLYNK_INFO_CONNECTION - BLYNK_PARAM_KV("con" , BLYNK_INFO_CONNECTION) -#endif - BLYNK_PARAM_KV("build" , __DATE__ " " __TIME__) - "\0" - ; - const size_t profile_len = sizeof(profile)-8-2; - -#ifdef BLYNK_HAS_PROGMEM - char mem[profile_len]; - memcpy_P(mem, profile+8, profile_len); - static_cast(this)->sendCmd(BLYNK_CMD_INTERNAL, 0, mem, profile_len); -#else - static_cast(this)->sendCmd(BLYNK_CMD_INTERNAL, 0, profile+8, profile_len); -#endif - return; -} - -#endif - - -// Check if analog pins can be referenced by name on this device -#if defined(analogInputToDigitalPin) - #define BLYNK_DECODE_PIN(it) (((it).asStr()[0] == 'A') ? analogInputToDigitalPin(atoi((it).asStr()+1)) : (it).asInt()) -#else - #define BLYNK_DECODE_PIN(it) ((it).asInt()) - - #if defined(BLYNK_DEBUG_ALL) - #pragma message "analogInputToDigitalPin not defined" - #endif -#endif - -template -BLYNK_FORCE_INLINE -void BlynkApi::processCmd(const void* buff, size_t len) -{ - BlynkParam param((void*)buff, len); - BlynkParam::iterator it = param.begin(); - if (it >= param.end()) - return; - const char* cmd = it.asStr(); - uint16_t cmd16; - memcpy(&cmd16, cmd, sizeof(cmd16)); - if (++it >= param.end()) - return; - - uint8_t pin = BLYNK_DECODE_PIN(it); - - switch(cmd16) { - -#ifndef BLYNK_NO_BUILTIN - - case BLYNK_HW_PM: { - while (it < param.end()) { - pin = BLYNK_DECODE_PIN(it); - ++it; - if (!strcmp(it.asStr(), "in")) { - pinMode(pin, INPUT); - } else if (!strcmp(it.asStr(), "out") || !strcmp(it.asStr(), "pwm")) { - pinMode(pin, OUTPUT); -#ifdef INPUT_PULLUP - } else if (!strcmp(it.asStr(), "pu")) { - pinMode(pin, INPUT_PULLUP); -#endif -#ifdef INPUT_PULLDOWN - } else if (!strcmp(it.asStr(), "pd")) { - pinMode(pin, INPUT_PULLDOWN); -#endif - } else { -#ifdef BLYNK_DEBUG - BLYNK_LOG4(BLYNK_F("Invalid pin "), pin, BLYNK_F(" mode "), it.asStr()); -#endif - } - ++it; - } - } break; - case BLYNK_HW_DR: { - char mem[16]; - BlynkParam rsp(mem, 0, sizeof(mem)); - rsp.add("dw"); - rsp.add(pin); - rsp.add(digitalRead(pin)); - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE, 0, rsp.getBuffer(), rsp.getLength()-1); - } break; - case BLYNK_HW_DW: { - // Should be 1 parameter (value) - if (++it >= param.end()) - return; - -#ifdef ESP8266 - // Disable PWM... - analogWrite(pin, 0); -#endif -#ifndef BLYNK_MINIMIZE_PINMODE_USAGE - pinMode(pin, OUTPUT); -#endif - digitalWrite(pin, it.asInt() ? HIGH : LOW); - } break; - case BLYNK_HW_AR: { - char mem[16]; - BlynkParam rsp(mem, 0, sizeof(mem)); - rsp.add("aw"); - rsp.add(pin); - rsp.add(analogRead(pin)); - static_cast(this)->sendCmd(BLYNK_CMD_HARDWARE, 0, rsp.getBuffer(), rsp.getLength()-1); - } break; - -// TODO: Remove workaround for ESP32 -#if !defined(ESP32) - - case BLYNK_HW_AW: { - // Should be 1 parameter (value) - if (++it >= param.end()) - return; - -#ifndef BLYNK_MINIMIZE_PINMODE_USAGE - pinMode(pin, OUTPUT); -#endif - analogWrite(pin, it.asInt()); - } break; - -#endif // TODO: Remove workaround for ESP32 - -#endif - - case BLYNK_HW_VR: { - BlynkReq req = { pin }; - WidgetReadHandler handler = GetReadHandler(pin); - if (handler && (handler != BlynkWidgetRead)) { - handler(req); - } else { - BlynkWidgetReadDefault(req); - } - } break; - case BLYNK_HW_VW: { - ++it; - char* start = (char*)it.asStr(); - BlynkParam param2(start, len - (start - (char*)buff)); - BlynkReq req = { pin }; - WidgetWriteHandler handler = GetWriteHandler(pin); - if (handler && (handler != BlynkWidgetWrite)) { - handler(req, param2); - } else { - BlynkWidgetWriteDefault(req, param2); - } - } break; - default: - BLYNK_LOG2(BLYNK_F("Invalid HW cmd: "), cmd); - static_cast(this)->sendCmd(BLYNK_CMD_RESPONSE, static_cast(this)->msgIdOutOverride, NULL, BLYNK_ILLEGAL_COMMAND); - } -} - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkArduinoClient.h b/wled00/src/dependencies/blynk/Blynk/BlynkArduinoClient.h deleted file mode 100644 index cd7ae079..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkArduinoClient.h +++ /dev/null @@ -1,128 +0,0 @@ -/** - * @file BlynkParam.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief - * - */ - -#ifndef BlynkArduinoClient_h -#define BlynkArduinoClient_h - -#include "BlynkApiArduino.h" -#include "BlynkDebug.h" -#include - -#if defined(ESP8266) && !defined(BLYNK_NO_YIELD) - #define YIELD_FIX() BLYNK_RUN_YIELD(); -#else - #define YIELD_FIX() -#endif - -template -class BlynkArduinoClientGen -{ -public: - BlynkArduinoClientGen(Client& c) - : client(NULL), domain(NULL), port(0), isConn(false) - { - setClient(&c); - } - - BlynkArduinoClientGen() - : client(NULL), domain(NULL), port(0), isConn(false) - {} - - void setClient(Client* c) { - client = c; - client->setTimeout(BLYNK_TIMEOUT_MS); - } - - void begin(IPAddress a, uint16_t p) { - domain = NULL; - port = p; - addr = a; - } - - void begin(const char* d, uint16_t p) { - domain = d; - port = p; - } - - bool connect() { - if (domain) { - BLYNK_LOG4(BLYNK_F("Connecting to "), domain, ':', port); - - isConn = (1 == client->connect(domain, port)); - return isConn; - } else { //if (uint32_t(addr) != 0) { - BLYNK_LOG_IP("Connecting to ", addr); - isConn = (1 == client->connect(addr, port)); - return isConn; - } - return false; - } - - void disconnect() { isConn = false; client->stop(); } - -#ifdef BLYNK_ENC28J60_FIX - size_t read(void* buf, size_t len) { - while (client->available() < len) { BLYNK_RUN_YIELD(); } - return client->read((uint8_t*)buf, len); - } -#else - size_t read(void* buf, size_t len) { - size_t res = client->readBytes((char*)buf, len); - YIELD_FIX(); - return res; - } -#endif - -#ifdef BLYNK_RETRY_SEND - size_t write(const void* buf, size_t len) { - size_t sent = 0; - int retry = 0; - while (sent < len && ++retry < 10) { - size_t w = client->write((const uint8_t*)buf+sent, len-sent); - if (w != 0 && w != -1) { - sent += w; - } else { - BlynkDelay(50); -#if defined(BLYNK_DEBUG) && defined(BLYNK_PRINT) - BLYNK_PRINT_TIME(); - BLYNK_PRINT.print(BLYNK_F("Retry ")); - BLYNK_PRINT.print(retry); - BLYNK_PRINT.print(BLYNK_F(" send: ")); - BLYNK_PRINT.print(sent); - BLYNK_PRINT.print('/'); - BLYNK_PRINT.println(len); -#endif - } - } - return sent; - } -#else - size_t write(const void* buf, size_t len) { - YIELD_FIX(); - size_t res = client->write((const uint8_t*)buf, len); - YIELD_FIX(); - return res; - } -#endif - - bool connected() { YIELD_FIX(); return isConn && client->connected(); } - int available() { YIELD_FIX(); return client->available(); } - -protected: - Client* client; - IPAddress addr; - const char* domain; - uint16_t port; - bool isConn; -}; - -typedef BlynkArduinoClientGen BlynkArduinoClient; - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkConfig.h b/wled00/src/dependencies/blynk/Blynk/BlynkConfig.h deleted file mode 100644 index cdd930a3..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkConfig.h +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @file BlynkConfig.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Configuration of different aspects of library - * - */ - -#ifndef BlynkConfig_h -#define BlynkConfig_h - -#include "BlynkDetectDevice.h" - -/*************************************************** - * Change these settings to match your need - ***************************************************/ - -#define BLYNK_DEFAULT_DOMAIN "blynk-cloud.com" -#define BLYNK_DEFAULT_PORT 80 -#define BLYNK_DEFAULT_PORT_SSL 8441 - -/*************************************************** - * Professional settings - ***************************************************/ -// Library version. -#define BLYNK_VERSION "0.5.3" - -// Heartbeat period in seconds. -#ifndef BLYNK_HEARTBEAT -#define BLYNK_HEARTBEAT 10 -#endif - -// Network timeout in milliseconds. -#ifndef BLYNK_TIMEOUT_MS -#define BLYNK_TIMEOUT_MS 2000UL -#endif - -// Limit the amount of outgoing commands per second. -#ifndef BLYNK_MSG_LIMIT -#define BLYNK_MSG_LIMIT 15 -#endif - -// Limit the incoming command length. -#ifndef BLYNK_MAX_READBYTES -#define BLYNK_MAX_READBYTES 256 -#endif - -// Limit the outgoing command length. -#ifndef BLYNK_MAX_SENDBYTES -#define BLYNK_MAX_SENDBYTES 128 -#endif - -// Uncomment to use Let's Encrypt Root CA -//#define BLYNK_SSL_USE_LETSENCRYPT - -// Uncomment to disable built-in analog and digital operations. -//#define BLYNK_NO_BUILTIN - -// Uncomment to disable providing info about device to the server. -//#define BLYNK_NO_INFO - -// Uncomment to enable debug prints. -//#define BLYNK_DEBUG - -// Uncomment to force-enable 128 virtual pins -//#define BLYNK_USE_128_VPINS - -// Uncomment to disable fancy logo -//#define BLYNK_NO_FANCY_LOGO - -// Uncomment to enable 3D fancy logo -//#define BLYNK_FANCY_LOGO_3D - -// Uncomment to enable experimental functions. -//#define BLYNK_EXPERIMENTAL - -// Uncomment to disable all float/double usage -//#define BLYNK_NO_FLOAT - -// Uncomment to switch to direct-connect mode -//#define BLYNK_USE_DIRECT_CONNECT - - -// Uncomment to append command body to header (uses more RAM) -//#define BLYNK_SEND_ATOMIC - -// Split whole command into chunks (in bytes) -//#define BLYNK_SEND_CHUNK 64 - -// Wait after sending each chunk (in milliseconds) -//#define BLYNK_SEND_THROTTLE 10 - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkDateTime.h b/wled00/src/dependencies/blynk/Blynk/BlynkDateTime.h deleted file mode 100644 index 8e5ef664..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkDateTime.h +++ /dev/null @@ -1,173 +0,0 @@ -/** - * @file BlynkDateTime.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2016 Volodymyr Shymanskyy - * @date Aug 2016 - * @brief DateTime implementation - * - */ - -#ifndef BlynkDateTime_h -#define BlynkDateTime_h - -typedef long blynk_time_t; - -struct blynk_tm *blynk_gmtime_r(const blynk_time_t *time, struct blynk_tm *tm); -blynk_time_t blynk_mk_gmtime(struct blynk_tm *tm); - -struct blynk_tm { - int8_t tm_sec; - int8_t tm_min; - int8_t tm_hour; - int8_t tm_mday; - int8_t tm_wday; - int8_t tm_mon; - int16_t tm_year; - int16_t tm_yday; - int16_t tm_isdst; -}; - -class BlynkTime { - -public: - static const uint32_t MAX_TIME = 86400L; - - BlynkTime() : mTime(-1) {} - - BlynkTime(const BlynkTime& t) : mTime(t.mTime) {} - - BlynkTime(long seconds) : mTime(seconds % MAX_TIME) {} - - BlynkTime(int hour, int minute, int second) - { - mTime = (hour * 3600 + minute * 60 + second) % MAX_TIME; - } - - int second() const { return mTime % 60; } - int minute() const { return (mTime / 60) % 60; } - int hour() const { return mTime / 3600; } - - int hour12() const { - int h = hour(); - if (h == 0) - return 12; // 12 midnight - else if (h > 12) - return h - 12; - return h; - } - - bool isAM() const { return !isPM(); } - bool isPM() const { return (hour() >= 12); } - - void adjustSeconds(int sec) { - if (isValid()) { - mTime = (mTime + sec) % MAX_TIME; - } - } - - blynk_time_t getUnixOffset() const { return mTime; } - - bool isValid() const { return mTime < MAX_TIME; } - operator bool() const { return isValid(); } - - bool operator == (const BlynkTime& t) const { return mTime == t.mTime; } - bool operator >= (const BlynkTime& t) const { return mTime >= t.mTime; } - bool operator <= (const BlynkTime& t) const { return mTime <= t.mTime; } - bool operator > (const BlynkTime& t) const { return mTime > t.mTime; } - bool operator < (const BlynkTime& t) const { return mTime < t.mTime; } - -private: - uint32_t mTime; -}; - -class BlynkDateTime { - -public: - BlynkDateTime() : mTime(0) {} - - BlynkDateTime(const BlynkDateTime& t) - { - mTime = t.mTime; - blynk_gmtime_r(&mTime, &mTm); - } - - BlynkDateTime(blynk_time_t t) - { - mTime = t; - blynk_gmtime_r(&mTime, &mTm); - } - - BlynkDateTime(int hour, int minute, int second, int day, int month, int year) - { - mTm.tm_hour = hour; - mTm.tm_min = minute; - mTm.tm_sec = second; - - mTm.tm_mday = day; - mTm.tm_mon = month - 1; - mTm.tm_year = year - 1900; - - mTm.tm_isdst = 0; - - mTime = blynk_mk_gmtime(&mTm); - } - - int second() const { return mTm.tm_sec; } - int minute() const { return mTm.tm_min; } - int hour() const { return mTm.tm_hour; } - int day() const { return mTm.tm_mday; } - int month() const { return 1 + mTm.tm_mon; } - int year() const { return 1900 + mTm.tm_year; } - - int day_of_year() const { return 1 + mTm.tm_yday; } - int day_of_week() const { return mTm.tm_wday == 0 ? 7 : mTm.tm_wday; } - - /*int weak_of_year() const { - int julian = day_of_year(); - int dow = day_of_week(); - int dowJan1 = BlynkDateTime(0,0,0, 1,1,year()).day_of_week(); - int weekNum = ((julian + 6) / 7); - if (dow < dowJan1) - ++weekNum; - return (weekNum); - }*/ - - int hour12() const { - int h = hour(); - if (h == 0) - return 12; // 12 midnight - else if (h > 12) - return h - 12; - return h; - } - - bool isAM() const { return !isPM(); } - bool isPM() const { return (hour() >= 12); } - - void adjustSeconds(int sec) { - if (isValid()) { - mTime += sec; - blynk_gmtime_r(&mTime, &mTm); - } - } - - //tm& getTm() { return mTm; } - blynk_time_t getUnix() const { return mTime; } - - bool isValid() const { return mTime != 0; } - operator bool() const { return isValid(); } - - bool operator == (const BlynkDateTime& t) const { return mTime == t.mTime; } - bool operator >= (const BlynkDateTime& t) const { return mTime >= t.mTime; } - bool operator <= (const BlynkDateTime& t) const { return mTime <= t.mTime; } - bool operator > (const BlynkDateTime& t) const { return mTime > t.mTime; } - bool operator < (const BlynkDateTime& t) const { return mTime < t.mTime; } - -private: - blynk_tm mTm; - blynk_time_t mTime; -}; - - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkDebug.cpp b/wled00/src/dependencies/blynk/Blynk/BlynkDebug.cpp deleted file mode 100644 index 17a379a3..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkDebug.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/** - * @file BlynkDebug.cpp - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Debug utilities for Arduino - */ -#include "BlynkDebug.h" - -#if defined(ARDUINO) && defined(__AVR__) && defined(BLYNK_USE_AVR_WDT) - - #include - #include - - BLYNK_CONSTRUCTOR - static void BlynkSystemInit() - { - MCUSR = 0; - wdt_disable(); - } - - void BlynkReset() - { - wdt_enable(WDTO_15MS); - delay(50); - void(*resetFunc)(void) = 0; - resetFunc(); - for(;;) {} // To make compiler happy - } - - size_t BlynkFreeRam() - { - extern int __heap_start, *__brkval; - int v; - return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); - } - - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(ARDUINO) && defined(__AVR__) - - #include - - void BlynkReset() - { - void(*resetFunc)(void) = 0; - resetFunc(); - for(;;) {} - } - - size_t BlynkFreeRam() - { - extern int __heap_start, *__brkval; - int v; - return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); - } - - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(ARDUINO) && defined(ESP8266) - - #include - - size_t BlynkFreeRam() - { - return ESP.getFreeHeap(); - } - - void BlynkReset() - { - ESP.restart(); - for(;;) {} - } - - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_SAM) - - #include - - size_t BlynkFreeRam() - { - return 0; - } - - void BlynkReset() - { - NVIC_SystemReset(); - for(;;) {} - } - - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined (ARDUINO_ARCH_ARC32) - - millis_time_t BlynkMillis() - { - // TODO: Remove workaround for Intel Curie - // https://forum.arduino.cc/index.php?topic=391836.0 - noInterrupts(); - uint64_t t = millis(); - interrupts(); - return t; - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_RESET - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(ARDUINO) && (defined(__STM32F1__) || defined(__STM32F3__)) - - #include - #include - - void BlynkReset() - { - nvic_sys_reset(); - for(;;) {} - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined (PARTICLE) || defined(SPARK) - - #include "application.h" - - void BlynkReset() - { - System.reset(); - for(;;) {} // To make compiler happy - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(__MBED__) - - #include "mbed.h" - - static Timer blynk_millis_timer; - static Ticker blynk_waker; - - static - void blynk_wake() { - //pc.puts("(...)"); - } - - BLYNK_CONSTRUCTOR - static void BlynkSystemInit() - { - blynk_waker.attach(&blynk_wake, 2.0); - blynk_millis_timer.start(); - } - - void BlynkDelay(millis_time_t ms) - { - wait_ms(ms); - } - - millis_time_t BlynkMillis() - { - return blynk_millis_timer.read_ms(); - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_RESET - -#elif defined(LINUX) && defined(RASPBERRY) - - #include - #include - - BLYNK_CONSTRUCTOR - static void BlynkSystemInit() - { - wiringPiSetupGpio(); - } - - void BlynkReset() - { - exit(1); - for(;;) {} // To make compiler happy - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#elif defined(LINUX) - - #define _POSIX_C_SOURCE 200809L - #include - #include - #include - - static millis_time_t blynk_startup_time = 0; - - BLYNK_CONSTRUCTOR - static void BlynkSystemInit() - { - blynk_startup_time = BlynkMillis(); - } - - void BlynkReset() - { - exit(1); - for(;;) {} // To make compiler happy - } - - void BlynkDelay(millis_time_t ms) - { - usleep(ms * 1000); - } - - millis_time_t BlynkMillis() - { - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts ); - return ( ts.tv_sec * 1000 + ts.tv_nsec / 1000000L ) - blynk_startup_time; - } - - #define _BLYNK_USE_DEFAULT_FREE_RAM - -#else - - #if defined(BLYNK_DEBUG_ALL) - #warning "Need to implement board-specific utilities" - #endif - - #define _BLYNK_USE_DEFAULT_FREE_RAM - #define _BLYNK_USE_DEFAULT_RESET - #define _BLYNK_USE_DEFAULT_MILLIS - #define _BLYNK_USE_DEFAULT_DELAY - -#endif - -#ifdef _BLYNK_USE_DEFAULT_DELAY - void BlynkDelay(millis_time_t ms) - { - return delay(ms); - } -#endif - -#ifdef _BLYNK_USE_DEFAULT_MILLIS - millis_time_t BlynkMillis() - { - return millis(); - } -#endif - -#ifdef _BLYNK_USE_DEFAULT_FREE_RAM - size_t BlynkFreeRam() - { - return 0; - } -#endif - -#ifdef _BLYNK_USE_DEFAULT_RESET - void BlynkReset() - { - for(;;) {} // To make compiler happy - } -#endif - -void BlynkFatal() -{ - BlynkDelay(10000L); - BlynkReset(); -} - diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkDebug.h b/wled00/src/dependencies/blynk/Blynk/BlynkDebug.h deleted file mode 100644 index bc092330..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkDebug.h +++ /dev/null @@ -1,305 +0,0 @@ -/** - * @file BlynkDebug.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Debug utilities - * - */ - -#ifndef BlynkDebug_h -#define BlynkDebug_h - -#include "BlynkConfig.h" - -#include -#ifdef ESP8266 - extern "C" { - #include "ets_sys.h" - #include "os_type.h" - #include "mem.h" - } -#else - #include -#endif - -#if defined(ARDUINO_ARCH_ARC32) - typedef uint64_t millis_time_t; -#else - typedef uint32_t millis_time_t; -#endif - -void BlynkDelay(millis_time_t ms); -millis_time_t BlynkMillis(); -size_t BlynkFreeRam(); -void BlynkReset() BLYNK_NORETURN; -void BlynkFatal() BLYNK_NORETURN; - - -#if defined(SPARK) || defined(PARTICLE) - #include "application.h" -#endif - -#if defined(ARDUINO) - #if ARDUINO >= 100 - #include - #else - #include - #endif -#endif - -#if defined(LINUX) - #if defined(RASPBERRY) - #include - #endif -#endif - -#if !defined(BLYNK_RUN_YIELD) - #if defined(BLYNK_NO_YIELD) - #define BLYNK_RUN_YIELD() {} - #elif defined(SPARK) || defined(PARTICLE) - #define BLYNK_RUN_YIELD() { Particle.process(); } - #elif !defined(ARDUINO) || (ARDUINO < 151) - #define BLYNK_RUN_YIELD() {} - #else - #define BLYNK_RUN_YIELD() { BlynkDelay(0); } - #endif -#endif - -#if defined(__AVR__) - #include - #define BLYNK_HAS_PROGMEM - #define BLYNK_PROGMEM PROGMEM - #define BLYNK_F(s) F(s) - #define BLYNK_PSTR(s) PSTR(s) -#else - #define BLYNK_PROGMEM - #define BLYNK_F(s) s - #define BLYNK_PSTR(s) s -#endif - -#ifdef ARDUINO_AVR_DIGISPARK - typedef fstr_t __FlashStringHelper; -#endif - -#if defined(BLYNK_DEBUG_ALL) && !(__cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)) - #warning "Compiler features not enabled -> please contact yor board vendor to enable c++0x" -#endif - -// Diagnostic defines - -#define BLYNK_FATAL(msg) { BLYNK_LOG1(msg); BlynkFatal(); } -#define BLYNK_LOG_RAM() { BLYNK_LOG2(BLYNK_F("Free RAM: "), BlynkFreeRam()); } -#define BLYNK_LOG_FN() BLYNK_LOG3(BLYNK_F(__FUNCTION__), '@', __LINE__); -#define BLYNK_LOG_TROUBLE(t) BLYNK_LOG2(BLYNK_F("Trouble detected: http://docs.blynk.cc/#troubleshooting-"), t) - -#ifndef BLYNK_PRINT -#undef BLYNK_DEBUG -#endif - -#ifdef BLYNK_DEBUG_ALL -#define BLYNK_DEBUG -#endif - -#ifdef BLYNK_PRINT - - #if defined(ARDUINO) || defined(SPARK) || defined(PARTICLE) - -#if defined(ARDUINO_ARCH_ARC32) - // This will cause error - on purpose - #define BLYNK_LOG(msg, ...) BLYNK_LOG_UNAVAILABLE(msg, ##__VA_ARGS__) -#else - #define BLYNK_LOG(msg, ...) blynk_dbg_print(BLYNK_PSTR(msg), ##__VA_ARGS__) -#endif - - #define BLYNK_LOG1(p1) { BLYNK_LOG_TIME(); BLYNK_PRINT.println(p1); } - #define BLYNK_LOG2(p1,p2) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(p1); BLYNK_PRINT.println(p2); } - #define BLYNK_LOG3(p1,p2,p3) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(p1); BLYNK_PRINT.print(p2); BLYNK_PRINT.println(p3); } - #define BLYNK_LOG4(p1,p2,p3,p4) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(p1); BLYNK_PRINT.print(p2); BLYNK_PRINT.print(p3); BLYNK_PRINT.println(p4); } - #define BLYNK_LOG6(p1,p2,p3,p4,p5,p6) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(p1); BLYNK_PRINT.print(p2); BLYNK_PRINT.print(p3); BLYNK_PRINT.print(p4); BLYNK_PRINT.print(p5); BLYNK_PRINT.println(p6); } - #define BLYNK_LOG_IP(msg, ip) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(BLYNK_F(msg)); \ - BLYNK_PRINT.print(ip[0]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.print(ip[1]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.print(ip[2]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.println(ip[3]); } - #define BLYNK_LOG_IP_REV(msg, ip) { BLYNK_LOG_TIME(); BLYNK_PRINT.print(BLYNK_F(msg)); \ - BLYNK_PRINT.print(ip[3]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.print(ip[2]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.print(ip[1]); BLYNK_PRINT.print('.'); \ - BLYNK_PRINT.println(ip[0]); } - - static - void BLYNK_LOG_TIME() { - BLYNK_PRINT.print('['); - BLYNK_PRINT.print(BlynkMillis()); - BLYNK_PRINT.print(BLYNK_F("] ")); - } - -#ifdef BLYNK_DEBUG - #include - #define BLYNK_DBG_BREAK() { for(;;); } - #define BLYNK_ASSERT(expr) { if(!(expr)) { BLYNK_LOG2(BLYNK_F("Assertion failed: "), BLYNK_F(#expr)); BLYNK_DBG_BREAK() } } - - static - void BLYNK_DBG_DUMP(const char* msg, const void* addr, size_t len) { - if (len) { - BLYNK_LOG_TIME(); - BLYNK_PRINT.print(msg); - int l2 = len; - const uint8_t* octets = (const uint8_t*)addr; - bool prev_print = true; - while (l2--) { - const uint8_t c = *octets++ & 0xFF; - if (c >= 32 && c < 127) { - if (!prev_print) { BLYNK_PRINT.print(']'); } - BLYNK_PRINT.print((char)c); - prev_print = true; - } else { - BLYNK_PRINT.print(prev_print?'[':'|'); - if (c < 0x10) { BLYNK_PRINT.print('0'); } - BLYNK_PRINT.print(c, HEX); - prev_print = false; - } - } - if (!prev_print) { - BLYNK_PRINT.print(']'); - } - BLYNK_PRINT.println(); - } - } -#endif - - #if !defined(ARDUINO_ARCH_ARC32) - #include - #include - - BLYNK_UNUSED - void blynk_dbg_print(const char* BLYNK_PROGMEM fmt, ...) - { - va_list ap; - va_start(ap, fmt); - char buff[128]; - BLYNK_PRINT.print('['); - BLYNK_PRINT.print(BlynkMillis()); - BLYNK_PRINT.print(BLYNK_F("] ")); -#if defined(__AVR__) - vsnprintf_P(buff, sizeof(buff), fmt, ap); -#else - vsnprintf(buff, sizeof(buff), fmt, ap); -#endif - BLYNK_PRINT.println(buff); - va_end(ap); - } - #endif // ARDUINO_ARCH_ARC32 - - #elif defined(__MBED__) - - #define BLYNK_LOG(msg, ...) { BLYNK_PRINT.printf("[%ld] " msg "\n", BlynkMillis(), ##__VA_ARGS__); } - #define BLYNK_LOG1(p1) { BLYNK_LOG(p1);} - #define BLYNK_LOG2(p1,p2) { BLYNK_LOG(p1,p2);} - #define BLYNK_LOG3(p1,p2,p3) { BLYNK_LOG(p1,p2,p3);} - #define BLYNK_LOG4(p1,p2,p3,p4) { BLYNK_LOG(p1,p2,p3,p4);} - #define BLYNK_LOG6(p1,p2,p3,p4,p5,p6) { BLYNK_LOG(p1,p2,p3,p4,p5,p6);} - - #define BLYNK_LOG_TIME() BLYNK_PRINT.printf("[%ld]", BlynkMillis()); - -#ifdef BLYNK_DEBUG - #define BLYNK_DBG_BREAK() raise(SIGTRAP); - #define BLYNK_ASSERT(expr) assert(expr) - - static - void BLYNK_DBG_DUMP(const char* msg, const void* addr, size_t len) { - BLYNK_LOG_TIME(); - BLYNK_PRINT.printf(msg); - int l2 = len; - const uint8_t* octets = (const uint8_t*)addr; - bool prev_print = true; - while (l2--) { - const uint8_t c = *octets++ & 0xFF; - if (c >= 32 && c < 127) { - if (!prev_print) { BLYNK_PRINT.putc(']'); } - BLYNK_PRINT.putc((char)c); - prev_print = true; - } else { - BLYNK_PRINT.putc(prev_print?'[':'|'); - BLYNK_PRINT.printf("%02x", c); - prev_print = false; - } - } - BLYNK_PRINT.printf("%s\n", prev_print?"":"]"); - } -#endif - - #elif defined(LINUX) - - #include - #include - #include - #include - #include - - #include - using namespace std; - #define BLYNK_LOG(msg, ...) { fprintf(BLYNK_PRINT, "[%ld] " msg "\n", BlynkMillis(), ##__VA_ARGS__); } - #define BLYNK_LOG1(p1) { BLYNK_LOG_TIME(); cout << p1 << endl; } - #define BLYNK_LOG2(p1,p2) { BLYNK_LOG_TIME(); cout << p1 << p2 << endl; } - #define BLYNK_LOG3(p1,p2,p3) { BLYNK_LOG_TIME(); cout << p1 << p2 << p3 << endl; } - #define BLYNK_LOG4(p1,p2,p3,p4) { BLYNK_LOG_TIME(); cout << p1 << p2 << p3 << p4 << endl; } - #define BLYNK_LOG6(p1,p2,p3,p4,p5,p6) { BLYNK_LOG_TIME(); cout << p1 << p2 << p3 << p4 << p5 << p6 << endl; } - - #define BLYNK_LOG_TIME() cout << '[' << BlynkMillis() << "] "; - -#ifdef BLYNK_DEBUG - #define BLYNK_DBG_BREAK() raise(SIGTRAP); - #define BLYNK_ASSERT(expr) assert(expr) - - static - void BLYNK_DBG_DUMP(const char* msg, const void* addr, size_t len) { - BLYNK_LOG_TIME(); - fprintf(BLYNK_PRINT, "%s", msg); - int l2 = len; - const uint8_t* octets = (const uint8_t*)addr; - bool prev_print = true; - while (l2--) { - const uint8_t c = *octets++ & 0xFF; - if (c >= 32 && c < 127) { - if (!prev_print) { fputc(']', BLYNK_PRINT); } - fputc((char)c, BLYNK_PRINT); - prev_print = true; - } else { - fputc(prev_print?'[':'|', BLYNK_PRINT); - fprintf(BLYNK_PRINT, "%02x", c); - prev_print = false; - } - } - fprintf(BLYNK_PRINT, "%s\n", prev_print?"":"]"); - } -#endif - - #else - - #warning "Cannot detect platform" - - #endif - -#endif - -#ifndef BLYNK_LOG - #define BLYNK_LOG(...) - #define BLYNK_LOG1(p1) - #define BLYNK_LOG2(p1,p2) - #define BLYNK_LOG3(p1,p2,p3) - #define BLYNK_LOG4(p1,p2,p3,p4) - #define BLYNK_LOG6(p1,p2,p3,p4,p5,p6) - #define BLYNK_LOG_IP(msg, ip) - #define BLYNK_LOG_IP_REV(msg, ip) -#endif - -#ifndef BLYNK_DBG_BREAK - #define BLYNK_DBG_BREAK() - #define BLYNK_ASSERT(expr) - #define BLYNK_DBG_DUMP(msg, addr, len) -#endif - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkDetectDevice.h b/wled00/src/dependencies/blynk/Blynk/BlynkDetectDevice.h deleted file mode 100644 index 09366da1..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkDetectDevice.h +++ /dev/null @@ -1,268 +0,0 @@ -/** - * @file BlynkDetectDevice.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2016 Volodymyr Shymanskyy - * @date May 2016 - * @brief - * - */ - -#ifndef BlynkDetectDevice_h -#define BlynkDetectDevice_h - -// General defines - -#define BLYNK_NEWLINE "\r\n" - -#define BLYNK_CONCAT(a, b) a ## b -#define BLYNK_CONCAT2(a, b) BLYNK_CONCAT(a, b) - -#define BLYNK_STRINGIFY(x) #x -#define BLYNK_TOSTRING(x) BLYNK_STRINGIFY(x) - -#define BLYNK_COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x]))))) - -#define BLYNK_ATTR_PACKED __attribute__ ((__packed__)) -#define BLYNK_NORETURN __attribute__ ((noreturn)) -#define BLYNK_UNUSED __attribute__((__unused__)) -#define BLYNK_DEPRECATED __attribute__ ((deprecated)) -#define BLYNK_CONSTRUCTOR __attribute__((constructor)) - -// Causes problems on some platforms -#define BLYNK_FORCE_INLINE inline //__attribute__((always_inline)) - -#ifndef BLYNK_INFO_CPU - #if defined(__AVR_ATmega168__) - #define BLYNK_INFO_CPU "ATmega168" - #endif -#endif - -#ifndef BLYNK_INFO_DEVICE - - #if defined(ENERGIA) - - #define BLYNK_NO_YIELD - #define BLYNK_USE_128_VPINS - - #if defined(ENERGIA_ARCH_MSP430) - #define BLYNK_INFO_DEVICE "LaunchPad MSP430" - #define BLYNK_INFO_CPU "MSP430" - #define BLYNK_NO_FLOAT - #elif defined(ENERGIA_ARCH_MSP432) - #define BLYNK_INFO_DEVICE "LaunchPad MSP432" - #define BLYNK_INFO_CPU "MSP432" - #elif defined(ENERGIA_ARCH_TIVAC) - #define BLYNK_INFO_DEVICE "LaunchPad" - - #elif defined(ENERGIA_ARCH_CC3200EMT) || defined(ENERGIA_ARCH_CC3200) - #define BLYNK_INFO_CONNECTION "CC3200" - #define BLYNK_SEND_CHUNK 64 - #define BLYNK_BUFFERS_SIZE 1024 - - #if defined(ENERGIA_CC3200_LAUNCHXL) //TODO: This is a bug in Energia IDE - #define BLYNK_INFO_DEVICE "CC3200 LaunchXL" - #elif defined(ENERGIA_RedBearLab_CC3200) - #define BLYNK_INFO_DEVICE "RBL CC3200" - #elif defined(ENERGIA_RedBearLab_WiFiMini) - #define BLYNK_INFO_DEVICE "RBL WiFi Mini" - #elif defined(ENERGIA_RedBearLab_WiFiMicro) - #define BLYNK_INFO_DEVICE "RBL WiFi Micro" - #endif - #elif defined(ENERGIA_ARCH_CC3220EMT) || defined(ENERGIA_ARCH_CC3220) - #define BLYNK_INFO_CONNECTION "CC3220" - #define BLYNK_SEND_CHUNK 64 - #define BLYNK_BUFFERS_SIZE 1024 - - #define BLYNK_USE_INTERNAL_DTOSTRF - - #define BLYNK_INFO_DEVICE "CC3220" - #define BLYNK_INFO_CPU "CC3220" - #endif - - #if !defined(BLYNK_INFO_DEVICE) - #define BLYNK_INFO_DEVICE "Energia" - #endif - - #elif defined(LINUX) - - #define BLYNK_INFO_DEVICE "Linux" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 4096 - - #elif defined(SPARK) || defined(PARTICLE) - - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - - #if PLATFORM_ID==0 - #define BLYNK_INFO_DEVICE "Particle Core" - #undef BLYNK_BUFFERS_SIZE // Use default on Core - #elif PLATFORM_ID==6 - #define BLYNK_INFO_DEVICE "Particle Photon" - #elif PLATFORM_ID==8 - #define BLYNK_INFO_DEVICE "Particle P1" - #elif PLATFORM_ID==9 - #define BLYNK_INFO_DEVICE "Particle Ethernet" - #elif PLATFORM_ID==10 - #define BLYNK_INFO_DEVICE "Particle Electron" - #elif PLATFORM_ID==31 - #define BLYNK_INFO_DEVICE "Particle RPi" - #elif PLATFORM_ID==82 - #define BLYNK_INFO_DEVICE "Digistump Oak" - #elif PLATFORM_ID==88 - #define BLYNK_INFO_DEVICE "RedBear Duo" - #elif PLATFORM_ID==103 - #define BLYNK_INFO_DEVICE "Bluz" - #else - #if defined(BLYNK_DEBUG_ALL) - #warning "Cannot detect board type" - #endif - #define BLYNK_INFO_DEVICE "Particle" - #endif - - #elif defined(__MBED__) - - #define BLYNK_INFO_DEVICE "MBED" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 512 - #define noInterrupts() __disable_irq() - #define interrupts() __enable_irq() - - #elif defined(ARDUINO) && defined(MPIDE) - #define BLYNK_NO_YIELD - - #if defined(_BOARD_UNO_) - #define BLYNK_INFO_DEVICE "chipKIT Uno32" - #else - #define BLYNK_INFO_DEVICE "chipKIT" - #endif - - #elif defined(ARDUINO) && defined(ARDUINO_AMEBA) - #if defined(BOARD_RTL8710) - #define BLYNK_INFO_DEVICE "RTL8710" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(BOARD_RTL8711AM) - #define BLYNK_INFO_DEVICE "RTL8711AM" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(BOARD_RTL8195A) - #define BLYNK_INFO_DEVICE "RTL8195A" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #else - #define BLYNK_INFO_DEVICE "Ameba" - #endif - - #elif defined(ARDUINO) && defined(TEENSYDUINO) - - #if defined(__MK66FX1M0__) - #define BLYNK_INFO_DEVICE "Teensy 3.6" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(__MK64FX512__) - #define BLYNK_INFO_DEVICE "Teensy 3.5" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(__MK20DX256__) - #define BLYNK_INFO_DEVICE "Teensy 3.2/3.1" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(__MK20DX128__) - #define BLYNK_INFO_DEVICE "Teensy 3.0" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #elif defined(__MKL26Z64__) - #define BLYNK_INFO_DEVICE "Teensy LC" - #define BLYNK_BUFFERS_SIZE 512 - #elif defined(ARDUINO_ARCH_AVR) - #define BLYNK_INFO_DEVICE "Teensy 2.0" - #else - #define BLYNK_INFO_DEVICE "Teensy" - #endif - - #elif defined(ARDUINO) - - #if defined(ARDUINO_ARCH_SAMD) || defined(ESP32) || defined(ESP8266) - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - #endif - - /* Arduino AVR */ - #if defined(ARDUINO_AVR_NANO) - #define BLYNK_INFO_DEVICE "Arduino Nano" - - /* ESP8266 */ - #elif defined(ARDUINO_ESP8266_ESP01) - #define BLYNK_INFO_DEVICE "ESP8266" - #elif defined(ARDUINO_ESP8266_ESP12) - #define BLYNK_INFO_DEVICE "ESP-12" - #elif defined(ARDUINO_ESP8266_NODEMCU) - #define BLYNK_INFO_DEVICE "NodeMCU" - #elif defined(ARDUINO_ESP8266_THING) - #define BLYNK_INFO_DEVICE "Esp Thing" - #elif defined(ARDUINO_ESP8266_THING_DEV) - #define BLYNK_INFO_DEVICE "Esp Thing Dev" - - /* ESP32 */ - #elif defined(ARDUINO_ESP32_DEV) - #define BLYNK_INFO_DEVICE "ESP32" - #elif defined(ARDUINO_ESP320) - #define BLYNK_INFO_DEVICE "SweetPeas ESP320" - #elif defined(ARDUINO_NANO32) - #define BLYNK_INFO_DEVICE "ESP32 Nano32" - #elif defined(ARDUINO_LoLin32) - #define BLYNK_INFO_DEVICE "LoLin32" - #elif defined(ARDUINO_ESPea32) - #define BLYNK_INFO_DEVICE "ESPea32" - #elif defined(ARDUINO_QUANTUM) - #define BLYNK_INFO_DEVICE "Noduino Quantum" - - #else - #if defined(BLYNK_DEBUG_ALL) - #warning "Cannot detect board type" - #endif - #define BLYNK_INFO_DEVICE "Arduino" - #endif - - #elif defined(TI_CC3220) - #define BLYNK_INFO_DEVICE "TI CC3220" - #define BLYNK_USE_128_VPINS - #define BLYNK_BUFFERS_SIZE 1024 - - #define BLYNK_USE_INTERNAL_DTOSTRF - - #else - - #define BLYNK_INFO_DEVICE "Custom platform" - - #endif - - #if !defined(BLYNK_MAX_READBYTES) && defined(BLYNK_BUFFERS_SIZE) - #define BLYNK_MAX_READBYTES BLYNK_BUFFERS_SIZE - #endif - - #if !defined(BLYNK_MAX_SENDBYTES) && defined(BLYNK_BUFFERS_SIZE) - #define BLYNK_MAX_SENDBYTES BLYNK_BUFFERS_SIZE - #endif - - // Print diagnostics - - #if defined(BLYNK_DEBUG_ALL) - #if defined(BLYNK_INFO_DEVICE) - #pragma message ("BLYNK_INFO_DEVICE=" BLYNK_TOSTRING(BLYNK_INFO_DEVICE)) - #endif - - #if defined(BLYNK_INFO_CPU) - #pragma message ("BLYNK_INFO_CPU=" BLYNK_TOSTRING(BLYNK_INFO_CPU)) - #endif - - #if defined(BLYNK_BUFFERS_SIZE) - #pragma message ("BLYNK_BUFFERS_SIZE=" BLYNK_TOSTRING(BLYNK_BUFFERS_SIZE)) - #endif - #endif - -#endif - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkEveryN.h b/wled00/src/dependencies/blynk/Blynk/BlynkEveryN.h deleted file mode 100644 index aac8c629..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkEveryN.h +++ /dev/null @@ -1,69 +0,0 @@ - -#ifndef BLYNKEVERYN_H -#define BLYNKEVERYN_H - -#include "BlynkDebug.h" - -millis_time_t blynk_count_millis() { - const millis_time_t ms = BlynkMillis(); - return ms; -} - -uint16_t blynk_count_seconds16() { - const millis_time_t ms = BlynkMillis(); - return (ms / 1000); -} - -uint16_t blynk_count_minutes16() -{ - const millis_time_t ms = BlynkMillis(); - return (ms / (60000L)) & 0xFFFF; -} - -uint8_t blynk_count_hours8() -{ - const millis_time_t ms = BlynkMillis(); - return (ms / (3600000L)) & 0xFF; -} - -template -class BlynkPeriodic { -public: - T mPrev; - T mPeriod; - - BlynkPeriodic() { reset(); mPeriod = 1; }; - BlynkPeriodic(T period) { reset(); setPeriod(period); }; - void setPeriod( T period) { mPeriod = period; }; - T getTime() { return (T)(timeGetter()); }; - T getPeriod() { return mPeriod; }; - T getElapsed() { return getTime() - mPrev; } - T getRemaining() { return mPeriod - getElapsed(); } - T getLastTriggerTime() { return mPrev; } - bool ready() { - bool isReady = (getElapsed() >= mPeriod); - if( isReady ) { reset(); } - return isReady; - } - void reset() { mPrev = getTime(); }; - void trigger() { mPrev = getTime() - mPeriod; }; - - operator bool() { return ready(); } -}; - -typedef BlynkPeriodic BlynkEveryNMillis; -typedef BlynkPeriodic BlynkEveryNSeconds; -typedef BlynkPeriodic BlynkEveryNMinutes; -typedef BlynkPeriodic BlynkEveryNHours; - -#define BLYNK_EVERY_N_MILLIS_I(NAME,N) static BlynkEveryNMillis NAME(N); if(NAME) -#define BLYNK_EVERY_N_SECONDS_I(NAME,N) static BlynkEveryNSeconds NAME(N); if(NAME) -#define BLYNK_EVERY_N_MINUTES_I(NAME,N) static BlynkEveryNMinutes NAME(N); if(NAME) -#define BLYNK_EVERY_N_HOURS_I(NAME,N) static BlynkEveryNHours NAME(N); if(NAME) - -#define BLYNK_EVERY_N_MILLIS(N) BLYNK_EVERY_N_MILLIS_I(BLYNK_CONCAT2(PER, __COUNTER__),N) -#define BLYNK_EVERY_N_SECONDS(N) BLYNK_EVERY_N_SECONDS_I(BLYNK_CONCAT2(PER, __COUNTER__),N) -#define BLYNK_EVERY_N_MINUTES(N) BLYNK_EVERY_N_MINUTES_I(BLYNK_CONCAT2(PER, __COUNTER__),N) -#define BLYNK_EVERY_N_HOURS(N) BLYNK_EVERY_N_HOURS_I(BLYNK_CONCAT2(PER, __COUNTER__),N) - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkFifo.h b/wled00/src/dependencies/blynk/Blynk/BlynkFifo.h deleted file mode 100644 index 1a09277c..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkFifo.h +++ /dev/null @@ -1,158 +0,0 @@ -/** - * @file BlynkFifo.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Feb 2015 - * @brief FIFO implementation - * - */ - -#ifndef BlynkFifo_h -#define BlynkFifo_h - -#include "BlynkUtility.h" - -template -class BlynkFifo -{ -public: - BlynkFifo() - { - clear(); - } - - void clear() - { - _r = 0; - _w = 0; - } - - ~BlynkFifo(void) - {} - - // writing thread/context API - //------------------------------------------------------------- - - bool writeable(void) - { - return free() > 0; - } - - int free(void) - { - int s = _r - _w; - if (s <= 0) - s += N; - return s - 1; - } - - T put(const T& c) - { - int i = _w; - int j = i; - i = _inc(i); - while (i == _r) // = !writeable() - /* nothing / just wait */; - _b[j] = c; - _w = i; - return c; - } - - int put(const T* p, int n, bool blocking = false) - { - int c = n; - while (c) - { - int f; - while ((f = free()) == 0) // wait for space - { - if (!blocking) return n - c; // no more space and not blocking - /* nothing / just wait */; - } - // check free space - if (c < f) f = c; - int w = _w; - int m = N - w; - // check wrap - if (f > m) f = m; - memcpy(&_b[w], p, f); - _w = _inc(w, f); - c -= f; - p += f; - } - return n - c; - } - - // reading thread/context API - // -------------------------------------------------------- - - bool readable(void) - { - return (_r != _w); - } - - size_t size(void) - { - int s = _w - _r; - if (s < 0) - s += N; - return s; - } - - T get(void) - { - int r = _r; - while (r == _w) // = !readable() - /* nothing / just wait */; - T t = _b[r]; - _r = _inc(r); - return t; - } - - T peek(void) - { - int r = _r; - while (r == _w); - return _b[r]; - } - - int get(T* p, int n, bool blocking = false) - { - int c = n; - while (c) - { - int f; - for (;;) // wait for data - { - f = size(); - if (f) break; // free space - if (!blocking) return n - c; // no space and not blocking - /* nothing / just wait */; - } - // check available data - if (c < f) f = c; - int r = _r; - int m = N - r; - // check wrap - if (f > m) f = m; - memcpy(p, &_b[r], f); - _r = _inc(r, f); - c -= f; - p += f; - } - return n - c; - } - -private: - int _inc(int i, int n = 1) - { - return (i + n) % N; - } - - T _b[N]; - volatile int _w; - volatile int _r; -}; - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.cpp b/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.cpp deleted file mode 100644 index 6805c5fc..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.cpp +++ /dev/null @@ -1,402 +0,0 @@ -/** - * @file BlynkHandlers.cpp - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Virtual pin utilities - */ - -#include "BlynkConfig.h" -#include "BlynkHandlers.h" -#include "BlynkDebug.h" - -void BlynkNoOpCbk() -{} - -void BlynkWidgetRead(BlynkReq BLYNK_UNUSED &request) -{ - BLYNK_LOG2(BLYNK_F("No handler for reading from pin "), request.pin); -} - -void BlynkWidgetWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m) -{ - BLYNK_LOG2(BLYNK_F("No handler for writing to pin "), request.pin); -} - -#define BLYNK_ON_READ_IMPL(pin) void BlynkWidgetRead ## pin (BlynkReq BLYNK_UNUSED &req) \ - __attribute__((weak, alias("BlynkWidgetRead"))) - -#define BLYNK_ON_WRITE_IMPL(pin) void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &req, const BlynkParam BLYNK_UNUSED ¶m) \ - __attribute__((weak, alias("BlynkWidgetWrite"))) - -BLYNK_CONNECTED() __attribute__((weak, alias("BlynkNoOpCbk"))); -BLYNK_DISCONNECTED() __attribute__((weak, alias("BlynkNoOpCbk"))); - -// Internal Virtual Pins -BLYNK_ON_WRITE_IMPL(InternalPinACON); -BLYNK_ON_WRITE_IMPL(InternalPinADIS); -BLYNK_ON_WRITE_IMPL(InternalPinRTC); -BLYNK_ON_WRITE_IMPL(InternalPinOTA); - -// Regular Virtual Pins -BLYNK_ON_READ_IMPL(Default); -BLYNK_ON_WRITE_IMPL(Default); - -BLYNK_ON_READ_IMPL(0 ); -BLYNK_ON_READ_IMPL(1 ); -BLYNK_ON_READ_IMPL(2 ); -BLYNK_ON_READ_IMPL(3 ); -BLYNK_ON_READ_IMPL(4 ); -BLYNK_ON_READ_IMPL(5 ); -BLYNK_ON_READ_IMPL(6 ); -BLYNK_ON_READ_IMPL(7 ); -BLYNK_ON_READ_IMPL(8 ); -BLYNK_ON_READ_IMPL(9 ); -BLYNK_ON_READ_IMPL(10); -BLYNK_ON_READ_IMPL(11); -BLYNK_ON_READ_IMPL(12); -BLYNK_ON_READ_IMPL(13); -BLYNK_ON_READ_IMPL(14); -BLYNK_ON_READ_IMPL(15); -BLYNK_ON_READ_IMPL(16); -BLYNK_ON_READ_IMPL(17); -BLYNK_ON_READ_IMPL(18); -BLYNK_ON_READ_IMPL(19); -BLYNK_ON_READ_IMPL(20); -BLYNK_ON_READ_IMPL(21); -BLYNK_ON_READ_IMPL(22); -BLYNK_ON_READ_IMPL(23); -BLYNK_ON_READ_IMPL(24); -BLYNK_ON_READ_IMPL(25); -BLYNK_ON_READ_IMPL(26); -BLYNK_ON_READ_IMPL(27); -BLYNK_ON_READ_IMPL(28); -BLYNK_ON_READ_IMPL(29); -BLYNK_ON_READ_IMPL(30); -BLYNK_ON_READ_IMPL(31); -#ifdef BLYNK_USE_128_VPINS - BLYNK_ON_READ_IMPL(32); - BLYNK_ON_READ_IMPL(33); - BLYNK_ON_READ_IMPL(34); - BLYNK_ON_READ_IMPL(35); - BLYNK_ON_READ_IMPL(36); - BLYNK_ON_READ_IMPL(37); - BLYNK_ON_READ_IMPL(38); - BLYNK_ON_READ_IMPL(39); - BLYNK_ON_READ_IMPL(40); - BLYNK_ON_READ_IMPL(41); - BLYNK_ON_READ_IMPL(42); - BLYNK_ON_READ_IMPL(43); - BLYNK_ON_READ_IMPL(44); - BLYNK_ON_READ_IMPL(45); - BLYNK_ON_READ_IMPL(46); - BLYNK_ON_READ_IMPL(47); - BLYNK_ON_READ_IMPL(48); - BLYNK_ON_READ_IMPL(49); - BLYNK_ON_READ_IMPL(50); - BLYNK_ON_READ_IMPL(51); - BLYNK_ON_READ_IMPL(52); - BLYNK_ON_READ_IMPL(53); - BLYNK_ON_READ_IMPL(54); - BLYNK_ON_READ_IMPL(55); - BLYNK_ON_READ_IMPL(56); - BLYNK_ON_READ_IMPL(57); - BLYNK_ON_READ_IMPL(58); - BLYNK_ON_READ_IMPL(59); - BLYNK_ON_READ_IMPL(60); - BLYNK_ON_READ_IMPL(61); - BLYNK_ON_READ_IMPL(62); - BLYNK_ON_READ_IMPL(63); - BLYNK_ON_READ_IMPL(64); - BLYNK_ON_READ_IMPL(65); - BLYNK_ON_READ_IMPL(66); - BLYNK_ON_READ_IMPL(67); - BLYNK_ON_READ_IMPL(68); - BLYNK_ON_READ_IMPL(69); - BLYNK_ON_READ_IMPL(70); - BLYNK_ON_READ_IMPL(71); - BLYNK_ON_READ_IMPL(72); - BLYNK_ON_READ_IMPL(73); - BLYNK_ON_READ_IMPL(74); - BLYNK_ON_READ_IMPL(75); - BLYNK_ON_READ_IMPL(76); - BLYNK_ON_READ_IMPL(77); - BLYNK_ON_READ_IMPL(78); - BLYNK_ON_READ_IMPL(79); - BLYNK_ON_READ_IMPL(80); - BLYNK_ON_READ_IMPL(81); - BLYNK_ON_READ_IMPL(82); - BLYNK_ON_READ_IMPL(83); - BLYNK_ON_READ_IMPL(84); - BLYNK_ON_READ_IMPL(85); - BLYNK_ON_READ_IMPL(86); - BLYNK_ON_READ_IMPL(87); - BLYNK_ON_READ_IMPL(88); - BLYNK_ON_READ_IMPL(89); - BLYNK_ON_READ_IMPL(90); - BLYNK_ON_READ_IMPL(91); - BLYNK_ON_READ_IMPL(92); - BLYNK_ON_READ_IMPL(93); - BLYNK_ON_READ_IMPL(94); - BLYNK_ON_READ_IMPL(95); - BLYNK_ON_READ_IMPL(96); - BLYNK_ON_READ_IMPL(97); - BLYNK_ON_READ_IMPL(98); - BLYNK_ON_READ_IMPL(99); - BLYNK_ON_READ_IMPL(100); - BLYNK_ON_READ_IMPL(101); - BLYNK_ON_READ_IMPL(102); - BLYNK_ON_READ_IMPL(103); - BLYNK_ON_READ_IMPL(104); - BLYNK_ON_READ_IMPL(105); - BLYNK_ON_READ_IMPL(106); - BLYNK_ON_READ_IMPL(107); - BLYNK_ON_READ_IMPL(108); - BLYNK_ON_READ_IMPL(109); - BLYNK_ON_READ_IMPL(110); - BLYNK_ON_READ_IMPL(111); - BLYNK_ON_READ_IMPL(112); - BLYNK_ON_READ_IMPL(113); - BLYNK_ON_READ_IMPL(114); - BLYNK_ON_READ_IMPL(115); - BLYNK_ON_READ_IMPL(116); - BLYNK_ON_READ_IMPL(117); - BLYNK_ON_READ_IMPL(118); - BLYNK_ON_READ_IMPL(119); - BLYNK_ON_READ_IMPL(120); - BLYNK_ON_READ_IMPL(121); - BLYNK_ON_READ_IMPL(122); - BLYNK_ON_READ_IMPL(123); - BLYNK_ON_READ_IMPL(124); - BLYNK_ON_READ_IMPL(125); - BLYNK_ON_READ_IMPL(126); - BLYNK_ON_READ_IMPL(127); -#endif - -BLYNK_ON_WRITE_IMPL(0 ); -BLYNK_ON_WRITE_IMPL(1 ); -BLYNK_ON_WRITE_IMPL(2 ); -BLYNK_ON_WRITE_IMPL(3 ); -BLYNK_ON_WRITE_IMPL(4 ); -BLYNK_ON_WRITE_IMPL(5 ); -BLYNK_ON_WRITE_IMPL(6 ); -BLYNK_ON_WRITE_IMPL(7 ); -BLYNK_ON_WRITE_IMPL(8 ); -BLYNK_ON_WRITE_IMPL(9 ); -BLYNK_ON_WRITE_IMPL(10); -BLYNK_ON_WRITE_IMPL(11); -BLYNK_ON_WRITE_IMPL(12); -BLYNK_ON_WRITE_IMPL(13); -BLYNK_ON_WRITE_IMPL(14); -BLYNK_ON_WRITE_IMPL(15); -BLYNK_ON_WRITE_IMPL(16); -BLYNK_ON_WRITE_IMPL(17); -BLYNK_ON_WRITE_IMPL(18); -BLYNK_ON_WRITE_IMPL(19); -BLYNK_ON_WRITE_IMPL(20); -BLYNK_ON_WRITE_IMPL(21); -BLYNK_ON_WRITE_IMPL(22); -BLYNK_ON_WRITE_IMPL(23); -BLYNK_ON_WRITE_IMPL(24); -BLYNK_ON_WRITE_IMPL(25); -BLYNK_ON_WRITE_IMPL(26); -BLYNK_ON_WRITE_IMPL(27); -BLYNK_ON_WRITE_IMPL(28); -BLYNK_ON_WRITE_IMPL(29); -BLYNK_ON_WRITE_IMPL(30); -BLYNK_ON_WRITE_IMPL(31); -#ifdef BLYNK_USE_128_VPINS - BLYNK_ON_WRITE_IMPL(32); - BLYNK_ON_WRITE_IMPL(33); - BLYNK_ON_WRITE_IMPL(34); - BLYNK_ON_WRITE_IMPL(35); - BLYNK_ON_WRITE_IMPL(36); - BLYNK_ON_WRITE_IMPL(37); - BLYNK_ON_WRITE_IMPL(38); - BLYNK_ON_WRITE_IMPL(39); - BLYNK_ON_WRITE_IMPL(40); - BLYNK_ON_WRITE_IMPL(41); - BLYNK_ON_WRITE_IMPL(42); - BLYNK_ON_WRITE_IMPL(43); - BLYNK_ON_WRITE_IMPL(44); - BLYNK_ON_WRITE_IMPL(45); - BLYNK_ON_WRITE_IMPL(46); - BLYNK_ON_WRITE_IMPL(47); - BLYNK_ON_WRITE_IMPL(48); - BLYNK_ON_WRITE_IMPL(49); - BLYNK_ON_WRITE_IMPL(50); - BLYNK_ON_WRITE_IMPL(51); - BLYNK_ON_WRITE_IMPL(52); - BLYNK_ON_WRITE_IMPL(53); - BLYNK_ON_WRITE_IMPL(54); - BLYNK_ON_WRITE_IMPL(55); - BLYNK_ON_WRITE_IMPL(56); - BLYNK_ON_WRITE_IMPL(57); - BLYNK_ON_WRITE_IMPL(58); - BLYNK_ON_WRITE_IMPL(59); - BLYNK_ON_WRITE_IMPL(60); - BLYNK_ON_WRITE_IMPL(61); - BLYNK_ON_WRITE_IMPL(62); - BLYNK_ON_WRITE_IMPL(63); - BLYNK_ON_WRITE_IMPL(64); - BLYNK_ON_WRITE_IMPL(65); - BLYNK_ON_WRITE_IMPL(66); - BLYNK_ON_WRITE_IMPL(67); - BLYNK_ON_WRITE_IMPL(68); - BLYNK_ON_WRITE_IMPL(69); - BLYNK_ON_WRITE_IMPL(70); - BLYNK_ON_WRITE_IMPL(71); - BLYNK_ON_WRITE_IMPL(72); - BLYNK_ON_WRITE_IMPL(73); - BLYNK_ON_WRITE_IMPL(74); - BLYNK_ON_WRITE_IMPL(75); - BLYNK_ON_WRITE_IMPL(76); - BLYNK_ON_WRITE_IMPL(77); - BLYNK_ON_WRITE_IMPL(78); - BLYNK_ON_WRITE_IMPL(79); - BLYNK_ON_WRITE_IMPL(80); - BLYNK_ON_WRITE_IMPL(81); - BLYNK_ON_WRITE_IMPL(82); - BLYNK_ON_WRITE_IMPL(83); - BLYNK_ON_WRITE_IMPL(84); - BLYNK_ON_WRITE_IMPL(85); - BLYNK_ON_WRITE_IMPL(86); - BLYNK_ON_WRITE_IMPL(87); - BLYNK_ON_WRITE_IMPL(88); - BLYNK_ON_WRITE_IMPL(89); - BLYNK_ON_WRITE_IMPL(90); - BLYNK_ON_WRITE_IMPL(91); - BLYNK_ON_WRITE_IMPL(92); - BLYNK_ON_WRITE_IMPL(93); - BLYNK_ON_WRITE_IMPL(94); - BLYNK_ON_WRITE_IMPL(95); - BLYNK_ON_WRITE_IMPL(96); - BLYNK_ON_WRITE_IMPL(97); - BLYNK_ON_WRITE_IMPL(98); - BLYNK_ON_WRITE_IMPL(99); - BLYNK_ON_WRITE_IMPL(100); - BLYNK_ON_WRITE_IMPL(101); - BLYNK_ON_WRITE_IMPL(102); - BLYNK_ON_WRITE_IMPL(103); - BLYNK_ON_WRITE_IMPL(104); - BLYNK_ON_WRITE_IMPL(105); - BLYNK_ON_WRITE_IMPL(106); - BLYNK_ON_WRITE_IMPL(107); - BLYNK_ON_WRITE_IMPL(108); - BLYNK_ON_WRITE_IMPL(109); - BLYNK_ON_WRITE_IMPL(110); - BLYNK_ON_WRITE_IMPL(111); - BLYNK_ON_WRITE_IMPL(112); - BLYNK_ON_WRITE_IMPL(113); - BLYNK_ON_WRITE_IMPL(114); - BLYNK_ON_WRITE_IMPL(115); - BLYNK_ON_WRITE_IMPL(116); - BLYNK_ON_WRITE_IMPL(117); - BLYNK_ON_WRITE_IMPL(118); - BLYNK_ON_WRITE_IMPL(119); - BLYNK_ON_WRITE_IMPL(120); - BLYNK_ON_WRITE_IMPL(121); - BLYNK_ON_WRITE_IMPL(122); - BLYNK_ON_WRITE_IMPL(123); - BLYNK_ON_WRITE_IMPL(124); - BLYNK_ON_WRITE_IMPL(125); - BLYNK_ON_WRITE_IMPL(126); - BLYNK_ON_WRITE_IMPL(127); -#endif - -static const WidgetReadHandler BlynkReadHandlerVector[] BLYNK_PROGMEM = { - BlynkWidgetRead0, BlynkWidgetRead1, BlynkWidgetRead2, BlynkWidgetRead3, - BlynkWidgetRead4, BlynkWidgetRead5, BlynkWidgetRead6, BlynkWidgetRead7, - BlynkWidgetRead8, BlynkWidgetRead9, BlynkWidgetRead10, BlynkWidgetRead11, - BlynkWidgetRead12, BlynkWidgetRead13, BlynkWidgetRead14, BlynkWidgetRead15, - BlynkWidgetRead16, BlynkWidgetRead17, BlynkWidgetRead18, BlynkWidgetRead19, - BlynkWidgetRead20, BlynkWidgetRead21, BlynkWidgetRead22, BlynkWidgetRead23, - BlynkWidgetRead24, BlynkWidgetRead25, BlynkWidgetRead26, BlynkWidgetRead27, - BlynkWidgetRead28, BlynkWidgetRead29, BlynkWidgetRead30, BlynkWidgetRead31, -#ifdef BLYNK_USE_128_VPINS - BlynkWidgetRead32, BlynkWidgetRead33, BlynkWidgetRead34, BlynkWidgetRead35, - BlynkWidgetRead36, BlynkWidgetRead37, BlynkWidgetRead38, BlynkWidgetRead39, - BlynkWidgetRead40, BlynkWidgetRead41, BlynkWidgetRead42, BlynkWidgetRead43, - BlynkWidgetRead44, BlynkWidgetRead45, BlynkWidgetRead46, BlynkWidgetRead47, - BlynkWidgetRead48, BlynkWidgetRead49, BlynkWidgetRead50, BlynkWidgetRead51, - BlynkWidgetRead52, BlynkWidgetRead53, BlynkWidgetRead54, BlynkWidgetRead55, - BlynkWidgetRead56, BlynkWidgetRead57, BlynkWidgetRead58, BlynkWidgetRead59, - BlynkWidgetRead60, BlynkWidgetRead61, BlynkWidgetRead62, BlynkWidgetRead63, - BlynkWidgetRead64, BlynkWidgetRead65, BlynkWidgetRead66, BlynkWidgetRead67, - BlynkWidgetRead68, BlynkWidgetRead69, BlynkWidgetRead70, BlynkWidgetRead71, - BlynkWidgetRead72, BlynkWidgetRead73, BlynkWidgetRead74, BlynkWidgetRead75, - BlynkWidgetRead76, BlynkWidgetRead77, BlynkWidgetRead78, BlynkWidgetRead79, - BlynkWidgetRead80, BlynkWidgetRead81, BlynkWidgetRead82, BlynkWidgetRead83, - BlynkWidgetRead84, BlynkWidgetRead85, BlynkWidgetRead86, BlynkWidgetRead87, - BlynkWidgetRead88, BlynkWidgetRead89, BlynkWidgetRead90, BlynkWidgetRead91, - BlynkWidgetRead92, BlynkWidgetRead93, BlynkWidgetRead94, BlynkWidgetRead95, - BlynkWidgetRead96, BlynkWidgetRead97, BlynkWidgetRead98, BlynkWidgetRead99, - BlynkWidgetRead100, BlynkWidgetRead101, BlynkWidgetRead102, BlynkWidgetRead103, - BlynkWidgetRead104, BlynkWidgetRead105, BlynkWidgetRead106, BlynkWidgetRead107, - BlynkWidgetRead108, BlynkWidgetRead109, BlynkWidgetRead110, BlynkWidgetRead111, - BlynkWidgetRead112, BlynkWidgetRead113, BlynkWidgetRead114, BlynkWidgetRead115, - BlynkWidgetRead116, BlynkWidgetRead117, BlynkWidgetRead118, BlynkWidgetRead119, - BlynkWidgetRead120, BlynkWidgetRead121, BlynkWidgetRead122, BlynkWidgetRead123, - BlynkWidgetRead124, BlynkWidgetRead125, BlynkWidgetRead126, BlynkWidgetRead127, -#endif -}; - -static const WidgetWriteHandler BlynkWriteHandlerVector[] BLYNK_PROGMEM = { - BlynkWidgetWrite0, BlynkWidgetWrite1, BlynkWidgetWrite2, BlynkWidgetWrite3, - BlynkWidgetWrite4, BlynkWidgetWrite5, BlynkWidgetWrite6, BlynkWidgetWrite7, - BlynkWidgetWrite8, BlynkWidgetWrite9, BlynkWidgetWrite10, BlynkWidgetWrite11, - BlynkWidgetWrite12, BlynkWidgetWrite13, BlynkWidgetWrite14, BlynkWidgetWrite15, - BlynkWidgetWrite16, BlynkWidgetWrite17, BlynkWidgetWrite18, BlynkWidgetWrite19, - BlynkWidgetWrite20, BlynkWidgetWrite21, BlynkWidgetWrite22, BlynkWidgetWrite23, - BlynkWidgetWrite24, BlynkWidgetWrite25, BlynkWidgetWrite26, BlynkWidgetWrite27, - BlynkWidgetWrite28, BlynkWidgetWrite29, BlynkWidgetWrite30, BlynkWidgetWrite31, -#ifdef BLYNK_USE_128_VPINS - BlynkWidgetWrite32, BlynkWidgetWrite33, BlynkWidgetWrite34, BlynkWidgetWrite35, - BlynkWidgetWrite36, BlynkWidgetWrite37, BlynkWidgetWrite38, BlynkWidgetWrite39, - BlynkWidgetWrite40, BlynkWidgetWrite41, BlynkWidgetWrite42, BlynkWidgetWrite43, - BlynkWidgetWrite44, BlynkWidgetWrite45, BlynkWidgetWrite46, BlynkWidgetWrite47, - BlynkWidgetWrite48, BlynkWidgetWrite49, BlynkWidgetWrite50, BlynkWidgetWrite51, - BlynkWidgetWrite52, BlynkWidgetWrite53, BlynkWidgetWrite54, BlynkWidgetWrite55, - BlynkWidgetWrite56, BlynkWidgetWrite57, BlynkWidgetWrite58, BlynkWidgetWrite59, - BlynkWidgetWrite60, BlynkWidgetWrite61, BlynkWidgetWrite62, BlynkWidgetWrite63, - BlynkWidgetWrite64, BlynkWidgetWrite65, BlynkWidgetWrite66, BlynkWidgetWrite67, - BlynkWidgetWrite68, BlynkWidgetWrite69, BlynkWidgetWrite70, BlynkWidgetWrite71, - BlynkWidgetWrite72, BlynkWidgetWrite73, BlynkWidgetWrite74, BlynkWidgetWrite75, - BlynkWidgetWrite76, BlynkWidgetWrite77, BlynkWidgetWrite78, BlynkWidgetWrite79, - BlynkWidgetWrite80, BlynkWidgetWrite81, BlynkWidgetWrite82, BlynkWidgetWrite83, - BlynkWidgetWrite84, BlynkWidgetWrite85, BlynkWidgetWrite86, BlynkWidgetWrite87, - BlynkWidgetWrite88, BlynkWidgetWrite89, BlynkWidgetWrite90, BlynkWidgetWrite91, - BlynkWidgetWrite92, BlynkWidgetWrite93, BlynkWidgetWrite94, BlynkWidgetWrite95, - BlynkWidgetWrite96, BlynkWidgetWrite97, BlynkWidgetWrite98, BlynkWidgetWrite99, - BlynkWidgetWrite100, BlynkWidgetWrite101, BlynkWidgetWrite102, BlynkWidgetWrite103, - BlynkWidgetWrite104, BlynkWidgetWrite105, BlynkWidgetWrite106, BlynkWidgetWrite107, - BlynkWidgetWrite108, BlynkWidgetWrite109, BlynkWidgetWrite110, BlynkWidgetWrite111, - BlynkWidgetWrite112, BlynkWidgetWrite113, BlynkWidgetWrite114, BlynkWidgetWrite115, - BlynkWidgetWrite116, BlynkWidgetWrite117, BlynkWidgetWrite118, BlynkWidgetWrite119, - BlynkWidgetWrite120, BlynkWidgetWrite121, BlynkWidgetWrite122, BlynkWidgetWrite123, - BlynkWidgetWrite124, BlynkWidgetWrite125, BlynkWidgetWrite126, BlynkWidgetWrite127, -#endif -}; - -WidgetReadHandler GetReadHandler(uint8_t pin) -{ - if (pin >= BLYNK_COUNT_OF(BlynkReadHandlerVector)) - return NULL; -#ifdef BLYNK_HAS_PROGMEM - return (WidgetReadHandler)pgm_read_word(&BlynkReadHandlerVector[pin]); -#else - return BlynkReadHandlerVector[pin]; -#endif -} - -WidgetWriteHandler GetWriteHandler(uint8_t pin) -{ - if (pin >= BLYNK_COUNT_OF(BlynkWriteHandlerVector)) - return NULL; -#ifdef BLYNK_HAS_PROGMEM - return (WidgetWriteHandler)pgm_read_word(&BlynkWriteHandlerVector[pin]); -#else - return BlynkWriteHandlerVector[pin]; -#endif -} diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.h b/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.h deleted file mode 100644 index 9d10c451..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkHandlers.h +++ /dev/null @@ -1,511 +0,0 @@ -/** - * @file BlynkHandlers.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Handlers for virtual pin operations - * - */ - -#ifndef BlynkHandlers_h -#define BlynkHandlers_h - -#include "BlynkConfig.h" -#include "BlynkParam.h" - -// Helper macro - -#define V0 0 -#define V1 1 -#define V2 2 -#define V3 3 -#define V4 4 -#define V5 5 -#define V6 6 -#define V7 7 -#define V8 8 -#define V9 9 -#define V10 10 -#define V11 11 -#define V12 12 -#define V13 13 -#define V14 14 -#define V15 15 -#define V16 16 -#define V17 17 -#define V18 18 -#define V19 19 -#define V20 20 -#define V21 21 -#define V22 22 -#define V23 23 -#define V24 24 -#define V25 25 -#define V26 26 -#define V27 27 -#define V28 28 -#define V29 29 -#define V30 30 -#define V31 31 -#ifdef BLYNK_USE_128_VPINS - #define V32 32 - #define V33 33 - #define V34 34 - #define V35 35 - #define V36 36 - #define V37 37 - #define V38 38 - #define V39 39 - #define V40 40 - #define V41 41 - #define V42 42 - #define V43 43 - #define V44 44 - #define V45 45 - #define V46 46 - #define V47 47 - #define V48 48 - #define V49 49 - #define V50 50 - #define V51 51 - #define V52 52 - #define V53 53 - #define V54 54 - #define V55 55 - #define V56 56 - #define V57 57 - #define V58 58 - #define V59 59 - #define V60 60 - #define V61 61 - #define V62 62 - #define V63 63 - #define V64 64 - #define V65 65 - #define V66 66 - #define V67 67 - #define V68 68 - #define V69 69 - #define V70 70 - #define V71 71 - #define V72 72 - #define V73 73 - #define V74 74 - #define V75 75 - #define V76 76 - #define V77 77 - #define V78 78 - #define V79 79 - #define V80 80 - #define V81 81 - #define V82 82 - #define V83 83 - #define V84 84 - #define V85 85 - #define V86 86 - #define V87 87 - #define V88 88 - #define V89 89 - #define V90 90 - #define V91 91 - #define V92 92 - #define V93 93 - #define V94 94 - #define V95 95 - #define V96 96 - #define V97 97 - #define V98 98 - #define V99 99 - #define V100 100 - #define V101 101 - #define V102 102 - #define V103 103 - #define V104 104 - #define V105 105 - #define V106 106 - #define V107 107 - #define V108 108 - #define V109 109 - #define V110 110 - #define V111 111 - #define V112 112 - #define V113 113 - #define V114 114 - #define V115 115 - #define V116 116 - #define V117 117 - #define V118 118 - #define V119 119 - #define V120 120 - #define V121 121 - #define V122 122 - #define V123 123 - #define V124 124 - #define V125 125 - #define V126 126 - #define V127 127 -#endif - -// Initial syntax: -#define BLYNK_WRITE_2(pin) \ - void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m) - -#define BLYNK_READ_2(pin) \ - void BlynkWidgetRead ## pin (BlynkReq BLYNK_UNUSED &request) - -#define BLYNK_WRITE_DEFAULT() BLYNK_WRITE_2(Default) -#define BLYNK_READ_DEFAULT() BLYNK_READ_2(Default) - -#define BLYNK_WRITE(pin) BLYNK_WRITE_2(pin) -#define BLYNK_READ(pin) BLYNK_READ_2(pin) - -// New, more readable syntax: -#define BLYNK_IN_2(pin) \ - void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &getValue) - -#define BLYNK_OUT_2(pin) \ - void BlynkWidgetRead ## pin (BlynkReq BLYNK_UNUSED &request) - -#define BLYNK_INPUT_DEFAULT() BLYNK_IN_2(Default) -#define BLYNK_OUTPUT_DEFAULT() BLYNK_OUT_2(Default) - -#define BLYNK_INPUT(pin) BLYNK_IN_2(pin) -#define BLYNK_OUTPUT(pin) BLYNK_OUT_2(pin) - -// Additional handlers -#define BLYNK_CONNECTED() void BlynkOnConnected() -#define BLYNK_DISCONNECTED() void BlynkOnDisconnected() - -// Advanced functions - -#define BLYNK_VAR_INT(name, pin) \ - int name; \ - BLYNK_WRITE(pin) { name = param.asInt(); } \ - BLYNK_READ(pin) { Blynk.virtualWrite(pin, name); } - -#define BLYNK_VAR_LONG(name, pin) \ - long name; \ - BLYNK_WRITE(pin) { name = param.asLong(); } \ - BLYNK_READ(pin) { Blynk.virtualWrite(pin, name); } - -#ifndef BLYNK_NO_FLOAT -#define BLYNK_VAR_DOUBLE(name, pin) \ - double name; \ - BLYNK_WRITE(pin) { name = param.asDouble(); } \ - BLYNK_READ(pin) { Blynk.virtualWrite(pin, name); } -#endif - -#ifdef ARDUINO -#define BLYNK_VAR_STRING(name, pin) \ - String name; \ - BLYNK_WRITE(pin) { name = param.asStr(); } \ - BLYNK_READ(pin) { Blynk.virtualWrite(pin, name); } -#endif - -// Default read/write handlers (you can redefine them in your code) -#ifdef __cplusplus -extern "C" { -#endif - -struct BlynkReq -{ - uint8_t pin; -}; - -typedef void (*WidgetReadHandler)(BlynkReq BLYNK_UNUSED &request); -typedef void (*WidgetWriteHandler)(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m); - -WidgetReadHandler GetReadHandler(uint8_t pin); -WidgetWriteHandler GetWriteHandler(uint8_t pin); - -// Declare placeholders -BLYNK_READ(); -BLYNK_WRITE(); -void BlynkNoOpCbk(); - -// Declare all pin handlers (you can redefine them in your code) -BLYNK_CONNECTED(); -BLYNK_DISCONNECTED(); - -// Internal Virtual Pins -BLYNK_WRITE(InternalPinACON); -BLYNK_WRITE(InternalPinADIS); -BLYNK_WRITE(InternalPinRTC); -BLYNK_WRITE(InternalPinOTA); - -// Aliases -#define BLYNK_APP_CONNECTED() BLYNK_WRITE(InternalPinACON) -#define BLYNK_APP_DISCONNECTED() BLYNK_WRITE(InternalPinADIS) - -// Regular Virtual Pins -BLYNK_READ_DEFAULT(); -BLYNK_WRITE_DEFAULT(); - -BLYNK_READ(0 ); -BLYNK_READ(1 ); -BLYNK_READ(2 ); -BLYNK_READ(3 ); -BLYNK_READ(4 ); -BLYNK_READ(5 ); -BLYNK_READ(6 ); -BLYNK_READ(7 ); -BLYNK_READ(8 ); -BLYNK_READ(9 ); -BLYNK_READ(10); -BLYNK_READ(11); -BLYNK_READ(12); -BLYNK_READ(13); -BLYNK_READ(14); -BLYNK_READ(15); -BLYNK_READ(16); -BLYNK_READ(17); -BLYNK_READ(18); -BLYNK_READ(19); -BLYNK_READ(20); -BLYNK_READ(21); -BLYNK_READ(22); -BLYNK_READ(23); -BLYNK_READ(24); -BLYNK_READ(25); -BLYNK_READ(26); -BLYNK_READ(27); -BLYNK_READ(28); -BLYNK_READ(29); -BLYNK_READ(30); -BLYNK_READ(31); -#ifdef BLYNK_USE_128_VPINS - BLYNK_READ(32); - BLYNK_READ(33); - BLYNK_READ(34); - BLYNK_READ(35); - BLYNK_READ(36); - BLYNK_READ(37); - BLYNK_READ(38); - BLYNK_READ(39); - BLYNK_READ(40); - BLYNK_READ(41); - BLYNK_READ(42); - BLYNK_READ(43); - BLYNK_READ(44); - BLYNK_READ(45); - BLYNK_READ(46); - BLYNK_READ(47); - BLYNK_READ(48); - BLYNK_READ(49); - BLYNK_READ(50); - BLYNK_READ(51); - BLYNK_READ(52); - BLYNK_READ(53); - BLYNK_READ(54); - BLYNK_READ(55); - BLYNK_READ(56); - BLYNK_READ(57); - BLYNK_READ(58); - BLYNK_READ(59); - BLYNK_READ(60); - BLYNK_READ(61); - BLYNK_READ(62); - BLYNK_READ(63); - BLYNK_READ(64); - BLYNK_READ(65); - BLYNK_READ(66); - BLYNK_READ(67); - BLYNK_READ(68); - BLYNK_READ(69); - BLYNK_READ(70); - BLYNK_READ(71); - BLYNK_READ(72); - BLYNK_READ(73); - BLYNK_READ(74); - BLYNK_READ(75); - BLYNK_READ(76); - BLYNK_READ(77); - BLYNK_READ(78); - BLYNK_READ(79); - BLYNK_READ(80); - BLYNK_READ(81); - BLYNK_READ(82); - BLYNK_READ(83); - BLYNK_READ(84); - BLYNK_READ(85); - BLYNK_READ(86); - BLYNK_READ(87); - BLYNK_READ(88); - BLYNK_READ(89); - BLYNK_READ(90); - BLYNK_READ(91); - BLYNK_READ(92); - BLYNK_READ(93); - BLYNK_READ(94); - BLYNK_READ(95); - BLYNK_READ(96); - BLYNK_READ(97); - BLYNK_READ(98); - BLYNK_READ(99); - BLYNK_READ(100); - BLYNK_READ(101); - BLYNK_READ(102); - BLYNK_READ(103); - BLYNK_READ(104); - BLYNK_READ(105); - BLYNK_READ(106); - BLYNK_READ(107); - BLYNK_READ(108); - BLYNK_READ(109); - BLYNK_READ(110); - BLYNK_READ(111); - BLYNK_READ(112); - BLYNK_READ(113); - BLYNK_READ(114); - BLYNK_READ(115); - BLYNK_READ(116); - BLYNK_READ(117); - BLYNK_READ(118); - BLYNK_READ(119); - BLYNK_READ(120); - BLYNK_READ(121); - BLYNK_READ(122); - BLYNK_READ(123); - BLYNK_READ(124); - BLYNK_READ(125); - BLYNK_READ(126); - BLYNK_READ(127); -#endif - -BLYNK_WRITE(0 ); -BLYNK_WRITE(1 ); -BLYNK_WRITE(2 ); -BLYNK_WRITE(3 ); -BLYNK_WRITE(4 ); -BLYNK_WRITE(5 ); -BLYNK_WRITE(6 ); -BLYNK_WRITE(7 ); -BLYNK_WRITE(8 ); -BLYNK_WRITE(9 ); -BLYNK_WRITE(10); -BLYNK_WRITE(11); -BLYNK_WRITE(12); -BLYNK_WRITE(13); -BLYNK_WRITE(14); -BLYNK_WRITE(15); -BLYNK_WRITE(16); -BLYNK_WRITE(17); -BLYNK_WRITE(18); -BLYNK_WRITE(19); -BLYNK_WRITE(20); -BLYNK_WRITE(21); -BLYNK_WRITE(22); -BLYNK_WRITE(23); -BLYNK_WRITE(24); -BLYNK_WRITE(25); -BLYNK_WRITE(26); -BLYNK_WRITE(27); -BLYNK_WRITE(28); -BLYNK_WRITE(29); -BLYNK_WRITE(30); -BLYNK_WRITE(31); -#ifdef BLYNK_USE_128_VPINS - BLYNK_WRITE(32); - BLYNK_WRITE(33); - BLYNK_WRITE(34); - BLYNK_WRITE(35); - BLYNK_WRITE(36); - BLYNK_WRITE(37); - BLYNK_WRITE(38); - BLYNK_WRITE(39); - BLYNK_WRITE(40); - BLYNK_WRITE(41); - BLYNK_WRITE(42); - BLYNK_WRITE(43); - BLYNK_WRITE(44); - BLYNK_WRITE(45); - BLYNK_WRITE(46); - BLYNK_WRITE(47); - BLYNK_WRITE(48); - BLYNK_WRITE(49); - BLYNK_WRITE(50); - BLYNK_WRITE(51); - BLYNK_WRITE(52); - BLYNK_WRITE(53); - BLYNK_WRITE(54); - BLYNK_WRITE(55); - BLYNK_WRITE(56); - BLYNK_WRITE(57); - BLYNK_WRITE(58); - BLYNK_WRITE(59); - BLYNK_WRITE(60); - BLYNK_WRITE(61); - BLYNK_WRITE(62); - BLYNK_WRITE(63); - BLYNK_WRITE(64); - BLYNK_WRITE(65); - BLYNK_WRITE(66); - BLYNK_WRITE(67); - BLYNK_WRITE(68); - BLYNK_WRITE(69); - BLYNK_WRITE(70); - BLYNK_WRITE(71); - BLYNK_WRITE(72); - BLYNK_WRITE(73); - BLYNK_WRITE(74); - BLYNK_WRITE(75); - BLYNK_WRITE(76); - BLYNK_WRITE(77); - BLYNK_WRITE(78); - BLYNK_WRITE(79); - BLYNK_WRITE(80); - BLYNK_WRITE(81); - BLYNK_WRITE(82); - BLYNK_WRITE(83); - BLYNK_WRITE(84); - BLYNK_WRITE(85); - BLYNK_WRITE(86); - BLYNK_WRITE(87); - BLYNK_WRITE(88); - BLYNK_WRITE(89); - BLYNK_WRITE(90); - BLYNK_WRITE(91); - BLYNK_WRITE(92); - BLYNK_WRITE(93); - BLYNK_WRITE(94); - BLYNK_WRITE(95); - BLYNK_WRITE(96); - BLYNK_WRITE(97); - BLYNK_WRITE(98); - BLYNK_WRITE(99); - BLYNK_WRITE(100); - BLYNK_WRITE(101); - BLYNK_WRITE(102); - BLYNK_WRITE(103); - BLYNK_WRITE(104); - BLYNK_WRITE(105); - BLYNK_WRITE(106); - BLYNK_WRITE(107); - BLYNK_WRITE(108); - BLYNK_WRITE(109); - BLYNK_WRITE(110); - BLYNK_WRITE(111); - BLYNK_WRITE(112); - BLYNK_WRITE(113); - BLYNK_WRITE(114); - BLYNK_WRITE(115); - BLYNK_WRITE(116); - BLYNK_WRITE(117); - BLYNK_WRITE(118); - BLYNK_WRITE(119); - BLYNK_WRITE(120); - BLYNK_WRITE(121); - BLYNK_WRITE(122); - BLYNK_WRITE(123); - BLYNK_WRITE(124); - BLYNK_WRITE(125); - BLYNK_WRITE(126); - BLYNK_WRITE(127); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkParam.h b/wled00/src/dependencies/blynk/Blynk/BlynkParam.h deleted file mode 100644 index 026a3cc9..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkParam.h +++ /dev/null @@ -1,379 +0,0 @@ -/** - * @file BlynkParam.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Container for handler parameters - * - */ - -#ifndef BlynkParam_h -#define BlynkParam_h - -#include -#include -#include "BlynkConfig.h" -#include "BlynkDebug.h" - -#define BLYNK_PARAM_KV(k, v) k "\0" v "\0" - -class BlynkParam -{ -public: - class iterator - { - public: - iterator(const char* c, const char* l) : ptr(c), limit(l) {} - static iterator invalid() { return iterator(NULL, NULL); } - - operator const char* () const { return asStr(); } - operator int () const { return asInt(); } - const char* asStr() const { return ptr; } - const char* asString() const { return ptr; } - int asInt() const { if(!isValid()) return 0; return atoi(ptr); } - long asLong() const { if(!isValid()) return 0; return atol(ptr); } - //long long asLongLong() const { return atoll(ptr); } -#ifndef BLYNK_NO_FLOAT - double asDouble() const { if(!isValid()) return 0; return atof(ptr); } - float asFloat() const { if(!isValid()) return 0; return atof(ptr); } -#endif - bool isValid() const { return ptr != NULL && ptr < limit; } - bool isEmpty() const { if(!isValid()) return true; return *ptr == '\0'; } - - bool operator < (const iterator& it) const { return ptr < it.ptr; } - bool operator >= (const iterator& it) const { return ptr >= it.ptr; } - - iterator& operator ++() { - if(isValid()) { - ptr += strlen(ptr) + 1; - } - return *this; - } - private: - const char* ptr; - const char* limit; - }; - -public: - explicit - BlynkParam(void* addr, size_t length) - : buff((char*)addr), len(length), buff_size(length) - {} - - explicit - BlynkParam(void* addr, size_t length, size_t buffsize) - : buff((char*)addr), len(length), buff_size(buffsize) - {} - - const char* asStr() const { return buff; } - const char* asString() const { return buff; } - int asInt() const { return atoi(buff); } - long asLong() const { return atol(buff); } - //long long asLongLong() const { return atoll(buff); } -#ifndef BLYNK_NO_FLOAT - double asDouble() const { return atof(buff); } - float asFloat() const { return atof(buff); } -#endif - bool isEmpty() const { return *buff == '\0'; } - - iterator begin() const { return iterator(buff, buff+len); } - iterator end() const { return iterator(buff+len, buff+len); } - - iterator operator[](int index) const; - iterator operator[](const char* key) const; - - void* getBuffer() const { return (void*)buff; } - size_t getLength() const { return len; } - - // Modification - void add(int value); - void add(unsigned int value); - void add(long value); - void add(unsigned long value); - void add(long long value); - void add(unsigned long long value); -#ifndef BLYNK_NO_FLOAT - void add(float value); - void add(double value); -#endif - void add(const char* str); - void add(const void* b, size_t l); -#if defined(ARDUINO) || defined(SPARK) || defined(PARTICLE) - void add(const String& str); -#if defined(BLYNK_HAS_PROGMEM) - void add(const __FlashStringHelper* str); -#endif -#endif - - template - void add_multi(T last) { - add(last); - } - - template - void add_multi(T head, Args... tail) { - add(head); - add_multi(tail...); - } - - template - void add_key(const char* key, const TV& val) { - add(key); - add(val); - } - -protected: - char* buff; - size_t len; - size_t buff_size; -}; - - -class BlynkParamAllocated - : public BlynkParam -{ -public: - BlynkParamAllocated(size_t size) - : BlynkParam(malloc(size), 0, size) - {} - ~BlynkParamAllocated() { - free(buff); - } -}; - -inline -BlynkParam::iterator BlynkParam::operator[](int index) const -{ - const iterator e = end(); - for (iterator it = begin(); it < e; ++it) { - if (!index--) { - return it; - } - } - return iterator::invalid(); -} - -inline -BlynkParam::iterator BlynkParam::operator[](const char* key) const -{ - const iterator e = end(); - for (iterator it = begin(); it < e; ++it) { - if (!strcmp(it.asStr(), key)) { - return ++it; - } - ++it; - if (it >= e) break; - } - return iterator::invalid(); -} - -inline -void BlynkParam::add(const void* b, size_t l) -{ - if (len + l > buff_size) - return; - memcpy(buff+len, b, l); - len += l; -} - -inline -void BlynkParam::add(const char* str) -{ - if (str == NULL) { - buff[len++] = '\0'; - return; - } - add(str, strlen(str)+1); -} - -#if defined(ARDUINO) || defined(SPARK) || defined(PARTICLE) -inline -void BlynkParam::add(const String& str) -{ -#if defined(ARDUINO_AVR_DIGISPARK) \ - || defined(__ARDUINO_X86__) \ - || defined(__RFduino__) - - size_t len = str.length()+1; - char buff[len]; - const_cast(str).toCharArray(buff, len); - add(buff, len); -#else - add(str.c_str()); -#endif -} - -#if defined(BLYNK_HAS_PROGMEM) - -inline -void BlynkParam::add(const __FlashStringHelper* ifsh) -{ - PGM_P p = reinterpret_cast(ifsh); - size_t l = strlen_P(p) + 1; - if (len + l > buff_size) - return; - memcpy_P(buff+len, p, l); - len += l; - buff[len] = '\0'; -} - -#endif - -#endif - -#if defined(__AVR__) || defined (ARDUINO_ARCH_ARC32) - - #include - - inline - void BlynkParam::add(int value) - { - char str[2 + 8 * sizeof(value)]; - itoa(value, str, 10); - add(str); - } - - inline - void BlynkParam::add(unsigned int value) - { - char str[1 + 8 * sizeof(value)]; - utoa(value, str, 10); - add(str); - } - - inline - void BlynkParam::add(long value) - { - char str[2 + 8 * sizeof(value)]; - ltoa(value, str, 10); - add(str); - } - - inline - void BlynkParam::add(unsigned long value) - { - char str[1 + 8 * sizeof(value)]; - ultoa(value, str, 10); - add(str); - } - - inline - void BlynkParam::add(long long value) // TODO: this currently adds just a long - { - char str[2 + 8 * sizeof(value)]; - ltoa(value, str, 10); - add(str); - } - - inline - void BlynkParam::add(unsigned long long value) // TODO: this currently adds just a long - { - char str[1 + 8 * sizeof(value)]; - ultoa(value, str, 10); - add(str); - } - -#ifndef BLYNK_NO_FLOAT - - inline - void BlynkParam::add(float value) - { - char str[33]; - dtostrf(value, 5, 3, str); - add(str); - } - - inline - void BlynkParam::add(double value) - { - char str[33]; - dtostrf(value, 5, 7, str); - add(str); - } -#endif - -#else - - #include - - inline - void BlynkParam::add(int value) - { - len += snprintf(buff+len, buff_size-len, "%i", value)+1; - } - - inline - void BlynkParam::add(unsigned int value) - { - len += snprintf(buff+len, buff_size-len, "%u", value)+1; - } - - inline - void BlynkParam::add(long value) - { - len += snprintf(buff+len, buff_size-len, "%li", value)+1; - } - - inline - void BlynkParam::add(unsigned long value) - { - len += snprintf(buff+len, buff_size-len, "%lu", value)+1; - } - - inline - void BlynkParam::add(long long value) - { - len += snprintf(buff+len, buff_size-len, "%lli", value)+1; - } - - inline - void BlynkParam::add(unsigned long long value) - { - len += snprintf(buff+len, buff_size-len, "%llu", value)+1; - } - -#ifndef BLYNK_NO_FLOAT - -#if defined(BLYNK_USE_INTERNAL_DTOSTRF) - - extern char* dtostrf_internal(double number, signed char width, unsigned char prec, char *s); - - inline - void BlynkParam::add(float value) - { - char str[33]; - dtostrf_internal(value, 5, 3, str); - add(str); - } - - inline - void BlynkParam::add(double value) - { - char str[33]; - dtostrf_internal(value, 5, 7, str); - add(str); - } - -#else - - inline - void BlynkParam::add(float value) - { - len += snprintf(buff+len, buff_size-len, "%2.3f", value)+1; - } - - inline - void BlynkParam::add(double value) - { - len += snprintf(buff+len, buff_size-len, "%2.7f", value)+1; - } - -#endif - -#endif - -#endif - - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkProtocol.h b/wled00/src/dependencies/blynk/Blynk/BlynkProtocol.h deleted file mode 100644 index c541f6a8..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkProtocol.h +++ /dev/null @@ -1,535 +0,0 @@ -/** - * @file BlynkProtocol.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Blynk protocol implementation - * - */ - -#ifndef BlynkProtocol_h -#define BlynkProtocol_h - -#include -#include -#include "BlynkDebug.h" -#include "BlynkProtocolDefs.h" -#include "BlynkApi.h" -#include "BlynkUtility.h" - -template -class BlynkProtocol - : public BlynkApi< BlynkProtocol > -{ - friend class BlynkApi< BlynkProtocol >; -public: - enum BlynkState { - CONNECTING, - CONNECTED, - DISCONNECTED, - }; - - BlynkProtocol(Transp& transp) - : conn(transp) - , authkey(NULL) - , redir_serv(NULL) - , lastActivityIn(0) - , lastActivityOut(0) - , lastHeartbeat(0) - , msgIdOut(0) - , msgIdOutOverride(0) - , nesting(0) - , state(CONNECTING) - {} - - bool connected() { return state == CONNECTED; } - - bool connect(uint32_t timeout = BLYNK_TIMEOUT_MS*3) { - conn.disconnect(); - state = CONNECTING; - millis_time_t started = BlynkMillis(); - while ((state != CONNECTED) && - (BlynkMillis() - started < timeout)) - { - run(); - } - return state == CONNECTED; - } - - void disconnect() { - conn.disconnect(); - state = DISCONNECTED; - BLYNK_LOG1(BLYNK_F("Disconnected")); - } - - bool run(bool avail = false); - - // TODO: Fixme - void startSession() { - conn.connect(); - state = CONNECTING; - msgIdOut = 0; - lastHeartbeat = lastActivityIn = lastActivityOut = (BlynkMillis() - 5000UL); - } - - void sendCmd(uint8_t cmd, uint16_t id = 0, const void* data = NULL, size_t length = 0, const void* data2 = NULL, size_t length2 = 0); - -private: - - void internalReconnect() { - state = CONNECTING; - conn.disconnect(); - BlynkOnDisconnected(); - } - - int readHeader(BlynkHeader& hdr); - uint16_t getNextMsgId(); - -protected: - void begin(const char* auth) { - this->authkey = auth; - lastHeartbeat = lastActivityIn = lastActivityOut = (BlynkMillis() - 5000UL); - -#if defined(BLYNK_NO_FANCY_LOGO) - BLYNK_LOG1(BLYNK_F("Blynk v" BLYNK_VERSION " on " BLYNK_INFO_DEVICE)); -#else - BLYNK_LOG1(BLYNK_F(BLYNK_NEWLINE - " ___ __ __" BLYNK_NEWLINE - " / _ )/ /_ _____ / /__" BLYNK_NEWLINE - " / _ / / // / _ \\/ '_/" BLYNK_NEWLINE - " /____/_/\\_, /_//_/_/\\_\\" BLYNK_NEWLINE - " /___/ v" BLYNK_VERSION " on " BLYNK_INFO_DEVICE BLYNK_NEWLINE - BLYNK_NEWLINE - " Give Blynk a Github star! => https://github.com/blynkkk/blynk-library" BLYNK_NEWLINE - )); -#endif - } - bool processInput(void); - - Transp& conn; - -private: - const char* authkey; - char* redir_serv; - millis_time_t lastActivityIn; - millis_time_t lastActivityOut; - union { - millis_time_t lastHeartbeat; - millis_time_t lastLogin; - }; - uint16_t msgIdOut; - uint16_t msgIdOutOverride; - uint8_t nesting; -protected: - BlynkState state; -}; - -template -bool BlynkProtocol::run(bool avail) -{ - BLYNK_RUN_YIELD(); - - if (state == DISCONNECTED) { - return false; - } - - // Detect nesting - BlynkHelperAutoInc guard(nesting); - if (msgIdOutOverride || nesting > 2) { - //BLYNK_LOG1(BLYNK_F("Nested run() skipped")); - return true; - } - - if (conn.connected()) { - while (avail || conn.available() > 0) { - //BLYNK_LOG2(BLYNK_F("Available: "), conn.available()); - //const unsigned long t = micros(); - if (!processInput()) { - conn.disconnect(); -// TODO: Only when in direct mode? -#ifdef BLYNK_USE_DIRECT_CONNECT - state = CONNECTING; -#endif - BlynkOnDisconnected(); - return false; - } - avail = false; - //BLYNK_LOG2(BLYNK_F("Proc time: "), micros() - t); - } - } - - const millis_time_t t = BlynkMillis(); - - // Update connection status after running commands - const bool tconn = conn.connected(); - - if (state == CONNECTED) { - if (!tconn) { - lastHeartbeat = t; - internalReconnect(); - return false; - } - - if (t - lastActivityIn > (1000UL * BLYNK_HEARTBEAT + BLYNK_TIMEOUT_MS*3)) { -#ifdef BLYNK_DEBUG - BLYNK_LOG6(BLYNK_F("Heartbeat timeout: "), t, BLYNK_F(", "), lastActivityIn, BLYNK_F(", "), lastHeartbeat); -#else - BLYNK_LOG1(BLYNK_F("Heartbeat timeout")); -#endif - internalReconnect(); - return false; - } else if ((t - lastActivityIn > 1000UL * BLYNK_HEARTBEAT || - t - lastActivityOut > 1000UL * BLYNK_HEARTBEAT) && - t - lastHeartbeat > BLYNK_TIMEOUT_MS) - { - // Send ping if we didn't either send or receive something - // for BLYNK_HEARTBEAT seconds - sendCmd(BLYNK_CMD_PING); - lastHeartbeat = t; - } - } else if (state == CONNECTING) { -#ifdef BLYNK_USE_DIRECT_CONNECT - if (!tconn) - conn.connect(); -#else - if (tconn && (t - lastLogin > BLYNK_TIMEOUT_MS)) { - BLYNK_LOG1(BLYNK_F("Login timeout")); - conn.disconnect(); - state = CONNECTING; - return false; - } else if (!tconn && (t - lastLogin > 5000UL)) { - conn.disconnect(); - if (!conn.connect()) { - lastLogin = t; - return false; - } - - msgIdOut = 1; - sendCmd(BLYNK_CMD_LOGIN, 1, authkey, strlen(authkey)); - lastLogin = lastActivityOut; - return true; - } -#endif - } - return true; -} - -template -BLYNK_FORCE_INLINE -bool BlynkProtocol::processInput(void) -{ - BlynkHeader hdr; - const int ret = readHeader(hdr); - - if (ret == 0) { - return true; // Considered OK (no data on input) - } - - if (ret < 0 || hdr.msg_id == 0) { -#ifdef BLYNK_DEBUG - BLYNK_LOG2(BLYNK_F("Bad hdr len: "), ret); -#endif - return false; - } - - if (hdr.type == BLYNK_CMD_RESPONSE) { - lastActivityIn = BlynkMillis(); - -#ifndef BLYNK_USE_DIRECT_CONNECT - if (state == CONNECTING && (1 == hdr.msg_id)) { - switch (hdr.length) { - case BLYNK_SUCCESS: - case BLYNK_ALREADY_REGISTERED: - BLYNK_LOG3(BLYNK_F("Ready (ping: "), lastActivityIn-lastHeartbeat, BLYNK_F("ms).")); - lastHeartbeat = lastActivityIn; - state = CONNECTED; -#ifdef BLYNK_DEBUG - if (size_t ram = BlynkFreeRam()) { - BLYNK_LOG2(BLYNK_F("Free RAM: "), ram); - } -#endif - this->sendInfo(); - BLYNK_RUN_YIELD(); - BlynkOnConnected(); - return true; - case BLYNK_INVALID_TOKEN: - BLYNK_LOG1(BLYNK_F("Invalid auth token")); - break; - default: - BLYNK_LOG2(BLYNK_F("Connect failed. code: "), hdr.length); - } - return false; - } - if (BLYNK_NOT_AUTHENTICATED == hdr.length) { - return false; - } -#endif - // TODO: return code may indicate App presence - return true; - } - - if (hdr.length > BLYNK_MAX_READBYTES) { - BLYNK_LOG2(BLYNK_F("Packet too big: "), hdr.length); - // TODO: Flush - internalReconnect(); - return true; - } - - uint8_t inputBuffer[hdr.length+1]; // Add 1 to zero-terminate - if (hdr.length != conn.read(inputBuffer, hdr.length)) { -#ifdef BLYNK_DEBUG - BLYNK_LOG1(BLYNK_F("Can't read body")); -#endif - return false; - } - inputBuffer[hdr.length] = '\0'; - - BLYNK_DBG_DUMP(">", inputBuffer, hdr.length); - - lastActivityIn = BlynkMillis(); - - switch (hdr.type) - { - case BLYNK_CMD_LOGIN: { -#ifdef BLYNK_USE_DIRECT_CONNECT - if (strncmp(authkey, (char*)inputBuffer, 32)) { - BLYNK_LOG1(BLYNK_F("Invalid token")); - sendCmd(BLYNK_CMD_RESPONSE, hdr.msg_id, NULL, BLYNK_INVALID_TOKEN); - break; - } -#endif - if (state == CONNECTING) { - BLYNK_LOG1(BLYNK_F("Ready")); - state = CONNECTED; -#ifdef BLYNK_DEBUG - if (size_t ram = BlynkFreeRam()) { - BLYNK_LOG2(BLYNK_F("Free RAM: "), ram); - } -#endif - this->sendInfo(); - BLYNK_RUN_YIELD(); - BlynkOnConnected(); - } - sendCmd(BLYNK_CMD_RESPONSE, hdr.msg_id, NULL, BLYNK_SUCCESS); - } break; - case BLYNK_CMD_PING: { - sendCmd(BLYNK_CMD_RESPONSE, hdr.msg_id, NULL, BLYNK_SUCCESS); - } break; - case BLYNK_CMD_REDIRECT: { - if (!redir_serv) { - redir_serv = (char*)malloc(32); - } - BlynkParam param(inputBuffer, hdr.length); - uint16_t redir_port = BLYNK_DEFAULT_PORT; // TODO: Fixit - - BlynkParam::iterator it = param.begin(); - if (it >= param.end()) - return false; - strncpy(redir_serv, it.asStr(), 32); - if (++it < param.end()) - redir_port = it.asLong(); - BLYNK_LOG4(BLYNK_F("Redirecting to "), redir_serv, ':', redir_port); - conn.disconnect(); - conn.begin(redir_serv, redir_port); - state = CONNECTING; - lastHeartbeat = lastActivityIn = lastActivityOut = (BlynkMillis() - 5000UL); - } break; - case BLYNK_CMD_HARDWARE: - case BLYNK_CMD_BRIDGE: { - msgIdOutOverride = hdr.msg_id; - this->processCmd(inputBuffer, hdr.length); - msgIdOutOverride = 0; - } break; - case BLYNK_CMD_INTERNAL: { - BlynkReq req = { 0 }; - BlynkParam param(inputBuffer, hdr.length); - BlynkParam::iterator it = param.begin(); - if (it >= param.end()) - return true; - - uint32_t cmd32; - memcpy(&cmd32, it.asStr(), sizeof(cmd32)); - - ++it; - char* start = (char*)(it).asStr(); - unsigned length = hdr.length - (start - (char*)inputBuffer); - BlynkParam param2(start, length); - - switch (cmd32) { - case BLYNK_INT_RTC: BlynkWidgetWriteInternalPinRTC(req, param2); break; - case BLYNK_INT_OTA: BlynkWidgetWriteInternalPinOTA(req, param2); break; - case BLYNK_INT_ACON: BlynkWidgetWriteInternalPinACON(req, param2); break; - case BLYNK_INT_ADIS: BlynkWidgetWriteInternalPinADIS(req, param2); break; -#ifdef BLYNK_DEBUG - default: BLYNK_LOG2(BLYNK_F("Invalid internal cmd:"), param.asStr()); -#endif - } - } break; - case BLYNK_CMD_DEBUG_PRINT: { - if (hdr.length) { - BLYNK_LOG2(BLYNK_F("Server: "), (char*)inputBuffer); - } - } break; - default: { -#ifdef BLYNK_DEBUG - BLYNK_LOG2(BLYNK_F("Invalid header type: "), hdr.type); -#endif - // TODO: Flush - internalReconnect(); - } break; - } - - return true; -} - -template -int BlynkProtocol::readHeader(BlynkHeader& hdr) -{ - size_t rlen = conn.read(&hdr, sizeof(hdr)); - if (rlen == 0) { - return 0; - } - - if (sizeof(hdr) != rlen) { - return -1; - } - - BLYNK_DBG_DUMP(">", &hdr, sizeof(BlynkHeader)); - - hdr.msg_id = ntohs(hdr.msg_id); - hdr.length = ntohs(hdr.length); - - return rlen; -} - -#ifndef BLYNK_SEND_THROTTLE -#define BLYNK_SEND_THROTTLE 0 -#endif - -#ifndef BLYNK_SEND_CHUNK -#define BLYNK_SEND_CHUNK 1024 // Just a big number -#endif - -template -void BlynkProtocol::sendCmd(uint8_t cmd, uint16_t id, const void* data, size_t length, const void* data2, size_t length2) -{ - if (!conn.connected() || (cmd != BLYNK_CMD_RESPONSE && cmd != BLYNK_CMD_PING && cmd != BLYNK_CMD_LOGIN && state != CONNECTED) ) { -#ifdef BLYNK_DEBUG_ALL - BLYNK_LOG2(BLYNK_F("Cmd skipped:"), cmd); -#endif - return; - } - - if (0 == id) { - id = getNextMsgId(); - } - -#if defined(BLYNK_MSG_LIMIT) && BLYNK_MSG_LIMIT > 0 - if (cmd >= BLYNK_CMD_TWEET && cmd <= BLYNK_CMD_HARDWARE) { - const millis_time_t allowed_time = BlynkMax(lastActivityOut, lastActivityIn) + 1000/BLYNK_MSG_LIMIT; - int32_t wait_time = allowed_time - BlynkMillis(); - if (wait_time >= 0) { -#ifdef BLYNK_DEBUG_ALL - BLYNK_LOG2(BLYNK_F("Waiting:"), wait_time); -#endif - while (wait_time >= 0) { - run(); - wait_time = allowed_time - BlynkMillis(); - } - } else if (nesting == 0) { - run(); - } - } -#endif - - const size_t full_length = (sizeof(BlynkHeader)) + - (data ? length : 0) + - (data2 ? length2 : 0); - -#if defined(BLYNK_SEND_ATOMIC) || defined(ESP8266) || defined(ESP32) || defined(SPARK) || defined(PARTICLE) || defined(ENERGIA) - // Those have more RAM and like single write at a time... - - uint8_t buff[full_length]; - - BlynkHeader* hdr = (BlynkHeader*)buff; - hdr->type = cmd; - hdr->msg_id = htons(id); - hdr->length = htons(length+length2); - - size_t pos = sizeof(BlynkHeader); - if (data && length) { - memcpy(buff + pos, data, length); - pos += length; - } - if (data2 && length2) { - memcpy(buff + pos, data2, length2); - } - - size_t wlen = 0; - while (wlen < full_length) { - const size_t chunk = BlynkMin(size_t(BLYNK_SEND_CHUNK), full_length - wlen); - BLYNK_DBG_DUMP("<", buff + wlen, chunk); - const size_t w = conn.write(buff + wlen, chunk); - BlynkDelay(BLYNK_SEND_THROTTLE); - if (w == 0) { -#ifdef BLYNK_DEBUG - BLYNK_LOG1(BLYNK_F("Cmd error")); -#endif - conn.disconnect(); - state = CONNECTING; - BlynkOnDisconnected(); - return; - } - wlen += w; - } - -#else - - BlynkHeader hdr; - hdr.type = cmd; - hdr.msg_id = htons(id); - hdr.length = htons(length+length2); - - BLYNK_DBG_DUMP("<", &hdr, sizeof(hdr)); - size_t wlen = conn.write(&hdr, sizeof(hdr)); - BlynkDelay(BLYNK_SEND_THROTTLE); - - if (cmd != BLYNK_CMD_RESPONSE) { - if (length) { - BLYNK_DBG_DUMP("<", data, length); - wlen += conn.write(data, length); - BlynkDelay(BLYNK_SEND_THROTTLE); - } - if (length2) { - BLYNK_DBG_DUMP("<", data2, length2); - wlen += conn.write(data2, length2); - BlynkDelay(BLYNK_SEND_THROTTLE); - } - } - -#endif - - if (wlen != full_length) { -#ifdef BLYNK_DEBUG - BLYNK_LOG4(BLYNK_F("Sent "), wlen, '/', full_length); -#endif - internalReconnect(); - return; - } - - lastActivityOut = BlynkMillis(); - -} - -template -uint16_t BlynkProtocol::getNextMsgId() -{ - if (msgIdOutOverride != 0) - return msgIdOutOverride; - if (++msgIdOut == 0) - msgIdOut = 1; - return msgIdOut; -} - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkProtocolDefs.h b/wled00/src/dependencies/blynk/Blynk/BlynkProtocolDefs.h deleted file mode 100644 index d294a626..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkProtocolDefs.h +++ /dev/null @@ -1,140 +0,0 @@ -/** - * @file BlynkProtocolDefs.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief Blynk protocol definitions - * - */ - -#ifndef BlynkProtocolDefs_h -#define BlynkProtocolDefs_h - -enum BlynkCmd -{ - BLYNK_CMD_RESPONSE = 0, - BLYNK_CMD_REGISTER = 1, - BLYNK_CMD_LOGIN = 2, - BLYNK_CMD_SAVE_PROF = 3, - BLYNK_CMD_LOAD_PROF = 4, - BLYNK_CMD_GET_TOKEN = 5, - BLYNK_CMD_PING = 6, - BLYNK_CMD_ACTIVATE = 7, - BLYNK_CMD_DEACTIVATE = 8, - BLYNK_CMD_REFRESH = 9, - BLYNK_CMD_GET_GRAPH_DATA = 10, - BLYNK_CMD_GET_GRAPH_DATA_RESPONSE = 11, - - BLYNK_CMD_TWEET = 12, - BLYNK_CMD_EMAIL = 13, - BLYNK_CMD_NOTIFY = 14, - BLYNK_CMD_BRIDGE = 15, - BLYNK_CMD_HARDWARE_SYNC = 16, - BLYNK_CMD_INTERNAL = 17, - BLYNK_CMD_SMS = 18, - BLYNK_CMD_PROPERTY = 19, - BLYNK_CMD_HARDWARE = 20, - - BLYNK_CMD_CREATE_DASH = 21, - BLYNK_CMD_SAVE_DASH = 22, - BLYNK_CMD_DELETE_DASH = 23, - BLYNK_CMD_LOAD_PROF_GZ = 24, - BLYNK_CMD_SYNC = 25, - BLYNK_CMD_SHARING = 26, - BLYNK_CMD_ADD_PUSH_TOKEN = 27, - - //sharing commands - BLYNK_CMD_GET_SHARED_DASH = 29, - BLYNK_CMD_GET_SHARE_TOKEN = 30, - BLYNK_CMD_REFRESH_SHARE_TOKEN = 31, - BLYNK_CMD_SHARE_LOGIN = 32, - - BLYNK_CMD_REDIRECT = 41, - - BLYNK_CMD_DEBUG_PRINT = 55, - - BLYNK_CMD_EVENT_LOG = 64 -}; - -enum BlynkStatus -{ - BLYNK_SUCCESS = 200, - BLYNK_QUOTA_LIMIT_EXCEPTION = 1, - BLYNK_ILLEGAL_COMMAND = 2, - BLYNK_NOT_REGISTERED = 3, - BLYNK_ALREADY_REGISTERED = 4, - BLYNK_NOT_AUTHENTICATED = 5, - BLYNK_NOT_ALLOWED = 6, - BLYNK_DEVICE_NOT_IN_NETWORK = 7, - BLYNK_NO_ACTIVE_DASHBOARD = 8, - BLYNK_INVALID_TOKEN = 9, - BLYNK_ILLEGAL_COMMAND_BODY = 11, - BLYNK_GET_GRAPH_DATA_EXCEPTION = 12, - BLYNK_NO_DATA_EXCEPTION = 17, - BLYNK_DEVICE_WENT_OFFLINE = 18, - BLYNK_SERVER_EXCEPTION = 19, - - BLYNK_NTF_INVALID_BODY = 13, - BLYNK_NTF_NOT_AUTHORIZED = 14, - BLYNK_NTF_ECXEPTION = 15, - - BLYNK_TIMEOUT = 16, - - BLYNK_NOT_SUPPORTED_VERSION = 20, - BLYNK_ENERGY_LIMIT = 21 -}; - -struct BlynkHeader -{ - uint8_t type; - uint16_t msg_id; - uint16_t length; -} -BLYNK_ATTR_PACKED; - -#if defined(ESP32) - #include -#elif !defined(htons) && (defined(ARDUINO) || defined(ESP8266) || defined(PARTICLE) || defined(__MBED__)) - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - #define htons(x) ( ((x)<<8) | (((x)>>8)&0xFF) ) - #define htonl(x) ( ((x)<<24 & 0xFF000000UL) | \ - ((x)<< 8 & 0x00FF0000UL) | \ - ((x)>> 8 & 0x0000FF00UL) | \ - ((x)>>24 & 0x000000FFUL) ) - #define ntohs(x) htons(x) - #define ntohl(x) htonl(x) - #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - #define htons(x) (x) - #define htonl(x) (x) - #define ntohs(x) (x) - #define ntohl(x) (x) - #else - #error byte order problem - #endif -#endif - -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - #define BLYNK_STR_16(a,b) ((uint16_t(a) << 0) | (uint16_t(b) << 8)) - #define BLYNK_STR_32(a,b,c,d) ((uint32_t(a) << 0) | (uint32_t(b) << 8) | (uint32_t(c) << 16) | (uint32_t(d) << 24)) -#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - #define BLYNK_STR_16(a,b) ((uint16_t(b) << 0) | (uint16_t(a) << 8)) - #define BLYNK_STR_32(a,b,c,d) ((uint32_t(d) << 0) | (uint32_t(c) << 8) | (uint32_t(b) << 16) | (uint32_t(a) << 24)) -#else - #error byte order problem -#endif - -#define BLYNK_HW_PM BLYNK_STR_16('p','m') -#define BLYNK_HW_DW BLYNK_STR_16('d','w') -#define BLYNK_HW_DR BLYNK_STR_16('d','r') -#define BLYNK_HW_AW BLYNK_STR_16('a','w') -#define BLYNK_HW_AR BLYNK_STR_16('a','r') -#define BLYNK_HW_VW BLYNK_STR_16('v','w') -#define BLYNK_HW_VR BLYNK_STR_16('v','r') - -#define BLYNK_INT_RTC BLYNK_STR_32('r','t','c',0) -#define BLYNK_INT_OTA BLYNK_STR_32('o','t','a',0) -#define BLYNK_INT_ACON BLYNK_STR_32('a','c','o','n') -#define BLYNK_INT_ADIS BLYNK_STR_32('a','d','i','s') - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkTemplates.h b/wled00/src/dependencies/blynk/Blynk/BlynkTemplates.h deleted file mode 100644 index 15c2bfad..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkTemplates.h +++ /dev/null @@ -1,47 +0,0 @@ -class BlynkStackOnly -{ -protected: - BlynkStackOnly() {} - ~BlynkStackOnly() {} - -private: - /// @brief Declared as private to prevent usage of dynamic memory - void* operator new(size_t size); - /// @brief Declared as private to prevent usage of dynamic memory - void operator delete(void *p); -}; - -class BlynkNonCopyable -{ -protected: - BlynkNonCopyable(){} - ~BlynkNonCopyable(){} - -private: - /// @brief Declared as private to prevent usage of copy constructor - BlynkNonCopyable(const BlynkNonCopyable&); - /// @brief Declared as private to prevent usage of assignment operator - BlynkNonCopyable& operator=(const BlynkNonCopyable&); -}; - -template -class BlynkSingleton - : public BlynkNonCopyable -{ -public: - /** @brief Returns the instance of the singleton type - When called for the first time, the singleton instance will be - created. All subsequent calls will return a reference to the - previously created instance. - @return The singleton instance - */ - static T* instance() - { - static T instance; - return &instance; - } -protected: - BlynkSingleton() {} - ~BlynkSingleton() {} -}; - diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkTimer.cpp b/wled00/src/dependencies/blynk/Blynk/BlynkTimer.cpp deleted file mode 100644 index d2159ec3..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkTimer.cpp +++ /dev/null @@ -1,291 +0,0 @@ -/* - * SimpleTimer.cpp - * - * SimpleTimer - A timer library for Arduino. - * Author: mromani@ottotecnica.com - * Copyright (c) 2010 OTTOTECNICA Italy - * - * Callback function parameters added & compiler warnings - * removed by Bill Knight 20March2017 - * - * This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser - * General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at - * your option) any later version. - * - * This library 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 Lesser General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser - * General Public License along with this library; if not, - * write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - - -#include "BlynkTimer.h" -#include - -// Select time function: -//static inline unsigned long elapsed() { return micros(); } -static inline unsigned long elapsed() { return BlynkMillis(); } - - -SimpleTimer::SimpleTimer() - : numTimers (-1) -{ -} - -void SimpleTimer::init() { - unsigned long current_millis = elapsed(); - - for (int i = 0; i < MAX_TIMERS; i++) { - memset(&timer[i], 0, sizeof (timer_t)); - timer[i].prev_millis = current_millis; - } - - numTimers = 0; -} - - -void SimpleTimer::run() { - int i; - unsigned long current_millis; - - // get current time - current_millis = elapsed(); - - for (i = 0; i < MAX_TIMERS; i++) { - - timer[i].toBeCalled = DEFCALL_DONTRUN; - - // no callback == no timer, i.e. jump over empty slots - if (timer[i].callback != NULL) { - - // is it time to process this timer ? - // see http://arduino.cc/forum/index.php/topic,124048.msg932592.html#msg932592 - - if ((current_millis - timer[i].prev_millis) >= timer[i].delay) { - - unsigned long skipTimes = (current_millis - timer[i].prev_millis) / timer[i].delay; - // update time - timer[i].prev_millis += timer[i].delay * skipTimes; - - // check if the timer callback has to be executed - if (timer[i].enabled) { - - // "run forever" timers must always be executed - if (timer[i].maxNumRuns == RUN_FOREVER) { - timer[i].toBeCalled = DEFCALL_RUNONLY; - } - // other timers get executed the specified number of times - else if (timer[i].numRuns < timer[i].maxNumRuns) { - timer[i].toBeCalled = DEFCALL_RUNONLY; - timer[i].numRuns++; - - // after the last run, delete the timer - if (timer[i].numRuns >= timer[i].maxNumRuns) { - timer[i].toBeCalled = DEFCALL_RUNANDDEL; - } - } - } - } - } - } - - for (i = 0; i < MAX_TIMERS; i++) { - if (timer[i].toBeCalled == DEFCALL_DONTRUN) - continue; - - if (timer[i].hasParam) - (*(timer_callback_p)timer[i].callback)(timer[i].param); - else - (*(timer_callback)timer[i].callback)(); - - if (timer[i].toBeCalled == DEFCALL_RUNANDDEL) - deleteTimer(i); - } -} - - -// find the first available slot -// return -1 if none found -int SimpleTimer::findFirstFreeSlot() { - // all slots are used - if (numTimers >= MAX_TIMERS) { - return -1; - } - - // return the first slot with no callback (i.e. free) - for (int i = 0; i < MAX_TIMERS; i++) { - if (timer[i].callback == NULL) { - return i; - } - } - - // no free slots found - return -1; -} - - -int SimpleTimer::setupTimer(unsigned long d, void* f, void* p, bool h, unsigned n) { - int freeTimer; - - if (numTimers < 0) { - init(); - } - - freeTimer = findFirstFreeSlot(); - if (freeTimer < 0) { - return -1; - } - - if (f == NULL) { - return -1; - } - - timer[freeTimer].delay = d; - timer[freeTimer].callback = f; - timer[freeTimer].param = p; - timer[freeTimer].hasParam = h; - timer[freeTimer].maxNumRuns = n; - timer[freeTimer].enabled = true; - timer[freeTimer].prev_millis = elapsed(); - - numTimers++; - - return freeTimer; -} - - -int SimpleTimer::setTimer(unsigned long d, timer_callback f, unsigned n) { - return setupTimer(d, (void *)f, NULL, false, n); -} - -int SimpleTimer::setTimer(unsigned long d, timer_callback_p f, void* p, unsigned n) { - return setupTimer(d, (void *)f, p, true, n); -} - -int SimpleTimer::setInterval(unsigned long d, timer_callback f) { - return setupTimer(d, (void *)f, NULL, false, RUN_FOREVER); -} - -int SimpleTimer::setInterval(unsigned long d, timer_callback_p f, void* p) { - return setupTimer(d, (void *)f, p, true, RUN_FOREVER); -} - -int SimpleTimer::setTimeout(unsigned long d, timer_callback f) { - return setupTimer(d, (void *)f, NULL, false, RUN_ONCE); -} - -int SimpleTimer::setTimeout(unsigned long d, timer_callback_p f, void* p) { - return setupTimer(d, (void *)f, p, true, RUN_ONCE); -} - -bool SimpleTimer::changeInterval(unsigned numTimer, unsigned long d) { - if (numTimer >= MAX_TIMERS) { - return false; - } - - // Updates interval of existing specified timer - if (timer[numTimer].callback != NULL) { - timer[numTimer].delay = d; - timer[numTimer].prev_millis = elapsed(); - return true; - } - // false return for non-used numTimer, no callback - return false; -} - -void SimpleTimer::deleteTimer(unsigned timerId) { - if (timerId >= MAX_TIMERS) { - return; - } - - // nothing to delete if no timers are in use - if (numTimers == 0) { - return; - } - - // don't decrease the number of timers if the - // specified slot is already empty - if (timer[timerId].callback != NULL) { - memset(&timer[timerId], 0, sizeof (timer_t)); - timer[timerId].prev_millis = elapsed(); - - // update number of timers - numTimers--; - } -} - - -// function contributed by code@rowansimms.com -void SimpleTimer::restartTimer(unsigned numTimer) { - if (numTimer >= MAX_TIMERS) { - return; - } - - timer[numTimer].prev_millis = elapsed(); -} - - -bool SimpleTimer::isEnabled(unsigned numTimer) { - if (numTimer >= MAX_TIMERS) { - return false; - } - - return timer[numTimer].enabled; -} - - -void SimpleTimer::enable(unsigned numTimer) { - if (numTimer >= MAX_TIMERS) { - return; - } - - timer[numTimer].enabled = true; -} - - -void SimpleTimer::disable(unsigned numTimer) { - if (numTimer >= MAX_TIMERS) { - return; - } - - timer[numTimer].enabled = false; -} - -void SimpleTimer::enableAll() { - // Enable all timers with a callback assigned (used) - for (int i = 0; i < MAX_TIMERS; i++) { - if (timer[i].callback != NULL && timer[i].numRuns == RUN_FOREVER) { - timer[i].enabled = true; - } - } -} - -void SimpleTimer::disableAll() { - // Disable all timers with a callback assigned (used) - for (int i = 0; i < MAX_TIMERS; i++) { - if (timer[i].callback != NULL && timer[i].numRuns == RUN_FOREVER) { - timer[i].enabled = false; - } - } -} - -void SimpleTimer::toggle(unsigned numTimer) { - if (numTimer >= MAX_TIMERS) { - return; - } - - timer[numTimer].enabled = !timer[numTimer].enabled; -} - - -unsigned SimpleTimer::getNumTimers() { - return numTimers; -} diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkTimer.h b/wled00/src/dependencies/blynk/Blynk/BlynkTimer.h deleted file mode 100644 index 120845e7..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkTimer.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * SimpleTimer.h - * - * SimpleTimer - A timer library for Arduino. - * Author: mromani@ottotecnica.com - * Copyright (c) 2010 OTTOTECNICA Italy - * - * Modifications by Bill Knight 18March2017 - * - * This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser - * General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at - * your option) any later version. - * - * This library 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 Lesser General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser - * General Public License along with this library; if not, - * write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifndef BLYNKTIMER_H -#define BLYNKTIMER_H - -#include "BlynkDebug.h" - -// Replace SimpleTimer -#define SIMPLETIMER_H -#define SimpleTimer BlynkTimer - -typedef void (*timer_callback)(void); -typedef void (*timer_callback_p)(void *); - -class SimpleTimer { - -public: - // maximum number of timers - const static int MAX_TIMERS = 16; - - // setTimer() constants - const static int RUN_FOREVER = 0; - const static int RUN_ONCE = 1; - - // constructor - SimpleTimer(); - - void init(); - - // this function must be called inside loop() - void run(); - - // Timer will call function 'f' every 'd' milliseconds forever - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setInterval(unsigned long d, timer_callback f); - - // Timer will call function 'f' with parameter 'p' every 'd' milliseconds forever - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setInterval(unsigned long d, timer_callback_p f, void* p); - - // Timer will call function 'f' after 'd' milliseconds one time - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setTimeout(unsigned long d, timer_callback f); - - // Timer will call function 'f' with parameter 'p' after 'd' milliseconds one time - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setTimeout(unsigned long d, timer_callback_p f, void* p); - - // Timer will call function 'f' every 'd' milliseconds 'n' times - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setTimer(unsigned long d, timer_callback f, unsigned n); - - // Timer will call function 'f' with parameter 'p' every 'd' milliseconds 'n' times - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setTimer(unsigned long d, timer_callback_p f, void* p, unsigned n); - - // updates interval of the specified timer - bool changeInterval(unsigned numTimer, unsigned long d); - - // destroy the specified timer - void deleteTimer(unsigned numTimer); - - // restart the specified timer - void restartTimer(unsigned numTimer); - - // returns true if the specified timer is enabled - bool isEnabled(unsigned numTimer); - - // enables the specified timer - void enable(unsigned numTimer); - - // disables the specified timer - void disable(unsigned numTimer); - - // enables all timers - void enableAll(); - - // disables all timers - void disableAll(); - - // enables the specified timer if it's currently disabled, - // and vice-versa - void toggle(unsigned numTimer); - - // returns the number of used timers - unsigned getNumTimers(); - - // returns the number of available timers - unsigned getNumAvailableTimers() { return MAX_TIMERS - numTimers; }; - -private: - // deferred call constants - const static int DEFCALL_DONTRUN = 0; // don't call the callback function - const static int DEFCALL_RUNONLY = 1; // call the callback function but don't delete the timer - const static int DEFCALL_RUNANDDEL = 2; // call the callback function and delete the timer - - // low level function to initialize and enable a new timer - // returns the timer number (numTimer) on success or - // -1 on failure (f == NULL) or no free timers - int setupTimer(unsigned long d, void* f, void* p, bool h, unsigned n); - - // find the first available slot - int findFirstFreeSlot(); - - typedef struct { - unsigned long prev_millis; // value returned by the millis() function in the previous run() call - void* callback; // pointer to the callback function - void* param; // function parameter - bool hasParam; // true if callback takes a parameter - unsigned long delay; // delay value - unsigned maxNumRuns; // number of runs to be executed - unsigned numRuns; // number of executed runs - bool enabled; // true if enabled - unsigned toBeCalled; // deferred function call (sort of) - N.B.: only used in run() - } timer_t; - - timer_t timer[MAX_TIMERS]; - - // actual number of timers in use (-1 means uninitialized) - int numTimers; -}; - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkUtility.h b/wled00/src/dependencies/blynk/Blynk/BlynkUtility.h deleted file mode 100644 index c4d46852..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkUtility.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file BlynkUtility.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jun 2015 - * @brief Utility functions - * - */ - -#ifndef BlynkUtility_h -#define BlynkUtility_h - -template -const T& BlynkMin(const T& a, const T& b) -{ - return (b < a) ? b : a; -} - -template -const T& BlynkMax(const T& a, const T& b) -{ - return (b < a) ? a : b; -} - - -template -T BlynkMathMap(T x, T in_min, T in_max, T out_min, T out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -template -T BlynkMathClamp(T val, T low, T high) -{ - return (val < low) ? low : ((val > high) ? high : val); -} - - -template -void BlynkAverageSample (T& avg, const T& input) { - avg -= avg/WSIZE; - const T add = input/WSIZE; - // Fix for shorter delays - if (add > 0) - avg += add; - else - avg -= 1; -} - -class BlynkHelperAutoInc { -public: - BlynkHelperAutoInc(uint8_t& counter) : c(counter) { ++c; } - ~BlynkHelperAutoInc() { --c; } -private: - uint8_t& c; -}; - -#define BlynkBitSet(value, bit) ((value) |= (1UL << (bit))) -#define BlynkBitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define BlynkBitRead(value, bit) (((value) >> (bit)) & 0x01) -#define BlynkBitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkWiFiCommon.h b/wled00/src/dependencies/blynk/Blynk/BlynkWiFiCommon.h deleted file mode 100644 index e67d49db..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkWiFiCommon.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @file BlynkWiFiCommon.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Jan 2015 - * @brief - * - */ - -#ifndef BlynkWiFiCommon_h -#define BlynkWiFiCommon_h - -#ifndef BLYNK_INFO_CONNECTION -#define BLYNK_INFO_CONNECTION "WiFi" -#endif - -#include "BlynkApiArduino.h" -#include "BlynkProtocol.h" -#include "BlynkArduinoClient.h" - -class BlynkWifiCommon - : public BlynkProtocol -{ - typedef BlynkProtocol Base; -public: - BlynkWifiCommon(BlynkArduinoClient& transp) - : Base(transp) - {} - - void connectWiFi(const char* ssid, const char* pass) - { - int status = WL_IDLE_STATUS; - // check for the presence of the shield: - if (WiFi.status() == WL_NO_SHIELD) { - BLYNK_FATAL("WiFi shield not present"); - } - -#ifdef BLYNK_DEBUG - BLYNK_LOG2(BLYNK_F("WiFi firmware: "), WiFi.firmwareVersion()); -#endif - - // attempt to connect to Wifi network: - while (true) { - BLYNK_LOG2(BLYNK_F("Connecting to "), ssid); - if (pass && strlen(pass)) { - status = WiFi.begin((char*)ssid, (char*)pass); - } else { - status = WiFi.begin((char*)ssid); - } - if (status == WL_CONNECTED) { - break; - } else { - BlynkDelay(5000); - } - } - - IPAddress myip = WiFi.localIP(); - BLYNK_LOG_IP("IP: ", myip); - } - - void config(const char* auth, - const char* domain = BLYNK_DEFAULT_DOMAIN, - uint16_t port = BLYNK_DEFAULT_PORT) - { - Base::begin(auth); - this->conn.begin(domain, port); - } - - void config(const char* auth, - IPAddress ip, - uint16_t port = BLYNK_DEFAULT_PORT) - { - Base::begin(auth); - this->conn.begin(ip, port); - } - - void begin(const char* auth, - const char* ssid, - const char* pass, - const char* domain = BLYNK_DEFAULT_DOMAIN, - uint16_t port = BLYNK_DEFAULT_PORT) - { - connectWiFi(ssid, pass); - config(auth, domain, port); - while(this->connect() != true) {} - } - - void begin(const char* auth, - const char* ssid, - const char* pass, - IPAddress ip, - uint16_t port = BLYNK_DEFAULT_PORT) - { - connectWiFi(ssid, pass); - config(auth, ip, port); - while(this->connect() != true) {} - } - -}; - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/BlynkWidgetBase.h b/wled00/src/dependencies/blynk/Blynk/BlynkWidgetBase.h deleted file mode 100644 index b639916e..00000000 --- a/wled00/src/dependencies/blynk/Blynk/BlynkWidgetBase.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file BlynkWidgetBase.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2016 Volodymyr Shymanskyy - * @date Nov 2016 - * @brief - */ - -#ifndef BlynkWidgetBase_h -#define BlynkWidgetBase_h - -#include "BlynkApi.h" - -class BlynkWidgetBase -{ -public: - BlynkWidgetBase(uint8_t vPin) : mPin(vPin) {} - void setVPin(uint8_t vPin) { mPin = vPin; } - - void onWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m) { - BLYNK_LOG1(BLYNK_F("BlynkWidgetBase::onWrite should not be called")); - } - - template - void setLabel(Args... args) { - Blynk.setProperty(mPin, "label", args...); - } - - template - void setColor(Args... args) { - Blynk.setProperty(mPin, "color", args...); - } - - template - void setMin(Args... args) { - Blynk.setProperty(mPin, "min", args...); - } - - template - void setMax(Args... args) { - Blynk.setProperty(mPin, "max", args...); - } - -protected: - uint8_t mPin; -}; - -class BlynkAttachWidgetHelper { -public: - template - explicit BlynkAttachWidgetHelper(T& widget, uint8_t vPin) { - widget.setVPin(vPin); - } -}; - -// Could use __attribute__ ((constructor)), but hope for better portability -#define BLYNK_ATTACH_WIDGET(widget, pin) \ - BlynkAttachWidgetHelper BLYNK_CONCAT2(blnk_widget_helper_, __COUNTER__)((widget), (pin)); \ - BLYNK_WRITE(pin) { (widget).onWrite(request, param); } - -#endif diff --git a/wled00/src/dependencies/blynk/Blynk/utility.cpp b/wled00/src/dependencies/blynk/Blynk/utility.cpp deleted file mode 100644 index d5abdcb1..00000000 --- a/wled00/src/dependencies/blynk/Blynk/utility.cpp +++ /dev/null @@ -1,198 +0,0 @@ -#include "BlynkDebug.h" -#include "BlynkDateTime.h" - -#if !defined(BLYNK_NO_FLOAT) && defined(BLYNK_USE_INTERNAL_DTOSTRF) - -#include -#include -#include - -char* dtostrf_internal(double number, signed char BLYNK_UNUSED width, unsigned char prec, char *s) { - if(isnan(number)) { - strcpy(s, "nan"); - return s; - } - if(isinf(number)) { - strcpy(s, "inf"); - return s; - } - - if(number > 4294967040.0 || number < -4294967040.0) { - strcpy(s, "ovf"); - return s; - } - char* out = s; - // Handle negative numbers - if(number < 0.0) { - *out = '-'; - ++out; - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for(uint8_t i = 0; i < prec; ++i) { - rounding /= 10.0; - } - - number += rounding; - - // Extract the integer part of the number and print it - unsigned long int_part = (unsigned long) number; - double remainder = number - (double) int_part; - out += sprintf(out, "%lu", int_part); - - // Print the decimal point, but only if there are digits beyond - if(prec > 0) { - *out = '.'; - ++out; - } - - while(prec-- > 0) { - remainder *= 10.0; - if((int)remainder == 0) { - *out = '0'; - ++out; - } - } - sprintf(out, "%d", (int) remainder); - - return s; -} - -#endif - -#define YEAR_0 1900 -#define YEAR_EPOCH 1970 -#define SECS_IN_DAY (24L * 60L * 60L) -#define IS_LEAP_YEAR(year) (!((year) % 4) && (((year) % 100) || !((year) % 400))) -#define YEAR_DAYS(year) (IS_LEAP_YEAR(year) ? 366 : 365) - -#define TIME_MAX 2147483647L - -static const int month_tab[2][12] = { - { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } -}; - -struct blynk_tm* blynk_gmtime_r(const blynk_time_t* t, struct blynk_tm *tm) { - blynk_time_t time = *t; - unsigned long dayclock, dayno; - int year = YEAR_EPOCH; - - dayclock = (unsigned long) time % SECS_IN_DAY; - dayno = (unsigned long) time / SECS_IN_DAY; - - tm->tm_sec = dayclock % 60; - tm->tm_min = (dayclock % 3600) / 60; - tm->tm_hour = dayclock / 3600; - tm->tm_wday = (dayno + 4) % 7; - while (dayno >= (unsigned long) YEAR_DAYS(year)) { - dayno -= YEAR_DAYS(year); - year++; - } - tm->tm_year = year - YEAR_0; - tm->tm_yday = dayno; - tm->tm_mon = 0; - while (dayno >= (unsigned long) month_tab[IS_LEAP_YEAR(year)][tm->tm_mon]) { - dayno -= month_tab[IS_LEAP_YEAR(year)][tm->tm_mon]; - tm->tm_mon++; - } - tm->tm_mday = dayno + 1; - tm->tm_isdst = 0; - return tm; -} - -blynk_time_t blynk_mk_gmtime(struct blynk_tm *tm) { - long day, year; - int tm_year; - int yday, month; - long seconds; - int overflow; - - tm->tm_min += tm->tm_sec / 60; - tm->tm_sec %= 60; - if (tm->tm_sec < 0) { - tm->tm_sec += 60; - tm->tm_min--; - } - tm->tm_hour += tm->tm_min / 60; - tm->tm_min = tm->tm_min % 60; - if (tm->tm_min < 0) { - tm->tm_min += 60; - tm->tm_hour--; - } - day = tm->tm_hour / 24; - tm->tm_hour = tm->tm_hour % 24; - if (tm->tm_hour < 0) { - tm->tm_hour += 24; - day--; - } - tm->tm_year += tm->tm_mon / 12; - tm->tm_mon %= 12; - if (tm->tm_mon < 0) { - tm->tm_mon += 12; - tm->tm_year--; - } - day += (tm->tm_mday - 1); - while (day < 0) { - if (--tm->tm_mon < 0) { - tm->tm_year--; - tm->tm_mon = 11; - } - day += month_tab[IS_LEAP_YEAR(YEAR_0 + tm->tm_year)][tm->tm_mon]; - } - while (day >= month_tab[IS_LEAP_YEAR(YEAR_0 + tm->tm_year)][tm->tm_mon]) { - day -= month_tab[IS_LEAP_YEAR(YEAR_0 + tm->tm_year)][tm->tm_mon]; - if (++(tm->tm_mon) == 12) { - tm->tm_mon = 0; - tm->tm_year++; - } - } - tm->tm_mday = day + 1; - year = YEAR_EPOCH; - if (tm->tm_year < year - YEAR_0) - return (blynk_time_t) -1; - seconds = 0; - day = 0; - overflow = 0; - - tm_year = tm->tm_year + YEAR_0; - - if (TIME_MAX / 365 < tm_year - year) - overflow++; - day = (tm_year - year) * 365; - if (TIME_MAX - day < (tm_year - year) / 4 + 1) - overflow++; - day += (tm_year - year) / 4 + ((tm_year % 4) && tm_year % 4 < year % 4); - day -= (tm_year - year) / 100 - + ((tm_year % 100) && tm_year % 100 < year % 100); - day += (tm_year - year) / 400 - + ((tm_year % 400) && tm_year % 400 < year % 400); - - yday = month = 0; - while (month < tm->tm_mon) { - yday += month_tab[IS_LEAP_YEAR(tm_year)][month]; - month++; - } - yday += (tm->tm_mday - 1); - if (day + yday < 0) - overflow++; - day += yday; - - tm->tm_yday = yday; - tm->tm_wday = (day + 4) % 7; - - seconds = ((tm->tm_hour * 60L) + tm->tm_min) * 60L + tm->tm_sec; - - if ((TIME_MAX - seconds) / SECS_IN_DAY < day) - overflow++; - seconds += day * SECS_IN_DAY; - - if (overflow) - return (blynk_time_t) -1; - - if ((blynk_time_t) seconds != seconds) - return (blynk_time_t) -1; - return (blynk_time_t) seconds; -} diff --git a/wled00/src/dependencies/blynk/BlynkSimpleEsp.cpp b/wled00/src/dependencies/blynk/BlynkSimpleEsp.cpp deleted file mode 100644 index 60ba109e..00000000 --- a/wled00/src/dependencies/blynk/BlynkSimpleEsp.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "BlynkSimpleEsp.h" - -WiFiClient _blynkWifiClient; -BlynkArduinoClient _blynkTransport(_blynkWifiClient); -BlynkWifi Blynk(_blynkTransport); \ No newline at end of file diff --git a/wled00/src/dependencies/blynk/BlynkSimpleEsp.h b/wled00/src/dependencies/blynk/BlynkSimpleEsp.h deleted file mode 100644 index ee4d374b..00000000 --- a/wled00/src/dependencies/blynk/BlynkSimpleEsp.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - * @file BlynkSimpleEsp32.h - * @author Volodymyr Shymanskyy - * @license This project is released under the MIT License (MIT) - * @copyright Copyright (c) 2015 Volodymyr Shymanskyy - * @date Oct 2016 - * @brief - * - */ - -#ifndef BlynkSimpleEsp_h -#define BlynkSimpleEsp_h - -#define BLYNK_SEND_ATOMIC - -#include "Blynk/BlynkApiArduino.h" -#include "Blynk/BlynkProtocol.h" -#include "Blynk/BlynkArduinoClient.h" -#ifdef ARDUINO_ARCH_ESP32 -#include -#else -#include -#endif - -class BlynkWifi - : public BlynkProtocol -{ - typedef BlynkProtocol Base; -public: - BlynkWifi(BlynkArduinoClient& transp) - : Base(transp) - {} - - void connectWiFi(const char* ssid, const char* pass) - { - BLYNK_LOG2(BLYNK_F("Connecting to "), ssid); - WiFi.mode(WIFI_STA); - if (pass && strlen(pass)) { - WiFi.begin(ssid, pass); - } else { - WiFi.begin(ssid); - } - while (WiFi.status() != WL_CONNECTED) { - BlynkDelay(500); - } - BLYNK_LOG1(BLYNK_F("Connected to WiFi")); - - BLYNK_LOG_IP("IP: ", WiFi.localIP()); - } - - void config(const char* auth, - const char* domain = BLYNK_DEFAULT_DOMAIN, - uint16_t port = BLYNK_DEFAULT_PORT) - { - Base::begin(auth); - this->conn.begin(domain, port); - } - - void config(const char* auth, - IPAddress ip, - uint16_t port = BLYNK_DEFAULT_PORT) - { - Base::begin(auth); - this->conn.begin(ip, port); - } - - void begin(const char* auth, - const char* ssid, - const char* pass, - const char* domain = BLYNK_DEFAULT_DOMAIN, - uint16_t port = BLYNK_DEFAULT_PORT) - { - connectWiFi(ssid, pass); - config(auth, domain, port); - while(this->connect() != true) {} - } - - void begin(const char* auth, - const char* ssid, - const char* pass, - IPAddress ip, - uint16_t port = BLYNK_DEFAULT_PORT) - { - connectWiFi(ssid, pass); - config(auth, ip, port); - while(this->connect() != true) {} - } - -}; - -extern BlynkWifi Blynk; - -#endif diff --git a/wled00/src/dependencies/blynk/LICENSE.txt b/wled00/src/dependencies/blynk/LICENSE.txt deleted file mode 100644 index 5e0fbd89..00000000 --- a/wled00/src/dependencies/blynk/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Volodymyr Shymanskyy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/wled00/src/dependencies/e131/ESPAsyncE131.h b/wled00/src/dependencies/e131/ESPAsyncE131.h index 36486a6e..3132ca6c 100644 --- a/wled00/src/dependencies/e131/ESPAsyncE131.h +++ b/wled00/src/dependencies/e131/ESPAsyncE131.h @@ -228,4 +228,30 @@ class ESPAsyncE131 { bool begin(bool multicast, uint16_t port = E131_DEFAULT_PORT, uint16_t universe = 1, uint8_t n = 1); }; +// Class to track e131 package priority +class E131Priority { + private: + uint8_t priority; + time_t setupTime; + uint8_t seconds; + + public: + E131Priority(uint8_t timeout=3) { + seconds = timeout; + set(0); + }; + + // Set priority (+ remember time) + void set(uint8_t prio) { + setupTime = time(0); + priority = prio; + } + + // Get priority (+ reset & return 0 if older timeout) + uint8_t get() { + if (time(0) > setupTime + seconds) priority = 0; + return priority; + } +}; + #endif // ESPASYNCE131_H_ \ No newline at end of file diff --git a/wled00/udp.cpp b/wled00/udp.cpp index 4a1f980a..6d7d2820 100644 --- a/wled00/udp.cpp +++ b/wled00/udp.cpp @@ -23,7 +23,6 @@ void notify(byte callMode, bool followUp) case CALL_MODE_NIGHTLIGHT: if (!notifyDirect) return; break; case CALL_MODE_HUE: if (!notifyHue) return; break; case CALL_MODE_PRESET_CYCLE: if (!notifyDirect) return; break; - case CALL_MODE_BLYNK: if (!notifyDirect) return; break; case CALL_MODE_ALEXA: if (!notifyAlexa) return; break; default: return; } @@ -714,7 +713,9 @@ void sendSysInfoUDP() // buffer - a buffer of at least length*4 bytes long // isRGBW - true if the buffer contains 4 components per pixel -uint8_t sequenceNumber = 0; // this needs to be shared across all outputs +static size_t sequenceNumber = 0; // this needs to be shared across all outputs +static const size_t ART_NET_HEADER_SIZE = 12; +static const byte ART_NET_HEADER[] PROGMEM = {0x41,0x72,0x74,0x2d,0x4e,0x65,0x74,0x00,0x00,0x50,0x00,0x0e}; uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8_t *buffer, uint8_t bri, bool isRGBW) { if (!(apActive || interfacesInited) || !client[0] || !length) return 1; // network not initialised or dummy/unset IP address 031522 ajn added check for ap @@ -792,6 +793,57 @@ uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8 case 2: //ArtNet { + // calculate the number of UDP packets we need to send + const size_t channelCount = length * (isRGBW?4:3); // 1 channel for every R,G,B,(W?) value + const size_t ARTNET_CHANNELS_PER_PACKET = isRGBW?512:510; // 512/4=128 RGBW LEDs, 510/3=170 RGB LEDs + const size_t packetCount = ((channelCount-1)/ARTNET_CHANNELS_PER_PACKET)+1; + + uint32_t channel = 0; + size_t bufferOffset = 0; + + sequenceNumber++; + + for (size_t currentPacket = 0; currentPacket < packetCount; currentPacket++) { + + if (sequenceNumber > 255) sequenceNumber = 0; + + if (!ddpUdp.beginPacket(client, ARTNET_DEFAULT_PORT)) { + DEBUG_PRINTLN(F("Art-Net WiFiUDP.beginPacket returned an error")); + return 1; // borked + } + + size_t packetSize = ARTNET_CHANNELS_PER_PACKET; + + if (currentPacket == (packetCount - 1U)) { + // last packet + if (channelCount % ARTNET_CHANNELS_PER_PACKET) { + packetSize = channelCount % ARTNET_CHANNELS_PER_PACKET; + } + } + + byte buffer[ART_NET_HEADER_SIZE]; + memcpy_P(buffer, ART_NET_HEADER, ART_NET_HEADER_SIZE); + ddpUdp.write(buffer, ART_NET_HEADER_SIZE); // This doesn't change. Hard coded ID, OpCode, and protocol version. + ddpUdp.write(sequenceNumber & 0xFF); // sequence number. 1..255 + ddpUdp.write(0x00); // physical - more an FYI, not really used for anything. 0..3 + ddpUdp.write((currentPacket) & 0xFF); // Universe LSB. 1 full packet == 1 full universe, so just use current packet number. + ddpUdp.write(0x00); // Universe MSB, unused. + ddpUdp.write(0xFF & (packetSize >> 8)); // 16-bit length of channel data, MSB + ddpUdp.write(0xFF & (packetSize )); // 16-bit length of channel data, LSB + + for (size_t i = 0; i < packetSize; i += (isRGBW?4:3)) { + ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // R + ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // G + ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // B + if (isRGBW) ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // W + } + + if (!ddpUdp.endPacket()) { + DEBUG_PRINTLN(F("Art-Net WiFiUDP.endPacket returned an error")); + return 1; // borked + } + channel += packetSize; + } } break; } return 0; diff --git a/wled00/um_manager.cpp b/wled00/um_manager.cpp index 2546aabe..2e176bc3 100644 --- a/wled00/um_manager.cpp +++ b/wled00/um_manager.cpp @@ -40,6 +40,7 @@ bool UsermodManager::onMqttMessage(char* topic, char* payload) { return false; } void UsermodManager::onUpdateBegin(bool init) { for (byte i = 0; i < numMods; i++) ums[i]->onUpdateBegin(init); } // notify usermods that update is to begin +void UsermodManager::onStateChange(uint8_t mode) { for (byte i = 0; i < numMods; i++) ums[i]->onStateChange(mode); } // notify usermods that WLED state changed /* * Enables usermods to lookup another Usermod. diff --git a/wled00/usermods_list.cpp b/wled00/usermods_list.cpp index 667e8c50..07847502 100644 --- a/wled00/usermods_list.cpp +++ b/wled00/usermods_list.cpp @@ -19,11 +19,16 @@ #include "../usermods/Temperature/usermod_temperature.h" #endif +#ifdef USERMOD_SHT +#include "../usermods/sht/usermod_sht.h" +#endif + #ifdef USERMOD_SN_PHOTORESISTOR #include "../usermods/SN_Photoresistor/usermod_sn_photoresistor.h" #endif #ifdef USERMOD_PWM_FAN + // requires DALLASTEMPERATURE or SHT included before it #include "../usermods/PWM_fan/usermod_PWM_fan.h" #endif @@ -160,6 +165,10 @@ #include "../usermods/ADS1115_v2/usermod_ads1115.h" #endif +#ifdef USERMOD_KLIPPER_PERCENTAGE + #include "..\usermods\usermod_v2_klipper_percentage\usermod_v2_klipper_percentage.h" +#endif + #ifdef USERMOD_BOBLIGHT #include "../usermods/boblight/boblight.h" #endif @@ -180,10 +189,6 @@ #include "../usermods/pwm_outputs/usermod_pwm_outputs.h" #endif -#ifdef USERMOD_SHT -#include "../usermods/sht/usermod_sht.h" -#endif - void registerUsermods() { @@ -333,6 +338,10 @@ void registerUsermods() usermods.add(new ADS1115Usermod()); #endif + #ifdef USERMOD_KLIPPER_PERCENTAGE + usermods.add(new klipper_percentage()); + #endif + #ifdef USERMOD_BOBLIGHT usermods.add(new BobLightUsermod()); #endif diff --git a/wled00/util.cpp b/wled00/util.cpp index 98c15b44..77193a94 100644 --- a/wled00/util.cpp +++ b/wled00/util.cpp @@ -503,12 +503,49 @@ um_data_t* simulateSound(uint8_t simulationId) } +// enumerate all ledmapX.json files on FS and extract ledmap names if existing void enumerateLedmaps() { ledMaps = 1; - for (size_t i=1; i<10; i++) { - char fileName[16]; + for (size_t i=1; i(); + if (name != nullptr) len = strlen(name); + if (len > 0 && len < 33) { + ledmapNames[i-1] = new char[len+1]; + if (ledmapNames[i-1]) strlcpy(ledmapNames[i-1], name, 33); + } + } + if (!ledmapNames[i-1]) { + char tmp[33]; + snprintf_P(tmp, 32, PSTR("ledmap%d.json"), i); + len = strlen(tmp); + ledmapNames[i-1] = new char[len+1]; + if (ledmapNames[i-1]) strlcpy(ledmapNames[i-1], tmp, 33); + } + } + releaseJSONBufferLock(); + } + #endif + } + } } \ No newline at end of file diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 35894055..9e915218 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -100,11 +100,6 @@ void WLED::loop() yield(); #endif - #ifndef WLED_DISABLE_BLYNK - handleBlynk(); - yield(); - #endif - handlePresets(); yield(); @@ -171,15 +166,14 @@ void WLED::loop() } delete busConfigs[i]; busConfigs[i] = nullptr; } - strip.finalizeInit(); - loadLedmap = 0; + strip.finalizeInit(); // also loads default ledmap if present if (aligned) strip.makeAutoSegments(); else strip.fixInvalidSegments(); yield(); serializeConfig(); } if (loadLedmap >= 0) { - strip.deserializeMap(loadLedmap); + if (!strip.deserializeMap(loadLedmap) && strip.isMatrix && loadLedmap == 0) strip.setUpMatrix(); loadLedmap = -1; } @@ -273,6 +267,9 @@ void WLED::setup() WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detection #endif + #ifdef ARDUINO_ARCH_ESP32 + pinMode(hardwareRX, INPUT_PULLDOWN); delay(1); // suppress noise in case RX pin is floating (at low noise energy) - see issue #3128 + #endif Serial.begin(115200); #if !ARDUINO_USB_CDC_ON_BOOT Serial.setTimeout(50); // this causes troubles on new MCUs that have a "virtual" USB Serial (HWCDC) @@ -322,8 +319,7 @@ void WLED::setup() DEBUG_PRINT(F("esp8266 ")); DEBUG_PRINTLN(ESP.getCoreVersion()); #endif - DEBUG_PRINT(F("heap ")); - DEBUG_PRINTLN(ESP.getFreeHeap()); + DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap()); #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) if (psramFound()) { @@ -358,6 +354,8 @@ void WLED::setup() DEBUG_PRINTLN(F("Registering usermods ...")); registerUsermods(); + DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap()); + for (uint8_t i=1; i #ifdef WLED_ADD_EEPROM_SUPPORT #include @@ -123,9 +122,6 @@ #include "src/dependencies/espalexa/Espalexa.h" #include "src/dependencies/espalexa/EspalexaDevice.h" #endif -#ifndef WLED_DISABLE_BLYNK - #include "src/dependencies/blynk/BlynkSimpleEsp.h" -#endif #ifdef WLED_ENABLE_DMX #ifdef ESP8266 @@ -323,6 +319,7 @@ WLED_GLOBAL bool correctWB _INIT(false); // CCT color correction of RGB co WLED_GLOBAL bool cctFromRgb _INIT(false); // CCT is calculated from RGB instead of using seg.cct WLED_GLOBAL bool gammaCorrectCol _INIT(true ); // use gamma correction on colors WLED_GLOBAL bool gammaCorrectBri _INIT(false); // use gamma correction on brightness +WLED_GLOBAL float gammaCorrectVal _INIT(2.8f); // gamma correction value WLED_GLOBAL byte col[] _INIT_N(({ 255, 160, 0, 0 })); // current RGB(W) primary color. col[] should be updated if you want to change the color. WLED_GLOBAL byte colSec[] _INIT_N(({ 0, 0, 0, 0 })); // current RGB(W) secondary color @@ -381,12 +378,6 @@ WLED_GLOBAL bool alexaEnabled _INIT(false); // enable devi WLED_GLOBAL char alexaInvocationName[33] _INIT("Light"); // speech control name of device. Choose something voice-to-text can understand WLED_GLOBAL byte alexaNumPresets _INIT(0); // number of presets to expose to Alexa, starting from preset 1, up to 9 -#ifndef WLED_DISABLE_BLYNK -WLED_GLOBAL char blynkApiKey[36] _INIT(""); // Auth token for Blynk server. If empty, no connection will be made -WLED_GLOBAL char blynkHost[33] _INIT("blynk-cloud.com"); // Default Blynk host -WLED_GLOBAL uint16_t blynkPort _INIT(80); // Default Blynk port -#endif - WLED_GLOBAL uint16_t realtimeTimeoutMs _INIT(2500); // ms timeout of realtime mode before returning to normal mode WLED_GLOBAL int arlsOffset _INIT(0); // realtime LED offset WLED_GLOBAL bool receiveDirect _INIT(true); // receive UDP realtime @@ -403,6 +394,8 @@ WLED_GLOBAL uint16_t e131ProxyUniverse _INIT(0); // output this #endif WLED_GLOBAL uint16_t e131Universe _INIT(1); // settings for E1.31 (sACN) protocol (only DMX_MODE_MULTIPLE_* can span over consequtive universes) WLED_GLOBAL uint16_t e131Port _INIT(5568); // DMX in port. E1.31 default is 5568, Art-Net is 6454 +WLED_GLOBAL byte e131Priority _INIT(0); // E1.31 port priority (if != 0 priority handling is active) +WLED_GLOBAL E131Priority highPriority _INIT(3); // E1.31 highest priority tracking, init = timeout in seconds WLED_GLOBAL byte DMXMode _INIT(DMX_MODE_MULTIPLE_RGB); // DMX mode (s.a.) WLED_GLOBAL uint16_t DMXAddress _INIT(1); // DMX start address of fixture, a.k.a. first Channel [for E1.31 (sACN) protocol] WLED_GLOBAL uint16_t DMXSegmentSpacing _INIT(0); // Number of void/unused channels between each segments DMX channels @@ -499,12 +492,13 @@ WLED_GLOBAL bool wasConnected _INIT(false); WLED_GLOBAL byte lastRandomIndex _INIT(0); // used to save last random color so the new one is not the same // transitions -WLED_GLOBAL bool transitionActive _INIT(false); -WLED_GLOBAL uint16_t transitionDelayDefault _INIT(transitionDelay); // default transition time (storec in cfg.json) -WLED_GLOBAL uint16_t transitionDelayTemp _INIT(transitionDelay); // actual transition duration (overrides transitionDelay in certain cases) +WLED_GLOBAL bool transitionActive _INIT(false); +WLED_GLOBAL uint16_t transitionDelayDefault _INIT(transitionDelay); // default transition time (storec in cfg.json) +WLED_GLOBAL uint16_t transitionDelayTemp _INIT(transitionDelay); // actual transition duration (overrides transitionDelay in certain cases) WLED_GLOBAL unsigned long transitionStartTime; -WLED_GLOBAL float tperLast _INIT(0.0f); // crossfade transition progress, 0.0f - 1.0f -WLED_GLOBAL bool jsonTransitionOnce _INIT(false); // flag to override transitionDelay (playlist, JSON API: "live" & "seg":{"i"} & "tt") +WLED_GLOBAL float tperLast _INIT(0.0f); // crossfade transition progress, 0.0f - 1.0f +WLED_GLOBAL bool jsonTransitionOnce _INIT(false); // flag to override transitionDelay (playlist, JSON API: "live" & "seg":{"i"} & "tt") +WLED_GLOBAL uint8_t randomPaletteChangeTime _INIT(5); // amount of time [s] between random palette changes (min: 1s, max: 255s) // nightlight WLED_GLOBAL bool nightlightActive _INIT(false); @@ -580,9 +574,6 @@ WLED_GLOBAL byte timerMonth[] _INIT_N(({28,28,28,28,28,28,28,28})); WLED_GLOBAL byte timerDay[] _INIT_N(({1,1,1,1,1,1,1,1})); WLED_GLOBAL byte timerDayEnd[] _INIT_N(({31,31,31,31,31,31,31,31})); -// blynk -WLED_GLOBAL bool blynkEnabled _INIT(false); - //improv WLED_GLOBAL byte improvActive _INIT(0); //0: no improv packet received, 1: improv active, 2: provisioning WLED_GLOBAL byte improvError _INIT(0); @@ -681,7 +672,14 @@ WLED_GLOBAL WS2812FX strip _INIT(WS2812FX()); WLED_GLOBAL BusConfig* busConfigs[WLED_MAX_BUSSES+WLED_MIN_VIRTUAL_BUSSES] _INIT({nullptr}); //temporary, to remember values from network callback until after WLED_GLOBAL bool doInitBusses _INIT(false); WLED_GLOBAL int8_t loadLedmap _INIT(-1); +#ifndef ESP8266 +WLED_GLOBAL char *ledmapNames[WLED_MAX_LEDMAPS-1] _INIT_N(({nullptr})); +#endif +#if WLED_MAX_LEDMAPS>16 +WLED_GLOBAL uint32_t ledMaps _INIT(0); // bitfield representation of available ledmaps +#else WLED_GLOBAL uint16_t ledMaps _INIT(0); // bitfield representation of available ledmaps +#endif // Usermod manager WLED_GLOBAL UsermodManager usermods _INIT(UsermodManager()); @@ -724,16 +722,16 @@ WLED_GLOBAL volatile uint8_t jsonBufferLock _INIT(0); // enable additional debug output #if defined(WLED_DEBUG_HOST) + #include "net_debug.h" // On the host side, use netcat to receive the log statements: nc -l 7868 -u // use -D WLED_DEBUG_HOST='"192.168.xxx.xxx"' or FQDN within quotes #define DEBUGOUT NetDebug WLED_GLOBAL bool netDebugEnabled _INIT(true); WLED_GLOBAL char netDebugPrintHost[33] _INIT(WLED_DEBUG_HOST); - #if defined(WLED_DEBUG_NET_PORT) - WLED_GLOBAL int netDebugPrintPort _INIT(WLED_DEBUG_PORT); - #else - WLED_GLOBAL int netDebugPrintPort _INIT(7868); + #ifndef WLED_DEBUG_PORT + #define WLED_DEBUG_PORT 7868 #endif + WLED_GLOBAL int netDebugPrintPort _INIT(WLED_DEBUG_PORT); #else #define DEBUGOUT Serial #endif diff --git a/wled00/wled_eeprom.cpp b/wled00/wled_eeprom.cpp index 83640d1c..7c5fd783 100644 --- a/wled00/wled_eeprom.cpp +++ b/wled00/wled_eeprom.cpp @@ -339,11 +339,6 @@ void loadSettingsFromEEPROM() //custom macro memory (16 slots/ each 64byte) //1024-2047 reserved - #ifndef WLED_DISABLE_BLYNK - readStringFromEEPROM(2220, blynkApiKey, 35); - if (strlen(blynkApiKey) < 25) blynkApiKey[0] = 0; - #endif - #ifdef WLED_ENABLE_DMX // DMX (2530 - 2549)2535 DMXChannels = EEPROM.read(2530); diff --git a/wled00/wled_serial.cpp b/wled00/wled_serial.cpp index 3e416b95..4d920e34 100644 --- a/wled00/wled_serial.cpp +++ b/wled00/wled_serial.cpp @@ -70,6 +70,7 @@ void sendBytes(){ void handleSerial() { if (pinManager.isPinAllocated(hardwareRX)) return; + if (!Serial) return; // arduino docs: `if (Serial)` indicates whether or not the USB CDC serial connection is open. For all non-USB CDC ports, this will always return true #ifdef WLED_ENABLE_ADALIGHT static auto state = AdaState::Header_A; diff --git a/wled00/ws.cpp b/wled00/ws.cpp index c09005bd..9ec06c23 100644 --- a/wled00/ws.cpp +++ b/wled00/ws.cpp @@ -111,9 +111,17 @@ void sendDataWs(AsyncWebSocketClient * client) DEBUG_PRINTF("JSON buffer size: %u for WS request (%u).\n", doc.memoryUsage(), len); size_t heap1 = ESP.getFreeHeap(); + DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap()); + #ifdef ESP8266 + if (len>heap1) { + DEBUG_PRINTLN(F("Out of memory (WS)!")); + return; + } + #endif buffer = ws.makeBuffer(len); // will not allocate correct memory sometimes on ESP8266 #ifdef ESP8266 size_t heap2 = ESP.getFreeHeap(); + DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap()); #else size_t heap2 = 0; // ESP32 variants do not have the same issue and will work without checking heap allocation #endif @@ -148,11 +156,17 @@ bool sendLiveLedsWs(uint32_t wsClient) AsyncWebSocketClient * wsc = ws.client(wsClient); if (!wsc || wsc->queueLength() > 0) return false; //only send if queue free - uint16_t used = strip.getLengthTotal(); - const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 1024 : 256; - uint16_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS - uint16_t pos = (strip.isMatrix ? 4 : 2); - uint16_t bufSize = pos + (used/n)*3; + size_t used = strip.getLengthTotal(); +#ifdef ESP8266 + const size_t MAX_LIVE_LEDS_WS = 256U; +#else + const size_t MAX_LIVE_LEDS_WS = 1024U; +#endif + size_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS + size_t pos = (strip.isMatrix ? 4 : 2); // start of data + size_t bufSize = pos + (used/n)*3; + size_t skipLines = 0; + AsyncWebSocketMessageBuffer * wsBuf = ws.makeBuffer(bufSize); if (!wsBuf) return false; //out of memory uint8_t* buffer = wsBuf->get(); @@ -163,11 +177,25 @@ bool sendLiveLedsWs(uint32_t wsClient) buffer[1] = 2; //version buffer[2] = Segment::maxWidth; buffer[3] = Segment::maxHeight; + if (Segment::maxWidth * Segment::maxHeight > MAX_LIVE_LEDS_WS*4) { + buffer[2] = Segment::maxWidth/4; + buffer[3] = Segment::maxHeight/4; + skipLines = 3; + } else if (Segment::maxWidth * Segment::maxHeight > MAX_LIVE_LEDS_WS) { + buffer[2] = Segment::maxWidth/2; + buffer[3] = Segment::maxHeight/2; + skipLines = 1; + } } #endif - for (uint16_t i = 0; pos < bufSize -2; i += n) + for (size_t i = 0; pos < bufSize -2; i += n) { +#ifndef WLED_DISABLE_2D + if (strip.isMatrix && skipLines) { + if ((i/Segment::maxWidth)%(skipLines+1)) i += Segment::maxWidth * skipLines; + } +#endif uint32_t c = strip.getPixelColor(i); buffer[pos++] = qadd8(W(c), R(c)); //R, add white channel to RGB channels as a simple RGBW -> RGB map buffer[pos++] = qadd8(W(c), G(c)); //G diff --git a/wled00/xml.cpp b/wled00/xml.cpp index c82999e7..f5c7ca54 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -364,7 +364,7 @@ void getSettingsJS(byte subPage, char* dest) if (subPage == 2) { - char nS[8]; + char nS[32]; appendGPIOinfo(); @@ -382,8 +382,8 @@ void getSettingsJS(byte subPage, char* dest) sappend('c',SET_F("CR"),cctFromRgb); sappend('v',SET_F("CB"),strip.cctBlending); sappend('v',SET_F("FR"),strip.getTargetFps()); - sappend('v',SET_F("AW"),Bus::getAutoWhiteMode()); - sappend('v',SET_F("LD"),strip.useLedsArray); + sappend('v',SET_F("AW"),Bus::getGlobalAWMode()); + sappend('c',SET_F("LD"),strip.useLedsArray); for (uint8_t s=0; s < busses.getNumBusses(); s++) { Bus* bus = busses.getBus(s); @@ -412,7 +412,7 @@ void getSettingsJS(byte subPage, char* dest) sappend('c',cv,bus->reversed); sappend('v',sl,bus->skippedLeds()); sappend('c',rf,bus->isOffRefreshRequired()); - sappend('v',aw,bus->getAWMode()); + sappend('v',aw,bus->getAutoWhiteMode()); sappend('v',wo,bus->getColorOrder() >> 4); } sappend('v',SET_F("MA"),strip.ablMilliampsMax); @@ -445,9 +445,11 @@ void getSettingsJS(byte subPage, char* dest) sappend('c',SET_F("GB"),gammaCorrectBri); sappend('c',SET_F("GC"),gammaCorrectCol); + dtostrf(gammaCorrectVal,3,1,nS); sappends('s',SET_F("GV"),nS); sappend('c',SET_F("TF"),fadeTransition); sappend('v',SET_F("TD"),transitionDelayDefault); sappend('c',SET_F("PF"),strip.paletteFade); + sappend('v',SET_F("TP"),randomPaletteChangeTime); sappend('v',SET_F("BF"),briMultiplier); sappend('v',SET_F("TB"),nightlightTargetBri); sappend('v',SET_F("TL"),nightlightDelayMinsDefault); @@ -509,6 +511,7 @@ void getSettingsJS(byte subPage, char* dest) sappend('v',SET_F("EU"),e131Universe); sappend('v',SET_F("DA"),DMXAddress); sappend('v',SET_F("XX"),DMXSegmentSpacing); + sappend('v',SET_F("PY"),e131Priority); sappend('v',SET_F("DM"),DMXMode); sappend('v',SET_F("ET"),realtimeTimeoutMs); sappend('c',SET_F("FB"),arlsForceMaxBri); @@ -521,13 +524,6 @@ void getSettingsJS(byte subPage, char* dest) #ifdef WLED_DISABLE_ALEXA oappend(SET_F("toggle('Alexa');")); // hide Alexa settings #endif - sappends('s',SET_F("BK"),(char*)((blynkEnabled)?SET_F("Hidden"):"")); - #ifndef WLED_DISABLE_BLYNK - sappends('s',SET_F("BH"),blynkHost); - sappend('v',SET_F("BP"),blynkPort); - #else - oappend(SET_F("toggle('Blynk');")); // hide BLYNK settings - #endif #ifdef WLED_ENABLE_MQTT sappend('c',SET_F("MQ"),mqttEnabled); @@ -738,10 +734,6 @@ void getSettingsJS(byte subPage, char* dest) sappend('v',SET_F("PH"),strip.panel[0].height); } sappend('v',SET_F("MPC"),strip.panels); - sappend('v',SET_F("PB"),strip.matrix.bottomStart); - sappend('v',SET_F("PR"),strip.matrix.rightStart); - sappend('v',SET_F("PV"),strip.matrix.vertical); - sappend('c',SET_F("PS"),strip.matrix.serpentine); // panels for (uint8_t i=0; i