Files
crosspoint-reader-mod/lib/EpdFont/builtinFonts/opendyslexic_8_regular.h

2066 lines
167 KiB
C
Raw Normal View History

Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
/**
* generated by fontconvert.py
* name: opendyslexic_8_regular
* size: 8
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
* mode: 2-bit compressed: true
* Command used: fontconvert.py opendyslexic_8_regular 8 ../builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf
* --2bit --compress
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
*/
#pragma once
#include "EpdFontData.h"
static const uint8_t opendyslexic_8_regularBitmaps[19740] = {
0x5D, 0x56, 0x4F, 0x6C, 0x1D, 0x47, 0x19, 0xFF, 0xCD, 0x4E, 0xED, 0x49, 0xB3, 0x8E, 0x37, 0x48, 0x89, 0x54, 0x88,
0xE3, 0xE5, 0x50, 0x24, 0x0B, 0xD9, 0xDE, 0x08, 0xF9, 0xF0, 0xA0, 0xFB, 0xDE, 0x6E, 0x1A, 0x55, 0x41, 0x54, 0x88,
0x20, 0x51, 0x8A, 0x54, 0xA4, 0xF4, 0xC4, 0x21, 0x42, 0xE4, 0x1D, 0x2C, 0xC5, 0x15, 0x6B, 0xBF, 0x4D, 0x0C, 0x44,
0x22, 0x51, 0x1B, 0x55, 0xED, 0xA5, 0x14, 0x25, 0x07, 0xC4, 0x9F, 0xA4, 0x10, 0x1F, 0x7C, 0xF0, 0xE1, 0xD9, 0x3B,
0xB1, 0x0F, 0x3E, 0x04, 0xD1, 0x49, 0xA2, 0x88, 0x43, 0x85, 0xD8, 0xE2, 0x40, 0x45, 0x42, 0x95, 0xA9, 0xB3, 0x90,
0x75, 0xB2, 0xEF, 0x0D, 0xDF, 0xAC, 0x93, 0x28, 0x30, 0x33, 0x9A, 0x7D, 0x6F, 0xFE, 0xFE, 0xBE, 0xEF, 0xFB, 0x7D,
0xDF, 0x37, 0x8C, 0xC9, 0x85, 0x71, 0x97, 0x4B, 0x1D, 0x7A, 0xB6, 0x1B, 0x60, 0x87, 0x74, 0x15, 0x61, 0xCF, 0x80,
0x77, 0x66, 0xED, 0xBA, 0xD6, 0x65, 0xB3, 0xB5, 0x73, 0x67, 0x8C, 0x11, 0x01, 0xB8, 0x8E, 0x04, 0xAD, 0x00, 0xF2,
0x06, 0x22, 0x63, 0xCC, 0x4B, 0x3F, 0x7A, 0xED, 0xDD, 0x58, 0x1C, 0x54, 0x70, 0xD4, 0x34, 0xB0, 0x38, 0x81, 0x81,
0xB9, 0xA3, 0xEF, 0x1E, 0xA6, 0x09, 0x6D, 0x57, 0x31, 0x1D, 0x02, 0x89, 0x07, 0x0C, 0xB0, 0x18, 0x40, 0x0C, 0xE7,
0x2C, 0xD0, 0x29, 0x69, 0xA7, 0xF4, 0x4A, 0x85, 0xCD, 0xB3, 0xF0, 0xC6, 0x24, 0xCC, 0x59, 0x70, 0x73, 0x0B, 0xC2,
0x68, 0x8C, 0x19, 0xE9, 0xBC, 0xD9, 0x1F, 0x18, 0x33, 0x1F, 0x1B, 0xD3, 0xA3, 0xF3, 0x4F, 0x19, 0x93, 0x82, 0x96,
0xB0, 0xAF, 0xD3, 0xF6, 0x67, 0x80, 0x03, 0x5E, 0x7A, 0xE1, 0xC0, 0xEB, 0xF2, 0xC0, 0x57, 0xE2, 0x03, 0x27, 0x10,
0xFC, 0x05, 0x03, 0x93, 0x39, 0x9A, 0x23, 0xF8, 0xD7, 0x10, 0xFB, 0xE3, 0x10, 0xFF, 0xC6, 0x0F, 0x5D, 0x47, 0x3F,
0x8B, 0xBA, 0x04, 0x39, 0xBC, 0x57, 0x53, 0x26, 0xC7, 0x31, 0xCA, 0x25, 0xFE, 0xAD, 0xC1, 0x2B, 0xBA, 0x39, 0x85,
0xF7, 0x07, 0x38, 0x7A, 0x26, 0x6C, 0xB1, 0x3B, 0xF3, 0x5A, 0xE8, 0xE0, 0xA6, 0x81, 0x31, 0x33, 0x8C, 0x2E, 0xA1,
0xB2, 0xA7, 0xD5, 0x0C, 0x43, 0xC8, 0x31, 0x8E, 0x85, 0x5D, 0xB4, 0x93, 0xA7, 0x53, 0x3C, 0x9E, 0x16, 0x31, 0xF5,
0x0D, 0x2E, 0xC7, 0x99, 0xF2, 0xB0, 0x20, 0xD2, 0x10, 0xF1, 0x14, 0x93, 0xBB, 0xB0, 0x40, 0xA3, 0x8E, 0x1C, 0x81,
0x1A, 0x46, 0x3E, 0x0C, 0x55, 0x6F, 0x90, 0x0D, 0x37, 0xD6, 0x74, 0xDF, 0x1E, 0x2B, 0xEA, 0xEB, 0xE2, 0x7B, 0x0B,
0x1D, 0x25, 0x72, 0xF7, 0xC4, 0xEA, 0xD0, 0x6E, 0x0E, 0x10, 0x18, 0xAA, 0x2A, 0x33, 0xF5, 0x57, 0x92, 0x4E, 0xC4,
0x35, 0xDD, 0x6D, 0xED, 0x8C, 0x8F, 0xFD, 0x2E, 0xEB, 0x3F, 0xD7, 0x6C, 0xD1, 0x0A, 0x8C, 0xC0, 0x49, 0x31, 0x05,
0xD2, 0xF3, 0x02, 0x86, 0x01, 0x85, 0x71, 0xF0, 0xA7, 0x06, 0x58, 0x3D, 0x20, 0x69, 0xC0, 0x05, 0xF4, 0x53, 0x03,
0x6D, 0x0B, 0x9F, 0x9D, 0xE3, 0x87, 0x79, 0xDA, 0x56, 0xBB, 0xDA, 0x6B, 0x1F, 0x4C, 0xDD, 0xD9, 0xF5, 0xB5, 0x2B,
0xC3, 0x33, 0xE2, 0xFC, 0xE1, 0x1B, 0x46, 0x77, 0x4A, 0x51, 0xD0, 0xBC, 0x9F, 0xBE, 0x90, 0xF2, 0x27, 0x55, 0x50,
0xDD, 0xF7, 0x4E, 0xD6, 0xCB, 0x7A, 0x2C, 0xF6, 0xFB, 0x83, 0x07, 0x73, 0x3A, 0xC9, 0xA5, 0xB3, 0x9C, 0xDC, 0xD1,
0xBC, 0x10, 0x05, 0xDF, 0xFA, 0xB6, 0xA9, 0x32, 0x13, 0x07, 0xC5, 0x0E, 0x11, 0xD3, 0x05, 0x43, 0x04, 0xE2, 0xB5,
0x38, 0x8B, 0x91, 0xD0, 0x32, 0xE7, 0xFA, 0x7B, 0x9F, 0x99, 0xE2, 0xF8, 0x2D, 0x7B, 0xED, 0x30, 0xDC, 0x54, 0xE4,
0xFC, 0x03, 0x7E, 0xD5, 0xB9, 0x7E, 0x25, 0x2F, 0x32, 0xF3, 0xD3, 0xA3, 0xE7, 0xB8, 0x42, 0x81, 0x26, 0x4D, 0x7A,
0xE6, 0x30, 0x98, 0xC5, 0xE7, 0x6F, 0x0D, 0x7C, 0x57, 0x21, 0x84, 0x07, 0xBE, 0x7E, 0x89, 0xF6, 0x76, 0x72, 0x60,
0x2F, 0x33, 0x57, 0x72, 0xE4, 0x34, 0x3B, 0x69, 0x5E, 0x56, 0x9B, 0xF9, 0xF0, 0x34, 0xFF, 0x25, 0x36, 0xAE, 0x15,
0x9D, 0x6A, 0xB0, 0xB4, 0x26, 0x34, 0x92, 0x69, 0xDA, 0x32, 0x0C, 0x11, 0x3B, 0x8A, 0xE4, 0x4D, 0x10, 0xC0, 0x4B,
0x79, 0xCE, 0x0A, 0x38, 0xB7, 0x98, 0xBA, 0xD0, 0xE0, 0x3C, 0x9E, 0x0A, 0x5D, 0xF6, 0x20, 0x77, 0x2B, 0xAE, 0x8A,
0x69, 0x7E, 0x35, 0x0E, 0x97, 0xC4, 0xDA, 0xC3, 0xC2, 0xDD, 0x82, 0x5B, 0xB8, 0x2F, 0x9F, 0xC6, 0xA6, 0xDC, 0xBF,
0x20, 0xDE, 0x67, 0x1B, 0x69, 0x99, 0xF5, 0xD9, 0x6F, 0x52, 0x5C, 0x3B, 0x58, 0x98, 0x2A, 0x2A, 0x31, 0xD1, 0x6A,
0x59, 0xE8, 0xF4, 0xF1, 0xC4, 0xAA, 0xB6, 0x3F, 0x8F, 0xCC, 0xFA, 0xEE, 0x5A, 0xFE, 0x2B, 0xE0, 0x79, 0x38, 0x05,
0x3A, 0xB1, 0xB0, 0x1D, 0x56, 0x62, 0x04, 0xBD, 0x9A, 0xB1, 0xAC, 0x5B, 0xF3, 0xAF, 0xD3, 0xDF, 0x5B, 0x33, 0xA5,
0xD3, 0xB7, 0x2B, 0x11, 0xC5, 0xB0, 0x50, 0x83, 0x14, 0x4E, 0x05, 0x56, 0xB1, 0xEC, 0x56, 0x67, 0x0B, 0x2B, 0x78,
0x54, 0xB2, 0xB4, 0x95, 0x39, 0x58, 0xB2, 0x06, 0x0A, 0x6D, 0x37, 0x43, 0xD2, 0x0B, 0x45, 0xC7, 0xB7, 0x40, 0x0A,
0x6A, 0x5A, 0x5B, 0x5B, 0xAB, 0x61, 0x02, 0x3C, 0x7F, 0xC2, 0x5A, 0x71, 0x73, 0x11, 0xD3, 0x38, 0xC0, 0x89, 0x40,
0xE3, 0x81, 0x94, 0xF9, 0x3C, 0x17, 0x2F, 0x0D, 0x0D, 0x8D, 0x3E, 0xDF, 0x6E, 0x27, 0xD1, 0x7A, 0x5C, 0x7C, 0xAE,
0xE0, 0x84, 0x57, 0x14, 0x83, 0xE4, 0x2E, 0x15, 0x1C, 0x43, 0x86, 0x7D, 0x05, 0x98, 0x24, 0x4D, 0x4B, 0x1A, 0x05,
0xFF, 0x13, 0xB0, 0x21, 0xB1, 0x38, 0x8D, 0xD0, 0x23, 0xE6, 0x2B, 0x37, 0x9E, 0xE1, 0xCA, 0x67, 0xC6, 0x28, 0x63,
0xAA, 0x04, 0x7E, 0x40, 0x57, 0x99, 0x92, 0xDF, 0x5C, 0xF6, 0xD0, 0x08, 0xA1, 0xB5, 0x98, 0x37, 0xA5, 0x77, 0xA9,
0x0C, 0xB1, 0xA4, 0x71, 0x4F, 0xF2, 0x0F, 0x11, 0xB4, 0x2E, 0x57, 0xC6, 0xDC, 0x30, 0x5B, 0x35, 0x1E, 0xB7, 0x87,
0x4E, 0x8F, 0x00, 0x0B, 0x09, 0x2F, 0x86, 0x5F, 0x5F, 0x34, 0x51, 0xF7, 0x11, 0x81, 0x95, 0xF0, 0xFB, 0xCB, 0x9E,
0xE9, 0x71, 0xD3, 0x43, 0xB6, 0xBD, 0x81, 0x3C, 0x3B, 0xF5, 0x4C, 0xC5, 0xA5, 0x4F, 0xDE, 0x4F, 0xC7, 0x7A, 0x64,
0x6F, 0xC2, 0xD3, 0xD5, 0x08, 0x42, 0xB8, 0x1F, 0x42, 0xDC, 0xBB, 0x7D, 0xB9, 0x24, 0x28, 0x91, 0xA9, 0x3C, 0x63,
0x85, 0x26, 0x29, 0x3A, 0xFD, 0xC3, 0x31, 0x16, 0xE1, 0xD6, 0x9D, 0x91, 0x59, 0xE5, 0x3E, 0xFA, 0x6B, 0xCC, 0x5B,
0x86, 0xC0, 0x48, 0x4B, 0xA3, 0xB5, 0x7F, 0x1E, 0xD1, 0xA4, 0xC0, 0x51, 0xDA, 0x70, 0xCD, 0xE8, 0x25, 0x82, 0xE0,
0xA6, 0x4E, 0x4E, 0xCA, 0x6D, 0x11, 0x25, 0xC8, 0x97, 0xDE, 0x21, 0xBA, 0x68, 0xF7, 0x16, 0x83, 0x35, 0x07, 0x40,
0x53, 0x34, 0x53, 0xEB, 0xB5, 0x85, 0xEC, 0x6F, 0x39, 0xEB, 0x90, 0xE4, 0x27, 0x7B, 0x14, 0x8B, 0xE8, 0x3C, 0xBA,
0xDC, 0xE2, 0xDD, 0x8D, 0x3D, 0x33, 0x08, 0x97, 0x1E, 0xB5, 0xE6, 0x76, 0xEB, 0xA2, 0x99, 0x99, 0x5E, 0xDD, 0xFA,
0x15, 0xE6, 0x2A, 0xB4, 0xEA, 0x7E, 0x0E, 0xDD, 0xE4, 0x49, 0xE9, 0x76, 0x97, 0xE9, 0x68, 0xE5, 0xC5, 0x4D, 0x50,
0x94, 0xF3, 0xC8, 0xB8, 0xF4, 0xF1, 0x91, 0x30, 0x2D, 0xE4, 0x24, 0x2B, 0xB3, 0xB5, 0xBE, 0x4B, 0x46, 0x75, 0xE5,
0x62, 0x93, 0xAF, 0xE6, 0x9E, 0x8F, 0xB0, 0xC4, 0x7D, 0xC9, 0x7B, 0xF0, 0x34, 0x3A, 0x92, 0x19, 0x29, 0xEE, 0xA6,
0x41, 0x94, 0x2E, 0x45, 0xA7, 0xF2, 0xEC, 0xAD, 0xD4, 0x50, 0x60, 0x24, 0x25, 0x49, 0x96, 0x6F, 0x8B, 0x97, 0x32,
0x2B, 0x55, 0x2D, 0x9E, 0xC2, 0xCA, 0x25, 0x8A, 0xA4, 0x84, 0x96, 0x4A, 0x05, 0xFF, 0x50, 0x81, 0x9E, 0xA7, 0x45,
0xD9, 0x91, 0xC1, 0xC7, 0x77, 0xD3, 0x87, 0xA7, 0x2F, 0x8B, 0xBB, 0xA3, 0xB3, 0xAD, 0x6E, 0xD2, 0xDB, 0xDC, 0xDC,
0x34, 0x57, 0xAF, 0xAE, 0xF5, 0xA3, 0xC0, 0xD5, 0x55, 0xD7, 0x5F, 0xBB, 0xAF, 0x9B, 0xDE, 0x5F, 0xA5, 0x65, 0x27,
0xF0, 0x79, 0x8C, 0x46, 0xD4, 0xD2, 0xC9, 0x48, 0x4E, 0x46, 0x6A, 0xB2, 0xA9, 0x9B, 0x61, 0xD1, 0x4C, 0x92, 0x66,
0xD2, 0x6C, 0x26, 0x7E, 0xB3, 0xEB, 0x75, 0xBB, 0xA2, 0xEA, 0xF2, 0xAA, 0xB2, 0xEC, 0x3D, 0xE7, 0x3C, 0x58, 0x71,
0x0A, 0xA1, 0x0B, 0xCC, 0x26, 0xF0, 0x7E, 0x0F, 0x46, 0xE0, 0x22, 0x32, 0x3D, 0xF1, 0xEA, 0x53, 0xB0, 0x3B, 0x0A,
0xA5, 0xB9, 0x54, 0x05, 0xC6, 0x38, 0xC6, 0x60, 0x5F, 0xBF, 0x36, 0x77, 0x29, 0x6E, 0x93, 0xE3, 0xAD, 0xC7, 0x13,
0xD3, 0xCE, 0xD5, 0x38, 0xC9, 0xCC, 0x19, 0xA3, 0x96, 0x08, 0x3B, 0x99, 0x81, 0x08, 0x59, 0x6D, 0x77, 0xE4, 0xE9,
0x31, 0x45, 0x78, 0x85, 0x59, 0x8A, 0x13, 0x92, 0xAB, 0xC9, 0x3A, 0x83, 0x50, 0xA2, 0xC1, 0x04, 0x51, 0x6A, 0x31,
0xA1, 0xDC, 0x41, 0x7F, 0x0F, 0xA9, 0x3D, 0xA1, 0x47, 0xB6, 0xF5, 0x0D, 0x05, 0x1D, 0x53, 0x62, 0x9F, 0xE5, 0x07,
0x39, 0x04, 0xA2, 0x7C, 0xFB, 0x26, 0xDC, 0xEE, 0x72, 0x4C, 0x0F, 0x21, 0x6F, 0x8B, 0x93, 0x7F, 0x5F, 0x16, 0x46,
0xF9, 0x26, 0xED, 0x7A, 0x2F, 0x6A, 0xDF, 0x95, 0x61, 0x80, 0xA2, 0x12, 0x1B, 0xDA, 0x97, 0x2C, 0xCB, 0x1D, 0x52,
0x18, 0xB1, 0x31, 0x01, 0xA9, 0x93, 0xFC, 0x0D, 0xA0, 0xDC, 0xE2, 0xD2, 0xED, 0x16, 0x71, 0x60, 0xBD, 0xE4, 0x4B,
0xA2, 0x47, 0x42, 0xF8, 0x56, 0x8E, 0x9A, 0xB5, 0x56, 0xC7, 0xA6, 0x4F, 0x66, 0xFC, 0xFF, 0x96, 0xFC, 0x6F, 0x9B,
0xDD, 0xB6, 0xC3, 0xEC, 0x76, 0x5B, 0x42, 0x52, 0xB7, 0x27, 0x0C, 0x0A, 0x13, 0x24, 0x73, 0x8C, 0xA8, 0x5D, 0x46,
0xA6, 0xB0, 0x17, 0x6E, 0xBB, 0x50, 0x6A, 0x27, 0xDC, 0x79, 0x8A, 0x88, 0x93, 0xF0, 0x99, 0xE6, 0xB9, 0x17, 0xCF,
0x62, 0xC9, 0x95, 0x42, 0x96, 0x68, 0xFA, 0x31, 0xBF, 0xA7, 0xC9, 0x8D, 0x08, 0x84, 0x82, 0x57, 0xD9, 0x98, 0x41,
0xDC, 0x87, 0xF3, 0x11, 0x71, 0x9A, 0xB6, 0x41, 0xAC, 0x11, 0xFB, 0x97, 0x9A, 0x4C, 0x7B, 0x2F, 0xE6, 0x51, 0xAC,
0x7D, 0x51, 0xF9, 0xD0, 0xE6, 0x7A, 0xEE, 0x1D, 0x3D, 0xDE, 0xC4, 0xC3, 0xCF, 0xEE, 0x4B, 0xB7, 0x4F, 0xBB, 0x3A,
0x32, 0x4B, 0x79, 0xC9, 0x0B, 0xB2, 0x78, 0x54, 0xDF, 0x69, 0x15, 0xEC, 0xA8, 0x49, 0x96, 0x73, 0xD2, 0x6C, 0x52,
0xC0, 0x2D, 0x2D, 0x70, 0xEB, 0xB4, 0x11, 0x79, 0xE2, 0x1C, 0xFC, 0x33, 0xCA, 0x93, 0x95, 0xAB, 0xFC, 0xD3, 0xB9,
0x53, 0x2C, 0xA2, 0x19, 0x22, 0x99, 0x44, 0xE1, 0x31, 0xED, 0xAE, 0x29, 0xFE, 0x91, 0x74, 0xC8, 0xEE, 0x06, 0x20,
0x96, 0x77, 0xEB, 0x56, 0xD9, 0xC6, 0xC8, 0x9A, 0xC6, 0x1C, 0x22, 0xFF, 0xD9, 0xFB, 0x2A, 0xA5, 0x53, 0xE2, 0x44,
0xF9, 0xB8, 0x55, 0x4F, 0x35, 0x73, 0xF1, 0xB7, 0xA4, 0x4D, 0x4A, 0xDD, 0xEA, 0x0B, 0x6F, 0xF7, 0x29, 0x25, 0x86,
0x8F, 0x5B, 0x83, 0xA7, 0x0D, 0x91, 0xCE, 0x08, 0x9B, 0x52, 0x17, 0xDD, 0x78, 0xC1, 0xAD, 0x32, 0x89, 0x1D, 0xB8,
0x20, 0x28, 0xD8, 0xA5, 0x75, 0x1E, 0x5D, 0x10, 0x71, 0xE8, 0xC8, 0xFD, 0x90, 0xCF, 0x1C, 0x7B, 0xB9, 0xA0, 0xA5,
0xB4, 0x81, 0xA7, 0x4F, 0xF6, 0xD3, 0xD4, 0xB8, 0x23, 0x27, 0x1C, 0xB5, 0x9F, 0xDD, 0xE8, 0x59, 0x4E, 0x0C, 0xE3,
0xD3, 0x1D, 0xCF, 0x1E, 0xBB, 0xF8, 0x6B, 0x7A, 0x6B, 0xD8, 0x90, 0x0C, 0x92, 0xD8, 0xF2, 0xA4, 0xED, 0x5D, 0x3E,
0x24, 0x17, 0xA7, 0xC4, 0x61, 0x34, 0xDA, 0xFC, 0x34, 0xBA, 0xAD, 0x6C, 0xD5, 0x54, 0xEE, 0x3F, 0x48, 0x8F, 0x14,
0xC5, 0x12, 0xDB, 0xD5, 0xC1, 0xB8, 0xD5, 0xE7, 0x5B, 0x49, 0x8B, 0xDD, 0x50, 0xC3, 0x21, 0x36, 0xD4, 0x68, 0xF0,
0x8B, 0x2B, 0xA6, 0xA4, 0x70, 0x67, 0x8B, 0x28, 0x83, 0xEF, 0x84, 0x14, 0x84, 0x6D, 0x9D, 0xA1, 0xF8, 0x11, 0x54,
0x83, 0xF5, 0x84, 0xC2, 0xAE, 0xC7, 0x5D, 0xF0, 0x4D, 0xAF, 0x7F, 0x5D, 0x76, 0xA7, 0xF8, 0x3A, 0xC2, 0x36, 0x5F,
0x4F, 0x93, 0x28, 0xBB, 0x62, 0xAA, 0xC1, 0x2D, 0x42, 0xE0, 0x94, 0x28, 0xDA, 0x63, 0xCE, 0xFC, 0x7B, 0x55, 0xE7,
0xF6, 0x69, 0xA0, 0x41, 0xAA, 0x7A, 0xCE, 0x33, 0x32, 0xA0, 0x64, 0xD9, 0xB1, 0x0F, 0x05, 0x61, 0x82, 0x23, 0xB9,
0x7D, 0x34, 0xB0, 0x9C, 0xE8, 0x20, 0x36, 0xD6, 0xCD, 0xBD, 0x93, 0x3D, 0xD9, 0x6A, 0xBB, 0xEF, 0x3B, 0x9F, 0xA0,
0x7C, 0xD0, 0xF7, 0xCD, 0x49, 0x3A, 0xA6, 0x38, 0xD2, 0x8D, 0xFA, 0xAE, 0xF5, 0x31, 0x7A, 0x13, 0x48, 0xCA, 0xCD,
0x75, 0xC7, 0x7F, 0x9E, 0x46, 0x86, 0xE7, 0x33, 0x21, 0x9F, 0x97, 0xE3, 0x0D, 0x67, 0x2D, 0x1D, 0x4F, 0xF8, 0xBA,
0x0C, 0x13, 0x2E, 0xC7, 0x12, 0x62, 0xCB, 0xEE, 0x29, 0x5B, 0x1A, 0x8D, 0x46, 0x82, 0x45, 0xAE, 0x76, 0x5A, 0xF7,
0x67, 0x52, 0xD0, 0x09, 0x6D, 0x26, 0x5D, 0xDA, 0xBE, 0xE0, 0xC8, 0x9D, 0x68, 0x38, 0xB9, 0x71, 0xCE, 0xD1, 0xD4,
0xE3, 0xB4, 0x44, 0x08, 0x7F, 0x16, 0x37, 0x34, 0xEF, 0x12, 0x7D, 0xC8, 0xAC, 0x3F, 0x56, 0xE2, 0x7C, 0x3C, 0xB3,
0x2C, 0x4E, 0x95, 0x7B, 0x86, 0x79, 0xAA, 0xA6, 0xF7, 0x8B, 0xFA, 0x6D, 0xE8, 0xC8, 0x2C, 0x50, 0x23, 0x2B, 0xAE,
0xCA, 0x56, 0x1E, 0xAE, 0xEA, 0x88, 0x7F, 0x2B, 0x5E, 0xDA, 0x19, 0x32, 0xD5, 0xD0, 0x2E, 0x25, 0x8E, 0x90, 0x32,
0x87, 0xF6, 0x08, 0x46, 0x33, 0x1F, 0xA5, 0x44, 0xBD, 0x9B, 0x9C, 0xBD, 0x45, 0xAF, 0xC9, 0x29, 0x8B, 0xB3, 0x11,
0x6E, 0x43, 0x5C, 0x97, 0xC9, 0x60, 0xC9, 0x1E, 0xE8, 0x06, 0x9F, 0x8F, 0xC7, 0xDB, 0x6C, 0x3D, 0x1E, 0x21, 0x01,
0x6E, 0x97, 0xBE, 0xC1, 0xF1, 0x74, 0xC7, 0x24, 0x5E, 0xB8, 0x13, 0x57, 0x2E, 0x57, 0x23, 0x1E, 0x0E, 0x84, 0x50,
0xA5, 0x20, 0xEB, 0x78, 0x46, 0xBD, 0xD1, 0x27, 0xA3, 0x7A, 0xB5, 0x33, 0xEA, 0x6D, 0x7F, 0x3A, 0x12, 0x7B, 0x3D,
0x35, 0xEE, 0xCA, 0x29, 0x21, 0xDB, 0x5C, 0xB6, 0xA9, 0x77, 0x65, 0xF3, 0xB8, 0xF4, 0x29, 0xAC, 0xFE, 0x27, 0x05,
0xFF, 0x49, 0x4D, 0xC2, 0x02, 0x0C, 0x13, 0x3A, 0x23, 0x3F, 0x89, 0xEB, 0xE0, 0x6C, 0x5D, 0x4E, 0xF4, 0xC4, 0x2B,
0x8E, 0xF5, 0x2E, 0x2F, 0xB7, 0x5E, 0xA6, 0xBF, 0x3A, 0x1B, 0x19, 0xD7, 0x46, 0x5F, 0xA7, 0x7E, 0x0D, 0x45, 0x95,
0x88, 0x6D, 0x75, 0x6D, 0x4D, 0xDD, 0xCA, 0xAD, 0xDA, 0xFC, 0xFB, 0xF8, 0x73, 0xFC, 0x86, 0x1A, 0x9D, 0x12, 0x6F,
0xB2, 0x0D, 0xB9, 0x64, 0xFA, 0x81, 0x39, 0x55, 0x5A, 0x18, 0x8A, 0xAD, 0xCA, 0x61, 0x91, 0x4E, 0x53, 0x08, 0x1B,
0xDD, 0x8F, 0x50, 0xDB, 0x87, 0x65, 0x0F, 0xBC, 0x46, 0x38, 0x0A, 0x66, 0x13, 0xB0, 0xFE, 0x62, 0x38, 0x11, 0x78,
0xE2, 0xFC, 0x27, 0x29, 0x79, 0x42, 0x70, 0x57, 0x8B, 0xCD, 0x0A, 0x05, 0xE5, 0x2A, 0x96, 0x8F, 0x7A, 0x04, 0x0D,
0x51, 0x4A, 0x8E, 0x45, 0x38, 0x5B, 0xDA, 0xD9, 0xCC, 0x7D, 0x7A, 0xBD, 0x90, 0x44, 0xEC, 0x86, 0x1C, 0xA7, 0xD7,
0xA3, 0x6E, 0x88, 0x33, 0x71, 0xA8, 0x99, 0xB1, 0x48, 0xE7, 0x6C, 0x04, 0xA3, 0xC4, 0x9D, 0x46, 0x9A, 0xDB, 0x47,
0x11, 0xF9, 0xA0, 0xBC, 0x58, 0xD9, 0x8C, 0x41, 0xD1, 0xD8, 0x26, 0x3F, 0xE9, 0xD0, 0x61, 0x46, 0x50, 0xC0, 0xA4,
0x37, 0x88, 0x48, 0x6B, 0xF8, 0x34, 0xBD, 0x4C, 0xC7, 0x0F, 0xD3, 0x77, 0xBB, 0xBA, 0x9A, 0x5D, 0x38, 0x71, 0xE2,
0xC4, 0x0F, 0x8E, 0x5D, 0xBC, 0x68, 0xDF, 0x25, 0x94, 0x65, 0x28, 0x0E, 0x53, 0x75, 0x6C, 0x78, 0xEE, 0xB2, 0xDC,
0x51, 0xB6, 0x72, 0x15, 0xC9, 0x2F, 0x63, 0x7A, 0xE2, 0xED, 0x55, 0x85, 0xFF, 0x02, 0x9D, 0x57, 0x4D, 0x6C, 0x1B,
0xC7, 0x15, 0xFE, 0x66, 0x47, 0xE6, 0xD8, 0x5C, 0x51, 0xAB, 0x83, 0x0B, 0x28, 0x29, 0x4D, 0x0A, 0x85, 0x0F, 0x4A,
0x4B, 0x89, 0x02, 0xCA, 0xA0, 0x2C, 0xBA, 0xD4, 0xAE, 0xED, 0xB4, 0x0A, 0xEA, 0x8B, 0x8B, 0xFA, 0x90, 0x43, 0x00,
0x1B, 0x69, 0x4F, 0x41, 0x01, 0xF3, 0x40, 0xC0, 0x4A, 0x4B, 0x9B, 0xD3, 0xD8, 0x80, 0x0F, 0x6E, 0x1B, 0x05, 0x68,
0x2F, 0x3D, 0x09, 0xFD, 0x01, 0x62, 0x07, 0x85, 0x14, 0x40, 0x07, 0x15, 0xA0, 0xCC, 0xB1, 0x75, 0x10, 0x02, 0x07,
0xCD, 0x5A, 0x46, 0x11, 0xA0, 0x05, 0xDA, 0x6D, 0x25, 0xF8, 0x20, 0x23, 0xED, 0xB6, 0xD9, 0xA2, 0xB4, 0xBD, 0xE2,
0xF4, 0xCD, 0x52, 0x72, 0x2C, 0xA3, 0x56, 0x53, 0xCD, 0x0C, 0x87, 0xB3, 0xE4, 0xCC, 0x7B, 0x6F, 0xDE, 0x7B, 0xDF,
0x7B, 0x6F, 0x3F, 0xE7, 0xAC, 0x44, 0x4B, 0xB0, 0x54, 0xE4, 0x3A, 0x9C, 0x26, 0xDB, 0x52, 0x0B, 0x25, 0x01, 0xD3,
0x02, 0xEA, 0xCA, 0xEE, 0x96, 0x37, 0x5C, 0xD5, 0x48, 0xFB, 0x8C, 0x9A, 0x52, 0xE5, 0x44, 0x6C, 0x31, 0x05, 0x69,
0x36, 0x9C, 0x82, 0xD7, 0xE5, 0x41, 0x23, 0x07, 0x54, 0x80, 0x39, 0xD0, 0xCF, 0xDC, 0xC7, 0xB9, 0x6B, 0x4C, 0x27,
0x68, 0xC0, 0x0A, 0x70, 0x11, 0x5C, 0xFF, 0xDA, 0xD1, 0x5B, 0x47, 0x33, 0x8E, 0xBE, 0x79, 0x27, 0x5C, 0x70, 0xC7,
0x0B, 0xB6, 0x5E, 0xFD, 0xDB, 0x92, 0x3F, 0x40, 0x87, 0x43, 0x7E, 0x33, 0x74, 0xAD, 0xF5, 0x80, 0xF7, 0x20, 0x22,
0x38, 0xB3, 0x42, 0x87, 0x88, 0xC1, 0x03, 0x38, 0xA7, 0xB6, 0x97, 0xCA, 0xF0, 0x38, 0x7F, 0xBE, 0x8E, 0xD7, 0xAF,
0x5F, 0x37, 0xCB, 0x62, 0xC8, 0x8F, 0xC9, 0xB3, 0x10, 0x3E, 0xBC, 0xC0, 0xB9, 0x7F, 0x53, 0xE5, 0xF2, 0x2C, 0xD0,
0x89, 0xA5, 0x7D, 0x24, 0xB0, 0x6F, 0xE9, 0xAE, 0xD7, 0xA3, 0x4D, 0x23, 0x59, 0x67, 0x7A, 0xE5, 0xAF, 0x51, 0x56,
0x5E, 0xBE, 0x2C, 0x5F, 0xB3, 0x4E, 0x9E, 0x7E, 0x5B, 0x7E, 0x97, 0x7E, 0x4D, 0x46, 0x6F, 0x0D, 0xBE, 0x78, 0xE7,
0x01, 0x8E, 0xB1, 0x3B, 0x37, 0xD7, 0xEE, 0xAC, 0xA9, 0xE6, 0x92, 0xB8, 0x2D, 0x1B, 0x0B, 0x03, 0x03, 0xD7, 0x4F,
0x77, 0x7A, 0x18, 0x82, 0x03, 0xE7, 0xF5, 0x6B, 0x9D, 0xDE, 0x01, 0xFF, 0x67, 0x97, 0x5F, 0x7A, 0x6D, 0xED, 0xE5,
0x9F, 0xFE, 0xC2, 0x9C, 0x62, 0x3A, 0x95, 0x80, 0x6D, 0xB1, 0x7B, 0x41, 0x58, 0xAA, 0xDA, 0x0E, 0xBF, 0xA9, 0x83,
0x62, 0x00, 0xC9, 0x14, 0x53, 0x1D, 0x6D, 0x66, 0xF8, 0x40, 0x8B, 0xD8, 0x8E, 0x40, 0x4D, 0x8E, 0x95, 0x8A, 0x0A,
0x87, 0x31, 0x3B, 0x30, 0x66, 0xBD, 0xF4, 0xCB, 0x68, 0xEC, 0xF6, 0xB0, 0x8B, 0xBB, 0x2A, 0x57, 0x63, 0xEB, 0x41,
0x81, 0xA6, 0xB0, 0xE0, 0x59, 0xEB, 0xBA, 0xF7, 0x35, 0xBD, 0x5E, 0x7E, 0x6B, 0x12, 0x8C, 0xC8, 0xB2, 0xF2, 0x37,
0x5B, 0xD9, 0x4E, 0xB6, 0x95, 0xF5, 0x6C, 0xC7, 0x2E, 0x8A, 0xA2, 0x98, 0x10, 0x53, 0xD4, 0x2F, 0x8A, 0x0B, 0xA2,
0x54, 0x7B, 0x01, 0xFE, 0x2B, 0x07, 0x17, 0xC7, 0x2C, 0xC8, 0xD1, 0x41, 0x22, 0x9B, 0x3D, 0xFE, 0xF2, 0xE4, 0xB7,
0x0F, 0xD1, 0xC2, 0x97, 0x25, 0xD7, 0x5A, 0x53, 0x47, 0x4A, 0xCE, 0x19, 0xE7, 0x8C, 0x38, 0x89, 0x63, 0xA9, 0xA5,
0x66, 0x88, 0xDC, 0x59, 0xFA, 0x48, 0xEE, 0x67, 0x48, 0x96, 0x31, 0x28, 0xCC, 0x65, 0x61, 0x6F, 0xD4, 0xE1, 0xAD,
0xFB, 0x12, 0x25, 0x9B, 0x8C, 0xD9, 0xC4, 0x10, 0x9F, 0x44, 0xBD, 0x12, 0x70, 0xA9, 0x83, 0x12, 0x72, 0x98, 0x45,
0xA5, 0x40, 0x67, 0x5F, 0xA1, 0xCF, 0x59, 0x04, 0x4C, 0x0A, 0x64, 0x31, 0x89, 0x31, 0x4B, 0x5A, 0x0F, 0x72, 0xCB,
0x4E, 0xF7, 0xF7, 0x39, 0x08, 0xA2, 0x54, 0x41, 0x68, 0x29, 0x1B, 0x79, 0x2C, 0x22, 0x74, 0xA4, 0x8D, 0x56, 0x58,
0x61, 0xD7, 0xFD, 0x16, 0xDD, 0xDB, 0xC2, 0x00, 0x0E, 0x22, 0x10, 0x61, 0x86, 0x2C, 0x3F, 0x09, 0x7E, 0x5C, 0x66,
0xDA, 0x79, 0x94, 0x83, 0x60, 0x14, 0xE4, 0x44, 0xA8, 0x14, 0xC1, 0xE5, 0x07, 0xC8, 0xE7, 0x88, 0x82, 0x17, 0xDB,
0xE4, 0x1A, 0x47, 0x89, 0x29, 0x7E, 0x05, 0xC7, 0x47, 0x64, 0x84, 0x1E, 0x36, 0xAB, 0x98, 0x26, 0x2B, 0xC6, 0x32,
0x0A, 0xC6, 0xDE, 0x55, 0x63, 0xDC, 0x19, 0x72, 0x82, 0xC3, 0xC5, 0x77, 0xE5, 0xB9, 0xC0, 0x28, 0x9F, 0x1C, 0x6D,
0x1C, 0xC6, 0x99, 0xB6, 0x9B, 0x2D, 0xC1, 0x23, 0xB2, 0x09, 0xF0, 0x89, 0x44, 0x35, 0xC2, 0xF8, 0x11, 0x90, 0xDF,
0x0A, 0x19, 0x5B, 0x41, 0x01, 0xB1, 0x50, 0x2D, 0x1D, 0x7B, 0x5A, 0x17, 0x21, 0x6E, 0x2B, 0x74, 0xC1, 0xE9, 0xA8,
0x34, 0x9E, 0x4C, 0xDC, 0x76, 0xB7, 0x09, 0xC0, 0x51, 0x10, 0xE4, 0x66, 0xBF, 0x03, 0xD6, 0x15, 0x16, 0x1B, 0x70,
0x1D, 0x14, 0x78, 0x60, 0xFB, 0x33, 0x3C, 0x28, 0x32, 0xAD, 0x03, 0xAD, 0x93, 0x26, 0x8A, 0x65, 0xF0, 0xD0, 0x1C,
0x20, 0x4C, 0x88, 0x05, 0x64, 0xC4, 0x0E, 0x01, 0x8B, 0x7E, 0x4D, 0xC8, 0xFA, 0x3E, 0xDC, 0x10, 0x43, 0x2E, 0xEC,
0x69, 0x9F, 0xF0, 0xC3, 0xC2, 0x1A, 0x16, 0x85, 0xAC, 0xB1, 0xA8, 0xA8, 0xB7, 0x1C, 0xAD, 0x57, 0x15, 0xFB, 0x67,
0x84, 0x29, 0xCC, 0x9D, 0xC2, 0x97, 0x47, 0x31, 0xD2, 0xDC, 0xD7, 0x35, 0xAC, 0x20, 0x42, 0xDC, 0xC4, 0x0B, 0xCF,
0xEF, 0x4F, 0x09, 0xCF, 0x01, 0x07, 0x65, 0x2A, 0x2F, 0xF6, 0x27, 0x7C, 0x9F, 0xA7, 0xD6, 0x12, 0x9E, 0x7E, 0x00,
0x4B, 0xD3, 0xD3, 0x50, 0x9B, 0xA6, 0xF7, 0xC8, 0x8E, 0xE2, 0x0A, 0x81, 0xC4, 0x75, 0xB4, 0x64, 0x21, 0xE1, 0xCF,
0x21, 0x83, 0xA2, 0x49, 0x0A, 0xE3, 0x9A, 0xC0, 0x53, 0xD4, 0xA4, 0xC5, 0x18, 0x5A, 0x5F, 0x55, 0xF4, 0xFC, 0x98,
0xB9, 0xBD, 0x85, 0xD6, 0x16, 0x19, 0x5D, 0x28, 0xE3, 0x01, 0xC5, 0xD4, 0x16, 0xE3, 0xE9, 0xEC, 0x01, 0x65, 0x3A,
0xD6, 0x5B, 0xA6, 0xA0, 0xC1, 0xF5, 0x16, 0x3A, 0xC4, 0x8D, 0x84, 0x9D, 0x03, 0x46, 0xC9, 0x99, 0x28, 0x6A, 0x34,
0xC0, 0xFA, 0xD7, 0x10, 0x3A, 0x69, 0xF5, 0xA6, 0x7D, 0xF2, 0x4A, 0x3B, 0x9D, 0xB4, 0xEA, 0x24, 0xF6, 0xF6, 0xA3,
0xD6, 0x6F, 0xE9, 0x44, 0xA7, 0xE0, 0xA5, 0x78, 0x54, 0x27, 0x78, 0x7F, 0xDA, 0x5A, 0x7A, 0x55, 0x6F, 0x34, 0xB0,
0xB3, 0x95, 0x0E, 0x69, 0xB5, 0x4D, 0xC3, 0xD1, 0x5D, 0xAD, 0x3F, 0xA4, 0xD8, 0x15, 0xA0, 0xEC, 0x1F, 0xCA, 0xA5,
0x2E, 0xF3, 0x59, 0xD8, 0x64, 0x33, 0x2C, 0x8A, 0xCB, 0x8E, 0xFC, 0xAC, 0x62, 0x8D, 0x5A, 0xE4, 0x63, 0xA9, 0x1E,
0x54, 0x53, 0xEC, 0x1A, 0x6D, 0x5B, 0x2D, 0x0F, 0x0C, 0x8E, 0x55, 0xFA, 0x98, 0x6E, 0x3E, 0x6E, 0xED, 0xF6, 0x32,
0x08, 0x81, 0x49, 0x3E, 0xDF, 0x37, 0x5E, 0x24, 0x54, 0x11, 0x4D, 0xF6, 0xE4, 0x57, 0xDB, 0x8A, 0xEC, 0x60, 0xDC,
0x71, 0xA6, 0x6F, 0xBD, 0x3D, 0xB7, 0x7D, 0xD5, 0x32, 0x29, 0x98, 0x45, 0x20, 0x17, 0x7E, 0x6A, 0xD1, 0xA6, 0xBF,
0xEC, 0x14, 0x50, 0x5C, 0x77, 0x8D, 0xA5, 0x08, 0x7A, 0x45, 0xC5, 0x15, 0x0F, 0x39, 0xFD, 0x4D, 0x30, 0x8C, 0xBF,
0xB4, 0x89, 0x25, 0x4F, 0xA3, 0x4D, 0x6B, 0xFA, 0xB0, 0x84, 0x6F, 0xCE, 0x77, 0x69, 0x5F, 0x64, 0xAC, 0x6A, 0xCE,
0x20, 0x9E, 0x65, 0x3F, 0x92, 0xCC, 0x98, 0x9E, 0xBC, 0xAB, 0xE0, 0xD1, 0x90, 0x13, 0x9E, 0x9A, 0xF0, 0xC2, 0x89,
0x5A, 0x54, 0x73, 0xE3, 0x5A, 0xB3, 0x59, 0x6B, 0xD6, 0x6A, 0xCD, 0x62, 0xAD, 0xED, 0xB4, 0xDB, 0x22, 0x69, 0xF3,
0x24, 0x61, 0x09, 0x45, 0x1C, 0x82, 0x39, 0x58, 0x2A, 0x20, 0xEB, 0xCC, 0x5A, 0x0F, 0x6F, 0x58, 0xB1, 0x88, 0x62,
0x5C, 0x68, 0xC2, 0xF9, 0x0D, 0x85, 0x5B, 0x0A, 0xEC, 0xE4, 0x12, 0x04, 0xC9, 0x8F, 0xC1, 0xEE, 0x07, 0xE8, 0xEA,
0x77, 0x93, 0xB2, 0xD6, 0x16, 0x09, 0xF8, 0xF9, 0x5E, 0x7A, 0x25, 0x82, 0x33, 0xC5, 0x5C, 0x84, 0xBB, 0xE1, 0x9C,
0xE9, 0xF9, 0xF6, 0x66, 0xD7, 0x0E, 0x8A, 0x2B, 0x01, 0xFB, 0x17, 0xF9, 0xEB, 0x22, 0x04, 0x21, 0x83, 0xFC, 0xCD,
0xA3, 0x64, 0x42, 0x0F, 0xF3, 0x3E, 0x5F, 0xEF, 0xCD, 0x47, 0x1D, 0x4D, 0xC6, 0x4E, 0x70, 0xAE, 0xBB, 0x73, 0x8E,
0x62, 0x8D, 0x58, 0x44, 0xC6, 0x4A, 0x8D, 0x71, 0x6E, 0x03, 0x37, 0xE6, 0xE5, 0x32, 0x4B, 0x6A, 0x28, 0x9E, 0x01,
0xBF, 0xEF, 0xA3, 0x45, 0xA7, 0x23, 0x70, 0x22, 0xF5, 0xC8, 0xC7, 0xF7, 0x63, 0x4C, 0x79, 0x9B, 0x9A, 0x40, 0x40,
0x91, 0x5F, 0x65, 0x74, 0x6A, 0x6D, 0x34, 0x08, 0xD5, 0xA7, 0x71, 0xD0, 0xDD, 0xEF, 0x85, 0x18, 0x01, 0x7B, 0xC9,
0xC5, 0x17, 0xB3, 0xFB, 0x25, 0x70, 0xF4, 0x70, 0x81, 0xCC, 0xEF, 0x84, 0x6E, 0x3F, 0xB0, 0xF8, 0x29, 0x4D, 0xB3,
0x4A, 0x23, 0xEC, 0xC2, 0x76, 0x6E, 0x20, 0x80, 0x9A, 0x69, 0xDC, 0x4C, 0x8E, 0xB9, 0xEB, 0xDF, 0x69, 0x63, 0xAF,
0x43, 0x9A, 0x4C, 0x38, 0x69, 0xA3, 0x69, 0x10, 0x3D, 0x81, 0x4F, 0x02, 0x03, 0xDF, 0x25, 0x72, 0x86, 0x26, 0x41,
0x31, 0xAA, 0x09, 0x09, 0xB7, 0x4C, 0x70, 0x73, 0x1C, 0xF2, 0x5F, 0xAE, 0xE5, 0x05, 0x42, 0xCF, 0x26, 0xED, 0xA4,
0xC0, 0xE0, 0x53, 0x10, 0x30, 0x2A, 0x78, 0x44, 0x2B, 0xA4, 0xFA, 0x4C, 0xF9, 0x4F, 0xF5, 0xDD, 0xCE, 0xA4, 0x6A,
0x23, 0x49, 0x0A, 0x09, 0xDB, 0x4C, 0xAC, 0x6F, 0x3D, 0x99, 0xCA, 0x35, 0xB2, 0xAD, 0xFE, 0x04, 0x17, 0xFA, 0x63,
0x09, 0xCD, 0x74, 0xB8, 0x8F, 0x47, 0x13, 0xCD, 0x8B, 0x2C, 0xF1, 0x28, 0xA5, 0xEB, 0xD8, 0xD6, 0xE9, 0x85, 0x72,
0x06, 0x01, 0x94, 0x20, 0x9E, 0x0A, 0xE4, 0xFF, 0x1F, 0x91, 0x61, 0xA3, 0x0E, 0xF6, 0x27, 0x58, 0xCC, 0xDF, 0xC7,
0x71, 0x71, 0x49, 0xD9, 0x2B, 0x41, 0xF6, 0xCD, 0xD9, 0xFD, 0xB0, 0x7E, 0xF2, 0x0A, 0xBB, 0xDB, 0x22, 0x6A, 0x2E,
0x48, 0xE5, 0xB1, 0xC3, 0x22, 0xA2, 0xCF, 0xFF, 0xA8, 0x4C, 0x49, 0x43, 0x8A, 0x26, 0xD0, 0xB7, 0xD3, 0x91, 0x98,
0x41, 0xF8, 0xA9, 0x62, 0xC8, 0xA7, 0x72, 0xE9, 0x2F, 0x51, 0xD5, 0x19, 0xC2, 0x5D, 0xD9, 0x08, 0xDB, 0x53, 0x5D,
0x27, 0x24, 0xB5, 0x86, 0x86, 0xAA, 0xD8, 0xB0, 0x54, 0x50, 0xE1, 0x9C, 0x2D, 0x4C, 0x4E, 0x8A, 0x6F, 0xA0, 0x51,
0x17, 0x27, 0x82, 0x06, 0x05, 0xF6, 0xD2, 0x22, 0xBF, 0x3D, 0xDF, 0xFD, 0x6D, 0x8F, 0xD2, 0x35, 0xF1, 0x4A, 0xD3,
0x00, 0xFF, 0x37, 0x1E, 0xC6, 0xAE, 0x7D, 0xC2, 0x6F, 0xD4, 0xF9, 0x15, 0x54, 0xEB, 0xF6, 0xCA, 0x7D, 0xF2, 0x2B,
0x75, 0xE3, 0x7B, 0x7D, 0x8C, 0xCD, 0x19, 0x51, 0xB7, 0x9B, 0x57, 0x77, 0xE6, 0x4F, 0xA8, 0xC5, 0x8A, 0x98, 0xA6,
0x7D, 0xB4, 0xB9, 0x3D, 0xD5, 0xB9, 0x45, 0x40, 0xBA, 0xA7, 0xD2, 0x0B, 0x51, 0x16, 0xBA, 0xA3, 0xF6, 0xDA, 0x65,
0x7F, 0x1D, 0x1F, 0xCC, 0xE6, 0xDD, 0xBD, 0x78, 0x3E, 0x97, 0xB5, 0xC2, 0x68, 0xAA, 0xB8, 0xD7, 0x16, 0x0A, 0x19,
0x5F, 0x80, 0x35, 0x6A, 0xA2, 0xC7, 0xDE, 0x12, 0x11, 0x89, 0x62, 0xE8, 0xCC, 0xC7, 0x63, 0xAE, 0xAD, 0x06, 0x2B,
0xE2, 0x0F, 0xBD, 0x3A, 0xEF, 0x5D, 0xAB, 0x93, 0x86, 0xEA, 0xB6, 0xC2, 0x54, 0xE7, 0xC1, 0x01, 0x42, 0xCF, 0x96,
0x7D, 0xEF, 0xCF, 0xE4, 0xB3, 0xA2, 0x5B, 0x3E, 0xED, 0x52, 0x42, 0x31, 0x7D, 0x86, 0x5C, 0xD7, 0x14, 0xB6, 0x14,
0xA1, 0x0E, 0xE3, 0x30, 0x0B, 0x9F, 0xCC, 0x34, 0x26, 0xE0, 0x76, 0x11, 0xD7, 0xC7, 0xAC, 0x4B, 0x3F, 0x4F, 0x5A,
0x9B, 0x57, 0x8C, 0x05, 0x79, 0x3C, 0xE2, 0x68, 0x55, 0xDE, 0xD8, 0xC9, 0x30, 0xCE, 0x6E, 0x8B, 0x96, 0xA5, 0x33,
0x6D, 0xC9, 0xB1, 0xAF, 0xCE, 0xAF, 0xF6, 0xDE, 0xA9, 0x1B, 0xB7, 0xF7, 0x8E, 0x49, 0x2A, 0x54, 0x7B, 0x3E, 0xD1,
0x2F, 0x23, 0x93, 0x87, 0x3F, 0xBC, 0x37, 0xDD, 0x27, 0x53, 0xCA, 0x5E, 0xFB, 0x8E, 0xB2, 0x50, 0x98, 0x4D, 0x15,
0xEE, 0xA7, 0x43, 0x56, 0xB9, 0x6C, 0x22, 0x97, 0x4F, 0x7D, 0xAC, 0x62, 0x5A, 0xB5, 0x5A, 0x6D, 0x1A, 0x43, 0x7D,
0x9C, 0x4B, 0x4D, 0x5A, 0x41, 0xC0, 0xFD, 0x9C, 0x29, 0xEA, 0xB8, 0x1C, 0x22, 0xD0, 0x52, 0xC6, 0xB8, 0xB2, 0x93,
0x31, 0x2A, 0xC6, 0x9E, 0x3E, 0x65, 0xBF, 0x0A, 0x65, 0xCC, 0xD4, 0xA9, 0xFA, 0x41, 0x85, 0x4A, 0x72, 0x94, 0x80,
0xF9, 0x77, 0x28, 0xFB, 0x63, 0x78, 0x12, 0xFA, 0x55, 0x44, 0x3F, 0x40, 0xC3, 0x96, 0x25, 0x16, 0xD8, 0xA8, 0xB3,
0x78, 0x06, 0x5E, 0x02, 0xEB, 0x01, 0xED, 0xBC, 0x85, 0xEF, 0x4C, 0x1E, 0x48, 0x8D, 0x34, 0xCC, 0x75, 0x30, 0x65,
0x73, 0x55, 0x71, 0xF9, 0x25, 0x55, 0x75, 0xF9, 0xAA, 0x72, 0x9B, 0x34, 0x35, 0x9F, 0xD2, 0x6C, 0xA6, 0xCB, 0x1E,
0x46, 0x55, 0x7E, 0xC9, 0x2F, 0xD5, 0xD9, 0xAA, 0x9F, 0xAF, 0x5A, 0x2B, 0x9B, 0xDD, 0xA2, 0xC6, 0x39, 0xF9, 0xDF,
0x72, 0xB7, 0x89, 0x5C, 0xB2, 0x38, 0x4F, 0xB7, 0xAC, 0x58, 0xAB, 0xC8, 0x37, 0xD8, 0x8A, 0x2C, 0x4D, 0xCD, 0xFF,
0x50, 0x47, 0x99, 0xAE, 0x29, 0xF1, 0xCA, 0xC8, 0x0E, 0xEE, 0x84, 0x87, 0x67, 0xD2, 0x15, 0xC7, 0xF1, 0xFE, 0xE8,
0xE0, 0xF8, 0xFF, 0xE4, 0xFF, 0x94, 0x05, 0x9E, 0x2D, 0x67, 0x64, 0xEA, 0xD6, 0x34, 0x7E, 0xE3, 0xC0, 0xB7, 0xFA,
0x45, 0xC7, 0x98, 0x09, 0x73, 0xC2, 0xA0, 0x9E, 0x4A, 0x6F, 0xA3, 0xC9, 0x49, 0x53, 0x3C, 0x1A, 0x50, 0x31, 0x95,
0x49, 0xD8, 0xA3, 0xA8, 0xFA, 0x95, 0x95, 0x93, 0xA5, 0xFA, 0x3F, 0x56, 0x87, 0xF2, 0x6F, 0xAC, 0xAD, 0xF4, 0x96,
0x88, 0x50, 0x8B, 0x2A, 0x6B, 0x3A, 0x34, 0x64, 0xA2, 0x77, 0xC9, 0x50, 0x6C, 0xE0, 0xD0, 0x36, 0x6B, 0x3A, 0xEF,
0xA6, 0x91, 0x3D, 0x8F, 0x8F, 0xF0, 0x62, 0x50, 0x68, 0x88, 0x1F, 0xB3, 0x75, 0x39, 0x13, 0x4D, 0x78, 0xFA, 0xAA,
0x0E, 0x6F, 0xB8, 0x74, 0xE3, 0x3C, 0x1D, 0x14, 0x9F, 0x2A, 0xA9, 0xCE, 0x5F, 0xC5, 0x47, 0xFE, 0x1B, 0x41, 0xA1,
0x22, 0x7E, 0xC2, 0xD6, 0xD5, 0x92, 0xEE, 0x95, 0xF5, 0x9B, 0xDD, 0x88, 0xA4, 0xE9, 0x62, 0x4D, 0x1A, 0xDF, 0x7B,
0x06, 0xA9, 0xED, 0x77, 0x27, 0x43, 0xE3, 0x59, 0xCC, 0x46, 0xFA, 0x66, 0xD9, 0xDD, 0xB8, 0x7F, 0xC4, 0xB5, 0xE8,
0x6D, 0xCE, 0xE1, 0x72, 0x66, 0x91, 0x7F, 0x88, 0x62, 0x04, 0x7A, 0xA9, 0x0B, 0x71, 0xC1, 0xD4, 0x1B, 0x54, 0x38,
0xC0, 0xEB, 0xEB, 0x71, 0x21, 0xED, 0x1D, 0xFF, 0xBD, 0x68, 0xA1, 0xBA, 0x90, 0xA7, 0x5E, 0x5D, 0x58, 0x38, 0x1F,
0x5C, 0x24, 0x7A, 0xFD, 0xEE, 0x08, 0x19, 0x2D, 0x3D, 0x9F, 0xDD, 0x51, 0x7A, 0x85, 0xDD, 0x55, 0xA5, 0x02, 0xD5,
0xA5, 0x55, 0x71, 0xD5, 0x77, 0x23, 0xA6, 0xE1, 0x84, 0xF4, 0x4E, 0x49, 0x9A, 0xA5, 0x52, 0x46, 0x7A, 0x11, 0x4F,
0x33, 0xCF, 0x7F, 0x00, 0xA5, 0x58, 0x51, 0x6C, 0x1C, 0x57, 0x15, 0x3D, 0xF3, 0x5E, 0xEC, 0x71, 0x76, 0x62, 0x4F,
0x3E, 0x1C, 0x28, 0xAD, 0xBD, 0xD3, 0x8F, 0x22, 0x19, 0xE1, 0x78, 0x22, 0xB4, 0x95, 0xB6, 0xED, 0xEE, 0xCE, 0x24,
0x11, 0xCA, 0x47, 0x05, 0xCD, 0x47, 0xFB, 0x81, 0x40, 0x10, 0x09, 0x3E, 0x8A, 0x84, 0xD4, 0x45, 0x32, 0x62, 0x2B,
0xD6, 0xD9, 0x97, 0x44, 0x25, 0x88, 0x88, 0xDA, 0x1F, 0x85, 0x4A, 0xA8, 0x15, 0xFE, 0x44, 0x09, 0x60, 0x4B, 0x58,
0xC2, 0x48, 0x1B, 0xEF, 0x4B, 0xFC, 0x11, 0x21, 0x10, 0x99, 0x36, 0x42, 0x95, 0x0A, 0x12, 0xD3, 0x26, 0x10, 0xC9,
0x55, 0xC5, 0xA4, 0x19, 0xE8, 0xC6, 0xCC, 0xFA, 0x71, 0xDF, 0xDB, 0x5D, 0xDB, 0x0D, 0x49, 0xEA, 0xA4, 0x6F, 0x9E,
0x77, 0x76, 0xE5, 0x79, 0xF7, 0xBE, 0x7B, 0xDF, 0xBD, 0xE7, 0x9E, 0x3B, 0x00, 0xD0, 0xCA, 0xB0, 0x0F, 0xFD, 0xE1,
0x08, 0xF0, 0x04, 0x56, 0x07, 0xB8, 0x29, 0x50, 0x4C, 0xB0, 0x7F, 0x1C, 0x2E, 0x97, 0xB6, 0x48, 0x59, 0x94, 0x47,
0x6A, 0xCB, 0x86, 0x4A, 0x03, 0xA5, 0x3C, 0xD8, 0x7F, 0x94, 0x68, 0x03, 0x4C, 0x25, 0xFB, 0x42, 0x5A, 0xC6, 0x3F,
0xC4, 0x7A, 0x5A, 0x72, 0x0E, 0x87, 0xD3, 0x55, 0x7E, 0x1A, 0xC5, 0xAA, 0xB3, 0xFA, 0x5E, 0xE6, 0x2B, 0xB9, 0xF2,
0x1D, 0x2D, 0x73, 0x6E, 0x02, 0xDE, 0xAF, 0x8C, 0xCC, 0xAD, 0xB1, 0x0C, 0x04, 0x80, 0x17, 0xC1, 0x2D, 0x82, 0xCF,
0x82, 0xBD, 0x11, 0x21, 0x29, 0xA1, 0xE6, 0x86, 0xFB, 0xAD, 0xD8, 0x0D, 0xEB, 0xB6, 0x52, 0x87, 0x95, 0xBA, 0x91,
0xA0, 0xDE, 0x84, 0x2B, 0x48, 0x8F, 0x38, 0xE6, 0xFE, 0x1A, 0x8D, 0xD0, 0xAC, 0xBD, 0xBB, 0xB2, 0x29, 0xC0, 0x95,
0xB0, 0x53, 0xF0, 0x3F, 0x03, 0x57, 0x25, 0x96, 0xA6, 0x51, 0x72, 0x91, 0xE7, 0x91, 0x13, 0xD6, 0x78, 0xE4, 0x59,
0x4A, 0x45, 0x4A, 0x65, 0x75, 0x78, 0x3E, 0x78, 0x0C, 0x48, 0x33, 0x0F, 0x00, 0xB6, 0xEC, 0xEE, 0x2A, 0xA8, 0xBA,
0x0B, 0x87, 0xE5, 0x52, 0xC1, 0x3E, 0x42, 0x62, 0x49, 0x76, 0xB3, 0xD2, 0xBA, 0xA8, 0x32, 0xE7, 0x9F, 0x12, 0xC7,
0xB0, 0x1B, 0xA8, 0xF7, 0x36, 0xCF, 0xC9, 0x4F, 0xC0, 0x30, 0x3E, 0x32, 0x9C, 0x0E, 0x1A, 0x1D, 0x96, 0x6A, 0x59,
0x6E, 0x08, 0x0F, 0x7A, 0x33, 0xFB, 0xCD, 0x27, 0x19, 0xEA, 0x4B, 0x78, 0x1B, 0xE7, 0x5D, 0xD5, 0xE1, 0xAA, 0x83,
0xD6, 0x2D, 0xFD, 0xFC, 0x01, 0xCC, 0x23, 0x82, 0xB1, 0xC8, 0x6E, 0xFB, 0xCF, 0x96, 0x30, 0x6D, 0xAE, 0x1A, 0x2A,
0xF0, 0xB3, 0x41, 0xED, 0xAC, 0x61, 0xB3, 0xF4, 0x0D, 0xF9, 0xE0, 0x3A, 0x42, 0x16, 0xE5, 0xA6, 0x47, 0x87, 0xEE,
0xAA, 0x81, 0x6C, 0x22, 0x21, 0xFE, 0x27, 0x32, 0x84, 0x45, 0x2C, 0x66, 0xF3, 0xF7, 0x30, 0x83, 0x46, 0x14, 0xE1,
0xA9, 0xF0, 0x13, 0x3A, 0x6C, 0x74, 0x57, 0xAE, 0xC0, 0x62, 0x88, 0x7B, 0x6A, 0xB2, 0x4E, 0x48, 0xE4, 0x25, 0xD8,
0x36, 0x9F, 0x71, 0xD5, 0x86, 0x52, 0xB2, 0x64, 0x65, 0x2E, 0xDC, 0x53, 0x12, 0x49, 0x82, 0x4A, 0x09, 0xCE, 0x65,
0xB0, 0x9B, 0x12, 0xCD, 0x04, 0x8D, 0xCA, 0x59, 0x35, 0xAB, 0xD4, 0x2A, 0x3D, 0xA3, 0x36, 0xCC, 0x66, 0x81, 0xC2,
0x51, 0x0C, 0x4F, 0x80, 0x7F, 0x19, 0xB8, 0x22, 0xCE, 0x17, 0xA0, 0xDE, 0xC7, 0xA2, 0x8F, 0x02, 0x97, 0x63, 0x48,
0x6C, 0x94, 0xAC, 0xD8, 0x43, 0xD0, 0x92, 0xB6, 0x4A, 0xF0, 0xC2, 0xEB, 0xDB, 0xD5, 0x70, 0xA5, 0xC0, 0xA5, 0x27,
0xB9, 0xE4, 0x31, 0x97, 0x56, 0xC2, 0x25, 0xD2, 0xCF, 0xAF, 0x61, 0x39, 0x50, 0x68, 0xD2, 0x77, 0xFA, 0xB3, 0x32,
0xBE, 0xB6, 0xD0, 0xA6, 0xE7, 0x12, 0xFA, 0x93, 0x7A, 0x4D, 0x57, 0x1F, 0xD8, 0xC2, 0x3C, 0x54, 0xA6, 0x7F, 0xEC,
0x48, 0x9F, 0xA5, 0xD2, 0x7D, 0xDD, 0x64, 0xB0, 0x55, 0xD6, 0xD8, 0x38, 0x12, 0x62, 0x09, 0x8E, 0xF9, 0x50, 0xB2,
0x95, 0x39, 0xBD, 0x9F, 0x8A, 0x0C, 0xCB, 0x48, 0x0F, 0x06, 0xE8, 0xF9, 0xFE, 0x46, 0x7D, 0xE1, 0x1E, 0x61, 0x62,
0xE2, 0x89, 0x85, 0x4B, 0x1B, 0xBF, 0xAC, 0x82, 0x0B, 0x04, 0x07, 0x85, 0xCA, 0xD8, 0x06, 0x89, 0xB3, 0xE4, 0x01,
0x77, 0x81, 0x1E, 0xE8, 0x3D, 0xB9, 0x13, 0xD1, 0xC3, 0x1C, 0x51, 0xD5, 0xCE, 0x74, 0x24, 0x7D, 0xAC, 0xFC, 0x79,
0xB8, 0xB0, 0x92, 0xFE, 0x73, 0x0D, 0x75, 0x49, 0x5D, 0x9B, 0x46, 0x5F, 0x20, 0x89, 0x56, 0xB2, 0xA7, 0xC9, 0x55,
0x6D, 0xA5, 0x2E, 0x93, 0x3B, 0x12, 0xBD, 0x62, 0xBE, 0xBF, 0x82, 0xB5, 0x91, 0x56, 0x27, 0xD8, 0xA9, 0x9F, 0x67,
0x8D, 0xB5, 0xD3, 0x00, 0x01, 0x47, 0xFA, 0x90, 0xAB, 0xA4, 0x7F, 0x6D, 0x67, 0x5B, 0x7D, 0x48, 0xE7, 0xAD, 0x77,
0x17, 0x41, 0xA3, 0x9E, 0x11, 0x74, 0x0C, 0x43, 0x84, 0x35, 0x7A, 0x95, 0x19, 0x73, 0xF3, 0x6C, 0x19, 0x23, 0xB8,
0x0F, 0x7F, 0xEC, 0x1E, 0xC4, 0x93, 0x02, 0xC9, 0xB6, 0x30, 0xBF, 0x87, 0xBF, 0xA1, 0x75, 0x63, 0x24, 0x06, 0x63,
0x5D, 0x9F, 0x7F, 0x25, 0x64, 0x14, 0x42, 0x2B, 0xE1, 0x5E, 0xC2, 0x3C, 0x96, 0x98, 0x5C, 0xD0, 0x38, 0x55, 0xD1,
0x37, 0x67, 0x63, 0x0A, 0x9F, 0xFE, 0x20, 0x41, 0xD1, 0x8B, 0x6C, 0x49, 0x28, 0xA6, 0x03, 0xC8, 0x51, 0x73, 0x98,
0x23, 0x58, 0xFA, 0xAE, 0xDC, 0xBB, 0x8B, 0x8E, 0xAF, 0x7D, 0x43, 0x65, 0x71, 0xA3, 0xEA, 0xBE, 0xC6, 0xAE, 0xE3,
0xF7, 0xB2, 0x52, 0x69, 0x9D, 0x56, 0xF1, 0xF1, 0x69, 0x94, 0x47, 0x7D, 0x57, 0x9D, 0x54, 0x46, 0xC5, 0x2E, 0xD8,
0x84, 0x79, 0x15, 0x82, 0xDF, 0x95, 0xCD, 0x1D, 0x0E, 0xBC, 0x02, 0x5F, 0x25, 0xCE, 0x35, 0x4B, 0x23, 0x3A, 0x81,
0x01, 0xEB, 0xAB, 0xD4, 0xB7, 0xD6, 0xBB, 0xB1, 0xD5, 0x20, 0xB8, 0x3C, 0xD1, 0x41, 0xDD, 0x25, 0x95, 0x01, 0x1D,
0x0B, 0xE5, 0xE3, 0x38, 0xE7, 0x07, 0x65, 0x4B, 0x0E, 0x76, 0xAD, 0x38, 0x5E, 0x6A, 0xA8, 0xA2, 0xF7, 0x37, 0xAE,
0xD5, 0x4E, 0x55, 0xDD, 0xD9, 0x85, 0x77, 0x54, 0xDB, 0x7B, 0x1D, 0xEE, 0x17, 0x9D, 0x55, 0x15, 0xB7, 0x62, 0xE3,
0x73, 0x52, 0x5F, 0xDA, 0x42, 0xDA, 0x07, 0x34, 0x96, 0x0A, 0x02, 0x1E, 0xEE, 0x66, 0xC0, 0xC7, 0x1B, 0xFB, 0x20,
0x76, 0xF5, 0xC7, 0x28, 0x6D, 0x35, 0x32, 0x88, 0x4F, 0x15, 0x11, 0x94, 0x3C, 0x19, 0xAD, 0x71, 0x43, 0x5B, 0x1A,
0xA8, 0xDB, 0x81, 0xBD, 0x30, 0xE6, 0xFE, 0x06, 0xEC, 0x90, 0xDE, 0xCA, 0x5E, 0x8C, 0xD6, 0x50, 0x5A, 0xEE, 0xCD,
0x72, 0x77, 0x36, 0x51, 0x6E, 0xA9, 0x8E, 0x99, 0x1B, 0x19, 0x8E, 0x93, 0x06, 0xF3, 0x79, 0x9C, 0x8A, 0x02, 0x01,
0x58, 0xAE, 0x8A, 0xC7, 0x86, 0x28, 0x25, 0xF5, 0xF7, 0xCD, 0xC9, 0x7F, 0x2C, 0x38, 0x61, 0x47, 0x5C, 0xE3, 0xB2,
0xC8, 0xE5, 0x24, 0x17, 0x7A, 0xDA, 0xB2, 0xD4, 0x9D, 0xBB, 0x31, 0x68, 0xC5, 0x48, 0xA6, 0xE0, 0xB2, 0xEE, 0xED,
0x69, 0x72, 0x5D, 0xE3, 0xEC, 0xC2, 0xC9, 0x04, 0xA9, 0xAF, 0xD4, 0x21, 0xA5, 0xF4, 0xED, 0x54, 0x62, 0xB5, 0x03,
0x82, 0x42, 0x73, 0xF3, 0x44, 0x57, 0x43, 0xD0, 0x31, 0xE2, 0x3F, 0x4E, 0xC3, 0x24, 0xFE, 0xF4, 0x33, 0x6F, 0x97,
0xB1, 0xEE, 0x59, 0x96, 0xD8, 0xD2, 0x43, 0xDD, 0xDA, 0x7E, 0x6B, 0xB2, 0xC4, 0x89, 0xC6, 0x77, 0xFD, 0xE1, 0x9B,
0xAE, 0x7E, 0x68, 0x80, 0x80, 0x2D, 0xE2, 0xE1, 0x30, 0xDD, 0x62, 0x2E, 0x46, 0x4C, 0xFD, 0x74, 0xD4, 0x85, 0xA3,
0x7D, 0x17, 0xFB, 0x14, 0x0E, 0x96, 0x3E, 0x52, 0xEF, 0xB6, 0x2F, 0x4D, 0xFA, 0x97, 0x43, 0xEE, 0x6F, 0x74, 0x9E,
0xD5, 0x47, 0x0D, 0x1E, 0x6E, 0x5E, 0x42, 0x5F, 0x14, 0x45, 0xE5, 0xCD, 0x51, 0xA9, 0x54, 0x82, 0x47, 0x8F, 0x95,
0x91, 0xB3, 0x2F, 0x24, 0xFA, 0xE1, 0xA8, 0x30, 0xCC, 0xC3, 0xA8, 0x38, 0xC2, 0x4F, 0x24, 0x73, 0x07, 0xE8, 0xF4,
0xBE, 0xB5, 0x9C, 0xE9, 0x13, 0x68, 0xD6, 0x37, 0x47, 0xB3, 0x79, 0x1E, 0x57, 0xBE, 0x54, 0xB8, 0xF2, 0xF2, 0x13,
0xB4, 0x80, 0x25, 0xFC, 0x92, 0x74, 0xC9, 0x82, 0xBA, 0x75, 0x23, 0xB1, 0x2F, 0x49, 0x6F, 0xEB, 0xEB, 0x94, 0x87,
0xE5, 0x26, 0x7B, 0x37, 0x71, 0xCE, 0x44, 0x65, 0x58, 0x29, 0x08, 0xB1, 0x37, 0xE0, 0x46, 0x98, 0xD0, 0x38, 0x42,
0xAB, 0x74, 0x9E, 0x3F, 0x6F, 0x92, 0x8A, 0x76, 0x88, 0xC5, 0x08, 0x93, 0x05, 0xB8, 0xC3, 0xE0, 0xA7, 0x42, 0xC4,
0x31, 0x8A, 0x45, 0x8C, 0x8C, 0x80, 0x1F, 0x91, 0x5D, 0x84, 0xD7, 0xB5, 0xAD, 0x45, 0xB3, 0xC7, 0x61, 0xE4, 0xF0,
0xFC, 0xA3, 0x13, 0x14, 0x58, 0xFA, 0x4A, 0xB6, 0x2E, 0xAB, 0x77, 0xB1, 0xD8, 0x8E, 0x5B, 0x52, 0x89, 0xDF, 0x03,
0x55, 0x8A, 0xBC, 0x03, 0xF3, 0x94, 0xE0, 0x7B, 0x31, 0x46, 0xD9, 0x4B, 0xE7, 0x55, 0xC5, 0x24, 0x11, 0x10, 0x3A,
0xAF, 0x45, 0xDA, 0xCA, 0x08, 0x45, 0x68, 0x20, 0x73, 0x21, 0xF6, 0x3B, 0x72, 0xA9, 0xCC, 0x2F, 0xC6, 0x64, 0x4B,
0xA9, 0x8D, 0x0F, 0x25, 0xEF, 0xC0, 0xA5, 0xF2, 0x26, 0x2D, 0x25, 0xED, 0x7F, 0x09, 0x3F, 0x10, 0xCB, 0xC1, 0xC9,
0xB8, 0x35, 0x2B, 0x54, 0x68, 0x72, 0xC0, 0x0B, 0xC9, 0xDF, 0x94, 0x77, 0x39, 0xC3, 0xDF, 0x24, 0x45, 0x2B, 0x7D,
0x10, 0x14, 0xFE, 0x30, 0x2C, 0x26, 0xBC, 0x89, 0x20, 0xE4, 0x29, 0x7E, 0x10, 0xD9, 0xBF, 0x08, 0x6B, 0xE7, 0xED,
0x93, 0xED, 0x6E, 0xCE, 0x85, 0x74, 0x32, 0x8E, 0x26, 0x7E, 0x54, 0xB0, 0xF7, 0x14, 0xC6, 0x16, 0xC7, 0xA5, 0x2F,
0x7C, 0xF8, 0xE1, 0x53, 0x51, 0x31, 0x2D, 0xCE, 0xEC, 0x41, 0x4E, 0xFB, 0x21, 0x34, 0x27, 0xAF, 0xEB, 0x1F, 0xD5,
0xE6, 0x3C, 0x6C, 0x41, 0x31, 0x59, 0xA3, 0xEC, 0x76, 0x04, 0x45, 0xE5, 0x12, 0xFC, 0xB3, 0x4A, 0x0F, 0xCB, 0x92,
0x51, 0x55, 0x8B, 0x8C, 0x8B, 0xC3, 0xF6, 0xC1, 0xA8, 0x3A, 0xE6, 0x30, 0xB9, 0x38, 0xE9, 0x7C, 0x40, 0x75, 0xDC,
0xD5, 0x8B, 0xE3, 0xAD, 0xC5, 0xCB, 0xDD, 0xC5, 0x11, 0x56, 0xCE, 0xE9, 0x95, 0x59, 0x2F, 0x7A, 0x28, 0x86, 0x05,
0x8F, 0x48, 0xCB, 0xE8, 0x08, 0x17, 0xD1, 0xF4, 0xB8, 0x6D, 0x69, 0x01, 0x4C, 0xB6, 0x7C, 0xF2, 0x77, 0xE0, 0x9E,
0x7A, 0x23, 0xD1, 0x67, 0xE3, 0xEA, 0x88, 0x22, 0x61, 0x4E, 0x9E, 0x9D, 0x16, 0xEF, 0xC4, 0x8F, 0xDD, 0x2E, 0x6C,
0xA2, 0x10, 0xAF, 0x9E, 0x1E, 0x1E, 0x9A, 0xB6, 0x22, 0x9B, 0xDC, 0xBB, 0xC8, 0xA4, 0x43, 0xCE, 0x6D, 0xB1, 0x0E,
0xF9, 0xC3, 0x35, 0xEA, 0x4B, 0x35, 0x37, 0xCF, 0x5E, 0xD5, 0x7B, 0x37, 0x4B, 0x43, 0xB6, 0xBE, 0xA0, 0x17, 0x26,
0xA3, 0x3A, 0xA6, 0x87, 0x31, 0xFD, 0xE2, 0x9B, 0xD7, 0x73, 0xAF, 0x6D, 0x5F, 0xD8, 0xE5, 0x55, 0x24, 0xCC, 0x9C,
0x3A, 0x9D, 0x11, 0x6E, 0x44, 0x86, 0x4E, 0x5B, 0xEF, 0xC1, 0xB0, 0x60, 0x8B, 0x2C, 0xA0, 0x68, 0x02, 0x6D, 0xCB,
0x60, 0x92, 0x4D, 0x7F, 0x2E, 0xFD, 0xE9, 0x7D, 0x57, 0xD6, 0x17, 0xF0, 0x5B, 0xF2, 0xCE, 0x55, 0xA5, 0xE8, 0x38,
0x4C, 0x21, 0x72, 0xBB, 0x50, 0x42, 0xC7, 0x6F, 0x1C, 0xAB, 0x4B, 0x46, 0xAC, 0xFD, 0x3C, 0x0E, 0x62, 0x3F, 0xD6,
0xDB, 0x3A, 0x51, 0x9A, 0x98, 0x5A, 0xB4, 0x4F, 0x4A, 0xCD, 0x4A, 0x89, 0x38, 0x51, 0x88, 0x51, 0xA5, 0xCB, 0x19,
0x02, 0xD9, 0xCD, 0x55, 0xEC, 0x9A, 0x42, 0x3E, 0xA0, 0x29, 0xA6, 0x02, 0x39, 0x15, 0xC4, 0x53, 0xE5, 0xA4, 0x5C,
0x4A, 0xCB, 0xF5, 0x7A, 0xB9, 0x5E, 0x2E, 0xD7, 0xBD, 0x72, 0xD3, 0x6D, 0x36, 0xED, 0xAC, 0xC9, 0xB3, 0x8C, 0xF6,
0xB6, 0x47, 0x63, 0x75, 0x81, 0x12, 0xA9, 0x3B, 0xF6, 0x72, 0x15, 0x55, 0x1C, 0x2E, 0x0B, 0x25, 0x7E, 0x4A, 0x16,
0x4B, 0x14, 0xF6, 0xA5, 0x3A, 0x7D, 0xE8, 0x5C, 0xFE, 0xCC, 0x76, 0xA1, 0xD1, 0x3D, 0x85, 0xD2, 0x68, 0x6A, 0x10,
0xD5, 0x50, 0x9A, 0x98, 0x9A, 0x7E, 0x0F, 0xB9, 0x86, 0x9D, 0x97, 0x75, 0x3C, 0x3E, 0x4F, 0xDB, 0x08, 0xF1, 0xA6,
0xD0, 0xB8, 0x3D, 0xD4, 0xDB, 0xD0, 0xCE, 0xB5, 0x0E, 0x30, 0x7C, 0x2E, 0xA2, 0x90, 0xDB, 0x81, 0x29, 0x76, 0x68,
0x13, 0xAA, 0x58, 0x9B, 0xF8, 0x7F, 0x74, 0x44, 0x1D, 0x8E, 0x92, 0x64, 0xBC, 0x66, 0x7F, 0xDD, 0xBA, 0x2E, 0x5E,
0x8C, 0xF3, 0xCB, 0xF6, 0x82, 0xE1, 0x2E, 0x3B, 0xD5, 0xCE, 0x32, 0xF0, 0x36, 0x82, 0x58, 0x57, 0x92, 0xBB, 0xEA,
0xB5, 0x25, 0xCF, 0xFA, 0x5D, 0xCD, 0x56, 0x1F, 0x66, 0xB5, 0xE6, 0xD8, 0xFA, 0x0A, 0x4B, 0xED, 0x24, 0xC5, 0x4C,
0x1D, 0xD4, 0xF8, 0x58, 0x94, 0xB3, 0x01, 0xD1, 0x64, 0x6A, 0x6C, 0xDE, 0xA7, 0x30, 0x8A, 0xD0, 0x56, 0xE7, 0xA8,
0xE5, 0x51, 0xBA, 0x80, 0x3E, 0x62, 0x48, 0xEB, 0xC3, 0xEA, 0xE0, 0x4F, 0x8F, 0xF6, 0x37, 0xFF, 0x82, 0xF0, 0x16,
0xB8, 0x28, 0x16, 0xD8, 0x25, 0x8C, 0x4D, 0x5B, 0xAB, 0x62, 0xB2, 0xB2, 0x70, 0x42, 0x25, 0x83, 0x6D, 0x13, 0x44,
0xC7, 0xC6, 0x8C, 0xC4, 0xCD, 0x6E, 0xEC, 0x91, 0x5B, 0xF0, 0xCF, 0xC5, 0x7E, 0xD8, 0xA0, 0xEA, 0xF6, 0x96, 0xC4,
0x7A, 0x04, 0x8F, 0xD4, 0xD0, 0x49, 0x91, 0xCE, 0x4A, 0x84, 0xFC, 0x79, 0xB8, 0xB3, 0xEB, 0xD4, 0x06, 0xA9, 0x84,
0x8A, 0xA9, 0xD5, 0x2F, 0x6E, 0xB7, 0x51, 0x45, 0x1A, 0x83, 0x6D, 0x6B, 0x3D, 0x29, 0x12, 0xF6, 0x4D, 0x56, 0xAD,
0x4B, 0xE1, 0x58, 0x91, 0xAD, 0xAE, 0xB5, 0x3D, 0x45, 0x7B, 0xC1, 0x51, 0x2B, 0xDC, 0x8F, 0x45, 0x27, 0x2C, 0x6D,
0x53, 0xE9, 0xAC, 0xB5, 0xB5, 0x81, 0x65, 0x78, 0x84, 0x8F, 0xED, 0x25, 0xD8, 0x97, 0x43, 0x94, 0x12, 0x70, 0x7D,
0xA3, 0x5F, 0x67, 0xC8, 0xC4, 0x60, 0x4D, 0xDB, 0x97, 0x38, 0x94, 0xF0, 0x5D, 0x1B, 0xCD, 0x48, 0x08, 0xD6, 0x6D,
0x11, 0x5A, 0xD8, 0xAE, 0x19, 0xF6, 0x7B, 0x92, 0x0C, 0x46, 0xE4, 0xA0, 0x6A, 0xC9, 0x71, 0x54, 0xA9, 0x66, 0x61,
0x7D, 0x05, 0xA4, 0xDF, 0x5A, 0xD1, 0x0E, 0x7D, 0x9B, 0x76, 0x4F, 0xF9, 0x7E, 0x31, 0xA5, 0xE6, 0x96, 0xEC, 0xD4,
0x19, 0xE3, 0x6A, 0x10, 0x08, 0x34, 0x92, 0xA9, 0xB4, 0x44, 0xDC, 0x2E, 0x4A, 0xE1, 0x49, 0x4A, 0xC7, 0xE3, 0x94,
0x50, 0x16, 0x21, 0xDC, 0x7A, 0x2B, 0x22, 0xFA, 0x60, 0xCC, 0xA6, 0xB6, 0xF1, 0x11, 0xFA, 0x30, 0xE7, 0x64, 0xAD,
0x70, 0x32, 0xF4, 0xC3, 0x13, 0x32, 0x76, 0xC5, 0x44, 0x81, 0xAD, 0xB5, 0xC6, 0xD0, 0x38, 0x7B, 0x24, 0x9C, 0xA4,
0xA4, 0xA4, 0x5A, 0x53, 0x39, 0xD7, 0x19, 0xB0, 0xD5, 0xDF, 0x95, 0x78, 0x41, 0xB4, 0xE6, 0xF4, 0xE3, 0x26, 0x27,
0x0B, 0xFD, 0x16, 0x41, 0x8C, 0x9C, 0x93, 0x07, 0xEC, 0x50, 0x8E, 0xD8, 0xA8, 0xE5, 0xBF, 0x1A, 0x35, 0x3A, 0x96,
0x6A, 0x3B, 0x32, 0xF5, 0xAD, 0xA4, 0xC9, 0x2F, 0x26, 0xEE, 0x33, 0xF2, 0x78, 0x60, 0x65, 0x2C, 0xDC, 0x83, 0x45,
0x6D, 0xDF, 0xEF, 0x2E, 0xAA, 0xA7, 0x45, 0x99, 0x2C, 0x96, 0x2E, 0xCA, 0x04, 0x18, 0x41, 0x1B, 0x6B, 0x4D, 0x8E,
0xE9, 0x3D, 0x88, 0xAB, 0xF6, 0x89, 0x7F, 0x9C, 0xA7, 0x3D, 0x7B, 0x4A, 0x34, 0xDD, 0x43, 0x89, 0xE7, 0xC8, 0x92,
0x8F, 0x34, 0xB3, 0xAF, 0x26, 0xDE, 0x26, 0xC1, 0x22, 0xA0, 0xA6, 0x46, 0x8A, 0xBA, 0x92, 0x48, 0x53, 0x26, 0xA7,
0xEE, 0x74, 0x1C, 0xE1, 0x86, 0xD4, 0x04, 0xE9, 0x2B, 0xF4, 0xC2, 0xFE, 0x73, 0x39, 0xFA, 0xEE, 0x11, 0xB4, 0x95,
0xF5, 0x8F, 0x42, 0x41, 0x77, 0x6A, 0xF7, 0xB7, 0xE1, 0x47, 0x87, 0xC6, 0xAB, 0x94, 0x3B, 0xE1, 0x1D, 0x95, 0xE4,
0x4C, 0x6D, 0xD4, 0x0D, 0xD9, 0xA6, 0x42, 0x3A, 0x4D, 0x6A, 0xD7, 0xDD, 0x39, 0x4D, 0x06, 0x35, 0x06, 0xCE, 0x10,
0xC6, 0x11, 0x1D, 0x6E, 0x75, 0xA0, 0xC3, 0x8B, 0x12, 0x07, 0x8D, 0x43, 0x47, 0x1B, 0x6F, 0x52, 0xFF, 0x6F, 0xBC,
0x6F, 0xFC, 0x48, 0xED, 0xF2, 0x18, 0x95, 0xBA, 0xDE, 0xB1, 0x37, 0xA2, 0xEF, 0x1D, 0x9D, 0xD0, 0xE0, 0xB8, 0x01,
0x87, 0x8E, 0x8A, 0xBF, 0x7A, 0x45, 0x25, 0xAD, 0x54, 0xD7, 0x65, 0x3F, 0xC4, 0xC4, 0x63, 0x9B, 0x79, 0xD0, 0x46,
0x4B, 0xA1, 0x62, 0x9A, 0x4B, 0x5B, 0x18, 0xCC, 0x0D, 0x6E, 0x81, 0x51, 0x2F, 0x34, 0x48, 0x04, 0xD1, 0xD1, 0xEF,
0x39, 0x76, 0x1F, 0x54, 0x44, 0x92, 0x2E, 0x11, 0x01, 0x6C, 0xF5, 0x18, 0x79, 0x48, 0x85, 0xE7, 0xFB, 0xE2, 0xD8,
0x63, 0xBA, 0xC9, 0x3A, 0xF8, 0x97, 0x70, 0x9E, 0xEA, 0x36, 0x25, 0xB2, 0x1F, 0xA3, 0x34, 0xF2, 0x8D, 0x67, 0xD4,
0x45, 0x15, 0xD1, 0x26, 0x19, 0xC5, 0xE4, 0x2D, 0xC3, 0x0E, 0xF3, 0x5D, 0x9E, 0xA8, 0xAE, 0x11, 0xB1, 0x89, 0x4C,
0x9C, 0xFA, 0xFA, 0x05, 0xC4, 0x67, 0xED, 0x0E, 0x85, 0x8D, 0xA7, 0x33, 0xF4, 0x96, 0x41, 0xEE, 0x4F, 0x69, 0x4C,
0xD1, 0x68, 0x6F, 0x77, 0xEC, 0xE7, 0x08, 0x5F, 0x97, 0x34, 0xE2, 0xB7, 0xA8, 0x53, 0x78, 0x62, 0x26, 0x50, 0x8E,
0x0A, 0x87, 0xB4, 0x97, 0x86, 0xBA, 0x67, 0x80, 0xF9, 0x79, 0x38, 0xB1, 0xA9, 0x1C, 0x5B, 0x31, 0xAE, 0x84, 0x43,
0xB4, 0xEC, 0x9A, 0x69, 0xA0, 0x6A, 0xD0, 0xD5, 0x9B, 0x93, 0x67, 0x7C, 0x0A, 0x4A, 0xB2, 0x52, 0x13, 0x0B, 0x2F,
0x7A, 0xC5, 0x4B, 0x5B, 0xC4, 0xF7, 0x14, 0x75, 0x52, 0xD7, 0x0C, 0xE8, 0x5B, 0xEC, 0x0C, 0x61, 0x29, 0xBB, 0x97,
0xCF, 0x4C, 0x2D, 0xDE, 0xD0, 0xF5, 0xE5, 0xB6, 0x59, 0xFF, 0xE8, 0x9C, 0xE9, 0xBE, 0xEF, 0x30, 0xAD, 0x3A, 0xD5,
0x07, 0xA2, 0x60, 0x22, 0xC8, 0x08, 0x34, 0xE9, 0x72, 0xF4, 0x25, 0x9C, 0xCC, 0xC9, 0xA8, 0x17, 0x19, 0xD2, 0x5C,
0x3B, 0x64, 0x27, 0x43, 0x9C, 0x87, 0x3E, 0x0F, 0x33, 0xEE, 0x43, 0x89, 0x0D, 0x87, 0x9D, 0xE1, 0x2F, 0xDD, 0x49,
0xFA, 0xFF, 0x4B, 0xC9, 0x6D, 0xCC, 0xB9, 0x2A, 0xBE, 0x83, 0x14, 0x18, 0x5E, 0x64, 0x0B, 0x57, 0x61, 0x9A, 0xB5,
0xE6, 0xA9, 0xDD, 0xD2, 0x65, 0x80, 0xAA, 0x77, 0xC6, 0x08, 0x11, 0x22, 0xC1, 0x1F, 0x17, 0xDC, 0xED, 0x17, 0x05,
0x8C, 0x66, 0x98, 0xA1, 0xD9, 0xC4, 0xCC, 0x32, 0xEA, 0x66, 0x6E, 0x32, 0xF5, 0x52, 0x1D, 0xF5, 0xE3, 0x56, 0x16,
0xA8, 0x76, 0xA0, 0x52, 0x7D, 0xC2, 0x14, 0xAA, 0xBB, 0x07, 0xBF, 0x60, 0x1D, 0x31, 0xC0, 0x37, 0x86, 0xB7, 0xF0,
0x78, 0x94, 0x9F, 0xB6, 0x7F, 0x62, 0x5D, 0x15, 0xB5, 0x64, 0x2A, 0x50, 0x67, 0x54, 0xBC, 0x52, 0x32, 0xAD, 0x62,
0x34, 0xD0, 0x8F, 0xF7, 0xAE, 0xF4, 0x6C, 0x67, 0xD2, 0xB1, 0x8F, 0x3A, 0x5A, 0x7D, 0xAF, 0xF2, 0xAF, 0xE1, 0xAD,
0xF0, 0xC5, 0x28, 0x5F, 0xB0, 0x5F, 0xB6, 0xAE, 0xCA, 0x65, 0xB5, 0xE1, 0xAB, 0x93, 0xED, 0x04, 0x61, 0x48, 0x3C,
0x87, 0xD1, 0xB1, 0x7F, 0x7B, 0xB3, 0x53, 0xB9, 0xBF, 0xFD, 0x17, 0x07, 0x73, 0x3C, 0x54, 0x62, 0xB0, 0xDB, 0xD2,
0xE2, 0x71, 0x39, 0x3C, 0x6D, 0xBF, 0x6E, 0x5D, 0x0D, 0x6B, 0x71, 0xBE, 0xE4, 0xCC, 0xAA, 0x77, 0x55, 0xDB, 0x9F,
0xD5, 0xAC, 0xF6, 0x25, 0x33, 0xEB, 0x5B, 0x21, 0x78, 0x5F, 0x76, 0xB0, 0x39, 0xFC, 0x48, 0x77, 0x74, 0xF7, 0xD2,
0x62, 0x89, 0x41, 0x16, 0x39, 0x87, 0xE6, 0x72, 0x5B, 0x3A, 0x5C, 0x69, 0x5F, 0x49, 0xAC, 0x94, 0x94, 0x4C, 0xC1,
0x73, 0x84, 0x7D, 0x91, 0xFA, 0x18, 0x92, 0x4F, 0xAD, 0x8C, 0x23, 0xF8, 0x05, 0xE2, 0xC5, 0xA4, 0xC6, 0x55, 0x1B,
0xD4, 0x0E, 0x86, 0x7E, 0x17, 0x8F, 0xB9, 0x18, 0xCF, 0x63, 0x79, 0xD4, 0xEA, 0x15, 0xBF, 0x31, 0x44, 0x34, 0xC7,
0xAD, 0x98, 0xE6, 0xB0, 0x15, 0x8F, 0x58, 0x31, 0xF5, 0x42, 0x14, 0x24, 0x8E, 0x8A, 0x59, 0x3B, 0xD9, 0xB1, 0x15,
0x89, 0xB6, 0x62, 0xD0, 0xC4, 0xBC, 0xE9, 0x58, 0xEF, 0x78, 0x1A, 0xB7, 0x12, 0x0A, 0xF8, 0x63, 0x14, 0x6A, 0xCC,
0x9C, 0x9C, 0x40, 0xF7, 0x55, 0x5A, 0x6E, 0x52, 0xA3, 0xC8, 0xDE, 0x2E, 0x06, 0xD3, 0x1E, 0xF7, 0x53, 0xB3, 0xAD,
0x9B, 0x05, 0xD4, 0x29, 0x32, 0x9C, 0x53, 0x91, 0x87, 0x74, 0x8A, 0xA7, 0xAE, 0x95, 0x34, 0x2E, 0x24, 0xAE, 0xDB,
0x99, 0xC2, 0xBF, 0xFF, 0x73, 0x33, 0x72, 0x5B, 0x5E, 0x1D, 0xAD, 0x98, 0xA8, 0x7A, 0x46, 0xD9, 0x19, 0x08, 0x4D,
0xBF, 0xA9, 0x56, 0x69, 0xD2, 0x43, 0x65, 0x25, 0x37, 0x81, 0x01, 0xAB, 0x17, 0x4F, 0x04, 0x64, 0xB5, 0x04, 0xFB,
0x4B, 0x43, 0xAE, 0xF3, 0xF4, 0xEA, 0x85, 0xEB, 0xB7, 0x62, 0xED, 0xF3, 0xFF, 0x12, 0xDB, 0x69, 0xA1, 0x4C, 0x9D,
0xF4, 0x5E, 0x0D, 0x0F, 0xC4, 0x0A, 0x59, 0xFF, 0xF9, 0x25, 0x94, 0x4B, 0xA8, 0x4F, 0x41, 0x6B, 0x74, 0x56, 0x23,
0xFE, 0x57, 0x13, 0x3D, 0x0A, 0x3A, 0x41, 0x9B, 0x7D, 0x56, 0x96, 0xA1, 0xCB, 0xD1, 0x5C, 0xFD, 0x6E, 0x64, 0xBE,
0xFF, 0xC6, 0x85, 0x87, 0xE3, 0x25, 0x76, 0x21, 0x2E, 0xB9, 0x5C, 0xD4, 0x96, 0xF8, 0x65, 0x78, 0x09, 0x81, 0x07,
0xB1, 0xD5, 0x19, 0xCD, 0xA9, 0xDB, 0x5C, 0xD1, 0x3E, 0xF5, 0x51, 0x1F, 0x12, 0xF6, 0x6A, 0x44, 0xA2, 0x37, 0x4F,
0xF1, 0x3E, 0x54, 0x0E, 0x9A, 0xF2, 0x40, 0x3D, 0x4D, 0x97, 0xDE, 0x76, 0xD1, 0x22, 0xA5, 0x66, 0xDC, 0x7A, 0xAE,
0x41, 0x68, 0x1D, 0x6A, 0x15, 0xBD, 0x29, 0xB7, 0xCD, 0xF5, 0xB3, 0xB3, 0x4A, 0xDD, 0x54, 0xAA, 0x43, 0xDE, 0xE7,
0x1A, 0x29, 0x7B, 0x3C, 0x97, 0x92, 0xE7, 0x6C, 0xA6, 0x1B, 0x08, 0xE2, 0x0F, 0xBA, 0x61, 0x97, 0xD4, 0xE0, 0x04,
0xCA, 0x56, 0x6D, 0xE2, 0xE6, 0x1A, 0xBA, 0xD8, 0xDC, 0xE6, 0xEB, 0x3A, 0xFD, 0x2A, 0x38, 0x19, 0x78, 0x8E, 0xF6,
0x40, 0x54, 0x68, 0xA3, 0x3F, 0xD5, 0xF6, 0xB9, 0x76, 0x36, 0xD0, 0xEF, 0xA1, 0x54, 0x6A, 0x5E, 0x44, 0xA1, 0xE7,
0x16, 0x95, 0xE5, 0x16, 0x74, 0xEB, 0x57, 0xD6, 0xFD, 0x47, 0x4C, 0x76, 0x10, 0x5D, 0x55, 0x49, 0x43, 0x09, 0x4D,
0x55, 0x0B, 0x91, 0xD6, 0x4D, 0x51, 0xF1, 0x20, 0xC6, 0x0C, 0x31, 0x3C, 0x29, 0xB7, 0x5E, 0x1E, 0xDD, 0xDD, 0x18,
0x74, 0xA8, 0x2B, 0x2F, 0xF0, 0xB0, 0x48, 0xA4, 0xC7, 0x16, 0x35, 0x33, 0xFF, 0x07, 0xAD, 0x57, 0x4D, 0x6C, 0x14,
0xC9, 0x15, 0xFE, 0xAA, 0x6B, 0x71, 0x67, 0xDD, 0xD8, 0xCD, 0x01, 0x22, 0x76, 0x31, 0xD3, 0x9B, 0x88, 0x48, 0x86,
0xD8, 0xD3, 0x1C, 0xBC, 0xC9, 0x44, 0xEA, 0x99, 0xE9, 0xC8, 0x4A, 0x38, 0xEC, 0x01, 0x0E, 0x41, 0x51, 0x94, 0x1C,
0x72, 0x8E, 0x22, 0x31, 0xD2, 0xFA, 0xE0, 0x95, 0xC6, 0x4C, 0x63, 0x4B, 0x21, 0x12, 0x4A, 0xEC, 0x43, 0x72, 0x5C,
0x2D, 0x89, 0x72, 0xD8, 0x35, 0x8A, 0xEC, 0x83, 0x0F, 0x8E, 0x34, 0x78, 0x0A, 0xE6, 0xE0, 0x03, 0x52, 0x68, 0xE0,
0x80, 0xB4, 0x24, 0xA2, 0x17, 0xA3, 0x5D, 0xC9, 0x9B, 0x88, 0x5A, 0xD1, 0x11, 0x63, 0xBB, 0x67, 0x2A, 0xAF, 0xAA,
0xC7, 0x60, 0x50, 0x76, 0x93, 0xB0, 0x5B, 0xD3, 0xFF, 0x53, 0xF5, 0x5E, 0xD5, 0x7B, 0xDF, 0x7B, 0xEF, 0x2B, 0x00,
0x6F, 0x1C, 0xE9, 0xDA, 0xCE, 0x66, 0xF6, 0xC7, 0xD4, 0xCE, 0xCA, 0xF0, 0x4E, 0x09, 0x74, 0x56, 0x60, 0xDF, 0x0C,
0x11, 0x48, 0x70, 0x7D, 0xA3, 0xB7, 0x4B, 0x31, 0x3A, 0xD5, 0x4D, 0x65, 0x29, 0x25, 0x1D, 0x95, 0xE1, 0x48, 0x0F,
0x79, 0x3B, 0x70, 0x24, 0xB9, 0xB0, 0xFD, 0x64, 0x18, 0xE9, 0x84, 0x75, 0x4D, 0xD8, 0x76, 0x38, 0x32, 0x8C, 0xE5,
0xCA, 0x52, 0xD4, 0xC8, 0x70, 0x2E, 0xEA, 0x77, 0x79, 0x03, 0xF0, 0x25, 0xEB, 0x66, 0x98, 0xA9, 0xC2, 0x7B, 0x2B,
0xB2, 0xAF, 0x27, 0x4C, 0xAE, 0x22, 0x28, 0xC2, 0x75, 0x22, 0x7E, 0x3D, 0x81, 0xAC, 0xA3, 0xEE, 0x45, 0x0D, 0xAE,
0x54, 0xA4, 0x54, 0xEC, 0xA8, 0x38, 0x1F, 0xF6, 0x0D, 0x31, 0xB4, 0x8E, 0xCA, 0x51, 0x26, 0xA7, 0xEC, 0x28, 0x2E,
0xF0, 0x68, 0xDA, 0xB5, 0x92, 0xAA, 0x8A, 0x5A, 0x3D, 0xAC, 0x05, 0x78, 0xAE, 0xD5, 0x6A, 0xF9, 0xBD, 0xBA, 0xFB,
0x8E, 0x17, 0x9A, 0xAB, 0x16, 0xF4, 0x45, 0x35, 0x94, 0xA4, 0xB9, 0xA8, 0xAE, 0xB4, 0xE9, 0x7E, 0xE8, 0xC7, 0x4F,
0x04, 0x4F, 0xE8, 0x5F, 0x7F, 0x1E, 0x5C, 0x00, 0x56, 0x27, 0x80, 0x1B, 0xD2, 0xAB, 0x90, 0x28, 0xD2, 0x6B, 0x46,
0x1F, 0x9B, 0xFA, 0xD5, 0x85, 0x25, 0xE9, 0x15, 0x01, 0x3C, 0x01, 0x3F, 0xC6, 0xF6, 0x95, 0x1E, 0xAC, 0x2E, 0x68,
0xBE, 0x12, 0xFE, 0xF6, 0xE2, 0xBC, 0x52, 0x40, 0x4B, 0x0B, 0x8F, 0x40, 0xE6, 0xE9, 0xED, 0xD1, 0x3B, 0x38, 0x60,
0x34, 0x3B, 0xCB, 0x55, 0x45, 0x8A, 0x1C, 0xFC, 0xEB, 0xA7, 0xA4, 0x97, 0x94, 0xD9, 0x7A, 0x89, 0x2E, 0x6C, 0xD2,
0x0A, 0xA3, 0x54, 0x65, 0x5A, 0xA7, 0xB5, 0xF8, 0xD8, 0xA8, 0x74, 0x4F, 0x6B, 0x8D, 0xD0, 0xF3, 0x11, 0x70, 0x22,
0x89, 0xF3, 0x40, 0x93, 0x6F, 0x2E, 0xA5, 0x70, 0x04, 0xAD, 0x42, 0xF7, 0xA9, 0x92, 0x0F, 0xB8, 0x4A, 0x55, 0x2F,
0xA4, 0x75, 0x51, 0xDF, 0x01, 0x2B, 0xC4, 0xD0, 0x51, 0x12, 0x1B, 0xAF, 0x02, 0x43, 0x8C, 0xE4, 0x6A, 0x15, 0x43,
0xB4, 0x8C, 0xAD, 0x7B, 0x2A, 0x56, 0xDD, 0x5F, 0x5C, 0x1D, 0x73, 0x84, 0x33, 0x17, 0x06, 0x4C, 0xD6, 0xB8, 0xA8,
0xDB, 0x08, 0x3C, 0x4C, 0xDB, 0xEB, 0x31, 0xDF, 0xE9, 0xA6, 0xF0, 0x14, 0x99, 0xFE, 0xDC, 0x7B, 0x24, 0x72, 0xB7,
0x05, 0xF9, 0x39, 0x4E, 0x67, 0x85, 0xCE, 0xF2, 0x7F, 0x38, 0x83, 0x7A, 0xFF, 0x3C, 0x7F, 0x25, 0x0E, 0x1A, 0x2A,
0x3F, 0x69, 0x18, 0x7D, 0x42, 0x87, 0xCC, 0xA6, 0x4F, 0x6D, 0x6D, 0x8D, 0x82, 0x3F, 0x24, 0xB0, 0xD7, 0x23, 0xF8,
0x05, 0x7A, 0xA6, 0xF9, 0x59, 0x09, 0xAC, 0x4B, 0x21, 0x86, 0xC7, 0x81, 0xD2, 0x0A, 0x70, 0x3B, 0x06, 0x3F, 0x4D,
0xD3, 0x2F, 0x03, 0x13, 0xDB, 0x4B, 0xD1, 0x1D, 0xA5, 0xB8, 0xAB, 0xB2, 0x11, 0xEA, 0xBB, 0x0C, 0x9C, 0x13, 0xE4,
0x18, 0x33, 0xA7, 0xC3, 0xB0, 0x66, 0x05, 0x82, 0x31, 0xD8, 0x6D, 0x61, 0x66, 0xC7, 0x23, 0x8C, 0x96, 0xC0, 0xDB,
0x11, 0x4A, 0x74, 0x9B, 0x7B, 0x76, 0xAB, 0x46, 0x7C, 0x32, 0xC3, 0x04, 0xF5, 0x20, 0x77, 0x4E, 0x69, 0x4B, 0xC3,
0x4B, 0xC0, 0xFE, 0x64, 0xC4, 0xB0, 0x05, 0x96, 0x14, 0xAB, 0x28, 0x58, 0x1B, 0x1D, 0x8B, 0x1E, 0x44, 0x91, 0x6F,
0x74, 0xAD, 0xA4, 0x5C, 0x96, 0x65, 0x7E, 0xE7, 0xE6, 0x64, 0x5C, 0xAE, 0xD7, 0xCB, 0xFC, 0x6E, 0xFB, 0x0E, 0x3D,
0x78, 0x65, 0x7E, 0x4F, 0xEC, 0x88, 0xA0, 0x69, 0x67, 0xFC, 0x86, 0xA8, 0x8A, 0x20, 0x63, 0x1A, 0x13, 0xD0, 0x2E,
0x62, 0xE4, 0x6C, 0x78, 0xB4, 0x3E, 0x96, 0x4F, 0xCE, 0x22, 0xA9, 0x84, 0xBF, 0x02, 0x38, 0x49, 0x1D, 0xD7, 0x52,
0xEF, 0xF4, 0xAC, 0xE4, 0x38, 0x49, 0xA5, 0x08, 0x9A, 0x8C, 0x41, 0x52, 0xD9, 0x3A, 0x49, 0x1D, 0x21, 0xA9, 0xEC,
0x06, 0x49, 0x1D, 0x21, 0xA9, 0x4C, 0x4B, 0x1D, 0x23, 0xA9, 0x96, 0x96, 0x3A, 0xA6, 0xC5, 0xE8, 0x87, 0x12, 0xCC,
0xDA, 0x30, 0x98, 0xD2, 0x43, 0xB7, 0xEF, 0x11, 0x9B, 0xC0, 0x95, 0xEC, 0xC3, 0x07, 0x8F, 0x24, 0x66, 0x0A, 0x18,
0xB7, 0xC4, 0xBD, 0x70, 0xF9, 0x3B, 0xF1, 0xD8, 0xD0, 0x8A, 0xC3, 0xCB, 0xFC, 0xD6, 0xCD, 0x30, 0x7D, 0x3B, 0x2E,
0x93, 0xC9, 0x6C, 0x9A, 0x91, 0x30, 0x86, 0x0B, 0xC0, 0xD6, 0x80, 0xA7, 0x68, 0x9C, 0xA8, 0x81, 0xCB, 0x17, 0x42,
0x63, 0xD5, 0x84, 0x8C, 0x17, 0xC3, 0x25, 0xC3, 0xCD, 0xC3, 0xBA, 0x15, 0x43, 0x06, 0x98, 0x76, 0xC3, 0x71, 0x96,
0xB8, 0x61, 0xDD, 0x56, 0x6A, 0x52, 0xA9, 0xCF, 0x24, 0xEA, 0x4D, 0xB8, 0xDA, 0x8D, 0xB1, 0xE0, 0xCB, 0x1A, 0x53,
0xBA, 0xF1, 0x27, 0xD8, 0x4E, 0x03, 0x67, 0x32, 0x9C, 0xAA, 0xF1, 0x8B, 0x28, 0xD5, 0x9C, 0xF6, 0xA7, 0x99, 0xAF,
0xC4, 0xDA, 0x2F, 0x81, 0x5B, 0xE2, 0x1F, 0xE8, 0xC7, 0x30, 0x01, 0xD6, 0x43, 0x9D, 0x49, 0x7B, 0xCF, 0xCD, 0x92,
0x8E, 0xF0, 0xC9, 0x31, 0xC7, 0x8E, 0x39, 0x31, 0xEF, 0xE7, 0x08, 0x1E, 0x3E, 0xFD, 0x45, 0xFA, 0x47, 0x91, 0x11,
0x1E, 0xC0, 0x68, 0xCD, 0xC4, 0xC1, 0xC4, 0xEE, 0x7C, 0x8F, 0x6C, 0xC1, 0xBF, 0x92, 0xF8, 0x61, 0xC3, 0x0D, 0xED,
0xBB, 0x02, 0xDB, 0x31, 0xBC, 0x14, 0x9C, 0x50, 0xAB, 0x42, 0x54, 0x62, 0x14, 0xAE, 0xC2, 0x9D, 0xDF, 0x6E, 0x5D,
0xA7, 0xB8, 0xF4, 0x95, 0x64, 0xAD, 0xA4, 0x3F, 0x6C, 0xE1, 0x32, 0x5F, 0xC5, 0xF0, 0x9E, 0x75, 0x0F, 0x74, 0xD8,
0xB6, 0x2C, 0xF1, 0xB9, 0x70, 0xAC, 0xC6, 0xD6, 0xC3, 0x91, 0x92, 0xD5, 0xDE, 0xEC, 0x78, 0x8A, 0x12, 0x16, 0x43,
0xC8, 0xD6, 0x0D, 0x84, 0x8F, 0x3D, 0xEB, 0x4D, 0x79, 0x2B, 0x3F, 0x56, 0x51, 0x37, 0x47, 0xF0, 0xF4, 0xA0, 0xC4,
0x75, 0x9E, 0x65, 0x55, 0xD5, 0xA9, 0xAA, 0x34, 0xCF, 0x5B, 0x87, 0x5F, 0x65, 0x7F, 0xC7, 0x38, 0x58, 0xEE, 0x33,
0xBC, 0x29, 0x86, 0xA6, 0xEC, 0x77, 0xD9, 0x46, 0x38, 0x9D, 0x14, 0x02, 0x67, 0x5E, 0x3D, 0x50, 0x1D, 0xCA, 0x36,
0x2C, 0xB4, 0x55, 0x7F, 0x72, 0xF6, 0x9C, 0x70, 0xDA, 0xF1, 0xE0, 0xEC, 0xC2, 0x4B, 0xE8, 0xC2, 0x21, 0x57, 0x09,
0x13, 0x19, 0x83, 0xEE, 0xA9, 0xF6, 0x03, 0x9D, 0x5A, 0x30, 0x82, 0xBB, 0x78, 0x33, 0x2E, 0x4C, 0xD9, 0xBF, 0x61,
0x1B, 0xD1, 0xB4, 0x2C, 0x56, 0xD5, 0x25, 0x95, 0xE4, 0xF9, 0x92, 0x1C, 0xB7, 0x3F, 0x47, 0x19, 0xBE, 0x02, 0xDD,
0x5A, 0x98, 0x63, 0x02, 0xCC, 0xB4, 0x9F, 0x8F, 0x96, 0x3D, 0xF7, 0x92, 0x99, 0x4D, 0x8D, 0xFF, 0x0C, 0x77, 0xC3,
0x77, 0xE2, 0xC2, 0x84, 0xFD, 0x5B, 0xB6, 0x21, 0x56, 0x55, 0xCF, 0x57, 0xB3, 0x1D, 0x69, 0xB1, 0x08, 0xF7, 0x4C,
0xDC, 0x1E, 0x30, 0x3E, 0xB0, 0x22, 0x77, 0x52, 0xB8, 0x17, 0x45, 0x3E, 0xFE, 0x47, 0x38, 0x98, 0x2B, 0x6F, 0xFE,
0x1F, 0x76, 0x2E, 0x1A, 0x3B, 0x0F, 0x0E, 0x4C, 0x5E, 0xFF, 0x48, 0x66, 0x5F, 0x60, 0x70, 0xD2, 0x0C, 0xB2, 0xCE,
0xF1, 0xAF, 0x40, 0xEF, 0xAB, 0xA0, 0x38, 0x1F, 0xA4, 0x87, 0xD1, 0xD7, 0x5C, 0xE7, 0x62, 0xFB, 0x8B, 0x6C, 0xEE,
0x3F, 0xF4, 0xD4, 0xEC, 0x0F, 0x53, 0x42, 0x9E, 0xF5, 0xE1, 0xD2, 0xCE, 0xE6, 0xB4, 0x18, 0x19, 0x3D, 0xCA, 0xF2,
0x70, 0x3E, 0x83, 0xD6, 0x6E, 0xAE, 0xB5, 0x62, 0x89, 0xB4, 0x8E, 0xE3, 0xAF, 0xEF, 0x7A, 0xC5, 0x89, 0x74, 0xA0,
0xEA, 0x8E, 0x8F, 0x29, 0x95, 0x49, 0x8C, 0x1F, 0x85, 0x4B, 0x15, 0x23, 0x4A, 0xAD, 0xB8, 0x80, 0xD4, 0x16, 0x0D,
0x95, 0x56, 0x95, 0xF2, 0x60, 0xDF, 0x10, 0x3A, 0xCF, 0x5A, 0x4A, 0x1E, 0xD2, 0x4E, 0x08, 0x0A, 0xFC, 0x96, 0x34,
0x52, 0x3E, 0x3F, 0x32, 0xD9, 0x19, 0xEC, 0xC9, 0xF1, 0x64, 0x8B, 0x50, 0xA7, 0x62, 0x74, 0x5E, 0x3E, 0x27, 0xEC,
0x63, 0x2A, 0xDD, 0x1D, 0x69, 0x4C, 0xE3, 0xFF, 0xB7, 0xEC, 0x70, 0x82, 0x8A, 0xE5, 0xF1, 0xB3, 0xCF, 0x55, 0x67,
0xFE, 0xC4, 0x4B, 0xDC, 0xA5, 0x74, 0x34, 0x70, 0xC4, 0xFE, 0x09, 0xFB, 0xC3, 0x5E, 0x8D, 0xF7, 0x3E, 0xA8, 0x51,
0x66, 0xA8, 0x39, 0x02, 0x95, 0xD6, 0xD6, 0x3E, 0x5F, 0xA9, 0xAE, 0xF3, 0xF1, 0x7D, 0x9A, 0xE6, 0x4F, 0x42, 0xAA,
0x55, 0x12, 0x6B, 0x94, 0x1B, 0xF4, 0xD2, 0xA5, 0x29, 0x25, 0xD0, 0x45, 0xFC, 0xDB, 0xDB, 0x34, 0x6F, 0xE5, 0x50,
0xCE, 0x65, 0x2D, 0xFA, 0x5E, 0x22, 0xFB, 0xD5, 0xA1, 0x68, 0xB5, 0xBA, 0x50, 0x3A, 0x6A, 0xC1, 0xDE, 0x10, 0xA4,
0xBF, 0xE4, 0x89, 0x9A, 0x13, 0xBD, 0xAD, 0x14, 0x5D, 0x4F, 0xBA, 0x51, 0xA5, 0x15, 0x79, 0x2A, 0xB2, 0x3F, 0xA1,
0x1A, 0x1A, 0x1E, 0xF4, 0x51, 0xED, 0x99, 0xAA, 0xA5, 0x49, 0xCD, 0x2B, 0xB0, 0xE6, 0x42, 0x38, 0xF1, 0xDE, 0x44,
0xB0, 0xEF, 0x77, 0x44, 0x1D, 0xA4, 0xF3, 0x90, 0x99, 0xF2, 0x96, 0xAB, 0xAE, 0xE4, 0xDA, 0x2B, 0x68, 0x3D, 0x48,
0x58, 0xC3, 0x07, 0xBF, 0x40, 0x7A, 0x75, 0x89, 0xD6, 0x6A, 0x5B, 0x5B, 0xF8, 0xDA, 0x00, 0x61, 0xDE, 0xED, 0xA7,
0x03, 0x9C, 0xA7, 0x1A, 0x59, 0xF2, 0xFE, 0xC6, 0x3F, 0xC1, 0x5F, 0x44, 0xB1, 0xE6, 0xCE, 0x2F, 0x7D, 0xA4, 0x3A,
0xDE, 0xBB, 0x70, 0x7F, 0xE0, 0xB4, 0x55, 0x62, 0xD2, 0x15, 0xF5, 0x1F, 0x5A, 0xD6, 0xF5, 0xCA, 0xB4, 0x15, 0xDF,
0x8A, 0x53, 0x22, 0x49, 0x84, 0xC3, 0xC7, 0x09, 0xBF, 0x0F, 0x37, 0x45, 0x55, 0x30, 0x05, 0x5B, 0xC1, 0x5B, 0x43,
0x93, 0x16, 0xDB, 0x73, 0x66, 0x7B, 0x15, 0xAE, 0x41, 0x35, 0x7A, 0x18, 0x4E, 0x92, 0xD7, 0x8F, 0x5D, 0xB3, 0x8A,
0xDD, 0x83, 0x10, 0xF5, 0xAB, 0x90, 0x9C, 0xC9, 0x9B, 0xE0, 0xA9, 0x3E, 0xEC, 0xAB, 0xB0, 0xDF, 0x0B, 0x89, 0xD3,
0xD9, 0xB3, 0x1D, 0xD6, 0x5A, 0xB0, 0xB6, 0xD7, 0xAC, 0xD4, 0x96, 0x29, 0x66, 0xEA, 0x70, 0xFF, 0x4C, 0xB5, 0x2D,
0x24, 0x3D, 0x5A, 0x1B, 0xFF, 0x27, 0xD8, 0xA7, 0x44, 0xFC, 0xD4, 0x95, 0x2E, 0x39, 0x81, 0xC8, 0x0D, 0x8E, 0xEC,
0xD0, 0xC2, 0x09, 0x6F, 0xA4, 0xA7, 0xF8, 0x39, 0xA9, 0x34, 0xD3, 0xA9, 0x54, 0x90, 0xE1, 0x78, 0xBF, 0x0F, 0x35,
0x82, 0xFB, 0xA1, 0xBC, 0xFA, 0x7E, 0x29, 0x6D, 0xAF, 0xAB, 0xEF, 0xFF, 0xFE, 0xCC, 0xEE, 0xFA, 0xCE, 0x45, 0xDE,
0x12, 0x8F, 0x4A, 0x13, 0xD6, 0x3A, 0x46, 0xA6, 0x58, 0x3B, 0x1A, 0xAB, 0x2C, 0x5D, 0x53, 0x72, 0x20, 0xD3, 0x23,
0x4E, 0x1A, 0xEF, 0xE4, 0xC9, 0x9F, 0xE8, 0x43, 0x3F, 0xF9, 0x37, 0xD4, 0xEC, 0x62, 0x93, 0x02, 0x8C, 0x00, 0xD2,
0x24, 0x0F, 0x92, 0xDD, 0xBE, 0x9E, 0x6A, 0x03, 0x51, 0x8D, 0x8E, 0x93, 0xAB, 0x55, 0x75, 0x4D, 0xA5, 0xEC, 0xFD,
0x97, 0x1B, 0xA4, 0xB6, 0xA8, 0xAB, 0x52, 0x4F, 0x34, 0x17, 0xA4, 0x99, 0xDF, 0x47, 0x83, 0xD6, 0x7A, 0xB6, 0x51,
0xD7, 0x08, 0x21, 0x02, 0x23, 0x0D, 0xA3, 0xF2, 0xE7, 0x04, 0x52, 0xCD, 0x2C, 0x5D, 0x33, 0x3D, 0x5F, 0x04, 0x54,
0x1F, 0x35, 0xB3, 0x94, 0x1A, 0x4F, 0xBE, 0xE0, 0x82, 0x65, 0x9A, 0x59, 0xBA, 0x8B, 0x04, 0x06, 0x22, 0x9A, 0x14,
0xE7, 0x24, 0x6C, 0xF1, 0x7D, 0x4D, 0x34, 0x1D, 0x2D, 0x5C, 0x03, 0x4F, 0xA9, 0xC4, 0x28, 0x23, 0xFA, 0x67, 0x8A,
0xBB, 0x7B, 0xB6, 0x95, 0x33, 0xB6, 0x19, 0x7D, 0x93, 0x86, 0x7F, 0x71, 0xAD, 0xC7, 0x55, 0x37, 0xB5, 0x9A, 0x13,
0x4B, 0x46, 0x0B, 0x52, 0xA3, 0xC4, 0xA5, 0x29, 0x50, 0x0A, 0x58, 0x25, 0xF2, 0x99, 0xD0, 0xE7, 0xCA, 0x22, 0x59,
0xBF, 0x69, 0x02, 0xC5, 0x11, 0x5C, 0x53, 0xCB, 0xAA, 0x3A, 0xAD, 0x1E, 0xEA, 0xA5, 0xE4, 0xF4, 0x2B, 0x47, 0x94,
0x83, 0x3E, 0x3F, 0xD1, 0x9F, 0xEC, 0xC7, 0xF3, 0x4A, 0x34, 0x7A, 0x27, 0x5A, 0xFC, 0x42, 0x07, 0x72, 0xCC, 0xA2,
0xB4, 0x90, 0x38, 0x51, 0xCA, 0xA3, 0xA2, 0x1B, 0xB9, 0xE8, 0x74, 0xE0, 0x3F, 0x7A, 0xA4, 0xE5, 0x90, 0x08, 0xFF,
0xE6, 0x5E, 0x3A, 0x3C, 0x94, 0x73, 0x93, 0xD2, 0x97, 0x8A, 0x28, 0xC2, 0x95, 0x2E, 0x3C, 0xFF, 0x73, 0x44, 0x81,
0xE0, 0xB3, 0xF2, 0x0C, 0x88, 0xAF, 0xA1, 0x40, 0x2C, 0xAD, 0x1A, 0x69, 0xE2, 0x57, 0x8D, 0x8B, 0xC4, 0xCF, 0x82,
0x54, 0x53, 0xBE, 0x7A, 0x59, 0xF3, 0xBD, 0xA6, 0xDB, 0x24, 0x5A, 0xD6, 0xE4, 0x99, 0xE6, 0x64, 0xC0, 0x51, 0x60,
0x3A, 0x1F, 0xC6, 0x50, 0xED, 0xF2, 0x64, 0x39, 0xE0, 0x93, 0xA2, 0x14, 0xF0, 0x39, 0x11, 0xD4, 0xF9, 0x3A, 0x5D,
0x88, 0xA6, 0xB0, 0x7C, 0x51, 0x97, 0x77, 0x69, 0x0A, 0xBD, 0x5B, 0xB4, 0xE1, 0xF9, 0xF5, 0x33, 0x95, 0xA6, 0xD1,
0x0B, 0x71, 0x79, 0x9B, 0x90, 0xF3, 0x57, 0x60, 0x43, 0x60, 0x65, 0x0A, 0x81, 0x8B, 0x02, 0x8F, 0x9D, 0x70, 0x9A,
0xC7, 0x1E, 0xA3, 0x8D, 0x0F, 0x39, 0xA1, 0x0E, 0xCF, 0x37, 0xCB, 0xD7, 0xB1, 0xD3, 0xA7, 0x5A, 0xAF, 0x68, 0x79,
0xDF, 0xD4, 0xB9, 0x35, 0xDF, 0xE3, 0xD4, 0xDC, 0xA5, 0x49, 0xB1, 0x32, 0x61, 0x9F, 0xA2, 0xB4, 0x4A, 0xB9, 0xB5,
0x59, 0x21, 0xC2, 0x93, 0x39, 0x1F, 0x9B, 0xC0, 0x67, 0x61, 0xDF, 0x63, 0x23, 0xBA, 0xFB, 0xB0, 0x2E, 0x7A, 0xB6,
0x26, 0xC0, 0x08, 0x0D, 0x03, 0x18, 0xD7, 0x17, 0x4F, 0x87, 0xCE, 0x23, 0xBA, 0xF4, 0x5A, 0xD4, 0x31, 0xA3, 0x6C,
0x40, 0x94, 0x8C, 0xBC, 0x5D, 0x61, 0xB4, 0xF9, 0x70, 0x91, 0xAE, 0x10, 0x7A, 0xEA, 0xD4, 0x53, 0x96, 0x89, 0x72,
0x06, 0x45, 0x8B, 0x2A, 0x01, 0x7D, 0x25, 0xB4, 0x45, 0x84, 0xAC, 0xD6, 0xA6, 0x32, 0x1B, 0xA9, 0x50, 0x83, 0x9C,
0xAA, 0xEA, 0x0E, 0xED, 0x3F, 0xF2, 0xFA, 0xA1, 0x61, 0x47, 0x31, 0x01, 0xE4, 0x25, 0xC0, 0xD3, 0x33, 0x31, 0xA4,
0xD1, 0x09, 0x73, 0xAB, 0x98, 0x16, 0xEE, 0x1F, 0xA3, 0x48, 0x2D, 0x9D, 0x64, 0xB6, 0x36, 0xD9, 0x10, 0x99, 0x6E,
0x20, 0x63, 0x3B, 0xB2, 0xF4, 0xDD, 0xF6, 0x5B, 0x63, 0xB5, 0xCF, 0xD6, 0x87, 0x47, 0xDE, 0xB9, 0xDD, 0xEE, 0xAD,
0x52, 0x02, 0x69, 0x44, 0x8E, 0x06, 0xF3, 0x30, 0x58, 0x4C, 0xC0, 0x23, 0x3C, 0x4F, 0x51, 0x7D, 0xC9, 0x13, 0x48,
0x62, 0x11, 0x12, 0xB6, 0x8C, 0x46, 0xDA, 0x4F, 0xE8, 0xAD, 0x14, 0x01, 0x56, 0x57, 0x67, 0xBD, 0x27, 0xF5, 0xB5,
0x91, 0xBF, 0x65, 0xEB, 0x04, 0xE2, 0xE9, 0x1C, 0xB2, 0xF5, 0x14, 0x6B, 0x64, 0xD3, 0x18, 0x4C, 0x9A, 0x71, 0x04,
0x32, 0xBB, 0x6B, 0x9F, 0xB5, 0x22, 0x82, 0x86, 0x9B, 0xA0, 0x15, 0x41, 0x7E, 0x6F, 0x86, 0xCA, 0x87, 0x0A, 0x9F,
0x72, 0xBE, 0x0A, 0xD5, 0x04, 0x5B, 0xB0, 0xCB, 0x14, 0x09, 0x4A, 0x6F, 0xEA, 0x02, 0xBC, 0x78, 0xD4, 0x9F, 0x3F,
0x66, 0x76, 0x35, 0x1D, 0x34, 0xCF, 0x4D, 0x53, 0x4A, 0x75, 0x71, 0xB4, 0x34, 0x9F, 0x8D, 0xAA, 0x99, 0x1D, 0xEA,
0x9F, 0xA3, 0x7F, 0x91, 0x93, 0x39, 0xBA, 0x10, 0x9F, 0x61, 0xA9, 0x25, 0xAD, 0x84, 0xC7, 0x56, 0x44, 0x25, 0xED,
0x76, 0xA4, 0x4D, 0x19, 0xE5, 0x94, 0x82, 0xDC, 0x4F, 0x8E, 0x74, 0x4C, 0xD8, 0x3D, 0xB8, 0xCC, 0x95, 0x74, 0x2F,
0x24, 0x01, 0x8F, 0xA4, 0xC3, 0xA3, 0x31, 0xDA, 0x62, 0xD7, 0xF9, 0x35, 0xE9, 0xDA, 0x22, 0xF8, 0x37, 0x4D, 0x91,
0xBF, 0x4B, 0xC3, 0x40, 0x14, 0xC7, 0xBF, 0x49, 0x68, 0xD3, 0x26, 0xC1, 0x74, 0x88, 0x90, 0xA5, 0xB5, 0x48, 0x87,
0x0A, 0x15, 0xD7, 0x82, 0xFD, 0x71, 0xE8, 0x90, 0x82, 0x4B, 0x11, 0x0A, 0xCE, 0x4E, 0xDA, 0x49, 0xB4, 0x83, 0x60,
0xA5, 0xD1, 0x5A, 0xD0, 0x2D, 0xF8, 0x17, 0x88, 0x74, 0xD1, 0x51, 0x1C, 0x04, 0x6B, 0x9B, 0xB6, 0x38, 0x68, 0x97,
0x74, 0x76, 0x09, 0x9D, 0x04, 0x11, 0x6E, 0xEC, 0x50, 0x1A, 0x2F, 0xAD, 0x82, 0x07, 0xEF, 0x71, 0xF7, 0xE1, 0xBD,
0xFB, 0x7E, 0xDF, 0x9D, 0x06, 0xCA, 0x3B, 0xC9, 0x41, 0x44, 0x20, 0x79, 0x61, 0x13, 0xA8, 0xAC, 0x5E, 0xF7, 0x1C,
0x00, 0xF9, 0xE9, 0x22, 0xCB, 0xF0, 0x3C, 0xFF, 0x00, 0xDE, 0x3C, 0xFA, 0x32, 0xC6, 0x80, 0x9E, 0xCD, 0xE9, 0x92,
0x6A, 0xF4, 0x47, 0x54, 0x17, 0x15, 0x24, 0x1B, 0x8D, 0x2A, 0x2C, 0x9E, 0x50, 0xF1, 0xCC, 0x15, 0x4D, 0xC0, 0xB1,
0x27, 0x70, 0x34, 0x58, 0x82, 0x19, 0x43, 0x8A, 0x73, 0x35, 0xB5, 0x4E, 0xAB, 0x2A, 0x59, 0x32, 0xBA, 0x74, 0xBC,
0x82, 0x9C, 0x7A, 0x4E, 0xAB, 0x12, 0xC1, 0x7A, 0x1F, 0xFC, 0x56, 0x13, 0xED, 0x66, 0xC9, 0x15, 0x4C, 0x09, 0xF5,
0x84, 0x1E, 0x87, 0xD6, 0x6E, 0x6B, 0x80, 0xB6, 0xC7, 0xA2, 0x36, 0xFD, 0xAF, 0xE2, 0x2B, 0x04, 0xC4, 0x21, 0x6D,
0xE5, 0x58, 0x27, 0xD9, 0x09, 0x3D, 0x6A, 0x71, 0x2B, 0x8B, 0x93, 0xE7, 0x62, 0xE7, 0x4D, 0x29, 0x9A, 0xF1, 0xC4,
0x3A, 0x39, 0xF6, 0xED, 0x45, 0xB9, 0x6F, 0x3D, 0xFC, 0xEB, 0x9C, 0xF3, 0x6C, 0xF8, 0xD9, 0xF9, 0x9B, 0xA5, 0x7C,
0xD7, 0x99, 0x6E, 0x5B, 0xC5, 0x2B, 0xA5, 0x63, 0xA3, 0x7C, 0x93, 0x5E, 0xF0, 0xF6, 0x0B, 0x85, 0x0B, 0xE6, 0x36,
0x48, 0xEC, 0xCB, 0x79, 0x85, 0xF5, 0xEA, 0x5F, 0xA2, 0x40, 0x82, 0x40, 0x18, 0xE7, 0xEB, 0x43, 0x3A, 0x6E, 0xCD,
0x14, 0xE6, 0x7E, 0x80, 0x1A, 0x7B, 0x8D, 0x83, 0xC3, 0xEE, 0x40, 0x4E, 0xA5, 0x8A, 0x91, 0xD2, 0x1A, 0xCD, 0xA8,
0x0C, 0x92, 0x10, 0x67, 0xEC, 0x7E, 0xA4, 0x4E, 0xC3, 0xB0, 0x43, 0x7E, 0x51, 0x1A, 0x10, 0x4D, 0xE9, 0x33, 0x32,
0x72, 0x9F, 0x62, 0x19, 0xAE, 0x63, 0xCB, 0x8C, 0x51, 0x20, 0x00, 0xC8, 0xE6, 0xF2, 0xBB, 0x98, 0x4E, 0xDF, 0x92,
0x16, 0x43, 0x93, 0x60, 0xA6, 0xF2, 0x40, 0x5E, 0xFC, 0x0E, 0x84, 0xF9, 0x1E, 0x41, 0xDC, 0x04, 0x93, 0xDD, 0x20,
0x48, 0x04, 0xEF, 0x9B, 0x60, 0xC1, 0xB3, 0x2D, 0x23, 0x04, 0xF3, 0x15, 0x95, 0x3D, 0xCF, 0x73, 0xD9, 0x4C, 0xB3,
0xAF, 0xC0, 0x0F, 0xAD, 0x5A, 0x7F, 0x6C, 0x1B, 0xE7, 0x79, 0x7E, 0xEF, 0x3E, 0xCB, 0x17, 0xEB, 0x24, 0x7E, 0xFE,
0xC3, 0xC1, 0xDC, 0x84, 0xE2, 0xE5, 0x0F, 0x0F, 0x60, 0x3C, 0x52, 0x14, 0x30, 0xAE, 0x61, 0xD2, 0x93, 0xEE, 0x1C,
0x61, 0x35, 0x30, 0x77, 0x8D, 0x31, 0xD8, 0x1B, 0xB0, 0xAD, 0x8D, 0x31, 0xE4, 0xCF, 0xB4, 0xA1, 0x57, 0xB6, 0x51,
0x1A, 0x8A, 0x3C, 0xDB, 0x7F, 0x08, 0x98, 0x81, 0x5A, 0x6D, 0xD1, 0x0E, 0xFB, 0x81, 0x4D, 0xE8, 0x02, 0x2C, 0x53,
0xD2, 0x88, 0x49, 0xD9, 0x55, 0x4D, 0x68, 0xF3, 0xB3, 0x39, 0xC0, 0x5B, 0x35, 0xD4, 0xE7, 0x64, 0x85, 0x81, 0x1A,
0x88, 0x2F, 0xB1, 0x9B, 0x00, 0x56, 0xDB, 0x9C, 0xED, 0xEB, 0x4C, 0xCB, 0x47, 0x7E, 0x7B, 0xBE, 0xA3, 0xE5, 0x28,
0x89, 0x93, 0x25, 0xC3, 0x78, 0xDF, 0x77, 0x3C, 0x52, 0x77, 0xDF, 0xAF, 0xF7, 0x79, 0x9F, 0xF7, 0x79, 0x3F, 0x6A,
0x13, 0xE9, 0x3E, 0x8D, 0x93, 0x7A, 0x15, 0xE4, 0xCA, 0xFE, 0x3F, 0x12, 0xD4, 0xA0, 0x1C, 0x99, 0xF2, 0xEA, 0xCF,
0xF6, 0x25, 0x17, 0x8B, 0xDF, 0x93, 0x71, 0x5B, 0xD2, 0xF6, 0xBB, 0x4C, 0x96, 0xDC, 0xD4, 0x96, 0xF9, 0xFD, 0x7B,
0x48, 0x57, 0xB7, 0xDD, 0xBE, 0x7F, 0x7C, 0xF1, 0xA8, 0xBC, 0x2A, 0x63, 0xA2, 0x6D, 0x96, 0x94, 0x64, 0x10, 0x69,
0x82, 0xA8, 0x49, 0x94, 0x27, 0x34, 0xE4, 0xE9, 0x37, 0xAA, 0xB4, 0xCC, 0xBC, 0x1C, 0x35, 0x4C, 0x4A, 0xEB, 0xC2,
0xA4, 0x86, 0xE5, 0xE5, 0x4D, 0x8F, 0xB6, 0x52, 0x9A, 0x52, 0xEA, 0xEE, 0xF5, 0x57, 0x5D, 0x7E, 0x71, 0xFF, 0x6E,
0x17, 0xC3, 0x69, 0x62, 0x40, 0xA6, 0xA7, 0x07, 0xB4, 0xAC, 0x2E, 0x84, 0x1E, 0x92, 0xD6, 0x76, 0xCD, 0xEF, 0x06,
0x79, 0xAA, 0x94, 0x28, 0x57, 0x21, 0x7A, 0x79, 0x11, 0xE3, 0x40, 0xC7, 0xB8, 0x81, 0x6A, 0xBB, 0x8E, 0x3B, 0x32,
0x2E, 0xC8, 0x48, 0x97, 0xF3, 0x68, 0x44, 0x6B, 0x07, 0x3A, 0x86, 0x72, 0x83, 0xA8, 0x4A, 0x94, 0x21, 0x32, 0x7C,
0x22, 0x79, 0x09, 0xE3, 0xF0, 0xE9, 0xDE, 0x3E, 0xE6, 0x28, 0xC8, 0x88, 0x7E, 0xDB, 0xE8, 0x15, 0xA4, 0xC4, 0x58,
0x75, 0x79, 0x23, 0xE9, 0xB9, 0x55, 0xBD, 0xFD, 0x6A, 0xB5, 0x8E, 0xDB, 0x19, 0x7B, 0xFC, 0xFE, 0x9D, 0x83, 0x31,
0xE9, 0xA1, 0x76, 0x87, 0x43, 0x57, 0x47, 0x44, 0xC4, 0x7C, 0xEE, 0x4E, 0x52, 0xC8, 0x04, 0x27, 0x5B, 0xBD, 0x59,
0x54, 0xD5, 0x42, 0x43, 0x8C, 0x6B, 0xDD, 0x76, 0xA7, 0x6F, 0xCE, 0xD3, 0xD0, 0x7E, 0x8F, 0xB8, 0x0C, 0x68, 0x94,
0x7C, 0xD4, 0x80, 0x46, 0x6E, 0x57, 0x19, 0xE2, 0x3D, 0x87, 0x9A, 0x4A, 0x0F, 0xEA, 0x97, 0x73, 0x24, 0xE3, 0x2E,
0xC9, 0x60, 0xEF, 0xA0, 0x63, 0xE6, 0x0E, 0xE3, 0x91, 0x2C, 0x15, 0x31, 0x4D, 0x5F, 0x17, 0xEC, 0x3B, 0x8F, 0xA2,
0x25, 0xD9, 0xC3, 0xC7, 0x31, 0x7C, 0x2C, 0xB8, 0x26, 0x1D, 0xA7, 0xDC, 0xBD, 0x11, 0xC9, 0x9E, 0xCF, 0xA4, 0x2F,
0xA5, 0xC4, 0x5F, 0x03, 0x8C, 0x82, 0x18, 0xD6, 0x5E, 0xBD, 0x5D, 0xF0, 0xC9, 0x91, 0x2E, 0x0B, 0x4A, 0x54, 0xD5,
0x85, 0x21, 0x72, 0xB7, 0xDF, 0x98, 0x30, 0x7C, 0x5B, 0x75, 0xE1, 0xAB, 0xC5, 0x2F, 0xDD, 0x9A, 0xA7, 0xDF, 0x32,
0xA7, 0x7D, 0x7B, 0x9C, 0xAE, 0x84, 0xEC, 0x8C, 0xC7, 0xAB, 0xE4, 0xF8, 0x04, 0x53, 0xC6, 0x64, 0xC5, 0x54, 0xEB,
0xEA, 0xD7, 0xBA, 0xE6, 0x91, 0xEE, 0xB8, 0xD9, 0xED, 0xF2, 0x68, 0xB3, 0xBA, 0x99, 0xE8, 0x99, 0x5B, 0x46, 0x8B,
0xE8, 0xB1, 0x88, 0xE2, 0xA6, 0x1E, 0x2F, 0xB3, 0x78, 0xD9, 0x8C, 0x97, 0x79, 0xB5, 0x5A, 0xB0, 0xAB, 0x93, 0x93,
0xD5, 0xEA, 0x64, 0x35, 0x9A, 0xAC, 0x85, 0x53, 0x8E, 0x3F, 0xE5, 0x88, 0x9A, 0xE3, 0xD6, 0x34, 0xF4, 0x58, 0x36,
0xFB, 0x74, 0x8F, 0x9B, 0x3C, 0xD8, 0xD0, 0x3B, 0x5E, 0x29, 0x67, 0xB8, 0x41, 0xC3, 0x7C, 0x84, 0xAA, 0x21, 0xEB,
0x93, 0xE5, 0x53, 0x0C, 0x73, 0x53, 0x97, 0xEA, 0x54, 0xF7, 0x8D, 0x80, 0x0E, 0xD0, 0xDF, 0xD1, 0x58, 0x43, 0x3B,
0xFF, 0x81, 0xD3, 0xCB, 0x8B, 0xE7, 0x65, 0x0F, 0xEB, 0x98, 0x22, 0x9C, 0xF0, 0x02, 0x7E, 0xB9, 0x32, 0x2C, 0xB1,
0x9F, 0x12, 0x5D, 0x14, 0xD4, 0xAC, 0x90, 0xCD, 0x29, 0xC3, 0x7C, 0xD3, 0x9D, 0x61, 0xBE, 0xA5, 0x49, 0xB5, 0x42,
0x71, 0x95, 0xAC, 0x02, 0xB1, 0x40, 0x01, 0xFD, 0xFC, 0x00, 0x66, 0x63, 0x64, 0xC8, 0x43, 0x7E, 0xAE, 0xC2, 0xBE,
0x48, 0x6F, 0x7F, 0x37, 0x92, 0xB1, 0xD3, 0xA5, 0x04, 0xB2, 0x8D, 0x94, 0x49, 0xE5, 0x86, 0x61, 0x52, 0xD0, 0xEE,
0x9A, 0xFB, 0xC3, 0x06, 0x5B, 0x21, 0xFB, 0x87, 0x8F, 0xAE, 0xC8, 0xA8, 0x7D, 0xE3, 0xA3, 0x50, 0xCA, 0x64, 0xC8,
0x7E, 0x16, 0x32, 0xAF, 0xF1, 0x6E, 0x71, 0x55, 0x31, 0xDC, 0x26, 0xA7, 0x66, 0x5D, 0xF6, 0x50, 0x00, 0xE0, 0x2C,
0x65, 0x3F, 0xC2, 0x8B, 0xF8, 0xA1, 0x70, 0x12, 0xA3, 0x37, 0xD0, 0x60, 0x18, 0x11, 0x7F, 0xA4, 0x40, 0x34, 0x7B,
0x4D, 0xA0, 0x6D, 0x8C, 0xCD, 0x92, 0x18, 0x1F, 0xCC, 0x4C, 0x1C, 0x50, 0x4E, 0xBE, 0x69, 0x03, 0xD7, 0xC0, 0xB2,
0x6B, 0x5E, 0x5F, 0xEB, 0x69, 0x7D, 0xE7, 0x4C, 0x58, 0xEF, 0xC4, 0x8E, 0x18, 0x72, 0x2D, 0xA9, 0x69, 0x01, 0xFC,
0x97, 0x6B, 0x7F, 0xE6, 0x4A, 0x8F, 0x66, 0x60, 0x6A, 0xFD, 0xE7, 0x9F, 0xBD, 0x2A, 0xBB, 0x4F, 0x44, 0x9F, 0xCC,
0x6A, 0xA3, 0x8C, 0x46, 0x0D, 0x05, 0x04, 0x52, 0xDE, 0x05, 0xA7, 0xBD, 0xD3, 0xB3, 0x99, 0x8D, 0xCF, 0x4E, 0xDE,
0x7E, 0x36, 0x6F, 0x8A, 0xE6, 0x24, 0x3B, 0x15, 0x70, 0x8B, 0xEC, 0x2E, 0x5D, 0x17, 0xAC, 0x47, 0x3C, 0xA4, 0xBA,
0xD0, 0xA4, 0x30, 0xDE, 0xF1, 0x0A, 0x8E, 0xB7, 0xEC, 0x1C, 0x0E, 0xDA, 0xC7, 0x3C, 0xE9, 0x1A, 0x32, 0xA8, 0xBD,
0x60, 0x78, 0xC1, 0x4C, 0x0A, 0xA7, 0x4A, 0xCA, 0xD8, 0x15, 0x34, 0x33, 0xA6, 0x16, 0x84, 0x19, 0xAE, 0x5D, 0x0C,
0x33, 0xDB, 0x94, 0x33, 0x4F, 0xD5, 0xA8, 0xF6, 0x34, 0xFD, 0xFA, 0xC9, 0x43, 0xAF, 0xFF, 0xA0, 0xF3, 0xD3, 0x97,
0x5E, 0xFB, 0x46, 0xE3, 0xE6, 0xE7, 0x9B, 0x32, 0xD5, 0xAC, 0xA5, 0x9A, 0x76, 0xAA, 0x49, 0x99, 0x26, 0x59, 0x5B,
0x69, 0xDB, 0x0C, 0xD9, 0xCB, 0xB7, 0xCA, 0xE4, 0xA0, 0xB4, 0x68, 0xB2, 0x2D, 0x7B, 0x49, 0xE9, 0x03, 0xCA, 0x31,
0x4D, 0x25, 0xE7, 0x9A, 0xD6, 0x9E, 0xD7, 0xD7, 0x4E, 0xE8, 0x91, 0x81, 0x45, 0x9E, 0xAD, 0x12, 0xFF, 0x3E, 0x69,
0xD2, 0x25, 0x47, 0x10, 0x07, 0x8A, 0x7E, 0x45, 0xDA, 0xAA, 0x4F, 0x5D, 0xF9, 0x1C, 0x78, 0x05, 0x24, 0x21, 0x13,
0xEA, 0x18, 0x50, 0xE4, 0xCD, 0xEF, 0xD4, 0x04, 0x6F, 0xB0, 0x5F, 0xD2, 0x4D, 0x9A, 0x52, 0x17, 0xBF, 0xA2, 0x9B,
0xEE, 0x94, 0xCF, 0x9B, 0x4C, 0x38, 0x5D, 0xE3, 0x72, 0x54, 0x61, 0xA7, 0xDD, 0x7C, 0x45, 0x5F, 0x71, 0xAB, 0x6D,
0x79, 0x54, 0xFA, 0xCB, 0x40, 0x08, 0xF0, 0x0C, 0x70, 0xC6, 0x83, 0x53, 0xF2, 0x32, 0x7B, 0x54, 0xEF, 0x81, 0x3F,
0x0C, 0xF4, 0xE6, 0x92, 0x95, 0xE0, 0x37, 0x9F, 0x9C, 0x9D, 0x84, 0xA1, 0xAC, 0xFE, 0x71, 0x2E, 0x7B, 0x0C, 0x10,
0x6F, 0x2B, 0x7E, 0x92, 0xEA, 0xD5, 0x57, 0x4E, 0xFD, 0xBE, 0x52, 0x7D, 0x6F, 0x99, 0xA5, 0x03, 0xDA, 0x9C, 0x5B,
0xB2, 0xD9, 0xA1, 0xA0, 0xC9, 0x39, 0xCD, 0xDC, 0xD1, 0xA7, 0x94, 0xAF, 0xA3, 0xED, 0x23, 0xE2, 0x4D, 0x2F, 0x4C,
0x2F, 0xD8, 0x46, 0x9E, 0xB3, 0x0E, 0x98, 0xC3, 0x01, 0xAA, 0x26, 0x81, 0xAB, 0x01, 0x7F, 0x84, 0xA4, 0x3E, 0xA8,
0x91, 0xE2, 0x63, 0xA8, 0xFB, 0xE3, 0x5A, 0xC0, 0xFC, 0x90, 0xAA, 0x11, 0x99, 0xC0, 0x5C, 0x9C, 0x8C, 0xD3, 0x09,
0xA9, 0x50, 0x23, 0xEB, 0xA8, 0xCF, 0x45, 0x6C, 0xFA, 0xD6, 0x5C, 0xA0, 0x08, 0xD1, 0xA4, 0x89, 0x06, 0xDB, 0x43,
0xC5, 0xC1, 0xC9, 0xD8, 0x43, 0x95, 0xF5, 0x93, 0xEC, 0x2B, 0xA8, 0x8E, 0x29, 0xCC, 0x6F, 0x5B, 0x60, 0x8F, 0xD3,
0x79, 0xFA, 0xB4, 0x18, 0x6D, 0xB0, 0xE7, 0xB5, 0xB7, 0x0F, 0x75, 0x65, 0xDF, 0x7C, 0xDB, 0x03, 0x5C, 0x67, 0x14,
0x61, 0x53, 0x23, 0x9B, 0x6E, 0xD8, 0x1B, 0x4A, 0x6E, 0x63, 0x19, 0x69, 0xAB, 0x70, 0xA4, 0xD6, 0x31, 0x37, 0x6C,
0x9A, 0xEC, 0xE4, 0x29, 0x11, 0x96, 0x71, 0x53, 0x8E, 0x1B, 0xA6, 0x8E, 0x0F, 0x8D, 0x32, 0xEE, 0xCA, 0x99, 0xC9,
0x07, 0xA9, 0xBA, 0x04, 0xF6, 0x35, 0xB0, 0x15, 0x42, 0xC5, 0xF6, 0xBA, 0x4F, 0xBF, 0x83, 0x4B, 0x91, 0x14, 0x1F,
0xE6, 0x0E, 0x34, 0xDF, 0xD6, 0xFC, 0x11, 0xCD, 0x1F, 0xD5, 0xFC, 0xAA, 0x26, 0x63, 0x4D, 0x79, 0x16, 0x6D, 0x9B,
0xC0, 0x62, 0x6E, 0xAC, 0x45, 0x54, 0x10, 0x43, 0xB5, 0xC2, 0x51, 0x99, 0xAA, 0x6E, 0xB5, 0x02, 0xA6, 0xAF, 0x4B,
0x9A, 0xAD, 0x77, 0xE9, 0xF8, 0x04, 0xE8, 0x9C, 0xA9, 0x46, 0x8B, 0x70, 0x4B, 0xC3, 0xBD, 0xE2, 0x8F, 0x54, 0xD8,
0x17, 0x8C, 0xD3, 0xF2, 0x8A, 0x0C, 0x74, 0x18, 0x60, 0x37, 0xC8, 0x36, 0x2C, 0x63, 0x6E, 0x64, 0x6B, 0x8B, 0x2D,
0x4D, 0x8D, 0x5D, 0x59, 0xAF, 0xA7, 0x61, 0x1E, 0x91, 0x23, 0x43, 0x53, 0x0E, 0xF8, 0x90, 0x6C, 0xA3, 0xC7, 0x8D,
0x43, 0x17, 0x3B, 0x5E, 0xEE, 0x8A, 0x60, 0xD5, 0x06, 0xBD, 0x63, 0xD3, 0x67, 0x24, 0xA5, 0xE0, 0x36, 0xCB, 0xCB,
0xFA, 0xEB, 0xD6, 0xEA, 0xB5, 0x23, 0x32, 0x0A, 0xAC, 0x4B, 0x18, 0xB8, 0x98, 0x7A, 0x6E, 0x97, 0x0F, 0xAF, 0x2C,
0x66, 0xC8, 0x77, 0xFE, 0xC4, 0xAB, 0xF7, 0x35, 0xD9, 0xB5, 0x1E, 0x0E, 0x9A, 0x66, 0xC7, 0x2F, 0x70, 0x37, 0x9E,
0x65, 0x57, 0xBB, 0x00, 0x1B, 0x4C, 0x54, 0xE6, 0x4B, 0xD3, 0xA2, 0x59, 0x34, 0x76, 0x53, 0xA9, 0xCC, 0xE6, 0xA8,
0x35, 0xD5, 0x3E, 0x25, 0x63, 0xF3, 0x2D, 0xF5, 0xB7, 0xA1, 0x03, 0x66, 0x1F, 0x24, 0x56, 0x21, 0x73, 0xB3, 0xFB,
0x8A, 0x34, 0xFD, 0xD6, 0x32, 0x5B, 0x71, 0x27, 0x67, 0x58, 0xE7, 0x8D, 0x96, 0x25, 0xDD, 0x82, 0x07, 0x6A, 0x09,
0x1A, 0xD9, 0x46, 0xBA, 0x31, 0xD3, 0x0E, 0x1B, 0x63, 0x0D, 0xDE, 0xB0, 0xDA, 0xFD, 0xB6, 0x22, 0x9C, 0x7E, 0x03,
0xCC, 0x37, 0x38, 0x96, 0x93, 0x23, 0xA1, 0x4C, 0xCA, 0xDA, 0x14, 0x84, 0x80, 0xD5, 0x28, 0x98, 0xCE, 0x06, 0x68,
0xEA, 0xCF, 0xBD, 0x21, 0x65, 0xC7, 0x33, 0xB7, 0xD0, 0x36, 0xBD, 0x4B, 0x51, 0x39, 0xAB, 0x1F, 0xF9, 0xDB, 0xB8,
0x7E, 0x79, 0x4E, 0x45, 0x1C, 0x16, 0x6D, 0xE7, 0x52, 0x14, 0x2E, 0x0D, 0x69, 0xAE, 0x6B, 0x1C, 0xE9, 0x08, 0xFD,
0xB5, 0xD3, 0x1E, 0x5D, 0x3B, 0x43, 0xF4, 0xF4, 0xAF, 0x30, 0x68, 0x74, 0x02, 0x96, 0xA0, 0x02, 0xDE, 0x81, 0x7A,
0x06, 0x13, 0xF2, 0xF3, 0xAB, 0x81, 0x73, 0xF4, 0x62, 0xF7, 0x1E, 0x4F, 0x13, 0x3A, 0x8D, 0x98, 0xBE, 0x26, 0xD8,
0x9E, 0x56, 0x01, 0xC6, 0xCC, 0xEA, 0x97, 0xB5, 0x35, 0x71, 0xB9, 0xF1, 0xD2, 0xF3, 0x95, 0xD5, 0xD2, 0x43, 0xBF,
0xE4, 0xC7, 0xD9, 0x3B, 0x0A, 0xBC, 0xF0, 0xCA, 0x2C, 0x86, 0xB5, 0x60, 0x3E, 0x6B, 0xAC, 0xB2, 0xC5, 0x53, 0x3F,
0x79, 0xF1, 0xB5, 0xE7, 0x83, 0xD5, 0xC6, 0x54, 0xC4, 0x5B, 0x4C, 0x6C, 0xCF, 0x9A, 0x19, 0x76, 0x8C, 0x56, 0xC9,
0xF1, 0xB8, 0x60, 0xB1, 0x76, 0x5E, 0x54, 0xE2, 0x3C, 0x47, 0x5B, 0xF5, 0xB3, 0x9D, 0x3D, 0xA3, 0xD9, 0xE2, 0xC2,
0xAB, 0x47, 0xFE, 0x70, 0xB4, 0x01, 0xA3, 0x67, 0xE9, 0xC0, 0x14, 0x45, 0x8E, 0x1E, 0x39, 0xD3, 0xDD, 0xA7, 0xE7,
0x96, 0x9F, 0x5C, 0x99, 0xF9, 0xDA, 0x3B, 0x76, 0xA5, 0x57, 0x6D, 0xB6, 0xAA, 0xCB, 0x33, 0xD5, 0x65, 0x6A, 0xED,
0xA0, 0x03, 0x81, 0xDE, 0x11, 0x70, 0x35, 0x1B, 0x26, 0x0E, 0x95, 0x1F, 0x3D, 0x22, 0x7B, 0x93, 0xFB, 0x7F, 0x13,
0xB2, 0x73, 0x82, 0xBB, 0x46, 0x64, 0xEE, 0x3E, 0xE2, 0x1E, 0x4C, 0x50, 0x4E, 0x6F, 0xBB, 0x33, 0x6B, 0xAD, 0x42,
0x5F, 0xEB, 0x25, 0x24, 0xB2, 0x4A, 0x0F, 0x89, 0x94, 0xFA, 0x7A, 0xFD, 0x42, 0x0B, 0xEE, 0x1A, 0xA7, 0xCF, 0xAC,
0xBA, 0xB1, 0xC9, 0xFC, 0x34, 0xA7, 0x09, 0x9B, 0xFC, 0xAE, 0xC1, 0x6E, 0x54, 0xB9, 0xF4, 0x9F, 0x52, 0x66, 0xE2,
0x09, 0x68, 0xC2, 0x5B, 0x31, 0xD7, 0xE8, 0x16, 0xF6, 0xD9, 0x30, 0x9D, 0x3A, 0x66, 0x68, 0x8A, 0x0A, 0xF1, 0xE6,
0x9E, 0x0A, 0x05, 0x62, 0x74, 0x13, 0x80, 0x9D, 0x04, 0xC5, 0x14, 0xC1, 0x9F, 0x32, 0xA4, 0x85, 0x54, 0xD4, 0x5E,
0x13, 0xB9, 0x0C, 0x2C, 0x52, 0x32, 0x8E, 0xBA, 0x76, 0xA8, 0x49, 0xE2, 0x01, 0xD5, 0x94, 0x2E, 0x42, 0x3C, 0xF4,
0x9C, 0x90, 0x75, 0x93, 0x36, 0x73, 0x09, 0x2D, 0x7C, 0xFB, 0xEC, 0x59, 0xA1, 0x68, 0x81, 0x65, 0xB9, 0xB6, 0xC2,
0xC4, 0x8B, 0x37, 0xD6, 0x62, 0x47, 0xF6, 0xF0, 0x97, 0x0D, 0xB4, 0x30, 0x94, 0xC8, 0x13, 0x61, 0x8F, 0x9A, 0x74,
0xD0, 0x67, 0xE0, 0x35, 0x82, 0x81, 0x5F, 0xF6, 0x2D, 0xBE, 0x5B, 0x54, 0x15, 0x03, 0x24, 0x81, 0x13, 0x27, 0x83,
0xCA, 0x65, 0x9C, 0x26, 0xBE, 0xBE, 0x74, 0x0E, 0xCF, 0x43, 0x12, 0xE6, 0x92, 0x8E, 0xC4, 0xB7, 0xF5, 0xCF, 0x6D,
0x99, 0x28, 0xBE, 0xF5, 0xC6, 0x4D, 0x2F, 0x95, 0xA8, 0x8F, 0xF7, 0xF8, 0xFB, 0xBA, 0xA7, 0xBF, 0x7C, 0xE2, 0xF9,
0x75, 0x37, 0x37, 0x36, 0xB8, 0xB9, 0xB9, 0xEE, 0xE6, 0x2F, 0x9F, 0x78, 0xE1, 0x09, 0x44, 0xF5, 0xC4, 0xB3, 0x6D,
0xC5, 0x5B, 0x75, 0x57, 0xFB, 0x3E, 0xC1, 0x05, 0x49, 0xCE, 0xB3, 0x5D, 0x41, 0x8A, 0x44, 0xC9, 0xA0, 0xB5, 0x98,
0x49, 0x6F, 0x2F, 0x6D, 0x6A, 0x50, 0x1A, 0xA5, 0x49, 0xE9, 0xFA, 0xA5, 0x74, 0x65, 0x2C, 0x5D, 0x31, 0xD2, 0x15,
0x33, 0x5D, 0x3B, 0x91, 0x76, 0xBA, 0xB9, 0xBD, 0x68, 0x40, 0x1D, 0xED, 0x4B, 0x00, 0xF9, 0x70, 0x23, 0xF5, 0x72,
0xAF, 0x1D, 0x15, 0x82, 0x1D, 0xA6, 0x8B, 0xC9, 0xE6, 0x98, 0x74, 0xF5, 0x7F, 0xD3, 0xAE, 0xCA, 0xB0, 0x10, 0x50,
0xB9, 0x70, 0xA8, 0x73, 0xF8, 0x74, 0x9A, 0xFD, 0xF9, 0xC2, 0xF0, 0x57, 0xDC, 0xFB, 0x7B, 0xF4, 0xCF, 0x33, 0xEC,
0xEF, 0x9B, 0xF9, 0x83, 0xF2, 0xCA, 0xC9, 0x3E, 0xE9, 0x4B, 0x4C, 0x13, 0xA2, 0x5C, 0x4C, 0x1B, 0x52, 0x7B, 0x4B,
0xF8, 0x8D, 0x30, 0x57, 0x31, 0x69, 0x73, 0xC2, 0xE9, 0x8F, 0xAD, 0x8B, 0xDB, 0x0F, 0x75, 0x82, 0x34, 0xDB, 0x4C,
0xF0, 0x36, 0x2B, 0xC8, 0x99, 0x23, 0x74, 0x4E, 0xAE, 0x09, 0x2A, 0x13, 0xDF, 0xFF, 0x2D, 0x19, 0xDD, 0xDB, 0xC5,
0x9A, 0x81, 0x2E, 0x9D, 0x9E, 0x3A, 0x63, 0xFD, 0xD9, 0x5F, 0x79, 0x4A, 0x61, 0x04, 0xCB, 0x4C, 0x94, 0x98, 0xC8,
0x41, 0x52, 0xA3, 0x18, 0xC2, 0x36, 0xC4, 0xA4, 0x21, 0x6A, 0x04, 0x6C, 0x69, 0x09, 0x42, 0x84, 0xEE, 0x31, 0x57,
0xA3, 0x3B, 0xF9, 0xAA, 0x1E, 0x18, 0xBB, 0xA7, 0xDD, 0x03, 0x82, 0xEA, 0x61, 0x9A, 0xD8, 0x37, 0x17, 0xC0, 0x06,
0xCA, 0xFC, 0x46, 0xCF, 0xD8, 0xAF, 0x7B, 0xB8, 0x0B, 0xD0, 0x68, 0x7B, 0x14, 0x3E, 0x38, 0xEB, 0x48, 0xF0, 0x52,
0xB6, 0x0A, 0x83, 0x6E, 0x2D, 0xAA, 0x57, 0xA9, 0x54, 0xAA, 0xE6, 0x39, 0x9F, 0x3B, 0xF5, 0xCD, 0x85, 0x64, 0x3A,
0x45, 0x88, 0x53, 0xE6, 0x02, 0x6D, 0x45, 0x40, 0x8D, 0x79, 0x40, 0x1C, 0x6E, 0x6D, 0x32, 0x7F, 0x58, 0x91, 0x99,
0x26, 0x0C, 0x68, 0xFB, 0xB2, 0x06, 0xAD, 0x0F, 0xD5, 0xAF, 0x8B, 0x61, 0x2A, 0xE9, 0x81, 0xD4, 0xE7, 0x89, 0xC7,
0x74, 0xD7, 0x88, 0x2A, 0xDB, 0x51, 0x78, 0xB8, 0x6D, 0x64, 0x04, 0x65, 0xC7, 0x68, 0xAB, 0xC1, 0xA3, 0xC1, 0x22,
0xB9, 0xF3, 0x5B, 0x74, 0x77, 0xC7, 0x16, 0x60, 0xF9, 0x4D, 0x77, 0xFE, 0x6F, 0xF4, 0x43, 0xCF, 0x98, 0x2F, 0xCC,
0x17, 0x82, 0x0F, 0x59, 0x87, 0x99, 0x0F, 0xAC, 0x83, 0x2A, 0xB4, 0x80, 0x31, 0xA5, 0x93, 0xE6, 0x86, 0x4D, 0x44,
0xE3, 0x8B, 0xE2, 0x21, 0xC1, 0x7D, 0x16, 0x42, 0xCE, 0x7E, 0x2D, 0x1C, 0x73, 0xCC, 0xE9, 0x68, 0x8B, 0x72, 0x90,
0xE1, 0xE4, 0x8E, 0x3B, 0xF2, 0xC7, 0xA8, 0xEE, 0x06, 0x13, 0xD0, 0x2A, 0x43, 0xEB, 0xB6, 0x63, 0xEE, 0x98, 0xAD,
0x9F, 0x0C, 0x6C, 0xCE, 0xBC, 0x99, 0x26, 0x3B, 0x43, 0x56, 0x48, 0x7D, 0x42, 0x2C, 0x9D, 0x45, 0x04, 0xD7, 0xBA,
0x4C, 0x82, 0x4A, 0x70, 0xD7, 0x7D, 0x43, 0xC5, 0xE1, 0x8D, 0x87, 0xD3, 0x47, 0x4C, 0x10, 0x04, 0xA5, 0x6E, 0xCA,
0xF0, 0x89, 0x45, 0x80, 0xCC, 0x84, 0x49, 0x2E, 0x99, 0x9E, 0xDF, 0x34, 0x4C, 0xB7, 0x5C, 0x5B, 0x62, 0x32, 0xB0,
0x14, 0xC4, 0x87, 0x07, 0x0E, 0x8B, 0x14, 0x05, 0x6E, 0x7E, 0x83, 0xF8, 0xAA, 0x17, 0x81, 0x45, 0x0F, 0x40, 0x01,
0x21, 0x2E, 0x2B, 0xC2, 0x70, 0x40, 0x2C, 0x97, 0x97, 0xCE, 0x46, 0x46, 0x50, 0x60, 0x81, 0xFE, 0x66, 0x40, 0xE3,
0x01, 0x15, 0xFA, 0x54, 0xAA, 0x84, 0xB9, 0xB1, 0xB1, 0x94, 0x31, 0x7D, 0x7A, 0x97, 0xFF, 0x03, 0xD1, 0xCC, 0x28,
0x49, 0x18, 0xE7, 0x4D, 0xF7, 0xAB, 0x3E, 0xC0, 0xF6, 0x93, 0x72, 0xF6, 0x7B, 0xD3, 0xC3, 0xE9, 0xF2, 0x82, 0x28,
0x78, 0xA5, 0xA7, 0xC2, 0x52, 0xA3, 0x54, 0x01, 0x90, 0x2D, 0x19, 0x8C, 0x6B, 0x51, 0x95, 0xEC, 0x19, 0x9A, 0x6C,
0x52, 0x1E, 0x05, 0x12, 0x69, 0x96, 0x5A, 0x8E, 0xEC, 0x72, 0x19, 0xEA, 0x52, 0xCD, 0xA3, 0xF0, 0xF0, 0xDC, 0x68,
0xF1, 0x5F, 0xA5, 0xB6, 0x16, 0xDA, 0x6C, 0xCE, 0xCD, 0x95, 0xB5, 0xD3, 0x6E, 0xBA, 0xA8, 0x77, 0x2E, 0x2F, 0x43,
0x7D, 0x3E, 0xE1, 0xBD, 0x9B, 0xAE, 0x29, 0x48, 0x13, 0x96, 0x09, 0xC4, 0x01, 0xA0, 0x47, 0x10, 0x33, 0xCB, 0x70,
0x9A, 0x49, 0xF0, 0x91, 0x85, 0x75, 0xE1, 0x1E, 0x45, 0xCC, 0xA7, 0x29, 0xC8, 0x62, 0x43, 0xE0, 0xC6, 0x68, 0x16,
0xF3, 0x70, 0x12, 0x75, 0x0D, 0x1F, 0xF5, 0x13, 0xFD, 0x90, 0xA8, 0x89, 0xA4, 0xA5, 0x9F, 0x50, 0x3E, 0x4D, 0x61,
0x09, 0x8A, 0x39, 0xA7, 0xF9, 0x21, 0x9B, 0xF3, 0xB8, 0xAD, 0x56, 0x19, 0xEB, 0x8A, 0x05, 0x5A, 0x18, 0x6E, 0x07,
0xC3, 0x30, 0xAB, 0xE6, 0xD2, 0xDB, 0xF2, 0xC6, 0x2F, 0xF6, 0x55, 0xE0, 0x58, 0xA6, 0xBB, 0x2E, 0xBC, 0x95, 0x02,
0x6F, 0x51, 0x21, 0x69, 0x27, 0x45, 0xA9, 0x0F, 0x62, 0xDE, 0x92, 0x67, 0x7F, 0xB1, 0x6F, 0x4C, 0x25, 0x2D, 0x75,
0x79, 0x6E, 0xED, 0xD9, 0x71, 0x38, 0x01, 0x25, 0xA7, 0x02, 0xB2, 0x3B, 0x72, 0x22, 0x9F, 0xB9, 0x05, 0xE4, 0x55,
0x3E, 0x03, 0x1F, 0xED, 0x5C, 0xFC, 0x6B, 0xD9, 0x2B, 0x2B, 0x43, 0x35, 0xD1, 0x05, 0x41, 0xFD, 0xFF, 0x22, 0x6C,
0xB2, 0xA3, 0x94, 0x6B, 0x68, 0x2B, 0x38, 0x59, 0x47, 0x1F, 0x86, 0x44, 0x90, 0x0C, 0x11, 0xFF, 0x21, 0xEF, 0x6C,
0x47, 0x1F, 0x19, 0x99, 0x08, 0xF8, 0x2E, 0xE8, 0xF5, 0xAA, 0x65, 0x0A, 0xF6, 0x46, 0x10, 0x12, 0xB7, 0xA6, 0x88,
0x7E, 0x7C, 0x5D, 0xE9, 0xF5, 0x48, 0x31, 0x3D, 0x0D, 0x26, 0xCB, 0x7B, 0x34, 0xF8, 0x46, 0x71, 0x16, 0xCC, 0x49,
0xD0, 0xEB, 0xB1, 0xDE, 0x73, 0x8E, 0x85, 0xED, 0xB9, 0x6E, 0x5D, 0x24, 0x0E, 0xA5, 0x70, 0xA6, 0x26, 0xB1, 0x65,
0x7B, 0x56, 0x3F, 0x3D, 0x46, 0x0F, 0x9E, 0x21, 0xE3, 0x15, 0x3C, 0xE0, 0x91, 0x25, 0x54, 0x16, 0x06, 0xB2, 0xE0,
0xB5, 0x98, 0x1F, 0x3B, 0x86, 0xBB, 0xEF, 0x23, 0xDA, 0x34, 0xE4, 0x22, 0x1C, 0xE7, 0xD5, 0x94, 0x87, 0xAA, 0x56,
0x84, 0x2B, 0x4E, 0xDC, 0x7F, 0x02, 0xEA, 0x28, 0x60, 0x90, 0x23, 0xEF, 0x0D, 0x95, 0x8E, 0xEF, 0x6A, 0x07, 0xC8,
0xCB, 0x93, 0x6D, 0x7A, 0x61, 0x95, 0x75, 0x12, 0x45, 0x1E, 0xD1, 0x4D, 0x61, 0xF4, 0x40, 0x3C, 0x54, 0xF7, 0x60,
0x79, 0xB3, 0xED, 0x8D, 0x3B, 0x6E, 0xB7, 0x3E, 0xED, 0xB7, 0x1F, 0x51, 0x29, 0x03, 0x72, 0xC3, 0xF4, 0x8E, 0x03,
0xC5, 0xF0, 0xF7, 0xC4, 0x03, 0x9E, 0x03, 0xA3, 0xD6, 0xDD, 0x27, 0xFD, 0x83, 0x51, 0xE3, 0x38, 0x1A, 0xD7, 0x92,
0xA5, 0xB6, 0x99, 0x9B, 0xA1, 0xF3, 0x9C, 0x1E, 0x58, 0x71, 0xC7, 0xAE, 0x09, 0xA3, 0x2E, 0x74, 0xE8, 0xA7, 0x1F,
0xF5, 0x28, 0x7F, 0x2D, 0xE0, 0xD5, 0x1A, 0xBB, 0x60, 0x06, 0xCA, 0x4D, 0xD4, 0xAC, 0x1A, 0x9F, 0x4E, 0xB3, 0x27,
0xBD, 0x07, 0x1A, 0xD0, 0xA3, 0x4F, 0x2E, 0x1B, 0x7F, 0x19, 0x1C, 0xE4, 0xC2, 0x7C, 0x38, 0xAC, 0x5F, 0xF3, 0xF9,
0x1E, 0x0F, 0x23, 0xE1, 0x53, 0x84, 0x84, 0x13, 0x14, 0x80, 0xB0, 0x0F, 0xA3, 0x63, 0xAE, 0x56, 0x9B, 0x90, 0x1D,
0x8C, 0xF3, 0x00, 0x29, 0xE7, 0x14, 0xEB, 0xC1, 0xF0, 0x70, 0x7B, 0x68, 0xAD, 0xDF, 0xFA, 0x2F, 0xC5, 0x35, 0x40,
0x25, 0xFB, 0x07, 0x62, 0x2D, 0x82, 0x53, 0x33, 0xA8, 0xE8, 0xE3, 0x64, 0xFC, 0xA3, 0x6B, 0x1C, 0x0D, 0x8C, 0xC3,
0x5D, 0x47, 0x3E, 0x1C, 0xEE, 0x5C, 0x9A, 0x46, 0xC0, 0x84, 0xEE, 0x46, 0xD3, 0xAA, 0x6D, 0xD5, 0xB8, 0x6A, 0x3D,
0x51, 0x15, 0x96, 0xAA, 0xC0, 0x14, 0x7A, 0x50, 0x5D, 0x10, 0xFA, 0x20, 0x74, 0x42, 0x53, 0x2C, 0xB1, 0xD0, 0x1E,
0x4A, 0x57, 0xE8, 0x77, 0x85, 0xF6, 0x4B, 0xE5, 0xDE, 0x16, 0x00, 0x40, 0xFA, 0x05, 0x32, 0x0B, 0x64, 0x3B, 0xB4,
0x97, 0xB6, 0x35, 0xC9, 0xBE, 0x5D, 0xBA, 0xEB, 0x05, 0x49, 0xF9, 0xA0, 0xC4, 0x34, 0xBB, 0x5E, 0xEA, 0xA4, 0x96,
0x0F, 0x11, 0x20, 0xAD, 0x9D, 0xA6, 0x83, 0x22, 0x57, 0x36, 0xD3, 0xFA, 0x8A, 0x4A, 0xEE, 0x9A, 0x66, 0x5E, 0x3F,
0xEF, 0x36, 0xD5, 0x9F, 0x92, 0x57, 0x06, 0x66, 0x7D, 0xDB, 0x63, 0x6B, 0x8B, 0x01, 0x5C, 0x07, 0x69, 0x0B, 0x80,
0xC9, 0x5D, 0xD3, 0x63, 0x3E, 0x90, 0x19, 0x81, 0x05, 0x7B, 0x83, 0xE4, 0x0E, 0xA8, 0xD1, 0x43, 0xAD, 0x0B, 0x67,
0x98, 0x82, 0xF4, 0xB6, 0x20, 0x5C, 0x30, 0xBC, 0x86, 0xD9, 0x6F, 0x98, 0x6A, 0x53, 0xA5, 0xC1, 0x55, 0x69, 0x4B,
0x55, 0x42, 0x7E, 0xAB, 0x2C, 0x2E, 0xBA, 0xA4, 0xD4, 0x6F, 0x88, 0x95, 0x7B, 0x6F, 0x7D, 0x07, 0x3A, 0xED, 0x37,
0xD5, 0xD0, 0x10, 0x63, 0xA8, 0xA9, 0xD0, 0xF0, 0x52, 0x83, 0x77, 0xD1, 0x42, 0x8D, 0x06, 0x7B, 0x3C, 0x1E, 0x21,
0x7B, 0xBD, 0x63, 0x6D, 0x82, 0xB5, 0x9A, 0xE0, 0x5E, 0x52, 0x3B, 0x3A, 0x86, 0x37, 0x4A, 0x86, 0x8B, 0xAA, 0xAE,
0x0F, 0x75, 0xE1, 0xA1, 0xC9, 0xEE, 0x85, 0x0A, 0x43, 0x89, 0x84, 0x53, 0xAA, 0x16, 0x01, 0xA5, 0x82, 0x8C, 0x44,
0x8D, 0x33, 0x1C, 0x4D, 0x6A, 0x10, 0x8E, 0x32, 0x11, 0x71, 0xEE, 0xCD, 0x9A, 0x32, 0x07, 0x67, 0xE8, 0x9B, 0x6A,
0xEB, 0x62, 0xEB, 0xFA, 0x7E, 0x82, 0x2A, 0x0D, 0x33, 0x28, 0x8E, 0x8E, 0x8E, 0x0C, 0xEB, 0xBB, 0x99, 0x7B, 0x16,
0x11, 0xB5, 0x94, 0x87, 0x4E, 0x96, 0x61, 0x7D, 0x29, 0xA0, 0x4F, 0x9C, 0x42, 0xF5, 0x12, 0x7F, 0xB9, 0x8F, 0xC0,
0x46, 0x1F, 0x50, 0x4E, 0x16, 0x9C, 0x90, 0xEE, 0xA2, 0x10, 0x83, 0x78, 0x4F, 0x8A, 0xF5, 0xBE, 0xCC, 0xAA, 0xB5,
0x5E, 0x62, 0x95, 0x39, 0x20, 0x13, 0x6E, 0xCB, 0xFD, 0x07, 0xDD, 0x34, 0x8C, 0xAC, 0xA9, 0x70, 0x9D, 0x03, 0x61,
0x24, 0xB9, 0xFC, 0x04, 0x68, 0x63, 0xD2, 0xA6, 0xEA, 0x38, 0x45, 0x5C, 0x0B, 0x21, 0xC7, 0xD9, 0x79, 0x78, 0x05,
0x0C, 0x41, 0x74, 0x7C, 0x43, 0x13, 0x31, 0x69, 0x31, 0x95, 0xD9, 0x37, 0x20, 0x1E, 0xC3, 0x4A, 0x31, 0x95, 0x43,
0x48, 0x79, 0xDA, 0xE5, 0xE2, 0x36, 0xA3, 0x7D, 0x58, 0x23, 0x50, 0x83, 0xC3, 0xFD, 0xF9, 0x8D, 0x8D, 0x6C, 0xA7,
0x6F, 0xFA, 0x63, 0x5C, 0x17, 0x8D, 0x92, 0x31, 0x07, 0x71, 0xA7, 0xBF, 0x8E, 0x2C, 0x73, 0x67, 0xFF, 0x9F, 0x40,
0x30, 0x49, 0xE6, 0xB9, 0x6F, 0x20, 0xD5, 0x28, 0xC8, 0x60, 0x52, 0x4D, 0xD3, 0x65, 0x27, 0xE1, 0x5E, 0x76, 0x42,
0x2A, 0xF0, 0x1D, 0x05, 0x53, 0xDE, 0x25, 0xFD, 0xBA, 0x4F, 0xB3, 0x05, 0x3C, 0x18, 0xB3, 0xD0, 0x0C, 0x4E, 0xA8,
0x1C, 0x18, 0xFC, 0x96, 0x64, 0x49, 0xB4, 0x43, 0xDF, 0x25, 0xCA, 0xA9, 0x51, 0x7A, 0xC0, 0x03, 0x20, 0x2D, 0x82,
0x56, 0xBC, 0x2A, 0xC6, 0xB9, 0xA1, 0x84, 0xDE, 0x5E, 0x45, 0x66, 0x34, 0xF4, 0xA5, 0xBD, 0x0B, 0x2A, 0xC0, 0xE7,
0xE8, 0x0E, 0x6F, 0x79, 0x42, 0x48, 0x91, 0x41, 0x41, 0x2A, 0x1A, 0x08, 0x14, 0x67, 0xE0, 0xAD, 0x1D, 0x7A, 0x23,
0x8C, 0x26, 0x46, 0x48, 0x4C, 0x30, 0x12, 0xB8, 0x7C, 0xE8, 0x05, 0x82, 0x99, 0x14, 0x01, 0x62, 0x69, 0xE9, 0x80,
0x7E, 0xD8, 0xE7, 0x06, 0xD9, 0x08, 0x07, 0x65, 0x26, 0x7C, 0xCE, 0xCE, 0xC6, 0xAC, 0x1F, 0xAA, 0x49, 0x0C, 0x34,
0x70, 0x40, 0x90, 0xCD, 0x43, 0x0D, 0xB5, 0xDE, 0x43, 0x5B, 0x37, 0x8D, 0x1A, 0xCC, 0x85, 0xF2, 0xDA, 0x01, 0xA9,
0x36, 0x30, 0x05, 0x52, 0xB1, 0x05, 0x28, 0xF7, 0xA1, 0x32, 0x9D, 0xA3, 0xB1, 0x72, 0xB2, 0x61, 0xB4, 0xEB, 0xDC,
0xE7, 0x26, 0x67, 0x57, 0x5E, 0x03, 0xCC, 0xFE, 0x3B, 0x18, 0x19, 0xA7, 0x53, 0xC1, 0xA6, 0x71, 0x70, 0xD8, 0x7F,
0xB2, 0x89, 0x91, 0x7F, 0xFF, 0xCA, 0xCD, 0xCE, 0x4D, 0x7D, 0xE4, 0xAE, 0xCA, 0x3C, 0x5A, 0xE6, 0xAA, 0x8F, 0x50,
0x5D, 0xB4, 0x3B, 0xD1, 0x4C, 0x68, 0xD8, 0x74, 0x86, 0x1E, 0x50, 0x3E, 0x52, 0xD5, 0x82, 0xB4, 0xEA, 0x2E, 0x37,
0x38, 0x41, 0x7D, 0x38, 0x12, 0x0E, 0x60, 0x23, 0xD9, 0xC9, 0x95, 0x74, 0xA4, 0x6B, 0x55, 0x76, 0x5A, 0xD8, 0x55,
0x3C, 0xBD, 0x19, 0xE1, 0xEC, 0xC4, 0x97, 0xE0, 0x0D, 0x69, 0x24, 0x04, 0xA5, 0xB5, 0xDF, 0xFC, 0xE9, 0x15, 0x24,
0xEE, 0x62, 0xFC, 0x3B, 0xC9, 0x66, 0xA8, 0x72, 0x0A, 0x23, 0x82, 0x1C, 0xC0, 0x6A, 0x98, 0xB2, 0x4B, 0x9B, 0x61,
0xD2, 0x3A, 0x99, 0xD3, 0xA3, 0x13, 0x66, 0x01, 0x32, 0x6C, 0xAF, 0x92, 0xC7, 0xB3, 0x1A, 0xB5, 0xC1, 0x1E, 0x48,
0x4E, 0x4F, 0x00, 0xE2, 0xC8, 0xD3, 0x32, 0xD4, 0x40, 0x53, 0xC5, 0xC9, 0x1F, 0xFF, 0x31, 0xB2, 0x32, 0xE8, 0xE1,
0xB5, 0x7D, 0x83, 0x2C, 0x40, 0x65, 0x5D, 0xB5, 0x44, 0x19, 0x74, 0x81, 0x0A, 0x38, 0x9E, 0x0A, 0x32, 0x48, 0x56,
0x93, 0x3A, 0x78, 0x1D, 0xA7, 0xD4, 0x70, 0x2E, 0x18, 0xA9, 0xCB, 0xEE, 0xD8, 0x5E, 0xB5, 0xB8, 0xD1, 0x26, 0x4D,
0x42, 0xFD, 0x7B, 0xB0, 0xAB, 0xF6, 0xFE, 0x1D, 0x4F, 0x1A, 0x52, 0x91, 0xC7, 0xC7, 0xC3, 0x86, 0x8A, 0x58, 0xC3,
0xEE, 0xBB, 0x41, 0xFE, 0xFF, 0x63, 0x3B, 0x8A, 0xEE, 0x56, 0x01, 0x6E, 0x74, 0xC0, 0xBC, 0xDA, 0xC2, 0xED, 0xB6,
0x91, 0xFF, 0xED, 0x65, 0x9D, 0xF7, 0xE5, 0x7F, 0x85, 0x5B, 0xF9, 0x9F, 0xB3, 0x21, 0xFF, 0x5B, 0x1D, 0xE4, 0x7F,
0x5B, 0x87, 0xD8, 0x61, 0xBF, 0x38, 0xC3, 0x1E, 0xA1, 0xAF, 0x06, 0x46, 0x15, 0x11, 0xC9, 0x5C, 0xA3, 0x66, 0xCD,
0x74, 0xA3, 0x10, 0x1E, 0x64, 0x2B, 0x76, 0x83, 0x6A, 0x70, 0xCD, 0x20, 0x51, 0xDD, 0x9D, 0xE9, 0xDC, 0x88, 0x78,
0x48, 0xBB, 0x61, 0x64, 0x72, 0xA3, 0x8D, 0x12, 0xF9, 0xE3, 0xB4, 0x57, 0x5F, 0x9C, 0x37, 0x64, 0x60, 0x78, 0x1B,
0xCA, 0xAE, 0xC0, 0x1C, 0x14, 0x2D, 0xE0, 0x5A, 0x60, 0x69, 0xFD, 0x49, 0x95, 0xA2, 0x55, 0x93, 0x15, 0x7E, 0x06,
0x03, 0x8E, 0xD2, 0xC5, 0x1C, 0x8E, 0x2C, 0x8E, 0x52, 0xA9, 0x31, 0x09, 0x61, 0x99, 0xDB, 0x4A, 0xDB, 0x32, 0x2A,
0xBE, 0xB0, 0x53, 0x20, 0x6D, 0xC8, 0x27, 0x50, 0xF6, 0x1E, 0x8F, 0xBD, 0x0A, 0xC2, 0x06, 0x5F, 0x63, 0xF2, 0x7B,
0xA4, 0xBC, 0x08, 0xB2, 0x06, 0x57, 0x83, 0xAA, 0x2F, 0x08, 0xD8, 0x5C, 0x39, 0xBF, 0x03, 0x07, 0x86, 0x86, 0x9D,
0x1F, 0x24, 0x5B, 0xFA, 0x51, 0x7A, 0x49, 0xE4, 0x1A, 0x3C, 0xC7, 0x92, 0xB0, 0x10, 0x72, 0x9B, 0x5D, 0xA0, 0x2E,
0x9C, 0xDF, 0x71, 0x87, 0xE8, 0x13, 0x75, 0x70, 0x4C, 0x85, 0x02, 0x28, 0x51, 0x45, 0xB6, 0xF0, 0x78, 0x45, 0x72,
0x0B, 0xAA, 0x83, 0x95, 0xA4, 0x03, 0x73, 0x43, 0x07, 0x67, 0x80, 0x9C, 0x0C, 0xE8, 0x1A, 0x28, 0xA6, 0x1D, 0xDA,
0x11, 0x4F, 0x81, 0xD7, 0xCD, 0x41, 0xD9, 0x79, 0x76, 0xFE, 0x5E, 0xD1, 0x6E, 0x29, 0xFC, 0xE7, 0x36, 0x00, 0x1D,
0x09, 0x81, 0xEE, 0xFE, 0x07, 0xDB, 0x31, 0x32, 0xFF, 0xE2, 0xF9, 0x53, 0x37, 0x29, 0xA7, 0x85, 0xC6, 0x2D, 0x5D,
0xED, 0x20, 0x7B, 0x74, 0x5C, 0xEE, 0x3B, 0xC2, 0x0A, 0xEA, 0xA2, 0x10, 0x3C, 0x1D, 0x4C, 0x05, 0x5F, 0x0F, 0x6B,
0xE1, 0x53, 0xD1, 0x5A, 0x58, 0xED, 0x5D, 0x0D, 0x5B, 0x6D, 0x54, 0xE7, 0x62, 0xD8, 0x2A, 0x74, 0xC2, 0x96, 0xD5,
0x89, 0x62, 0x3E, 0x1D, 0xC5, 0x2A, 0x54, 0x13, 0x28, 0x37, 0x19, 0xAC, 0x5A, 0xE1, 0x04, 0xC4, 0xCF, 0xEC, 0xD0,
0x0E, 0x85, 0x7C, 0xB7, 0x3F, 0x8B, 0xDB, 0x5E, 0xF9, 0xFC, 0xAB, 0x3F, 0xFD, 0xD1, 0x51, 0xE7, 0x1B, 0xB9, 0xD9,
0x99, 0xF0, 0x0A, 0x14, 0x85, 0x80, 0x27, 0xD1, 0x58, 0x92, 0xE2, 0xD1, 0x5F, 0xAC, 0xE4, 0x5E, 0x3A, 0x3D, 0xF6,
0xD5, 0x73, 0x5F, 0x50, 0xFD, 0x2F, 0x6C, 0x27, 0xEB, 0xFB, 0xA4, 0xF5, 0x37, 0x68, 0x51, 0xD5, 0x18, 0x98, 0xDF,
0x42, 0xE4, 0x47, 0x6A, 0x75, 0x8C, 0xF4, 0xB3, 0x3E, 0x85, 0x36, 0xCD, 0x70, 0x37, 0x0F, 0xCB, 0xBA, 0x55, 0x43,
0xCA, 0x69, 0x29, 0xAF, 0x84, 0x54, 0x6D, 0x11, 0xF7, 0x46, 0x19, 0xF9, 0x65, 0x68, 0x9F, 0x2D, 0xB7, 0xF4, 0xFD,
0x75, 0x5A, 0x8B, 0x6C, 0x73, 0xDA, 0xAD, 0xA8, 0x5D, 0x92, 0x52, 0xD9, 0xEC, 0xAC, 0xC6, 0x05, 0x29, 0x4E, 0x3C,
0xCE, 0x4E, 0x26, 0x16, 0xC8, 0xEE, 0x5C, 0xEF, 0xC5, 0x4C, 0x88, 0x53, 0x41, 0xE4, 0x9A, 0x47, 0xA5, 0x90, 0xF2,
0x63, 0xC4, 0x99, 0x30, 0xBC, 0x48, 0xF7, 0x33, 0x4A, 0x02, 0xD7, 0xD5, 0x96, 0x8E, 0x84, 0xFE, 0x5D, 0x11, 0xD4,
0xE5, 0xE6, 0xAE, 0x30, 0xBA, 0xE7, 0x96, 0x33, 0x7D, 0xD4, 0x5E, 0x4C, 0xB2, 0x83, 0x02, 0xCF, 0x74, 0xE4, 0x0D,
0x88, 0x69, 0x25, 0xAE, 0x40, 0xF1, 0xF4, 0xA2, 0x22, 0x8C, 0x39, 0xB5, 0x9B, 0xCF, 0xA5, 0xA7, 0x05, 0x48, 0x27,
0xB8, 0x0A, 0x8D, 0x55, 0x16, 0x28, 0xA7, 0x40, 0x88, 0x03, 0xB9, 0xF8, 0x11, 0x48, 0xF8, 0xA8, 0xC0, 0xE7, 0xDB,
0x0B, 0xC1, 0xAE, 0x5B, 0x01, 0x5F, 0x8A, 0xB2, 0xB6, 0x29, 0x46, 0x8A, 0xC6, 0xCF, 0xFB, 0x65, 0xD6, 0xFF, 0x97,
0x32, 0x02, 0x77, 0xD9, 0x14, 0x34, 0xD5, 0xBE, 0x31, 0x04, 0x00, 0xF5, 0xCC, 0xB7, 0x2E, 0xC0, 0xBB, 0xB6, 0xE8,
0x87, 0x2E, 0x0B, 0x4B, 0x0C, 0xBA, 0x5F, 0xFF, 0xBD, 0x07, 0x03, 0x88, 0x7F, 0xB8, 0x3F, 0xB9, 0xB8, 0xFC, 0x6C,
0x5B, 0x62, 0x19, 0x54, 0x28, 0x98, 0x30, 0x97, 0xA8, 0x70, 0x5B, 0xFB, 0x17, 0x3C, 0xBE, 0x5B, 0xF7, 0xB2, 0x0F,
0x2E, 0x9D, 0xEE, 0x3F, 0x5B, 0x56, 0x8A, 0xCC, 0xD9, 0xE5, 0xC9, 0x58, 0xEF, 0xBB, 0x16, 0x92, 0xA1, 0x70, 0xC7,
0xA3, 0x1E, 0xFC, 0x50, 0x3B, 0xB9, 0x18, 0x3B, 0x97, 0x3B, 0x6E, 0x69, 0xC4, 0x84, 0xBE, 0x54, 0x0F, 0x5D, 0xB2,
0xE4, 0xE1, 0xCF, 0x46, 0x08, 0x02, 0xFA, 0xCF, 0x97, 0x6E, 0x5E, 0x9E, 0x11, 0xE9, 0xEC, 0x58, 0xB2, 0x1D, 0x62,
0x67, 0x00, 0xF4, 0xFB, 0x77, 0xBE, 0x6B, 0x4A, 0x90, 0x94, 0x23, 0xF5, 0xDF, 0xEF, 0x2A, 0x40, 0xA6, 0xEF, 0x59,
0xEA, 0xF4, 0x9F, 0x2F, 0x32, 0x4F, 0x34, 0x8C, 0xEE, 0x07, 0x5B, 0x79, 0x4A, 0xA4, 0x4B, 0x19, 0x2E, 0x8F, 0x9C,
0x0A, 0x16, 0x1E, 0xA3, 0x2D, 0x48, 0xA4, 0xF4, 0x40, 0xE9, 0x0E, 0xBE, 0x81, 0xC0, 0xBA, 0x16, 0xF3, 0x99, 0x08,
0xAB, 0xF8, 0x16, 0x5F, 0x47, 0x57, 0x91, 0x8F, 0x5C, 0xB0, 0x15, 0x73, 0x7A, 0xE8, 0x28, 0x1C, 0x70, 0x57, 0x42,
0x62, 0xEA, 0x1B, 0x13, 0x91, 0x08, 0x21, 0x0B, 0xD2, 0xAB, 0xBE, 0xE4, 0x5B, 0x17, 0x63, 0x69, 0xC4, 0x4E, 0x27,
0xA6, 0x1D, 0x59, 0xA2, 0x99, 0x49, 0xB0, 0xE6, 0xE4, 0xBB, 0x83, 0xFC, 0xDF, 0xF6, 0xAE, 0xDA, 0xEF, 0xDD, 0xBB,
0x9A, 0xB1, 0xC7, 0xF9, 0x1F, 0x1C, 0x86, 0xFB, 0x7F, 0xF4, 0xDE, 0xFC, 0xA7, 0x86, 0xCD, 0x23, 0x9D, 0x37, 0x12,
0x15, 0xB6, 0x79, 0x41, 0x89, 0x48, 0x8F, 0x26, 0x94, 0xCC, 0x01, 0x3B, 0x8F, 0x87, 0xA6, 0xFA, 0xBE, 0x1E, 0xDF,
0xFD, 0x38, 0xD9, 0xEA, 0x67, 0x26, 0x33, 0x44, 0x23, 0xD0, 0xFF, 0x63, 0x35, 0xA7, 0xA7, 0xFE, 0x74, 0xF7, 0xBE,
0x7A, 0x8C, 0x6F, 0x9A, 0xBA, 0x0F, 0xD9, 0xBF, 0x8C, 0x04, 0x3D, 0xB5, 0x7D, 0x1C, 0x7F, 0x51, 0xCB, 0x36, 0x04,
0xB4, 0x78, 0xEB, 0x02, 0x6B, 0xDF, 0xFB, 0xB7, 0xEF, 0xAD, 0x3B, 0x6F, 0xDF, 0xD3, 0xDD, 0x3C, 0xB1, 0xFE, 0x9D,
0xF7, 0xD1, 0x3E, 0x35, 0x0C, 0xF1, 0x4C, 0xCE, 0xFA, 0x52, 0x47, 0xF4, 0xCC, 0xC7, 0xFC, 0x45, 0x21, 0x3B, 0xCC,
0x77, 0x77, 0x5E, 0x0D, 0x3F, 0x34, 0xFD, 0xD6, 0x45, 0x40, 0x48, 0x51, 0xEF, 0xBF, 0x27, 0x59, 0xE6, 0xFF, 0xC3,
0x36, 0x7D, 0x9E, 0xF3, 0xDD, 0xB7, 0xF6, 0x29, 0xB4, 0x9E, 0x7E, 0x36, 0xF0, 0xD3, 0x65, 0xF6, 0x38, 0xAD, 0xD2,
0x83, 0x7E, 0x66, 0x6A, 0x09, 0xF9, 0x67, 0xDD, 0xD5, 0x4E, 0xB8, 0x48, 0x77, 0xC7, 0x69, 0x39, 0xC9, 0x84, 0xF3,
0x6D, 0xD9, 0xFF, 0x31, 0xE5, 0x91, 0x12, 0xD7, 0xA8, 0x55, 0xD8, 0x90, 0x09, 0x6F, 0xEE, 0x22, 0x09, 0x2E, 0xB1,
0xD3, 0x6E, 0xAE, 0x2E, 0x71, 0x2A, 0xB1, 0xCE, 0xE5, 0x2E, 0x62, 0x5E, 0xC1, 0xDB, 0xFC, 0xB0, 0x67, 0x1E, 0x11,
0x7C, 0xCE, 0xDF, 0xC8, 0x40, 0x1F, 0xB3, 0xD1, 0x3C, 0x07, 0x46, 0x77, 0xDE, 0xB3, 0xFE, 0xD4, 0x87, 0xF6, 0xF1,
0x58, 0x96, 0x96, 0x6D, 0x8A, 0x67, 0xD7, 0x93, 0xED, 0x8F, 0xBD, 0x95, 0xBC, 0x7D, 0x98, 0x9D, 0x0D, 0xA7, 0x06,
0x09, 0x31, 0xC4, 0xB7, 0xDA, 0xCB, 0xB2, 0xC1, 0xE8, 0x48, 0x41, 0xF5, 0x93, 0x54, 0x45, 0x4A, 0xDA, 0xF6, 0xE8,
0x6E, 0x5D, 0x0E, 0x76, 0x5C, 0x3E, 0xDE, 0x2F, 0x06, 0xB2, 0x3B, 0x74, 0xDB, 0xA3, 0x3E, 0xDE, 0x7E, 0xE2, 0xA7,
0x86, 0x31, 0xCB, 0x29, 0x6B, 0xB0, 0x0D, 0x43, 0xD9, 0x22, 0xC4, 0x52, 0x25, 0x63, 0xBA, 0x61, 0x68, 0x9C, 0x21,
0x27, 0x80, 0xDF, 0x73, 0x41, 0x8A, 0x89, 0x8D, 0x10, 0x34, 0x0C, 0x25, 0x93, 0x32, 0xB5, 0x77, 0xB9, 0xF2, 0xE3,
0x76, 0xA2, 0x79, 0x9B, 0x81, 0x75, 0x7D, 0x7E, 0x78, 0x7D, 0x2D, 0x69, 0xBB, 0xE6, 0xAB, 0xC4, 0xD4, 0x33, 0x0E,
0x83, 0xFE, 0x11, 0xEE, 0x6C, 0xC2, 0x8C, 0x20, 0x14, 0x54, 0x77, 0x50, 0xB0, 0x98, 0x14, 0x44, 0x33, 0x7A, 0xD4,
0xD4, 0xF3, 0xAE, 0x86, 0x8C, 0xE6, 0x24, 0x12, 0xA0, 0x8D, 0x56, 0x44, 0xD7, 0x3E, 0xF2, 0x29, 0x2D, 0xB0, 0xC9,
0x4E, 0x11, 0x7A, 0x27, 0xA8, 0x1D, 0x64, 0x8D, 0xAA, 0x47, 0x8C, 0x13, 0x39, 0xA1, 0x8A, 0x4B, 0x81, 0xDA, 0xBE,
0xE0, 0x83, 0x64, 0xC4, 0xCE, 0x70, 0xF3, 0xD4, 0xB7, 0x16, 0x06, 0x9B, 0xA8, 0xB7, 0x7E, 0xD6, 0x78, 0x5C, 0x5B,
0xA5, 0xA7, 0x82, 0x9A, 0x23, 0x0F, 0xDF, 0x18, 0xFC, 0xAC, 0x61, 0x78, 0xD9, 0x2D, 0xB6, 0x35, 0x99, 0x58, 0x65,
0x13, 0x8D, 0x6C, 0x49, 0x8E, 0xD1, 0xD4, 0x97, 0x8D, 0x5F, 0x2B, 0x0F, 0xFE, 0xD0, 0xDF, 0x14, 0x23, 0xCC, 0x49,
0x53, 0xE3, 0x73, 0xBA, 0x3E, 0x43, 0xA2, 0x55, 0xA4, 0x80, 0x79, 0x1C, 0x19, 0x0B, 0x78, 0xFE, 0xA4, 0x4F, 0x4A,
0x21, 0x6C, 0x3E, 0xBC, 0xB0, 0x71, 0xF8, 0x9F, 0xF8, 0xE7, 0x8B, 0x75, 0x2C, 0x8B, 0xDB, 0x4D, 0x7C, 0xC4, 0x76,
0x69, 0xE2, 0x5E, 0x6A, 0xA7, 0x01, 0x90, 0x32, 0xBD, 0x65, 0x02, 0xD2, 0x48, 0xBB, 0xE6, 0x2B, 0x9C, 0x25, 0xF1,
0x37, 0xA9, 0x20, 0x0D, 0xFD, 0x7A, 0x40, 0xC6, 0x9B, 0x91, 0x4A, 0x2A, 0xA8, 0xE0, 0xD6, 0x9B, 0x35, 0x2A, 0x00,
0xAC, 0xE6, 0x25, 0xF5, 0xFC, 0x7D, 0x3A, 0x35, 0x72, 0x74, 0x56, 0x68, 0xAF, 0x2B, 0x93, 0x20, 0xA2, 0xD6, 0x5D,
0x68, 0x93, 0xBC, 0xA5, 0x05, 0x85, 0xC1, 0x7F, 0x22, 0xFC, 0x0F, 0xAD, 0x57, 0x4F, 0x6C, 0x1C, 0x57, 0x1D, 0xFE,
0xDE, 0xBC, 0x74, 0x5F, 0xEC, 0xB1, 0x3D, 0x16, 0xE2, 0x90, 0x92, 0x8D, 0xC7, 0x48, 0x41, 0xB2, 0x2A, 0xC7, 0x1B,
0x81, 0x81, 0x05, 0xAD, 0xBD, 0xAF, 0x8D, 0x90, 0x0F, 0x5C, 0x2A, 0xC4, 0x81, 0x03, 0x12, 0x8B, 0xE8, 0x01, 0xA4,
0x48, 0x59, 0x09, 0x1F, 0x0C, 0x6C, 0xE2, 0xD7, 0xE4, 0x10, 0xA1, 0x08, 0xE2, 0x0B, 0x1C, 0x2A, 0x21, 0x59, 0xA8,
0x87, 0x48, 0x01, 0x39, 0x07, 0x1F, 0x72, 0x70, 0xEC, 0x71, 0x7C, 0x88, 0xDA, 0x02, 0x9D, 0xAA, 0x87, 0x1E, 0xE8,
0x61, 0x68, 0x22, 0x0E, 0x36, 0x95, 0x86, 0xB2, 0x28, 0x8B, 0x99, 0xF8, 0xF1, 0xBD, 0x99, 0x5D, 0xDB, 0xA9, 0x52,
0xD7, 0x76, 0x79, 0x1A, 0x7B, 0x34, 0xF6, 0xBC, 0xF7, 0xFD, 0xBE, 0xEF, 0xF7, 0x77, 0x30, 0x01, 0x04, 0x11, 0x54,
0x1B, 0xF2, 0x2F, 0xC0, 0xC3, 0x08, 0xCB, 0xB3, 0xA8, 0x05, 0x18, 0x91, 0xB1, 0xAF, 0xE7, 0x64, 0x1C, 0x0A, 0x6B,
0x63, 0x6B, 0xB3, 0x16, 0xC2, 0x0A, 0x64, 0x82, 0x62, 0x3D, 0x0F, 0xF8, 0xBA, 0xFB, 0x58, 0x6F, 0x06, 0x4B, 0x17,
0xA2, 0xE5, 0x49, 0x35, 0x83, 0x6A, 0x53, 0x5E, 0xC7, 0xCA, 0xF4, 0xDA, 0x7D, 0x9B, 0xF9, 0x7F, 0x8F, 0xF2, 0x37,
0xCF, 0xC1, 0x4B, 0xF0, 0x02, 0xDC, 0x85, 0x05, 0x60, 0x11, 0x18, 0xC6, 0xBE, 0x75, 0x97, 0xFB, 0x81, 0x30, 0x46,
0x50, 0x85, 0xBC, 0x09, 0xEF, 0x9D, 0x18, 0x69, 0x0D, 0x73, 0x81, 0x3E, 0x27, 0x92, 0x40, 0xB7, 0x94, 0xB5, 0x17,
0xAC, 0xFD, 0x67, 0x8A, 0xD6, 0x0A, 0x02, 0x23, 0x16, 0xF0, 0x39, 0x8D, 0x51, 0x9C, 0x28, 0xF6, 0xCA, 0xC7, 0xD8,
0x6E, 0xD7, 0xFC, 0x0B, 0x7A, 0xD6, 0xC1, 0x56, 0x9B, 0xFE, 0xC6, 0x56, 0x56, 0xB1, 0xD1, 0xEA, 0x45, 0x08, 0x40,
0x10, 0x9E, 0xE6, 0xCD, 0xC2, 0xBD, 0x4D, 0x5B, 0xD5, 0x1D, 0x94, 0x64, 0x0F, 0x95, 0x26, 0x21, 0x03, 0xE6, 0x35,
0x6A, 0x09, 0x86, 0x6A, 0xF0, 0x67, 0xB4, 0x8C, 0x52, 0x91, 0x4C, 0x61, 0x59, 0x99, 0x29, 0x91, 0x86, 0xF6, 0x49,
0x60, 0xED, 0x83, 0x48, 0x7C, 0x94, 0x62, 0x1A, 0x68, 0x62, 0xC8, 0x9D, 0xE7, 0x60, 0xCF, 0x40, 0xDE, 0xC1, 0x7A,
0x74, 0x10, 0xED, 0x06, 0xCF, 0x8F, 0x81, 0xFE, 0x19, 0x1A, 0xF1, 0x0F, 0xA0, 0xD1, 0xDC, 0x4F, 0x96, 0x4A, 0x8B,
0x27, 0x70, 0xB0, 0x64, 0xEB, 0xA4, 0x0E, 0x64, 0xE4, 0x70, 0x49, 0x97, 0x5A, 0x63, 0xDE, 0xB6, 0x09, 0xBC, 0x4E,
0xBE, 0x4E, 0x6C, 0x2A, 0x55, 0xE3, 0x16, 0x0D, 0x0C, 0xE6, 0x32, 0xBD, 0x13, 0x15, 0x7A, 0x93, 0xB6, 0x8C, 0x96,
0xA5, 0x9E, 0x55, 0xA8, 0xE6, 0xD7, 0x8A, 0xDC, 0xCA, 0x3C, 0x9B, 0x81, 0xD4, 0x9D, 0xCE, 0x51, 0x2E, 0x35, 0xD7,
0x38, 0x30, 0x12, 0xE1, 0x54, 0xB9, 0x67, 0x80, 0x6F, 0x20, 0xD3, 0xDC, 0x80, 0x7F, 0x19, 0x54, 0x53, 0x9C, 0x3B,
0xE3, 0xF0, 0x95, 0x69, 0x7B, 0xF1, 0x08, 0xDA, 0x2A, 0x22, 0x7C, 0xDD, 0xDA, 0x10, 0xEA, 0xAD, 0x08, 0x1D, 0x94,
0x80, 0x01, 0x48, 0x4D, 0xDA, 0x29, 0xBE, 0x66, 0x4E, 0x96, 0x0E, 0x94, 0x7C, 0xF1, 0x65, 0x7C, 0x65, 0x14, 0xA7,
0x5A, 0x39, 0xCE, 0xC9, 0x1C, 0xCA, 0x9F, 0x43, 0x49, 0xE8, 0x23, 0xE3, 0xFA, 0xDF, 0xC2, 0x9F, 0x16, 0xCA, 0x35,
0xB7, 0x4F, 0x63, 0x04, 0x6A, 0x0E, 0x66, 0xE1, 0x93, 0x71, 0xB9, 0x14, 0x72, 0xEF, 0xAA, 0x63, 0x7A, 0x37, 0x5F,
0x0C, 0x2D, 0x2C, 0xA3, 0xFB, 0x58, 0x76, 0xD6, 0x1E, 0xEC, 0xE4, 0xA7, 0x62, 0x9B, 0x71, 0xE5, 0x19, 0x20, 0x7E,
0x3A, 0xB6, 0xFB, 0x3C, 0x23, 0xB6, 0x23, 0x17, 0xDB, 0x7B, 0xEB, 0x68, 0x0E, 0xC8, 0x4F, 0x5E, 0x74, 0xCE, 0xEF,
0x12, 0x33, 0x8D, 0xE0, 0x8F, 0x8E, 0xD7, 0xC1, 0xD1, 0x5F, 0x38, 0xDE, 0xC5, 0xE0, 0x89, 0xDE, 0xCE, 0xB3, 0xFD,
0x50, 0x5B, 0xE8, 0x6D, 0x2D, 0xD6, 0x51, 0xF3, 0xFE, 0x8E, 0x3B, 0x52, 0x14, 0x7B, 0xC7, 0x4A, 0xD8, 0x8E, 0xB9,
0x15, 0x07, 0x17, 0x00, 0x96, 0x89, 0x13, 0x94, 0xAA, 0xF1, 0x7F, 0x16, 0x46, 0x75, 0x5C, 0x3A, 0x56, 0x99, 0x95,
0x7B, 0x6B, 0xCF, 0xA2, 0x03, 0x62, 0x54, 0xE3, 0xA7, 0xBB, 0x31, 0x8A, 0x5C, 0x9E, 0x31, 0x0A, 0x73, 0xFB, 0xB3,
0x08, 0xE3, 0xBF, 0xC8, 0x68, 0x3D, 0x55, 0x83, 0x2E, 0xE2, 0x95, 0x66, 0x6C, 0x1E, 0x42, 0x18, 0x57, 0x0C, 0xC7,
0x10, 0xFE, 0x21, 0x67, 0x7C, 0xCC, 0x6A, 0xD8, 0xDD, 0xF3, 0x8A, 0x8B, 0xC3, 0xE2, 0xF1, 0xF0, 0xF1, 0xE1, 0x5C,
0x39, 0x01, 0x6F, 0xD1, 0x65, 0x8F, 0xCD, 0xE6, 0x77, 0x66, 0x34, 0xA3, 0xDF, 0xCF, 0x7F, 0xD9, 0x68, 0x2D, 0xF3,
0xBB, 0x8F, 0xD6, 0xDE, 0xB4, 0x99, 0xB5, 0xCE, 0xDE, 0x45, 0x84, 0x10, 0x29, 0xBC, 0x0E, 0xDA, 0xCD, 0x31, 0xEF,
0xDA, 0x6B, 0xD9, 0xFC, 0xE6, 0x75, 0xD0, 0x07, 0xB2, 0x7D, 0x2A, 0xB0, 0x51, 0xE5, 0x51, 0x61, 0x4C, 0xEA, 0xAA,
0xD5, 0xEB, 0x10, 0xAF, 0xBB, 0x84, 0x68, 0xF4, 0x68, 0xCD, 0xDB, 0x07, 0xF6, 0xD1, 0x2C, 0x7A, 0xA7, 0xF2, 0x7C,
0x1B, 0x75, 0xE1, 0x02, 0xDB, 0xB1, 0xF6, 0x6D, 0x9B, 0x71, 0x87, 0x30, 0x2C, 0xED, 0x7B, 0xAB, 0x62, 0x82, 0x19,
0xCF, 0x8C, 0x7D, 0x63, 0xE9, 0xC1, 0xCE, 0xAD, 0x26, 0xA4, 0x41, 0xFD, 0x45, 0x63, 0x33, 0x6F, 0x47, 0xAB, 0xAB,
0x78, 0xA3, 0x31, 0x70, 0x2E, 0x7F, 0xE9, 0x30, 0xC6, 0xAB, 0x6B, 0x78, 0x73, 0xB4, 0xFB, 0xBE, 0x63, 0x7E, 0x10,
0x83, 0x7E, 0x57, 0x3C, 0xC7, 0x99, 0xC9, 0x15, 0xDD, 0x37, 0x78, 0x68, 0x04, 0xE6, 0x97, 0xA7, 0xA3, 0x8A, 0x2F,
0xAE, 0x0F, 0x9F, 0xE8, 0x26, 0x08, 0x56, 0x11, 0xCC, 0x60, 0xB1, 0x5F, 0xBE, 0x96, 0x85, 0xDB, 0x8B, 0x4D, 0xD7,
0x8B, 0x88, 0x23, 0x6D, 0x4A, 0x02, 0xCE, 0x94, 0xBB, 0x3C, 0xFD, 0x3B, 0x0C, 0x93, 0x05, 0x26, 0x81, 0xE8, 0x8A,
0x14, 0x29, 0xFB, 0xC8, 0x35, 0x2C, 0x9E, 0xEC, 0x6A, 0x91, 0xBB, 0xAD, 0x65, 0x0E, 0xB1, 0xF7, 0xC4, 0x1B, 0xF5,
0x22, 0x6C, 0x14, 0xD8, 0x6C, 0xD8, 0x35, 0x23, 0xA8, 0x5F, 0x52, 0x29, 0xE0, 0x87, 0x11, 0xF4, 0xF0, 0xAE, 0x70,
0x24, 0x48, 0xE5, 0x08, 0xAD, 0x76, 0x6E, 0xB1, 0x2A, 0x52, 0x3B, 0x62, 0x83, 0xFD, 0x81, 0x24, 0x4B, 0x0B, 0xAE,
0xAE, 0x9B, 0x41, 0x78, 0x6D, 0x07, 0x2E, 0x0E, 0xE7, 0x1E, 0xF4, 0x1B, 0xF6, 0x02, 0x0F, 0x3E, 0x44, 0x07, 0x8D,
0xC5, 0x4F, 0xF7, 0xD1, 0x4B, 0x78, 0xA3, 0xAB, 0xF9, 0xCB, 0x08, 0x20, 0x2F, 0xC2, 0x34, 0x8E, 0xEC, 0xAD, 0x06,
0x42, 0x5D, 0xEA, 0xFB, 0x14, 0xA4, 0x5D, 0x5F, 0x0D, 0x1F, 0x35, 0x94, 0xD9, 0x23, 0x43, 0x94, 0xCA, 0x3D, 0xE1,
0x0E, 0x17, 0xD9, 0xB7, 0x06, 0xF2, 0x18, 0x5D, 0x69, 0xED, 0xAE, 0x95, 0x95, 0x7B, 0x3F, 0xE9, 0xFB, 0x3C, 0xFF,
0x36, 0xE9, 0x56, 0xB5, 0x5A, 0x6D, 0x7D, 0xEC, 0xBF, 0x38, 0xDB, 0x5A, 0x19, 0x6B, 0xB1, 0xE8, 0x0C, 0xEF, 0xBD,
0xF1, 0xCA, 0xDD, 0x8E, 0x58, 0x5B, 0xF0, 0xB6, 0x57, 0xBD, 0xB6, 0x4A, 0xDB, 0xB8, 0xDC, 0x02, 0x13, 0x57, 0x58,
0x8D, 0x7A, 0x84, 0x80, 0x85, 0xE7, 0x43, 0x88, 0xAD, 0x18, 0x1D, 0x7B, 0x9B, 0x29, 0x6B, 0x3D, 0x6B, 0x71, 0x7A,
0xA7, 0xA7, 0x79, 0x49, 0x77, 0x1B, 0x5C, 0xA9, 0x23, 0xB6, 0xD3, 0xAA, 0xBC, 0xA6, 0xC7, 0x9B, 0xE2, 0x81, 0x2E,
0x57, 0xBD, 0x8D, 0xCD, 0x4E, 0x68, 0x71, 0xA9, 0x5B, 0x18, 0x16, 0xA9, 0xBB, 0x63, 0xE9, 0x6A, 0xF0, 0xC2, 0xD3,
0x35, 0xF8, 0xF4, 0x7F, 0x50, 0xB9, 0x9D, 0x54, 0xF4, 0x7C, 0xA0, 0xD5, 0x7B, 0x11, 0xEB, 0x26, 0x42, 0x62, 0xB2,
0x65, 0xD2, 0x80, 0xE9, 0x18, 0x23, 0xF7, 0x10, 0xDC, 0xDC, 0x66, 0xA9, 0xB2, 0x69, 0xC5, 0xA6, 0x62, 0x2D, 0x9F,
0xF2, 0x3E, 0x96, 0xD2, 0x5C, 0x97, 0x4C, 0xB8, 0x24, 0x4D, 0x75, 0xD2, 0x7B, 0x80, 0xF2, 0xAC, 0xD8, 0x30, 0xE3,
0xD3, 0x4B, 0xAF, 0xDA, 0xB4, 0xD4, 0x29, 0xFE, 0xCB, 0xD8, 0xC4, 0x2F, 0x34, 0x93, 0xBA, 0x98, 0x44, 0xC8, 0x16,
0xFE, 0x66, 0xA7, 0x9F, 0xA0, 0x83, 0x53, 0x08, 0x2F, 0x92, 0xB0, 0x59, 0x86, 0x8A, 0x88, 0x1B, 0xA5, 0xFC, 0x71,
0x77, 0x3E, 0x1B, 0x42, 0x9B, 0xFA, 0xA6, 0x05, 0x69, 0xD3, 0x7F, 0x19, 0xBA, 0xE8, 0xAE, 0x58, 0x7B, 0xBA, 0x51,
0x91, 0x2F, 0x5D, 0x2F, 0xF7, 0x7A, 0x90, 0x58, 0x45, 0xB8, 0x84, 0x64, 0x48, 0xEA, 0xF1, 0x32, 0x9A, 0xB3, 0x22,
0x4A, 0x7C, 0xB9, 0xD9, 0x51, 0x36, 0x2A, 0x4C, 0x60, 0x8C, 0x20, 0x50, 0xB4, 0xE0, 0x43, 0x92, 0x3F, 0x5B, 0x58,
0xFC, 0xC8, 0xF1, 0xF6, 0xE3, 0x90, 0x70, 0x97, 0x43, 0xC8, 0x0F, 0x48, 0x7C, 0x8A, 0x1D, 0x87, 0x9A, 0xF3, 0xF6,
0x11, 0x99, 0x57, 0xB4, 0x4C, 0x28, 0xBA, 0xCF, 0x40, 0x21, 0x75, 0x5C, 0xCA, 0x4F, 0xE2, 0xE6, 0x11, 0x06, 0xD7,
0xAF, 0xF2, 0x4C, 0x5B, 0x8C, 0xF6, 0x84, 0xBC, 0xC4, 0x3E, 0x96, 0x52, 0x02, 0x5A, 0xA0, 0x50, 0x56, 0xBA, 0x2C,
0xCD, 0x38, 0x4D, 0x10, 0x6E, 0x27, 0xD1, 0x7F, 0xCC, 0xA0, 0x22, 0xBE, 0x76, 0x39, 0x4D, 0x29, 0x0A, 0x23, 0x4A,
0x3B, 0x9A, 0x3A, 0xD0, 0x86, 0x8D, 0x58, 0xFC, 0x9B, 0xF3, 0x07, 0x49, 0xB3, 0x05, 0x58, 0x16, 0x7E, 0x56, 0x7D,
0x3E, 0x2C, 0x69, 0xF9, 0x70, 0x67, 0x29, 0x5D, 0x63, 0x9F, 0x20, 0xFD, 0xC2, 0x00, 0xE7, 0x73, 0x66, 0x9F, 0x11,
0xC3, 0x0C, 0xC3, 0x6F, 0x46, 0x7D, 0xA5, 0xDD, 0x58, 0xF8, 0xC4, 0x10, 0x98, 0xE5, 0x38, 0xF6, 0x5D, 0x0C, 0xD4,
0x7A, 0xE3, 0x98, 0x62, 0x43, 0x1B, 0xA7, 0x72, 0xFA, 0x38, 0x61, 0xF7, 0xEC, 0x6C, 0x3E, 0x10, 0xDF, 0xED, 0xE2,
0xD0, 0xBD, 0x8C, 0x92, 0xA7, 0xBB, 0xD2, 0xAF, 0x2E, 0x99, 0x7B, 0x22, 0xA3, 0xF3, 0x7F, 0x00, 0xB9, 0xA5, 0x31,
0x4F, 0xBE, 0xF4, 0x3C, 0xC9, 0xFF, 0x57, 0xE3, 0xE7, 0x6D, 0x4C, 0xD3, 0xED, 0x4E, 0xF7, 0x35, 0x3A, 0xD0, 0x9A,
0x7D, 0x63, 0x59, 0xD1, 0x14, 0x5D, 0x9E, 0xA3, 0x7F, 0xA0, 0x27, 0xFE, 0xC1, 0xC1, 0x2F, 0x12, 0xA6, 0xB6, 0xD7,
0x2D, 0x53, 0xE7, 0xF3, 0x09, 0x11, 0xC9, 0xBE, 0xD0, 0x1D, 0x3D, 0xFD, 0x44, 0xF9, 0x9B, 0xD9, 0xEF, 0xDB, 0xCA,
0xD9, 0x33, 0xC3, 0x91, 0x82, 0xCA, 0xBF, 0xCD, 0x79, 0x91, 0x06, 0xB9, 0x1B, 0x9F, 0x6E, 0x50, 0x07, 0x5A, 0x44,
0x11, 0x52, 0xE7, 0x88, 0xBD, 0xFC, 0xA3, 0x21, 0xCA, 0x95, 0x87, 0xBD, 0x75, 0xA2, 0xD4, 0x19, 0xBD, 0x72, 0x6F,
0xC3, 0x4C, 0x0D, 0xE2, 0x4E, 0x53, 0xAC, 0xC7, 0x8A, 0x61, 0x10, 0xDC, 0x4E, 0x68, 0xCE, 0xE9, 0x02, 0xD4, 0xCF,
0x67, 0x45, 0x27, 0x5E, 0xB7, 0x05, 0x89, 0xB5, 0xB8, 0xB9, 0xBA, 0xF4, 0x26, 0x93, 0x81, 0x51, 0xD0, 0xA6, 0x17,
0x6E, 0x68, 0xB4, 0xA8, 0xFF, 0xDB, 0x1C, 0xF8, 0x79, 0x7B, 0x4B, 0x63, 0x8E, 0x89, 0x70, 0x8D, 0x71, 0xE0, 0xF2,
0x80, 0x8A, 0x74, 0xD3, 0x40, 0xE5, 0x7D, 0xE0, 0xB9, 0xDD, 0x61, 0x45, 0x5F, 0xBA, 0xAA, 0xB6, 0xDE, 0xAF, 0xCA,
0x38, 0xF6, 0x19, 0x80, 0x67, 0xD0, 0xAC, 0x7A, 0xD1, 0xF6, 0x2A, 0xE3, 0x8F, 0xB9, 0x81, 0x2F, 0x14, 0xA1, 0xFB,
0xDC, 0x3E, 0x4B, 0x8F, 0x0D, 0xCC, 0xEC, 0x67, 0x41, 0x29, 0xED, 0x3B, 0x4A, 0x88, 0xD5, 0x93, 0xE1, 0x52, 0x33,
0x09, 0x2E, 0x3C, 0x2B, 0xFD, 0x96, 0x1B, 0x18, 0xF8, 0x0D, 0xB0, 0x11, 0x75, 0xDF, 0x1E, 0x3E, 0xAE, 0xE0, 0x6C,
0xF6, 0x5F, 0xFE, 0x1E, 0xEE, 0xC7, 0x87, 0x62, 0xFC, 0x19, 0x1D, 0xFB, 0x7C, 0xF1, 0xE9, 0x50, 0x2F, 0x0C, 0x4E,
0x5E, 0xDD, 0x7E, 0x3C, 0x84, 0xF6, 0xA4, 0xB7, 0x1E, 0x29, 0xA6, 0xF6, 0x10, 0xEE, 0x4C, 0x2F, 0x99, 0xF9, 0x6C,
0xB7, 0xBE, 0xB2, 0x1A, 0x06, 0x40, 0x3E, 0x4B, 0x66, 0xB8, 0x5C, 0x5C, 0x77, 0xD1, 0xCA, 0xAF, 0xDA, 0xEE, 0xD5,
0x42, 0xEB, 0x8A, 0xC8, 0xEA, 0xB6, 0x53, 0xB7, 0x6D, 0xDF, 0xF6, 0x68, 0xCC, 0xE5, 0x1B, 0x6F, 0xA1, 0x29, 0xBF,
0x8F, 0xF7, 0xF4, 0xCF, 0xE2, 0x91, 0x49, 0xF5, 0x6B, 0xF1, 0x30, 0xBA, 0x6B, 0x77, 0x2A, 0xF6, 0x6A, 0x27, 0x75,
0x09, 0x4F, 0x4B, 0xA8, 0x23, 0xFB, 0x4A, 0xFE, 0x15, 0xB6, 0x7F, 0x1D, 0x09, 0x8D, 0x49, 0x30, 0xE0, 0xF2, 0xBF,
0x10, 0x13, 0x5F, 0x8D, 0x06, 0x67, 0xD5, 0xEF, 0xC4, 0x43, 0x3D, 0x97, 0x8C, 0xD4, 0xFC, 0x9B, 0xF6, 0x03, 0xDB,
0xA9, 0xDC, 0x74, 0x1F, 0x18, 0xC5, 0x98, 0x80, 0x5E, 0x64, 0x31, 0x67, 0x2A, 0xA9, 0x78, 0x42, 0x90, 0x3A, 0xC2,
0x6F, 0x1B, 0x75, 0x3F, 0x11, 0x29, 0xCF, 0x9F, 0x40, 0xE0, 0x1B, 0x79, 0x3F, 0x41, 0x4A, 0xA4, 0xD0, 0xCC, 0x4B,
0x6B, 0x0D, 0xA7, 0xE1, 0x1E, 0xB1, 0x61, 0x37, 0x96, 0x0F, 0xB9, 0xEF, 0xE5, 0x5E, 0xBC, 0x95, 0xF1, 0x7E, 0x53,
0xFE, 0x2D, 0x0E, 0x95, 0x9E, 0x1B, 0x14, 0x49, 0x55, 0x99, 0x74, 0x42, 0xDA, 0x8E, 0x6F, 0x13, 0xFF, 0x61, 0xE4,
0x3E, 0x0D, 0x99, 0x46, 0xB2, 0x17, 0x23, 0x84, 0x5F, 0x8B, 0xD4, 0xE3, 0x54, 0xB4, 0x09, 0x3B, 0x81, 0xD0, 0x77,
0xB0, 0xD8, 0x83, 0x5D, 0x4F, 0x45, 0x4A, 0x76, 0x81, 0xDD, 0x21, 0xAC, 0xAE, 0xD8, 0xDC, 0xD6, 0xBE, 0xBC, 0x36,
0xF7, 0x17, 0x27, 0x7C, 0x31, 0x1A, 0x7C, 0x80, 0xE9, 0x33, 0x22, 0x9D, 0x55, 0x26, 0x1E, 0x91, 0x66, 0x2E, 0xF0,
0x92, 0xBA, 0x35, 0x6B, 0x3B, 0x58, 0xAD, 0xE5, 0x5A, 0x72, 0xC4, 0x84, 0xD9, 0x57, 0x06, 0x8E, 0xC3, 0xD2, 0x95,
0x95, 0x68, 0x57, 0x52, 0xE0, 0x3A, 0xBE, 0x5E, 0x46, 0x67, 0x56, 0xAD, 0x13, 0x51, 0xCF, 0x0D, 0x89, 0xA4, 0xE6,
0x1B, 0xBB, 0xE3, 0xD9, 0x8E, 0xD7, 0x49, 0x45, 0x6C, 0xF0, 0xE7, 0x06, 0xCE, 0xA7, 0xDD, 0x77, 0xA3, 0xE3, 0x50,
0x0C, 0xFA, 0xF0, 0xA3, 0x51, 0x31, 0x63, 0x0E, 0x41, 0xF1, 0xF8, 0xAC, 0x8A, 0xA2, 0xE9, 0xA2, 0xF2, 0x85, 0x43,
0xC0, 0xB0, 0x2C, 0xF3, 0x83, 0x6D, 0xBA, 0x88, 0x99, 0x34, 0x97, 0x36, 0x5F, 0xCB, 0x98, 0xAA, 0xA1, 0x35, 0x81,
0x76, 0x20, 0x52, 0x7F, 0x23, 0x96, 0x7F, 0x8D, 0x3C, 0x72, 0x60, 0x73, 0xBB, 0xC7, 0x91, 0x29, 0xBF, 0x32, 0x77,
0x89, 0xCC, 0x55, 0xA5, 0x5A, 0x3E, 0xD0, 0x16, 0x6B, 0x52, 0xBC, 0x1B, 0x8D, 0x8F, 0x70, 0x14, 0xA8, 0xAA, 0x1B,
0xBA, 0x96, 0x0A, 0x8B, 0x20, 0xC1, 0x15, 0xA8, 0x98, 0x16, 0x85, 0xA6, 0x9E, 0xCA, 0xCE, 0xD1, 0x8E, 0x7F, 0x6A,
0xB1, 0x57, 0x71, 0xD2, 0xEE, 0x10, 0x24, 0xAE, 0x79, 0x11, 0x51, 0x02, 0x69, 0x08, 0xC3, 0xA2, 0x47, 0x1C, 0x30,
0xFF, 0xAF, 0x00, 0x97, 0x1D, 0x77, 0xCE, 0xB6, 0xF5, 0x74, 0xAC, 0x6E, 0x68, 0xD9, 0xD4, 0x33, 0x53, 0xEF, 0x08,
0x06, 0x34, 0x9C, 0xB7, 0xCF, 0xF6, 0x66, 0x95, 0x23, 0x90, 0x14, 0x89, 0x91, 0x5F, 0x32, 0xD2, 0x3F, 0x0E, 0xAA,
0xBC, 0x8A, 0xDF, 0x9E, 0xEF, 0x9B, 0xD8, 0xDB, 0x2A, 0xF5, 0x99, 0x9A, 0xB7, 0x9E, 0xD4, 0xC8, 0x78, 0x6E, 0x99,
0x84, 0xC3, 0x94, 0x7C, 0x55, 0x42, 0xBA, 0x2A, 0x12, 0x1D, 0x69, 0x51, 0x77, 0x61, 0xF5, 0x3F, 0x5D, 0x53, 0x3D,
0x4C, 0x14, 0x41, 0x14, 0xFE, 0x76, 0x86, 0x63, 0x61, 0x57, 0x18, 0x8B, 0x33, 0x41, 0xC3, 0x5F, 0x01, 0xE6, 0x30,
0xA7, 0x4B, 0x41, 0x94, 0xE2, 0x7E, 0x16, 0x88, 0x21, 0xD1, 0x18, 0xAF, 0xD0, 0x42, 0x0B, 0x25, 0x14, 0xA8, 0x54,
0x67, 0xA4, 0xA0, 0xB8, 0xC0, 0x40, 0x62, 0x6C, 0x2F, 0x56, 0x46, 0x2D, 0x2E, 0x16, 0x04, 0xAE, 0xF1, 0x0A, 0x0B,
0x62, 0x30, 0x37, 0x6A, 0x49, 0xE1, 0x52, 0xD9, 0x4E, 0x30, 0x56, 0x14, 0x0E, 0xE1, 0x8A, 0x33, 0x1E, 0x8C, 0x33,
0x77, 0x91, 0x20, 0x93, 0xDD, 0xF7, 0x66, 0xBE, 0x7D, 0x7F, 0xDF, 0x9B, 0xB7, 0xF3, 0x1B, 0xD5, 0xA3, 0x79, 0xFB,
0x96, 0x37, 0xAA, 0xFA, 0x70, 0xBE, 0xBC, 0xA6, 0xB5, 0x02, 0x30, 0x5F, 0x2E, 0x6F, 0x04, 0x5A, 0xEB, 0x08, 0xA7,
0x0F, 0xF9, 0xF3, 0xE2, 0x91, 0xF3, 0xD6, 0xCB, 0x8F, 0x88, 0x35, 0xF2, 0xCA, 0x9B, 0xB9, 0xC8, 0x5F, 0x93, 0xC7,
0x5D, 0xA5, 0xAB, 0x3C, 0x6A, 0xDA, 0x19, 0x33, 0x81, 0xE6, 0xAA, 0x6A, 0x7D, 0xA1, 0x5C, 0xE6, 0x71, 0xF6, 0x45,
0x15, 0xD8, 0x64, 0x31, 0xE6, 0xEE, 0xA8, 0x42, 0xC6, 0x0B, 0xAD, 0xDE, 0x32, 0xFA, 0x1F, 0x1E, 0x8F, 0xB3, 0x6F,
0xAB, 0x07, 0xAA, 0xB0, 0xC5, 0x1E, 0x92, 0x97, 0xC5, 0x58, 0xCC, 0xFD, 0xBE, 0xB3, 0x6F, 0x4E, 0x99, 0x8C, 0x77,
0xE3, 0xD8, 0x36, 0x9B, 0xF5, 0xB7, 0x3F, 0xEF, 0xAB, 0x74, 0xDA, 0x60, 0x10, 0x18, 0xC5, 0x19, 0x50, 0x34, 0x37,
0x5D, 0x39, 0xAD, 0xCF, 0x45, 0x18, 0x43, 0x17, 0x68, 0x88, 0x53, 0x1B, 0x12, 0xE2, 0xAC, 0xAD, 0x24, 0x32, 0xFB,
0x13, 0xE2, 0xE7, 0x94, 0x6E, 0xC4, 0x4F, 0x62, 0x0F, 0x72, 0x81, 0x46, 0x37, 0x20, 0x5B, 0xC2, 0x43, 0xD3, 0xCD,
0xB9, 0x1B, 0x1A, 0x58, 0x37, 0xA8, 0x56, 0x4C, 0x47, 0xCB, 0x7A, 0x52, 0x1F, 0x31, 0x5D, 0xCF, 0xEA, 0x7D, 0xCB,
0x30, 0xE1, 0xEF, 0xD6, 0x4B, 0x40, 0x4F, 0x3A, 0x63, 0x1F, 0xC2, 0x87, 0x6A, 0xCC, 0xF9, 0x21, 0xD3, 0xBE, 0x98,
0x35, 0xEC, 0x73, 0x39, 0xDA, 0x96, 0x4B, 0x0C, 0x87, 0xE2, 0x9E, 0x07, 0x95, 0xB7, 0xF5, 0x24, 0x6D, 0x1A, 0x1F,
0x78, 0x7A, 0x9D, 0x3E, 0xBF, 0xD3, 0x3B, 0x5C, 0x92, 0xEF, 0xB8, 0xC9, 0x70, 0xDC, 0x92, 0xFF, 0x48, 0xDB, 0x8A,
0x47, 0xC7, 0x13, 0xBE, 0x3B, 0xB5, 0x12, 0x49, 0x95, 0xE8, 0xE9, 0x6D, 0x76, 0xD3, 0x73, 0xA2, 0x24, 0xB5, 0xDF,
0x46, 0x4B, 0xA9, 0x4A, 0x5F, 0xAA, 0xBD, 0xAB, 0x89, 0x3A, 0x2B, 0x22, 0xBA, 0xDC, 0xC7, 0x50, 0xA9, 0x8C, 0xD1,
0xC9, 0x09, 0xDB, 0x78, 0x1A, 0x5E, 0x9B, 0x7A, 0x11, 0x62, 0x62, 0x67, 0x27, 0x2A, 0xB8, 0x62, 0xA1, 0x2D, 0x4C,
0x92, 0xA8, 0x8F, 0xDD, 0x9E, 0x0E, 0x8D, 0xEF, 0x0C, 0xB0, 0xC5, 0x26, 0x14, 0x95, 0xF5, 0x02, 0x18, 0x1F, 0x08,
0xB1, 0x44, 0x25, 0x9C, 0x5A, 0x03, 0x3D, 0xBE, 0x06, 0x8D, 0xB2, 0x62, 0x31, 0x43, 0x1B, 0x3E, 0x87, 0x56, 0xEB,
0x08, 0xDE, 0x0B, 0xF8, 0x4A, 0x83, 0x34, 0x68, 0x1D, 0xD5, 0x90, 0xC9, 0x40, 0xAA, 0x65, 0x8E, 0x01, 0x9B, 0xD4,
0x10, 0x77, 0x1C, 0x51, 0x49, 0xFA, 0x54, 0xA8, 0x14, 0xB3, 0x22, 0xE6, 0x4C, 0xA9, 0x46, 0xD6, 0xF6, 0xCD, 0x87,
0x5F, 0xA7, 0xBF, 0xD4, 0xE0, 0x1F, 0xCE, 0x52, 0x38, 0x10, 0x56, 0x70, 0xA6, 0x70, 0x88, 0x80, 0x13, 0x85, 0x00,
0x46, 0x8C, 0xD8, 0xCA, 0x33, 0x30, 0xB9, 0xB3, 0x70, 0x15, 0xEC, 0xF0, 0x81, 0xF0, 0x67, 0x6F, 0xA6, 0x6B, 0x36,
0x78, 0x88, 0xB9, 0x22, 0x52, 0xA0, 0x4F, 0x00, 0x8E, 0x5C, 0xC7, 0xFD, 0xB9, 0x4D, 0x46, 0xE4, 0xDE, 0xEC, 0x60,
0xAE, 0xAD, 0x35, 0x56, 0xE8, 0x84, 0x63, 0x6F, 0xDE, 0xB3, 0x03, 0x30, 0x0E, 0xD7, 0x76, 0x36, 0x09, 0x37, 0x34,
0x17, 0x97, 0x04, 0xE5, 0x2D, 0x9B, 0x40, 0xBA, 0xBF, 0xE9, 0x9E, 0xFA, 0xF8, 0xA9, 0x83, 0xEC, 0x86, 0x05, 0x50,
0x81, 0x0F, 0x60, 0x70, 0x22, 0x13, 0xD8, 0x87, 0x23, 0x8D, 0x62, 0x20, 0x91, 0x53, 0xC3, 0x12, 0x82, 0xD0, 0x95,
0xD8, 0x34, 0xC4, 0x88, 0x44, 0x01, 0x3E, 0x77, 0x14, 0xE2, 0x70, 0x5A, 0x61, 0x5A, 0x0E, 0x16, 0xBA, 0x84, 0xF6,
0x66, 0x68, 0x72, 0x04, 0x13, 0x37, 0xCE, 0xAF, 0x74, 0x83, 0x7E, 0xE5, 0x50, 0x26, 0xD4, 0x38, 0xFA, 0xBB, 0xC1,
0x5C, 0x3E, 0x30, 0x21, 0x03, 0xBE, 0xE8, 0xF3, 0x7E, 0x22, 0x7D, 0xBE, 0x49, 0x64, 0xC2, 0xC4, 0x41, 0xDC, 0x29,
0xB2, 0x70, 0xD3, 0x8D, 0x32, 0xA4, 0xDE, 0x74, 0x3F, 0x84, 0xBB, 0x27, 0x3B, 0x79, 0xDA, 0x85, 0xBB, 0x2A, 0x20,
0x2B, 0x58, 0x4C, 0x22, 0xC9, 0xD0, 0x4F, 0xC5, 0x00, 0x54, 0x16, 0x29, 0x06, 0xD3, 0x4F, 0xD3, 0x51, 0xA8, 0x21,
0x18, 0xC2, 0x31, 0xC2, 0x99, 0x50, 0x54, 0xA5, 0xD1, 0xB0, 0xEE, 0x39, 0x33, 0xAF, 0x86, 0x7C, 0xC2, 0x8E, 0x54,
0xDE, 0xBF, 0x89, 0x9A, 0xF4, 0x6E, 0x59, 0x20, 0x65, 0x89, 0xE7, 0xED, 0x80, 0x49, 0xF4, 0x2D, 0x92, 0x6D, 0x91,
0x5A, 0x37, 0xC0, 0x82, 0x21, 0x69, 0x01, 0x10, 0x61, 0x7E, 0x07, 0xB3, 0xFE, 0x02, 0x63, 0xE1, 0x70, 0x74, 0x4D,
0x2A, 0xEA, 0x3F, 0xE0, 0xC0, 0xC0, 0xD8, 0xB0, 0xA0, 0xA7, 0xBE, 0xE1, 0x80, 0x16, 0x07, 0x13, 0xC3, 0x0A, 0xA6,
0xFE, 0x0B, 0x0C, 0x6C, 0x1C, 0x4C, 0x13, 0x8F, 0x19, 0x76, 0x1F, 0x60, 0xD0, 0x72, 0x50, 0x90, 0xE0, 0x65, 0x66,
0x3C, 0x90, 0xC0, 0xC2, 0x11, 0x2C, 0x52, 0x63, 0x30, 0xA7, 0x70, 0x01, 0x2B, 0xC7, 0x54, 0x8E, 0xE3, 0x72, 0x07,
0x92, 0x3F, 0x30, 0x08, 0x30, 0xFF, 0xBF, 0x60, 0xC7, 0xCD, 0x7C, 0xC0, 0xC4, 0x86, 0xB9, 0xF9, 0x80, 0x85, 0x0D,
0xF3, 0xF1, 0x03, 0x36, 0x35, 0x40, 0xA2, 0x86, 0xD1, 0x41, 0xB1, 0xC9, 0x89, 0xA7, 0xD5, 0x38, 0xE3, 0xC0, 0xE2,
0x76, 0xEF, 0x3F, 0xDC, 0x17, 0x58, 0xB8, 0x19, 0x0E, 0x18, 0xF0, 0xB0, 0xB3, 0x7F, 0x91, 0x64, 0x99, 0x20, 0xC1,
0xCB, 0xCD, 0xEF, 0xFC, 0x43, 0x94, 0x21, 0x40, 0x44, 0x87, 0xB1, 0x65, 0xF1, 0x07, 0x98, 0xC5, 0x06, 0x5A, 0x2C,
0x8C, 0x40, 0x9B, 0xE3, 0x0F, 0x30, 0xB0, 0x79, 0x00, 0x6D, 0x4E, 0x38, 0x93, 0xF8, 0x41, 0xCB, 0x21, 0x41, 0x05,
0x62, 0x33, 0x93, 0x88, 0x61, 0xE3, 0x07, 0x83, 0xE3, 0x32, 0x52, 0x0C, 0x08, 0xBB, 0x0F, 0x68, 0x30, 0x33, 0x6C,
0xE0, 0x65, 0x3C, 0xA0, 0xC3, 0xDC, 0x60, 0xC2, 0xEC, 0x50, 0xC2, 0xEE, 0x00, 0x24, 0x2D, 0x98, 0x0F, 0xE8, 0x30,
0x5E, 0xE0, 0x67, 0xD8, 0xC0, 0xDE, 0x60, 0xC3, 0xE0, 0x60, 0xC2, 0x78, 0x80, 0x97, 0x61, 0x03, 0x50, 0x94, 0xE9,
0x80, 0x0C, 0xC3, 0x05, 0x3E, 0x86, 0x07, 0x7C, 0x0C, 0x17, 0xC0, 0x1A, 0x0E, 0x58, 0x70, 0x3B, 0x7C, 0x90, 0x63,
0x3E, 0x20, 0xC2, 0x00, 0x00, 0x4D, 0x93, 0x3D, 0x68, 0x1C, 0x47, 0x14, 0xC7, 0xFF, 0x3B, 0x23, 0x6B, 0x88, 0xC7,
0x77, 0xAB, 0x26, 0xC6, 0xD8, 0x67, 0xB6, 0x49, 0x21, 0xC8, 0x9D, 0x56, 0x01, 0x15, 0x82, 0xD8, 0xDA, 0x89, 0x1B,
0x97, 0x4E, 0x61, 0xD7, 0x22, 0x6D, 0x02, 0xC9, 0x06, 0x8E, 0xA0, 0x42, 0xB2, 0xC6, 0x38, 0xE0, 0x32, 0xAA, 0x63,
0x0C, 0x0E, 0x38, 0x85, 0xCE, 0x85, 0x6C, 0x70, 0x91, 0xC2, 0xF2, 0x3D, 0xD9, 0xC5, 0x41, 0x9C, 0x62, 0x83, 0x0D,
0x2E, 0xB3, 0x18, 0x85, 0x80, 0x15, 0x92, 0x0D, 0x39, 0xF0, 0x4A, 0xDE, 0xBB, 0xE7, 0xB7, 0x27, 0x39, 0xE4, 0xCD,
0x7B, 0x3B, 0x1F, 0x3B, 0x6F, 0xDF, 0xBC, 0xDF, 0xBC, 0x05, 0x00, 0xD3, 0x80, 0x3D, 0x81, 0x66, 0x1B, 0xE1, 0x08,
0xFD, 0x91, 0xAA, 0x52, 0x53, 0xDE, 0x0B, 0xBB, 0x79, 0x94, 0x66, 0x73, 0xF7, 0xA9, 0xF3, 0x92, 0x92, 0x67, 0x3E,
0x79, 0xE2, 0xE2, 0x17, 0x88, 0x78, 0x14, 0xF2, 0xC8, 0xF0, 0xC8, 0xF6, 0xF7, 0x65, 0x7B, 0x63, 0x11, 0xAD, 0x05,
0x4C, 0xCD, 0xA0, 0x16, 0x3B, 0xC2, 0xFA, 0x48, 0x0D, 0x61, 0x08, 0xA1, 0x43, 0x04, 0xCC, 0x89, 0x06, 0x7F, 0xCE,
0x05, 0x65, 0x12, 0x50, 0xFC, 0x98, 0x0E, 0x7D, 0x35, 0x4B, 0x88, 0x7D, 0x1C, 0xCA, 0xA7, 0x48, 0x4A, 0x9D, 0x75,
0x1B, 0xC0, 0x02, 0x82, 0x83, 0x3B, 0x96, 0x73, 0xED, 0xF1, 0xD5, 0x66, 0xC0, 0x15, 0xBA, 0x50, 0x19, 0xAE, 0x42,
0xF3, 0x8F, 0xE2, 0x24, 0x5B, 0x9D, 0xCA, 0x83, 0x5C, 0x17, 0x62, 0xA5, 0xCA, 0x75, 0x25, 0xF6, 0x97, 0xD8, 0x6F,
0x3A, 0x33, 0x4F, 0xAF, 0x67, 0xEB, 0xCC, 0x7C, 0xE6, 0x8F, 0xD7, 0xBF, 0xDB, 0x9D, 0x7F, 0x33, 0x4B, 0x6F, 0xC8,
0xD2, 0xBA, 0x58, 0x42, 0x21, 0x45, 0xA4, 0x79, 0x23, 0x38, 0x78, 0x84, 0xAE, 0x7E, 0xC2, 0x72, 0x6C, 0x7F, 0x5E,
0x65, 0x11, 0xFA, 0xEC, 0x62, 0x76, 0xD6, 0x43, 0xE5, 0x40, 0x09, 0x24, 0x40, 0x48, 0xD0, 0x05, 0x50, 0x01, 0xA7,
0x1D, 0x6A, 0x0E, 0xD0, 0x8A, 0x00, 0x9A, 0x07, 0xE6, 0xE5, 0x7C, 0x27, 0x2C, 0xE2, 0xEB, 0x4C, 0x1D, 0xC7, 0xF4,
0x1E, 0x92, 0x9F, 0x94, 0x6F, 0x1A, 0x5C, 0x35, 0xD7, 0xB2, 0xE9, 0x7F, 0xF2, 0x45, 0x9C, 0x5D, 0x89, 0x82, 0x9B,
0xCB, 0x86, 0xF8, 0xC5, 0x4E, 0x11, 0xE7, 0x0D, 0x68, 0x97, 0x61, 0xBE, 0x09, 0x83, 0xDB, 0x48, 0xED, 0xB4, 0xD5,
0xCC, 0xD5, 0x87, 0x5B, 0x7F, 0xFB, 0x8F, 0xCA, 0x4C, 0x7F, 0xF9, 0x0B, 0x3E, 0xBE, 0x45, 0xBA, 0xAC, 0x10, 0x5F,
0x22, 0x55, 0x94, 0x88, 0xAC, 0x0F, 0xF2, 0x2E, 0xDE, 0x97, 0x4B, 0xE0, 0x6C, 0x6A, 0x6D, 0xF9, 0x93, 0x81, 0x6B,
0xB7, 0x52, 0xEC, 0x0C, 0xA6, 0x1B, 0xAD, 0xF4, 0xDE, 0xAF, 0x03, 0x23, 0x5D, 0x1A, 0x0C, 0x0C, 0x5A, 0xE9, 0x79,
0x3D, 0x80, 0x90, 0x09, 0xB6, 0x08, 0x81, 0xC3, 0x71, 0x61, 0xE3, 0x8F, 0xED, 0xAA, 0xD7, 0xAE, 0xB3, 0x0D, 0x1A,
0x1A, 0x95, 0xB5, 0x2D, 0x56, 0xD6, 0xC0, 0x43, 0x6C, 0x6F, 0x5C, 0xB9, 0x72, 0x81, 0xC7, 0x13, 0xC4, 0x9F, 0x7B,
0xCB, 0x58, 0x9B, 0x92, 0x5C, 0xC2, 0x19, 0xCD, 0x05, 0x72, 0xE8, 0x6F, 0x03, 0x2E, 0x71, 0x0E, 0x28, 0xA0, 0x0A,
0x89, 0x4A, 0x86, 0x81, 0xCB, 0x5C, 0xCB, 0xB8, 0x5E, 0x16, 0x5D, 0x22, 0xF4, 0x9D, 0x91, 0x50, 0x93, 0x81, 0x96,
0xC1, 0x2A, 0x70, 0xA8, 0x6B, 0x00, 0xEF, 0xC2, 0xEC, 0x0D, 0x71, 0x16, 0xC5, 0xE9, 0xF1, 0xDD, 0xF2, 0x8B, 0x83,
0xAD, 0xDB, 0xD6, 0x3D, 0x44, 0xCC, 0x99, 0xD4, 0xCE, 0x84, 0xA8, 0x80, 0xC5, 0x12, 0x26, 0x30, 0x6B, 0xA6, 0x82,
0xB6, 0x26, 0x8C, 0xFA, 0xD4, 0x98, 0x05, 0x94, 0xC7, 0xB4, 0xDC, 0x34, 0xEF, 0xA1, 0x9A, 0x45, 0x74, 0xC1, 0xAB,
0x62, 0x16, 0x4B, 0xCA, 0xEB, 0xFC, 0x03, 0xE9, 0x9E, 0xAB, 0x3C, 0x1E, 0xC7, 0xEA, 0xE2, 0xCB, 0x62, 0x61, 0x31,
0x7C, 0x76, 0x91, 0x84, 0x9D, 0xF0, 0x23, 0xCB, 0x1B, 0x82, 0xB5, 0xAE, 0x93, 0x5A, 0x94, 0xCC, 0x42, 0x89, 0x37,
0x13, 0xC9, 0xA7, 0xA5, 0xD8, 0xD0, 0x91, 0xC5, 0x07, 0x56, 0x32, 0xF8, 0xBE, 0xD7, 0xDB, 0x9C, 0x6C, 0x60, 0xDE,
0x1B, 0xF7, 0x7A, 0xCB, 0xBB, 0x27, 0x91, 0x48, 0x5A, 0x89, 0xD4, 0xD0, 0x19, 0xCE, 0x27, 0xCE, 0x04, 0xB2, 0x65,
0xFC, 0xFC, 0x1C, 0x75, 0x27, 0x6D, 0x85, 0x96, 0xB2, 0xB8, 0x32, 0x23, 0x78, 0x3E, 0x42, 0x06, 0x71, 0xEE, 0x6D,
0x6F, 0x1E, 0xB1, 0xF8, 0x4F, 0x57, 0xFF, 0xA7, 0x42, 0x01, 0xFD, 0xB1, 0x40, 0xCD, 0xEA, 0x67, 0xDF, 0x09, 0x24,
0x0A, 0xB2, 0xA0, 0x90, 0x36, 0x94, 0x57, 0x39, 0x9A, 0xA7, 0xC0, 0x7E, 0xDD, 0x1F, 0x2F, 0x7C, 0x58, 0xA9, 0x7D,
0xF4, 0x15, 0x15, 0x0F, 0xC2, 0x6D, 0xEC, 0x1F, 0x95, 0xBD, 0x72, 0x68, 0x22, 0x60, 0x1F, 0xB2, 0xFB, 0xE6, 0x3B,
0xF5, 0x73, 0xDB, 0x9E, 0x4A, 0x67, 0x3F, 0xA3, 0x1F, 0x6E, 0xA8, 0x1B, 0x2D, 0xDB, 0x4A, 0xDB, 0x5F, 0x93, 0xFC,
0x18, 0x30, 0xAF, 0x86, 0x52, 0xB6, 0x64, 0x5C, 0x07, 0x5D, 0x45, 0xD6, 0xAD, 0x46, 0xCC, 0xD7, 0x98, 0xB3, 0x63,
0x25, 0xD4, 0xD6, 0x2B, 0xC9, 0xA9, 0x98, 0xA0, 0xAD, 0xF0, 0xAE, 0x7B, 0x0B, 0x4D, 0x90, 0xBF, 0x4F, 0x1B, 0x31,
0x14, 0xC7, 0x3F, 0x3E, 0x0F, 0x77, 0x22, 0x21, 0x84, 0xAA, 0x48, 0x0C, 0x17, 0x25, 0xA8, 0x0C, 0xA8, 0x0A, 0x22,
0x0C, 0xAD, 0xB2, 0x40, 0x8F, 0xBD, 0x42, 0x30, 0x30, 0xB1, 0x84, 0xFF, 0x20, 0x43, 0xB6, 0x22, 0x61, 0x51, 0x14,
0x06, 0xBA, 0x76, 0xAC, 0x94, 0x95, 0x2D, 0x43, 0x07, 0x36, 0x1C, 0x18, 0x90, 0x18, 0x2A, 0x03, 0xFF, 0xC0, 0x89,
0x3F, 0x20, 0xBA, 0xA1, 0x43, 0x24, 0x50, 0x8C, 0x6D, 0x18, 0xB0, 0xDE, 0x60, 0x7F, 0x7F, 0x3D, 0xBF, 0x87, 0x22,
0x86, 0x1E, 0x52, 0xB1, 0xB1, 0xB7, 0x6B, 0xED, 0xBD, 0xF6, 0x57, 0x5F, 0x84, 0xD3, 0x20, 0x2E, 0xF8, 0xF1, 0xB7,
0xF4, 0xBD, 0xD7, 0x6B, 0x75, 0xD1, 0x1E, 0x2E, 0x43, 0x0B, 0x77, 0x65, 0x19, 0x86, 0xA1, 0xF2, 0x85, 0xBD, 0x47,
0x6B, 0x35, 0x35, 0x30, 0x54, 0x60, 0x10, 0xAC, 0x41, 0xF4, 0xA6, 0x17, 0x7A, 0x74, 0xF5, 0x50, 0x13, 0x63, 0x23,
0x9E, 0x41, 0x39, 0x32, 0xC3, 0xA4, 0x98, 0x48, 0x0D, 0x68, 0x1F, 0x59, 0xBB, 0x4D, 0xA4, 0x4C, 0xA4, 0xCB, 0x42,
0x07, 0x67, 0xC6, 0x05, 0x63, 0xFD, 0x90, 0x56, 0x47, 0x2E, 0xA4, 0xEC, 0x32, 0x76, 0x74, 0x65, 0x5D, 0x4F, 0x75,
0x49, 0x3B, 0xEA, 0xF3, 0xB4, 0xFE, 0x3B, 0xCE, 0xC5, 0x3F, 0x3A, 0xF9, 0x4A, 0x65, 0x86, 0x9C, 0xE4, 0xDB, 0xB9,
0xD8, 0xD7, 0xB2, 0x90, 0xBF, 0xE4, 0x4F, 0xA9, 0xAE, 0xD5, 0x17, 0x45, 0xD5, 0x7D, 0x65, 0xCB, 0xB4, 0x9A, 0x69,
0x74, 0xC3, 0xA6, 0x92, 0xB9, 0xFD, 0xEF, 0x63, 0xC5, 0x47, 0x79, 0x1B, 0x8D, 0x46, 0x7A, 0xDD, 0xCC, 0x1A, 0x99,
0x63, 0x27, 0xAF, 0xBD, 0x44, 0x18, 0xB9, 0x04, 0x6B, 0x76, 0xDA, 0x85, 0x36, 0xCC, 0xD9, 0x69, 0xAC, 0x3C, 0xEE,
0x58, 0xE6, 0x1D, 0xD4, 0x65, 0xB3, 0xCE, 0x46, 0x7F, 0xD8, 0x5C, 0x3A, 0x4B, 0x93, 0xCE, 0x20, 0x5A, 0x84, 0x3E,
0x2C, 0x29, 0x92, 0x0E, 0x6F, 0x0F, 0x81, 0x4F, 0xF1, 0x9E, 0xE1, 0xA5, 0x4F, 0x76, 0x6B, 0x68, 0x5E, 0xBA, 0xBE,
0xC2, 0x04, 0xDC, 0xA9, 0xB3, 0x77, 0xEA, 0x60, 0x8D, 0xA3, 0xC5, 0xE5, 0xA2, 0xBF, 0x3A, 0x77, 0xF0, 0x87, 0xC9,
0x21, 0x95, 0x14, 0x4E, 0x5E, 0x97, 0x9E, 0x55, 0x49, 0xA5, 0x92, 0x2A, 0x75, 0xCB, 0x1D, 0xAE, 0x59, 0x7B, 0xEA,
0xE2, 0xDA, 0x44, 0xDA, 0xDA, 0x22, 0x56, 0x35, 0xCF, 0x79, 0x09, 0x1D, 0xE2, 0x9C, 0x5E, 0x51, 0xBA, 0xBA, 0xF8,
0x9A, 0x74, 0x93, 0x06, 0x0D, 0xC5, 0x31, 0x1F, 0x92, 0xF9, 0xE7, 0x4F, 0x77, 0xC5, 0x84, 0xA7, 0x8C, 0x30, 0xF5,
0x0B, 0x6D, 0x91, 0xBF, 0x6B, 0x14, 0x41, 0x14, 0xC7, 0x3F, 0xB3, 0x23, 0x19, 0x92, 0x8D, 0x6E, 0x0A, 0x09, 0xE2,
0x61, 0x0E, 0xAC, 0x2C, 0x4E, 0xAF, 0xDD, 0xE2, 0xEE, 0x32, 0x7F, 0x42, 0xCC, 0x3F, 0x92, 0x14, 0x5B, 0xA4, 0x08,
0xC9, 0x68, 0x9B, 0xE6, 0x1A, 0x7B, 0x11, 0x2B, 0x8B, 0x24, 0x48, 0x0A, 0x11, 0x73, 0xBB, 0x92, 0x42, 0xB0, 0xDA,
0xFC, 0x01, 0x81, 0x11, 0x03, 0x01, 0x09, 0xB8, 0xC2, 0x0A, 0x21, 0x5E, 0x76, 0x7C, 0x7B, 0x88, 0x55, 0x1E, 0xCC,
0x7B, 0x6F, 0xDE, 0xAF, 0xEF, 0xFB, 0x01, 0x50, 0x13, 0x15, 0x2C, 0x42, 0x71, 0x67, 0x31, 0xF9, 0x7D, 0xF2, 0xF9,
0x32, 0x8B, 0xF7, 0xC8, 0x0E, 0x8D, 0x39, 0xF5, 0xAB, 0x53, 0x26, 0x96, 0x96, 0xE6, 0x1A, 0x5B, 0xC6, 0x3F, 0x6E,
0x7C, 0x5C, 0x26, 0x5E, 0x97, 0xAA, 0x56, 0x15, 0x0D, 0x47, 0x5C, 0xB8, 0x21, 0xBE, 0x4A, 0xF0, 0x03, 0x5D, 0xF8,
0x84, 0x23, 0x6F, 0x5C, 0xDF, 0x6B, 0xAF, 0x9B, 0x83, 0x8A, 0x10, 0xA6, 0xFC, 0x94, 0xE7, 0x37, 0xAE, 0x58, 0xE2,
0x1F, 0x0D, 0x61, 0x07, 0xFE, 0xA0, 0x2E, 0x9C, 0x3E, 0x29, 0xCC, 0x0B, 0x9F, 0xD8, 0xAA, 0xCB, 0x87, 0x21, 0x83,
0x6D, 0x46, 0x93, 0x77, 0x79, 0x1E, 0x42, 0x1E, 0x7E, 0xF9, 0xAD, 0xBB, 0xDA, 0x95, 0xE9, 0x6D, 0x6C, 0x3E, 0xB2,
0xB7, 0x3B, 0x56, 0xCC, 0x9E, 0xE4, 0x36, 0x9B, 0x3C, 0x60, 0x81, 0xC8, 0x31, 0x66, 0xAC, 0xDD, 0x3D, 0x52, 0xF2,
0x26, 0x6F, 0x04, 0xF9, 0xFE, 0x6E, 0xCB, 0x55, 0x28, 0x18, 0x80, 0x96, 0xA9, 0x0E, 0x21, 0x11, 0x83, 0x87, 0xA7,
0x62, 0x28, 0x60, 0x1B, 0x95, 0x38, 0xB6, 0x6A, 0x74, 0x80, 0xAE, 0xD8, 0x6F, 0x20, 0xF6, 0xC7, 0xC9, 0xFE, 0xC7,
0x2F, 0xD4, 0x0F, 0x5D, 0x4F, 0xBF, 0x8E, 0x39, 0x33, 0xD7, 0xDF, 0xC3, 0x41, 0xD5, 0x7F, 0x59, 0xB7, 0x3E, 0xF4,
0x29, 0x64, 0xA2, 0x49, 0xE5, 0x6A, 0x56, 0x0E, 0x49, 0x7B, 0x24, 0x55, 0x4B, 0xE8, 0xD1, 0xEE, 0x75, 0x86, 0x26,
0x22, 0x05, 0x63, 0x59, 0xAB, 0x58, 0x0D, 0x44, 0xA1, 0x24, 0x7A, 0x2B, 0xB8, 0xA3, 0x51, 0xBB, 0x13, 0x11, 0xB1,
0x7B, 0xFC, 0xD5, 0xA4, 0xE9, 0x1B, 0xFB, 0x49, 0xFE, 0xD3, 0xB9, 0x41, 0xF6, 0xDE, 0x1E, 0xCF, 0xF6, 0xB5, 0x84,
0x86, 0x27, 0x72, 0x1B, 0x56, 0x9E, 0x87, 0x50, 0x48, 0xDF, 0x3D, 0xD4, 0xB7, 0x75, 0x51, 0x33, 0xB4, 0x6B, 0x31,
0x3C, 0xFF, 0xE9, 0x19, 0x6A, 0x82, 0xA9, 0xE9, 0x96, 0xF4, 0x2D, 0xB1, 0xCC, 0xDB, 0x69, 0x2C, 0x9D, 0xA9, 0x34,
0xA8, 0x64, 0xE0, 0x70, 0xBD, 0xC6, 0xF2, 0x7E, 0x1B, 0xA8, 0xC7, 0xB0, 0x6B, 0x51, 0x12, 0x61, 0xAE, 0x64, 0xD6,
0x82, 0x8D, 0xAA, 0x13, 0x5C, 0xFF, 0x9C, 0x85, 0xD9, 0xB9, 0xED, 0x72, 0x5E, 0xEF, 0xBC, 0x82, 0xBF, 0x2D, 0x8F,
0x3D, 0x4E, 0xC4, 0x30, 0x10, 0x85, 0x9F, 0x33, 0x12, 0x23, 0xB1, 0xF9, 0xD9, 0x0B, 0x24, 0x69, 0x29, 0x16, 0x65,
0x8B, 0x14, 0x29, 0x90, 0x16, 0x6E, 0xB0, 0x05, 0x3D, 0x47, 0xA0, 0xA1, 0x48, 0xC5, 0x3A, 0x77, 0xE0, 0x00, 0xD4,
0x50, 0xB0, 0x27, 0x40, 0x73, 0x84, 0x20, 0x71, 0x00, 0x37, 0xF4, 0x16, 0x12, 0x12, 0x42, 0xD9, 0x35, 0xE3, 0x80,
0xF5, 0x9E, 0x34, 0x96, 0x3C, 0xEF, 0x7B, 0x06, 0xC0, 0x6E, 0x97, 0xC3, 0xA5, 0x18, 0x33, 0x8C, 0xBB, 0x10, 0x6E,
0x9F, 0xBE, 0xF4, 0xAA, 0xAA, 0xFE, 0xE5, 0xA3, 0x8C, 0x07, 0x1E, 0xC1, 0x72, 0xDF, 0x90, 0x45, 0x0A, 0xAC, 0xC1,
0x21, 0x5B, 0x3C, 0xB4, 0x39, 0xC6, 0x8E, 0xAE, 0x5C, 0xC6, 0xB6, 0xAD, 0x8C, 0xEB, 0x79, 0xD0, 0x05, 0x60, 0x69,
0xBE, 0x4B, 0x38, 0xC6, 0x3A, 0x91, 0x14, 0xFB, 0x7A, 0x5A, 0x25, 0x1F, 0x05, 0x3A, 0x92, 0x1C, 0x9E, 0xED, 0x85,
0x71, 0x05, 0x7A, 0x92, 0x0A, 0x81, 0xED, 0x46, 0xF4, 0xF9, 0xA9, 0x5A, 0xA3, 0xF9, 0xD3, 0x77, 0x73, 0xFA, 0x08,
0xBA, 0x6C, 0x15, 0x10, 0xFC, 0xDB, 0xEB, 0xF3, 0xBB, 0x32, 0x5C, 0x46, 0x36, 0x62, 0x94, 0xD6, 0xEB, 0xA4, 0x85,
0x72, 0xCD, 0xA1, 0xC1, 0xD5, 0xB1, 0x17, 0x0C, 0xEA, 0x61, 0xCA, 0x62, 0xE9, 0x3B, 0x42, 0x6B, 0x44, 0x3F, 0xB2,
0x30, 0x21, 0x4C, 0xAB, 0x93, 0x9F, 0x97, 0xED, 0x5E, 0x17, 0x12, 0x25, 0xCF, 0xD0, 0x08, 0xFF, 0x2B, 0x11, 0xF9,
0xBE, 0xF0, 0x3D, 0xCB, 0x5C, 0x21, 0x1E, 0x0B, 0x24, 0x12, 0xCD, 0x87, 0x26, 0x94, 0xD7, 0x24, 0x67, 0x20, 0x39,
0x57, 0x17, 0x8E, 0x24, 0x39, 0x92, 0xA0, 0x20, 0x29, 0x6F, 0x68, 0xDC, 0x04, 0x3A, 0x36, 0x07, 0x0A, 0xBF,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdGlyph opendyslexic_8_regularGlyphs[] = {
{0, 0, 226, 0, 0, 0, 0}, // U+0020
{5, 17, 90, 0, 17, 22, 0}, // !
{9, 6, 145, 0, 15, 14, 22}, // "
{17, 15, 304, 1, 14, 64, 36}, // #
{14, 18, 323, 3, 16, 63, 100}, // $
{12, 14, 264, 3, 13, 42, 163}, // %
{14, 16, 257, 1, 15, 56, 205}, // &
{4, 5, 72, 0, 13, 5, 261}, // '
{6, 23, 117, 1, 17, 35, 266}, // (
{6, 23, 117, 0, 17, 35, 301}, // )
{9, 8, 169, 1, 13, 18, 336}, // *
{8, 9, 165, 1, 9, 18, 354}, // +
{5, 6, 86, 0, 3, 8, 372}, // ,
{8, 2, 160, 1, 6, 4, 380}, // -
{4, 3, 70, 0, 3, 3, 384}, // .
{10, 26, 155, 0, 18, 65, 387}, // /
{9, 13, 177, 1, 13, 30, 452}, // 0
{8, 13, 155, 1, 13, 26, 482}, // 1
{9, 13, 170, 1, 13, 30, 508}, // 2
{9, 13, 171, 1, 13, 30, 538}, // 3
{9, 13, 177, 1, 13, 30, 568}, // 4
{9, 13, 169, 1, 13, 30, 598}, // 5
{9, 13, 177, 1, 13, 30, 628}, // 6
{9, 13, 168, 1, 13, 30, 658}, // 7
{10, 13, 182, 1, 13, 33, 688}, // 8
{9, 13, 177, 1, 13, 30, 721}, // 9
{4, 10, 72, 0, 10, 10, 751}, // :
{5, 12, 86, 0, 9, 15, 761}, // ;
{12, 10, 215, 1, 10, 30, 776}, // <
{8, 7, 162, 1, 8, 14, 806}, // =
{12, 10, 215, 1, 10, 30, 820}, // >
{10, 19, 153, 0, 19, 48, 850}, // ?
{15, 16, 317, 2, 15, 60, 898}, // @
{13, 14, 303, 3, 14, 46, 958}, // A
{11, 14, 260, 3, 14, 39, 1004}, // B
{12, 17, 268, 2, 16, 51, 1043}, // C
{13, 15, 290, 3, 15, 49, 1094}, // D
{10, 15, 247, 3, 15, 38, 1143}, // E
{9, 15, 229, 3, 15, 34, 1181}, // F
{14, 15, 306, 2, 15, 53, 1215}, // G
{12, 15, 286, 3, 15, 45, 1268}, // H
{4, 15, 122, 2, 15, 15, 1313}, // I
{7, 19, 201, 3, 15, 34, 1328}, // J
{11, 15, 273, 3, 15, 42, 1362}, // K
{9, 15, 242, 3, 15, 34, 1404}, // L
{15, 15, 331, 3, 15, 57, 1438}, // M
{12, 15, 287, 3, 15, 45, 1495}, // N
{13, 16, 305, 3, 15, 52, 1540}, // O
{10, 15, 245, 3, 15, 38, 1592}, // P
{15, 18, 270, 1, 15, 68, 1630}, // Q
{11, 14, 260, 3, 14, 39, 1698}, // R
{13, 16, 300, 3, 15, 52, 1737}, // S
{12, 14, 287, 3, 14, 42, 1789}, // T
{12, 16, 281, 3, 15, 48, 1831}, // U
{14, 15, 309, 3, 15, 53, 1879}, // V
{18, 14, 380, 3, 14, 63, 1932}, // W
{13, 15, 303, 3, 15, 49, 1995}, // X
{12, 14, 283, 3, 14, 42, 2044}, // Y
{13, 14, 301, 3, 14, 46, 2086}, // Z
{6, 23, 126, 1, 18, 35, 2132}, // [
{6, 16, 126, 1, 13, 24, 2167}, // <backslash>
{6, 23, 126, 1, 18, 35, 2191}, // ]
{7, 4, 148, 1, 16, 7, 2226}, // ^
{11, 3, 212, 1, -1, 9, 2233}, // _
{6, 3, 109, 0, 13, 5, 2242}, // `
{10, 11, 219, 2, 11, 28, 2247}, // a
{10, 16, 229, 2, 15, 40, 2275}, // b
{8, 12, 199, 2, 11, 24, 2315}, // c
{10, 16, 225, 2, 15, 40, 2339}, // d
{10, 10, 221, 2, 10, 25, 2379}, // e
{6, 14, 168, 2, 14, 21, 2404}, // f
{9, 15, 215, 2, 10, 34, 2425}, // g
{10, 15, 219, 2, 15, 38, 2459}, // h
{4, 15, 121, 2, 15, 15, 2497}, // i
{7, 19, 172, 2, 15, 34, 2512}, // j
{10, 14, 218, 2, 14, 35, 2546}, // k
{5, 14, 144, 2, 14, 18, 2581}, // l
{15, 10, 312, 2, 10, 38, 2599}, // m
{10, 10, 217, 2, 10, 25, 2637}, // n
{10, 10, 221, 2, 10, 25, 2662}, // o
{11, 15, 218, 1, 10, 42, 2687}, // p
{12, 14, 253, 2, 10, 42, 2729}, // q
{7, 9, 176, 2, 9, 16, 2771}, // r
{9, 10, 206, 2, 10, 23, 2787}, // s
{8, 13, 190, 2, 13, 26, 2810}, // t
{9, 10, 213, 2, 10, 23, 2836}, // u
{11, 10, 240, 2, 10, 28, 2859}, // v
{13, 10, 277, 2, 10, 33, 2887}, // w
{11, 10, 238, 2, 10, 28, 2920}, // x
{10, 15, 224, 2, 10, 38, 2948}, // y
{10, 10, 218, 2, 10, 25, 2986}, // z
{8, 16, 150, 1, 13, 32, 3011}, // {
{2, 15, 68, 1, 12, 8, 3043}, // |
{8, 16, 150, 1, 13, 32, 3051}, // }
{6, 4, 125, 1, 13, 6, 3083}, // ~
{0, 0, 226, 0, 0, 0, 0}, // U+00A0
{5, 18, 90, 0, 13, 23, 0}, // U+00A1
{8, 16, 199, 2, 14, 32, 23}, // U+00A2
{11, 16, 184, 0, 16, 44, 55}, // U+00A3
{9, 8, 179, 1, 10, 18, 99}, // U+00A4
{11, 15, 204, 1, 13, 42, 117}, // U+00A5
{2, 15, 68, 1, 12, 8, 159}, // U+00A6
{10, 16, 224, 2, 14, 40, 167}, // U+00A7
{9, 3, 142, 0, 13, 7, 207}, // U+00A8
{7, 7, 144, 1, 16, 13, 214}, // U+00A9
{6, 6, 112, 1, 13, 9, 227}, // U+00AA
{9, 8, 171, 1, 8, 18, 236}, // U+00AB
{8, 5, 163, 1, 6, 10, 254}, // U+00AC
{8, 2, 147, 1, 6, 4, 264}, // U+00AD
{7, 7, 144, 1, 18, 13, 268}, // U+00AE
{7, 3, 137, 1, 13, 6, 281}, // U+00AF
{9, 8, 144, 0, 14, 18, 287}, // U+00B0
{8, 10, 165, 1, 9, 20, 305}, // U+00B1
{5, 7, 78, 0, 14, 9, 325}, // U+00B2
{5, 7, 85, 0, 14, 9, 334}, // U+00B3
{3, 4, 77, 1, 13, 3, 343}, // U+00B4
{10, 12, 213, 1, 10, 30, 346}, // U+00B5
{8, 14, 164, 1, 12, 28, 376}, // U+00B6
{4, 3, 70, 0, 7, 3, 404}, // U+00B7
{4, 5, 87, 1, 1, 5, 407}, // U+00B8
{5, 7, 76, 0, 14, 9, 412}, // U+00B9
{6, 6, 112, 1, 12, 9, 421}, // U+00BA
{9, 8, 171, 1, 8, 18, 430}, // U+00BB
{15, 16, 294, 2, 15, 60, 448}, // U+00BC
{15, 15, 294, 2, 14, 57, 508}, // U+00BD
{15, 15, 294, 2, 14, 57, 565}, // U+00BE
{10, 19, 153, 0, 10, 48, 622}, // U+00BF
{13, 19, 303, 3, 19, 62, 670}, // U+00C0
{13, 22, 303, 3, 22, 72, 732}, // U+00C1
{13, 20, 303, 3, 20, 65, 804}, // U+00C2
{13, 19, 303, 3, 19, 62, 869}, // U+00C3
{13, 19, 303, 3, 19, 62, 931}, // U+00C4
{13, 20, 303, 3, 20, 65, 993}, // U+00C5
{19, 16, 387, 3, 15, 76, 1058}, // U+00C6
{12, 20, 268, 2, 16, 60, 1134}, // U+00C7
{10, 19, 247, 3, 19, 48, 1194}, // U+00C8
{10, 22, 247, 3, 22, 55, 1242}, // U+00C9
{10, 19, 247, 3, 19, 48, 1297}, // U+00CA
{10, 19, 247, 3, 19, 48, 1345}, // U+00CB
{6, 20, 122, 0, 20, 30, 1393}, // U+00CC
{4, 23, 122, 2, 23, 23, 1423}, // U+00CD
{7, 21, 122, 0, 21, 37, 1446}, // U+00CE
{9, 20, 122, -1, 20, 45, 1483}, // U+00CF
{16, 15, 290, 0, 15, 60, 1528}, // U+00D0
{12, 18, 287, 3, 18, 54, 1588}, // U+00D1
{13, 20, 305, 3, 19, 65, 1642}, // U+00D2
{13, 23, 305, 3, 22, 75, 1707}, // U+00D3
{13, 21, 305, 3, 20, 69, 1782}, // U+00D4
{13, 20, 305, 3, 19, 65, 1851}, // U+00D5
{13, 20, 305, 3, 19, 65, 1916}, // U+00D6
{8, 5, 157, 1, 7, 10, 1981}, // U+00D7
{21, 31, 317, -1, 23, 163, 1991}, // U+00D8
{12, 20, 281, 3, 19, 60, 2154}, // U+00D9
{12, 23, 281, 3, 22, 69, 2214}, // U+00DA
{12, 21, 281, 3, 20, 63, 2283}, // U+00DB
{12, 20, 281, 3, 19, 60, 2346}, // U+00DC
{12, 23, 283, 3, 23, 69, 2406}, // U+00DD
{9, 13, 149, 0, 13, 30, 2475}, // U+00DE
{10, 13, 182, 1, 13, 33, 2505}, // U+00DF
{10, 14, 219, 2, 14, 35, 2538}, // U+00E0
{10, 17, 219, 2, 17, 43, 2573}, // U+00E1
{10, 15, 219, 2, 15, 38, 2616}, // U+00E2
{10, 14, 219, 2, 14, 35, 2654}, // U+00E3
{10, 14, 219, 2, 14, 35, 2689}, // U+00E4
{10, 15, 219, 2, 15, 38, 2724}, // U+00E5
{16, 11, 327, 2, 11, 44, 2762}, // U+00E6
{8, 15, 199, 2, 11, 30, 2806}, // U+00E7
{10, 16, 221, 2, 16, 40, 2836}, // U+00E8
{10, 19, 221, 2, 19, 48, 2876}, // U+00E9
{10, 16, 221, 2, 16, 40, 2924}, // U+00EA
{10, 16, 221, 2, 16, 40, 2964}, // U+00EB
{6, 14, 121, 0, 14, 21, 3004}, // U+00EC
{4, 17, 121, 2, 17, 17, 3025}, // U+00ED
{7, 15, 121, 0, 15, 27, 3042}, // U+00EE
{9, 14, 121, -1, 14, 32, 3069}, // U+00EF
{13, 14, 223, 1, 14, 46, 3101}, // U+00F0
{10, 14, 217, 2, 14, 35, 3147}, // U+00F1
{10, 16, 221, 2, 16, 40, 3182}, // U+00F2
{10, 19, 221, 2, 19, 48, 3222}, // U+00F3
{10, 16, 221, 2, 16, 40, 3270}, // U+00F4
{10, 16, 221, 2, 16, 40, 3310}, // U+00F5
{10, 16, 221, 2, 16, 40, 3350}, // U+00F6
{11, 10, 204, 1, 10, 28, 3390}, // U+00F7
{10, 27, 221, 2, 18, 68, 3418}, // U+00F8
{9, 15, 213, 2, 15, 34, 3486}, // U+00F9
{9, 18, 213, 2, 18, 41, 3520}, // U+00FA
{9, 15, 213, 2, 15, 34, 3561}, // U+00FB
{9, 15, 213, 2, 15, 34, 3595}, // U+00FC
{10, 24, 224, 2, 19, 60, 3629}, // U+00FD
{8, 17, 149, 1, 14, 34, 3689}, // U+00FE
{10, 21, 224, 2, 16, 53, 3723}, // U+00FF
{13, 19, 303, 3, 19, 62, 0}, // U+0100
{10, 14, 219, 2, 14, 35, 62}, // U+0101
{13, 21, 303, 3, 21, 69, 97}, // U+0102
{10, 16, 219, 2, 16, 40, 166}, // U+0103
{13, 19, 303, 3, 14, 62, 206}, // U+0104
{10, 15, 219, 2, 11, 38, 268}, // U+0105
{12, 24, 268, 2, 23, 72, 306}, // U+0106
{8, 17, 199, 2, 16, 34, 378}, // U+0107
{12, 22, 268, 2, 21, 66, 412}, // U+0108
{8, 16, 199, 2, 15, 32, 478}, // U+0109
{12, 23, 268, 2, 22, 69, 510}, // U+010A
{8, 16, 199, 2, 15, 32, 579}, // U+010B
{12, 24, 268, 2, 23, 72, 611}, // U+010C
{8, 17, 199, 2, 16, 34, 683}, // U+010D
{13, 21, 290, 3, 21, 69, 717}, // U+010E
{13, 16, 225, 2, 15, 52, 786}, // U+010F
{16, 15, 290, 0, 15, 60, 838}, // U+0110
{13, 16, 225, 2, 15, 52, 898}, // U+0111
{10, 19, 247, 3, 19, 48, 950}, // U+0112
{10, 15, 221, 2, 15, 38, 998}, // U+0113
{10, 21, 247, 3, 21, 53, 1036}, // U+0114
{10, 17, 221, 2, 17, 43, 1089}, // U+0115
{10, 20, 247, 3, 20, 50, 1132}, // U+0116
{10, 16, 221, 2, 16, 40, 1182}, // U+0117
{10, 19, 247, 3, 15, 48, 1222}, // U+0118
{10, 15, 221, 2, 10, 38, 1270}, // U+0119
{10, 21, 247, 3, 21, 53, 1308}, // U+011A
{10, 17, 221, 2, 17, 43, 1361}, // U+011B
{14, 20, 306, 2, 20, 70, 1404}, // U+011C
{9, 20, 215, 2, 15, 45, 1474}, // U+011D
{14, 21, 306, 2, 21, 74, 1519}, // U+011E
{9, 21, 215, 2, 16, 48, 1593}, // U+011F
{14, 20, 306, 2, 20, 70, 1641}, // U+0120
{9, 20, 215, 2, 15, 45, 1711}, // U+0121
{14, 22, 306, 2, 15, 77, 1756}, // U+0122
{9, 21, 215, 2, 16, 48, 1833}, // U+0123
{12, 20, 286, 3, 20, 60, 1881}, // U+0124
{12, 19, 219, 0, 19, 57, 1941}, // U+0125
{14, 15, 286, 2, 15, 53, 1998}, // U+0126
{12, 15, 219, 0, 15, 45, 2051}, // U+0127
{7, 21, 122, 0, 21, 37, 2096}, // U+0128
{7, 15, 121, 0, 15, 27, 2133}, // U+0129
{9, 20, 122, -1, 20, 45, 2160}, // U+012A
{8, 14, 121, 0, 14, 28, 2205}, // U+012B
{4, 19, 160, 4, 15, 19, 2233}, // U+012E
{5, 19, 121, 1, 15, 24, 2252}, // U+012F
{4, 21, 122, 2, 21, 21, 2276}, // U+0130
{3, 10, 121, 2, 10, 8, 2297}, // U+0131
{11, 19, 244, 2, 15, 53, 2305}, // U+0132
{13, 20, 121, 2, 15, 65, 2358}, // U+0133
{8, 22, 201, 3, 18, 44, 2423}, // U+0134
{9, 18, 172, 2, 14, 41, 2467}, // U+0135
{11, 21, 273, 3, 15, 58, 2508}, // U+0136
{10, 21, 218, 2, 14, 53, 2566}, // U+0137
{8, 9, 171, 1, 9, 18, 2619}, // U+0138
{9, 20, 242, 3, 20, 45, 2637}, // U+0139
{5, 20, 144, 2, 20, 25, 2682}, // U+013A
{9, 22, 242, 3, 15, 50, 2707}, // U+013B
{5, 21, 144, 2, 14, 27, 2757}, // U+013C
{9, 15, 242, 3, 15, 34, 2784}, // U+013D
{7, 14, 144, 2, 14, 25, 2818}, // U+013E
{9, 14, 242, 3, 14, 32, 2843}, // U+013F
{7, 14, 144, 2, 14, 25, 2875}, // U+0140
{16, 23, 242, -4, 18, 92, 2900}, // U+0141
{11, 14, 144, -3, 14, 39, 2992}, // U+0142
{12, 20, 287, 3, 20, 60, 3031}, // U+0143
{10, 16, 217, 2, 16, 40, 3091}, // U+0144
{12, 21, 287, 3, 15, 63, 3131}, // U+0145
{10, 16, 217, 2, 10, 40, 3194}, // U+0146
{12, 20, 287, 3, 20, 60, 3234}, // U+0147
{10, 16, 217, 2, 16, 40, 3294}, // U+0148
{9, 18, 178, 1, 18, 41, 3334}, // U+0149
{12, 18, 287, 3, 15, 54, 3375}, // U+014A
{10, 14, 217, 2, 10, 35, 3429}, // U+014B
{13, 20, 305, 3, 19, 65, 3464}, // U+014C
{10, 15, 221, 2, 15, 38, 3529}, // U+014D
{13, 22, 305, 3, 21, 72, 3567}, // U+014E
{10, 18, 221, 2, 18, 45, 3639}, // U+014F
{14, 21, 305, 3, 20, 74, 3684}, // U+0150
{13, 17, 221, 1, 17, 56, 3758}, // U+0151
{19, 15, 321, 3, 15, 72, 3814}, // U+0152
{17, 11, 285, 2, 11, 47, 3886}, // U+0153
{11, 20, 260, 3, 20, 55, 3933}, // U+0154
{7, 14, 176, 2, 14, 25, 3988}, // U+0155
{11, 22, 260, 3, 14, 61, 4013}, // U+0156
{8, 18, 176, 1, 9, 36, 4074}, // U+0157
{11, 20, 260, 3, 20, 55, 4110}, // U+0158
{8, 14, 176, 1, 14, 28, 4165}, // U+0159
{13, 22, 300, 3, 21, 72, 4193}, // U+015A
{9, 16, 206, 2, 16, 36, 4265}, // U+015B
{13, 21, 300, 3, 20, 69, 4301}, // U+015C
{9, 15, 206, 2, 15, 34, 4370}, // U+015D
{13, 19, 300, 3, 15, 62, 4404}, // U+015E
{9, 14, 206, 2, 10, 32, 4466}, // U+015F
{13, 23, 300, 3, 22, 75, 4498}, // U+0160
{9, 16, 206, 2, 16, 36, 4573}, // U+0161
{12, 17, 287, 3, 14, 51, 4609}, // U+0162
{8, 16, 190, 2, 13, 32, 4660}, // U+0163
{12, 20, 287, 3, 20, 60, 4692}, // U+0164
{8, 14, 190, 2, 14, 28, 4752}, // U+0165
{12, 14, 287, 3, 14, 42, 4780}, // U+0166
{9, 13, 190, 1, 13, 30, 4822}, // U+0167
{12, 21, 281, 3, 20, 63, 4852}, // U+0168
{9, 15, 213, 2, 15, 34, 4915}, // U+0169
{12, 20, 281, 3, 19, 60, 4949}, // U+016A
{9, 14, 213, 2, 14, 32, 5009}, // U+016B
{12, 22, 281, 3, 21, 66, 5041}, // U+016C
{9, 16, 213, 2, 16, 36, 5107}, // U+016D
{12, 22, 281, 3, 21, 66, 5143}, // U+016E
{9, 16, 213, 2, 16, 36, 5209}, // U+016F
{13, 21, 281, 3, 20, 69, 5245}, // U+0170
{12, 15, 213, 1, 15, 45, 5314}, // U+0171
{12, 19, 281, 3, 15, 57, 5359}, // U+0172
{9, 15, 213, 2, 10, 34, 5416}, // U+0173
{18, 19, 380, 3, 19, 86, 5450}, // U+0174
{13, 15, 277, 2, 15, 49, 5536}, // U+0175
{12, 20, 283, 3, 20, 60, 5585}, // U+0176
{10, 22, 224, 2, 17, 55, 5645}, // U+0177
{12, 20, 283, 3, 20, 60, 5700}, // U+0178
{13, 20, 301, 3, 20, 65, 5760}, // U+0179
{10, 16, 218, 2, 16, 40, 5825}, // U+017A
{13, 19, 301, 3, 19, 62, 5865}, // U+017B
{10, 15, 218, 2, 15, 38, 5927}, // U+017C
{13, 20, 301, 3, 20, 65, 5965}, // U+017D
{10, 16, 218, 2, 16, 40, 6030}, // U+017E
{6, 14, 139, 2, 14, 21, 6070}, // U+017F
{14, 17, 305, 3, 16, 60, 0}, // U+01A0
{11, 11, 221, 2, 11, 31, 60}, // U+01A1
{13, 18, 281, 3, 17, 59, 91}, // U+01AF
{11, 11, 213, 2, 11, 31, 150}, // U+01B0
{31, 20, 592, 3, 20, 155, 181}, // U+01C4
{27, 17, 508, 3, 17, 115, 336}, // U+01C5
{18, 17, 359, 2, 16, 77, 451}, // U+01C6
{16, 20, 409, 4, 15, 80, 528}, // U+01C7
{15, 19, 283, 2, 15, 72, 608}, // U+01C8
{14, 19, 258, 1, 14, 67, 680}, // U+01C9
{18, 19, 390, 3, 15, 86, 747}, // U+01CA
{18, 22, 381, 3, 15, 99, 833}, // U+01CB
{13, 19, 270, 2, 12, 62, 932}, // U+01CC
{13, 21, 303, 3, 21, 69, 994}, // U+01CD
{10, 16, 219, 2, 16, 40, 1063}, // U+01CE
{7, 22, 122, 0, 22, 39, 1103}, // U+01CF
{8, 16, 121, 0, 16, 32, 1142}, // U+01D0
{13, 22, 305, 3, 21, 72, 1174}, // U+01D1
{10, 18, 221, 2, 18, 45, 1246}, // U+01D2
{12, 22, 281, 3, 21, 66, 1291}, // U+01D3
{9, 16, 213, 2, 16, 36, 1357}, // U+01D4
{12, 24, 281, 3, 23, 72, 1393}, // U+01D5
{9, 19, 213, 2, 19, 43, 1465}, // U+01D6
{12, 27, 281, 3, 26, 81, 1508}, // U+01D7
{9, 22, 213, 2, 22, 50, 1589}, // U+01D8
{12, 26, 281, 3, 25, 78, 1639}, // U+01D9
{9, 20, 213, 2, 20, 45, 1717}, // U+01DA
{12, 25, 281, 3, 24, 75, 1762}, // U+01DB
{9, 19, 213, 2, 19, 43, 1837}, // U+01DC
{9, 11, 221, 3, 10, 25, 1880}, // U+01DD
{13, 23, 303, 3, 23, 75, 1905}, // U+01DE
{10, 18, 219, 2, 18, 45, 1980}, // U+01DF
{13, 25, 303, 3, 25, 82, 2025}, // U+01E0
{10, 20, 219, 2, 20, 50, 2107}, // U+01E1
{16, 15, 327, 2, 15, 60, 2157}, // U+01E3
{16, 15, 306, 0, 15, 60, 2217}, // U+01E4
{12, 15, 215, 2, 10, 45, 2277}, // U+01E5
{14, 21, 306, 2, 21, 74, 2322}, // U+01E6
{9, 21, 215, 2, 16, 48, 2396}, // U+01E7
{11, 20, 273, 3, 20, 55, 2444}, // U+01E8
{12, 20, 218, 0, 20, 60, 2499}, // U+01E9
{13, 19, 305, 3, 15, 62, 2559}, // U+01EA
{10, 14, 221, 2, 10, 35, 2621}, // U+01EB
{13, 23, 305, 3, 19, 75, 2656}, // U+01EC
{10, 19, 221, 2, 15, 48, 2731}, // U+01ED
{10, 21, 194, 1, 17, 53, 2779}, // U+01EE
{10, 21, 194, 1, 17, 53, 2832}, // U+01EF
{31, 14, 592, 3, 14, 109, 2885}, // U+01F1
{27, 15, 508, 3, 15, 102, 2994}, // U+01F2
{19, 16, 336, 1, 15, 76, 3096}, // U+01F3
{14, 21, 306, 2, 21, 74, 3172}, // U+01F4
{9, 21, 215, 2, 16, 48, 3246}, // U+01F5
{12, 19, 287, 3, 19, 57, 3294}, // U+01F8
{10, 15, 217, 2, 15, 38, 3351}, // U+01F9
{13, 26, 303, 3, 26, 85, 3389}, // U+01FA
{10, 21, 219, 2, 21, 53, 3474}, // U+01FB
{21, 31, 313, -2, 23, 163, 3527}, // U+01FE
{10, 27, 221, 2, 18, 68, 3690}, // U+01FF
{13, 22, 300, 3, 15, 72, 3758}, // U+0218
{9, 18, 206, 2, 10, 41, 3830}, // U+0219
{12, 21, 287, 3, 14, 63, 3871}, // U+021A
{8, 20, 190, 2, 13, 40, 3934}, // U+021B
{11, 20, 219, 1, 20, 55, 3974}, // U+021F
{6, 3, 0, 0, 13, 5, 0}, // U+0300
{3, 4, 0, 1, 13, 3, 5}, // U+0301
{7, 4, 0, 1, 0, 7, 8}, // U+0302
{6, 4, 0, 1, 13, 6, 15}, // U+0303
{8, 3, 0, 1, 12, 6, 21}, // U+0304
{11, 3, 0, 1, 15, 9, 27}, // U+0305
{7, 5, 0, 1, 13, 9, 36}, // U+0306
{4, 3, 0, 0, 13, 3, 45}, // U+0307
{9, 3, 0, 0, 13, 7, 48}, // U+0308
{4, 4, 0, 0, 11, 4, 55}, // U+0309
{4, 4, 0, 1, 13, 4, 59}, // U+030A
{13, 3, 0, 0, 13, 10, 63}, // U+030B
{7, 4, 0, 1, 13, 7, 73}, // U+030C
{13, 3, 0, -4, 14, 10, 80}, // U+030F
{5, 5, 0, 0, 13, 7, 90}, // U+0312
{5, 5, 0, 0, 12, 7, 97}, // U+0313
{5, 5, 0, 0, 12, 7, 104}, // U+0314
{3, 5, 0, 1, 0, 4, 111}, // U+0318
{3, 5, 0, 1, 0, 4, 115}, // U+0319
{7, 4, 0, 1, 13, 7, 119}, // U+031A
{3, 4, 0, 1, 11, 3, 126}, // U+031B
{2, 3, 0, 1, -1, 2, 129}, // U+031C
{4, 3, 0, 1, 2, 3, 131}, // U+031D
{4, 3, 0, 1, -1, 3, 134}, // U+031E
{4, 4, 0, 1, -1, 4, 137}, // U+031F
{8, 3, 0, 1, -2, 6, 141}, // U+0320
{4, 3, 0, 0, 1, 3, 147}, // U+0323
{9, 3, 0, 0, 0, 7, 150}, // U+0324
{4, 4, 0, 1, 13, 4, 157}, // U+0325
{5, 6, 0, 0, 3, 8, 161}, // U+0326
{4, 5, 0, 1, 1, 5, 169}, // U+0327
{4, 5, 0, 1, 0, 5, 174}, // U+0328
{2, 5, 0, 1, -1, 3, 179}, // U+0329
{6, 3, 0, 1, -1, 5, 182}, // U+032A
{7, 4, 0, 1, 0, 7, 187}, // U+032C
{7, 4, 0, 1, 0, 7, 194}, // U+032D
{6, 4, 0, 1, 13, 6, 201}, // U+0330
{7, 3, 0, 1, 13, 6, 207}, // U+0331
{7, 3, 0, 1, -1, 6, 213}, // U+0332
{6, 4, 0, 1, 13, 6, 219}, // U+0334
{8, 2, 0, 1, 6, 4, 225}, // U+0335
{2, 3, 0, 1, -1, 2, 229}, // U+0339
{6, 4, 0, 1, 0, 6, 231}, // U+033A
{5, 4, 0, 1, 0, 5, 237}, // U+033B
{6, 4, 0, 1, 0, 6, 242}, // U+033C
{5, 4, 0, 1, 13, 5, 248}, // U+033D
{6, 4, 0, 1, 13, 6, 253}, // U+0342
{3, 3, 0, 1, 14, 3, 259}, // U+0343
{9, 8, 0, 0, 18, 18, 262}, // U+0344
{6, 3, 0, 1, 13, 5, 280}, // U+0346
{8, 6, 0, 1, 0, 12, 285}, // U+0347
{7, 5, 0, 1, 0, 9, 297}, // U+0348
{5, 5, 0, 1, -1, 7, 306}, // U+0349
{6, 10, 0, 1, 16, 15, 313}, // U+034A
{14, 8, 0, 0, 15, 28, 328}, // U+034B
{10, 9, 0, 1, 9, 23, 356}, // U+034C
{9, 3, 0, 1, -2, 7, 379}, // U+034D
{3, 3, 0, 1, 2, 3, 386}, // U+034E
{14, 3, 0, 1, 0, 11, 389}, // U+035C
{14, 3, 0, 1, 13, 11, 400}, // U+0361
{17, 5, 0, 1, -1, 22, 411}, // U+0362
{9, 17, 168, 1, 17, 39, 0}, // U+0400
{9, 16, 168, 1, 16, 36, 39}, // U+0401
{13, 14, 272, 2, 14, 46, 75}, // U+0402
{9, 20, 175, 1, 20, 45, 121}, // U+0403
{12, 14, 246, 2, 13, 42, 166}, // U+0404
{13, 16, 300, 3, 15, 52, 208}, // U+0405
{4, 15, 122, 2, 15, 15, 260}, // U+0406
{8, 20, 122, -1, 20, 40, 275}, // U+0407
{7, 19, 201, 3, 15, 34, 315}, // U+0408
{16, 14, 310, 2, 13, 56, 349}, // U+0409
{15, 13, 298, 2, 13, 49, 405}, // U+040A
{14, 14, 287, 3, 14, 49, 454}, // U+040B
{11, 21, 273, 3, 21, 58, 503}, // U+040C
{12, 19, 287, 3, 19, 57, 561}, // U+040D
{10, 20, 185, 1, 19, 50, 618}, // U+040E
{10, 16, 189, 1, 12, 40, 668}, // U+040F
{13, 14, 303, 3, 14, 46, 708}, // U+0410
{9, 13, 175, 1, 13, 30, 754}, // U+0411
{10, 13, 183, 1, 13, 33, 784}, // U+0412
{9, 12, 175, 1, 12, 27, 817}, // U+0413
{12, 14, 223, 1, 12, 42, 844}, // U+0414
{9, 12, 168, 1, 12, 27, 886}, // U+0415
{18, 15, 380, 3, 15, 68, 913}, // U+0416
{9, 13, 171, 1, 13, 30, 981}, // U+0417
{12, 15, 287, 3, 15, 45, 1011}, // U+0418
{12, 20, 287, 3, 20, 60, 1056}, // U+0419
{11, 15, 273, 3, 15, 42, 1116}, // U+041A
{10, 13, 199, 1, 12, 33, 1158}, // U+041B
{12, 12, 226, 1, 12, 36, 1191}, // U+041C
{12, 15, 286, 3, 15, 45, 1227}, // U+041D
{13, 16, 305, 3, 15, 52, 1272}, // U+041E
{9, 13, 181, 1, 13, 30, 1324}, // U+041F
{10, 15, 245, 3, 15, 38, 1354}, // U+0420
{12, 17, 268, 2, 16, 51, 1392}, // U+0421
{12, 14, 287, 3, 14, 42, 1443}, // U+0422
{10, 14, 185, 1, 13, 35, 1485}, // U+0423
{13, 13, 233, 1, 13, 43, 1520}, // U+0424
{13, 15, 303, 3, 15, 49, 1563}, // U+0425
{10, 16, 192, 1, 13, 40, 1612}, // U+0426
{9, 12, 177, 1, 12, 27, 1652}, // U+0427
{12, 13, 216, 1, 13, 39, 1679}, // U+0428
{13, 16, 241, 1, 13, 52, 1718}, // U+0429
{12, 12, 177, -2, 12, 36, 1770}, // U+042A
{16, 13, 300, 1, 13, 52, 1806}, // U+042B
{9, 12, 177, 1, 12, 27, 1858}, // U+042C
{12, 14, 246, 2, 13, 42, 1885}, // U+042D
{13, 13, 267, 2, 13, 43, 1927}, // U+042E
{11, 14, 260, 3, 14, 39, 1970}, // U+042F
{10, 11, 219, 2, 11, 28, 2009}, // U+0430
{10, 14, 187, 1, 14, 35, 2037}, // U+0431
{8, 11, 196, 2, 11, 22, 2072}, // U+0432
{8, 10, 159, 1, 10, 20, 2094}, // U+0433
{11, 12, 204, 1, 10, 33, 2114}, // U+0434
{10, 10, 221, 2, 10, 25, 2147}, // U+0435
{16, 12, 319, 2, 12, 48, 2172}, // U+0436
{7, 9, 119, 0, 9, 16, 2220}, // U+0437
{9, 10, 179, 1, 10, 23, 2236}, // U+0438
{9, 13, 179, 1, 13, 30, 2259}, // U+0439
{9, 10, 211, 2, 10, 23, 2289}, // U+043A
{7, 10, 136, 1, 9, 18, 2312}, // U+043B
{12, 11, 248, 2, 11, 33, 2330}, // U+043C
{11, 11, 243, 2, 11, 31, 2363}, // U+043D
{9, 10, 177, 1, 10, 23, 2394}, // U+043E
{9, 10, 177, 1, 10, 23, 2417}, // U+043F
{11, 15, 218, 1, 10, 42, 2440}, // U+0440
{8, 12, 199, 2, 11, 24, 2482}, // U+0441
{10, 9, 182, 1, 9, 23, 2506}, // U+0442
{10, 15, 224, 2, 10, 38, 2529}, // U+0443
{13, 14, 233, 1, 10, 46, 2567}, // U+0444
{10, 10, 189, 1, 10, 25, 2613}, // U+0445
{10, 13, 190, 1, 10, 33, 2638}, // U+0446
{7, 9, 121, 0, 9, 16, 2671}, // U+0447
{12, 10, 216, 1, 10, 30, 2687}, // U+0448
{13, 13, 238, 1, 10, 43, 2717}, // U+0449
{11, 9, 200, 1, 9, 25, 2760}, // U+044A
{12, 10, 218, 1, 10, 30, 2785}, // U+044B
{8, 10, 162, 1, 10, 20, 2815}, // U+044C
{9, 9, 172, 1, 9, 21, 2835}, // U+044D
{11, 10, 214, 1, 10, 28, 2856}, // U+044E
{9, 9, 166, 1, 9, 21, 2884}, // U+044F
{10, 16, 221, 2, 16, 40, 2905}, // U+0450
{9, 12, 177, 1, 12, 27, 2945}, // U+0451
{12, 18, 219, 0, 15, 54, 2972}, // U+0452
{8, 14, 159, 1, 14, 28, 3026}, // U+0453
{9, 10, 171, 1, 9, 23, 3054}, // U+0454
{9, 10, 206, 2, 10, 23, 3077}, // U+0455
{4, 15, 121, 2, 15, 15, 3100}, // U+0456
{9, 14, 121, -1, 14, 32, 3115}, // U+0457
{7, 19, 172, 2, 15, 34, 3147}, // U+0458
{12, 10, 213, 1, 9, 30, 3181}, // U+0459
{11, 9, 206, 1, 9, 25, 3211}, // U+045A
{12, 15, 219, 0, 15, 45, 3236}, // U+045B
{9, 15, 211, 2, 15, 34, 3281}, // U+045C
{9, 14, 179, 1, 14, 32, 3315}, // U+045D
{10, 22, 224, 2, 17, 55, 3347}, // U+045E
{8, 12, 138, 0, 9, 24, 3402}, // U+045F
{10, 13, 222, 2, 12, 33, 3426}, // U+0462
{10, 13, 193, 1, 12, 33, 3459}, // U+0463
{13, 12, 270, 2, 12, 39, 3492}, // U+046A
{10, 9, 189, 1, 9, 23, 3531}, // U+046B
{12, 16, 284, 3, 15, 48, 3554}, // U+0472
{10, 12, 221, 2, 12, 30, 3602}, // U+0473
{17, 19, 309, 3, 19, 81, 3632}, // U+0474
{11, 12, 216, 2, 12, 33, 3713}, // U+0475
{6, 5, 0, 1, 15, 8, 3746}, // U+0486
{9, 14, 175, 1, 14, 32, 3754}, // U+0490
{8, 12, 159, 1, 12, 24, 3786}, // U+0491
{10, 12, 175, 0, 12, 30, 3810}, // U+0492
{7, 8, 120, 0, 8, 14, 3840}, // U+0493
{10, 14, 181, 1, 14, 35, 3854}, // U+0494
{7, 9, 114, 0, 9, 16, 3889}, // U+0495
{18, 18, 343, 2, 15, 81, 3905}, // U+0496
{13, 12, 235, 1, 10, 39, 3986}, // U+0497
{8, 15, 192, 2, 13, 30, 4025}, // U+0498
{7, 13, 119, 0, 9, 23, 4055}, // U+0499
{11, 17, 237, 2, 15, 47, 4078}, // U+049A
{8, 12, 163, 1, 10, 24, 4125}, // U+049B
{13, 13, 259, 2, 13, 43, 4149}, // U+049C
{10, 9, 192, 1, 9, 23, 4192}, // U+049D
{12, 15, 273, 2, 15, 45, 4215}, // U+049E
{12, 14, 218, 0, 14, 42, 4260}, // U+049F
{16, 15, 273, -2, 15, 60, 4302}, // U+04A0
{11, 11, 186, -1, 11, 31, 4362}, // U+04A1
{12, 17, 248, 2, 15, 51, 4393}, // U+04A2
{9, 13, 172, 1, 11, 30, 4444}, // U+04A3
{17, 15, 286, 3, 15, 64, 4474}, // U+04A4
{12, 10, 197, 2, 10, 30, 4538}, // U+04A5
{16, 14, 314, 2, 14, 56, 4568}, // U+04A6
{16, 16, 283, 1, 11, 64, 4624}, // U+04A7
{16, 15, 316, 2, 14, 60, 4688}, // U+04A8
{13, 12, 249, 1, 11, 39, 4748}, // U+04A9
{12, 19, 268, 2, 16, 57, 4787}, // U+04AA
{8, 13, 199, 2, 11, 26, 4844}, // U+04AB
{12, 16, 250, 2, 14, 48, 4870}, // U+04AC
{9, 11, 172, 1, 10, 25, 4918}, // U+04AD
{12, 14, 283, 3, 14, 42, 4943}, // U+04AE
{9, 12, 177, 1, 9, 27, 4985}, // U+04AF
{12, 14, 283, 3, 14, 42, 5012}, // U+04B0
{10, 13, 177, 0, 9, 33, 5054}, // U+04B1
{14, 18, 265, 2, 15, 63, 5087}, // U+04B2
{10, 12, 182, 1, 10, 30, 5150}, // U+04B3
{14, 15, 284, 2, 12, 53, 5180}, // U+04B4
{11, 11, 204, 1, 8, 31, 5233}, // U+04B5
{11, 16, 222, 1, 12, 44, 5264}, // U+04B6
{9, 12, 159, 0, 9, 27, 5308}, // U+04B7
{10, 12, 194, 1, 12, 30, 5335}, // U+04B8
{7, 9, 133, 1, 9, 16, 5365}, // U+04B9
{9, 14, 202, 2, 14, 32, 5381}, // U+04BA
{10, 15, 219, 2, 15, 38, 5413}, // U+04BB
{15, 13, 259, 0, 13, 49, 5451}, // U+04BC
{11, 9, 186, 0, 9, 25, 5500}, // U+04BD
{16, 16, 291, 1, 13, 64, 5525}, // U+04BE
{11, 12, 210, 1, 10, 33, 5589}, // U+04BF
{4, 15, 122, 2, 15, 15, 5622}, // U+04C0
{18, 21, 380, 3, 21, 95, 5637}, // U+04C1
{16, 18, 319, 2, 18, 72, 5732}, // U+04C2
{10, 17, 209, 2, 13, 43, 5804}, // U+04C3
{7, 12, 143, 1, 9, 21, 5847}, // U+04C4
{12, 16, 199, 1, 13, 48, 5868}, // U+04C5
{8, 11, 136, 1, 9, 22, 5916}, // U+04C6
{13, 20, 286, 3, 15, 65, 5938}, // U+04C7
{9, 14, 197, 2, 11, 32, 6003}, // U+04C8
{13, 20, 286, 3, 15, 65, 6035}, // U+04C9
{9, 15, 197, 2, 11, 34, 6100}, // U+04CA
{10, 15, 180, 0, 12, 38, 6134}, // U+04CB
{7, 11, 134, 1, 9, 20, 6172}, // U+04CC
{16, 20, 331, 3, 15, 80, 6192}, // U+04CD
{11, 14, 225, 2, 10, 39, 6272}, // U+04CE
{3, 12, 76, 1, 12, 9, 6311}, // U+04CF
{13, 21, 303, 3, 21, 69, 6320}, // U+04D0
{10, 16, 219, 2, 16, 40, 6389}, // U+04D1
{13, 19, 303, 3, 19, 62, 6429}, // U+04D2
{10, 15, 219, 2, 15, 38, 6491}, // U+04D3
{19, 16, 387, 3, 15, 76, 6529}, // U+04D4
{16, 11, 327, 2, 11, 44, 6605}, // U+04D5
{9, 18, 168, 1, 18, 41, 6649}, // U+04D6
{10, 17, 221, 2, 17, 43, 6690}, // U+04D7
{10, 11, 221, 2, 10, 28, 6733}, // U+04D8
{9, 11, 221, 3, 10, 25, 6761}, // U+04D9
{10, 18, 221, 2, 17, 45, 6786}, // U+04DA
{9, 12, 221, 3, 10, 27, 6831}, // U+04DB
{18, 20, 352, 3, 20, 90, 6858}, // U+04DC
{16, 17, 319, 2, 17, 68, 6948}, // U+04DD
{9, 17, 171, 1, 17, 39, 7016}, // U+04DE
{9, 14, 119, 0, 14, 32, 7055}, // U+04DF
{8, 14, 156, 1, 13, 28, 7087}, // U+04E0
{8, 13, 156, 1, 9, 26, 7115}, // U+04E1
{12, 18, 287, 3, 18, 54, 7141}, // U+04E2
{9, 13, 179, 1, 13, 30, 7195}, // U+04E3
{12, 19, 287, 3, 19, 57, 7225}, // U+04E4
{9, 14, 179, 1, 14, 32, 7282}, // U+04E5
{13, 20, 305, 3, 19, 65, 7314}, // U+04E6
{9, 15, 177, 1, 15, 34, 7379}, // U+04E7
{12, 13, 286, 3, 12, 39, 7413}, // U+04E8
{10, 10, 221, 2, 10, 25, 7452}, // U+04E9
{12, 20, 286, 3, 19, 60, 7477}, // U+04EA
{10, 16, 221, 2, 16, 40, 7537}, // U+04EB
{12, 19, 246, 2, 18, 57, 7577}, // U+04EC
{10, 14, 172, 0, 14, 35, 7634}, // U+04ED
{10, 18, 185, 1, 17, 45, 7669}, // U+04EE
{10, 21, 224, 2, 16, 53, 7714}, // U+04EF
{10, 19, 185, 1, 18, 48, 7767}, // U+04F0
{10, 21, 224, 2, 16, 53, 7815}, // U+04F1
{13, 19, 185, 0, 18, 62, 7868}, // U+04F2
{13, 22, 224, 1, 17, 72, 7930}, // U+04F3
{9, 17, 177, 1, 17, 39, 8002}, // U+04F4
{8, 14, 121, -1, 14, 28, 8041}, // U+04F5
{9, 15, 175, 1, 12, 34, 8069}, // U+04F6
{7, 10, 121, 0, 8, 18, 8103}, // U+04F7
{16, 18, 300, 1, 18, 72, 8121}, // U+04F8
{12, 15, 218, 1, 15, 45, 8193}, // U+04F9
{16, 17, 303, 3, 15, 68, 8238}, // U+04FC
{11, 12, 209, 2, 10, 33, 8306}, // U+04FD
{13, 19, 303, 3, 14, 62, 0}, // U+1EA0
{10, 16, 219, 2, 11, 40, 62}, // U+1EA1
{13, 21, 303, 3, 21, 69, 102}, // U+1EA2
{10, 16, 219, 2, 16, 40, 171}, // U+1EA3
{13, 24, 303, 3, 24, 78, 211}, // U+1EA4
{10, 19, 219, 2, 19, 48, 289}, // U+1EA5
{14, 21, 303, 2, 21, 74, 337}, // U+1EA6
{12, 17, 219, 0, 17, 51, 411}, // U+1EA7
{13, 23, 303, 3, 23, 75, 462}, // U+1EA8
{10, 18, 219, 2, 18, 45, 537}, // U+1EA9
{13, 23, 303, 3, 23, 75, 582}, // U+1EAA
{10, 18, 219, 2, 18, 45, 657}, // U+1EAB
{13, 25, 303, 3, 20, 82, 702}, // U+1EAC
{10, 20, 219, 2, 15, 50, 784}, // U+1EAD
{13, 27, 303, 3, 27, 88, 834}, // U+1EAE
{10, 22, 219, 2, 22, 55, 922}, // U+1EAF
{13, 26, 303, 3, 26, 85, 977}, // U+1EB0
{10, 21, 219, 2, 21, 53, 1062}, // U+1EB1
{13, 27, 303, 3, 27, 88, 1115}, // U+1EB2
{10, 22, 219, 2, 22, 55, 1203}, // U+1EB3
{13, 26, 303, 3, 26, 85, 1258}, // U+1EB4
{10, 21, 219, 2, 21, 53, 1343}, // U+1EB5
{13, 26, 303, 3, 21, 85, 1396}, // U+1EB6
{10, 21, 219, 2, 16, 53, 1481}, // U+1EB7
{10, 19, 247, 3, 15, 48, 1534}, // U+1EB8
{10, 15, 221, 2, 10, 38, 1582}, // U+1EB9
{10, 20, 247, 3, 20, 50, 1620}, // U+1EBA
{10, 17, 221, 2, 17, 43, 1670}, // U+1EBB
{10, 19, 247, 3, 19, 48, 1713}, // U+1EBC
{10, 16, 221, 2, 16, 40, 1761}, // U+1EBD
{10, 23, 247, 3, 23, 58, 1801}, // U+1EBE
{11, 17, 221, 2, 17, 47, 1859}, // U+1EBF
{14, 20, 247, -1, 20, 70, 1906}, // U+1EC0
{12, 18, 221, 0, 18, 54, 1976}, // U+1EC1
{10, 22, 247, 3, 22, 55, 2030}, // U+1EC2
{10, 19, 221, 2, 19, 48, 2085}, // U+1EC3
{10, 23, 247, 3, 23, 58, 2133}, // U+1EC4
{10, 19, 221, 2, 19, 48, 2191}, // U+1EC5
{10, 23, 247, 3, 19, 58, 2239}, // U+1EC6
{10, 21, 221, 2, 16, 53, 2297}, // U+1EC7
{4, 21, 122, 2, 21, 21, 2350}, // U+1EC8
{4, 15, 121, 2, 15, 15, 2371}, // U+1EC9
{4, 19, 122, 2, 15, 19, 2386}, // U+1ECA
{4, 19, 121, 2, 15, 19, 2405}, // U+1ECB
{13, 20, 305, 3, 15, 65, 2424}, // U+1ECC
{10, 15, 221, 2, 10, 38, 2489}, // U+1ECD
{13, 22, 305, 3, 21, 72, 2527}, // U+1ECE
{10, 17, 221, 2, 17, 43, 2599}, // U+1ECF
{16, 21, 305, 3, 20, 84, 2642}, // U+1ED0
{11, 17, 221, 2, 17, 47, 2726}, // U+1ED1
{14, 22, 305, 2, 21, 77, 2773}, // U+1ED2
{12, 18, 221, 0, 18, 54, 2850}, // U+1ED3
{13, 23, 305, 3, 22, 75, 2904}, // U+1ED4
{10, 20, 221, 2, 20, 50, 2979}, // U+1ED5
{13, 24, 305, 3, 23, 78, 3029}, // U+1ED6
{10, 20, 221, 2, 20, 50, 3107}, // U+1ED7
{13, 25, 305, 3, 20, 82, 3157}, // U+1ED8
{10, 21, 221, 2, 16, 53, 3239}, // U+1ED9
{14, 23, 305, 3, 22, 81, 3292}, // U+1EDA
{11, 18, 221, 2, 18, 50, 3373}, // U+1EDB
{14, 22, 305, 3, 21, 77, 3423}, // U+1EDC
{11, 16, 221, 2, 16, 44, 3500}, // U+1EDD
{14, 22, 305, 3, 21, 77, 3544}, // U+1EDE
{11, 17, 221, 2, 17, 47, 3621}, // U+1EDF
{14, 21, 305, 3, 20, 74, 3668}, // U+1EE0
{11, 16, 221, 2, 16, 44, 3742}, // U+1EE1
{14, 21, 305, 3, 16, 74, 3786}, // U+1EE2
{11, 16, 221, 2, 11, 44, 3860}, // U+1EE3
{12, 20, 281, 3, 15, 60, 3904}, // U+1EE4
{9, 14, 213, 2, 10, 32, 3964}, // U+1EE5
{12, 22, 281, 3, 21, 66, 3996}, // U+1EE6
{9, 16, 213, 2, 16, 36, 4062}, // U+1EE7
{13, 22, 281, 3, 21, 72, 4098}, // U+1EE8
{11, 17, 213, 2, 17, 47, 4170}, // U+1EE9
{13, 21, 281, 3, 20, 69, 4217}, // U+1EEA
{11, 15, 213, 2, 15, 42, 4286}, // U+1EEB
{13, 22, 281, 3, 21, 72, 4328}, // U+1EEC
{11, 16, 213, 2, 16, 44, 4400}, // U+1EED
{13, 21, 281, 3, 20, 69, 4444}, // U+1EEE
{11, 15, 213, 2, 15, 42, 4513}, // U+1EEF
{13, 22, 281, 3, 17, 72, 4555}, // U+1EF0
{11, 15, 213, 2, 11, 42, 4627}, // U+1EF1
{12, 19, 283, 3, 19, 57, 4669}, // U+1EF2
{10, 21, 224, 2, 16, 53, 4726}, // U+1EF3
{12, 21, 283, 3, 14, 63, 4779}, // U+1EF4
{12, 15, 224, 2, 10, 45, 4842}, // U+1EF5
{12, 21, 283, 3, 21, 63, 4887}, // U+1EF6
{10, 23, 224, 2, 18, 58, 4950}, // U+1EF7
{12, 20, 283, 3, 20, 60, 5008}, // U+1EF8
{10, 22, 224, 2, 17, 55, 5068}, // U+1EF9
{0, 0, 219, 0, 0, 0, 0}, // U+2000
{0, 0, 352, 0, 0, 0, 0}, // U+2001
{0, 0, 219, 0, 0, 0, 0}, // U+2002
{0, 0, 352, 0, 0, 0, 0}, // U+2003
{0, 0, 174, 0, 0, 0, 0}, // U+2004
{0, 0, 152, 0, 0, 0, 0}, // U+2005
{0, 0, 130, 0, 0, 0, 0}, // U+2006
{0, 0, 177, 0, 0, 0, 0}, // U+2007
{0, 0, 70, 0, 0, 0, 0}, // U+2008
{0, 0, 139, 0, 0, 0, 0}, // U+2009
{0, 0, 124, 0, 0, 0, 0}, // U+200A
{0, 0, 85, 0, 0, 0, 0}, // U+200B
{0, 0, 0, 0, 0, 0, 0}, // U+200C
{0, 0, 0, 0, 0, 0, 0}, // U+200D
{0, 0, 0, 0, 0, 0, 0}, // U+200E
{0, 0, 0, 0, 0, 0, 0}, // U+200F
{8, 2, 147, 1, 6, 4, 0}, // U+2010
{8, 2, 147, 1, 6, 4, 4}, // U+2011
{12, 2, 200, 1, 6, 6, 8}, // U+2012
{11, 3, 212, 1, 6, 9, 14}, // U+2013
{17, 3, 301, 1, 6, 13, 23}, // U+2014
{17, 3, 301, 1, 6, 13, 36}, // U+2015
{7, 15, 145, 1, 12, 27, 49}, // U+2016
{13, 6, 209, 1, -1, 20, 76}, // U+2017
{5, 6, 88, 0, 15, 8, 96}, // U+2018
{5, 6, 88, 0, 15, 8, 104}, // U+2019
{5, 6, 86, 0, 3, 8, 112}, // U+201A
{5, 6, 88, 0, 15, 8, 120}, // U+201B
{9, 6, 151, 0, 15, 14, 128}, // U+201C
{9, 6, 151, 0, 15, 14, 142}, // U+201D
{5, 6, 86, 0, 3, 8, 156}, // U+201E
{9, 5, 151, 0, 15, 12, 164}, // U+201F
{9, 22, 155, 0, 17, 50, 176}, // U+2020
{10, 22, 160, 0, 17, 55, 226}, // U+2021
{11, 10, 136, -1, 12, 28, 281}, // U+2022
{5, 6, 105, 1, 8, 8, 309}, // U+2023
{4, 3, 70, 0, 3, 3, 317}, // U+2024
{4, 3, 70, 0, 3, 3, 320}, // U+2025
{15, 3, 252, 0, 3, 12, 323}, // U+2026
{3, 2, 68, 1, 6, 2, 335}, // U+2027
{0, 0, 337, 0, 0, 0, 337}, // U+202F
{11, 15, 294, 4, 13, 42, 337}, // U+2030
{5, 6, 86, 0, 15, 8, 379}, // U+2032
{9, 6, 149, 0, 15, 14, 387}, // U+2033
{14, 6, 226, 0, 14, 21, 401}, // U+2034
{5, 6, 90, 0, 14, 8, 422}, // U+2035
{8, 6, 136, 0, 14, 12, 430}, // U+2036
{14, 6, 226, 0, 14, 21, 442}, // U+2037
{7, 3, 148, 1, 13, 6, 463}, // U+2038
{5, 8, 111, 1, 8, 10, 469}, // U+2039
{5, 8, 111, 1, 8, 10, 479}, // U+203A
{18, 17, 355, 3, 15, 77, 489}, // U+203B
{5, 17, 90, 0, 17, 22, 566}, // U+203C
{10, 21, 200, 1, 20, 53, 588}, // U+203D
{8, 2, 147, 1, 14, 4, 641}, // U+203E
{7, 4, 148, 1, 12, 7, 645}, // U+203F
{11, 12, 213, 1, 16, 33, 652}, // U+2042
{10, 14, 294, 4, 13, 35, 685}, // U+2044
{19, 19, 337, 1, 19, 91, 720}, // U+2047
{13, 19, 264, 1, 19, 62, 811}, // U+2048
{13, 20, 215, 0, 19, 65, 873}, // U+2049
{10, 26, 198, 1, 18, 65, 938}, // U+2052
{0, 0, 1286, 0, 0, 0, 1003}, // U+205F
{5, 7, 84, 0, 14, 9, 0}, // U+2070
{5, 6, 86, 0, 14, 8, 9}, // U+2074
{5, 7, 85, 0, 14, 9, 17}, // U+2075
{5, 7, 86, 0, 14, 9, 26}, // U+2076
{5, 7, 89, 0, 14, 9, 35}, // U+2077
{5, 7, 89, 0, 14, 9, 44}, // U+2078
{5, 7, 89, 0, 14, 9, 53}, // U+2079
{10, 10, 217, 2, 10, 25, 62}, // U+207F
{7, 9, 120, 0, 9, 16, 87}, // U+2080
{5, 7, 81, 0, 4, 9, 103}, // U+2081
{5, 7, 87, 0, 4, 9, 112}, // U+2082
{5, 7, 86, 0, 4, 9, 121}, // U+2083
{5, 7, 88, 0, 4, 9, 130}, // U+2084
{5, 7, 81, 0, 4, 9, 139}, // U+2085
{5, 7, 88, 0, 4, 9, 148}, // U+2086
{5, 7, 87, 0, 4, 9, 157}, // U+2087
{6, 7, 90, 0, 4, 11, 166}, // U+2088
{5, 7, 89, 0, 4, 9, 177}, // U+2089
{6, 23, 117, 1, 17, 35, 186}, // U+208D
{6, 23, 117, 0, 17, 35, 221}, // U+208E
{12, 23, 268, 2, 19, 69, 0}, // U+20A1
{12, 17, 268, 2, 16, 51, 69}, // U+20A2
{11, 16, 184, 0, 16, 44, 120}, // U+20A4
{16, 15, 287, 1, 15, 60, 164}, // U+20A6
{13, 15, 245, 1, 15, 49, 224}, // U+20A7
{17, 15, 304, 2, 15, 64, 273}, // U+20A8
{14, 15, 229, 0, 15, 53, 337}, // U+20A9
{14, 13, 285, 2, 13, 46, 390}, // U+20AA
{11, 14, 181, 1, 14, 39, 436}, // U+20AB
{11, 16, 199, 1, 14, 44, 475}, // U+20AC
{12, 14, 287, 3, 14, 42, 519}, // U+20AE
{15, 15, 172, 0, 15, 57, 561}, // U+20B1
{14, 21, 306, 2, 18, 74, 618}, // U+20B2
{15, 16, 246, 1, 15, 60, 692}, // U+20B4
{8, 13, 199, 2, 12, 26, 752}, // U+20B5
{12, 15, 287, 3, 15, 45, 778}, // U+20B8
{8, 13, 161, 1, 13, 26, 823}, // U+20B9
{10, 13, 184, 1, 12, 33, 849}, // U+20BA
{11, 13, 166, 0, 13, 36, 882}, // U+20BC
{14, 15, 245, -1, 15, 53, 918}, // U+20BD
{11, 11, 202, 1, 10, 31, 0}, // U+2190
{11, 10, 203, 1, 10, 28, 31}, // U+2191
{11, 11, 202, 1, 10, 31, 59}, // U+2192
{11, 10, 203, 1, 10, 28, 90}, // U+2193
{13, 9, 237, 1, 9, 30, 118}, // U+2194
{9, 13, 175, 1, 14, 30, 148}, // U+2195
{9, 8, 170, 1, 8, 18, 178}, // U+2196
{9, 8, 170, 1, 8, 18, 196}, // U+2197
{9, 9, 170, 1, 9, 21, 214}, // U+2198
{9, 9, 170, 1, 9, 21, 235}, // U+2199
{12, 11, 227, 1, 10, 33, 256}, // U+21D0
{13, 12, 243, 1, 12, 39, 289}, // U+21D1
{12, 11, 227, 1, 10, 33, 328}, // U+21D2
{13, 13, 243, 1, 12, 43, 361}, // U+21D3
{14, 11, 259, 1, 10, 39, 404}, // U+21D4
{11, 14, 207, 1, 9, 39, 443}, // U+21D5
{10, 14, 184, 1, 14, 35, 0}, // U+2202
{17, 17, 305, 1, 16, 73, 35}, // U+2205
{12, 13, 229, 1, 13, 39, 108}, // U+2206
{10, 12, 197, 1, 12, 30, 147}, // U+220F
{10, 12, 197, 1, 12, 30, 177}, // U+2210
{8, 13, 160, 1, 12, 26, 207}, // U+2211
{8, 3, 162, 1, 6, 6, 233}, // U+2212
{14, 14, 248, 1, 13, 49, 239}, // U+221A
{13, 8, 244, 1, 10, 26, 288}, // U+221E
{14, 19, 229, 0, 15, 67, 314}, // U+222B
{4, 10, 72, 0, 10, 10, 381}, // U+2236
{10, 9, 207, 1, 9, 23, 391}, // U+2248
{11, 15, 294, 4, 13, 42, 414}, // U+2260
{13, 13, 230, 1, 12, 43, 456}, // U+2264
{13, 13, 230, 1, 12, 43, 499}, // U+2265
{12, 14, 264, 2, 14, 42, 0}, // U+FB00
{11, 15, 233, 2, 15, 42, 42}, // U+FB01
{13, 14, 266, 2, 14, 46, 84}, // U+FB02
{17, 15, 342, 2, 15, 64, 130}, // U+FB03
{19, 14, 363, 2, 14, 67, 194}, // U+FB04
{16, 14, 327, 2, 14, 56, 261}, // U+FB06
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdUnicodeInterval opendyslexic_8_regularIntervals[] = {
{0x20, 0x7E, 0x0}, {0xA0, 0xFF, 0x5F}, {0x100, 0x12B, 0xBF}, {0x12E, 0x17F, 0xEB},
{0x1A0, 0x1A1, 0x13D}, {0x1AF, 0x1B0, 0x13F}, {0x1C4, 0x1E1, 0x141}, {0x1E3, 0x1EF, 0x15F},
{0x1F1, 0x1F5, 0x16C}, {0x1F8, 0x1FB, 0x171}, {0x1FE, 0x1FF, 0x175}, {0x218, 0x21B, 0x177},
{0x21F, 0x21F, 0x17B}, {0x300, 0x30C, 0x17C}, {0x30F, 0x30F, 0x189}, {0x312, 0x314, 0x18A},
{0x318, 0x320, 0x18D}, {0x323, 0x32A, 0x196}, {0x32C, 0x32D, 0x19E}, {0x330, 0x332, 0x1A0},
{0x334, 0x335, 0x1A3}, {0x339, 0x33D, 0x1A5}, {0x342, 0x344, 0x1AA}, {0x346, 0x34E, 0x1AD},
{0x35C, 0x35C, 0x1B6}, {0x361, 0x362, 0x1B7}, {0x400, 0x45F, 0x1B9}, {0x462, 0x463, 0x219},
{0x46A, 0x46B, 0x21B}, {0x472, 0x475, 0x21D}, {0x486, 0x486, 0x221}, {0x490, 0x4F9, 0x222},
{0x4FC, 0x4FD, 0x28C}, {0x1EA0, 0x1EF9, 0x28E}, {0x2000, 0x2027, 0x2E8}, {0x202F, 0x2030, 0x310},
{0x2032, 0x203F, 0x312}, {0x2042, 0x2042, 0x320}, {0x2044, 0x2044, 0x321}, {0x2047, 0x2049, 0x322},
{0x2052, 0x2052, 0x325}, {0x205F, 0x205F, 0x326}, {0x2070, 0x2070, 0x327}, {0x2074, 0x2079, 0x328},
{0x207F, 0x2089, 0x32E}, {0x208D, 0x208E, 0x339}, {0x20A1, 0x20A2, 0x33B}, {0x20A4, 0x20A4, 0x33D},
{0x20A6, 0x20AC, 0x33E}, {0x20AE, 0x20AE, 0x345}, {0x20B1, 0x20B2, 0x346}, {0x20B4, 0x20B5, 0x348},
{0x20B8, 0x20BA, 0x34A}, {0x20BC, 0x20BD, 0x34D}, {0x2190, 0x2199, 0x34F}, {0x21D0, 0x21D5, 0x359},
{0x2202, 0x2202, 0x35F}, {0x2205, 0x2206, 0x360}, {0x220F, 0x2212, 0x362}, {0x221A, 0x221A, 0x366},
{0x221E, 0x221E, 0x367}, {0x222B, 0x222B, 0x368}, {0x2236, 0x2236, 0x369}, {0x2248, 0x2248, 0x36A},
{0x2260, 0x2260, 0x36B}, {0x2264, 0x2265, 0x36C}, {0xFB00, 0xFB04, 0x36E}, {0xFB06, 0xFB06, 0x373},
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const EpdFontGroup opendyslexic_8_regularGroups[] = {
{0, 2180, 3089, 95, 0}, {2180, 2061, 3776, 96, 95}, {4241, 3069, 6091, 126, 191}, {7310, 2226, 4029, 63, 317},
{9536, 366, 433, 61, 380}, {9902, 5024, 8339, 213, 441}, {14926, 2114, 5123, 90, 654}, {17040, 720, 1003, 63, 744},
{17760, 238, 256, 20, 807}, {17998, 730, 971, 20, 827}, {18728, 368, 482, 16, 847}, {19096, 396, 542, 15, 863},
{19492, 248, 317, 6, 878},
feat: Support for kerning and ligatures (#873) ## Summary **What is the goal of this PR?** Improved typesetting, including [kerning](https://en.wikipedia.org/wiki/Kerning) and [ligatures](https://en.wikipedia.org/wiki/Ligature_(writing)#Latin_alphabet). **What changes are included?** - The script to convert built-in fonts now adds kerning and ligature information to the generated font headers. - Epub page layout calculates proper kerning spaces and makes ligature substitutions according to the selected font. ![3U1B1808](https://github.com/user-attachments/assets/1accb16f-2f1a-41e5-adca-89f1f1348494) ![3U1B1810](https://github.com/user-attachments/assets/2f6bd007-490e-420f-b774-3380b4add7ea) ![3U1B1815](https://github.com/user-attachments/assets/1986bb77-2db0-46e2-a5d6-8315dae9eb19) ## Additional Context - I am not a typography expert. - The implementation has been reworked from the earlier version, so it is no longer necessary to omit Open Dyslexic, and kerning data now covers all fonts, styles, and codepoints for which we include bitmap data. - Claude Opus 4.6 helped with a lot of this. - There's an included test epub document with lots of kerning and ligature examples, shown in the photos. **_After some time to mature, I think this change is in decent shape to merge and get people testing._** After opening this PR I came across #660, which overlaps in adding ligature support. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES, Claude Opus 4.6**_ --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 02:31:43 -06:00
};
static const EpdKernClassEntry opendyslexic_8_regularKernLeftClasses[] = {
{0x0021, 1}, // !
{0x0022, 1}, // "
{0x0023, 1}, // #
{0x0027, 1}, // '
{0x0028, 1}, // (
{0x0029, 1}, // )
{0x002A, 1}, // *
{0x002C, 1}, // ,
{0x002D, 1}, // -
{0x002E, 1}, // .
{0x002F, 1}, // /
{0x003A, 1}, // :
{0x003B, 1}, // ;
{0x003F, 1}, // ?
{0x005B, 1}, // [
{0x005C, 1}, // <backslash>
{0x005D, 1}, // ]
{0x005F, 1}, // _
{0x007B, 1}, // {
{0x007D, 1}, // }
{0x00A1, 1}, // U+00A1
{0x00AB, 1}, // U+00AB
{0x00AD, 1}, // U+00AD
{0x00B7, 1}, // U+00B7
{0x00BB, 1}, // U+00BB
{0x00BF, 1}, // U+00BF
{0x2010, 1}, // U+2010
{0x2011, 1}, // U+2011
{0x2012, 1}, // U+2012
{0x2013, 1}, // U+2013
{0x2014, 1}, // U+2014
{0x2015, 1}, // U+2015
{0x2016, 1}, // U+2016
{0x2017, 1}, // U+2017
{0x2018, 1}, // U+2018
{0x2019, 1}, // U+2019
{0x201A, 1}, // U+201A
{0x201B, 1}, // U+201B
{0x201C, 1}, // U+201C
{0x201D, 1}, // U+201D
{0x201E, 1}, // U+201E
{0x201F, 1}, // U+201F
{0x2022, 1}, // U+2022
{0x2023, 1}, // U+2023
{0x2024, 1}, // U+2024
{0x2025, 1}, // U+2025
{0x2026, 1}, // U+2026
{0x2027, 1}, // U+2027
{0x2034, 1}, // U+2034
{0x2035, 1}, // U+2035
{0x2036, 1}, // U+2036
{0x2037, 1}, // U+2037
{0x2038, 1}, // U+2038
{0x2039, 1}, // U+2039
{0x203A, 1}, // U+203A
{0x203B, 1}, // U+203B
{0x203C, 1}, // U+203C
{0x203D, 1}, // U+203D
{0x203E, 1}, // U+203E
{0x203F, 1}, // U+203F
{0x2042, 1}, // U+2042
{0x2047, 1}, // U+2047
{0x2048, 1}, // U+2048
{0x2049, 1}, // U+2049
{0x208D, 1}, // U+208D
{0x208E, 1}, // U+208E
feat: Support for kerning and ligatures (#873) ## Summary **What is the goal of this PR?** Improved typesetting, including [kerning](https://en.wikipedia.org/wiki/Kerning) and [ligatures](https://en.wikipedia.org/wiki/Ligature_(writing)#Latin_alphabet). **What changes are included?** - The script to convert built-in fonts now adds kerning and ligature information to the generated font headers. - Epub page layout calculates proper kerning spaces and makes ligature substitutions according to the selected font. ![3U1B1808](https://github.com/user-attachments/assets/1accb16f-2f1a-41e5-adca-89f1f1348494) ![3U1B1810](https://github.com/user-attachments/assets/2f6bd007-490e-420f-b774-3380b4add7ea) ![3U1B1815](https://github.com/user-attachments/assets/1986bb77-2db0-46e2-a5d6-8315dae9eb19) ## Additional Context - I am not a typography expert. - The implementation has been reworked from the earlier version, so it is no longer necessary to omit Open Dyslexic, and kerning data now covers all fonts, styles, and codepoints for which we include bitmap data. - Claude Opus 4.6 helped with a lot of this. - There's an included test epub document with lots of kerning and ligature examples, shown in the photos. **_After some time to mature, I think this change is in decent shape to merge and get people testing._** After opening this PR I came across #660, which overlaps in adding ligature support. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES, Claude Opus 4.6**_ --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 02:31:43 -06:00
};
static const EpdKernClassEntry opendyslexic_8_regularKernRightClasses[] = {
{0x0020, 1}, // U+0020
feat: Support for kerning and ligatures (#873) ## Summary **What is the goal of this PR?** Improved typesetting, including [kerning](https://en.wikipedia.org/wiki/Kerning) and [ligatures](https://en.wikipedia.org/wiki/Ligature_(writing)#Latin_alphabet). **What changes are included?** - The script to convert built-in fonts now adds kerning and ligature information to the generated font headers. - Epub page layout calculates proper kerning spaces and makes ligature substitutions according to the selected font. ![3U1B1808](https://github.com/user-attachments/assets/1accb16f-2f1a-41e5-adca-89f1f1348494) ![3U1B1810](https://github.com/user-attachments/assets/2f6bd007-490e-420f-b774-3380b4add7ea) ![3U1B1815](https://github.com/user-attachments/assets/1986bb77-2db0-46e2-a5d6-8315dae9eb19) ## Additional Context - I am not a typography expert. - The implementation has been reworked from the earlier version, so it is no longer necessary to omit Open Dyslexic, and kerning data now covers all fonts, styles, and codepoints for which we include bitmap data. - Claude Opus 4.6 helped with a lot of this. - There's an included test epub document with lots of kerning and ligature examples, shown in the photos. **_After some time to mature, I think this change is in decent shape to merge and get people testing._** After opening this PR I came across #660, which overlaps in adding ligature support. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES, Claude Opus 4.6**_ --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 02:31:43 -06:00
};
static const int8_t opendyslexic_8_regularKernMatrix[] = {
43,
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
};
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
static const EpdFontData opendyslexic_8_regular = {
opendyslexic_8_regularBitmaps,
opendyslexic_8_regularGlyphs,
opendyslexic_8_regularIntervals,
68,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
30,
22,
-9,
true,
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
opendyslexic_8_regularGroups,
feat: Vietnamese glyphs support (#1147) ## Summary * **What is the goal of this PR?** Add Vietnamese glyphs support for the reader's built-in fonts, enabling proper rendering of Vietnamese text in EPUB content. * **What changes are included?** - Added 3 new Unicode intervals to `fontconvert.py` covering Vietnamese characters: - **Latin Extended-B** (Vietnamese subset only): `U+01A0–U+01B0` — Ơ/ơ, Ư/ư - **Vietnamese Extended**: `U+1EA0–U+1EF9` — All precomposed Vietnamese characters with tone marks (Ả, Ấ, Ầ, Ẩ, Ẫ, Ậ, Ắ, …, Ỹ) - Re-generated all 54 built-in font header files (Bookerly, Noto Sans, OpenDyslexic, Ubuntu across all sizes and styles) to include the new Vietnamese glyphs. ## Additional Context * **Scope**: This PR only covers the **reader** fonts. The outer UI still uses the Ubuntu font which does not fully support Vietnamese — UI and i18n will be addressed in a follow-up PR (per discussion in PR #1124). * **Memory impact**: | Metric | Before | After | Delta | |---|---|---|---| | Flash Data (`.rodata`) | 2,971,028 B | 3,290,748 B | **+319,720 B (+10.8%)** | | Total image size | 4,663,235 B | 4,982,955 B | **+319,720 B (+6.9%)** | | Flash usage | 69.1% | 74.0% | **+4.9 pp** | | RAM usage | 29.0% | 29.0% | **No change** | * **Risk**: Low — this is a data-only change (font glyph tables in `.rodata`). No logic changes, no RAM impact. Flash headroom remains comfortable at 74%. --- ### AI Usage Did you use AI tools to help write this code? _**PARTIALLY**_ AI was used to identify the minimal set of Unicode ranges needed for Vietnamese support and to assist with the PR description. --------- Co-authored-by: danoooob <danoooob@example.com>
2026-02-25 00:21:39 +07:00
13,
feat: Support for kerning and ligatures (#873) ## Summary **What is the goal of this PR?** Improved typesetting, including [kerning](https://en.wikipedia.org/wiki/Kerning) and [ligatures](https://en.wikipedia.org/wiki/Ligature_(writing)#Latin_alphabet). **What changes are included?** - The script to convert built-in fonts now adds kerning and ligature information to the generated font headers. - Epub page layout calculates proper kerning spaces and makes ligature substitutions according to the selected font. ![3U1B1808](https://github.com/user-attachments/assets/1accb16f-2f1a-41e5-adca-89f1f1348494) ![3U1B1810](https://github.com/user-attachments/assets/2f6bd007-490e-420f-b774-3380b4add7ea) ![3U1B1815](https://github.com/user-attachments/assets/1986bb77-2db0-46e2-a5d6-8315dae9eb19) ## Additional Context - I am not a typography expert. - The implementation has been reworked from the earlier version, so it is no longer necessary to omit Open Dyslexic, and kerning data now covers all fonts, styles, and codepoints for which we include bitmap data. - Claude Opus 4.6 helped with a lot of this. - There's an included test epub document with lots of kerning and ligature examples, shown in the photos. **_After some time to mature, I think this change is in decent shape to merge and get people testing._** After opening this PR I came across #660, which overlaps in adding ligature support. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES, Claude Opus 4.6**_ --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 02:31:43 -06:00
opendyslexic_8_regularKernLeftClasses,
opendyslexic_8_regularKernRightClasses,
opendyslexic_8_regularKernMatrix,
66,
1,
1,
1,
nullptr,
0,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};