Merge branch 'single-doc' into dev

This commit is contained in:
Blaz Kristan 2021-11-08 21:51:26 +01:00
commit 89ff8b3fcb
23 changed files with 1657 additions and 1466 deletions

View File

@ -55,6 +55,7 @@ class St7789DisplayUsermod : public Usermod {
private:
//Private class members. You can declare variables and functions only accessible to your usermod here
unsigned long lastTime = 0;
bool enabled = true;
bool displayTurnedOff = false;
long lastRedraw = 0;
@ -140,7 +141,7 @@ class St7789DisplayUsermod : public Usermod {
void setup()
{
PinManagerPinType pins[] = { { TFT_MOSI, true }, { TFT_MISO, false}, { TFT_SCLK, true }, { TFT_CS, true}, { TFT_DC, true}, { TFT_RST, true }, { TFT_BL, true } };
if (!pinManager.allocateMultiplePins(pins, 7, PinOwner::UM_FourLineDisplay)) { return; }
if (!pinManager.allocateMultiplePins(pins, 7, PinOwner::UM_FourLineDisplay)) { enabled = false; return; }
tft.init();
tft.setRotation(0); //Rotation here is set up for the text to be readable with the port on the left. Use 1 to flip.
@ -321,7 +322,7 @@ class St7789DisplayUsermod : public Usermod {
if (user.isNull()) user = root.createNestedObject("u");
JsonArray lightArr = user.createNestedArray("ST7789"); //name
lightArr.add(F("installed")); //unit
lightArr.add(enabled?F("installed"):F("disabled")); //unit
}
@ -362,7 +363,15 @@ class St7789DisplayUsermod : public Usermod {
*/
void addToConfig(JsonObject& root)
{
//JsonObject top = root.createNestedObject("exampleUsermod");
JsonObject top = root.createNestedObject("ST7789");
JsonArray pins = top.createNestedArray("pin");
pins.add(TFT_MOSI);
pins.add(TFT_MISO);
pins.add(TFT_SCLK);
pins.add(TFT_CS);
pins.add(TFT_DC);
pins.add(TFT_RST);
pins.add(TFT_BL);
//top["great"] = userVar0; //save this var persistently whenever settings are saved
}

View File

@ -657,8 +657,9 @@ class FourLineDisplayUsermod : public Usermod {
top[FPSTR(_enabled)] = enabled;
JsonArray io_pin = top.createNestedArray("pin");
for (byte i=0; i<5; i++) io_pin.add(ioPin[i]);
top["help4PinTypes"] = F("Clk,Data,CS,DC,RST"); // help for Settings page
top["help4Pins"] = F("Clk,Data,CS,DC,RST"); // help for Settings page
top["type"] = type;
top["help4Type"] = F("1=SSD1306,2=SH1106,3=SSD1306_128x64,4=SSD1305,5=SSD1305_128x64,6=SSD1306_SPI,7=SSD1306_SPI_128x64"); // help for Settings page
top[FPSTR(_flip)] = (bool) flip;
top[FPSTR(_contrast)] = contrast;
top[FPSTR(_refreshRate)] = refreshRate/1000;

View File

@ -87,8 +87,6 @@ void WS2812FX::finalizeInit(void)
}
}
deserializeMap();
_length = 0;
for (uint8_t i=0; i<busses.getNumBusses(); i++) {
Bus *bus = busses.getBus(i);
@ -1073,7 +1071,7 @@ uint32_t WS2812FX::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8
}
//load custom mapping table from JSON file
//load custom mapping table from JSON file (called from finalizeInit() or deserializeState())
void WS2812FX::deserializeMap(uint8_t n) {
char fileName[32];
strcpy_P(fileName, PSTR("/ledmap"));
@ -1091,11 +1089,21 @@ void WS2812FX::deserializeMap(uint8_t n) {
return;
}
DynamicJsonDocument doc(JSON_BUFFER_SIZE); // full sized buffer for larger maps
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
DEBUG_PRINT(F("Reading LED map from "));
DEBUG_PRINTLN(fileName);
if (!readObjectFromFile(fileName, nullptr, &doc)) return; //if file does not exist just exit
if (!readObjectFromFile(fileName, nullptr, &doc)) {
jsonBufferLock = false;
return; //if file does not exist just exit
}
// erase old custom ledmap
if (customMappingTable != nullptr) {
@ -1112,6 +1120,8 @@ void WS2812FX::deserializeMap(uint8_t n) {
customMappingTable[i] = (uint16_t) map[i];
}
}
jsonBufferLock = false;
}
//gamma 2.8 lookup table used for color correction

View File

@ -14,6 +14,7 @@ void getStringFromJson(char* dest, const char* src, size_t len) {
}
bool deserializeConfig(JsonObject doc, bool fromFS) {
bool needsSave = false;
//int rev_major = doc["rev"][0]; // 1
//int rev_minor = doc["rev"][1]; // 0
@ -411,13 +412,12 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
DEBUG_PRINTLN(F("Starting usermod config."));
JsonObject usermods_settings = doc["um"];
if (!usermods_settings.isNull()) {
bool allComplete = usermods.readFromConfig(usermods_settings);
if (!allComplete && fromFS) serializeConfig();
needsSave = usermods.readFromConfig(usermods_settings);
}
if (fromFS) return false;
if (fromFS) return needsSave;
doReboot = doc[F("rb")] | doReboot;
return (doc["sv"] | true);
return (doc["sv"] | needsSave);
}
void deserializeConfigFromFS() {
@ -427,19 +427,29 @@ void deserializeConfigFromFS() {
return;
}
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
DEBUG_PRINTLN(F("Reading settings from /cfg.json..."));
success = readObjectFromFile("/cfg.json", nullptr, &doc);
if (!success) { //if file does not exist, try reading from EEPROM
deEEPSettings();
jsonBufferLock = false;
return;
}
// NOTE: This routine deserializes *and* applies the configuration
// Therefore, must also initialize ethernet from this function
deserializeConfig(doc.as<JsonObject>(), true);
bool needsSave = deserializeConfig(doc.as<JsonObject>(), true);
jsonBufferLock = false;
if (needsSave) serializeConfig(); // usermods required new prameters
}
void serializeConfig() {
@ -447,7 +457,13 @@ void serializeConfig() {
DEBUG_PRINTLN(F("Writing settings to /cfg.json..."));
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonArray rev = doc.createNestedArray("rev");
rev.add(1); //major settings revision
@ -754,16 +770,26 @@ void serializeConfig() {
File f = WLED_FS.open("/cfg.json", "w");
if (f) serializeJson(doc, f);
f.close();
jsonBufferLock = false;
}
//settings in /wsec.json, not accessible via webserver, for passwords and tokens
bool deserializeConfigSec() {
DEBUG_PRINTLN(F("Reading settings from /wsec.json..."));
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
bool success = readObjectFromFile("/wsec.json", nullptr, &doc);
if (!success) return false;
if (!success) {
jsonBufferLock = false;
return false;
}
JsonObject nw_ins_0 = doc["nw"]["ins"][0];
getStringFromJson(clientPass, nw_ins_0["psk"], 65);
@ -795,13 +821,20 @@ bool deserializeConfigSec() {
CJSON(wifiLock, ota[F("lock-wifi")]);
CJSON(aOtaEnabled, ota[F("aota")]);
jsonBufferLock = false;
return true;
}
void serializeConfigSec() {
DEBUG_PRINTLN(F("Writing settings to /wsec.json..."));
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonObject nw = doc.createNestedObject("nw");
@ -836,4 +869,5 @@ void serializeConfigSec() {
File f = WLED_FS.open("/wsec.json", "w");
if (f) serializeJson(doc, f);
f.close();
jsonBufferLock = false;
}

View File

@ -288,7 +288,7 @@
// Size of buffer for API JSON object (increase for more segments)
#ifdef ESP8266
#define JSON_BUFFER_SIZE 9216
#define JSON_BUFFER_SIZE 10240
#else
#define JSON_BUFFER_SIZE 20480
#endif

View File

@ -66,6 +66,8 @@ function handleVisibilityChange() {if (!d.hidden && new Date () - lastUpdate > 3
function sCol(na, col) {d.documentElement.style.setProperty(na, col);}
function gId(c) {return d.getElementById(c);}
function gEBCN(c) {return d.getElementsByClassName(c);}
function isEmpty(o) {return Object.keys(o).length === 0;}
function isObj(i) {return (i && typeof i === 'object' && !Array.isArray(i));}
function applyCfg()
{
@ -210,6 +212,8 @@ function onLoad()
var sett = localStorage.getItem('wledUiCfg');
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
makeWS();
resetPUtil();
applyCfg();
@ -249,7 +253,7 @@ function onLoad()
loadPalettesData(redrawPalPrev);
loadFX(()=>{
loadPresets(()=>{
loadInfo(requestJson);
if (isObj(lastinfo) && isEmpty(lastinfo)) loadInfo(requestJson); // if not filled by WS
});
});
});
@ -529,7 +533,7 @@ function populatePresets(fromls)
pNum = 0;
for (var key of (arr||[]))
{
if (!isObject(key[1])) continue;
if (!isObj(key[1])) continue;
let i = parseInt(key[0]);
var qll = key[1].ql;
if (qll) pQL.push([i, qll, pName(i)]);
@ -579,6 +583,11 @@ function parseInfo() {
function loadInfo(callback=null)
{
var url = (loc?`http://${locip}`:'') + '/json/info';
var useWs = (ws && ws.readyState === WebSocket.OPEN);
if (useWs) {
ws.send('{"v":true}');
return;
}
fetch(url, {
method: 'get'
})
@ -2283,19 +2292,14 @@ function togglePcMode(fromB = false)
lastw = w;
}
function isObject(item)
{
return (item && typeof item === 'object' && !Array.isArray(item));
}
function mergeDeep(target, ...sources)
{
if (!sources.length) return target;
const source = sources.shift();
if (isObject(target) && isObject(source)) {
if (isObj(target) && isObj(source)) {
for (const key in source) {
if (isObject(source[key])) {
if (isObj(source[key])) {
if (!target[key]) Object.assign(target, { [key]: {} });
mergeDeep(target[key], source[key]);
} else {

View File

@ -69,32 +69,27 @@
<input id="sliderR" onchange="fromRgb()" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div>
</div>
<!--output class="sliderbubble"></output-->
</div><br>
<div id="gwrap" class="il">
<div class="sliderwrap il">
<input id="sliderG" onchange="fromRgb()" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div>
</div>
<!--output class="sliderbubble"></output-->
</div><br>
<div id="bwrap" class="il">
<div class="sliderwrap il">
<input id="sliderB" onchange="fromRgb()" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div>
</div>
<!--output class="sliderbubble"></output-->
</div><br>
</div>
<div id="wwrap" class="center">
<p class="label hd">White channel</p>
<!--i class="icons slider-icon" id="wht" title="White channel">&#xe333;</i-->
<div class="sliderwrap il">
<input id="sliderW" onchange="setColor(0)" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div>
</div>
<!--output class="sliderbubble"></output-->
</div>
<div id="wbal">
<p class="labels hd">White balance</p>
@ -102,7 +97,6 @@
<input id="sliderA" onchange="setBalance(this.value)" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div>
</div>
<!--output class="sliderbubble"></output-->
</div>
<div id="Segments" class="center">
@ -126,7 +120,6 @@
<div id="Effects" class="center">
<p class="label h">Effect</p>
<!--p class="label h">Effect speed</p-->
<div title="Effect speed">
<i class="icons slider-icon">&#xe325;</i>
<div class="sliderwrap il">
@ -135,7 +128,6 @@
</div>
<output class="sliderbubble"></output>
</div>
<!--p class="label h">Effect intensity</p-->
<div title="Effect intensity">
<i class="icons slider-icon" onclick="tglLabels()">&#xe409;</i>
<div class="sliderwrap il">

View File

@ -61,7 +61,8 @@ function handleVisibilityChange() {if (!d.hidden && new Date () - lastUpdate > 3
function sCol(na, col) {d.documentElement.style.setProperty(na, col);}
function gId(c) {return d.getElementById(c);}
function gEBCN(c) {return d.getElementsByClassName(c);}
function isO(item) { return (item && typeof item === 'object' && !Array.isArray(item)); }
function isEmpty(o) {return Object.keys(o).length === 0;}
function isObj(i) { return (i && typeof i === 'object' && !Array.isArray(i)); }
function applyCfg()
{
@ -191,6 +192,8 @@ async function onLoad()
var sett = localStorage.getItem('wledUiCfg');
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
makeWS();
applyCfg();
if (cfg.theme.bg.url=="" || cfg.theme.bg.url === "https://picsum.photos/1920/1080") {
var iUrl = cfg.theme.bg.url;
@ -235,7 +238,7 @@ async function onLoad()
loadPalettesData(redrawPalPrev);
loadFX(()=>{
loadPresets(()=>{
loadInfo(requestJson);
if (isObj(lastinfo) && isEmpty(lastinfo)) loadInfo(requestJson); // if not filled by WS
});
});
});
@ -446,7 +449,7 @@ function populatePresets()
pNum = 0;
for (var key of (arr||[]))
{
if (!isO(key[1])) continue;
if (!isObj(key[1])) continue;
let i = parseInt(key[0]);
var qll = key[1].ql;
if (qll) pQL.push([i, qll, pName(i)]);
@ -462,9 +465,29 @@ function populatePresets()
populateQL();
}
function parseInfo() {
var li = lastinfo;
var name = li.name;
gId('namelabel').innerHTML = name;
// if (name === "Dinnerbone") d.documentElement.style.transform = "rotate(180deg)";
if (li.live) name = "(Live) " + name;
if (loc) name = "(L) " + name;
d.title = name;
isRgbw = li.leds.wv;
ledCount = li.leds.count;
syncTglRecv = li.str;
maxSeg = li.leds.maxseg;
pmt = li.fs.pmt;
}
function loadInfo(callback=null)
{
var url = (loc?`http://${locip}`:'') + '/json/info';
var useWs = (ws && ws.readyState === WebSocket.OPEN);
if (useWs) {
ws.send('{"v":true}');
return;
}
fetch(url, {
method: 'get'
})
@ -475,18 +498,10 @@ function loadInfo(callback=null)
.then(json => {
clearErrorToast();
lastinfo = json;
var name = json.name;
gId('namelabel').innerHTML = name;
// if (name === "Dinnerbone") d.documentElement.style.transform = "rotate(180deg)";
if (json.live) name = "(Live) " + name;
if (loc) name = "(L) " + name;
d.title = name;
isRgbw = json.leds.wv;
ledCount = json.leds.count;
syncTglRecv = json.str;
maxSeg = json.leds.maxseg;
pmt = json.fs.pmt;
parseInfo();
showNodes();
if (isInfo) populateInfo(json);
updateUI();
reqsLegal = true;
if (!ws && lastinfo.ws > -1) setTimeout(makeWS,500);
})
@ -860,23 +875,14 @@ function makeWS() {
clearErrorToast();
gId('connind').style.backgroundColor = "var(--c-l)";
// json object should contain json.info AND json.state (but may not)
var info = json.info;
if (info) {
var name = info.name;
lastinfo = info;
gId('namelabel').innerHTML = name;
//if (name === "Dinnerbone") d.documentElement.style.transform = "rotate(180deg)";
if (info.live) name = "(Live) " + name;
if (loc) name = "(L) " + name;
d.title = name;
isRgbw = info.leds.wv;
ledCount = info.leds.count;
syncTglRecv = info.str;
maxSeg = info.leds.maxseg;
pmt = info.fs.pmt;
if (isInfo) populateInfo(info);
var i = json.info;
if (i) {
lastinfo = i;
parseInfo();
showNodes();
if (isInfo) populateInfo(i);
} else
info = lastinfo;
i = lastinfo;
var s = json.state ? json.state : json;
readState(s);
};
@ -1398,9 +1404,9 @@ function mergeDeep(target, ...sources)
if (!sources.length) return target;
const source = sources.shift();
if (isO(target) && isO(source)) {
if (isObj(target) && isObj(source)) {
for (const key in source) {
if (isO(source[key])) {
if (isObj(source[key])) {
if (!target[key]) Object.assign(target, { [key]: {} });
mergeDeep(target[key], source[key]);
} else {

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -572,18 +572,25 @@ void decodeIRJson(uint32_t code)
{
char objKey[10];
String cmdStr;
DynamicJsonDocument irDoc(JSON_BUFFER_SIZE);
JsonObject fdo;
JsonObject jsonCmdObj;
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
sprintf_P(objKey, PSTR("\"0x%lX\":"), (unsigned long)code);
// attempt to read command from ir.json
// this may fail for two reasons: ir.json does not exist or IR code not found
// if the IR code is not found readObjectFromFile() will clean() irDoc JSON document
// if the IR code is not found readObjectFromFile() will clean() doc JSON document
// so we can differentiate between the two
readObjectFromFile("/ir.json", objKey, &irDoc);
fdo = irDoc.as<JsonObject>();
readObjectFromFile("/ir.json", objKey, &doc);
fdo = doc.as<JsonObject>();
lastValidCode = 0;
if (fdo.isNull()) {
//the received code does not exist
@ -630,10 +637,11 @@ void decodeIRJson(uint32_t code)
} else if (!jsonCmdObj.isNull()) {
// command is JSON object
//allow applyPreset() to reuse JSON buffer, or it would alloc. a second buffer and run out of mem.
fileDoc = &irDoc;
fileDoc = &doc;
deserializeState(jsonCmdObj, CALL_MODE_BUTTON);
fileDoc = nullptr;
}
jsonBufferLock = false;
}
void initIR()

View File

@ -216,13 +216,13 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
}
strip.setPixelSegment(255);
strip.trigger();
// this is now handled using the "frz" toggle.
} else if (!elem["frz"] && iarr.isNull()) { //return to regular effect
seg.setOption(SEG_OPTION_FREEZE, false);
}
return; // seg.differs(prev);
}
// deserializes WLED state (fileDoc points to doc object if called from web server)
bool deserializeState(JsonObject root, byte callMode, byte presetId)
{
DEBUG_PRINTLN(F("Deserializing state"));
@ -336,7 +336,8 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
int8_t ledmap = root[F("ledmap")] | -1;
if (ledmap >= 0) {
strip.deserializeMap(ledmap);
//strip.deserializeMap(ledmap); // requires separate JSON buffer
loadLedmap = ledmap;
}
byte ps = root[F("psave")];
@ -912,37 +913,46 @@ void serveJson(AsyncWebServerRequest* request)
return;
}
#ifdef WLED_USE_DYNAMIC_JSON
AsyncJsonResponse* response = new AsyncJsonResponse(JSON_BUFFER_SIZE);
JsonObject doc = response->getRoot();
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
AsyncJsonResponse *response = new AsyncJsonResponse(&doc);
#endif
JsonObject lDoc = response->getRoot();
switch (subJson)
{
case 1: //state
serializeState(doc); break;
serializeState(lDoc); break;
case 2: //info
serializeInfo(doc); break;
serializeInfo(lDoc); break;
case 4: //node list
serializeNodes(doc); break;
serializeNodes(lDoc); break;
case 5: //palettes
serializePalettes(doc, request); break;
serializePalettes(lDoc, request); break;
default: //all
JsonObject state = doc.createNestedObject("state");
JsonObject state = lDoc.createNestedObject("state");
serializeState(state);
JsonObject info = doc.createNestedObject("info");
JsonObject info = lDoc.createNestedObject("info");
serializeInfo(info);
if (subJson != 3)
{
//doc[F("effects")] = serialized((const __FlashStringHelper*)JSON_mode_names);
JsonArray effects = doc.createNestedArray(F("effects"));
//lDoc[F("effects")] = serialized((const __FlashStringHelper*)JSON_mode_names);
JsonArray effects = lDoc.createNestedArray(F("effects"));
deserializeModeNames(effects, JSON_mode_names); // remove WLED-SR extensions from effect names
doc[F("palettes")] = serialized((const __FlashStringHelper*)JSON_palette_names);
lDoc[F("palettes")] = serialized((const __FlashStringHelper*)JSON_palette_names);
}
}
DEBUG_PRINTF("JSON buffer size: %u for request: %d\n", doc.memoryUsage(), subJson);
DEBUG_PRINTF("JSON buffer size: %u for request: %d\n", lDoc.memoryUsage(), subJson);
response->setLength();
request->send(response);
jsonBufferLock = false;
}
#define MAX_LIVE_LEDS 180

View File

@ -91,11 +91,20 @@ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties
colorUpdated(CALL_MODE_DIRECT_CHANGE);
} else if (strcmp_P(topic, PSTR("/api")) == 0) {
if (payload[0] == '{') { //JSON API
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
deserializeJson(doc, payloadStr);
fileDoc = &doc;
deserializeState(doc.as<JsonObject>());
fileDoc = nullptr;
jsonBufferLock = false;
} else { //HTTP API
String apireq = "win&";
apireq += (char*)payloadStr;

View File

@ -20,14 +20,22 @@ bool applyPreset(byte index, byte callMode)
deserializeState(fdo, callMode, index);
} else {
DEBUGFS_PRINTLN(F("Make read buf"));
DynamicJsonDocument fDoc(JSON_BUFFER_SIZE);
errorFlag = readObjectFromFileUsingId(filename, index, &fDoc) ? ERR_NONE : ERR_FS_PLOAD;
JsonObject fdo = fDoc.as<JsonObject>();
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
errorFlag = readObjectFromFileUsingId(filename, index, &doc) ? ERR_NONE : ERR_FS_PLOAD;
JsonObject fdo = doc.as<JsonObject>();
if (fdo["ps"] == index) fdo.remove("ps");
#ifdef WLED_DEBUG_FS
serializeJson(fDoc, Serial);
serializeJson(doc, Serial);
#endif
deserializeState(fdo, callMode, index);
jsonBufferLock = false;
}
if (!errorFlag) {
@ -40,22 +48,31 @@ bool applyPreset(byte index, byte callMode)
void savePreset(byte index, bool persist, const char* pname, JsonObject saveobj)
{
if (index == 0 || (index > 250 && persist) || (index<255 && !persist)) return;
bool docAlloc = (fileDoc != nullptr);
JsonObject sObj = saveobj;
const char *filename = persist ? "/presets.json" : "/tmp.json";
if (!docAlloc) {
if (!fileDoc) {
DEBUGFS_PRINTLN(F("Allocating saving buffer"));
DynamicJsonDocument lDoc(JSON_BUFFER_SIZE);
sObj = lDoc.to<JsonObject>();
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
sObj = doc.to<JsonObject>();
if (pname) sObj["n"] = pname;
DEBUGFS_PRINTLN(F("Save current state"));
serializeState(sObj, true);
if (persist) currentPreset = index;
writeObjectToFileUsingId(filename, index, &lDoc);
} else { //from JSON API
writeObjectToFileUsingId(filename, index, &doc);
jsonBufferLock = false;
} else { //from JSON API (fileDoc != nullptr)
DEBUGFS_PRINTLN(F("Reuse recv buffer"));
sObj.remove(F("psave"));
sObj.remove(F("v"));

View File

@ -415,7 +415,14 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
//USERMODS
if (subPage == 8)
{
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonObject um = doc.createNestedObject("um");
size_t args = request->args();
@ -490,6 +497,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
usermods.readFromConfig(um); // force change of usermod parameters
}
jsonBufferLock = false;
if (subPage != 2 && (subPage != 6 || !doReboot)) serializeConfig(); //do not save if factory reset or LED settings (which are saved after LED re-init)
if (subPage == 4) alexaInit();
}

View File

@ -64,6 +64,15 @@ class AsyncJsonResponse: public AsyncAbstractResponse {
public:
AsyncJsonResponse(JsonDocument *ref, bool isArray=false) : _jsonBuffer(1), _isValid{false} {
_code = 200;
_contentType = JSON_MIMETYPE;
if(isArray)
_root = ref->to<JsonArray>();
else
_root = ref->to<JsonObject>();
}
AsyncJsonResponse(size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE, bool isArray=false) : _jsonBuffer(maxJsonBufferSize), _isValid{false} {
_code = 200;
_contentType = JSON_MIMETYPE;
@ -84,7 +93,7 @@ class AsyncJsonResponse: public AsyncAbstractResponse {
return _contentLength;
}
size_t getSize() { return _jsonBuffer.size(); }
size_t getSize() { return _root.size(); }
size_t _fillBuffer(uint8_t *data, size_t len){
ChunkPrint dest(data, _sentLength, len);

View File

@ -147,11 +147,16 @@ void WLED::loop()
delete busConfigs[i]; busConfigs[i] = nullptr;
}
strip.finalizeInit();
loadLedmap = 0;
if (aligned) strip.makeAutoSegments();
else strip.fixInvalidSegments();
yield();
serializeConfig();
}
if (loadLedmap >= 0) {
strip.deserializeMap(loadLedmap);
loadLedmap = -1;
}
yield();
handleWs();
@ -336,6 +341,7 @@ void WLED::beginStrip()
{
// Initialize NeoPixel Strip and button
strip.finalizeInit(); // busses created during deserializeConfig()
strip.deserializeMap();
strip.makeAutoSegments();
strip.setBrightness(0);
strip.setShowCallback(handleOverlayDraw);

View File

@ -8,7 +8,7 @@
*/
// version code in format yymmddb (b = daily build)
#define VERSION 2111031
#define VERSION 2111051
//uncomment this if you have a "my_config.h" file you'd like to use
//#define WLED_USE_MY_CONFIG
@ -597,10 +597,17 @@ WLED_GLOBAL BusManager busses _INIT(BusManager());
WLED_GLOBAL WS2812FX strip _INIT(WS2812FX());
WLED_GLOBAL BusConfig* busConfigs[WLED_MAX_BUSSES] _INIT({nullptr}); //temporary, to remember values from network callback until after
WLED_GLOBAL bool doInitBusses _INIT(false);
WLED_GLOBAL int8_t loadLedmap _INIT(-1);
// Usermod manager
WLED_GLOBAL UsermodManager usermods _INIT(UsermodManager());
// global ArduinoJson buffer
#ifndef WLED_USE_DYNAMIC_JSON
WLED_GLOBAL StaticJsonDocument<JSON_BUFFER_SIZE> doc;
#endif
WLED_GLOBAL volatile bool jsonBufferLock _INIT(false);
// enable additional debug output
#ifdef WLED_DEBUG
#ifndef ESP8266

View File

@ -382,8 +382,15 @@ void deEEP() {
DEBUG_PRINTLN(F("Preset file not found, attempting to load from EEPROM"));
DEBUGFS_PRINTLN(F("Allocating saving buffer for dEEP"));
DynamicJsonDocument dDoc(JSON_BUFFER_SIZE *2);
JsonObject sObj = dDoc.to<JsonObject>();
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonObject sObj = doc.to<JsonObject>();
sObj.createNestedObject("0");
EEPROM.begin(EEPSIZE);
@ -442,8 +449,6 @@ void deEEP() {
}
}
for (uint16_t index = 1; index <= 16; index++) { //copy macros to presets.json
char m[65];
readStringFromEEPROM(1024+64*(index-1), m, 64);
@ -465,8 +470,11 @@ void deEEP() {
errorFlag = ERR_FS_GENERAL;
return;
}
serializeJson(dDoc, f);
serializeJson(doc, f);
f.close();
jsonBufferLock = false;
DEBUG_PRINTLN(F("deEEP complete!"));
}

View File

@ -43,18 +43,26 @@ void handleSerial()
}
else if (next == '{') { //JSON API
bool verboseResponse = false;
{
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
Serial.setTimeout(100);
DeserializationError error = deserializeJson(doc, Serial);
if (error) return;
fileDoc = &doc;
verboseResponse = deserializeState(doc.as<JsonObject>());
fileDoc = nullptr;
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
Serial.setTimeout(100);
DeserializationError error = deserializeJson(doc, Serial);
if (error) {
jsonBufferLock = false;
return;
}
fileDoc = &doc;
verboseResponse = deserializeState(doc.as<JsonObject>());
fileDoc = nullptr;
//only send response if TX pin is unused for other purposes
if (verboseResponse && !pinManager.isPinAllocated(1)) {
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
doc.clear();
JsonObject state = doc.createNestedObject("state");
serializeState(state);
JsonObject info = doc.createNestedObject("info");
@ -62,6 +70,7 @@ void handleSerial()
serializeJson(doc, Serial);
}
jsonBufferLock = false;
}
break;
case AdaState::Header_d:

View File

@ -110,9 +110,16 @@ void initServer()
bool verboseResponse = false;
bool isConfig = false;
{ //scope JsonDocument so it releases its buffer
DynamicJsonDocument jsonBuffer(JSON_BUFFER_SIZE);
DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject));
JsonObject root = jsonBuffer.as<JsonObject>();
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
DeserializationError error = deserializeJson(doc, (uint8_t*)(request->_tempObject));
JsonObject root = doc.as<JsonObject>();
if (error || root.isNull()) {
request->send(400, "application/json", F("{\"error\":9}")); return;
}
@ -124,12 +131,13 @@ void initServer()
serializeJson(root,Serial);
DEBUG_PRINTLN();
#endif
fileDoc = &jsonBuffer; // used for applying presets (presets.cpp)
fileDoc = &doc; // used for applying presets (presets.cpp)
verboseResponse = deserializeState(root);
fileDoc = nullptr;
} else {
verboseResponse = deserializeConfig(root); //use verboseResponse to determine whether cfg change should be saved immediately
}
jsonBufferLock = false;
}
if (verboseResponse) {
if (!isConfig) {

View File

@ -36,16 +36,27 @@ void wsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventTyp
}
bool verboseResponse = false;
{ //scope JsonDocument so it releases its buffer
DynamicJsonDocument jsonBuffer(JSON_BUFFER_SIZE);
DeserializationError error = deserializeJson(jsonBuffer, data, len);
JsonObject root = jsonBuffer.as<JsonObject>();
if (error || root.isNull()) return;
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
DeserializationError error = deserializeJson(doc, data, len);
JsonObject root = doc.as<JsonObject>();
if (error || root.isNull()) {
jsonBufferLock = false;
return;
}
/*
#ifdef WLED_DEBUG
DEBUG_PRINT(F("Incoming WS: "));
serializeJson(root,Serial);
DEBUG_PRINTLN();
#endif
*/
if (root["v"] && root.size() == 1) {
//if the received value is just "{"v":true}", send only to this client
verboseResponse = true;
@ -53,7 +64,7 @@ void wsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventTyp
{
wsLiveClientId = root["lv"] ? client->id() : 0;
} else {
fileDoc = &jsonBuffer;
fileDoc = &doc;
verboseResponse = deserializeState(root);
fileDoc = nullptr;
if (!interfaceUpdateCallMode) {
@ -61,6 +72,7 @@ void wsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventTyp
if (millis() - lastInterfaceUpdate > 1700) verboseResponse = false;
}
}
jsonBufferLock = false;
}
//update if it takes longer than 300ms until next "broadcast"
if (verboseResponse && (millis() - lastInterfaceUpdate < 1700 || !interfaceUpdateCallMode)) sendDataWs(client);
@ -102,14 +114,24 @@ void sendDataWs(AsyncWebSocketClient * client)
AsyncWebSocketMessageBuffer * buffer;
{ //scope JsonDocument so it releases its buffer
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonObject state = doc.createNestedObject("state");
serializeState(state);
JsonObject info = doc.createNestedObject("info");
serializeInfo(info);
size_t len = measureJson(doc);
buffer = ws.makeBuffer(len);
if (!buffer) return; //out of memory
if (!buffer) {
jsonBufferLock = false;
return; //out of memory
}
/*
#ifdef WLED_DEBUG
DEBUG_PRINT(F("Outgoing WS: "));
@ -118,6 +140,7 @@ void sendDataWs(AsyncWebSocketClient * client)
#endif
*/
serializeJson(doc, (char *)buffer->get(), len +1);
jsonBufferLock = false;
}
DEBUG_PRINT(F("Sending WS data "));
if (client) {

View File

@ -249,13 +249,22 @@ void getSettingsJS(byte subPage, char* dest)
{
char nS[8];
// Pin reservations will become unnecessary when settings pages will read cfg.json directly
// add reserved and usermod pins as d.um_p array
oappend(SET_F("d.um_p=[6,7,8,9,10,11"));
DynamicJsonDocument doc(JSON_BUFFER_SIZE/2);
#ifdef WLED_USE_DYNAMIC_JSON
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
#else
while (jsonBufferLock) delay(1);
jsonBufferLock = true;
doc.clear();
#endif
JsonObject mods = doc.createNestedObject(F("um"));
usermods.addToConfig(mods);
if (!mods.isNull()) fillUMPins(mods);
jsonBufferLock = false;
#ifdef WLED_ENABLE_DMX
oappend(SET_F(",2")); // DMX hardcoded pin