diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h index 12dcc0cc3..23737a418 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.h @@ -2,11 +2,16 @@ #include "wled.h" #include +#include #ifndef ESP32 #error This audio reactive usermod does not support the ESP8266. #endif +#ifdef WLED_DEBUG +#include +#endif + /* * Usermods allow you to add own functionality to WLED more easily * See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality @@ -31,7 +36,8 @@ constexpr i2s_port_t I2S_PORT = I2S_NUM_0; constexpr int BLOCK_SIZE = 128; -constexpr int SAMPLE_RATE = 20480; // Base sample rate in Hz +constexpr int SAMPLE_RATE = 20480; // Base sample rate in Hz - 20Khz is experimental +//constexpr int SAMPLE_RATE = 10240; // Base sample rate in Hz - standard // #define MIC_LOGGER // #define MIC_SAMPLING_LOG @@ -42,7 +48,7 @@ constexpr int SAMPLE_RATE = 20480; // Base sample rate in Hz // globals static uint8_t inputLevel = 128; // UI slider value static uint8_t soundSquelch = 10; // squelch value for volume reactive routines (config value) -static uint8_t sampleGain = 1; // sample gain (config value) +static uint8_t sampleGain = 60; // sample gain (config value) static uint8_t soundAgc = 0; // Automagic gain control: 0 - none, 1 - normal, 2 - vivid, 3 - lazy (config value) static uint8_t audioSyncEnabled = 0; // bit field: bit 0 - send, bit 1 - receive (config value) @@ -51,21 +57,22 @@ static uint8_t audioSyncEnabled = 0; // bit field: bit 0 - send, bit 1 // Note: in C++, "const" implies "static" - no need to explicitly declare everything as "static const" // #define AGC_NUM_PRESETS 3 // AGC presets: normal, vivid, lazy -const float agcSampleDecay[AGC_NUM_PRESETS] = { 0.9994f, 0.9985f, 0.9997f}; // decay factor for sampleMax, in case the current sample is below sampleMax +const double agcSampleDecay[AGC_NUM_PRESETS] = { 0.9994f, 0.9985f, 0.9997f}; // decay factor for sampleMax, in case the current sample is below sampleMax const float agcZoneLow[AGC_NUM_PRESETS] = { 32, 28, 36}; // low volume emergency zone const float agcZoneHigh[AGC_NUM_PRESETS] = { 240, 240, 248}; // high volume emergency zone const float agcZoneStop[AGC_NUM_PRESETS] = { 336, 448, 304}; // disable AGC integrator if we get above this level const float agcTarget0[AGC_NUM_PRESETS] = { 112, 144, 164}; // first AGC setPoint -> between 40% and 65% const float agcTarget0Up[AGC_NUM_PRESETS] = { 88, 64, 116}; // setpoint switching value (a poor man's bang-bang) const float agcTarget1[AGC_NUM_PRESETS] = { 220, 224, 216}; // second AGC setPoint -> around 85% -const float agcFollowFast[AGC_NUM_PRESETS] = { 1/192.f, 1/128.f, 1/256.f}; // quickly follow setpoint - ~0.15 sec -const float agcFollowSlow[AGC_NUM_PRESETS] = {1/6144.f,1/4096.f,1/8192.f}; // slowly follow setpoint - ~2-15 secs -const float agcControlKp[AGC_NUM_PRESETS] = { 0.6f, 1.5f, 0.65f}; // AGC - PI control, proportional gain parameter -const float agcControlKi[AGC_NUM_PRESETS] = { 1.7f, 1.85f, 1.2f}; // AGC - PI control, integral gain parameter -const float agcSampleSmooth[AGC_NUM_PRESETS] = { 1/12.f, 1/6.f, 1/16.f}; // smoothing factor for sampleAgc (use rawSampleAgc if you want the non-smoothed value) +const double agcFollowFast[AGC_NUM_PRESETS] = { 1/192.f, 1/128.f, 1/256.f}; // quickly follow setpoint - ~0.15 sec +const double agcFollowSlow[AGC_NUM_PRESETS] = {1/6144.f,1/4096.f,1/8192.f}; // slowly follow setpoint - ~2-15 secs +const double agcControlKp[AGC_NUM_PRESETS] = { 0.6f, 1.5f, 0.65f}; // AGC - PI control, proportional gain parameter +const double agcControlKi[AGC_NUM_PRESETS] = { 1.7f, 1.85f, 1.2f}; // AGC - PI control, integral gain parameter +const float agcSampleSmooth[AGC_NUM_PRESETS] = { 1/12.f, 1/6.f, 1/16.f}; // smoothing factor for sampleAgc (use rawSampleAgc if you want the non-smoothed value) // AGC presets end static AudioSource *audioSource = nullptr; +static volatile bool disableSoundProcessing = false; // if true, sound processing (FFT, filters, AGC) will be suspended. "volatile" as its shared between tasks. //static uint16_t micData; // Analog input for FFT static uint16_t micDataSm; // Smoothed mic data, as it's a bit twitchy @@ -75,6 +82,12 @@ static float multAgc = 1.0f; // sample * multAgc = sampleAgc. //////////////////// // Begin FFT Code // //////////////////// +#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT +// lib_deps += https://github.com/kosme/arduinoFFT#develop @ 1.9.2 +#define FFT_SPEED_OVER_PRECISION // enables use of reciprocals (1/x etc), and an a few other speedups +#define FFT_SQRT_APPROXIMATION // enables "quake3" style inverse sqrt +//#define sqrt(x) sqrtf(x) // little hack that reduces FFT time by 50% on ESP32 (as alternative to FFT_SQRT_APPROXIMATION) +#endif #include "arduinoFFT.h" // FFT Variables @@ -88,6 +101,10 @@ static float vReal[samplesFFT]; static float vImag[samplesFFT]; static float fftBin[samplesFFT]; +#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT +static float windowWeighingFactors[samplesFFT]; +#endif + // Try and normalize fftBin values to a max of 4096, so that 4096/16 = 256. // Oh, and bins 0,1,2 are no good, so we'll zero them out. static float fftCalc[16]; @@ -109,7 +126,12 @@ static uint8_t linearNoise[16] = { 34, 28, 26, 25, 20, 12, 9, 6, 4, 4, 3, 2, 2, static float fftResultPink[16] = { 1.70f, 1.71f, 1.73f, 1.78f, 1.68f, 1.56f, 1.55f, 1.63f, 1.79f, 1.62f, 1.80f, 2.06f, 2.47f, 3.35f, 6.83f, 9.55f }; // Create FFT object +#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT +static ArduinoFFT FFT = ArduinoFFT( vReal, vImag, samplesFFT, SAMPLE_RATE, windowWeighingFactors); +#else static arduinoFFT FFT = arduinoFFT(vReal, vImag, samplesFFT, SAMPLE_RATE); +#endif + static TaskHandle_t FFT_Task = nullptr; float fftAddAvg(int from, int to) { @@ -132,17 +154,25 @@ void FFTcode(void * parameter) delay(1); // DO NOT DELETE THIS LINE! It is needed to give the IDLE(0) task enough time and to keep the watchdog happy. // taskYIELD(), yield(), vTaskDelay() and esp_task_wdt_feed() didn't seem to work. - // Only run the FFT computing code if we're not in Receive mode - if (audioSyncEnabled & 0x02) continue; + // Only run the FFT computing code if we're not in Receive mode and not in realtime mode + if (disableSoundProcessing || (audioSyncEnabled & 0x02)) { + delay(7); // release CPU - delay is implemeted using vTaskDelay(). cannot use yield() because we are out of arduino loop context + continue; + } #ifdef WLED_DEBUG - unsigned long start = millis(); +// unsigned long start = millis(); + uint64_t start = esp_timer_get_time(); #endif if (audioSource) audioSource->getSamples(vReal, samplesFFT); #ifdef WLED_DEBUG - sampleTime = ((millis() - start)*3 + sampleTime*7)/10; // smooth + //sampleTime = ((millis() - start)*3 + sampleTime*7)/10; // smooth + if (start < esp_timer_get_time()) { // filter out overflows + unsigned long sampleTimeInMillis = (esp_timer_get_time() - start +500ULL) / 1000ULL; // "+500" to ensure proper rounding + sampleTime = (sampleTimeInMillis*3 + sampleTime*7)/10; // smooth + } #endif // old code - Last sample in vReal is our current mic sample @@ -170,6 +200,12 @@ void FFTcode(void * parameter) micDataSm = (uint16_t)maxSample1; micDataReal = maxSample1; +#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT + FFT.dcRemoval(); // remove DC offset + FFT.windowing( FFTWindow::Flat_top, FFTDirection::Forward); // Weigh data + FFT.compute( FFTDirection::Forward ); // Compute FFT + FFT.complexToMagnitude(); // Compute magnitudes +#else FFT.DCRemoval(); // let FFT lib remove DC component, so we don't need to care about this in getSamples() //FFT.Windowing( FFT_WIN_TYP_HAMMING, FFT_FORWARD ); // Weigh data - standard Hamming window @@ -178,7 +214,7 @@ void FFTcode(void * parameter) FFT.Windowing( FFT_WIN_TYP_FLT_TOP, FFT_FORWARD ); // Flat Top Window - better amplitude accuracy FFT.Compute( FFT_FORWARD ); // Compute FFT FFT.ComplexToMagnitude(); // Compute magnitudes - +#endif // // vReal[3 .. 255] contain useful data, each a 20Hz interval (60Hz - 5120Hz). // There could be interesting data at bins 0 to 2, but there are too many artifacts. @@ -212,7 +248,11 @@ void FFTcode(void * parameter) xtemp[23] = vReal[samplesFFT-1]; vReal[samplesFFT-1] = 0.0f; #endif +#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT + FFT.majorPeak(FFT_MajorPeak, FFT_Magnitude); // let the effects know which freq was most dominant +#else FFT.MajorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant +#endif #ifdef MAJORPEAK_SUPPRESS_NOISE // dirty hack: limit suppressed channel intensities to FFT_Magnitude @@ -297,7 +337,11 @@ void FFTcode(void * parameter) micDataReal = maxSample2; #ifdef WLED_DEBUG - fftTime = ((millis() - start)*3 + fftTime*7)/10; + //fftTime = ((millis() - start)*3 + fftTime*7)/10; + if (start < esp_timer_get_time()) { // filter out overflows + unsigned long fftTimeInMillis = ((esp_timer_get_time() - start) +500ULL) / 1000ULL; // "+500" to ensure proper rounding + fftTime = (fftTimeInMillis*3 + fftTime*7)/10; // smooth + } #endif #ifdef SR_DEBUG @@ -322,7 +366,7 @@ class AudioReactive : public Usermod { int8_t audioPin = AUDIOPIN; #endif #ifndef DMTYPE // I2S mic type - uint8_t dmType = 0; // none/disabled/analog + uint8_t dmType = 1; // 0=none/disabled/analog; 1=generic I2S #else uint8_t dmType = DMTYPE; #endif @@ -359,9 +403,8 @@ class AudioReactive : public Usermod { struct audioSyncPacket { char header[6]; - uint8_t myVals[32]; // 32 Bytes int sampleAgc; // 04 Bytes - int sample; // 04 Bytes + int sampleRaw; // 04 Bytes float sampleAvg; // 04 Bytes bool samplePeak; // 01 Bytes uint8_t fftResult[16]; // 16 Bytes @@ -379,10 +422,9 @@ class AudioReactive : public Usermod { // variables used in effects uint8_t maxVol = 10; // Reasonable value for constant volume for 'peak detector', as it won't always trigger uint8_t binNum = 8; // Used to select the bin for FFT based beat detection. - uint8_t myVals[32]; // Used to store a pile of samples because WLED frame rate and WLED sample rate are not synchronized. Frame rate is too low. bool samplePeak = 0; // Boolean flag for peak. Responding routine must reset this flag - int16_t sample; // either sampleRaw or rawSampleAgc depending on soundAgc - float sampleSmth; // either sampleAvg or sampleAgc depending on soundAgc; smoothed sample + float volumeSmth; // either sampleAvg or sampleAgc depending on soundAgc; smoothed sample + int16_t volumeRaw; // either sampleRaw or rawSampleAgc depending on soundAgc #ifdef MIC_SAMPLING_LOG uint8_t targetAgc = 60; // This is our setPoint at 20% of max for the adjusted output (used only in logAudio()) @@ -390,13 +432,13 @@ class AudioReactive : public Usermod { bool udpSamplePeak = 0; // Boolean flag for peak. Set at the same tiem as samplePeak, but reset by transmitAudioData int16_t micIn = 0; // Current sample starts with negative values and large values, which is why it's 16 bit signed int16_t sampleRaw; // Current sample. Must only be updated ONCE!!! (amplified mic value by sampleGain and inputLevel; smoothed over 16 samples) - float sampleMax = 0.0f; // Max sample over a few seconds. Needed for AGC controler. + double sampleMax = 0.0; // Max sample over a few seconds. Needed for AGC controler. float sampleReal = 0.0f; // "sampleRaw" as float, to provide bits that are lost otherwise (before amplification by sampleGain or inputLevel). Needed for AGC. float sampleAvg = 0.0f; // Smoothed Average sampleRaw float sampleAgc = 0.0f; // Our AGC sample int16_t rawSampleAgc = 0; // Our AGC sample - raw uint32_t timeOfPeak = 0; - uint32_t lastTime = 0; + unsigned long lastTime = 0; // last time of running UDP Microphone Sync float micLev = 0.0f; // Used to convert returned value to have '0' as minimum. A leveller float expAdjF = 0.0f; // Used for exponential filter. @@ -406,7 +448,7 @@ class AudioReactive : public Usermod { // used for AGC uint8_t lastMode = 0; // last known effect mode int last_soundAgc = -1; - float control_integrated = 0.0f; // persistent across calls to agcAvg(); "integrator control" = accumulated error + double control_integrated = 0.0; // persistent across calls to agcAvg(); "integrator control" = accumulated error unsigned long last_update_time = 0; unsigned long last_kick_time = 0; uint8_t last_user_inputLevel = 0; @@ -419,6 +461,7 @@ class AudioReactive : public Usermod { static const char _digitalmic[]; static const char UDP_SYNC_HEADER[]; + float my_magnitude; // private methods void logAudio() @@ -526,7 +569,7 @@ class AudioReactive : public Usermod { float control_error; // "control error" input for PI control if (last_soundAgc != soundAgc) - control_integrated = 0.0f; // new preset - reset integrator + control_integrated = 0.0; // new preset - reset integrator // For PI controller, we need to have a constant "frequency" // so let's make sure that the control loop is not running at insane speed @@ -540,8 +583,8 @@ class AudioReactive : public Usermod { //multAgcTemp = multAgc; // keep old control value (no change) tmpAgc = 0; // we need to "spin down" the intgrated error buffer - if (fabs(control_integrated) < 0.01f) control_integrated = 0.0f; - else control_integrated *= 0.91f; + if (fabs(control_integrated) < 0.01) control_integrated = 0.0; + else control_integrated *= 0.91; } else { // compute new setpoint if (tmpAgc <= agcTarget0Up[AGC_preset]) @@ -559,9 +602,9 @@ class AudioReactive : public Usermod { if (((multAgcTemp > 0.085f) && (multAgcTemp < 6.5f)) //integrator anti-windup by clamping && (multAgc*sampleMax < agcZoneStop[AGC_preset])) //integrator ceiling (>140% of max) - control_integrated += control_error * 0.002f * 0.25f; // 2ms = intgration time; 0.25 for damping + control_integrated += control_error * 0.002 * 0.25; // 2ms = intgration time; 0.25 for damping else - control_integrated *= 0.9f; // spin down that beasty integrator + control_integrated *= 0.9; // spin down that beasty integrator // apply PI Control tmpAgc = sampleReal * lastMultAgc; // check "zone" of the signal using previous gain @@ -599,6 +642,14 @@ class AudioReactive : public Usermod { //if (userVar0 > 255) userVar0 = 255; last_soundAgc = soundAgc; + + volumeSmth = (soundAgc) ? sampleAgc:sampleAvg; + volumeRaw = (soundAgc) ? rawSampleAgc : sampleRaw; + + my_magnitude = FFT_Magnitude; // / 16.0f, 8.0f, 4.0f done in effects + if (soundAgc) my_magnitude *= multAgc; + if (volumeSmth < 1 ) my_magnitude = 0.001f; // noise gate closed - mute + } // agcAvg() @@ -698,12 +749,8 @@ class AudioReactive : public Usermod { audioSyncPacket transmitData; strncpy_P(transmitData.header, PSTR(UDP_SYNC_HEADER), 6); - for (int i = 0; i < 32; i++) { - transmitData.myVals[i] = myVals[i]; - } - transmitData.sampleAgc = sampleAgc; - transmitData.sample = sampleRaw; + transmitData.sampleRaw = sampleRaw; transmitData.sampleAvg = sampleAvg; transmitData.samplePeak = udpSamplePeak; udpSamplePeak = 0; // Reset udpSamplePeak after we've transmitted it @@ -742,11 +789,9 @@ class AudioReactive : public Usermod { if (packetSize == sizeof(audioSyncPacket) && !(isValidUdpSyncVersion((const char *)fftBuff))) { audioSyncPacket *receivedPacket = reinterpret_cast(fftBuff); - for (int i = 0; i < 32; i++) myVals[i] = receivedPacket->myVals[i]; - sampleAgc = receivedPacket->sampleAgc; rawSampleAgc = receivedPacket->sampleAgc; - sampleRaw = receivedPacket->sample; + sampleRaw = receivedPacket->sampleRaw; sampleAvg = receivedPacket->sampleAvg; // Only change samplePeak IF it's currently false. @@ -774,49 +819,30 @@ class AudioReactive : public Usermod { */ void setup() { + disableSoundProcessing = true; // just to be sure if (!initDone) { // usermod exchangeable data // we will assign all usermod exportable data here as pointers to original variables or arrays and allocate memory for pointers um_data = new um_data_t; - um_data->u_size = 18; + um_data->u_size = 8; um_data->u_type = new um_types_t[um_data->u_size]; um_data->u_data = new void*[um_data->u_size]; - um_data->u_data[ 0] = &sampleAvg; //*used (2D Swirl, 2D Waverly, Gravcenter, Gravcentric, Gravimeter, Midnoise, Noisefire, Noisemeter, Plasmoid, Binmap, Freqmap, Freqpixels, Freqwave, Gravfreq, Rocktaves, Waterfall) - um_data->u_type[ 0] = UMT_FLOAT; - um_data->u_data[ 1] = &soundAgc; //*used (2D Swirl, 2D Waverly, Gravcenter, Gravcentric, Gravimeter, Matripix, Midnoise, Noisefire, Noisemeter, Pixelwave, Plasmoid, Puddles, Binmap, Freqmap, Freqpixels, Freqwave, Gravfreq, Rocktaves, Waterfall) - um_data->u_type[ 1] = UMT_BYTE; - um_data->u_data[ 2] = &sampleAgc; //*used (can be calculated as: sampleReal * multAgc) (..., Juggles, ..., Pixels, Puddlepeak, Freqmatrix) - um_data->u_type[ 2] = UMT_FLOAT; - um_data->u_data[ 3] = &sampleRaw; //*used (Matripix, Noisemeter, Pixelwave, Puddles, 2D Swirl, for debugging Gravimeter) - um_data->u_type[ 3] = UMT_INT16; - um_data->u_data[ 4] = &rawSampleAgc; //*used (Matripix, Noisemeter, Pixelwave, Puddles, 2D Swirl) - um_data->u_type[ 4] = UMT_INT16; - um_data->u_data[ 5] = &samplePeak; //*used (Puddlepeak, Ripplepeak, Waterfall) - um_data->u_type[ 5] = UMT_BYTE; - um_data->u_data[ 6] = &FFT_MajorPeak; //*used (Ripplepeak, Freqmap, Freqmatrix, Freqpixels, Freqwave, Gravfreq, Rocktaves, Waterfall) - um_data->u_type[ 6] = UMT_FLOAT; - um_data->u_data[ 7] = &FFT_Magnitude; //*used (Binmap, Freqmap, Freqpixels, Rocktaves, Waterfall) - um_data->u_type[ 7] = UMT_FLOAT; - um_data->u_data[ 8] = fftResult; //*used (Blurz, DJ Light, Noisemove, GEQ_base, 2D Funky Plank, Akemi) - um_data->u_type[ 8] = UMT_BYTE_ARR; - um_data->u_data[ 9] = &maxVol; // assigned in effect function from UI element!!! (Puddlepeak, Ripplepeak, Waterfall) - um_data->u_type[ 9] = UMT_BYTE; - um_data->u_data[10] = &binNum; // assigned in effect function from UI element!!! (Puddlepeak, Ripplepeak, Waterfall) - um_data->u_type[10] = UMT_BYTE; - um_data->u_data[11] = &multAgc; //*used (for debugging) (Gravimeter, Binmap, Freqmap, Freqpixels, Rocktaves, Waterfall,) - um_data->u_type[11] = UMT_FLOAT; - um_data->u_data[12] = &sampleReal; //*used (for debugging) (Gravimeter) - um_data->u_type[12] = UMT_FLOAT; - um_data->u_data[13] = &sampleGain; //*used (for debugging) (Gravimeter, Binmap) - um_data->u_type[13] = UMT_FLOAT; - um_data->u_data[14] = myVals; //*used (only once, Pixels) - um_data->u_type[14] = UMT_UINT16_ARR; - um_data->u_data[15] = &soundSquelch; //*used (for debugging) (only once, Binmap) - um_data->u_type[15] = UMT_BYTE; - um_data->u_data[16] = fftBin; //*used (for debugging) (only once, Binmap) - um_data->u_type[16] = UMT_FLOAT_ARR; - um_data->u_data[17] = &inputLevel; // global UI element!!! (Gravimeter, Binmap) - um_data->u_type[17] = UMT_BYTE; + um_data->u_data[0] = &volumeSmth; //*used (New) + um_data->u_type[0] = UMT_FLOAT; + um_data->u_data[1] = &volumeRaw; // used (New) + um_data->u_type[1] = UMT_UINT16; + um_data->u_data[2] = fftResult; //*used (Blurz, DJ Light, Noisemove, GEQ_base, 2D Funky Plank, Akemi) + um_data->u_type[2] = UMT_BYTE_ARR; + um_data->u_data[3] = &samplePeak; //*used (Puddlepeak, Ripplepeak, Waterfall) + um_data->u_type[3] = UMT_BYTE; + um_data->u_data[4] = &FFT_MajorPeak; //*used (Ripplepeak, Freqmap, Freqmatrix, Freqpixels, Freqwave, Gravfreq, Rocktaves, Waterfall) + um_data->u_type[4] = UMT_FLOAT; + um_data->u_data[5] = &my_magnitude; // used (New) + um_data->u_type[5] = UMT_FLOAT; + um_data->u_data[6] = &maxVol; // assigned in effect function from UI element!!! (Puddlepeak, Ripplepeak, Waterfall) + um_data->u_type[6] = UMT_BYTE; + um_data->u_data[7] = &binNum; // assigned in effect function from UI element!!! (Puddlepeak, Ripplepeak, Waterfall) + um_data->u_type[7] = UMT_BYTE; } // Reset I2S peripheral for good measure @@ -869,6 +895,7 @@ class AudioReactive : public Usermod { if (!audioSource) enabled = false; // audio failed to initialise if (enabled) onUpdateBegin(false); // create FFT task + if (enabled) disableSoundProcessing = false; initDone = true; } @@ -902,18 +929,69 @@ class AudioReactive : public Usermod { */ void loop() { - if (!enabled || strip.isUpdating()) return; + static unsigned long lastUMRun = millis(); - if (!(audioSyncEnabled & 0x02)) { // Only run the sampling code IF we're not in Receive mode + if (!enabled) { + disableSoundProcessing = true; // keep processing suspended (FFT task) + lastUMRun = millis(); // update time keeping + return; + } + // We cannot wait indefinitely before processing audio data + //if (!enabled || strip.isUpdating()) return; + if (strip.isUpdating() && (millis() - lastUMRun < 12)) return; // be nice, but not too nice + + // suspend local sound processing when "real time mode" is active (E131, UDP, ADALIGHT, ARTNET) + if ( (realtimeOverride == REALTIME_OVERRIDE_NONE) // please odd other orrides here if needed + &&( (realtimeMode == REALTIME_MODE_GENERIC) + ||(realtimeMode == REALTIME_MODE_E131) + ||(realtimeMode == REALTIME_MODE_UDP) + ||(realtimeMode == REALTIME_MODE_ADALIGHT) + ||(realtimeMode == REALTIME_MODE_ARTNET) ) ) // please add other modes here if needed + { + #ifdef WLED_DEBUG + if ((disableSoundProcessing == false) && (audioSyncEnabled == 0)) { // we just switched to "disabled" + DEBUG_PRINTLN("[AR userLoop] realtime mode active - audio processing suspended."); + DEBUG_PRINTF( " RealtimeMode = %d; RealtimeOverride = %d\n", int(realtimeMode), int(realtimeOverride)); + } + #endif + disableSoundProcessing = true; + } else { + #ifdef WLED_DEBUG + if ((disableSoundProcessing == true) && (audioSyncEnabled == 0)) { // we just switched to "disabled" + DEBUG_PRINTLN("[AR userLoop] realtime mode ended - audio processing resumed."); + DEBUG_PRINTF( " RealtimeMode = %d; RealtimeOverride = %d\n", int(realtimeMode), int(realtimeOverride)); + } + #endif + if ((disableSoundProcessing == true) && (audioSyncEnabled == 0)) lastUMRun = millis(); // just left "realtime mode" - update timekeeping + disableSoundProcessing = false; + } + + if (audioSyncEnabled & 0x02) disableSoundProcessing = true; // make sure everything is disabled IF in audio Receive mode + if (audioSyncEnabled & 0x01) disableSoundProcessing = false; // keep running audio IF we're in audio Transmit mode + + if (!(audioSyncEnabled & 0x02) && !disableSoundProcessing) { // Only run the sampling code IF we're not in Receive mode or realtime mode bool agcEffect = false; if (soundAgc > AGC_NUM_PRESETS) soundAgc = 0; // make sure that AGC preset is valid (to avoid array bounds violation) + int userloopDelay = int(millis() - lastUMRun); // how long since last run? we might need to cat up to compensate lost times + int samplesSkipped = 0; + if (userloopDelay > 12) samplesSkipped = (userloopDelay + 12) / 25; // every 25ms we get a new batch of samples + if (samplesSkipped > 100) samplesSkipped = 100; // don't be silly +#ifdef WLED_DEBUG + // complain when audio userloop has been delayed for long time. Currently we need userloop running between 500 and 1500 times per second. + if ((userloopDelay > 23) && !disableSoundProcessing && (audioSyncEnabled == 0)) { + // Expect lagging in soundreactive effects if you see the next messages !!! + DEBUG_PRINTF("[AR userLoop] hickup detected -> was inactive for last %d millis!\n", userloopDelay); + if (samplesSkipped > 0) DEBUG_PRINTF("[AR userLoop] lost %d sample(s).\n", samplesSkipped); + } +#endif + + lastUMRun = millis(); // update time keeping + getSample(); // Sample the microphone agcAvg(); // Calculated the PI adjusted value as sampleAvg - myVals[millis()%32] = sampleAgc; // filling values semi randomly (why?) - uint8_t knownMode = strip.getFirstSelectedSeg().mode; // 1st selected segment is more appropriate than main segment if (lastMode != knownMode) { // only execute if mode changes @@ -943,9 +1021,10 @@ class AudioReactive : public Usermod { new_user_inputLevel = MIN(MAX(new_user_inputLevel, 0),255); // update user interfaces - restrict frequency to avoid flooding UI's with small changes - if ( (((now_time - last_update_time > 3500) && (abs(new_user_inputLevel - inputLevel) > 2)) // small change - every 3.5 sec (max) - || ((now_time - last_update_time > 2200) && (abs(new_user_inputLevel - inputLevel) > 15)) // medium change - || ((now_time - last_update_time > 1200) && (abs(new_user_inputLevel - inputLevel) > 31))) ) // BIG change - every second + if (( ((now_time - last_update_time > 3500) && (abs(new_user_inputLevel - inputLevel) > 2)) // small change - every 3.5 sec (max) + ||((now_time - last_update_time > 2200) && (abs(new_user_inputLevel - inputLevel) > 15)) // medium change + ||((now_time - last_update_time > 1200) && (abs(new_user_inputLevel - inputLevel) > 31))) // BIG change - every second + && !strip.isUpdating()) // don't interfere while strip is updating { inputLevel = new_user_inputLevel; // change of least 3 units -> update user variable updateInterfaces(CALL_MODE_WS_SEND); // is this the correct way to notify UIs ? Yes says blazoncek @@ -987,6 +1066,7 @@ class AudioReactive : public Usermod { #ifdef WLED_DEBUG fftTime = sampleTime = 0; #endif + disableSoundProcessing = true; if (init && FFT_Task) { vTaskSuspend(FFT_Task); // update is about to begin, disable task to prevent crash } else { @@ -1004,6 +1084,7 @@ class AudioReactive : public Usermod { 0 // Core where the task should run ); } + if (enabled) disableSoundProcessing = false; } diff --git a/usermods/audioreactive/audio_source.h b/usermods/audioreactive/audio_source.h index a709d347e..168b3aca3 100644 --- a/usermods/audioreactive/audio_source.h +++ b/usermods/audioreactive/audio_source.h @@ -3,6 +3,16 @@ #include #include "wled.h" #include +#include +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0) +#include +#include +#endif + +//#include +//#include +//#include + /* ToDo: remove. ES7243 is controlled via compiler defines Until this configuration is moved to the webinterface @@ -88,7 +98,11 @@ class I2SSource : public AudioSource { .sample_rate = _sampleRate, .bits_per_sample = I2S_SAMPLE_RESOLUTION, .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0) + .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S), +#else .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB), +#endif .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, .dma_buf_count = 8, .dma_buf_len = _blockSize @@ -307,7 +321,11 @@ class I2SAdcSource : public I2SSource { .sample_rate = _sampleRate, .bits_per_sample = I2S_SAMPLE_RESOLUTION, .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0) + .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S), +#else .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB), +#endif .intr_alloc_flags = ESP_INTR_FLAG_LEVEL2, .dma_buf_count = 8, .dma_buf_len = _blockSize diff --git a/wled00/FX.cpp b/wled00/FX.cpp index d2d75f689..96b2e56e3 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -1976,7 +1976,7 @@ uint16_t mode_fire_2012() const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength(); uint32_t it = strip.now >> 5; //div 32 - uint16_t q = cols>>2; // a quarter of flames + //uint16_t q = cols>>2; // a quarter of flames if (!SEGENV.allocateData(cols*rows)) return mode_static(); //allocation failed @@ -5917,39 +5917,25 @@ static const char _data_FX_MODE_2DDRIFTROSE[] PROGMEM = "Drift Rose@Fade,Blur;;; /* use the following code to pass AudioReactive usermod variables to effect uint8_t *binNum = (uint8_t*)&SEGENV.aux1, *maxVol = (uint8_t*)(&SEGENV.aux1+1); // just in case assignment - uint16_t sample = 0; - uint8_t soundAgc = 0, soundSquelch = 10; bool samplePeak = false; - float sampleAgc = 0.0f, sampleAgv = 0.0f, multAgc = 0.0f, sampleReal = 0.0f; - float FFT_MajorPeak = 0.0, FFT_Magnitude = 0.0; + float FFT_MajorPeak = 0.0; uint8_t *fftResult = nullptr; - uint16_t *myVals = nullptr; float *fftBin = nullptr; um_data_t *um_data; if (usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - sampleAvg = *(float*) um_data->u_data[ 0]; - soundAgc = *(uint8_t*) um_data->u_data[ 1]; - sampleAgc = *(float*) um_data->u_data[ 2]; - sample = *(uint16_t*)um_data->u_data[ 3]; - rawSampleAgc = *(uint16_t*)um_data->u_data[ 4]; - samplePeak = *(uint8_t*) um_data->u_data[ 5]; - FFT_MajorPeak = *(float*) um_data->u_data[ 6]; - FFT_Magnitude = *(float*) um_data->u_data[ 7]; - fftResult = (uint8_t*) um_data->u_data[ 8]; - maxVol = (uint8_t*) um_data->u_data[ 9]; // requires UI element (SEGMENT.customX?), changes source element - binNum = (uint8_t*) um_data->u_data[10]; // requires UI element (SEGMENT.customX?), changes source element - multAgc = *(float*) um_data->u_data[11]; - sampleReal = *(float*) um_data->u_data[12]; - sampleGain = *(float*) um_data->u_data[13]; - myVals = (uint16_t*)um_data->u_data[14]; - soundSquelch = *(uint8_t*) um_data->u_data[15]; - fftBin = (float*) um_data->u_data[16]; - inputLevel = (uint8_t*) um_data->u_data[17]; // requires UI element (SEGMENT.customX?), changes source element + volumeSmth = *(float*) um_data->u_data[0]; + volumeRaw = *(float*) um_data->u_data[1]; + fftResult = (uint8_t*) um_data->u_data[2]; + samplePeak = *(uint8_t*) um_data->u_data[3]; + FFT_MajorPeak = *(float*) um_data->u_data[4]; + my_magnitude = *(float*) um_data->u_data[5]; + maxVol = (uint8_t*) um_data->u_data[6]; // requires UI element (SEGMENT.customX?), changes source element + binNum = (uint8_t*) um_data->u_data[7]; // requires UI element (SEGMENT.customX?), changes source element + fftBin = (float*) um_data->u_data[8]; } else { // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - if (!myVals || !fftBin || ...) return mode_static(); */ @@ -5970,12 +5956,10 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - uint8_t samplePeak = *(uint8_t*)um_data->u_data[5]; - #ifdef ESP32 - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - #endif - uint8_t *maxVol = (uint8_t*)um_data->u_data[9]; - uint8_t *binNum = (uint8_t*)um_data->u_data[10]; + uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + uint8_t *maxVol = (uint8_t*)um_data->u_data[6]; + uint8_t *binNum = (uint8_t*)um_data->u_data[7]; // printUmData(); @@ -6062,21 +6046,17 @@ uint16_t mode_2DSwirl(void) { // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - int16_t sampleRaw = *(int16_t*)um_data->u_data[3]; - int16_t rawSampleAgc = *(int16_t*)um_data->u_data[4]; + float volumeSmth = *(float*) um_data->u_data[0]; //ewowi: use instead of sampleAvg??? + int16_t volumeRaw = *(int16_t*) um_data->u_data[1]; // printUmData(); - float tmpSound = (soundAgc) ? rawSampleAgc : sampleRaw; - - leds[XY( i, j)] += ColorFromPalette(SEGPALETTE, (ms / 11 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 11, 200, 255); - leds[XY( j, i)] += ColorFromPalette(SEGPALETTE, (ms / 13 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 13, 200, 255); - leds[XY(ni, nj)] += ColorFromPalette(SEGPALETTE, (ms / 17 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 17, 200, 255); - leds[XY(nj, ni)] += ColorFromPalette(SEGPALETTE, (ms / 29 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 29, 200, 255); - leds[XY( i, nj)] += ColorFromPalette(SEGPALETTE, (ms / 37 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 37, 200, 255); - leds[XY(ni, j)] += ColorFromPalette(SEGPALETTE, (ms / 41 + sampleAvg*4), tmpSound * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 41, 200, 255); + leds[XY( i, j)] += ColorFromPalette(SEGPALETTE, (ms / 11 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 11, 200, 255); + leds[XY( j, i)] += ColorFromPalette(SEGPALETTE, (ms / 13 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 13, 200, 255); + leds[XY(ni, nj)] += ColorFromPalette(SEGPALETTE, (ms / 17 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 17, 200, 255); + leds[XY(nj, ni)] += ColorFromPalette(SEGPALETTE, (ms / 29 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 29, 200, 255); + leds[XY( i, nj)] += ColorFromPalette(SEGPALETTE, (ms / 37 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 37, 200, 255); + leds[XY(ni, j)] += ColorFromPalette(SEGPALETTE, (ms / 41 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 41, 200, 255); SEGMENT.setPixels(leds); return FRAMETIME; @@ -6107,9 +6087,7 @@ uint16_t mode_2DWaverly(void) { // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fadeToBlackBy(leds, SEGMENT.speed); @@ -6119,7 +6097,7 @@ uint16_t mode_2DWaverly(void) { // use audio if available if (um_data) { thisVal /= 32; // reduce intensity of inoise8() - thisVal *= (soundAgc) ? sampleAgc : sampleAvg; + thisVal *= volumeSmth; } uint16_t thisMax = map(thisVal, 0, 512, 0, rows); @@ -6162,15 +6140,11 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; - - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fade_out(240); - float segmentSampleAvg = tmpSound * (float)SEGMENT.intensity / 255.0f; + float segmentSampleAvg = volumeSmth * (float)SEGMENT.intensity / 255.0f; segmentSampleAvg *= 0.125; // divide by 8, to compensate for later "sensitivty" upscaling float mySampleAvg = mapf(segmentSampleAvg*2.0, 0, 32, 0, (float)SEGLEN/2.0); // map to pixels available in current segment @@ -6213,18 +6187,14 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; // printUmData(); - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - SEGMENT.fade_out(240); SEGMENT.fade_out(240); // twice? really? - float segmentSampleAvg = tmpSound * (float)SEGMENT.intensity / 255.0; + float segmentSampleAvg = volumeSmth * (float)SEGMENT.intensity / 255.0; segmentSampleAvg *= 0.125f; // divide by 8, to compensate for later "sensitivty" upscaling float mySampleAvg = mapf(segmentSampleAvg*2.0, 0.0f, 32.0f, 0.0f, (float)SEGLEN/2.0); // map to pixels availeable in current segment @@ -6267,15 +6237,11 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; - - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fade_out(240); - float segmentSampleAvg = tmpSound * (float)SEGMENT.intensity / 255.0; + float segmentSampleAvg = volumeSmth * (float)SEGMENT.intensity / 255.0; segmentSampleAvg *= 0.25; // divide by 4, to compensate for later "sensitivty" upscaling float mySampleAvg = mapf(segmentSampleAvg*2.0, 0, 64, 0, (SEGLEN-1)); // map to pixels availeable in current segment @@ -6311,10 +6277,10 @@ uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAgc = *(float*)um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fade_out(224); - uint16_t my_sampleAgc = fmax(fmin(sampleAgc, 255.0), 0); + uint16_t my_sampleAgc = fmax(fmin(volumeSmth, 255.0), 0); for (size_t i=0; iu_data[1]; - int16_t sampleRaw = *(int16_t*)um_data->u_data[3]; - int16_t rawSampleAgc = *(int16_t*)um_data->u_data[4]; + int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); @@ -6349,10 +6313,9 @@ uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline. if(SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; - uint8_t tmpSound = (soundAgc) ? rawSampleAgc : sampleRaw; - int pixBri = tmpSound * SEGMENT.intensity / 64; - leds[SEGLEN-1] = color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(millis(), false, PALETTE_SOLID_WRAP, 0), pixBri); - for (int i=0; iu_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fade_out(SEGMENT.speed); SEGMENT.fade_out(SEGMENT.speed); - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - float tmpSound2 = tmpSound * (float)SEGMENT.intensity / 256.0; // Too sensitive. + float tmpSound2 = volumeSmth * (float)SEGMENT.intensity / 256.0; // Too sensitive. tmpSound2 *= (float)SEGMENT.intensity / 128.0; // Reduce sensitity/length. int maxLen = mapf(tmpSound2, 0, 127, 0, SEGLEN/2); if (maxLen >SEGLEN/2) maxLen = SEGLEN/2; for (int i=(SEGLEN/2-maxLen); i<(SEGLEN/2+maxLen); i++) { - uint8_t index = inoise8(i*tmpSound+SEGENV.aux0, SEGENV.aux1+i*tmpSound); // Get a value from the noise function. I'm using both x and y axis. + uint8_t index = inoise8(i*volumeSmth+SEGENV.aux0, SEGENV.aux1+i*volumeSmth); // Get a value from the noise function. I'm using both x and y axis. SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } @@ -6414,9 +6374,7 @@ uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; if (SEGENV.call == 0) SEGMENT.fill(BLACK); @@ -6424,9 +6382,8 @@ uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline. uint16_t index = inoise8(i*SEGMENT.speed/64,millis()*SEGMENT.speed/64*SEGLEN/255); // X location is constant, but we move along the Y at the rate of millis(). By Andrew Tuline. index = (255 - i*256/SEGLEN) * index/(256-SEGMENT.intensity); // Now we need to scale index so that it gets blacker as we get close to one of the ends. // This is a simple y=mx+b equation that's been scaled. index/128 is another scaling. - uint8_t tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - CRGB color = ColorFromPalette(myPal, index, tmpSound*2, LINEARBLEND); // Use the my own palette. + CRGB color = ColorFromPalette(myPal, index, volumeSmth*2, LINEARBLEND); // Use the my own palette. SEGMENT.setPixelColor(i, color); } @@ -6445,23 +6402,18 @@ uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; - int16_t sampleRaw = *(int16_t*)um_data->u_data[3]; - int16_t rawSampleAgc = *(int16_t*)um_data->u_data[4]; + float volumeSmth = *(float*) um_data->u_data[0]; + int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; uint8_t fadeRate = map(SEGMENT.speed,0,255,224,255); SEGMENT.fade_out(fadeRate); - float tmpSound = (soundAgc) ? rawSampleAgc : sampleRaw; - float tmpSound2 = tmpSound * 2.0 * (float)SEGMENT.intensity / 255.0; + float tmpSound2 = volumeRaw * 2.0 * (float)SEGMENT.intensity / 255.0; int maxLen = mapf(tmpSound2, 0, 255, 0, SEGLEN); // map to pixels availeable in current segment // Still a bit too sensitive. if (maxLen >SEGLEN) maxLen = SEGLEN; - tmpSound = soundAgc ? sampleAgc : sampleAvg; // now use smoothed value (sampleAvg or sampleAgc) for (int i=0; iu_data[1]; - int16_t sampleRaw = *(int16_t*)um_data->u_data[3]; - int16_t rawSampleAgc = *(int16_t*)um_data->u_data[4]; + int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 16; if (SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; - uint8_t tmpSound = (soundAgc) ? rawSampleAgc : sampleRaw; - int pixBri = tmpSound * SEGMENT.intensity / 64; + int pixBri = volumeRaw * SEGMENT.intensity / 64; leds[SEGLEN/2] = color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(millis(), false, PALETTE_SOLID_WRAP, 0), pixBri); for (int i=SEGLEN-1; i>SEGLEN/2; i--) leds[i] = leds[i-1]; // Move to the right. @@ -6534,9 +6483,7 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fadeToBlackBy(leds, 64); @@ -6549,8 +6496,7 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline. thisbright += cos8(((i*(97 +(5*SEGMENT.speed/32)))+plasmoip->thatphase) & 0xFF)/2; // Let's munge the brightness a bit and animate it all with the phases. uint8_t colorIndex=thisbright; - int tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - if (tmpSound * SEGMENT.intensity / 64 < thisbright) {thisbright = 0;} + if (volumeSmth * SEGMENT.intensity / 64 < thisbright) {thisbright = 0;} leds[i] += color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(colorIndex, false, PALETTE_SOLID_WRAP, 0), thisbright); } @@ -6576,10 +6522,10 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAgc = *(float*) um_data->u_data[2]; - uint8_t samplePeak = *(uint8_t*)um_data->u_data[5]; - uint8_t *maxVol = (uint8_t*)um_data->u_data[9]; - uint8_t *binNum = (uint8_t*)um_data->u_data[10]; + uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; + uint8_t *maxVol = (uint8_t*)um_data->u_data[6]; + uint8_t *binNum = (uint8_t*)um_data->u_data[7]; + float volumeSmth = *(float*) um_data->u_data[0]; if (SEGENV.call == 0) { SEGMENT.custom2 = *binNum; @@ -6592,7 +6538,7 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline. SEGMENT.fade_out(fadeVal); if (samplePeak == 1) { - size = sampleAgc * SEGMENT.intensity /256 /4 + 1; // Determine size of the flash based on the volume. + size = volumeSmth * SEGMENT.intensity /256 /4 + 1; // Determine size of the flash based on the volume. if (pos+size>= SEGLEN) size = SEGLEN - pos; } @@ -6620,14 +6566,10 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - int16_t sampleRaw = *(int16_t*)um_data->u_data[3]; - int16_t rawSampleAgc = *(int16_t*)um_data->u_data[4]; + int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; - uint16_t tmpSound = (soundAgc) ? rawSampleAgc : sampleRaw; - - if (tmpSound > 1) { - size = tmpSound * SEGMENT.intensity /256 /8 + 1; // Determine size of the flash based on the volume. + if (volumeRaw > 1) { + size = volumeRaw * SEGMENT.intensity /256 /8 + 1; // Determine size of the flash based on the volume. if (pos+size >= SEGLEN) size = SEGLEN - pos; } @@ -6650,19 +6592,22 @@ static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle si ////////////////////// uint16_t mode_pixels(void) { // Pixels. By Andrew Tuline. + if (!SEGENV.allocateData(32*sizeof(uint8_t))) return mode_static(); //allocation failed + uint8_t *myVals = reinterpret_cast(SEGENV.data); // Used to store a pile of samples because WLED frame rate and WLED sample rate are not synchronized. Frame rate is too low. + um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { um_data = simulateSound(SEGMENT.soundSim); } - float sampleAgc = *(float*) um_data->u_data[2]; - uint16_t *myVals = (uint16_t*)um_data->u_data[14]; - if (!myVals) return mode_static(); + float volumeSmth = *(float*) um_data->u_data[0]; + + myVals[millis()%32] = volumeSmth; // filling values semi randomly SEGMENT.fade_out(64+(SEGMENT.speed>>1)); for (int i=0; i u_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; if (!fftResult) return mode_static(); if (SEGENV.call == 0) { @@ -6734,7 +6679,7 @@ uint16_t mode_DJLight(void) { // Written by ??? Adapted by Wil // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - uint8_t *fftResult = (uint8_t*)um_data->u_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; if (!fftResult) return mode_static(); uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 64; @@ -6766,15 +6711,8 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - float FFT_Magnitude = *(float*) um_data->u_data[7]; - float multAgc = *(float*) um_data->u_data[11]; - - float my_magnitude = FFT_Magnitude / 4.0; - if (soundAgc) my_magnitude *= multAgc; - if (sampleAvg < 1 ) my_magnitude = 0.001; // noise gate closed - mute + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + float my_magnitude = *(float*) um_data->u_data[5] / 4.0f; SEGMENT.fade_out(SEGMENT.speed); @@ -6805,15 +6743,15 @@ uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Plesch // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAgc = *(float*)um_data->u_data[2]; - float FFT_MajorPeak = *(float*)um_data->u_data[6]; + float FFT_MajorPeak = *(float*)um_data->u_data[4]; + float volumeSmth = *(float*) um_data->u_data[0]; uint8_t secondHand = micros()/(256-SEGMENT.speed)/500 % 16; if(SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; uint8_t sensitivity = map(SEGMENT.custom3, 0, 255, 1, 10); - int pixVal = (sampleAgc * SEGMENT.intensity * sensitivity) / 256.0f; + int pixVal = (volumeSmth * SEGMENT.intensity * sensitivity) / 256.0f; if (pixVal > 255) pixVal = 255; float intensity = map(pixVal, 0, 255, 0, 100) / 100.0f; // make a brightness from the last avg @@ -6860,15 +6798,8 @@ uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - float FFT_Magnitude = *(float*) um_data->u_data[7]; - float multAgc = *(float*) um_data->u_data[11]; - - float my_magnitude = FFT_Magnitude / 16.0; - if (soundAgc) my_magnitude *= multAgc; - if (sampleAvg < 1 ) my_magnitude = 0.001; // noise gate closed - mute + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + float my_magnitude = *(float*) um_data->u_data[5] / 16.0f; uint16_t fadeRate = 2*SEGMENT.speed - SEGMENT.speed*SEGMENT.speed/255; // Get to 255 as quick as you can. SEGMENT.fade_out(fadeRate); @@ -6910,12 +6841,8 @@ uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschun // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - - if (SEGENV.call == 0) SEGMENT.fill(BLACK); + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + float volumeSmth = *(float*) um_data->u_data[0]; uint8_t secondHand = micros()/(256-SEGMENT.speed)/500 % 16; if(SEGENV.aux0 != secondHand) { @@ -6924,10 +6851,8 @@ uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschun //uint8_t fade = SEGMENT.custom3; //uint8_t fadeval; - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - float sensitivity = mapf(SEGMENT.custom3, 1, 255, 1, 10); - float pixVal = tmpSound * (float)SEGMENT.intensity / 256.0f * sensitivity; + float pixVal = volumeSmth * (float)SEGMENT.intensity / 256.0f * sensitivity; if (pixVal > 255) pixVal = 255; float intensity = mapf(pixVal, 0, 255, 0, 100) / 100.0f; // make a brightness from the last avg @@ -6977,15 +6902,12 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float sampleAgc = *(float*) um_data->u_data[2]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + float volumeSmth = *(float*) um_data->u_data[0]; SEGMENT.fade_out(240); - float tmpSound = (soundAgc) ? sampleAgc : sampleAvg; - float segmentSampleAvg = tmpSound * (float)SEGMENT.intensity / 255.0; + float segmentSampleAvg = volumeSmth * (float)SEGMENT.intensity / 255.0; segmentSampleAvg *= 0.125; // divide by 8, to compensate for later "sensitivty" upscaling float mySampleAvg = mapf(segmentSampleAvg*2.0, 0,32, 0, (float)SEGLEN/2.0); // map to pixels availeable in current segment @@ -7025,7 +6947,7 @@ uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuli // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - uint8_t *fftResult = (uint8_t*)um_data->u_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; if (!fftResult) return mode_static(); SEGMENT.fade_out(224); // Just in case something doesn't get faded. @@ -7056,11 +6978,8 @@ uint16_t mode_rocktaves(void) { // Rocktaves. Same note from eac // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - float FFT_Magnitude = *(float*) um_data->u_data[7]; - float multAgc = *(float*) um_data->u_data[11]; + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + float my_magnitude = *(float*) um_data->u_data[5] / 16.0f; SEGMENT.fadeToBlackBy(leds, 64); // Just in case something doesn't get faded. @@ -7068,11 +6987,7 @@ uint16_t mode_rocktaves(void) { // Rocktaves. Same note from eac uint8_t octCount = 0; // Octave counter. uint8_t volTemp = 0; - float my_magnitude = FFT_Magnitude / 16.0; // scale magnitude to be aligned with scaling of FFT bins - if (soundAgc) my_magnitude *= multAgc; // apply gain - if (sampleAvg < 1 ) my_magnitude = 0.001; // mute - - if (my_magnitude > 32) volTemp = 255; // We need to squelch out the background noise. + if (my_magnitude > 32) volTemp = 255; // We need to squelch out the background noise. while ( frTemp > 249 ) { octCount++; // This should go up to 5. @@ -7104,14 +7019,11 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - float sampleAvg = *(float*) um_data->u_data[0]; - uint8_t soundAgc = *(uint8_t*)um_data->u_data[1]; - uint8_t samplePeak = *(uint8_t*)um_data->u_data[5]; - float FFT_MajorPeak = *(float*) um_data->u_data[6]; - float FFT_Magnitude = *(float*) um_data->u_data[7]; - uint8_t *maxVol = (uint8_t*)um_data->u_data[9]; - uint8_t *binNum = (uint8_t*)um_data->u_data[10]; - float multAgc = *(float*) um_data->u_data[11]; + uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; + float FFT_MajorPeak = *(float*) um_data->u_data[4]; + uint8_t *maxVol = (uint8_t*)um_data->u_data[6]; + uint8_t *binNum = (uint8_t*)um_data->u_data[7]; + float my_magnitude = *(float*) um_data->u_data[5] / 8.0f; if (SEGENV.call == 0) { SEGENV.aux0 = 255; @@ -7126,10 +7038,6 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin if (SEGENV.aux0 != secondHand) { // Triggered millis timing. SEGENV.aux0 = secondHand; - float my_magnitude = FFT_Magnitude / 8.0f; - if (soundAgc) my_magnitude *= multAgc; - if (sampleAvg < 1 ) my_magnitude = 0.001f; // noise gate closed - mute - uint8_t pixCol = (log10f((float)FFT_MajorPeak) - 2.26f) * 177; // log10 frequency range is from 2.26 to 3.7. Let's scale accordingly. if (samplePeak) { @@ -7164,7 +7072,7 @@ uint16_t mode_2DGEQ(void) { // By Will Tatam. Code reduction by Ewoud Wijma. // add support for no audio data um_data = simulateSound(SEGMENT.soundSim); } - uint8_t *fftResult = (uint8_t*)um_data->u_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; if (!fftResult) return mode_static(); if (SEGENV.call == 0) for (int i=0; iu_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; if (!fftResult) return mode_static(); uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 64; @@ -7323,7 +7231,7 @@ uint16_t mode_2DAkemi(void) { if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { um_data = simulateSound(SEGMENT.soundSim); } - uint8_t *fftResult = (uint8_t*)um_data->u_data[8]; + uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; float base = fftResult[0]/255.0f; //draw and color Akemi diff --git a/wled00/html_other.h b/wled00/html_other.h index dd3dba69b..8e884c58d 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -8,7 +8,7 @@ // Autogenerated from wled00/data/usermod.htm, do not edit!! const uint16_t PAGE_usermod_length = 81; const uint8_t PAGE_usermod[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb3, 0x51, 0x74, 0xf1, 0x77, 0x0e, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb3, 0x51, 0x74, 0xf1, 0x77, 0x0e, 0x89, 0x0c, 0x70, 0x55, 0xc8, 0x28, 0xc9, 0xcd, 0xb1, 0xb3, 0x81, 0x90, 0x49, 0xf9, 0x29, 0x95, 0x76, 0x7e, 0xf9, 0x0a, 0xa5, 0xc5, 0xa9, 0x45, 0xb9, 0xf9, 0x29, 0x0a, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0x0a, 0xe5, 0xa9, 0x49, 0x0a, 0x05, 0x89, 0xe9, 0xa9, 0x0a, 0xc5, 0xa9, 0x25, 0x7a, @@ -43,7 +43,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; // Autogenerated from wled00/data/update.htm, do not edit!! const uint16_t PAGE_update_length = 616; const uint8_t PAGE_update[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30, 0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x4e, 0x41, 0xbc, 0x50, 0x92, 0x14, 0x8e, 0x56, 0xa8, 0x12, 0x52, 0x4f, 0x6a, 0x0b, 0xe2, 0x09, 0x39, 0xf6, 0x26, 0x31, 0xe7, 0xd8, 0xa9, 0xbd, 0xb9, 0xd3, 0x09, 0xf5, 0xbf, 0xb3, 0x71, 0xee, 0x0a, 0xe2, 0xe3, 0x25, 0x8a, 0xb3, 0xb3, @@ -88,7 +88,7 @@ const uint8_t PAGE_update[] PROGMEM = { // Autogenerated from wled00/data/welcome.htm, do not edit!! const uint16_t PAGE_welcome_length = 1528; const uint8_t PAGE_welcome[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x56, 0x5b, 0x93, 0xaa, 0x3a, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x56, 0x5b, 0x93, 0xaa, 0x3a, 0x16, 0x7e, 0xef, 0x5f, 0xc1, 0x76, 0xea, 0xd4, 0x79, 0x70, 0x77, 0x73, 0x13, 0x51, 0xdb, 0xee, 0x19, 0xc5, 0x4b, 0x7b, 0x03, 0x6f, 0x78, 0x7b, 0x0b, 0x10, 0x20, 0x08, 0x04, 0x93, 0x80, 0x97, 0xae, 0xfe, 0xef, 0x13, 0x74, 0xf7, 0xd4, 0x3e, 0x75, 0x1e, 0xa6, 0x4e, 0x2c, 0x21, 0xf9, 0x92, @@ -190,7 +190,7 @@ const uint8_t PAGE_welcome[] PROGMEM = { // Autogenerated from wled00/data/liveview.htm, do not edit!! const uint16_t PAGE_liveview_length = 547; const uint8_t PAGE_liveview[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x53, 0x4d, 0x6f, 0xdb, 0x30, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x53, 0x4d, 0x6f, 0xdb, 0x30, 0x0c, 0xbd, 0xe7, 0x57, 0x78, 0x2a, 0x5a, 0x48, 0x88, 0x63, 0x3b, 0xc5, 0xba, 0x8f, 0xf8, 0xe3, 0xb0, 0xb5, 0x87, 0x02, 0x05, 0xd6, 0x43, 0x81, 0x61, 0x18, 0x76, 0x50, 0x24, 0xc6, 0xd6, 0x2a, 0x4b, 0x81, 0x4c, 0xb9, 0x08, 0xd2, 0xfc, 0xf7, 0xc9, 0x76, 0xd2, 0x62, 0xc0, 0x30, 0xa0, 0x3e, @@ -231,7 +231,7 @@ const uint8_t PAGE_liveview[] PROGMEM = { // Autogenerated from wled00/data/liveviewws.htm, do not edit!! const uint16_t PAGE_liveviewws_length = 740; const uint8_t PAGE_liveviewws[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x54, 0x5d, 0x6f, 0xdb, 0x38, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x54, 0x5d, 0x6f, 0xdb, 0x38, 0x10, 0x7c, 0xf7, 0xaf, 0x50, 0x99, 0x4b, 0x2a, 0xc1, 0xb2, 0xec, 0xa4, 0x68, 0xd3, 0x93, 0x44, 0x07, 0xfd, 0xf0, 0x43, 0x0f, 0xc1, 0x35, 0x40, 0x52, 0x04, 0x87, 0x20, 0x40, 0x29, 0x69, 0x2d, 0xf1, 0x22, 0x91, 0x02, 0xb9, 0xb2, 0x60, 0x18, 0xfa, 0xef, 0xb7, 0x94, 0x1d, 0xe7, 0xee, 0xda, @@ -284,7 +284,7 @@ const uint8_t PAGE_liveviewws[] PROGMEM = { // Autogenerated from wled00/data/liveviewws2D.htm, do not edit!! const uint16_t PAGE_liveviewws2D_length = 878; const uint8_t PAGE_liveviewws2D[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x6d, 0x54, 0x6d, 0x73, 0xda, 0x46, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x6d, 0x73, 0xda, 0x46, 0x10, 0xfe, 0xce, 0xaf, 0x90, 0xaf, 0x69, 0xa2, 0x33, 0x42, 0xc2, 0xd8, 0x6e, 0x5d, 0xe0, 0xc8, 0x34, 0x0e, 0x33, 0xce, 0x8c, 0x13, 0x33, 0x83, 0x5b, 0xa6, 0xc3, 0x78, 0x26, 0x87, 0xb4, 0xa0, 0x6b, 0xa4, 0x3b, 0xe6, 0x6e, 0x41, 0xa6, 0x44, 0xff, 0xbd, 0x2b, 0x09, 0x13, 0xd2, 0x94, 0x0f, @@ -345,7 +345,7 @@ const uint8_t PAGE_liveviewws2D[] PROGMEM = { // Autogenerated from wled00/data/404.htm, do not edit!! const uint16_t PAGE_404_length = 868; const uint8_t PAGE_404[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x65, 0x54, 0x5b, 0x73, 0xaa, 0x3a, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x65, 0x54, 0x5b, 0x73, 0xaa, 0x3a, 0x14, 0x7e, 0xef, 0xaf, 0xe0, 0x78, 0xe6, 0xcc, 0x7e, 0x68, 0x2d, 0xa8, 0xd8, 0x2a, 0xa2, 0x33, 0x01, 0x51, 0xec, 0xc5, 0x7a, 0xa3, 0xd6, 0xbe, 0x05, 0x12, 0x21, 0x15, 0x08, 0x4d, 0x82, 0x62, 0x3b, 0xfd, 0xef, 0x3b, 0x40, 0xf7, 0x9c, 0xce, 0xec, 0x35, 0x03, 0x2b, 0xf9, 0x56, 0xd6, 0x7d, @@ -420,753 +420,753 @@ const uint8_t favicon[] PROGMEM = { // Autogenerated from wled00/data/iro.js, do not edit!! -const uint16_t iroJs_length = 9992; +const uint16_t iroJs_length = 9986; const uint8_t iroJs[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xc5, 0x7d, 0x79, 0x77, 0xe3, 0x36, - 0x96, 0xef, 0xff, 0x73, 0xce, 0x7c, 0x07, 0x99, 0x49, 0x7c, 0x48, 0x0b, 0xa2, 0x25, 0x79, 0xa9, - 0x32, 0x55, 0x1c, 0x9d, 0xa4, 0xb2, 0x55, 0x77, 0x2a, 0x95, 0x49, 0x55, 0xa7, 0xa7, 0xa3, 0x28, - 0x39, 0x14, 0x05, 0x49, 0x2c, 0xd3, 0xa4, 0xc2, 0x45, 0xb6, 0x63, 0xe9, 0xbb, 0xbf, 0xdf, 0xc5, - 0x42, 0x82, 0x5a, 0x6c, 0x27, 0x6f, 0xfa, 0xbd, 0x93, 0x94, 0x08, 0x62, 0xb9, 0x00, 0x2e, 0xee, - 0x0e, 0x80, 0x3e, 0x3d, 0x39, 0xfa, 0xcf, 0xff, 0x68, 0x9d, 0xb4, 0xa2, 0x2c, 0x75, 0x3f, 0xe6, - 0xad, 0xd5, 0x85, 0x7b, 0xe1, 0xf6, 0x45, 0x4e, 0xbf, 0xdb, 0xbb, 0xec, 0xf4, 0xbb, 0xfd, 0x5e, - 0xeb, 0x6f, 0xc1, 0x0d, 0xcf, 0x5b, 0x5f, 0x06, 0x49, 0xc4, 0x63, 0x51, 0xf4, 0x5d, 0x14, 0xf2, - 0x24, 0xe7, 0xd3, 0x56, 0x99, 0x4c, 0x79, 0xd6, 0x7a, 0xfb, 0xc3, 0x77, 0xad, 0xbe, 0xdb, 0x15, - 0x45, 0xf3, 0xa8, 0x58, 0x94, 0x13, 0x37, 0x4c, 0x6f, 0x4e, 0x3f, 0x06, 0xd4, 0xee, 0x54, 0x42, - 0xa6, 0xc2, 0xd3, 0xff, 0xfc, 0x8f, 0xa3, 0x59, 0x99, 0x84, 0x45, 0x94, 0x26, 0x76, 0xc1, 0x12, - 0xe7, 0xc1, 0x4a, 0x27, 0x1f, 0x79, 0x58, 0x58, 0xbe, 0x5f, 0xdc, 0x2f, 0x79, 0x3a, 0x6b, 0xf1, - 0xbb, 0x65, 0x9a, 0x15, 0xf9, 0xf1, 0xb1, 0x45, 0xa0, 0x67, 0x51, 0xc2, 0xa7, 0xd6, 0x91, 0x2e, - 0xbc, 0x49, 0xa7, 0x65, 0xcc, 0x87, 0xf2, 0xe1, 0xaa, 0xaa, 0x7e, 0x62, 0x3b, 0x9e, 0xa5, 0xc1, - 0xd6, 0x90, 0x64, 0xeb, 0xe3, 0x63, 0xf9, 0x74, 0x83, 0x9b, 0xe9, 0x50, 0x26, 0xed, 0xc4, 0xf1, - 0xec, 0xc2, 0x2f, 0xd6, 0xeb, 0x9c, 0xc7, 0x33, 0xc7, 0xc5, 0xf8, 0x08, 0xc6, 0xc6, 0x2e, 0x16, - 0x51, 0xce, 0xaa, 0xf1, 0x61, 0x70, 0x65, 0xce, 0x5b, 0x79, 0x91, 0x45, 0x18, 0xe0, 0x60, 0x15, - 0x64, 0xad, 0x1b, 0x96, 0xb3, 0x84, 0x45, 0x2c, 0x65, 0x77, 0xfe, 0xc3, 0x86, 0x7d, 0xf4, 0x47, - 0x63, 0x96, 0xf9, 0xa7, 0x41, 0x18, 0x15, 0x6b, 0x7e, 0x67, 0x0f, 0xbd, 0x7c, 0x3d, 0x5f, 0x27, - 0xeb, 0xe5, 0xfa, 0x53, 0x67, 0x9d, 0x2d, 0x17, 0xeb, 0x79, 0x16, 0x4d, 0xd7, 0xe9, 0x6d, 0xbe, - 0xbe, 0x49, 0xc2, 0x75, 0x52, 0xdc, 0xae, 0xd1, 0xfb, 0x28, 0x5c, 0x8c, 0xd7, 0x7f, 0xa4, 0xe9, - 0xfa, 0xd7, 0x34, 0x9b, 0xae, 0x7f, 0xed, 0x74, 0x4e, 0xa3, 0x81, 0xee, 0xb3, 0xf5, 0x56, 0x62, - 0x65, 0x96, 0x66, 0x36, 0xf5, 0x17, 0xb5, 0xa2, 0xa4, 0x95, 0x38, 0xc5, 0x28, 0x1a, 0xfb, 0x09, - 0x7e, 0x06, 0x19, 0x2f, 0xca, 0x2c, 0x69, 0x15, 0x9b, 0xaa, 0xc5, 0xbd, 0x5d, 0x38, 0x0f, 0x54, - 0x37, 0xf1, 0x0b, 0x77, 0x19, 0x64, 0x3c, 0x29, 0xbe, 0x4f, 0xa7, 0x7c, 0x90, 0x1c, 0x1f, 0x27, - 0x6e, 0xc6, 0x6f, 0xd2, 0x15, 0x7f, 0xbd, 0x88, 0xe2, 0x29, 0xaa, 0xd5, 0x8d, 0x16, 0xd4, 0x0d, - 0x8b, 0x64, 0xc3, 0x8c, 0x71, 0x56, 0x62, 0x4a, 0xb1, 0x1f, 0x64, 0xf3, 0xf2, 0x06, 0x00, 0xf2, - 0x41, 0x34, 0xb3, 0x13, 0xff, 0xad, 0x8d, 0x39, 0x26, 0x0e, 0x3b, 0x7b, 0x55, 0x15, 0xb8, 0x31, - 0x4f, 0xe6, 0xc5, 0xc2, 0xa1, 0x01, 0x46, 0x3e, 0x46, 0x84, 0xe9, 0x9f, 0x0d, 0xb2, 0x9d, 0x0a, - 0x83, 0xac, 0xdd, 0x76, 0x22, 0x77, 0x59, 0xe6, 0x0b, 0x3b, 0x1e, 0x65, 0x63, 0x47, 0x40, 0x2c, - 0xe3, 0xf8, 0xc8, 0x8f, 0x8e, 0x8f, 0xed, 0xc4, 0x0d, 0x69, 0x4c, 0x18, 0xac, 0x1f, 0x39, 0x4c, - 0xe6, 0x17, 0x18, 0xb0, 0x4c, 0xb8, 0x58, 0xa6, 0xa0, 0x8c, 0x8b, 0x1f, 0xb2, 0x74, 0x99, 0x8b, - 0xae, 0x38, 0xe1, 0x61, 0x2b, 0x7f, 0x95, 0x46, 0xd3, 0x56, 0xd7, 0xf7, 0x81, 0x18, 0x3e, 0x26, - 0x98, 0x78, 0x6c, 0xb5, 0x45, 0x8e, 0xa3, 0x51, 0x86, 0x25, 0x76, 0xaf, 0xf9, 0xbd, 0xea, 0xcc, - 0x2e, 0x7d, 0xc2, 0xce, 0xcc, 0x21, 0xf2, 0x88, 0x79, 0xc1, 0x5b, 0xe2, 0x55, 0x95, 0xa6, 0x46, - 0x2e, 0xb5, 0x09, 0x05, 0xba, 0x52, 0x56, 0x1a, 0x28, 0x94, 0x79, 0x11, 0xcb, 0x24, 0x12, 0xb9, - 0xff, 0x40, 0x64, 0xe7, 0x15, 0x6c, 0x49, 0x3d, 0x7b, 0x09, 0x43, 0x43, 0x0f, 0xc5, 0x7c, 0xe6, - 0x65, 0x2c, 0xf1, 0x08, 0x30, 0x8b, 0xe4, 0x83, 0x7b, 0x5d, 0x96, 0xca, 0x64, 0x2c, 0x1f, 0xa1, - 0x7a, 0xa4, 0x09, 0xa8, 0xad, 0x0c, 0x8b, 0x34, 0xf3, 0xe4, 0xf4, 0x36, 0x7a, 0xf8, 0x37, 0xee, - 0x2a, 0xc1, 0xb2, 0x1e, 0x1f, 0xab, 0x84, 0xcd, 0x1d, 0xc6, 0xeb, 0xd1, 0xbc, 0x23, 0x2a, 0xd0, - 0xc4, 0x51, 0x21, 0xb7, 0x2e, 0x7f, 0x23, 0xe9, 0x8a, 0x08, 0xdc, 0x15, 0x03, 0xf4, 0x0b, 0x26, - 0x5e, 0xd0, 0x65, 0xc1, 0xef, 0x0a, 0xdf, 0xa8, 0x7b, 0x2b, 0xeb, 0xaa, 0x05, 0x03, 0x7e, 0x9d, - 0x0a, 0x70, 0x34, 0x44, 0xa1, 0x1b, 0x31, 0xfc, 0x73, 0x13, 0x37, 0x02, 0x83, 0xde, 0xbd, 0x9b, - 0xa1, 0xeb, 0x76, 0xcf, 0x11, 0x33, 0x18, 0x54, 0x84, 0x3b, 0x48, 0x5e, 0x15, 0xa8, 0xa2, 0xa8, - 0x21, 0x21, 0x6a, 0xd0, 0x04, 0x00, 0xc2, 0x41, 0xd1, 0x28, 0x19, 0x3b, 0x7a, 0xc5, 0x23, 0x37, - 0xd5, 0x7d, 0x20, 0xa9, 0xa6, 0xbc, 0x87, 0xa3, 0x0b, 0x97, 0x12, 0x34, 0x06, 0xd9, 0x5d, 0x3d, - 0xe6, 0xa0, 0xe2, 0x02, 0x16, 0xd5, 0xa4, 0x46, 0x4c, 0xee, 0x46, 0x4e, 0x4d, 0x58, 0xa1, 0x64, - 0xad, 0xc2, 0x4d, 0xe9, 0xc5, 0x9d, 0x04, 0x39, 0xf7, 0x05, 0xe6, 0x13, 0xbf, 0xfb, 0xa7, 0x47, - 0xfc, 0xd0, 0x00, 0x43, 0x03, 0x9f, 0x64, 0x3c, 0xb8, 0xde, 0xa8, 0x99, 0xd0, 0x90, 0x36, 0xf5, - 0x08, 0x39, 0x8d, 0xd0, 0x3e, 0x2a, 0xdc, 0x19, 0x68, 0x15, 0xbf, 0xfe, 0x51, 0x17, 0xd0, 0x7a, - 0xa0, 0xdf, 0x5c, 0xb2, 0x49, 0xe1, 0xac, 0xd7, 0xd1, 0x91, 0xef, 0xdf, 0x80, 0x84, 0x27, 0x29, - 0x9a, 0xf1, 0x1f, 0x39, 0x09, 0xd7, 0x28, 0x99, 0xa3, 0x22, 0x86, 0xb0, 0xa7, 0x80, 0xd9, 0x7b, - 0x32, 0xd7, 0xeb, 0xc4, 0xb1, 0x4b, 0xc7, 0xa0, 0xd5, 0xd2, 0x96, 0xc8, 0x51, 0x14, 0xab, 0xf9, - 0x5d, 0xac, 0x56, 0xee, 0xe6, 0x10, 0xa2, 0x76, 0x53, 0x2a, 0xab, 0x29, 0x24, 0xee, 0xd4, 0xe5, - 0x9d, 0x82, 0x7e, 0x37, 0xce, 0xa0, 0xa0, 0x91, 0xa6, 0x4b, 0xdb, 0x19, 0x38, 0x72, 0x16, 0x99, - 0x1f, 0xf9, 0x92, 0x4c, 0x59, 0xe9, 0xdb, 0xdc, 0x87, 0xc8, 0x28, 0x1c, 0x77, 0xea, 0xb8, 0x29, - 0x23, 0x6e, 0x5b, 0x42, 0xa2, 0x24, 0x6e, 0xc9, 0xf0, 0xcf, 0x3f, 0xea, 0xb1, 0x54, 0x4c, 0x42, - 0x08, 0xcc, 0x6b, 0x3b, 0xc5, 0x18, 0x84, 0x78, 0x01, 0x19, 0x27, 0xee, 0x2d, 0x93, 0x60, 0x30, - 0xfb, 0xd4, 0x4d, 0x6f, 0x13, 0x9e, 0xbd, 0xff, 0xe9, 0x9b, 0xaf, 0x62, 0x4e, 0x12, 0x85, 0x49, - 0xce, 0x61, 0x31, 0x93, 0xd4, 0x58, 0x62, 0xf9, 0xb9, 0xe3, 0x95, 0x0e, 0x9b, 0xda, 0x11, 0x35, - 0xcf, 0x8e, 0xfc, 0xf2, 0xf8, 0x38, 0x40, 0xa6, 0x39, 0xe5, 0xf7, 0x36, 0x4d, 0xb5, 0xa8, 0x27, - 0xcb, 0x72, 0x89, 0x83, 0x90, 0x05, 0x6c, 0xc6, 0x16, 0x6c, 0xc5, 0xa6, 0x6c, 0xce, 0x26, 0x24, - 0x76, 0xb0, 0xb6, 0xeb, 0xf5, 0x47, 0xb6, 0xf4, 0x27, 0x7a, 0xf5, 0xb1, 0xf2, 0xe8, 0xea, 0x0e, - 0x23, 0x8e, 0x7d, 0xb9, 0xe0, 0xe5, 0xb0, 0x1c, 0x75, 0xc7, 0xde, 0x92, 0x88, 0x8f, 0x75, 0x25, - 0xf9, 0x39, 0x2c, 0xf4, 0xbb, 0x0c, 0x9c, 0xe0, 0x7f, 0x6e, 0xe3, 0xb7, 0xd6, 0x1c, 0x45, 0xc5, - 0x3d, 0x20, 0x3a, 0x91, 0x06, 0x19, 0xfa, 0xc4, 0x36, 0x44, 0x27, 0xbc, 0xdd, 0x53, 0x73, 0xf1, - 0xed, 0x99, 0x3f, 0x19, 0x85, 0x63, 0xac, 0xfc, 0x8c, 0x86, 0x01, 0x91, 0xe1, 0xfb, 0x33, 0x7a, - 0xd0, 0x1b, 0xd1, 0xba, 0x4f, 0xef, 0x94, 0x70, 0xa8, 0x9e, 0xc2, 0xf6, 0x80, 0xc7, 0xd0, 0x4b, - 0xb4, 0x78, 0x01, 0xc8, 0x36, 0x78, 0xb5, 0x1c, 0x04, 0xa0, 0x56, 0xea, 0x46, 0xc0, 0x0b, 0x88, - 0x4c, 0x1f, 0x07, 0xf6, 0x40, 0xb5, 0x34, 0x34, 0x49, 0xb5, 0x33, 0x31, 0xd1, 0x0d, 0x80, 0x2c, - 0xb0, 0x3e, 0x09, 0x50, 0x37, 0xf3, 0x67, 0xeb, 0xf5, 0x5d, 0x85, 0x41, 0x29, 0xaf, 0x80, 0x46, - 0x86, 0x6e, 0x0b, 0x25, 0x3c, 0x67, 0xf4, 0x3c, 0xf2, 0x03, 0x60, 0x6a, 0xee, 0x83, 0xf2, 0x46, - 0x63, 0x47, 0x52, 0x73, 0x80, 0xc9, 0x86, 0xeb, 0xf5, 0x82, 0x15, 0x5a, 0xbe, 0x2f, 0x0c, 0x91, - 0x32, 0x45, 0xfd, 0x29, 0x72, 0xb4, 0xe8, 0x77, 0x63, 0x67, 0x41, 0xbf, 0x68, 0x24, 0x11, 0x2e, - 0xa7, 0x88, 0xfa, 0xa5, 0x4f, 0xa3, 0x58, 0x1c, 0xf9, 0x31, 0xc8, 0x5a, 0xb4, 0x5d, 0x18, 0x5a, - 0x0e, 0x3c, 0xe8, 0x55, 0x40, 0x51, 0x23, 0x36, 0xca, 0x8e, 0x48, 0x72, 0x25, 0x6e, 0xb0, 0x5c, - 0x82, 0x31, 0xa4, 0x0a, 0x5c, 0x38, 0x02, 0xae, 0x54, 0xaf, 0x7e, 0xcc, 0x08, 0x7d, 0x48, 0xac, - 0xdc, 0x04, 0x22, 0xf0, 0x7d, 0x34, 0x89, 0x25, 0xaf, 0x49, 0x8c, 0xfa, 0x7d, 0x12, 0x00, 0x2b, - 0x74, 0xe8, 0x08, 0x0c, 0xb5, 0x8a, 0x01, 0x89, 0xbc, 0x9c, 0x67, 0xc5, 0x17, 0x1c, 0x10, 0xb8, - 0xbd, 0x60, 0xb1, 0xb3, 0xb1, 0xd2, 0xa5, 0x12, 0x52, 0x91, 0xc0, 0xad, 0xd0, 0x6e, 0xab, 0x20, - 0x2e, 0xb9, 0x6f, 0x59, 0xce, 0x26, 0xc6, 0x78, 0x0d, 0xe8, 0x6c, 0x8f, 0x54, 0xab, 0xda, 0x45, - 0x98, 0xfc, 0x02, 0x32, 0x43, 0x71, 0x5f, 0xd8, 0x6e, 0xb3, 0x62, 0xe3, 0x80, 0xc0, 0x52, 0x7f, - 0xaa, 0x30, 0x05, 0x4a, 0xaf, 0x21, 0x1c, 0x35, 0x21, 0x08, 0x4d, 0x19, 0xfa, 0xa5, 0x26, 0xe2, - 0xb0, 0xd3, 0x19, 0x38, 0xaa, 0x19, 0x88, 0xe7, 0xf8, 0xf8, 0xde, 0xa6, 0xa7, 0x33, 0x90, 0xf5, - 0x96, 0x66, 0x85, 0x89, 0xa8, 0xf0, 0xbd, 0x4d, 0x4f, 0x26, 0x48, 0x92, 0x78, 0x60, 0xae, 0x40, - 0x76, 0x07, 0xe1, 0xab, 0x79, 0x05, 0x16, 0xb4, 0xf6, 0x95, 0x3d, 0xa7, 0x8a, 0xf3, 0x51, 0xbb, - 0x5d, 0x3d, 0x0c, 0xe6, 0xfb, 0x5c, 0x9b, 0x17, 0xd5, 0xda, 0x44, 0x8a, 0xf9, 0x1d, 0x45, 0xf9, - 0xb0, 0xbd, 0xac, 0x49, 0x9a, 0xc6, 0x3c, 0x30, 0xc5, 0xbb, 0x03, 0xa3, 0x45, 0x19, 0x0d, 0x89, - 0x68, 0xe8, 0x38, 0x15, 0x21, 0x7c, 0x9e, 0x65, 0xc1, 0xbd, 0x1b, 0xe5, 0xe2, 0x09, 0x0e, 0x73, - 0xb4, 0xaa, 0xc9, 0x30, 0xbc, 0x0c, 0xa2, 0xdb, 0x30, 0x3c, 0xd0, 0x3f, 0x6c, 0x0e, 0x31, 0x04, - 0xd5, 0x5e, 0x01, 0x1d, 0x26, 0xf6, 0x1e, 0x26, 0x3d, 0x38, 0x1c, 0x2d, 0x06, 0x89, 0x20, 0x51, - 0xd7, 0x22, 0x53, 0x30, 0x99, 0x1b, 0x35, 0xd0, 0x2c, 0x29, 0x6f, 0x26, 0x3c, 0xdb, 0xd3, 0x2a, - 0x14, 0xb0, 0x99, 0x12, 0x60, 0x62, 0x36, 0x83, 0xba, 0x43, 0x37, 0x95, 0xaa, 0xc4, 0x17, 0x5a, - 0x49, 0x2b, 0xd8, 0x81, 0x34, 0xe4, 0x60, 0x5b, 0x88, 0x15, 0x05, 0x3b, 0x08, 0x65, 0xcd, 0x8a, - 0xca, 0x74, 0xa9, 0xec, 0x99, 0x44, 0x28, 0x1f, 0xb0, 0xe5, 0x86, 0x90, 0xe1, 0x15, 0x55, 0x41, - 0x54, 0xaf, 0xc3, 0x4c, 0xaf, 0x83, 0xd5, 0xb1, 0x84, 0xa1, 0xd4, 0x1d, 0x0f, 0x0b, 0x37, 0xe7, - 0xc2, 0x3a, 0x02, 0x1d, 0xdf, 0x93, 0x90, 0x44, 0x5b, 0x68, 0x36, 0x7f, 0x67, 0x22, 0x58, 0xb2, - 0x23, 0x52, 0x4f, 0x99, 0x5b, 0xf0, 0xbc, 0x80, 0xcd, 0x3c, 0x8c, 0xda, 0xd6, 0xf2, 0xce, 0xf2, - 0xd4, 0x8a, 0x0e, 0x2d, 0xcb, 0x33, 0xfa, 0xfa, 0xd1, 0xae, 0xb4, 0x8b, 0x14, 0xb4, 0x4a, 0xea, - 0xb2, 0x50, 0xa0, 0x0e, 0xe3, 0xa7, 0x21, 0x40, 0x45, 0xf0, 0xa1, 0x15, 0xc6, 0x41, 0x9e, 0x7f, - 0x0f, 0xdf, 0x40, 0x8c, 0x4a, 0xbd, 0x03, 0xb0, 0xa7, 0x52, 0x46, 0xae, 0xa8, 0xe5, 0x25, 0x90, - 0x90, 0x96, 0xb6, 0x6a, 0x44, 0x71, 0x4d, 0x18, 0x58, 0x95, 0xfb, 0x58, 0x42, 0x72, 0x84, 0xc0, - 0xc0, 0x0c, 0x29, 0x87, 0xed, 0x2c, 0x57, 0xe4, 0x94, 0x6e, 0x98, 0xe7, 0x1f, 0xc8, 0xde, 0x89, - 0xa4, 0x24, 0xd8, 0xb7, 0xaa, 0x19, 0x68, 0xb5, 0xae, 0x68, 0x59, 0x50, 0x58, 0x52, 0xda, 0x67, - 0x82, 0xe6, 0x52, 0xb2, 0x45, 0x33, 0x07, 0xe8, 0x11, 0xa9, 0x08, 0xb2, 0xdb, 0xa6, 0xb9, 0x82, - 0xdb, 0x69, 0xa6, 0x91, 0xa8, 0x14, 0x8b, 0x22, 0x07, 0xa0, 0xa2, 0x51, 0x3c, 0x26, 0x2c, 0xe2, - 0x21, 0x6b, 0x42, 0x99, 0x21, 0xed, 0x6c, 0xa8, 0x7f, 0x2b, 0xd5, 0xeb, 0x02, 0xbe, 0x96, 0x13, - 0x1b, 0xf5, 0xc6, 0x43, 0x1b, 0x3e, 0xcd, 0x91, 0x40, 0x16, 0x59, 0xa5, 0xcb, 0x38, 0x08, 0xb9, - 0x7d, 0xfa, 0x3a, 0x58, 0x62, 0x7d, 0xf9, 0xa7, 0xa7, 0xd4, 0x13, 0xf8, 0xc8, 0xb7, 0xc1, 0x99, - 0x89, 0x5b, 0xa4, 0xdf, 0xa5, 0xb7, 0x3c, 0x7b, 0x0d, 0x1b, 0xc4, 0x76, 0x1c, 0x32, 0x93, 0x87, - 0xb0, 0x26, 0x1d, 0x37, 0x8f, 0xe1, 0xa2, 0xd9, 0x7d, 0x88, 0x8f, 0xa1, 0x9d, 0xad, 0xd7, 0x85, - 0x1b, 0x4c, 0xa7, 0x5f, 0xad, 0x20, 0x1b, 0xbf, 0x8b, 0xf2, 0x82, 0x43, 0xc5, 0x62, 0xed, 0x57, - 0x42, 0x9a, 0x83, 0xd6, 0xd6, 0x6b, 0xfa, 0x85, 0x4b, 0xe3, 0x38, 0x44, 0x0b, 0x44, 0x13, 0xca, - 0x77, 0xd8, 0xd7, 0x04, 0xde, 0x56, 0x8c, 0x1c, 0x8b, 0x24, 0x2c, 0xc6, 0x5d, 0x04, 0x73, 0xb1, - 0x4a, 0xea, 0x15, 0xd3, 0xbf, 0x51, 0xe9, 0x23, 0x48, 0xb5, 0x44, 0x98, 0xee, 0x43, 0x41, 0x63, - 0x26, 0xe5, 0x78, 0xfb, 0xe4, 0x18, 0x9a, 0x4f, 0x83, 0x64, 0xce, 0xb3, 0xb4, 0xcc, 0xe3, 0xfb, - 0xf7, 0xbc, 0x78, 0x93, 0xa0, 0xdb, 0x6f, 0x3f, 0xbc, 0xfd, 0x4e, 0x41, 0xb4, 0x77, 0xf1, 0xf2, - 0xeb, 0x1d, 0x04, 0xeb, 0xb5, 0x37, 0x94, 0x78, 0x19, 0xaa, 0x3e, 0xd6, 0x6b, 0x41, 0xbc, 0xd1, - 0x50, 0x4f, 0xe4, 0xf3, 0x02, 0xcb, 0x3c, 0x29, 0x0b, 0xfe, 0xfd, 0x7b, 0xdb, 0x5a, 0x14, 0xc5, - 0xd2, 0x3b, 0x3d, 0xbd, 0xbd, 0xbd, 0x75, 0x6f, 0xcf, 0xdc, 0x34, 0x9b, 0x9f, 0xf6, 0xae, 0xae, - 0xae, 0x4e, 0x05, 0x24, 0x8b, 0x6d, 0x23, 0xd5, 0x13, 0x3c, 0xf3, 0xd7, 0x01, 0x10, 0x8f, 0x3d, - 0x39, 0x2c, 0x72, 0x4a, 0x9b, 0xfd, 0x08, 0xe6, 0x34, 0xa4, 0xea, 0xca, 0xb4, 0xf1, 0xc9, 0x76, - 0x2f, 0x46, 0x52, 0x4c, 0x8c, 0x61, 0x05, 0x72, 0x5a, 0xa7, 0xa1, 0x7a, 0x92, 0x7d, 0x6c, 0xba, - 0x7b, 0xd7, 0xf6, 0x96, 0xe5, 0x47, 0x6c, 0x29, 0xb9, 0xb4, 0x61, 0x0c, 0xb1, 0x25, 0xbb, 0x67, - 0xb7, 0xec, 0x9a, 0xc8, 0x0a, 0x70, 0x89, 0x9c, 0x2b, 0xc3, 0x2c, 0x71, 0x0d, 0xef, 0xa4, 0x21, - 0x19, 0x61, 0x0e, 0xa0, 0x5f, 0xd2, 0x9b, 0x98, 0xc3, 0xa0, 0xc8, 0xee, 0xa5, 0x52, 0xde, 0xa3, - 0xe9, 0xae, 0x85, 0xc8, 0x5d, 0x92, 0x6d, 0x28, 0xc4, 0xda, 0xbd, 0x8f, 0xb6, 0xd7, 0xda, 0x07, - 0xf9, 0x40, 0x3a, 0xec, 0xf8, 0x38, 0x1b, 0x05, 0x2e, 0x94, 0xca, 0xad, 0x1f, 0x0c, 0xef, 0x87, - 0xf7, 0xb2, 0xa6, 0x54, 0xa8, 0x5e, 0xe0, 0x46, 0x70, 0xa6, 0x22, 0x37, 0x1c, 0x4e, 0xc8, 0x74, - 0xc2, 0x90, 0xa0, 0x74, 0x43, 0x38, 0xf0, 0x64, 0xe7, 0x78, 0xb6, 0x85, 0xba, 0x45, 0x4a, 0x7d, - 0x59, 0xa0, 0xb9, 0xeb, 0xe3, 0xe3, 0x6b, 0xb7, 0xca, 0x01, 0xba, 0xc9, 0x3c, 0x1e, 0x52, 0x1b, - 0xb4, 0xe4, 0xb7, 0x40, 0xca, 0x92, 0xdd, 0x3a, 0x9e, 0x5d, 0xe7, 0xbc, 0x11, 0x39, 0x6c, 0x66, - 0xce, 0xd4, 0xbf, 0x66, 0x33, 0xd5, 0xd6, 0xff, 0xc3, 0x61, 0xb0, 0xa5, 0xee, 0xdd, 0xbc, 0x9c, - 0xd8, 0x33, 0xaa, 0x27, 0x3d, 0xa9, 0x25, 0x52, 0x79, 0x11, 0x14, 0x1c, 0x5c, 0xa4, 0x52, 0xc4, - 0x49, 0x12, 0x8e, 0x70, 0xae, 0x6e, 0x91, 0xbe, 0xf5, 0x33, 0xb6, 0xc0, 0x38, 0xc9, 0xf0, 0xc7, - 0xeb, 0x8d, 0xa1, 0x0c, 0x67, 0xee, 0x47, 0x50, 0x36, 0x7e, 0x7d, 0xd5, 0x5c, 0xdb, 0x45, 0xd7, - 0xee, 0x9c, 0x17, 0x5f, 0xc2, 0xa8, 0x5f, 0xf1, 0xe9, 0x7b, 0x2a, 0xf8, 0x3a, 0x4b, 0x6f, 0x84, - 0x67, 0x7b, 0x7c, 0xfc, 0x56, 0x34, 0xd0, 0x2d, 0x86, 0xf4, 0x22, 0x0c, 0x6a, 0x24, 0x1c, 0x0f, - 0x3f, 0xec, 0x70, 0x63, 0x7b, 0x29, 0x6a, 0x39, 0x6c, 0xe1, 0xc8, 0x01, 0x3c, 0xd6, 0x8f, 0x1c, - 0x09, 0xcd, 0xe5, 0x66, 0x99, 0x26, 0x20, 0xae, 0x7f, 0x46, 0x71, 0xfc, 0x16, 0x1e, 0x47, 0x41, - 0xd6, 0xdf, 0x6e, 0xae, 0xad, 0x07, 0x6f, 0x14, 0x7e, 0x19, 0x4d, 0x55, 0x8b, 0x54, 0x2a, 0xe2, - 0x99, 0x53, 0x89, 0xdf, 0xe7, 0x8d, 0x00, 0xd6, 0xdd, 0x81, 0xa1, 0xfc, 0xc8, 0x43, 0x8e, 0x56, - 0xaa, 0xee, 0x23, 0x85, 0x72, 0x71, 0x8f, 0x0c, 0x38, 0xf9, 0x22, 0x2d, 0xe3, 0xe9, 0x6b, 0xdd, - 0xe0, 0x1f, 0xcb, 0x29, 0x3a, 0x56, 0x5a, 0xef, 0x40, 0xa9, 0x44, 0x1d, 0x00, 0x49, 0x47, 0x72, - 0x87, 0x04, 0x68, 0x2d, 0x99, 0x58, 0xe4, 0x1e, 0x43, 0xe9, 0x14, 0x3a, 0x09, 0x7a, 0x5a, 0x76, - 0x98, 0x0f, 0xf3, 0x23, 0xb2, 0x12, 0xd3, 0x61, 0xee, 0xe1, 0x57, 0xba, 0xfc, 0x09, 0xbc, 0x07, - 0xf2, 0x1d, 0xa4, 0x25, 0x9f, 0xd4, 0x0e, 0x28, 0x99, 0xf4, 0x78, 0x85, 0x9d, 0x2e, 0x2c, 0x4a, - 0x4a, 0x80, 0xce, 0xc1, 0x60, 0xca, 0x18, 0xdd, 0xec, 0xc5, 0x86, 0x9e, 0xc3, 0xde, 0xec, 0x6a, - 0xf0, 0x1b, 0x69, 0x00, 0xab, 0xd1, 0xb3, 0xa9, 0xa6, 0xa2, 0x2d, 0x92, 0xdd, 0x37, 0x37, 0xc1, - 0xec, 0x6f, 0x15, 0xb3, 0xeb, 0x99, 0x8a, 0x89, 0x52, 0x03, 0xbf, 0xc0, 0x44, 0x34, 0xbf, 0x68, - 0xec, 0xb0, 0x1d, 0xe8, 0x8e, 0x98, 0xf6, 0xe7, 0xca, 0x43, 0x82, 0xf3, 0x10, 0x28, 0xff, 0xe4, - 0x9d, 0x5e, 0xed, 0x80, 0x0c, 0x9e, 0x61, 0xa0, 0xb8, 0x5f, 0x6b, 0x7e, 0x2f, 0xa8, 0x89, 0x0b, - 0xf4, 0x22, 0x8c, 0xfa, 0xd7, 0x12, 0xa4, 0x70, 0x47, 0xdf, 0xda, 0x82, 0x05, 0x32, 0x1a, 0xd8, - 0x56, 0x39, 0xc4, 0x38, 0xe8, 0x5d, 0xfb, 0x10, 0xa2, 0xf8, 0x7d, 0x12, 0x2c, 0xb1, 0xc8, 0xca, - 0x9a, 0x97, 0x28, 0x02, 0x0b, 0xcf, 0x0f, 0x97, 0xda, 0x90, 0x93, 0x00, 0xf3, 0x7e, 0x4b, 0x9c, - 0x92, 0x30, 0x45, 0x8f, 0x32, 0x9a, 0xe0, 0xa6, 0x03, 0x42, 0xc1, 0x8d, 0x76, 0x95, 0x35, 0x73, - 0x57, 0x28, 0x74, 0x18, 0xe4, 0x5b, 0x10, 0xc7, 0xc4, 0x04, 0xd5, 0x80, 0x56, 0xf5, 0xc8, 0x4c, - 0xae, 0xd1, 0x83, 0xda, 0x97, 0x6b, 0x0b, 0xa1, 0xed, 0xb0, 0x89, 0x00, 0x7f, 0x8d, 0x96, 0x91, - 0xb4, 0x53, 0x84, 0x65, 0x21, 0xec, 0x43, 0xd3, 0xa9, 0x37, 0xc5, 0xbf, 0x14, 0xfd, 0x18, 0xb6, - 0xf4, 0x85, 0x41, 0x80, 0x72, 0xa1, 0x56, 0x5a, 0x32, 0x93, 0xe4, 0x87, 0xff, 0x92, 0xaf, 0xe6, - 0xc2, 0x26, 0x11, 0xab, 0xb3, 0x5e, 0x73, 0x6d, 0xbc, 0x6b, 0x16, 0x2a, 0x85, 0xad, 0x93, 0x83, - 0x74, 0xf3, 0x57, 0x95, 0xdb, 0x91, 0x37, 0x22, 0x27, 0xf0, 0x47, 0x46, 0x39, 0x39, 0xa4, 0x8a, - 0xd1, 0x15, 0xb0, 0xe1, 0x19, 0x92, 0xa1, 0x4b, 0x91, 0x2c, 0x12, 0xfb, 0x5e, 0xe8, 0xc6, 0x29, - 0x90, 0x42, 0x76, 0x44, 0x55, 0x07, 0x3c, 0x56, 0xf8, 0x21, 0xa3, 0xf6, 0xd2, 0x27, 0x94, 0x8e, - 0x6a, 0x6d, 0x43, 0x1b, 0x06, 0xbc, 0x6e, 0xa2, 0xf4, 0xd2, 0x34, 0x0d, 0x45, 0x38, 0xd2, 0x0d, - 0xd1, 0xa4, 0xe0, 0x64, 0xc8, 0x91, 0x4b, 0x68, 0xaf, 0x28, 0x8a, 0xc1, 0x87, 0x5b, 0xc5, 0x2a, - 0xd2, 0xb0, 0x5f, 0xaf, 0xf7, 0xbb, 0xdd, 0xee, 0x29, 0x21, 0x82, 0xa9, 0x2e, 0xbc, 0xfd, 0xad, - 0x6d, 0x55, 0xcc, 0x4a, 0xe9, 0x48, 0x1b, 0x1a, 0xb2, 0x9e, 0x35, 0xfc, 0x58, 0x7f, 0xa5, 0x70, - 0x21, 0x9c, 0x39, 0x78, 0x64, 0xa5, 0x11, 0x47, 0x1b, 0x2b, 0x4b, 0xb3, 0x70, 0xb1, 0xc2, 0x81, - 0xbf, 0x82, 0xdd, 0x70, 0x24, 0x9d, 0x27, 0xa3, 0x85, 0xff, 0x51, 0x1a, 0x77, 0x92, 0x8a, 0x54, - 0xb4, 0x8f, 0xa6, 0x07, 0xcb, 0x0c, 0xec, 0x67, 0x57, 0xeb, 0x09, 0xef, 0xdd, 0x71, 0x0f, 0xd8, - 0x53, 0xf0, 0xee, 0x57, 0x07, 0xcb, 0x62, 0xd2, 0x64, 0xeb, 0x75, 0x40, 0xcb, 0x36, 0x03, 0x77, - 0x92, 0x3c, 0x79, 0x47, 0x4c, 0xf9, 0x4e, 0x18, 0x8a, 0x91, 0xae, 0xe8, 0xcf, 0x44, 0x09, 0x6c, - 0x73, 0xb2, 0x48, 0x77, 0xa9, 0x4d, 0x39, 0x02, 0xc2, 0xe1, 0x2c, 0xa5, 0x45, 0x2c, 0x1e, 0xc9, - 0x7a, 0x4d, 0xee, 0x42, 0xa9, 0x62, 0x3b, 0xa3, 0x72, 0x0c, 0x9e, 0xad, 0x6b, 0x25, 0x0e, 0xdf, - 0xeb, 0xe6, 0x26, 0xa8, 0x88, 0xbe, 0x84, 0x2d, 0x40, 0x74, 0x59, 0x0a, 0xa7, 0x80, 0x87, 0xd7, - 0x7c, 0xaa, 0x5e, 0x09, 0x94, 0x30, 0xa2, 0xa9, 0xa2, 0xea, 0x82, 0xa0, 0xab, 0x2e, 0xe0, 0x2a, - 0xc1, 0xd4, 0x59, 0x80, 0x0d, 0x62, 0x29, 0x82, 0x92, 0x2d, 0x01, 0xc3, 0x30, 0xeb, 0x9a, 0xbb, - 0xc9, 0x94, 0xe5, 0xd1, 0x3c, 0x79, 0x27, 0xb7, 0x28, 0x8e, 0xf4, 0x32, 0x1e, 0x1f, 0x4b, 0x3e, - 0xba, 0x23, 0x30, 0x84, 0x2b, 0x35, 0x24, 0x0c, 0x1d, 0x8b, 0x5b, 0x59, 0x4c, 0x2b, 0x69, 0xb5, - 0x20, 0x47, 0x26, 0x8e, 0xc8, 0xd7, 0x53, 0x59, 0xb6, 0x4a, 0x29, 0x93, 0x58, 0xd5, 0x20, 0xc3, - 0x58, 0x25, 0x1d, 0x56, 0x4d, 0x6d, 0x07, 0xac, 0x2a, 0x20, 0xc0, 0x2a, 0x29, 0x40, 0x57, 0xd9, - 0x76, 0x95, 0xae, 0x2b, 0x93, 0xf8, 0x2b, 0x36, 0x76, 0x44, 0x1e, 0xa3, 0x21, 0x0a, 0x42, 0x47, - 0x9a, 0x6f, 0xd3, 0x68, 0x36, 0x43, 0x25, 0x29, 0xd6, 0x37, 0x61, 0x50, 0x84, 0x14, 0x90, 0x7c, - 0xb8, 0x71, 0x53, 0xe5, 0x42, 0x6e, 0x6a, 0xb7, 0xb3, 0xb6, 0x2b, 0xa7, 0x5b, 0xbb, 0x15, 0x03, - 0x8a, 0x93, 0xea, 0x10, 0x21, 0xec, 0xc0, 0x68, 0xd7, 0x04, 0xb0, 0x77, 0xa0, 0x47, 0xee, 0xd4, - 0xd9, 0xdc, 0xb8, 0x21, 0x85, 0xb6, 0x43, 0xea, 0xbd, 0x02, 0xff, 0x95, 0x76, 0x5f, 0x09, 0xd6, - 0xbe, 0x70, 0xf0, 0xb0, 0x90, 0x56, 0x73, 0x58, 0x66, 0x14, 0xf5, 0xf1, 0x93, 0x1d, 0xd8, 0x66, - 0x04, 0xf6, 0xfb, 0x9d, 0x4d, 0x0f, 0x12, 0x73, 0x37, 0x6e, 0x99, 0xdc, 0x48, 0xe3, 0xa4, 0x4a, - 0x02, 0x00, 0x83, 0x3a, 0xd1, 0x41, 0xae, 0xaf, 0xec, 0x4c, 0x39, 0xf1, 0x30, 0xe5, 0x41, 0x73, - 0x87, 0x02, 0xd3, 0xa0, 0x84, 0x48, 0xe9, 0x7a, 0x48, 0x4f, 0x38, 0xe7, 0x84, 0x73, 0xe1, 0xa6, - 0xc7, 0x7e, 0x15, 0x04, 0x40, 0x59, 0x26, 0x7c, 0x7e, 0x21, 0xbd, 0xb2, 0x2d, 0x3d, 0x2d, 0xfb, - 0x17, 0xc8, 0xdb, 0x5f, 0xb4, 0x8b, 0x3f, 0x60, 0x2c, 0x93, 0xba, 0x27, 0x83, 0x02, 0xd6, 0x41, - 0x3c, 0xea, 0x23, 0x11, 0xe2, 0xb9, 0x84, 0x78, 0x2e, 0x5f, 0x65, 0x5a, 0x3c, 0x97, 0x10, 0xcf, - 0x19, 0xd8, 0x81, 0xa2, 0x3d, 0xf4, 0x94, 0x51, 0x12, 0x39, 0x32, 0x4e, 0x31, 0x22, 0x6e, 0xac, - 0xc0, 0x1f, 0x1a, 0x65, 0xa6, 0xdb, 0x61, 0x58, 0xc7, 0x12, 0xc5, 0x55, 0xf5, 0xf9, 0x16, 0x3d, - 0xa0, 0xe7, 0xe8, 0x55, 0x65, 0xd1, 0x44, 0x14, 0xa4, 0x94, 0x11, 0x1b, 0xb9, 0x97, 0xe5, 0xf2, - 0x04, 0x82, 0x34, 0x0b, 0x26, 0x31, 0x8d, 0xbd, 0x7e, 0x21, 0x27, 0x89, 0xd1, 0xf4, 0x93, 0x59, - 0x34, 0x2f, 0x65, 0x39, 0x8c, 0xe6, 0x9a, 0xcb, 0xc8, 0x43, 0xcf, 0xdc, 0xdb, 0x2c, 0x2a, 0x54, - 0x99, 0xc3, 0x24, 0x8f, 0xba, 0x72, 0x83, 0xaf, 0x0a, 0x6f, 0x14, 0x00, 0x43, 0x91, 0x93, 0xcc, - 0xa4, 0x83, 0x89, 0xad, 0xe7, 0x63, 0x4f, 0x7c, 0xd5, 0x2e, 0xc8, 0x73, 0x30, 0x3a, 0x14, 0xad, - 0x11, 0x1d, 0xd2, 0xd3, 0x48, 0xea, 0x7d, 0x31, 0x16, 0xf9, 0x3d, 0x4c, 0x69, 0x67, 0xb7, 0x6b, - 0x7b, 0x6a, 0xba, 0x29, 0x97, 0xb1, 0x02, 0xd5, 0x49, 0xed, 0x8c, 0x2c, 0x82, 0xfc, 0xdd, 0x6d, - 0xa2, 0x87, 0x29, 0x05, 0x39, 0xc9, 0x4b, 0xe2, 0x5d, 0xda, 0xc6, 0xca, 0x68, 0xe7, 0x6a, 0x53, - 0x6d, 0xf6, 0x39, 0x14, 0xc5, 0x8c, 0xef, 0xe5, 0xfe, 0x64, 0xd5, 0x39, 0xb8, 0x86, 0x36, 0x21, - 0xdf, 0x18, 0x70, 0xe1, 0x3e, 0xbe, 0x97, 0x76, 0x46, 0x23, 0x9c, 0x2f, 0x17, 0x43, 0x2c, 0xde, - 0x47, 0x12, 0x15, 0x94, 0x10, 0xf6, 0xc8, 0xf1, 0xb1, 0xcc, 0x24, 0xb1, 0x2e, 0x12, 0xd2, 0x87, - 0xa8, 0x2b, 0x38, 0xce, 0x60, 0x1f, 0xb9, 0xc3, 0x48, 0xa6, 0xbd, 0x15, 0x3b, 0x62, 0xf5, 0x8e, - 0x92, 0xe3, 0xac, 0xd7, 0x6f, 0x29, 0xc7, 0xd8, 0xd0, 0x13, 0xa5, 0x42, 0x22, 0x51, 0x42, 0x6c, - 0x03, 0x24, 0x2a, 0xf7, 0x46, 0x85, 0xe4, 0x1c, 0xc6, 0x45, 0x29, 0x3c, 0xdd, 0xc6, 0x54, 0x80, - 0xc2, 0x50, 0x99, 0x5d, 0xbe, 0xb9, 0x2a, 0x35, 0xc8, 0x26, 0x20, 0x74, 0xab, 0x3b, 0xe9, 0x1e, - 0x00, 0xa9, 0xdc, 0xb8, 0x77, 0x2c, 0xa7, 0x6d, 0x88, 0xc4, 0xdf, 0x33, 0x33, 0x2c, 0xc9, 0x4d, - 0x94, 0xf3, 0xa1, 0x7a, 0x1a, 0x8d, 0x8b, 0x05, 0x4f, 0xdc, 0x09, 0x54, 0xb5, 0xad, 0xcb, 0x32, - 0x9e, 0xa7, 0xf1, 0x4a, 0x04, 0x08, 0x80, 0xf7, 0x0f, 0xd1, 0x0d, 0x4f, 0x4b, 0xf0, 0xc3, 0xde, - 0x7d, 0x9a, 0x9b, 0x1d, 0x6b, 0xac, 0xa6, 0xaf, 0x6c, 0x40, 0x8a, 0x28, 0x1a, 0x90, 0xd5, 0x04, - 0xbe, 0x85, 0x3f, 0x0a, 0x3a, 0x38, 0xca, 0xdc, 0x48, 0xca, 0x50, 0x29, 0x24, 0x2a, 0x96, 0xd3, - 0xb6, 0x57, 0x23, 0x73, 0x9f, 0xf7, 0xf4, 0x55, 0x96, 0x91, 0xa3, 0x5e, 0xd1, 0x84, 0xfd, 0xbc, - 0x16, 0x14, 0x4d, 0xdc, 0x72, 0xce, 0xb2, 0x86, 0x18, 0x7f, 0x4d, 0xe2, 0xc7, 0x21, 0x4b, 0x3e, - 0x4a, 0x4a, 0x3e, 0xd8, 0x53, 0x48, 0x1b, 0x5f, 0x8a, 0x76, 0xa9, 0xd7, 0x6b, 0x3f, 0xd3, 0x42, - 0x8b, 0xb6, 0x20, 0x21, 0xa5, 0x8b, 0x45, 0x96, 0xde, 0x82, 0xae, 0x59, 0xea, 0xdf, 0x89, 0x90, - 0x67, 0xe1, 0x5b, 0xf6, 0xd0, 0x1b, 0x75, 0x7e, 0xf9, 0xa5, 0x3d, 0x1e, 0xfe, 0xf2, 0xcb, 0xf4, - 0xe4, 0x97, 0x5f, 0x5c, 0x3c, 0xda, 0x9f, 0x0d, 0x9d, 0x75, 0xa3, 0x80, 0x72, 0x2c, 0x16, 0xfb, - 0xd6, 0xe8, 0x97, 0x5f, 0xf2, 0xf5, 0x2f, 0xbf, 0xd8, 0xe3, 0xb6, 0x6d, 0xb5, 0x8b, 0xb6, 0xe5, - 0x8c, 0x18, 0x5e, 0xf3, 0x43, 0xaf, 0x48, 0x03, 0xa6, 0x33, 0xb4, 0xd8, 0xf2, 0x4f, 0xb7, 0x3d, - 0x08, 0xea, 0x37, 0x11, 0x35, 0xf8, 0x91, 0xcf, 0xbf, 0xba, 0x5b, 0xda, 0x56, 0x36, 0x9f, 0x58, - 0x6d, 0x18, 0x04, 0xdf, 0x6e, 0xe7, 0x06, 0x56, 0x7b, 0xe9, 0xb0, 0x1f, 0x1a, 0xd9, 0x8b, 0x3c, - 0x16, 0x95, 0x3f, 0xdd, 0xce, 0x95, 0x95, 0x3f, 0xf8, 0xd6, 0xaf, 0x98, 0xf7, 0x27, 0xc3, 0x75, - 0xf7, 0x8e, 0x26, 0xfc, 0x4f, 0xe0, 0x67, 0xd4, 0xed, 0x5c, 0x05, 0x9d, 0xd9, 0xe7, 0x9d, 0xaf, - 0xc7, 0x0f, 0xbd, 0x0d, 0x32, 0x5f, 0x6f, 0x65, 0xf6, 0x29, 0xf3, 0x4b, 0x13, 0xe0, 0x87, 0xf6, - 0x3f, 0xc5, 0x7f, 0xd6, 0xa7, 0x96, 0xc3, 0xbe, 0xde, 0x57, 0xa2, 0xca, 0xbe, 0x6b, 0x96, 0xbd, - 0x16, 0xff, 0x89, 0x92, 0x2f, 0xf6, 0x95, 0xa8, 0xb2, 0xdf, 0xfd, 0xb7, 0x41, 0xb1, 0x80, 0xe5, - 0x3e, 0x67, 0xdf, 0xc8, 0x24, 0x6c, 0xc9, 0x64, 0xca, 0x7e, 0x96, 0x2f, 0xb3, 0x38, 0x4d, 0xb3, - 0xfa, 0x68, 0xc3, 0xdf, 0xb6, 0x74, 0x89, 0xa8, 0x73, 0x13, 0x25, 0xb6, 0x4c, 0x04, 0x77, 0x42, - 0x56, 0x35, 0xf4, 0xc9, 0xdf, 0x4d, 0xf1, 0xd5, 0xe9, 0xbd, 0x2a, 0x2a, 0x53, 0xd9, 0xfa, 0x0c, - 0xfd, 0x67, 0xfe, 0x32, 0xc8, 0x72, 0xfe, 0x75, 0x9c, 0x06, 0xa4, 0xb2, 0xab, 0x00, 0xf8, 0x30, - 0x39, 0xed, 0x75, 0xbb, 0x27, 0x99, 0x97, 0xd5, 0xa0, 0xfe, 0xdb, 0x08, 0x9e, 0x89, 0x56, 0x6f, - 0x48, 0xcd, 0xb3, 0xde, 0xa5, 0xd1, 0xdd, 0x3f, 0x1a, 0x9b, 0xe8, 0x45, 0xfa, 0x5e, 0x04, 0x86, - 0x6d, 0xd4, 0x71, 0x97, 0x01, 0xb1, 0x49, 0x56, 0xd8, 0x7d, 0x66, 0x75, 0x2d, 0x67, 0x43, 0x43, - 0xfa, 0xc9, 0x37, 0x8e, 0x8a, 0x54, 0x40, 0x62, 0x63, 0xa7, 0xfd, 0x53, 0xff, 0x61, 0xe1, 0x75, - 0x59, 0x8e, 0x7f, 0x2b, 0xfc, 0x0b, 0xbc, 0x1e, 0x64, 0xab, 0x12, 0x5b, 0x60, 0xcb, 0x4a, 0x66, - 0xa5, 0xc9, 0xeb, 0x05, 0x99, 0xe2, 0x70, 0xa2, 0xc5, 0x7b, 0x94, 0x44, 0x45, 0x14, 0xc4, 0x3f, - 0x09, 0x0b, 0x71, 0x52, 0x49, 0xe4, 0x4f, 0x65, 0xbf, 0x85, 0x1f, 0xd7, 0x72, 0xa9, 0x3a, 0x11, - 0x42, 0x00, 0xfd, 0xad, 0xcd, 0x8d, 0xdd, 0x0d, 0x0b, 0xe7, 0xd4, 0xa0, 0x2b, 0x93, 0x78, 0xce, - 0xd8, 0xcb, 0xcd, 0xa7, 0xa7, 0x32, 0xd4, 0x5f, 0x38, 0x43, 0xd1, 0xdf, 0x82, 0xdf, 0x49, 0x14, - 0xf8, 0x85, 0x77, 0xfa, 0x2b, 0x51, 0xf2, 0x70, 0xab, 0x06, 0xf2, 0x8c, 0x1a, 0x44, 0xbe, 0x75, - 0x0d, 0x2d, 0xf5, 0x91, 0xab, 0xeb, 0xd4, 0x82, 0x45, 0x1f, 0xfb, 0x39, 0xaa, 0x47, 0x26, 0x85, - 0x02, 0x51, 0x9b, 0x94, 0x43, 0xd6, 0x9b, 0x04, 0x0a, 0x1f, 0x46, 0x6f, 0x98, 0xc6, 0x69, 0xd6, - 0x92, 0xca, 0x1f, 0xfe, 0x1b, 0x54, 0x2a, 0x54, 0x13, 0xa4, 0x2b, 0x5a, 0xc5, 0x6a, 0xa0, 0xf9, - 0x8a, 0xb6, 0x24, 0xe9, 0xe1, 0x59, 0x19, 0x59, 0x08, 0xc0, 0xb2, 0x35, 0xd7, 0x89, 0x89, 0x25, - 0x43, 0xd0, 0x6a, 0xc4, 0x18, 0xab, 0xb5, 0xd0, 0x65, 0xb9, 0x4e, 0xac, 0x8c, 0x4a, 0x00, 0xb4, - 0xbf, 0x52, 0xdc, 0xa8, 0x14, 0x53, 0xa5, 0x6b, 0x1e, 0xaf, 0xa2, 0x44, 0x55, 0x90, 0x33, 0x96, - 0x59, 0x7e, 0xa1, 0x12, 0xb0, 0x3d, 0x98, 0x58, 0x1e, 0x5a, 0xe4, 0x84, 0xc7, 0x3b, 0x8a, 0x40, - 0x2a, 0x01, 0x6a, 0x3a, 0x2a, 0xc6, 0xf5, 0x7a, 0xe3, 0x85, 0x91, 0x42, 0x78, 0xd8, 0xc8, 0xa0, - 0x3c, 0xac, 0x18, 0x87, 0x20, 0x41, 0xef, 0x98, 0x4b, 0xad, 0x68, 0x4d, 0xe2, 0x60, 0x9b, 0x7a, - 0xa8, 0x7e, 0x18, 0x43, 0x3a, 0x9b, 0xf5, 0xb5, 0x29, 0x0f, 0x54, 0xc7, 0x52, 0x51, 0x52, 0xb5, - 0x32, 0x21, 0xed, 0xb6, 0x03, 0xb7, 0xa2, 0x4d, 0x75, 0x20, 0x85, 0xc5, 0xd4, 0xd5, 0x87, 0xf4, - 0x47, 0x20, 0xd2, 0x24, 0x37, 0x7d, 0x04, 0x69, 0x71, 0x7a, 0xd9, 0x65, 0xe4, 0x07, 0xe4, 0xc4, - 0x84, 0x8c, 0xec, 0xd0, 0x95, 0x48, 0x71, 0xff, 0x67, 0xd2, 0xf6, 0x70, 0x8f, 0x3b, 0x1c, 0x82, - 0x3f, 0x3b, 0xb1, 0x7b, 0x9d, 0x08, 0xfe, 0x93, 0x4c, 0x95, 0x27, 0x48, 0xe7, 0x32, 0x4d, 0xaf, - 0x0e, 0xbd, 0x87, 0x3e, 0xff, 0xec, 0x12, 0x2e, 0xed, 0x28, 0x87, 0xc3, 0x92, 0xb1, 0x18, 0x0e, - 0x4b, 0x3a, 0xa6, 0x8d, 0xc7, 0x99, 0x3f, 0x4a, 0x45, 0xe0, 0x45, 0x64, 0x53, 0x96, 0xe2, 0x83, - 0x87, 0xcc, 0xfb, 0x9b, 0xdd, 0xbf, 0xb8, 0x38, 0x19, 0xa9, 0xea, 0x54, 0x47, 0x34, 0xe9, 0x32, - 0x64, 0x3b, 0x6c, 0xae, 0xca, 0x03, 0x9d, 0x31, 0x51, 0x19, 0x33, 0x95, 0xb1, 0xa1, 0x19, 0x82, - 0x4a, 0x3e, 0xa4, 0xdf, 0x82, 0x0a, 0xf6, 0xcd, 0x30, 0x3b, 0x45, 0x3d, 0x31, 0xc5, 0xb9, 0x48, - 0xd1, 0x14, 0x27, 0x22, 0xc5, 0xfd, 0x4a, 0x96, 0xc9, 0xa3, 0x41, 0x98, 0x6d, 0x25, 0xe6, 0x54, - 0x4e, 0xea, 0xf3, 0x4e, 0x89, 0x59, 0x43, 0x2c, 0xf8, 0x9c, 0x0e, 0x10, 0xc0, 0x5f, 0xe5, 0xc3, - 0xae, 0x97, 0x9e, 0xf2, 0x41, 0x7e, 0x1b, 0x91, 0x96, 0x84, 0xdf, 0x1c, 0xc2, 0x9e, 0x6f, 0x95, - 0x1e, 0xaa, 0xc9, 0xa8, 0xc7, 0x40, 0x64, 0x24, 0xc8, 0xb0, 0xa3, 0x4e, 0xe6, 0x9c, 0xa6, 0x6d, - 0x3b, 0x7a, 0x95, 0x0d, 0x2f, 0xbd, 0xae, 0x63, 0x56, 0x88, 0xa8, 0x42, 0xd6, 0x49, 0xa8, 0x42, - 0xdf, 0x2c, 0xc8, 0xa8, 0x20, 0x01, 0xbe, 0x51, 0x70, 0xae, 0x94, 0x33, 0x64, 0xd3, 0x65, 0xf7, - 0x24, 0xfe, 0xec, 0xec, 0x92, 0x44, 0xd4, 0xdf, 0x6c, 0x92, 0x99, 0x21, 0xb0, 0x80, 0xa7, 0x03, - 0x79, 0x25, 0x33, 0x72, 0x95, 0xb1, 0xa9, 0x16, 0xfe, 0xdb, 0x3c, 0xde, 0x8b, 0x16, 0xb9, 0xde, - 0x51, 0xb5, 0xde, 0x99, 0x6f, 0xf7, 0x31, 0x92, 0x93, 0x08, 0x68, 0xc9, 0x5e, 0xf9, 0xbd, 0x61, - 0xe6, 0xf5, 0x3b, 0x19, 0x30, 0xc2, 0x5f, 0xf5, 0x78, 0xe7, 0x0a, 0x53, 0x4e, 0x4e, 0xa2, 0x53, - 0x2d, 0xc0, 0x30, 0x18, 0xd0, 0x4e, 0x35, 0x8e, 0x52, 0x8f, 0x23, 0x46, 0xc6, 0x05, 0x64, 0x79, - 0x73, 0x18, 0xf1, 0xa1, 0xd5, 0xe9, 0x9f, 0xd0, 0x29, 0x02, 0x41, 0x7e, 0x27, 0x76, 0x82, 0x5e, - 0xbb, 0xdd, 0x61, 0xe2, 0xf5, 0xbb, 0x5d, 0xc2, 0x89, 0x1c, 0x55, 0xd2, 0x8e, 0xf4, 0x00, 0xfa, - 0x18, 0x80, 0x8d, 0x77, 0x67, 0xff, 0x20, 0x32, 0x13, 0x19, 0xa2, 0xde, 0x69, 0xdf, 0x1c, 0x87, - 0x64, 0xef, 0x03, 0xac, 0x20, 0x9d, 0x6c, 0xbf, 0xa0, 0x5e, 0xb5, 0x90, 0xce, 0x30, 0xf7, 0xcb, - 0xcb, 0xa1, 0x8d, 0x71, 0x0a, 0x0a, 0xea, 0xf4, 0x2e, 0x2e, 0xdc, 0xfe, 0xc5, 0xf9, 0xcb, 0x8b, - 0x8b, 0xcb, 0xfe, 0x8b, 0xee, 0x55, 0xef, 0xc5, 0x55, 0xc7, 0x3d, 0x3f, 0xbf, 0xb8, 0xba, 0xbc, - 0xba, 0xe8, 0x9e, 0xe3, 0xe7, 0xc5, 0x55, 0xef, 0xec, 0xec, 0x04, 0x5e, 0x25, 0xef, 0xf4, 0x9d, - 0x76, 0xaf, 0x7b, 0xee, 0x9e, 0x5f, 0xf5, 0x7b, 0x97, 0xbd, 0xab, 0xab, 0xb3, 0xab, 0xb3, 0x97, - 0x2f, 0x5f, 0x9e, 0xfc, 0x6e, 0x83, 0x4d, 0xf8, 0xab, 0x7e, 0x17, 0xb3, 0x71, 0x5f, 0xf6, 0x5f, - 0x9c, 0x77, 0xaf, 0x2e, 0xbb, 0x97, 0xe7, 0xdd, 0xee, 0x8b, 0xb3, 0xab, 0x8b, 0x13, 0x08, 0x0f, - 0xde, 0xe9, 0x75, 0x9d, 0x0e, 0xfa, 0x70, 0x5f, 0x5c, 0x5e, 0x9d, 0x5d, 0xf4, 0x5e, 0x9e, 0xf7, - 0xfa, 0xdd, 0xab, 0x6e, 0xbf, 0xdd, 0xeb, 0x5d, 0xb8, 0x97, 0x2f, 0xae, 0xae, 0xce, 0xcf, 0xbb, - 0xbd, 0xee, 0xe5, 0x65, 0xef, 0xfc, 0x05, 0x80, 0x41, 0xc2, 0x78, 0x18, 0x1d, 0xea, 0xb9, 0x57, - 0xa8, 0xdf, 0xbd, 0xb8, 0xbc, 0x7c, 0x89, 0x9f, 0xab, 0xb3, 0xb6, 0xdb, 0xeb, 0x9d, 0xf7, 0x01, - 0xf9, 0xe2, 0xec, 0x05, 0x40, 0x5c, 0x02, 0x76, 0x02, 0xd8, 0xe0, 0x97, 0xce, 0x79, 0x17, 0x53, - 0x38, 0xbb, 0xbc, 0x3c, 0xeb, 0x5e, 0x9d, 0x9d, 0xf5, 0x7b, 0x7d, 0x82, 0x43, 0x7a, 0xdc, 0x3f, - 0xeb, 0x5f, 0x60, 0x32, 0x57, 0xe8, 0xf0, 0xe2, 0x45, 0xaf, 0x77, 0xf5, 0xe2, 0xbc, 0xed, 0x76, - 0x5f, 0x5c, 0x9d, 0x9f, 0x9d, 0x5f, 0x5c, 0x52, 0xfd, 0xcb, 0xfe, 0xd9, 0x79, 0x5f, 0xce, 0xed, - 0x82, 0x86, 0xf8, 0xd2, 0xed, 0xbe, 0xbc, 0xe8, 0x5f, 0x5d, 0x9e, 0x5d, 0xa0, 0xd6, 0xc5, 0x0b, - 0x39, 0x35, 0xc1, 0xa2, 0x82, 0xa9, 0x85, 0xf0, 0x30, 0x98, 0xf8, 0x67, 0x2a, 0x36, 0x78, 0xf8, - 0x67, 0x0c, 0x7e, 0x87, 0x85, 0xff, 0x2e, 0x25, 0xf1, 0x5e, 0xaf, 0x4e, 0x50, 0x49, 0x26, 0xb9, - 0x17, 0x0b, 0xd5, 0xe7, 0x67, 0xa0, 0xcd, 0x73, 0x7e, 0x3e, 0x70, 0xcf, 0x5f, 0x95, 0x1d, 0x3e, - 0x90, 0xeb, 0x98, 0xfa, 0x8d, 0x75, 0xc6, 0xac, 0x5d, 0xcc, 0xbd, 0x6c, 0x93, 0x67, 0x94, 0x82, - 0xed, 0x53, 0x37, 0xfb, 0x2f, 0x3f, 0x3b, 0x8d, 0x86, 0x90, 0x6b, 0x1e, 0x14, 0x78, 0x15, 0x27, - 0xd9, 0xb0, 0x6d, 0x31, 0x0f, 0xcf, 0x07, 0x0e, 0x72, 0xad, 0xba, 0x85, 0xb5, 0x23, 0xf2, 0xc8, - 0xe8, 0xb1, 0x63, 0x36, 0x7a, 0xa0, 0x33, 0x83, 0xb0, 0x02, 0x57, 0x16, 0x83, 0x79, 0xee, 0x19, - 0xa2, 0x58, 0xea, 0x7d, 0x69, 0x05, 0x6c, 0x13, 0x2b, 0x68, 0x1d, 0x14, 0x0a, 0xb6, 0xc3, 0xbc, - 0x73, 0xb3, 0x59, 0xcd, 0x9c, 0xb2, 0x1d, 0x9d, 0x43, 0x92, 0xea, 0x25, 0x61, 0xdb, 0xa6, 0x87, - 0xb6, 0xb2, 0x00, 0x15, 0x4e, 0xda, 0x8a, 0x7e, 0x72, 0xfa, 0x09, 0xf0, 0xb3, 0xa9, 0xfc, 0xd9, - 0x4c, 0x86, 0xe7, 0xa2, 0x51, 0x36, 0xf6, 0xe9, 0x88, 0xc5, 0x11, 0xdc, 0xdd, 0x6c, 0x3c, 0x50, - 0xc6, 0x4e, 0xc1, 0xec, 0xc8, 0x5d, 0xac, 0xd7, 0x91, 0x9b, 0xd3, 0xcf, 0x8a, 0x7e, 0x28, 0x86, - 0xd8, 0xe8, 0x48, 0x3a, 0xb1, 0x91, 0x8a, 0x52, 0xeb, 0x96, 0x18, 0x7a, 0x35, 0xf9, 0x60, 0x67, - 0xf6, 0x0a, 0xa7, 0x0d, 0x4b, 0x68, 0x67, 0xaa, 0xb5, 0xe6, 0xae, 0x81, 0xc1, 0x62, 0x38, 0x00, - 0x4b, 0x82, 0x71, 0x17, 0x8f, 0xc0, 0x21, 0x04, 0x6f, 0x2a, 0x58, 0x79, 0x80, 0x76, 0x81, 0xf0, - 0x16, 0x1f, 0x07, 0x99, 0x3f, 0x06, 0x32, 0x37, 0x41, 0x4a, 0x93, 0xe6, 0x71, 0x68, 0xab, 0xc7, - 0xa0, 0xad, 0x4c, 0x68, 0x41, 0xbc, 0x5c, 0x04, 0x4f, 0x40, 0x0b, 0x1e, 0x81, 0x56, 0x63, 0x17, - 0x6f, 0xec, 0x21, 0x00, 0x6c, 0xa7, 0x02, 0xae, 0xac, 0x9c, 0x03, 0xd0, 0x1b, 0xdc, 0x66, 0x6b, - 0x3b, 0xeb, 0xd0, 0x1a, 0x91, 0x09, 0xd6, 0x64, 0xaa, 0xa2, 0xee, 0x28, 0xe3, 0xd3, 0x47, 0xe7, - 0x80, 0xc6, 0x6e, 0xf6, 0x08, 0xe0, 0x7a, 0x16, 0x78, 0x23, 0xc9, 0x61, 0xce, 0x62, 0x9e, 0x71, - 0x9e, 0x3c, 0x09, 0x7e, 0xfe, 0x7c, 0xf0, 0xf3, 0x06, 0xf8, 0xc9, 0x53, 0xcb, 0x49, 0xd0, 0x27, - 0xcf, 0x87, 0x3e, 0x69, 0x40, 0x27, 0xff, 0x72, 0xbf, 0x58, 0xa8, 0x2d, 0x32, 0x5b, 0x71, 0x07, - 0x13, 0x76, 0x8a, 0xb4, 0x51, 0xa4, 0x84, 0xab, 0xed, 0xa3, 0x6f, 0x48, 0x90, 0xce, 0xf1, 0x88, - 0x48, 0x70, 0x7e, 0x63, 0x53, 0x6c, 0xec, 0x09, 0xaa, 0xa8, 0x0d, 0x22, 0x72, 0x59, 0x40, 0x1a, - 0xd5, 0xd9, 0xeb, 0xc2, 0x0d, 0x86, 0x3d, 0xc8, 0x9e, 0xa0, 0x39, 0xd0, 0x67, 0xb0, 0xb0, 0x98, - 0x21, 0x88, 0x8c, 0xd2, 0x82, 0x74, 0x37, 0x8f, 0xd1, 0x8b, 0x29, 0x20, 0xe2, 0xc7, 0xd1, 0x00, - 0xfb, 0xa4, 0x81, 0x86, 0x85, 0x34, 0x07, 0x04, 0x1a, 0xe2, 0x5a, 0x76, 0x0a, 0x34, 0xe4, 0x12, - 0x0d, 0xf1, 0x73, 0xd1, 0xa0, 0x2d, 0x8f, 0xe7, 0xa0, 0x41, 0x38, 0xf3, 0x4f, 0xa2, 0x01, 0xb5, - 0x9e, 0x89, 0x06, 0xe1, 0x6f, 0x98, 0x48, 0x96, 0x5e, 0xd5, 0x63, 0xaa, 0x02, 0x95, 0xf4, 0x61, - 0x6a, 0x24, 0x29, 0x7e, 0xe1, 0x66, 0x6d, 0x8b, 0xb5, 0x28, 0x31, 0xd7, 0x89, 0x49, 0xdb, 0x72, - 0xac, 0x03, 0x9a, 0x43, 0xef, 0x14, 0x50, 0xd4, 0x73, 0x06, 0x13, 0xc8, 0xff, 0xcd, 0xe5, 0x77, - 0x3c, 0xa4, 0x18, 0xd1, 0x10, 0x9a, 0xfb, 0xef, 0x36, 0x1d, 0x57, 0x92, 0x3a, 0x38, 0x13, 0x6f, - 0x7d, 0xf5, 0xc6, 0xc5, 0xdb, 0x99, 0x7c, 0x13, 0x36, 0xc5, 0xb7, 0x55, 0x4b, 0x71, 0x14, 0xf0, - 0x99, 0x4d, 0xd1, 0x35, 0xbd, 0x9d, 0x8f, 0x59, 0xcf, 0x71, 0xd8, 0x51, 0x72, 0xd8, 0x4b, 0xc4, - 0x04, 0x5b, 0xca, 0xdd, 0x75, 0x06, 0x15, 0xdd, 0x80, 0xde, 0x23, 0x10, 0x7b, 0x06, 0x4a, 0xe7, - 0xd0, 0x65, 0xe5, 0xa6, 0x41, 0xa5, 0xcf, 0xc2, 0x60, 0x60, 0xa0, 0x30, 0x38, 0x8c, 0x43, 0x99, - 0x08, 0xf6, 0x23, 0x73, 0xdb, 0x59, 0xae, 0x89, 0x44, 0xbb, 0xd8, 0xcf, 0x5c, 0xc6, 0x4f, 0xac, - 0xf6, 0x3f, 0x60, 0x43, 0x64, 0x8e, 0x78, 0xcc, 0xe5, 0x63, 0x9f, 0xa4, 0x6d, 0x2e, 0x1f, 0x50, - 0xa9, 0x16, 0xf0, 0xcb, 0xc6, 0x02, 0xf6, 0x5e, 0x9c, 0xfc, 0xb7, 0x58, 0x08, 0x5a, 0x04, 0xf5, - 0xd2, 0x1f, 0xd3, 0x1a, 0xa8, 0x97, 0xb3, 0xb1, 0x5c, 0xbd, 0xaf, 0xff, 0x74, 0x33, 0x22, 0x1a, - 0xf9, 0x72, 0xae, 0x60, 0x7c, 0xd7, 0x80, 0x51, 0x03, 0xa8, 0x5b, 0x9b, 0x3d, 0x7e, 0xd1, 0xa4, - 0x97, 0x47, 0xaa, 0xa3, 0x27, 0xdd, 0xcd, 0xa3, 0x14, 0x02, 0x5c, 0x3f, 0x83, 0x42, 0xc8, 0x91, - 0xdb, 0x98, 0xeb, 0xf3, 0xf2, 0xcf, 0x51, 0xc9, 0x81, 0x15, 0xc2, 0xe3, 0x67, 0xe1, 0x67, 0x82, - 0x46, 0x9c, 0x83, 0x2c, 0x5e, 0x07, 0x5c, 0x4c, 0x31, 0xf2, 0xf4, 0x00, 0x50, 0x49, 0xf7, 0x8f, - 0xa4, 0x20, 0xd2, 0x85, 0x26, 0xc9, 0xbc, 0x6d, 0x7d, 0x26, 0x53, 0x31, 0x52, 0xcf, 0x67, 0xf5, - 0x1f, 0xf6, 0xb1, 0x3a, 0x7c, 0x45, 0x83, 0x5f, 0x85, 0x73, 0x54, 0xf1, 0x2b, 0xbd, 0x89, 0xa5, - 0xfb, 0x74, 0x2f, 0xab, 0x3f, 0xd5, 0xf4, 0xf9, 0xac, 0x8e, 0x29, 0x6e, 0x2d, 0x24, 0xc9, 0x46, - 0xc8, 0xf4, 0x08, 0x02, 0x1d, 0x7e, 0xff, 0x36, 0xab, 0x93, 0x24, 0x7e, 0x16, 0x0e, 0x03, 0x03, - 0x89, 0xc1, 0x63, 0x58, 0x7c, 0x9a, 0xd9, 0x8d, 0xa8, 0xd7, 0x66, 0x03, 0x1a, 0x8d, 0x37, 0xb6, - 0x53, 0xc7, 0x42, 0xff, 0xc7, 0x40, 0x3b, 0x94, 0xc7, 0x6d, 0x34, 0x2d, 0x16, 0x42, 0x41, 0xe5, - 0x98, 0x1f, 0xcf, 0xde, 0x47, 0x7f, 0x70, 0xf2, 0x1d, 0xdd, 0x49, 0x9a, 0xe1, 0xf5, 0x9f, 0xa2, - 0x98, 0x0e, 0xb6, 0xc2, 0x82, 0x9e, 0xc6, 0xfc, 0xc7, 0x60, 0x1a, 0x95, 0x39, 0x4b, 0xc5, 0x85, - 0xaf, 0xe9, 0x94, 0xf6, 0x17, 0xe2, 0xba, 0xed, 0x22, 0x80, 0x6b, 0x91, 0xfb, 0xd6, 0x22, 0xcd, - 0xa2, 0x3f, 0xd2, 0xa4, 0x08, 0x62, 0x4b, 0x68, 0xa8, 0x38, 0xb8, 0x4f, 0xcb, 0xe2, 0xcb, 0x28, - 0xe3, 0x62, 0x0c, 0xb5, 0x4f, 0xaa, 0x76, 0x25, 0x13, 0x3f, 0x73, 0xc8, 0x57, 0x3e, 0x49, 0xdb, - 0x7d, 0xf8, 0xdf, 0x56, 0x18, 0x65, 0xa1, 0x3c, 0x57, 0x1b, 0x0f, 0x1f, 0x64, 0xc7, 0x22, 0x04, - 0xea, 0x55, 0xbd, 0xb6, 0xb7, 0x06, 0xa4, 0x5f, 0x60, 0xe5, 0x7b, 0x51, 0x07, 0x80, 0x3a, 0x04, - 0x48, 0x4c, 0x0e, 0x4b, 0xb3, 0xe0, 0xd1, 0x7c, 0x51, 0x20, 0x11, 0xde, 0x79, 0x11, 0x1c, 0xe9, - 0xf0, 0x5e, 0x3c, 0x32, 0xd1, 0x96, 0x92, 0x1d, 0x7e, 0xda, 0xdf, 0x78, 0x8d, 0xae, 0x32, 0x54, - 0x68, 0x42, 0xcd, 0x74, 0x03, 0x2a, 0xba, 0xf3, 0xba, 0xec, 0x1e, 0xff, 0x64, 0x17, 0xf9, 0x30, - 0xab, 0xbb, 0xc9, 0x87, 0x91, 0x97, 0x19, 0x9b, 0x7e, 0xff, 0x32, 0x43, 0xc9, 0x84, 0x7e, 0xa0, - 0x3b, 0x52, 0x88, 0xa7, 0x4b, 0x19, 0xb2, 0x19, 0x90, 0x1c, 0xb9, 0x46, 0x87, 0xc0, 0xb1, 0x7e, - 0x17, 0x03, 0xa2, 0x9d, 0x87, 0x27, 0xf0, 0x0a, 0xd4, 0xc7, 0x43, 0x0c, 0xce, 0xe3, 0x34, 0x47, - 0x3f, 0x6d, 0xef, 0xdb, 0x8a, 0x4b, 0x44, 0xb8, 0x8e, 0x82, 0x11, 0x42, 0xb8, 0xab, 0xb8, 0x8f, - 0x5e, 0x42, 0x71, 0x10, 0x52, 0x84, 0x80, 0x84, 0x39, 0xec, 0xe9, 0x95, 0xa2, 0xc8, 0x93, 0x0b, - 0x49, 0x2e, 0x4a, 0xa4, 0x2d, 0x5b, 0x97, 0xcd, 0x8d, 0x32, 0x61, 0x88, 0xd6, 0x45, 0x13, 0xa3, - 0x48, 0x7a, 0x09, 0xba, 0x8c, 0xa2, 0x1c, 0xf0, 0xd1, 0x64, 0x91, 0xb2, 0xf1, 0x3d, 0x79, 0x9d, - 0xad, 0xa0, 0xa0, 0xd5, 0x07, 0x7e, 0xb3, 0xe4, 0x19, 0x79, 0x3e, 0x5c, 0xd0, 0xdf, 0x4d, 0x70, - 0x67, 0x64, 0x89, 0x38, 0x9e, 0x9d, 0x28, 0x53, 0xbe, 0xc3, 0x9d, 0xd3, 0xf2, 0xc4, 0x88, 0x76, - 0x54, 0xb1, 0xb0, 0x2e, 0xab, 0x82, 0x60, 0xa9, 0x94, 0x12, 0xb2, 0xc3, 0x85, 0x31, 0x4a, 0xa0, - 0xf9, 0xd4, 0x3f, 0x73, 0x2f, 0x65, 0x89, 0xe1, 0x6c, 0xd5, 0x15, 0x72, 0x59, 0x26, 0xbd, 0x26, - 0x4f, 0xdd, 0xf3, 0xab, 0x8b, 0xe1, 0xfe, 0x0a, 0x14, 0x8b, 0xd8, 0x7f, 0xa9, 0x07, 0x11, 0x43, - 0x04, 0x85, 0x7e, 0xa7, 0x77, 0x12, 0xb6, 0x4b, 0xd0, 0x75, 0x0a, 0xbb, 0xed, 0xce, 0x8b, 0x87, - 0xb9, 0x17, 0x82, 0x72, 0xe2, 0x61, 0xe8, 0xe5, 0x1b, 0x19, 0x54, 0x47, 0xd3, 0xc2, 0xef, 0x9f, - 0x88, 0x91, 0xfe, 0xf0, 0x86, 0x45, 0x85, 0xbf, 0xef, 0x4a, 0x94, 0x5d, 0x7c, 0x96, 0xb4, 0x13, - 0xe7, 0x33, 0xb8, 0xf7, 0xd9, 0xfe, 0x1a, 0x72, 0xda, 0xf9, 0xef, 0x59, 0x61, 0x17, 0x27, 0x45, - 0x3b, 0x39, 0x49, 0x9c, 0x4d, 0xcd, 0xf8, 0x22, 0xe8, 0x5f, 0xef, 0x31, 0x08, 0xfa, 0x03, 0xe5, - 0x57, 0x2c, 0xd5, 0x69, 0xb2, 0x54, 0xa7, 0x21, 0x02, 0x8c, 0x0b, 0x5d, 0x85, 0x19, 0x79, 0x53, - 0x50, 0xb4, 0x6d, 0x2b, 0xb9, 0xa1, 0x92, 0x2a, 0x92, 0x5d, 0x92, 0x26, 0x28, 0x62, 0xc2, 0x84, - 0x58, 0x30, 0x31, 0x78, 0x24, 0x2d, 0x1a, 0x11, 0x69, 0x82, 0xbc, 0xe0, 0x3c, 0xfe, 0x3c, 0x99, - 0xc7, 0x52, 0x1c, 0x89, 0xd7, 0x1d, 0x09, 0x42, 0xa7, 0xb6, 0xc3, 0x38, 0x0d, 0xaf, 0x6f, 0xa3, - 0x5c, 0xc8, 0x0b, 0x3e, 0x84, 0x2c, 0x69, 0x8b, 0xd3, 0xfc, 0x5b, 0xb9, 0xd0, 0x01, 0x1d, 0x2a, - 0xa1, 0x26, 0x41, 0x52, 0x44, 0x7b, 0x9a, 0xf5, 0x5e, 0x76, 0x3b, 0x68, 0xba, 0x5b, 0x4a, 0x87, - 0xa0, 0x7c, 0x8a, 0x6d, 0x62, 0x6d, 0xec, 0x44, 0xa8, 0x93, 0x7a, 0xe8, 0xf1, 0xd6, 0xd0, 0x05, - 0x82, 0x28, 0xf0, 0xe8, 0x86, 0x77, 0xa0, 0x5c, 0x3c, 0xee, 0x29, 0xf2, 0x2a, 0xb6, 0x89, 0x28, - 0x70, 0x45, 0x72, 0xb7, 0xec, 0x44, 0x62, 0xf3, 0x31, 0xf6, 0xc5, 0xc4, 0xc5, 0xba, 0x05, 0x45, - 0x90, 0xf4, 0xed, 0x4e, 0xc4, 0x28, 0x72, 0x69, 0xa3, 0x8f, 0xd3, 0x04, 0x6a, 0x0c, 0x3c, 0x5d, - 0x51, 0x70, 0x56, 0x88, 0x73, 0xd9, 0x2c, 0x35, 0x82, 0x86, 0xf5, 0xde, 0x97, 0x1d, 0x93, 0x53, - 0x61, 0xbc, 0x83, 0x18, 0x4f, 0xd3, 0x93, 0xdc, 0x3c, 0x7f, 0x90, 0xef, 0x2e, 0x9e, 0xd0, 0x02, - 0x93, 0xf4, 0xee, 0x5b, 0x21, 0x85, 0x9a, 0x0b, 0x99, 0x68, 0x91, 0xa6, 0x6e, 0x1e, 0x42, 0xb0, - 0x25, 0x7a, 0x55, 0x0f, 0x89, 0x62, 0xa3, 0xb7, 0x70, 0x0b, 0x33, 0x79, 0x85, 0x99, 0x5b, 0xa5, - 0x56, 0x32, 0x2d, 0xfc, 0x52, 0x24, 0x25, 0x60, 0x26, 0xa2, 0xc5, 0xa9, 0x73, 0x6a, 0x73, 0x92, - 0xe3, 0x0e, 0xb1, 0x35, 0x90, 0x60, 0x47, 0x22, 0xaf, 0xac, 0xf2, 0xf4, 0x48, 0xd5, 0x94, 0xb7, - 0x98, 0x3d, 0x96, 0xcc, 0xce, 0x56, 0x7b, 0x4b, 0x51, 0xd6, 0xc9, 0x65, 0x0d, 0x63, 0xb8, 0x41, - 0x51, 0xdf, 0xab, 0xad, 0x4e, 0x51, 0xf8, 0xdd, 0x01, 0xaf, 0x4f, 0xb0, 0x70, 0x7d, 0xd8, 0xa2, - 0x14, 0xe7, 0x24, 0xdc, 0x3b, 0xac, 0x66, 0x2a, 0x93, 0xf7, 0x1d, 0x71, 0xfb, 0xb3, 0x66, 0xc1, - 0xf2, 0xa4, 0x6c, 0xa7, 0x18, 0xec, 0xab, 0x26, 0x7e, 0xf4, 0x39, 0x41, 0x6e, 0x1e, 0xd3, 0x33, - 0xee, 0xcd, 0x18, 0x5c, 0xfa, 0x80, 0x65, 0x81, 0x3e, 0x06, 0x8e, 0xe1, 0xe0, 0x0b, 0x06, 0xea, - 0x20, 0xc7, 0x62, 0x32, 0xed, 0x35, 0xb8, 0x8a, 0xee, 0xc7, 0xb4, 0xf2, 0x94, 0x6c, 0x14, 0xe1, - 0x15, 0x88, 0x92, 0xd7, 0xb4, 0x7d, 0x65, 0xcc, 0x70, 0x51, 0x6c, 0x1f, 0xaa, 0x69, 0x5b, 0x9d, - 0x39, 0xe1, 0x9d, 0x4e, 0x11, 0x5a, 0xed, 0x44, 0x9a, 0x1c, 0x11, 0xf0, 0xb5, 0xb4, 0xf7, 0xc4, - 0xf2, 0x46, 0xdd, 0xfa, 0x1a, 0x38, 0xec, 0xaa, 0xb6, 0xd5, 0x12, 0x6d, 0x3e, 0xb3, 0x36, 0x8e, - 0xfb, 0x31, 0x05, 0x62, 0x2d, 0x66, 0x39, 0xc2, 0x32, 0xa9, 0x6f, 0x0e, 0x18, 0xf3, 0xd9, 0xdd, - 0x13, 0x1c, 0x42, 0xa5, 0x8b, 0x9b, 0x3d, 0x42, 0x10, 0x4e, 0x0b, 0x7f, 0x64, 0xdd, 0xa4, 0x65, - 0x2e, 0xae, 0x27, 0x00, 0x56, 0x91, 0x96, 0xe1, 0x42, 0xa5, 0x45, 0x7e, 0xb9, 0xd4, 0xb9, 0x3c, - 0x99, 0x5a, 0x63, 0x36, 0x37, 0x04, 0x61, 0x62, 0xec, 0x84, 0x8a, 0x4e, 0x13, 0x75, 0x4a, 0x91, - 0x82, 0x7e, 0xd5, 0x11, 0x8d, 0x68, 0xea, 0xcb, 0x35, 0xca, 0xb0, 0x26, 0xe9, 0x8d, 0x4d, 0xf7, - 0x87, 0xeb, 0xfd, 0xd6, 0xb3, 0x4b, 0x87, 0x8e, 0xd8, 0xcb, 0x71, 0xda, 0x17, 0xf5, 0xd1, 0x33, - 0x71, 0xb2, 0xed, 0xb7, 0xdf, 0x44, 0x00, 0xf5, 0xb7, 0xdf, 0x7c, 0x48, 0x02, 0xdb, 0x8c, 0xa7, - 0xea, 0xb3, 0x3c, 0xf2, 0x58, 0xa6, 0x2d, 0x2e, 0xc0, 0x57, 0x85, 0x8e, 0xd3, 0x38, 0xd5, 0x5f, - 0x38, 0xbb, 0xe7, 0x42, 0x0e, 0xc4, 0x4d, 0x25, 0xdd, 0x88, 0x7b, 0x30, 0xf2, 0xfc, 0x87, 0xd8, - 0x31, 0x03, 0xc7, 0x3e, 0xa4, 0xc9, 0x5b, 0xc2, 0xc7, 0x97, 0xe9, 0x6d, 0x02, 0x96, 0x84, 0x49, - 0x40, 0x38, 0xc9, 0x85, 0xe1, 0x42, 0xfa, 0xe1, 0x69, 0x53, 0x41, 0x1f, 0xff, 0x13, 0x9a, 0x35, - 0x9b, 0x47, 0xc9, 0x50, 0x9b, 0x00, 0x6f, 0xc5, 0xab, 0xa7, 0xf3, 0xc1, 0xa5, 0x0f, 0x58, 0x81, - 0x6c, 0x16, 0xa7, 0xb7, 0x9e, 0xb5, 0x8a, 0xf2, 0x68, 0x02, 0xd3, 0x8c, 0x4d, 0xa3, 0x7c, 0x09, - 0x98, 0x5e, 0x36, 0xb4, 0xa2, 0x24, 0x8e, 0x12, 0xde, 0x99, 0x90, 0xc8, 0xb4, 0x28, 0x14, 0x45, - 0xcf, 0xea, 0xf6, 0x78, 0x57, 0x6f, 0x9d, 0x8b, 0x13, 0xa7, 0xa8, 0x2e, 0xc1, 0x7e, 0xc7, 0x67, - 0x05, 0x2a, 0xcb, 0x97, 0x0f, 0xe9, 0xd2, 0x1a, 0xfb, 0xdc, 0x61, 0x0b, 0xfb, 0x9d, 0x3c, 0xee, - 0x56, 0x5f, 0x24, 0xb7, 0xf5, 0xba, 0x81, 0x31, 0x4b, 0xb9, 0x0b, 0x69, 0x1e, 0x66, 0xaa, 0x10, - 0x74, 0x00, 0x87, 0x4c, 0x1d, 0x3e, 0x92, 0x87, 0x2d, 0xd3, 0xe4, 0x4d, 0xb2, 0x2c, 0x0b, 0xb2, - 0x77, 0x29, 0x93, 0x8e, 0xae, 0xd1, 0x69, 0x94, 0x2f, 0x48, 0x5e, 0x62, 0xc5, 0x5f, 0xc7, 0xc4, - 0x08, 0x3f, 0x02, 0x45, 0xb0, 0x98, 0xa9, 0x1f, 0x71, 0xa5, 0xe5, 0x4b, 0xa9, 0xee, 0x91, 0xa5, - 0xcd, 0x13, 0x49, 0x81, 0xf9, 0x90, 0x46, 0x49, 0xb6, 0xda, 0xf4, 0x83, 0xcc, 0xa0, 0x6b, 0xba, - 0x64, 0xc8, 0x71, 0x37, 0x14, 0x90, 0xfe, 0xa7, 0x43, 0x92, 0x63, 0x46, 0xe2, 0x4d, 0x67, 0xfd, - 0x0b, 0x59, 0x45, 0xba, 0xac, 0xed, 0xae, 0xa2, 0xb6, 0xb8, 0x04, 0x89, 0x4f, 0xb1, 0xa4, 0x96, - 0x27, 0xde, 0xeb, 0x45, 0xb5, 0xbc, 0xa3, 0x1e, 0x9d, 0xc6, 0x15, 0xb7, 0xbd, 0xe8, 0xf2, 0xf6, - 0xb4, 0xa0, 0x53, 0x4a, 0x5f, 0x05, 0x00, 0x61, 0xce, 0xbb, 0x3a, 0x1f, 0xbc, 0x73, 0xe3, 0x8a, - 0xf8, 0xfe, 0x61, 0x49, 0x67, 0xcd, 0x56, 0x9c, 0xe2, 0xea, 0xce, 0xc6, 0xdc, 0xbd, 0x33, 0xb8, - 0xce, 0xe8, 0x5a, 0xbe, 0xcb, 0x4e, 0x7b, 0xbb, 0xd5, 0xc1, 0x8c, 0x46, 0x65, 0x62, 0x48, 0x55, - 0xb7, 0xef, 0xb0, 0xa7, 0xc6, 0xb7, 0xef, 0x86, 0xd7, 0x9e, 0x21, 0xd2, 0xf6, 0xf5, 0xc6, 0x7e, - 0x63, 0xb8, 0x2f, 0x93, 0x86, 0x06, 0x93, 0x71, 0xc6, 0x32, 0x8b, 0xc9, 0x9e, 0x25, 0x9a, 0xd6, - 0x54, 0xb7, 0xb0, 0xc5, 0x09, 0x72, 0xf6, 0x50, 0xdd, 0xe4, 0xf3, 0xac, 0x37, 0x59, 0xfa, 0xad, - 0xa0, 0x97, 0x56, 0x95, 0xea, 0x74, 0x48, 0x58, 0x0a, 0xf2, 0x14, 0xc2, 0x8c, 0x4e, 0x18, 0xe7, - 0x9f, 0xa3, 0xa7, 0x15, 0x1f, 0x5a, 0x46, 0x2d, 0x9d, 0x09, 0x8a, 0xb5, 0xa0, 0x65, 0xe9, 0x8e, - 0x9f, 0xf7, 0x60, 0x75, 0x6e, 0xf9, 0xe4, 0x3a, 0x2a, 0x3a, 0x45, 0xb0, 0xec, 0x2c, 0xa0, 0xc6, - 0x62, 0x52, 0x65, 0x1d, 0x71, 0x66, 0xc0, 0x92, 0x51, 0x1e, 0x28, 0x9d, 0x96, 0xfa, 0xdf, 0x19, - 0x58, 0xac, 0x80, 0xd0, 0xc9, 0xe9, 0x92, 0x9a, 0x67, 0x89, 0x64, 0x4c, 0xc2, 0xc2, 0x6a, 0x93, - 0x8c, 0x74, 0xef, 0x1c, 0x29, 0x7c, 0xc5, 0xcb, 0xbd, 0x90, 0xa2, 0x70, 0x2e, 0xe2, 0x58, 0x6e, - 0x5d, 0xa8, 0x06, 0xe2, 0x82, 0x1b, 0x03, 0xfd, 0x78, 0xa8, 0x46, 0xf6, 0x08, 0x51, 0x97, 0x4e, - 0x4b, 0x9d, 0x8d, 0x97, 0x3e, 0x0c, 0x3f, 0xad, 0xb9, 0xf5, 0xeb, 0x32, 0xcd, 0x23, 0x42, 0x20, - 0xcc, 0x9b, 0x09, 0xd4, 0x44, 0x59, 0x80, 0x87, 0x77, 0xd9, 0x1a, 0xf8, 0x86, 0x7d, 0x04, 0xe4, - 0x61, 0x79, 0x2d, 0xd6, 0x38, 0xa0, 0x68, 0x3f, 0x88, 0x1b, 0x66, 0xdf, 0xd2, 0x57, 0x25, 0x1a, - 0x2e, 0x27, 0x7c, 0xd8, 0x62, 0xbd, 0xae, 0x56, 0x16, 0xec, 0xa4, 0x8e, 0xa5, 0xe7, 0x5f, 0xdc, - 0x7f, 0x90, 0xf7, 0xf3, 0x6c, 0x8b, 0x38, 0xcd, 0x72, 0xd4, 0x1d, 0xd3, 0x5b, 0x20, 0x3c, 0xbd, - 0x75, 0x93, 0x60, 0x15, 0xcd, 0x03, 0x3a, 0x10, 0x86, 0xde, 0xb2, 0xcf, 0xe7, 0x74, 0xe3, 0x3e, - 0xf2, 0x4f, 0x7f, 0xb5, 0xed, 0xe1, 0x51, 0x08, 0x07, 0xfc, 0x86, 0xaf, 0x81, 0xfe, 0x2c, 0x8d, - 0xa6, 0x8e, 0xeb, 0x9c, 0xe4, 0xc1, 0x2c, 0xc8, 0xa2, 0xd3, 0x48, 0x5f, 0x09, 0xa5, 0x8f, 0x9f, - 0x44, 0x3f, 0x2c, 0xd2, 0x84, 0xaf, 0xa3, 0x1f, 0xd2, 0x29, 0x7e, 0x82, 0xa9, 0x51, 0xca, 0x75, - 0x2f, 0x74, 0xb8, 0xdf, 0x30, 0x19, 0xed, 0x68, 0xbd, 0xce, 0xc0, 0x40, 0x10, 0x4b, 0xfa, 0xde, - 0xee, 0x50, 0x9d, 0xb5, 0xc3, 0xc2, 0xb5, 0xad, 0xd3, 0x53, 0xab, 0x0d, 0xb9, 0x92, 0xe6, 0x05, - 0x1e, 0x4b, 0x28, 0x8a, 0x04, 0xe3, 0x6f, 0xd3, 0xf1, 0xc6, 0x20, 0x0b, 0x17, 0x6d, 0xe8, 0xab, - 0x8d, 0x1d, 0x69, 0x29, 0x44, 0x27, 0x0f, 0xd9, 0x91, 0xc4, 0x98, 0xf2, 0x59, 0x41, 0x71, 0x77, - 0x5e, 0x46, 0xe6, 0x2d, 0x67, 0x19, 0x44, 0xf3, 0x0c, 0x4b, 0xe8, 0x59, 0x09, 0x86, 0x69, 0x89, - 0x5b, 0xa1, 0xe9, 0x35, 0xef, 0x88, 0x85, 0xb2, 0xbc, 0x3e, 0x93, 0xef, 0x9e, 0xf5, 0x49, 0xb7, - 0xdb, 0x85, 0x0e, 0x7d, 0x1c, 0x54, 0xa7, 0x2f, 0x81, 0x81, 0xb3, 0xf0, 0x78, 0x04, 0xd8, 0x6c, - 0x36, 0x03, 0x30, 0xc3, 0x42, 0x5d, 0x16, 0x36, 0xd7, 0xf1, 0x06, 0xee, 0x06, 0x82, 0x92, 0xdf, - 0x10, 0xcd, 0x43, 0x54, 0x55, 0x67, 0xbb, 0xe9, 0x70, 0xd0, 0x2b, 0x48, 0x29, 0xa2, 0xde, 0xbc, - 0xc6, 0x8c, 0x7c, 0x1f, 0x15, 0x63, 0x4f, 0xa5, 0x59, 0x02, 0x1f, 0x96, 0xbe, 0x7d, 0x00, 0x07, - 0x52, 0x9a, 0x71, 0xf4, 0xc1, 0x05, 0x65, 0xc6, 0xd1, 0x57, 0x17, 0x94, 0x19, 0x97, 0xfb, 0xff, - 0xb2, 0xe1, 0xb9, 0xd1, 0x49, 0x8a, 0x83, 0x6e, 0xe8, 0x9f, 0xf3, 0x42, 0x47, 0xa3, 0x2e, 0x13, - 0xc1, 0x64, 0x3c, 0xda, 0x99, 0x88, 0x80, 0xd2, 0x53, 0x04, 0x91, 0xc7, 0x6c, 0x44, 0x76, 0xa2, - 0x28, 0xa6, 0x0d, 0xee, 0xdd, 0x0a, 0xe3, 0x3d, 0xbe, 0x6b, 0x05, 0x91, 0xaa, 0x51, 0x68, 0xb5, - 0xbb, 0x1f, 0xa2, 0x2e, 0xd6, 0x90, 0x1b, 0x10, 0x4d, 0x8f, 0x77, 0x07, 0xa0, 0x1e, 0x47, 0x77, - 0x3f, 0x40, 0x5d, 0x4c, 0xf1, 0xe6, 0x0a, 0x60, 0xc3, 0x4f, 0xd6, 0x10, 0x83, 0x9d, 0x36, 0x6a, - 0x20, 0x4f, 0x81, 0xde, 0x19, 0xaf, 0xf6, 0xb5, 0x6b, 0x13, 0x77, 0x34, 0x96, 0x1e, 0x76, 0xd3, - 0xe9, 0x4e, 0x77, 0x9c, 0x6e, 0x2c, 0x6f, 0xda, 0x29, 0xb1, 0xb2, 0x25, 0x1d, 0x1e, 0x19, 0xe4, - 0xaf, 0xd2, 0x41, 0xde, 0xf6, 0xe3, 0xd3, 0x97, 0x2c, 0x6c, 0xfb, 0x3d, 0x75, 0xa9, 0xd3, 0xff, - 0xa9, 0xb1, 0xbf, 0x06, 0x73, 0x65, 0xe6, 0x07, 0x2e, 0x5d, 0x40, 0x0c, 0xdc, 0x39, 0x5b, 0xe1, - 0x77, 0x32, 0xe0, 0xf2, 0xdc, 0xec, 0xa8, 0xd7, 0x77, 0x2f, 0x4e, 0x42, 0x3d, 0xee, 0x99, 0x18, - 0xed, 0x42, 0xfc, 0xae, 0xc4, 0x88, 0xeb, 0xb3, 0x9c, 0x3b, 0x5e, 0xbb, 0xc0, 0xcb, 0x27, 0x33, - 0xf0, 0x0d, 0x4d, 0xfe, 0xd2, 0xbd, 0xbc, 0xbc, 0xa4, 0xf7, 0x99, 0x78, 0x3f, 0x3b, 0x73, 0xcf, - 0xce, 0xce, 0xf0, 0xde, 0x95, 0xef, 0x17, 0x5d, 0x91, 0x9e, 0x51, 0xfa, 0x52, 0xd7, 0xed, 0x76, - 0xc5, 0xfb, 0x4b, 0x5d, 0x77, 0x26, 0xdf, 0x05, 0x22, 0x25, 0xe0, 0xf1, 0x6e, 0x44, 0x40, 0x98, - 0xa9, 0x98, 0x62, 0xb5, 0xdd, 0x43, 0xa1, 0x3f, 0xb1, 0x15, 0x4e, 0xe7, 0xec, 0x28, 0x12, 0xe0, - 0xb0, 0xf9, 0xde, 0x72, 0x82, 0xab, 0x6a, 0x0c, 0x8c, 0x29, 0xc8, 0x98, 0xe9, 0xd4, 0x95, 0xd3, - 0x9e, 0xca, 0x60, 0x1f, 0x25, 0x64, 0xc4, 0x54, 0x0f, 0x48, 0x56, 0x9b, 0xab, 0x6a, 0x73, 0x5d, - 0x6d, 0xae, 0xab, 0x8d, 0xf7, 0x06, 0x28, 0x68, 0xb4, 0x93, 0xbd, 0xa3, 0x89, 0xc4, 0xc6, 0x3d, - 0x40, 0x37, 0x47, 0x23, 0x04, 0x51, 0xb3, 0xcf, 0x89, 0xea, 0x73, 0xa2, 0xfb, 0x9c, 0x54, 0x7d, - 0x6e, 0x36, 0x82, 0xc3, 0x6b, 0x9d, 0x3b, 0x2f, 0xb6, 0x75, 0xc6, 0x86, 0x71, 0xf6, 0xa0, 0xac, - 0x2e, 0x6f, 0xef, 0xe1, 0xb3, 0xfd, 0x47, 0xd2, 0x20, 0xbf, 0x45, 0xa4, 0x8c, 0x6c, 0xa9, 0x66, - 0x50, 0x8c, 0x9b, 0x41, 0xb1, 0xc1, 0xd3, 0x96, 0xee, 0xb0, 0xd3, 0x3b, 0x89, 0xda, 0x70, 0xc5, - 0x20, 0x41, 0x53, 0x08, 0x9c, 0xca, 0x1f, 0xac, 0xdd, 0x6a, 0x92, 0x52, 0x5d, 0x47, 0x39, 0xe4, - 0x5b, 0x0e, 0x74, 0x79, 0x92, 0x39, 0x8f, 0x88, 0x27, 0x33, 0x70, 0x95, 0xef, 0xf0, 0x90, 0xc6, - 0x4c, 0xde, 0x8e, 0x45, 0x68, 0xc8, 0xde, 0x09, 0x63, 0xe5, 0xce, 0xbe, 0xd8, 0x98, 0xa8, 0xbd, - 0x1b, 0xa8, 0x3a, 0x73, 0x2f, 0x4f, 0xe2, 0x41, 0x2d, 0x16, 0x0d, 0xf1, 0xb3, 0x27, 0x2e, 0x47, - 0x81, 0x37, 0x54, 0xdf, 0x0a, 0x56, 0xc5, 0x62, 0xd1, 0x48, 0x10, 0x13, 0x17, 0x8a, 0x2f, 0x96, - 0xc0, 0xfe, 0xc1, 0xea, 0x48, 0x03, 0x87, 0x4e, 0xb0, 0x97, 0x23, 0x6e, 0x4c, 0x74, 0xec, 0x63, - 0x31, 0xb4, 0xe1, 0x4c, 0x9f, 0xbd, 0x71, 0xa1, 0x8f, 0x37, 0x1b, 0x67, 0xe7, 0x8c, 0x49, 0x6d, - 0x79, 0x4d, 0xa3, 0x95, 0xb5, 0x4b, 0x08, 0xc9, 0xb6, 0x31, 0xf6, 0x5e, 0xf4, 0x61, 0x29, 0x73, - 0x6a, 0xa7, 0xfe, 0x43, 0x6d, 0xb2, 0x64, 0x1c, 0x96, 0x12, 0x99, 0x5f, 0xb5, 0x8d, 0x93, 0x99, - 0x16, 0x4e, 0xea, 0x28, 0x9f, 0x58, 0xba, 0xd8, 0x94, 0x15, 0x23, 0x2b, 0x08, 0xaf, 0xe7, 0x62, - 0x25, 0x3d, 0x0b, 0x0e, 0x58, 0x14, 0xd6, 0xae, 0xee, 0x27, 0x61, 0x18, 0xb6, 0xfa, 0x17, 0x9f, - 0xb1, 0x16, 0x69, 0xcb, 0x56, 0xb7, 0x75, 0xd1, 0xa5, 0x34, 0xe5, 0x76, 0x5b, 0x2f, 0xea, 0x7c, - 0xd8, 0x60, 0x35, 0x14, 0x0a, 0x8d, 0x7b, 0xd6, 0x4b, 0xf8, 0xd9, 0x2f, 0xc9, 0x63, 0xa5, 0x83, - 0x24, 0xe4, 0xb1, 0xc8, 0xe9, 0xee, 0x9d, 0xdb, 0x37, 0xaa, 0xbf, 0xe7, 0xcc, 0xb1, 0x36, 0xcb, - 0xc8, 0xbc, 0xeb, 0x4a, 0xcb, 0x4e, 0xc7, 0x97, 0x2d, 0xd0, 0xc3, 0x67, 0x96, 0x9e, 0xb1, 0x7a, - 0x7b, 0x7c, 0xca, 0xf0, 0xf5, 0x2d, 0xf2, 0xcb, 0x02, 0x60, 0x78, 0x8b, 0x47, 0xf8, 0x0e, 0x8f, - 0xc0, 0x84, 0x6f, 0xa1, 0x5b, 0x58, 0xad, 0x48, 0x64, 0xd4, 0x89, 0xc5, 0x42, 0x58, 0x39, 0x33, - 0xb2, 0x1c, 0xe4, 0x34, 0x27, 0x05, 0x7b, 0xd0, 0x66, 0xb0, 0x07, 0x2a, 0x11, 0x46, 0xb3, 0xa7, - 0x6e, 0x10, 0xc2, 0x3e, 0xe1, 0xcd, 0x80, 0x3c, 0x6c, 0xf2, 0x2a, 0xeb, 0xfd, 0x6a, 0xae, 0x3e, - 0x4d, 0xa6, 0x73, 0xc4, 0xad, 0x68, 0x76, 0xe7, 0xe5, 0xee, 0x1d, 0xbb, 0xc7, 0xef, 0x3d, 0xd9, - 0x2b, 0x86, 0xc5, 0x72, 0x6f, 0x58, 0x2c, 0x79, 0x21, 0xcd, 0x8d, 0xa2, 0x8a, 0x1a, 0x15, 0x75, - 0xd4, 0xa8, 0xa8, 0xa3, 0x46, 0xda, 0x56, 0xa1, 0xc3, 0x8d, 0x8a, 0xb2, 0x61, 0xab, 0x34, 0xed, - 0x9d, 0xb0, 0xb6, 0x77, 0xc8, 0x47, 0x3f, 0x6c, 0xef, 0x24, 0xb5, 0xbd, 0x13, 0xec, 0x8d, 0xb5, - 0x8e, 0x94, 0x02, 0x9a, 0xcd, 0xb6, 0xe4, 0x25, 0x0c, 0x9b, 0x92, 0x43, 0x62, 0xd2, 0x1a, 0x31, - 0x90, 0x15, 0x09, 0x4a, 0x56, 0x6b, 0xf1, 0x2e, 0x13, 0xff, 0xd5, 0x92, 0x5d, 0x8a, 0x5c, 0x08, - 0x53, 0x14, 0xd1, 0x5d, 0x5e, 0x3f, 0xde, 0x89, 0xbe, 0x28, 0xce, 0xda, 0x67, 0x46, 0xc9, 0x90, - 0xda, 0xc1, 0xfd, 0x84, 0x4c, 0x6f, 0xd7, 0x48, 0x73, 0x2b, 0xf6, 0x49, 0x7b, 0x67, 0x62, 0x6f, - 0x24, 0xa4, 0x83, 0x7d, 0x55, 0xb0, 0x9a, 0x22, 0xd3, 0xed, 0x54, 0x1e, 0xa4, 0x3c, 0xc9, 0x29, - 0x3e, 0xdd, 0xb6, 0xc3, 0x4e, 0x2a, 0xcf, 0x53, 0x9e, 0x80, 0x14, 0x84, 0xd4, 0x70, 0x36, 0x7f, - 0x5d, 0xd8, 0x47, 0x33, 0x9b, 0x8e, 0x2b, 0x54, 0x62, 0x3f, 0x28, 0xa4, 0x1c, 0x62, 0x33, 0x7d, - 0x05, 0xcc, 0xcf, 0x86, 0xe2, 0x6c, 0xba, 0xa4, 0x31, 0x11, 0xbb, 0x02, 0x9b, 0x7b, 0x76, 0xbe, - 0x2d, 0xa0, 0x42, 0x71, 0x2e, 0x22, 0x54, 0x00, 0x9c, 0x5d, 0xf1, 0xa4, 0x4e, 0x78, 0x89, 0xcf, - 0x5d, 0x1c, 0x1f, 0x3f, 0x09, 0x80, 0x44, 0xe1, 0xbf, 0x43, 0xc0, 0x7d, 0x41, 0xc1, 0xba, 0x43, - 0x9c, 0xbf, 0x5f, 0x92, 0x95, 0xa6, 0xa7, 0x56, 0x89, 0xbd, 0xc7, 0x65, 0xcd, 0x33, 0xba, 0x79, - 0x96, 0xfc, 0x48, 0x35, 0xc3, 0xb3, 0x87, 0x43, 0x72, 0x04, 0xd2, 0x61, 0x92, 0x16, 0x45, 0x0a, - 0x27, 0x34, 0xa0, 0x3d, 0x71, 0x69, 0xb1, 0x6d, 0xd5, 0x50, 0xf2, 0x23, 0x18, 0x75, 0xc7, 0xc4, - 0xd4, 0x70, 0x52, 0xc9, 0x63, 0x29, 0xe8, 0x56, 0xfe, 0x2e, 0x51, 0x17, 0x58, 0xf7, 0x70, 0xe3, - 0x1c, 0xa2, 0xf9, 0x6d, 0xb9, 0xd3, 0x53, 0x72, 0x47, 0x39, 0xed, 0xda, 0x23, 0xaa, 0xb6, 0x3c, - 0xff, 0xaa, 0x20, 0x9a, 0x8d, 0x14, 0xc4, 0xb1, 0x90, 0x48, 0xc6, 0xeb, 0xfd, 0xe6, 0x31, 0xf9, - 0x17, 0x9a, 0xe3, 0x08, 0xb7, 0xc6, 0x21, 0x25, 0xcf, 0xb7, 0xc6, 0x68, 0xd6, 0xeb, 0xbf, 0x38, - 0xba, 0xb0, 0x39, 0xba, 0xd0, 0x18, 0x1d, 0xe1, 0x78, 0xd2, 0xfc, 0xf8, 0xa4, 0xff, 0x60, 0xba, - 0x9d, 0x7a, 0xab, 0x32, 0xf3, 0x5e, 0x8a, 0xfe, 0x44, 0x80, 0x4d, 0x76, 0xf4, 0xa0, 0xca, 0xe0, - 0xf7, 0x2f, 0xb7, 0x40, 0xec, 0x92, 0x92, 0xb1, 0xc9, 0xeb, 0xc1, 0xa1, 0x27, 0xcd, 0x5d, 0x59, - 0x09, 0xd5, 0x89, 0xc2, 0xa6, 0x01, 0xe4, 0xf5, 0xfb, 0x90, 0x71, 0x4d, 0x9b, 0xc7, 0xeb, 0xf5, - 0xf8, 0xd9, 0xc6, 0x08, 0xe9, 0xdc, 0x56, 0xc2, 0x5e, 0x6c, 0x9e, 0x70, 0xa7, 0x12, 0xf4, 0x95, - 0x48, 0x4f, 0x7d, 0x9b, 0x37, 0xf6, 0x90, 0xb4, 0x84, 0x77, 0x6a, 0xc1, 0x4f, 0xbb, 0x9f, 0x42, - 0xca, 0xd1, 0x77, 0xc8, 0xfe, 0x84, 0x08, 0xd5, 0x9e, 0xe8, 0x23, 0xfb, 0x36, 0xb4, 0x27, 0xd1, - 0x7b, 0xd9, 0x6d, 0x8b, 0xcd, 0x1a, 0x32, 0xa0, 0x8f, 0xba, 0x8e, 0x73, 0x62, 0x27, 0xc5, 0xa9, - 0x38, 0x59, 0x90, 0x43, 0xd2, 0x4a, 0xc9, 0x99, 0xa2, 0xf3, 0xe6, 0xd6, 0xd3, 0xf6, 0xce, 0x15, - 0xcc, 0x51, 0xaf, 0x57, 0x0b, 0x5d, 0xde, 0xce, 0xe5, 0xbe, 0x5f, 0x98, 0xe6, 0x50, 0xe0, 0x27, - 0xb4, 0x35, 0x58, 0xea, 0xbc, 0x9c, 0x36, 0x32, 0x90, 0x57, 0x09, 0x5f, 0xe8, 0xa2, 0xff, 0x3d, - 0x8b, 0xc1, 0xba, 0x90, 0x59, 0xfb, 0xb6, 0x18, 0x36, 0xff, 0x0b, 0x62, 0x1e, 0xa9, 0xa3, 0xfd, - 0x16, 0xff, 0x7e, 0x4c, 0x6f, 0x6f, 0x26, 0xb6, 0x32, 0xd0, 0x42, 0x27, 0x61, 0x65, 0x27, 0x72, - 0x5e, 0xa5, 0xda, 0x6a, 0x55, 0xdb, 0x27, 0x47, 0xbd, 0xc1, 0x96, 0x1a, 0x09, 0x0d, 0x35, 0x92, - 0xee, 0x53, 0x23, 0xe9, 0xb6, 0x16, 0x10, 0xd4, 0xe2, 0xc7, 0xcf, 0x56, 0x23, 0x4f, 0x01, 0xf8, - 0x77, 0xa9, 0x91, 0x7f, 0x12, 0x01, 0xfd, 0x59, 0x45, 0x92, 0xfd, 0x05, 0x45, 0x22, 0x3a, 0xfa, - 0x96, 0xb8, 0xf8, 0x40, 0x5f, 0x01, 0x7b, 0x30, 0x42, 0x98, 0x59, 0x4a, 0xb7, 0x37, 0x7f, 0x86, - 0xcd, 0x03, 0xe6, 0xac, 0xb7, 0x6b, 0xdb, 0x57, 0x5d, 0xe8, 0x85, 0x29, 0x9f, 0x37, 0x8c, 0xe7, - 0xed, 0x1d, 0xd9, 0x6d, 0xb6, 0xd8, 0xb6, 0xd0, 0xe1, 0xe0, 0xb0, 0xd6, 0x3d, 0x8f, 0xe3, 0xf4, - 0x96, 0xb5, 0xe2, 0xe8, 0x86, 0xb3, 0x56, 0xf0, 0x7b, 0x19, 0xb0, 0x16, 0xf9, 0x3b, 0xac, 0x75, - 0x13, 0x50, 0xb8, 0x10, 0xaf, 0xa8, 0xe7, 0x58, 0xde, 0xde, 0xd6, 0x55, 0x1d, 0xd9, 0x44, 0x36, - 0x97, 0xa0, 0x34, 0x60, 0xd1, 0x7a, 0xf3, 0x14, 0x4a, 0xde, 0x1b, 0xe7, 0xaf, 0x0f, 0x63, 0xc6, - 0x9c, 0x2b, 0x8d, 0x23, 0x88, 0xeb, 0xf1, 0xc8, 0x88, 0x5e, 0x0b, 0x28, 0xc8, 0x79, 0x5e, 0x74, - 0x72, 0x88, 0x4d, 0xe9, 0x62, 0xb0, 0x96, 0x40, 0xa8, 0x12, 0x66, 0x72, 0x28, 0x0a, 0x37, 0xdf, - 0xd1, 0x52, 0x26, 0x3c, 0xcf, 0x45, 0x4c, 0xf0, 0xe0, 0xe0, 0xaa, 0x6a, 0xcf, 0x1d, 0x9b, 0x30, - 0x38, 0x59, 0xba, 0xa4, 0x2f, 0x47, 0xdf, 0x7b, 0xbd, 0x4e, 0x2e, 0x8d, 0xbc, 0x27, 0xb1, 0xf0, - 0x85, 0x10, 0x0f, 0x8f, 0xf4, 0x52, 0x39, 0x0b, 0xe5, 0x13, 0xfa, 0x3e, 0xfe, 0xff, 0xaf, 0xef, - 0xc3, 0xa6, 0xbe, 0x0f, 0x9f, 0xab, 0xef, 0x63, 0x73, 0x1c, 0xf1, 0xbf, 0x4b, 0xdf, 0x87, 0xa3, - 0xb8, 0x39, 0xba, 0x78, 0x4b, 0xdf, 0x93, 0xec, 0xbb, 0x36, 0xb6, 0xbc, 0xa2, 0xed, 0xbd, 0xcf, - 0x7a, 0x03, 0x6c, 0x10, 0xed, 0xd9, 0x06, 0x95, 0x6a, 0x95, 0x02, 0x7f, 0xea, 0xda, 0x9e, 0x21, - 0xd7, 0x7a, 0x32, 0x4f, 0x6c, 0x7d, 0xe5, 0xbe, 0x3e, 0x2c, 0x2c, 0xe7, 0xf6, 0x55, 0x33, 0x13, - 0x06, 0x03, 0xcf, 0xc0, 0x43, 0x5b, 0xd9, 0xd1, 0x94, 0xbe, 0x7d, 0x3c, 0x65, 0x36, 0xed, 0xfd, - 0x35, 0x1d, 0x2c, 0xfd, 0xee, 0x8d, 0x54, 0x6a, 0xec, 0xec, 0xdd, 0x28, 0xaa, 0x3e, 0xf9, 0x11, - 0x4c, 0xa7, 0x52, 0x84, 0x0b, 0xfd, 0xa7, 0xaf, 0xaf, 0x9a, 0xb2, 0xbd, 0xeb, 0x18, 0x1f, 0x0d, - 0xd8, 0x35, 0x5b, 0xb0, 0x8c, 0xa2, 0x23, 0xaf, 0x9e, 0x38, 0x53, 0x63, 0x30, 0x50, 0xc1, 0xa4, - 0x47, 0xec, 0xe9, 0xf0, 0xd1, 0xa6, 0x0a, 0x3d, 0x46, 0x5b, 0x5b, 0xbf, 0xd1, 0xe3, 0x5b, 0xbf, - 0x91, 0xf8, 0x8c, 0xe8, 0x73, 0xb6, 0x7e, 0xf5, 0xcc, 0xb6, 0xc3, 0xe3, 0xd5, 0xb7, 0xc5, 0xc5, - 0xa9, 0x13, 0x63, 0x8c, 0xfa, 0x03, 0xe8, 0x03, 0x65, 0xb7, 0xf0, 0xdb, 0xd6, 0x4f, 0x76, 0x51, - 0xdd, 0xa5, 0xa1, 0x3a, 0x72, 0xb3, 0xc8, 0xd8, 0x2b, 0x56, 0x87, 0x14, 0x15, 0x80, 0x7c, 0x29, - 0xbe, 0xcc, 0x98, 0xc0, 0x03, 0x8d, 0x1a, 0x94, 0xb0, 0x67, 0x0d, 0x8c, 0x63, 0x45, 0x8a, 0x37, - 0xfc, 0x64, 0x63, 0xa2, 0xba, 0xbe, 0x4c, 0x2c, 0xef, 0xf8, 0x3f, 0xec, 0x62, 0x55, 0xd7, 0xaf, - 0xe8, 0xe4, 0x26, 0x82, 0xaf, 0x20, 0x97, 0x83, 0xae, 0x8a, 0x5a, 0x2c, 0xda, 0xda, 0xd0, 0x55, - 0x5f, 0x8d, 0xdf, 0xc2, 0x4b, 0x63, 0x53, 0xbc, 0x39, 0x97, 0x82, 0xf5, 0x1c, 0x3a, 0x96, 0x90, - 0xa8, 0x4b, 0xa4, 0xf6, 0xff, 0xa3, 0x79, 0xa9, 0x4f, 0x90, 0xfb, 0xbe, 0x31, 0x28, 0xbd, 0xcf, - 0xfd, 0x18, 0x95, 0x72, 0x03, 0x05, 0x99, 0x3a, 0xe7, 0x90, 0x6c, 0x21, 0xa1, 0xd9, 0x74, 0xf7, - 0x13, 0x14, 0xa2, 0xb5, 0x89, 0x0c, 0xba, 0xae, 0xfb, 0xd4, 0x04, 0x8c, 0xf1, 0x6f, 0xf6, 0x8c, - 0xa5, 0xea, 0xd3, 0x32, 0xf0, 0xb7, 0x3b, 0xae, 0xd7, 0x52, 0x70, 0x1c, 0xfa, 0xc6, 0xc7, 0x60, - 0x8b, 0x7a, 0xbb, 0x4f, 0xad, 0x86, 0xb1, 0x16, 0x7a, 0xfd, 0x36, 0xbb, 0x32, 0xea, 0xb1, 0x86, - 0xd1, 0x33, 0x44, 0x44, 0x72, 0x60, 0xc2, 0x71, 0x6c, 0xce, 0x36, 0xdf, 0x9a, 0x6e, 0x9a, 0x1c, - 0x9c, 0xa7, 0x3e, 0x40, 0x20, 0x85, 0xe4, 0x60, 0xe7, 0x0b, 0xc1, 0xc3, 0x02, 0x02, 0xee, 0x80, - 0x68, 0xb3, 0x33, 0x14, 0xad, 0xd7, 0xe2, 0x41, 0x5f, 0x62, 0x74, 0xaa, 0xaf, 0x91, 0x44, 0x5b, - 0x02, 0x15, 0x15, 0xc4, 0xa7, 0x99, 0x77, 0x72, 0xf7, 0xc2, 0x4d, 0xd4, 0x97, 0x5a, 0xe4, 0xf9, - 0x09, 0x67, 0xb3, 0x17, 0x1e, 0x75, 0xb8, 0xd9, 0x9e, 0xe7, 0x6c, 0x66, 0x4e, 0xb4, 0x3e, 0x83, - 0x47, 0x0b, 0xfa, 0xa7, 0xa6, 0x26, 0xb9, 0x34, 0x53, 0x68, 0x41, 0x35, 0xf9, 0xa7, 0x20, 0xb4, - 0xd8, 0xa9, 0x3e, 0xa1, 0x00, 0xe1, 0xd3, 0xdb, 0x19, 0x06, 0x2d, 0xce, 0xfe, 0xeb, 0x92, 0xfa, - 0x20, 0x87, 0xf8, 0x80, 0xfb, 0xf6, 0x07, 0x70, 0x3a, 0xbd, 0x41, 0xf7, 0x55, 0x46, 0x9f, 0x93, - 0x16, 0x57, 0x03, 0xab, 0xe2, 0x51, 0xd6, 0xee, 0x8d, 0xf5, 0x89, 0x8d, 0x6d, 0x0d, 0x36, 0x38, - 0x3a, 0xda, 0xfe, 0x12, 0x8e, 0xf8, 0x6c, 0x00, 0x97, 0x4b, 0x43, 0x0f, 0x32, 0xf0, 0x6d, 0x63, - 0x91, 0x45, 0xc9, 0xe8, 0x71, 0x75, 0x55, 0xe8, 0x25, 0x90, 0x66, 0xb6, 0x04, 0xd3, 0xdb, 0x9a, - 0xa7, 0x29, 0x0c, 0x0f, 0x5e, 0x0f, 0xfd, 0xbf, 0x9b, 0x6a, 0x73, 0xd9, 0x07, 0x4a, 0x8d, 0x38, - 0x02, 0xc5, 0xd5, 0x10, 0x89, 0x8e, 0xa0, 0x9c, 0x42, 0x78, 0x50, 0x91, 0x03, 0xa5, 0x66, 0xce, - 0xbd, 0x26, 0xcb, 0x68, 0x57, 0x06, 0xbc, 0x13, 0x5f, 0x1d, 0xcf, 0x77, 0xe5, 0x52, 0x25, 0x71, - 0x8a, 0x1d, 0xa9, 0x9e, 0x47, 0x7f, 0xf0, 0xbd, 0x0d, 0x14, 0x30, 0x5b, 0x1f, 0x1d, 0xdd, 0xec, - 0x36, 0xdd, 0xf3, 0xc5, 0x81, 0xe7, 0xc8, 0x13, 0xd1, 0xd2, 0x36, 0x45, 0xc2, 0x23, 0xf2, 0x7c, - 0x9b, 0xf3, 0xc5, 0x07, 0xc3, 0x76, 0x07, 0xcc, 0x63, 0xfd, 0xc7, 0x2b, 0x9a, 0x2a, 0x4d, 0x7c, - 0x1f, 0x4b, 0xca, 0x92, 0x1d, 0x50, 0x86, 0x62, 0xde, 0x92, 0x27, 0xcf, 0x14, 0xd3, 0x86, 0x75, - 0xa6, 0x3f, 0xf3, 0xb0, 0xd7, 0x60, 0x13, 0x23, 0x11, 0x25, 0x9e, 0x3c, 0x96, 0x64, 0x49, 0xb7, - 0x74, 0x57, 0xf6, 0x99, 0xc5, 0xbb, 0x4c, 0x28, 0x3c, 0xd8, 0xed, 0x33, 0x55, 0x34, 0x5e, 0x71, - 0xdd, 0x6c, 0xb8, 0xd3, 0x99, 0x3c, 0xa1, 0x64, 0x08, 0x52, 0xd4, 0xf5, 0x7a, 0xfb, 0xeb, 0x4a, - 0x85, 0xd7, 0xac, 0xda, 0xf7, 0xfd, 0xea, 0x83, 0x4d, 0x66, 0x5d, 0x3a, 0x51, 0xd4, 0xac, 0xba, - 0x4d, 0x1a, 0x5b, 0x67, 0xe7, 0xaa, 0xaf, 0xfe, 0x49, 0x81, 0x91, 0x54, 0x1b, 0x1d, 0x3a, 0xa2, - 0xd0, 0x94, 0x65, 0xf4, 0x65, 0x6f, 0xb0, 0xc6, 0xe8, 0xa1, 0xfa, 0x8a, 0x90, 0x77, 0x5b, 0x6c, - 0x98, 0xf1, 0xba, 0x2c, 0x36, 0x63, 0xb8, 0x63, 0xb5, 0x8b, 0x16, 0xde, 0x8b, 0x93, 0x7d, 0xc4, - 0x18, 0x8d, 0x6a, 0x4c, 0x7e, 0x89, 0x3f, 0xf7, 0x1e, 0xcc, 0x90, 0x98, 0xdc, 0xd4, 0xdb, 0x6c, - 0x9c, 0x6d, 0xc7, 0x4a, 0x38, 0x55, 0x82, 0x2e, 0x7e, 0x88, 0xc2, 0x6b, 0x72, 0xaa, 0xa2, 0xa9, - 0x47, 0x01, 0x03, 0x7d, 0xb4, 0x48, 0x9f, 0xae, 0x83, 0xb4, 0x90, 0xa9, 0xcd, 0x06, 0x16, 0x47, - 0xd3, 0x67, 0x32, 0x34, 0x52, 0xfd, 0x1d, 0x24, 0xb1, 0x4f, 0xa2, 0x06, 0x53, 0xc7, 0x70, 0xa2, - 0x7d, 0x21, 0x9c, 0x8c, 0x3d, 0xd0, 0x59, 0x1e, 0xf5, 0x57, 0x34, 0x74, 0x3c, 0xa7, 0xdc, 0x22, - 0x01, 0x69, 0x4b, 0x52, 0x58, 0x5a, 0xb8, 0xa8, 0x5e, 0xa9, 0x1c, 0xa1, 0x44, 0x38, 0x22, 0x8e, - 0x3e, 0x9f, 0x75, 0xfd, 0x64, 0xf4, 0x50, 0xf2, 0xf7, 0x59, 0xb7, 0xab, 0x83, 0x14, 0x94, 0x94, - 0xe4, 0x28, 0xb7, 0x51, 0xb4, 0x55, 0x0e, 0xd1, 0xa7, 0x4e, 0x16, 0x7b, 0x97, 0x6c, 0x6b, 0xa3, - 0xca, 0xb3, 0x56, 0x90, 0xd5, 0x11, 0x1c, 0x1a, 0x1d, 0xcc, 0x7a, 0x6d, 0x42, 0x30, 0x22, 0x84, - 0x5e, 0x97, 0x99, 0x8e, 0x97, 0xf7, 0x92, 0xed, 0x7a, 0x67, 0x32, 0x12, 0x5a, 0x39, 0x63, 0xe6, - 0xeb, 0x0f, 0xcd, 0xf0, 0x28, 0x6b, 0x7a, 0xe4, 0xe4, 0x0f, 0xd6, 0x01, 0x0f, 0x4f, 0xbd, 0x18, - 0xa3, 0x6c, 0x1e, 0x21, 0x67, 0xf5, 0xd5, 0x1a, 0xd9, 0x47, 0xe3, 0xa0, 0x65, 0xaf, 0xcf, 0xaa, - 0xe3, 0xd7, 0xf2, 0x4f, 0xcb, 0xb0, 0x87, 0x1a, 0x15, 0x9a, 0x12, 0xd4, 0xb1, 0x4a, 0x22, 0x14, - 0xf9, 0xd7, 0x30, 0xa4, 0xbf, 0x62, 0x29, 0xac, 0x5b, 0x4c, 0x9e, 0xa4, 0x94, 0x00, 0xa4, 0x8b, - 0x70, 0x53, 0xb0, 0xbb, 0x82, 0x7d, 0x2c, 0xd8, 0xdb, 0x82, 0xbd, 0x2b, 0x7c, 0xfb, 0x8d, 0xe9, - 0xb5, 0xd8, 0x37, 0x85, 0x7f, 0x6d, 0xfa, 0x23, 0x5b, 0x24, 0xf2, 0xa6, 0x60, 0x37, 0xf0, 0x16, - 0xd1, 0xe6, 0x8d, 0x0f, 0x40, 0x6f, 0x0a, 0x23, 0x60, 0xfb, 0x86, 0xce, 0xa1, 0x2b, 0x75, 0x1f, - 0x81, 0xe2, 0x0e, 0x7c, 0x95, 0x54, 0x50, 0xbc, 0xd1, 0x8c, 0x57, 0x97, 0x9e, 0x12, 0xf3, 0x43, - 0x3a, 0xaa, 0xfa, 0x30, 0xa9, 0xbf, 0x6e, 0xfa, 0x7b, 0xc9, 0xb3, 0xfb, 0xf7, 0x3c, 0xe6, 0xe2, - 0x43, 0x7f, 0xf4, 0x65, 0xef, 0xc6, 0xdf, 0xd2, 0x88, 0xc4, 0xc1, 0x4d, 0xf1, 0xd7, 0x29, 0xa4, - 0xa0, 0x36, 0xbe, 0xfa, 0x75, 0xe0, 0x34, 0x01, 0x2b, 0x07, 0x37, 0x6e, 0x44, 0xdf, 0x59, 0x8c, - 0xe4, 0xb7, 0x9e, 0xb8, 0x2f, 0xfe, 0x86, 0x8c, 0xef, 0xa7, 0xf2, 0xbb, 0xed, 0x9e, 0x70, 0xdc, - 0x92, 0xf5, 0x3a, 0x71, 0x31, 0x37, 0xbf, 0x3a, 0x88, 0x4a, 0xb6, 0x0e, 0x2b, 0x49, 0x1f, 0xd3, - 0x5f, 0x26, 0xa1, 0x8f, 0x78, 0x43, 0x99, 0x7a, 0x74, 0x8a, 0x2c, 0x71, 0x28, 0xc9, 0x38, 0xfd, - 0xa1, 0x92, 0x3b, 0x66, 0x7c, 0xac, 0x7c, 0xfb, 0xaf, 0xc8, 0xd0, 0x5f, 0x33, 0xc8, 0x86, 0xa3, - 0x68, 0xec, 0x71, 0xd9, 0x55, 0xe3, 0x23, 0xaa, 0x89, 0xf9, 0x11, 0x55, 0x56, 0x32, 0x0a, 0x79, - 0x88, 0xbf, 0x7d, 0x42, 0x7f, 0x65, 0xa6, 0x24, 0x43, 0xce, 0x5e, 0x60, 0xb1, 0x76, 0x39, 0xf8, - 0x61, 0xfb, 0x24, 0x9e, 0x36, 0x88, 0xc5, 0x0d, 0x3e, 0xba, 0x3a, 0x00, 0x10, 0x56, 0x9c, 0x06, - 0xc4, 0x4a, 0xf4, 0x05, 0x51, 0xe3, 0xf0, 0x65, 0x30, 0xbd, 0x17, 0x4a, 0x67, 0x88, 0x35, 0xf1, - 0x0e, 0x1f, 0x1a, 0xb5, 0xbe, 0x7c, 0xf7, 0x56, 0x7c, 0xc4, 0x18, 0x79, 0x80, 0x43, 0xf7, 0xe3, - 0x09, 0xed, 0x0a, 0xd7, 0xf6, 0xc7, 0xc2, 0xbf, 0xa3, 0xff, 0xd7, 0xeb, 0x87, 0x8d, 0xe3, 0x82, - 0x33, 0x73, 0x8c, 0xc4, 0xb7, 0xc4, 0x5f, 0x71, 0xb3, 0x40, 0x78, 0xae, 0xf4, 0x5f, 0x7e, 0xaa, - 0x92, 0x52, 0xda, 0xf9, 0xef, 0x0a, 0x66, 0xbf, 0x2d, 0x7c, 0xe4, 0x96, 0x98, 0xaa, 0x2d, 0x9e, - 0xe2, 0x0f, 0x00, 0xb8, 0x0b, 0x7f, 0x01, 0x6a, 0x75, 0xab, 0x2f, 0x5f, 0x7f, 0x41, 0xdf, 0x96, - 0x9c, 0x13, 0x05, 0xbb, 0x92, 0x71, 0xfd, 0x89, 0x78, 0x91, 0xdb, 0xeb, 0xfe, 0x52, 0xbc, 0x88, - 0xe8, 0x94, 0x7f, 0x2b, 0xd2, 0x5f, 0xa4, 0x77, 0xfe, 0x3d, 0xd1, 0x3d, 0x78, 0xe0, 0xff, 0x00, - 0x6f, 0x95, 0xe5, 0xa4, 0x5e, 0x6e, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xc5, 0x7d, 0x69, 0x77, 0xe3, 0x36, + 0x96, 0xf6, 0xf7, 0xf9, 0x15, 0x32, 0x93, 0xf8, 0x90, 0x16, 0x44, 0x4b, 0xf2, 0x52, 0x65, 0xaa, + 0xf8, 0xea, 0x24, 0x95, 0xad, 0xba, 0x53, 0xa9, 0x4c, 0xaa, 0x3a, 0x99, 0x8e, 0xa2, 0xe4, 0x50, + 0x14, 0x24, 0xb1, 0x4c, 0x93, 0x0a, 0x17, 0xd9, 0x8e, 0xa5, 0xff, 0x3e, 0xcf, 0xc5, 0x42, 0x82, + 0x5a, 0x6c, 0xa7, 0x67, 0x7a, 0xde, 0x93, 0x94, 0x08, 0x62, 0xb9, 0x00, 0x2e, 0xee, 0x0e, 0x80, + 0x3e, 0x3d, 0x39, 0xfa, 0x8f, 0xd6, 0x49, 0x2b, 0xca, 0x52, 0xf7, 0x63, 0xde, 0x5a, 0x5d, 0xb8, + 0x17, 0x6e, 0x9f, 0x32, 0xfa, 0xdd, 0xde, 0x65, 0xa7, 0xdf, 0xed, 0xf7, 0x5a, 0x7f, 0x0b, 0x6e, + 0x78, 0xde, 0xfa, 0x32, 0x48, 0x22, 0x1e, 0x53, 0xc9, 0x77, 0x51, 0xc8, 0x93, 0x9c, 0x4f, 0x5b, + 0x65, 0x32, 0xe5, 0x59, 0xeb, 0xed, 0x0f, 0xdf, 0xb5, 0xfa, 0x6e, 0x97, 0x4a, 0xe6, 0x51, 0xb1, + 0x28, 0x27, 0x6e, 0x98, 0xde, 0x9c, 0x7e, 0x0c, 0xa8, 0xd5, 0xa9, 0x04, 0x8b, 0xb2, 0xd3, 0xff, + 0x38, 0x9a, 0x95, 0x49, 0x58, 0x44, 0x69, 0x62, 0x17, 0x2c, 0x71, 0x1e, 0xac, 0x74, 0xf2, 0x91, + 0x87, 0x85, 0xe5, 0xfb, 0xc5, 0xfd, 0x92, 0xa7, 0xb3, 0x16, 0xbf, 0x5b, 0xa6, 0x59, 0x91, 0x1f, + 0x1f, 0x5b, 0x04, 0x77, 0x16, 0x25, 0x7c, 0x6a, 0x1d, 0xe9, 0xc2, 0x9b, 0x74, 0x5a, 0xc6, 0x7c, + 0x28, 0x1f, 0xae, 0xaa, 0xea, 0x27, 0xb6, 0xe3, 0x59, 0x1a, 0x6c, 0x0d, 0x49, 0xb6, 0x3e, 0x3e, + 0x96, 0x4f, 0x37, 0xb8, 0x99, 0x0e, 0x65, 0xd2, 0x4e, 0x1c, 0xcf, 0x2e, 0xfc, 0x62, 0xbd, 0xce, + 0x79, 0x3c, 0x73, 0x5c, 0x8c, 0x8e, 0x60, 0x6c, 0xec, 0x62, 0x11, 0xe5, 0xac, 0x1a, 0x1f, 0x06, + 0x57, 0xe6, 0xbc, 0x95, 0x17, 0x59, 0x84, 0x01, 0x0e, 0x56, 0x41, 0xd6, 0xba, 0x61, 0x39, 0x4b, + 0x58, 0xc4, 0x52, 0x76, 0xe7, 0x3f, 0x6c, 0xd8, 0x47, 0x7f, 0x34, 0x66, 0x99, 0x7f, 0x1a, 0x84, + 0x51, 0xb1, 0xe6, 0x77, 0xf6, 0xd0, 0xcb, 0xd7, 0xf3, 0x75, 0xb2, 0x5e, 0xae, 0x3f, 0x75, 0xd6, + 0xd9, 0x72, 0xb1, 0x9e, 0x67, 0xd1, 0x74, 0x9d, 0xde, 0xe6, 0xeb, 0x9b, 0x24, 0x5c, 0x27, 0xc5, + 0xed, 0x1a, 0xbd, 0x8f, 0xc2, 0xc5, 0x78, 0xfd, 0x67, 0x9a, 0xae, 0x7f, 0x4b, 0xb3, 0xe9, 0xfa, + 0xb7, 0x4e, 0xe7, 0x34, 0x1a, 0xe8, 0x3e, 0x5b, 0x6f, 0x25, 0x56, 0x66, 0x69, 0x66, 0x53, 0x7f, + 0x51, 0x2b, 0x4a, 0x5a, 0x89, 0x53, 0x8c, 0xa2, 0xb1, 0x9f, 0xe0, 0x67, 0x90, 0xf1, 0xa2, 0xcc, + 0x92, 0x56, 0xb1, 0xa9, 0x5a, 0xdc, 0xdb, 0x85, 0xf3, 0x40, 0x75, 0x13, 0xbf, 0x70, 0x97, 0x41, + 0xc6, 0x93, 0xe2, 0xfb, 0x74, 0xca, 0x07, 0xc9, 0xf1, 0x71, 0xe2, 0x66, 0xfc, 0x26, 0x5d, 0xf1, + 0xd7, 0x8b, 0x28, 0x9e, 0xa2, 0x5a, 0xdd, 0x68, 0x41, 0xdd, 0xb0, 0x48, 0x36, 0xcc, 0x18, 0x67, + 0x25, 0xa6, 0x14, 0xfb, 0x41, 0x36, 0x2f, 0x6f, 0x00, 0x20, 0x1f, 0x44, 0x33, 0x3b, 0xf1, 0xdf, + 0xda, 0x98, 0x63, 0xe2, 0xb0, 0xb3, 0x57, 0x55, 0x81, 0x1b, 0xf3, 0x64, 0x5e, 0x2c, 0x1c, 0x1a, + 0x60, 0xe4, 0x63, 0x44, 0x98, 0xfe, 0xd9, 0x20, 0xdb, 0xa9, 0x30, 0xc8, 0xda, 0x6d, 0x27, 0x72, + 0x97, 0x65, 0xbe, 0xb0, 0xe3, 0x51, 0x36, 0x76, 0x04, 0xc4, 0x32, 0x8e, 0x8f, 0xfc, 0xe8, 0xf8, + 0xd8, 0x4e, 0xdc, 0x90, 0xc6, 0x84, 0xc1, 0xfa, 0x91, 0xc3, 0x64, 0x7e, 0x81, 0x01, 0xcb, 0x84, + 0x8b, 0x65, 0x0a, 0xca, 0xb8, 0xf8, 0x21, 0x4b, 0x97, 0xb9, 0xe8, 0x8a, 0x13, 0x1e, 0xb6, 0xf2, + 0x57, 0x69, 0x34, 0x6d, 0x75, 0x7d, 0x1f, 0x88, 0xe1, 0x63, 0x82, 0x89, 0xc7, 0x56, 0x5b, 0xe4, + 0x38, 0x1a, 0x65, 0x58, 0x62, 0xf7, 0x9a, 0xdf, 0xab, 0xce, 0xec, 0xd2, 0x27, 0xec, 0xcc, 0x1c, + 0x22, 0x8f, 0x98, 0x17, 0xbc, 0x25, 0x5e, 0x55, 0x69, 0x6a, 0xe4, 0x52, 0x9b, 0x50, 0xa0, 0x2b, + 0x65, 0xa5, 0x81, 0x42, 0x99, 0x17, 0xb1, 0x4c, 0x22, 0x91, 0xfb, 0x0f, 0x44, 0x76, 0x5e, 0xc1, + 0x96, 0xd4, 0xb3, 0x97, 0x30, 0x34, 0xf4, 0x50, 0xcc, 0x67, 0x5e, 0xc6, 0x12, 0x8f, 0x00, 0xb3, + 0x48, 0x3e, 0xb8, 0xd7, 0x65, 0xa9, 0x4c, 0xc6, 0xf2, 0x11, 0xaa, 0x47, 0x9a, 0x80, 0xda, 0xca, + 0xb0, 0x48, 0x33, 0x4f, 0x4e, 0x6f, 0xa3, 0x87, 0x7f, 0xe3, 0xae, 0x12, 0x2c, 0xeb, 0xf1, 0xb1, + 0x4a, 0xd8, 0xdc, 0x61, 0xbc, 0x1e, 0xcd, 0x3b, 0xa2, 0x02, 0x4d, 0x1c, 0x15, 0x72, 0xeb, 0xf2, + 0x37, 0x92, 0xae, 0x88, 0xc0, 0x5d, 0x31, 0x40, 0xbf, 0x60, 0xe2, 0x05, 0x5d, 0x16, 0xfc, 0xae, + 0xf0, 0x8d, 0xba, 0xb7, 0xb2, 0xae, 0x5a, 0x30, 0xe0, 0xd7, 0xa9, 0x00, 0x47, 0x43, 0x14, 0xba, + 0x11, 0xc3, 0x3f, 0x37, 0x71, 0x23, 0x30, 0xe8, 0xdd, 0xbb, 0x19, 0xba, 0x6e, 0xf7, 0x1c, 0x31, + 0x83, 0x41, 0x45, 0xb8, 0x83, 0xe4, 0x55, 0x81, 0x2a, 0x8a, 0x1a, 0x12, 0xa2, 0x06, 0x4d, 0x00, + 0x20, 0x1c, 0x14, 0x8d, 0x92, 0xb1, 0xa3, 0x57, 0x3c, 0x72, 0x53, 0xdd, 0x07, 0x92, 0x6a, 0xca, + 0x7b, 0x38, 0xba, 0x70, 0x29, 0x41, 0x63, 0x90, 0xdd, 0xd5, 0x63, 0x0e, 0x2a, 0x2e, 0x60, 0x51, + 0x4d, 0x6a, 0xc4, 0xe4, 0x6e, 0xe4, 0xd4, 0x84, 0x15, 0x4a, 0xd6, 0x2a, 0xdc, 0x94, 0x5e, 0xdc, + 0x49, 0x90, 0x73, 0x5f, 0x60, 0x3e, 0xf1, 0xbb, 0x7f, 0x79, 0xc4, 0x0f, 0x0d, 0x30, 0x34, 0xf0, + 0x49, 0xc6, 0x83, 0xeb, 0x8d, 0x9a, 0x09, 0x0d, 0x69, 0x53, 0x8f, 0x90, 0xd3, 0x08, 0xed, 0xa3, + 0xc2, 0x9d, 0x81, 0x56, 0xf1, 0xeb, 0x1f, 0x75, 0x01, 0xad, 0x07, 0xfa, 0xcd, 0x25, 0x9b, 0x14, + 0xce, 0x7a, 0x1d, 0x1d, 0xf9, 0xfe, 0x0d, 0x48, 0x78, 0x92, 0xa2, 0x19, 0xff, 0x91, 0x93, 0x64, + 0x8d, 0x92, 0x39, 0x2a, 0x62, 0x08, 0x7b, 0x0a, 0x98, 0xbd, 0x27, 0x73, 0xbd, 0x4e, 0x1c, 0xbb, + 0x74, 0x0c, 0x5a, 0x2d, 0x6d, 0x89, 0x1c, 0x45, 0xb1, 0x9a, 0xdf, 0xc5, 0x6a, 0xe5, 0x6e, 0x0e, + 0x21, 0x6a, 0x37, 0xa5, 0xb2, 0x9a, 0x42, 0xe2, 0x4e, 0x5d, 0xde, 0x29, 0xe8, 0x77, 0xe3, 0x0c, + 0x0a, 0x1a, 0x69, 0xba, 0xb4, 0x9d, 0x81, 0x23, 0x67, 0x91, 0xf9, 0x91, 0x2f, 0xc9, 0x94, 0x95, + 0xbe, 0xcd, 0x7d, 0x88, 0x8c, 0xc2, 0x71, 0xa7, 0x8e, 0x9b, 0x32, 0xe2, 0xb6, 0x25, 0x24, 0x4a, + 0xe2, 0x96, 0x0c, 0xff, 0xfc, 0xa3, 0x1e, 0x4b, 0xc5, 0x24, 0x84, 0xc0, 0xbc, 0xb6, 0x53, 0x8c, + 0x41, 0x88, 0x17, 0x90, 0x71, 0xe2, 0xde, 0x32, 0x09, 0x06, 0xb3, 0x4f, 0xdd, 0xf4, 0x36, 0xe1, + 0xd9, 0xfb, 0x9f, 0xbe, 0xf9, 0x2a, 0xe6, 0x24, 0x51, 0x98, 0xe4, 0x1c, 0x16, 0x33, 0x49, 0x8d, + 0x25, 0x96, 0x9f, 0x3b, 0x5e, 0xe9, 0xb0, 0xa9, 0x1d, 0x51, 0xf3, 0xec, 0xc8, 0x2f, 0x8f, 0x8f, + 0x03, 0x64, 0x9a, 0x53, 0x7e, 0x6f, 0xd3, 0x54, 0x8b, 0x7a, 0xb2, 0x2c, 0x97, 0x38, 0x08, 0x59, + 0xc0, 0x66, 0x6c, 0xc1, 0x56, 0x6c, 0xca, 0xe6, 0x6c, 0x42, 0x62, 0x07, 0x6b, 0xbb, 0x5e, 0x7f, + 0x64, 0x4b, 0x7f, 0xa2, 0x57, 0x1f, 0x2b, 0x8f, 0xae, 0xee, 0x30, 0xe2, 0xd8, 0x97, 0x0b, 0x5e, + 0x0e, 0xcb, 0x51, 0x77, 0xec, 0x2d, 0x89, 0xf8, 0x58, 0x57, 0x92, 0x9f, 0xc3, 0x42, 0xbf, 0xcb, + 0xc0, 0x09, 0xfe, 0xe7, 0x36, 0x7e, 0x6b, 0xcd, 0x51, 0x54, 0xdc, 0x03, 0xa2, 0x13, 0x69, 0x90, + 0xa1, 0x4f, 0x6c, 0x43, 0x74, 0xc2, 0xdb, 0x3d, 0x35, 0x17, 0xdf, 0x9e, 0xf9, 0x93, 0x51, 0x38, + 0xc6, 0xca, 0xcf, 0x68, 0x18, 0x10, 0x19, 0xbe, 0x3f, 0xa3, 0x07, 0xbd, 0x11, 0xad, 0xfb, 0xf4, + 0x4e, 0x09, 0x87, 0xea, 0x29, 0x6c, 0x0f, 0x78, 0x0c, 0xbd, 0x44, 0x8b, 0x17, 0x80, 0x6c, 0x83, + 0x57, 0xcb, 0x41, 0x00, 0x6a, 0xa5, 0x6e, 0x04, 0xbc, 0x80, 0xc8, 0xf4, 0x71, 0x60, 0x0f, 0x54, + 0x4b, 0x43, 0x93, 0x54, 0x3b, 0x13, 0x13, 0xdd, 0x00, 0xc8, 0x02, 0xeb, 0x93, 0x00, 0x75, 0x33, + 0x7f, 0xb6, 0x5e, 0xdf, 0x55, 0x18, 0x94, 0xf2, 0x0a, 0x68, 0x64, 0xe8, 0xb6, 0x50, 0xc2, 0x73, + 0x46, 0xcf, 0x23, 0x3f, 0x00, 0xa6, 0xe6, 0x3e, 0x28, 0x6f, 0x34, 0x76, 0x24, 0x35, 0x07, 0x98, + 0x6c, 0xb8, 0x5e, 0x2f, 0x58, 0xa1, 0xe5, 0xfb, 0xc2, 0x10, 0x29, 0x53, 0xd4, 0x9f, 0x22, 0x47, + 0x8b, 0x7e, 0x37, 0x76, 0x16, 0xf4, 0x8b, 0x46, 0x12, 0xe1, 0x72, 0x8a, 0xa8, 0x5f, 0xfa, 0x34, + 0x8a, 0xc5, 0x91, 0x1f, 0x83, 0xac, 0x45, 0xdb, 0x85, 0xa1, 0xe5, 0xc0, 0x83, 0x5e, 0x05, 0x14, + 0x35, 0x62, 0xa3, 0xec, 0x88, 0x24, 0x57, 0xe2, 0x06, 0xcb, 0x25, 0x18, 0x43, 0xaa, 0xc0, 0x85, + 0x23, 0xe0, 0x4a, 0xf5, 0xea, 0xc7, 0x8c, 0xd0, 0x87, 0xc4, 0xca, 0x4d, 0x20, 0x02, 0xdf, 0x47, + 0x93, 0x58, 0xf2, 0x9a, 0xc4, 0xa8, 0xdf, 0x27, 0x01, 0xb0, 0x42, 0x87, 0x8e, 0xc0, 0x50, 0xab, + 0x18, 0x90, 0xc8, 0xcb, 0x79, 0x56, 0x7c, 0xc1, 0x01, 0x81, 0xdb, 0x0b, 0x16, 0x3b, 0x1b, 0x2b, + 0x5d, 0x2a, 0x21, 0x15, 0x09, 0xdc, 0x0a, 0xed, 0xb6, 0x0a, 0xe2, 0x92, 0xfb, 0x96, 0xe5, 0x6c, + 0x62, 0x8c, 0xd7, 0x80, 0xce, 0xf6, 0x48, 0xb5, 0xaa, 0x5d, 0x84, 0xc9, 0x2f, 0x20, 0x33, 0x14, + 0xf7, 0x85, 0xed, 0x36, 0x2b, 0x36, 0x0e, 0x08, 0x2c, 0xf5, 0xa7, 0x0a, 0x53, 0xa0, 0xf4, 0x1a, + 0xc2, 0x51, 0x13, 0x82, 0xd0, 0x94, 0xa1, 0x5f, 0x6a, 0x22, 0x0e, 0x3b, 0x9d, 0x81, 0xa3, 0x9a, + 0x81, 0x78, 0x8e, 0x8f, 0xef, 0x6d, 0x7a, 0x3a, 0x03, 0x59, 0x6f, 0x69, 0x56, 0x98, 0x88, 0x0a, + 0xdf, 0xdb, 0xf4, 0x64, 0x82, 0x24, 0x89, 0x07, 0xe6, 0x0a, 0x64, 0x77, 0x10, 0xbe, 0x9a, 0x57, + 0x60, 0x41, 0x6b, 0x5f, 0xd9, 0x73, 0xaa, 0x38, 0x1f, 0xb5, 0xdb, 0xd5, 0xc3, 0x60, 0xbe, 0xcf, + 0xb5, 0x79, 0x51, 0xad, 0x4d, 0xa4, 0x98, 0xdf, 0x51, 0x94, 0x0f, 0xdb, 0xcb, 0x9a, 0xa4, 0x69, + 0xcc, 0x03, 0x53, 0xbc, 0x3b, 0x30, 0x5a, 0x94, 0xd1, 0x90, 0x88, 0x86, 0x8e, 0x53, 0x11, 0xc2, + 0xe7, 0x59, 0x16, 0xdc, 0xbb, 0x51, 0x2e, 0x9e, 0xe0, 0x30, 0x47, 0xab, 0x9a, 0x0c, 0xc3, 0xcb, + 0x20, 0xba, 0x0d, 0xc3, 0x03, 0xfd, 0xc3, 0xe6, 0x10, 0x43, 0x50, 0xed, 0x15, 0xd0, 0x61, 0x62, + 0xef, 0x61, 0xd2, 0x83, 0xc3, 0xd1, 0x62, 0x90, 0x08, 0x12, 0x75, 0x2d, 0x32, 0x05, 0x93, 0xb9, + 0x51, 0x03, 0xcd, 0x92, 0xf2, 0x66, 0xc2, 0xb3, 0x3d, 0xad, 0x42, 0x01, 0x9b, 0x29, 0x01, 0x26, + 0x66, 0x33, 0xa8, 0x3b, 0x74, 0x53, 0xa9, 0x4a, 0x7c, 0xa1, 0x95, 0xb4, 0x82, 0x1d, 0x48, 0x43, + 0x0e, 0xb6, 0x85, 0x58, 0x51, 0xb0, 0x83, 0x50, 0xd6, 0xac, 0xa8, 0x4c, 0x97, 0xca, 0x9e, 0x49, + 0x84, 0xf2, 0x01, 0x5b, 0x6e, 0x08, 0x19, 0x5e, 0x51, 0x15, 0x44, 0xf5, 0x3a, 0xcc, 0xf4, 0x3a, + 0x58, 0x1d, 0x4b, 0x18, 0x4a, 0xdd, 0xf1, 0xb0, 0x70, 0x73, 0x2e, 0xac, 0x23, 0xd0, 0xf1, 0x3d, + 0x09, 0x49, 0xb4, 0x85, 0x66, 0xf3, 0x77, 0x26, 0x82, 0x25, 0x3b, 0x22, 0xf5, 0x94, 0xb9, 0x05, + 0xcf, 0x0b, 0xd8, 0xcc, 0xc3, 0xa8, 0x6d, 0x2d, 0xef, 0x2c, 0x4f, 0xad, 0xe8, 0xd0, 0xb2, 0x3c, + 0xa3, 0xaf, 0x1f, 0xed, 0x4a, 0xbb, 0x48, 0x41, 0xab, 0xa4, 0x2e, 0x0b, 0x05, 0xea, 0x30, 0x7e, + 0x1a, 0x02, 0x54, 0x04, 0x1f, 0x5a, 0x61, 0x1c, 0xe4, 0xf9, 0xf7, 0xf0, 0x0c, 0xc4, 0xa8, 0xd4, + 0x3b, 0x00, 0x7b, 0x2a, 0x65, 0xe4, 0x8a, 0x5a, 0x5e, 0x02, 0x09, 0x69, 0x69, 0xab, 0x46, 0x14, + 0xd7, 0x84, 0x81, 0x55, 0xb9, 0x8f, 0x25, 0x24, 0x47, 0x08, 0x0c, 0xcc, 0x90, 0x72, 0xd8, 0xce, + 0x72, 0x45, 0x4e, 0xe9, 0x86, 0x79, 0xfe, 0x81, 0xec, 0x9d, 0x48, 0x4a, 0x82, 0x7d, 0xab, 0x9a, + 0x81, 0x56, 0xeb, 0x8a, 0x96, 0x05, 0x85, 0x25, 0xa5, 0x7d, 0x26, 0x68, 0x2e, 0x25, 0x5b, 0x34, + 0x73, 0x80, 0x1e, 0x91, 0x8a, 0x20, 0xbb, 0x6d, 0x9a, 0x2b, 0xb8, 0x9d, 0x66, 0x1a, 0x89, 0x4a, + 0xb1, 0x28, 0x72, 0x00, 0x2a, 0x1a, 0xc5, 0x63, 0xc2, 0x22, 0x1e, 0xb2, 0x26, 0x94, 0x19, 0xd2, + 0xce, 0x86, 0xfa, 0xb7, 0x52, 0xbd, 0x2e, 0xe0, 0x6b, 0x39, 0xb1, 0x51, 0x6f, 0x3c, 0xb4, 0xe1, + 0xd3, 0x1c, 0x09, 0x64, 0x91, 0x55, 0xba, 0x8c, 0x83, 0x90, 0xdb, 0xa7, 0xaf, 0x83, 0x25, 0xd6, + 0x97, 0x7f, 0x7a, 0x4a, 0x3d, 0x81, 0x8f, 0x7c, 0x1b, 0x9c, 0x99, 0xb8, 0x45, 0xfa, 0x5d, 0x7a, + 0xcb, 0xb3, 0xd7, 0xb0, 0x41, 0x6c, 0xc7, 0x21, 0x33, 0x79, 0x08, 0x6b, 0xd2, 0x71, 0xf3, 0x18, + 0xfe, 0x99, 0xdd, 0x87, 0xf8, 0x18, 0xda, 0xd9, 0x7a, 0x5d, 0xb8, 0xc1, 0x74, 0xfa, 0xd5, 0x0a, + 0xb2, 0xf1, 0xbb, 0x28, 0x2f, 0x38, 0x54, 0x2c, 0xd6, 0x7e, 0x25, 0xa4, 0x39, 0x68, 0x6d, 0xbd, + 0xa6, 0x5f, 0xb8, 0x34, 0x8e, 0x43, 0xb4, 0x40, 0x34, 0xa1, 0x7c, 0x87, 0x7d, 0x4d, 0xe0, 0x6d, + 0xc5, 0xc8, 0xb1, 0x48, 0xc2, 0x62, 0xdc, 0x45, 0x30, 0x17, 0xab, 0xa4, 0x5e, 0x31, 0xfd, 0x1b, + 0x95, 0x3e, 0x82, 0x54, 0x4b, 0x84, 0xe9, 0x3e, 0x14, 0x34, 0x66, 0x52, 0x8e, 0xb7, 0x4f, 0x8e, + 0xa1, 0xf9, 0x34, 0x48, 0xe6, 0x3c, 0x4b, 0xcb, 0x3c, 0xbe, 0x7f, 0xcf, 0x8b, 0x37, 0x09, 0xba, + 0xfd, 0xf6, 0xc3, 0xdb, 0xef, 0x14, 0x44, 0x7b, 0x17, 0x2f, 0xbf, 0xdd, 0x41, 0xb0, 0x5e, 0x7b, + 0x43, 0x89, 0x97, 0xa1, 0xea, 0x63, 0xbd, 0x16, 0xc4, 0x1b, 0x0d, 0xf5, 0x44, 0x3e, 0x2f, 0xb0, + 0xcc, 0x93, 0xb2, 0xe0, 0xdf, 0xbf, 0xb7, 0xad, 0x45, 0x51, 0x2c, 0xbd, 0xd3, 0xd3, 0xdb, 0xdb, + 0x5b, 0xf7, 0xf6, 0xcc, 0x4d, 0xb3, 0xf9, 0x69, 0xef, 0xea, 0xea, 0xea, 0x54, 0x40, 0xb2, 0xd8, + 0x36, 0x52, 0x3d, 0xc1, 0x33, 0xff, 0x3a, 0x00, 0xe2, 0xb1, 0x27, 0x87, 0x45, 0x4e, 0x69, 0xb3, + 0x1f, 0xc1, 0x9c, 0x86, 0x54, 0x5d, 0x99, 0x36, 0x3e, 0xd9, 0xee, 0xc5, 0x48, 0x8a, 0x89, 0x31, + 0xac, 0x40, 0x4e, 0xeb, 0x34, 0x54, 0x4f, 0xb2, 0x8f, 0x4d, 0x77, 0xef, 0xda, 0xde, 0xb2, 0xfc, + 0x88, 0x2d, 0x25, 0x97, 0x36, 0x8c, 0x21, 0xb6, 0x64, 0xf7, 0xec, 0x96, 0x5d, 0x13, 0x59, 0x01, + 0x2e, 0x91, 0x73, 0x65, 0x98, 0x25, 0xae, 0xe1, 0x9d, 0x34, 0x24, 0x23, 0xcc, 0x01, 0xf4, 0x4b, + 0x7a, 0x13, 0x73, 0x18, 0x14, 0xd9, 0xbd, 0x54, 0xca, 0x7b, 0x34, 0xdd, 0xb5, 0x10, 0xb9, 0x4b, + 0xb2, 0x0d, 0x85, 0x58, 0xbb, 0xf7, 0xd1, 0xf6, 0x5a, 0xfb, 0x20, 0x1f, 0x48, 0x87, 0x1d, 0x1f, + 0x67, 0xa3, 0xc0, 0x85, 0x52, 0xb9, 0xf5, 0x83, 0xe1, 0xfd, 0xf0, 0x5e, 0xd6, 0x94, 0x0a, 0xd5, + 0x0b, 0xdc, 0x08, 0xce, 0x54, 0xe4, 0x86, 0xc3, 0x09, 0x99, 0x4e, 0x18, 0x12, 0x94, 0x6e, 0x08, + 0x07, 0x9e, 0xec, 0x1c, 0xcf, 0xb6, 0x50, 0xb7, 0x48, 0xa9, 0x2f, 0x0b, 0x34, 0x77, 0x7d, 0x7c, + 0x7c, 0xed, 0x56, 0x39, 0x40, 0x37, 0x99, 0xc7, 0x43, 0x6a, 0x83, 0x96, 0xfc, 0x16, 0x48, 0x59, + 0xb2, 0x5b, 0xc7, 0xb3, 0xeb, 0x9c, 0x37, 0x22, 0x87, 0xcd, 0xcc, 0x99, 0xfa, 0xd7, 0x6c, 0xa6, + 0xda, 0xfa, 0x7f, 0x3a, 0x0c, 0xb6, 0xd4, 0xbd, 0x9b, 0x97, 0x13, 0x7b, 0x46, 0xf5, 0xa4, 0x27, + 0xb5, 0x44, 0x2a, 0x2f, 0x82, 0x82, 0x83, 0x8b, 0x54, 0x8a, 0x38, 0x49, 0xc2, 0x11, 0xce, 0xd5, + 0x2d, 0xd2, 0xb7, 0x7e, 0xc6, 0x16, 0x18, 0x27, 0x19, 0xfe, 0x78, 0xbd, 0x31, 0x94, 0xe1, 0xcc, + 0xfd, 0x08, 0xca, 0xc6, 0xaf, 0xaf, 0x9a, 0x6b, 0xbb, 0xe8, 0xda, 0x9d, 0xf3, 0xe2, 0x4b, 0x18, + 0xf5, 0x2b, 0x3e, 0x7d, 0x4f, 0x05, 0x5f, 0x67, 0xe9, 0x8d, 0xf0, 0x6c, 0x8f, 0x8f, 0xdf, 0x8a, + 0x06, 0xba, 0xc5, 0x90, 0x5e, 0x84, 0x41, 0x8d, 0x84, 0xe3, 0xe1, 0x87, 0x1d, 0x6e, 0x6c, 0x2f, + 0x45, 0x2d, 0x87, 0x2d, 0x1c, 0x39, 0x80, 0xc7, 0xfa, 0x91, 0x23, 0xa1, 0xb9, 0xdc, 0x2c, 0xd3, + 0x04, 0xc4, 0xf5, 0x73, 0x14, 0xc7, 0x6f, 0xe1, 0x71, 0x14, 0x64, 0xfd, 0xed, 0xe6, 0xda, 0x7a, + 0xf0, 0x46, 0xe1, 0x97, 0xd1, 0x54, 0xb5, 0x48, 0xa5, 0x22, 0x9e, 0x39, 0x95, 0xf8, 0x7d, 0xde, + 0x08, 0x60, 0xdd, 0x1d, 0x18, 0xca, 0x8f, 0x3c, 0xe4, 0x68, 0xa5, 0xea, 0x3e, 0x52, 0x28, 0x17, + 0xf7, 0xc8, 0x80, 0x93, 0x2f, 0xd2, 0x32, 0x9e, 0xbe, 0xd6, 0x0d, 0xfe, 0xb1, 0x9c, 0xa2, 0x63, + 0xa5, 0xf5, 0x0e, 0x94, 0x4a, 0xd4, 0x01, 0x90, 0x74, 0x24, 0x77, 0x48, 0x80, 0xd6, 0x92, 0x89, + 0x45, 0xee, 0x31, 0x94, 0x4e, 0xa1, 0x93, 0xa0, 0xa7, 0x65, 0x87, 0xf9, 0x30, 0x3f, 0x22, 0x2b, + 0x31, 0x1d, 0xe6, 0x1e, 0x7e, 0xa5, 0xcb, 0x9f, 0xc0, 0x7b, 0x20, 0xdf, 0x41, 0x5a, 0xf2, 0x49, + 0xed, 0x80, 0x92, 0x49, 0x8f, 0x57, 0xd8, 0xe9, 0xc2, 0xa2, 0xa4, 0x04, 0xe8, 0x1c, 0x0c, 0xa6, + 0x8c, 0xd1, 0xcd, 0x5e, 0x6c, 0xe8, 0x39, 0xec, 0xcd, 0xae, 0x06, 0xbf, 0x91, 0x06, 0xb0, 0x1a, + 0x3d, 0x9b, 0x6a, 0x2a, 0xda, 0x22, 0xd9, 0x7d, 0x73, 0x13, 0xcc, 0xfe, 0x56, 0x31, 0xbb, 0x9e, + 0xa9, 0x98, 0x28, 0x35, 0xf0, 0x0b, 0x4c, 0x44, 0xf3, 0x8b, 0xc6, 0x0e, 0xdb, 0x81, 0xee, 0x88, + 0x69, 0x7f, 0xae, 0x3c, 0x24, 0x38, 0x0f, 0x81, 0xf2, 0x4f, 0xde, 0xe9, 0xd5, 0x0e, 0xc8, 0xe0, + 0x19, 0x06, 0x8a, 0xfb, 0xb5, 0xe6, 0xf7, 0x82, 0x9a, 0xb8, 0x40, 0x2f, 0xc2, 0xa8, 0x7f, 0x2d, + 0x41, 0x0a, 0x77, 0xf4, 0xad, 0x2d, 0x58, 0x20, 0xa3, 0x81, 0x6d, 0x95, 0x43, 0x8c, 0x83, 0xde, + 0xb5, 0x0f, 0x21, 0x8a, 0xdf, 0x27, 0xc1, 0x12, 0x8b, 0xac, 0xac, 0x79, 0x89, 0x22, 0xb0, 0xf0, + 0xfc, 0x70, 0xa9, 0x0d, 0x39, 0x09, 0x30, 0xef, 0xb7, 0xc4, 0x29, 0x09, 0x53, 0xf4, 0x28, 0xa3, + 0x09, 0x6e, 0x3a, 0x20, 0x14, 0xdc, 0x68, 0x57, 0x59, 0x33, 0x77, 0x85, 0x42, 0x87, 0x41, 0xbe, + 0x05, 0x71, 0x4c, 0x4c, 0x50, 0x0d, 0x68, 0x55, 0x8f, 0xcc, 0xe4, 0x1a, 0x3d, 0xa8, 0x7d, 0xb9, + 0xb6, 0x10, 0xda, 0x0e, 0x9b, 0x08, 0xf0, 0xd7, 0x68, 0x19, 0x49, 0x3b, 0x45, 0x58, 0x16, 0xc2, + 0x3e, 0x34, 0x9d, 0x7a, 0x53, 0xfc, 0x4b, 0xd1, 0x8f, 0x61, 0x4b, 0x5f, 0x18, 0x04, 0x28, 0x17, + 0x6a, 0xa5, 0x25, 0x33, 0x49, 0x7e, 0xf8, 0x2f, 0xf9, 0x6a, 0x2e, 0x6c, 0x12, 0xb1, 0x3a, 0xeb, + 0x35, 0xd7, 0xc6, 0xbb, 0x66, 0xa1, 0x52, 0xd8, 0x3a, 0x39, 0x48, 0x37, 0x7f, 0x55, 0xb9, 0x1d, + 0x79, 0x23, 0x72, 0x02, 0x7f, 0x64, 0x94, 0x93, 0x43, 0xaa, 0x18, 0x5d, 0x01, 0x1b, 0x9e, 0x21, + 0x19, 0xba, 0x14, 0xc9, 0x22, 0xb1, 0xef, 0x85, 0x6e, 0x9c, 0x02, 0x29, 0x64, 0x47, 0x54, 0x75, + 0xc0, 0x63, 0x85, 0x1f, 0x32, 0x6a, 0x2f, 0x7d, 0x42, 0xe9, 0xa8, 0xd6, 0x36, 0xb4, 0x61, 0xc0, + 0xeb, 0x26, 0x4a, 0x2f, 0x4d, 0xd3, 0x50, 0x84, 0x23, 0xdd, 0x10, 0x4d, 0x0a, 0x4e, 0x86, 0x1c, + 0xb9, 0x84, 0xf6, 0x8a, 0xa2, 0x18, 0x7c, 0xb8, 0x55, 0xac, 0x22, 0x0d, 0xfb, 0xf5, 0x7a, 0xbf, + 0xdb, 0xed, 0x9e, 0x12, 0x22, 0x98, 0xea, 0xc2, 0xdb, 0xdf, 0xda, 0x56, 0xc5, 0xac, 0x94, 0x8e, + 0xb4, 0xa1, 0x21, 0xeb, 0x59, 0xc3, 0x8f, 0xf5, 0x57, 0x0a, 0x17, 0xc2, 0x99, 0x83, 0x47, 0x56, + 0x1a, 0x71, 0xb4, 0xb1, 0xb2, 0x34, 0x0b, 0x17, 0x2b, 0x1c, 0xf8, 0x2b, 0xd8, 0x0d, 0x47, 0xd2, + 0x79, 0x32, 0x5a, 0xf8, 0x1f, 0xa5, 0x71, 0x27, 0xa9, 0x48, 0x45, 0xfb, 0x68, 0x7a, 0xb0, 0xcc, + 0xc0, 0x7e, 0x76, 0xb5, 0x9e, 0xf0, 0xde, 0x1d, 0xf7, 0x80, 0x3d, 0x05, 0xef, 0x7e, 0x75, 0xb0, + 0x2c, 0x26, 0x4d, 0xb6, 0x5e, 0x07, 0xb4, 0x6c, 0x33, 0x70, 0x27, 0xc9, 0x93, 0x77, 0xc4, 0x94, + 0xef, 0x84, 0xa1, 0x18, 0xe9, 0x8a, 0xfe, 0x4c, 0x94, 0xc0, 0x36, 0x27, 0x8b, 0x74, 0x97, 0xda, + 0x94, 0x23, 0x20, 0x1c, 0xce, 0x52, 0x5a, 0xc4, 0xe2, 0x91, 0xac, 0xd7, 0xe4, 0x2e, 0x94, 0x2a, + 0xb6, 0x33, 0x2a, 0xc7, 0xe0, 0xd9, 0xba, 0x56, 0xe2, 0xf0, 0xbd, 0x6e, 0x6e, 0x82, 0x8a, 0xe8, + 0x4b, 0xd8, 0x02, 0x44, 0x97, 0xa5, 0x70, 0x0a, 0x78, 0x78, 0xcd, 0xa7, 0xea, 0x95, 0x40, 0x09, + 0x23, 0x9a, 0x2a, 0xaa, 0x2e, 0x08, 0xba, 0xea, 0x02, 0xae, 0x12, 0x4c, 0x9d, 0x05, 0xd8, 0x20, + 0x96, 0x22, 0x28, 0xd9, 0x12, 0x30, 0x0c, 0xb3, 0xae, 0xb9, 0x9b, 0x4c, 0x59, 0x1e, 0xcd, 0x93, + 0x77, 0x72, 0x8b, 0xe2, 0x48, 0x2f, 0xe3, 0xf1, 0xb1, 0xe4, 0xa3, 0x3b, 0x02, 0x43, 0xb8, 0x52, + 0x43, 0xc2, 0xd0, 0xb1, 0xb8, 0x95, 0xc5, 0xb4, 0x92, 0x56, 0x0b, 0x72, 0x64, 0xe2, 0x88, 0x7c, + 0x3d, 0x95, 0x65, 0xab, 0x94, 0x32, 0x89, 0x55, 0x0d, 0x32, 0x8c, 0x55, 0xd2, 0x61, 0xd5, 0xd4, + 0x76, 0xc0, 0xaa, 0x02, 0x02, 0xac, 0x92, 0x02, 0x74, 0x95, 0x6d, 0x57, 0xe9, 0xba, 0x32, 0x89, + 0xbf, 0x62, 0x63, 0x47, 0xe4, 0x31, 0x1a, 0xa2, 0x20, 0x74, 0xa4, 0xf9, 0x36, 0x8d, 0x66, 0x33, + 0x54, 0x92, 0x62, 0x7d, 0x13, 0x06, 0x45, 0x48, 0x01, 0xc9, 0x87, 0x1b, 0x37, 0x55, 0x2e, 0xe4, + 0xa6, 0x76, 0x3b, 0x6b, 0xbb, 0x72, 0xba, 0xb5, 0x5b, 0x31, 0xa0, 0x38, 0xa9, 0x0e, 0x11, 0xc2, + 0x0e, 0x8c, 0x76, 0x4d, 0x00, 0x7b, 0x07, 0x7a, 0xe4, 0x4e, 0x9d, 0xcd, 0x8d, 0x1b, 0x52, 0x68, + 0x3b, 0xa4, 0xde, 0x2b, 0xf0, 0x5f, 0x69, 0xf7, 0x95, 0x60, 0xed, 0x0b, 0x07, 0x0f, 0x0b, 0x69, + 0x35, 0x87, 0x65, 0x46, 0x51, 0x1f, 0x3f, 0xd9, 0x81, 0x6d, 0x46, 0x60, 0xbf, 0xdf, 0xd9, 0xf4, + 0x20, 0x31, 0x77, 0xe3, 0x96, 0xc9, 0x8d, 0x34, 0x4e, 0xaa, 0x24, 0x00, 0x30, 0xa8, 0x13, 0x1d, + 0xe4, 0xfa, 0xca, 0xce, 0x94, 0x13, 0x0f, 0x53, 0x1e, 0x34, 0x77, 0x28, 0x30, 0x0d, 0x4a, 0x88, + 0x94, 0xae, 0x87, 0xf4, 0x84, 0x73, 0x4e, 0x38, 0x17, 0x6e, 0x7a, 0xec, 0x57, 0x41, 0x00, 0x94, + 0x65, 0xc2, 0xe7, 0x17, 0xd2, 0x2b, 0xdb, 0xd2, 0xd3, 0xb2, 0x7f, 0x81, 0xbc, 0xfd, 0x45, 0xbb, + 0xf8, 0x03, 0xc6, 0x32, 0xa9, 0x7b, 0x32, 0x28, 0x60, 0x1d, 0xc4, 0xa3, 0x3e, 0x12, 0x21, 0x9e, + 0x4b, 0x88, 0xe7, 0xf2, 0x55, 0xa6, 0xc5, 0x73, 0x09, 0xf1, 0x9c, 0x81, 0x1d, 0x28, 0xda, 0x43, + 0x4f, 0x19, 0x25, 0x91, 0x23, 0xe3, 0x14, 0x23, 0xe2, 0xc6, 0x0a, 0xfc, 0xa9, 0x51, 0x66, 0xba, + 0x1d, 0x86, 0x75, 0x2c, 0x51, 0x5c, 0x55, 0x9f, 0x6f, 0xd1, 0x03, 0x7a, 0x8e, 0x5e, 0x55, 0x16, + 0x4d, 0x44, 0x41, 0x4a, 0x19, 0xb1, 0x91, 0x7b, 0x59, 0x2e, 0x4f, 0x20, 0x48, 0xb3, 0x60, 0x12, + 0xd3, 0xd8, 0xeb, 0x17, 0x72, 0x92, 0x18, 0x4d, 0x3f, 0x99, 0x45, 0xf3, 0x52, 0x96, 0xc3, 0x68, + 0xae, 0xb9, 0x8c, 0x3c, 0xf4, 0xcc, 0xbd, 0xcd, 0xa2, 0x42, 0x95, 0x39, 0x4c, 0xf2, 0xa8, 0x2b, + 0x37, 0xf8, 0xaa, 0xf0, 0x46, 0x01, 0x30, 0x14, 0x39, 0xc9, 0x4c, 0x3a, 0x98, 0xd8, 0x7a, 0x3e, + 0xf6, 0xc4, 0x57, 0xed, 0x82, 0x3c, 0x07, 0xa3, 0x43, 0xd1, 0x1a, 0xd1, 0x21, 0x3d, 0x8d, 0xa4, + 0xde, 0x17, 0x63, 0x91, 0xdf, 0xc3, 0x94, 0x76, 0x76, 0xbb, 0xb6, 0xa7, 0xa6, 0x9b, 0x72, 0x19, + 0x2b, 0x50, 0x9d, 0xd4, 0xce, 0xc8, 0x22, 0xc8, 0xdf, 0xdd, 0x26, 0x7a, 0x98, 0x52, 0x90, 0x93, + 0xbc, 0x24, 0xde, 0xa5, 0x6d, 0xac, 0x8c, 0x76, 0xae, 0x36, 0xd5, 0x66, 0x9f, 0x43, 0x51, 0xcc, + 0xf8, 0x5e, 0xee, 0x4f, 0x56, 0x9d, 0x83, 0x6b, 0x68, 0x13, 0xf2, 0x8d, 0x01, 0x17, 0xee, 0xe3, + 0x7b, 0x69, 0x67, 0x34, 0xc2, 0xf9, 0x72, 0x31, 0xc4, 0xe2, 0x7d, 0x24, 0x51, 0x41, 0x09, 0x61, + 0x8f, 0x1c, 0x1f, 0xcb, 0x4c, 0x12, 0xeb, 0x22, 0x21, 0x7d, 0x88, 0xba, 0x82, 0xe3, 0x0c, 0xf6, + 0x91, 0x3b, 0x8c, 0x64, 0xda, 0x5b, 0xb1, 0x23, 0x56, 0xef, 0x28, 0x39, 0xce, 0x7a, 0xfd, 0x96, + 0x72, 0x8c, 0x0d, 0x3d, 0x51, 0x2a, 0x24, 0x12, 0x25, 0xc4, 0x36, 0x40, 0xa2, 0x72, 0x6f, 0x54, + 0x48, 0xce, 0x61, 0x5c, 0x94, 0xc2, 0xd3, 0x6d, 0x4c, 0x05, 0x28, 0x0c, 0x95, 0xd9, 0xe5, 0x9b, + 0xab, 0x52, 0x83, 0x6c, 0x02, 0x42, 0xb7, 0xba, 0x93, 0xee, 0x01, 0x90, 0xca, 0x8d, 0x7b, 0xc7, + 0x72, 0xda, 0x86, 0x48, 0xfc, 0x3d, 0x33, 0xc3, 0x92, 0xdc, 0x44, 0x39, 0x1f, 0xaa, 0xa7, 0xd1, + 0xb8, 0x58, 0xf0, 0xc4, 0x9d, 0x40, 0x55, 0xdb, 0xba, 0x2c, 0xe3, 0x79, 0x1a, 0xaf, 0x44, 0x80, + 0x00, 0x78, 0xff, 0x10, 0xdd, 0xf0, 0xb4, 0x04, 0x3f, 0xec, 0xdd, 0xa7, 0xb9, 0xd9, 0xb1, 0xc6, + 0x6a, 0xfa, 0xca, 0x06, 0xa4, 0x88, 0xa2, 0x01, 0x59, 0x4d, 0xe0, 0x5b, 0xf8, 0xa3, 0xa0, 0x83, + 0xa3, 0xcc, 0x8d, 0xa4, 0x0c, 0x95, 0x42, 0xa2, 0x62, 0x39, 0x6d, 0x7b, 0x35, 0x32, 0xf7, 0x79, + 0x4f, 0x5f, 0x65, 0x19, 0x39, 0xea, 0x15, 0x4d, 0xd8, 0xcf, 0x6b, 0x41, 0xd1, 0xc4, 0x2d, 0xe7, + 0x2c, 0x6b, 0x88, 0xf1, 0xd7, 0x24, 0x7e, 0x1c, 0xb2, 0xe4, 0xa3, 0xa4, 0xe4, 0x83, 0x3d, 0x85, + 0xb4, 0xf1, 0xa5, 0x68, 0x97, 0x7a, 0xbd, 0xf6, 0x33, 0x2d, 0xb4, 0x68, 0x0b, 0x12, 0x52, 0xba, + 0x58, 0x64, 0xe9, 0x2d, 0xe8, 0x9a, 0xa5, 0xfe, 0x9d, 0x08, 0x79, 0x16, 0xbe, 0x65, 0x0f, 0xbd, + 0x51, 0xe7, 0xd7, 0x5f, 0xdb, 0xe3, 0xe1, 0xaf, 0xbf, 0x4e, 0x4f, 0x7e, 0xfd, 0xd5, 0xc5, 0xa3, + 0xfd, 0xd9, 0xd0, 0x59, 0x37, 0x0a, 0x28, 0xc7, 0x62, 0xb1, 0x6f, 0x8d, 0x7e, 0xfd, 0x35, 0x5f, + 0xff, 0xfa, 0xab, 0x3d, 0x6e, 0xdb, 0x56, 0xbb, 0x68, 0x5b, 0xce, 0x88, 0xe1, 0x35, 0x3f, 0xf4, + 0x8a, 0x34, 0x60, 0x3a, 0x43, 0x8b, 0x2d, 0xff, 0x72, 0xdb, 0x83, 0xa0, 0x7e, 0x17, 0x51, 0x83, + 0x1f, 0xf9, 0xfc, 0xab, 0xbb, 0xa5, 0x6d, 0x65, 0xf3, 0x89, 0xd5, 0x86, 0x41, 0xf0, 0xed, 0x76, + 0x6e, 0x60, 0xb5, 0x97, 0x0e, 0xfb, 0xa1, 0x91, 0xbd, 0xc8, 0x63, 0x51, 0xf9, 0xd3, 0xed, 0x5c, + 0x59, 0xf9, 0x83, 0x6f, 0xfd, 0x86, 0x79, 0x7f, 0x32, 0x5c, 0x77, 0xef, 0x68, 0xc2, 0x3f, 0x03, + 0x3f, 0xa3, 0x6e, 0xe7, 0x2a, 0xe8, 0xcc, 0x3e, 0xef, 0x7c, 0x3d, 0x7e, 0xe8, 0x6d, 0x90, 0xf9, + 0x7a, 0x2b, 0xb3, 0x4f, 0x99, 0x5f, 0x9a, 0x00, 0x3f, 0xb4, 0x7f, 0x16, 0xff, 0x59, 0x9f, 0x5a, + 0x0e, 0xfb, 0x7a, 0x5f, 0x89, 0x2a, 0xfb, 0xae, 0x59, 0xf6, 0x5a, 0xfc, 0x27, 0x4a, 0xbe, 0xd8, + 0x57, 0xa2, 0xca, 0xfe, 0xf0, 0xdf, 0x06, 0xc5, 0x02, 0x96, 0xfb, 0x9c, 0x7d, 0x23, 0x93, 0xb0, + 0x25, 0x93, 0x29, 0xfb, 0x45, 0xbe, 0xcc, 0xe2, 0x34, 0xcd, 0xea, 0xa3, 0x0d, 0x7f, 0xdb, 0xd2, + 0x25, 0xa2, 0xce, 0x4d, 0x94, 0xd8, 0x32, 0x11, 0xdc, 0x09, 0x59, 0xd5, 0xd0, 0x27, 0x7f, 0x37, + 0xc5, 0x57, 0xa7, 0xf7, 0xaa, 0xa8, 0x4c, 0x65, 0xeb, 0x33, 0xf4, 0x9f, 0xf9, 0xcb, 0x20, 0xcb, + 0xf9, 0xd7, 0x71, 0x1a, 0x90, 0xca, 0xae, 0x02, 0xe0, 0xc3, 0xe4, 0xb4, 0xd7, 0xed, 0x9e, 0x64, + 0x5e, 0x56, 0x83, 0xfa, 0x4f, 0x23, 0x78, 0x26, 0x5a, 0xbd, 0x21, 0x35, 0xcf, 0x7a, 0x97, 0x46, + 0x77, 0xff, 0x68, 0x6c, 0xa2, 0x17, 0xe9, 0x7b, 0x11, 0x18, 0xb6, 0x51, 0xc7, 0x5d, 0x06, 0xc4, + 0x26, 0x59, 0x61, 0xf7, 0x99, 0xd5, 0xb5, 0x9c, 0x0d, 0x0d, 0xe9, 0x27, 0xdf, 0x38, 0x2a, 0x52, + 0x01, 0x89, 0x8d, 0x9d, 0xf6, 0x4f, 0xfd, 0x87, 0x85, 0xd7, 0x65, 0x39, 0xfe, 0xad, 0xf0, 0x2f, + 0xf0, 0x7a, 0x90, 0xad, 0x4a, 0x6c, 0x81, 0x2d, 0x2b, 0x99, 0x95, 0x26, 0xaf, 0x17, 0x64, 0x8a, + 0xc3, 0x89, 0x16, 0xef, 0x51, 0x12, 0x15, 0x51, 0x10, 0xff, 0x24, 0x2c, 0xc4, 0x49, 0x25, 0x91, + 0x3f, 0x95, 0xfd, 0x16, 0x7e, 0x5c, 0xcb, 0xa5, 0xea, 0x44, 0x08, 0x01, 0xf4, 0xb7, 0x36, 0x37, + 0x76, 0x37, 0x2c, 0x9c, 0x53, 0x83, 0xae, 0x4c, 0xe2, 0x39, 0x63, 0x2f, 0x37, 0x9f, 0x9e, 0xca, + 0x50, 0x7f, 0xe1, 0x0c, 0x45, 0x7f, 0x0b, 0x7e, 0x27, 0x51, 0xe0, 0x17, 0xde, 0xe9, 0x6f, 0x44, + 0xc9, 0xc3, 0xad, 0x1a, 0xc8, 0x33, 0x6a, 0x10, 0xf9, 0xd6, 0x35, 0xb4, 0xd4, 0x47, 0xae, 0xae, + 0x53, 0x0b, 0x16, 0x7d, 0xec, 0xe7, 0xa8, 0x1e, 0x99, 0x14, 0x0a, 0x44, 0x6d, 0x52, 0x0e, 0x59, + 0x6f, 0x12, 0x28, 0x7c, 0x18, 0xbd, 0x61, 0x1a, 0xa7, 0x59, 0x4b, 0x2a, 0x7f, 0xf8, 0x6f, 0x50, + 0xa9, 0x50, 0x4d, 0x90, 0xae, 0x68, 0x15, 0xab, 0x81, 0xe6, 0x2b, 0xda, 0x92, 0xa4, 0x87, 0x67, + 0x65, 0x64, 0x21, 0x00, 0xcb, 0xd6, 0x5c, 0x27, 0x26, 0x96, 0x0c, 0x41, 0xab, 0x11, 0x63, 0xac, + 0xd6, 0x42, 0x97, 0xe5, 0x3a, 0xb1, 0x32, 0x2a, 0x01, 0xd0, 0xfe, 0x4a, 0x71, 0xa3, 0x52, 0x4c, + 0x95, 0xae, 0x79, 0xbc, 0x8a, 0x12, 0x55, 0x41, 0xce, 0x58, 0x66, 0xf9, 0x85, 0x4a, 0xc0, 0xf6, + 0x60, 0x62, 0x79, 0x68, 0x91, 0x13, 0x1e, 0xef, 0x28, 0x02, 0xa9, 0x04, 0xa8, 0xe9, 0xa8, 0x18, + 0xd7, 0xeb, 0x8d, 0x17, 0x46, 0x0a, 0xe1, 0x61, 0x23, 0x83, 0xf2, 0xb0, 0x62, 0x1c, 0x82, 0x04, + 0xbd, 0x63, 0x2e, 0xb5, 0xa2, 0x35, 0x89, 0x83, 0x6d, 0xea, 0xa1, 0xfa, 0x61, 0x0c, 0xe9, 0x6c, + 0xd6, 0xd7, 0xa6, 0x3c, 0x50, 0x1d, 0x4b, 0x45, 0x49, 0xd5, 0xca, 0x84, 0xb4, 0xdb, 0x0e, 0xdc, + 0x8a, 0x36, 0xd5, 0x81, 0x14, 0x16, 0x53, 0x57, 0x1f, 0xd2, 0x1f, 0x81, 0x48, 0x93, 0xdc, 0xf4, + 0x11, 0xa4, 0xc5, 0xe9, 0x65, 0x97, 0x91, 0x1f, 0x90, 0x13, 0x13, 0x32, 0xb2, 0x43, 0x57, 0x22, + 0xc5, 0xfd, 0x5f, 0x48, 0xdb, 0xc3, 0x3d, 0xee, 0x70, 0x08, 0xfe, 0xec, 0xc4, 0xee, 0x75, 0x22, + 0xf8, 0x4f, 0x32, 0x55, 0x9e, 0x20, 0x9d, 0xcb, 0x34, 0xbd, 0x3a, 0xf4, 0x1e, 0xfa, 0xfc, 0xb3, + 0x4b, 0xb8, 0xb4, 0xa3, 0x1c, 0x0e, 0x4b, 0xc6, 0x62, 0x38, 0x2c, 0xe9, 0x98, 0x36, 0x1e, 0x67, + 0xfe, 0x28, 0x15, 0x81, 0x17, 0x91, 0x4d, 0x59, 0x8a, 0x0f, 0x1e, 0x32, 0xef, 0x6f, 0x76, 0xff, + 0xe2, 0xe2, 0x64, 0xa4, 0xaa, 0x53, 0x1d, 0xd1, 0xa4, 0xcb, 0x90, 0xed, 0xb0, 0xb9, 0x2a, 0x0f, + 0x74, 0xc6, 0x44, 0x65, 0xcc, 0x54, 0xc6, 0x86, 0x66, 0x08, 0x2a, 0xf9, 0x90, 0x7e, 0x0b, 0x2a, + 0xd8, 0x37, 0xc3, 0xec, 0x14, 0xf5, 0xc4, 0x14, 0xe7, 0x22, 0x45, 0x53, 0x9c, 0x88, 0x14, 0xf7, + 0x2b, 0x59, 0x26, 0x8f, 0x06, 0x61, 0xb6, 0x95, 0x98, 0x53, 0x39, 0xa9, 0xcf, 0x3b, 0x25, 0x66, + 0x0d, 0xb1, 0xe0, 0x73, 0x3a, 0x40, 0x00, 0x7f, 0x95, 0x0f, 0xbb, 0x5e, 0x7a, 0xca, 0x07, 0xf9, + 0x6d, 0x44, 0x5a, 0x12, 0x7e, 0x73, 0x08, 0x7b, 0xbe, 0x55, 0x7a, 0xa8, 0x26, 0xa3, 0x1e, 0x03, + 0x91, 0x91, 0x20, 0xc3, 0x8e, 0x3a, 0x99, 0x73, 0x9a, 0xb6, 0xed, 0xe8, 0x55, 0x36, 0xbc, 0xf4, + 0xba, 0x8e, 0x59, 0x21, 0xa2, 0x0a, 0x59, 0x27, 0xa1, 0x0a, 0x7d, 0xb3, 0x20, 0xa3, 0x82, 0x04, + 0xf8, 0x46, 0xc1, 0xb9, 0x52, 0xce, 0x90, 0x4d, 0x97, 0xdd, 0x93, 0xf8, 0xb3, 0xb3, 0x4b, 0x12, + 0x51, 0x7f, 0xb3, 0x49, 0x66, 0x86, 0xc0, 0x02, 0x9e, 0x0e, 0xe4, 0x95, 0xcc, 0xc8, 0x55, 0xc6, + 0xa6, 0x5a, 0xf8, 0x6f, 0xf3, 0x78, 0x2f, 0x5a, 0xe4, 0x7a, 0x47, 0xd5, 0x7a, 0x67, 0xbe, 0xdd, + 0xc7, 0x48, 0x4e, 0x22, 0xa0, 0x25, 0x7b, 0xe5, 0xf7, 0x86, 0x99, 0xd7, 0xef, 0x64, 0xc0, 0x08, + 0x7f, 0xd5, 0xe3, 0x9d, 0x2b, 0x4c, 0x39, 0x39, 0x89, 0x4e, 0xb5, 0x00, 0xc3, 0x60, 0x40, 0x3b, + 0xd5, 0x38, 0x4a, 0x3d, 0x8e, 0x18, 0x19, 0x17, 0x90, 0xe5, 0xcd, 0x61, 0xc4, 0x87, 0x56, 0xa7, + 0x7f, 0x42, 0xa7, 0x08, 0x04, 0xf9, 0x9d, 0xd8, 0x09, 0x7a, 0xed, 0x76, 0x87, 0x89, 0xd7, 0xef, + 0x76, 0x09, 0x27, 0x72, 0x54, 0x49, 0x3b, 0xd2, 0x03, 0xe8, 0x63, 0x00, 0x36, 0xde, 0x9d, 0xfd, + 0x83, 0xc8, 0x4c, 0x64, 0x88, 0x7a, 0xa7, 0x7d, 0x73, 0x1c, 0x92, 0xbd, 0x0f, 0xb0, 0x82, 0x74, + 0xb2, 0xfd, 0x82, 0x7a, 0xd5, 0x42, 0x3a, 0xc3, 0xdc, 0x2f, 0x2f, 0x87, 0x36, 0xc6, 0x29, 0x28, + 0xa8, 0xd3, 0xbb, 0xb8, 0x70, 0xfb, 0x17, 0xe7, 0x2f, 0x2f, 0x2e, 0x2e, 0xfb, 0x2f, 0xba, 0x57, + 0xbd, 0x17, 0x57, 0x1d, 0xf7, 0xfc, 0xfc, 0xe2, 0xea, 0xf2, 0xea, 0xa2, 0x7b, 0x8e, 0x9f, 0x17, + 0x57, 0xbd, 0xb3, 0xb3, 0x13, 0x78, 0x95, 0xbc, 0xd3, 0x77, 0xda, 0xbd, 0xee, 0xb9, 0x7b, 0x7e, + 0xd5, 0xef, 0x5d, 0xf6, 0xae, 0xae, 0xce, 0xae, 0xce, 0x5e, 0xbe, 0x7c, 0x79, 0xf2, 0x87, 0x0d, + 0x36, 0xe1, 0xaf, 0xfa, 0x5d, 0xcc, 0xc6, 0x7d, 0xd9, 0x7f, 0x71, 0xde, 0xbd, 0xba, 0xec, 0x5e, + 0x9e, 0x77, 0xbb, 0x2f, 0xce, 0xae, 0x2e, 0x4e, 0x20, 0x3c, 0x78, 0xa7, 0xd7, 0x75, 0x3a, 0xe8, + 0xc3, 0x7d, 0x71, 0x79, 0x75, 0x76, 0xd1, 0x7b, 0x79, 0xde, 0xeb, 0x77, 0xaf, 0xba, 0xfd, 0x76, + 0xaf, 0x77, 0xe1, 0x5e, 0xbe, 0xb8, 0xba, 0x3a, 0x3f, 0xef, 0xf6, 0xba, 0x97, 0x97, 0xbd, 0xf3, + 0x17, 0x00, 0x06, 0x09, 0xe3, 0x61, 0x74, 0xa8, 0xe7, 0x5e, 0xa1, 0x7e, 0xf7, 0xe2, 0xf2, 0xf2, + 0x25, 0x7e, 0xae, 0xce, 0xda, 0x6e, 0xaf, 0x77, 0xde, 0x07, 0xe4, 0x8b, 0xb3, 0x17, 0x00, 0x71, + 0x09, 0xd8, 0x09, 0x60, 0x83, 0x5f, 0x3a, 0xe7, 0x5d, 0x4c, 0xe1, 0xec, 0xf2, 0xf2, 0xac, 0x7b, + 0x75, 0x76, 0xd6, 0xef, 0xf5, 0x09, 0x0e, 0xe9, 0x71, 0xff, 0xac, 0x7f, 0x81, 0xc9, 0x5c, 0xa1, + 0xc3, 0x8b, 0x17, 0xbd, 0xde, 0xd5, 0x8b, 0xf3, 0xb6, 0xdb, 0x7d, 0x71, 0x75, 0x7e, 0x76, 0x7e, + 0x71, 0x49, 0xf5, 0x2f, 0xfb, 0x67, 0xe7, 0x7d, 0x39, 0xb7, 0x0b, 0x1a, 0xe2, 0x4b, 0xb7, 0xfb, + 0xf2, 0xa2, 0x7f, 0x75, 0x79, 0x76, 0x81, 0x5a, 0x17, 0x2f, 0xe4, 0xd4, 0x04, 0x8b, 0x0a, 0xa6, + 0x16, 0xc2, 0xc3, 0x60, 0xe2, 0x5f, 0xa8, 0xd8, 0xe0, 0xe1, 0x5f, 0x30, 0xf8, 0x1d, 0x16, 0xfe, + 0xbb, 0x94, 0xc4, 0x7b, 0xbd, 0x3a, 0x41, 0x25, 0x99, 0xe4, 0x5e, 0x2c, 0x54, 0x9f, 0x9f, 0x81, + 0x36, 0xcf, 0xf9, 0xf9, 0xc0, 0x3d, 0x7f, 0x55, 0x76, 0xf8, 0x40, 0xae, 0x63, 0xea, 0x37, 0xd6, + 0x19, 0xb3, 0x76, 0x31, 0xf7, 0xb2, 0x4d, 0x9e, 0x51, 0x0a, 0xb6, 0x4f, 0xdd, 0xec, 0xff, 0xf9, + 0xd9, 0x69, 0x34, 0x84, 0x5c, 0xf3, 0xa0, 0xc0, 0xab, 0x38, 0xc9, 0x86, 0x6d, 0x8b, 0x79, 0x78, + 0x3e, 0x70, 0x90, 0x6b, 0xd5, 0x2d, 0xac, 0x1d, 0x91, 0x47, 0x46, 0x8f, 0x1d, 0xb3, 0xd1, 0x03, + 0x9d, 0x19, 0x84, 0x15, 0xb8, 0xb2, 0x18, 0xcc, 0x73, 0xcf, 0x10, 0xc5, 0x52, 0xef, 0x4b, 0x2b, + 0x60, 0x9b, 0x58, 0x41, 0xeb, 0xa0, 0x50, 0xb0, 0x1d, 0xe6, 0x9d, 0x9b, 0xcd, 0x6a, 0xe6, 0x94, + 0xed, 0xe8, 0x1c, 0x92, 0x54, 0x2f, 0x09, 0xdb, 0x36, 0x3d, 0xb4, 0x95, 0x05, 0xa8, 0x70, 0xd2, + 0x56, 0xf4, 0x93, 0xd3, 0x4f, 0x80, 0x9f, 0x4d, 0xe5, 0xcf, 0x66, 0x32, 0x3c, 0x17, 0x8d, 0xb2, + 0xb1, 0x4f, 0x47, 0x2c, 0x8e, 0xe0, 0xee, 0x66, 0xe3, 0x81, 0x32, 0x76, 0x0a, 0x66, 0x47, 0xee, + 0x62, 0xbd, 0x8e, 0xdc, 0x9c, 0x7e, 0x56, 0xf4, 0x43, 0x31, 0xc4, 0x46, 0x47, 0xd2, 0x89, 0x8d, + 0x54, 0x94, 0x5a, 0xb7, 0xc4, 0xd0, 0xab, 0xc9, 0x07, 0x3b, 0xb3, 0x57, 0x38, 0x6d, 0x58, 0x42, + 0x3b, 0x53, 0xad, 0x35, 0x77, 0x0d, 0x0c, 0x16, 0xc3, 0x01, 0x58, 0x12, 0x8c, 0xbb, 0x78, 0x04, + 0x0e, 0x21, 0x78, 0x53, 0xc1, 0xca, 0x03, 0xb4, 0x0b, 0x84, 0xb7, 0xf8, 0x38, 0xc8, 0xfc, 0x31, + 0x90, 0xb9, 0x09, 0x52, 0x9a, 0x34, 0x8f, 0x43, 0x5b, 0x3d, 0x06, 0x6d, 0x65, 0x42, 0x0b, 0xe2, + 0xe5, 0x22, 0x78, 0x02, 0x5a, 0xf0, 0x08, 0xb4, 0x1a, 0xbb, 0x78, 0x63, 0x0f, 0x01, 0x60, 0x3b, + 0x15, 0x70, 0x65, 0xe5, 0x1c, 0x80, 0xde, 0xe0, 0x36, 0x5b, 0xdb, 0x59, 0x87, 0xd6, 0x88, 0x4c, + 0xb0, 0x26, 0x53, 0x15, 0x75, 0x47, 0x19, 0x9f, 0x3e, 0x3a, 0x07, 0x34, 0x76, 0xb3, 0x47, 0x00, + 0xd7, 0xb3, 0xc0, 0x1b, 0x49, 0x0e, 0x73, 0x16, 0xf3, 0x8c, 0xf3, 0xe4, 0x49, 0xf0, 0xf3, 0xe7, + 0x83, 0x9f, 0x37, 0xc0, 0x4f, 0x9e, 0x5a, 0x4e, 0x82, 0x3e, 0x79, 0x3e, 0xf4, 0x49, 0x03, 0x3a, + 0xf9, 0x97, 0xfb, 0xc5, 0x42, 0x6d, 0x91, 0xd9, 0x8a, 0x3b, 0x98, 0xb0, 0x53, 0xa4, 0x8d, 0x22, + 0x25, 0x5c, 0x6d, 0x1f, 0x7d, 0x43, 0x82, 0x74, 0x8e, 0x47, 0x44, 0x82, 0xf3, 0x1b, 0x9b, 0x62, + 0x63, 0x4f, 0x50, 0x45, 0x6d, 0x10, 0x91, 0xcb, 0x02, 0xd2, 0xa8, 0xce, 0x5e, 0x17, 0x6e, 0x30, + 0xec, 0x41, 0xf6, 0x04, 0xcd, 0x81, 0x3e, 0x83, 0x85, 0xc5, 0x0c, 0x41, 0x64, 0x94, 0x16, 0xa4, + 0xbb, 0x79, 0x8c, 0x5e, 0x4c, 0x01, 0x11, 0x3f, 0x8e, 0x06, 0xd8, 0x27, 0x0d, 0x34, 0x2c, 0xa4, + 0x39, 0x20, 0xd0, 0x10, 0xd7, 0xb2, 0x53, 0xa0, 0x21, 0x97, 0x68, 0x88, 0x9f, 0x8b, 0x06, 0x6d, + 0x79, 0x3c, 0x07, 0x0d, 0xc2, 0x99, 0x7f, 0x12, 0x0d, 0xa8, 0xf5, 0x4c, 0x34, 0x08, 0x7f, 0xc3, + 0x44, 0xb2, 0xf4, 0xaa, 0x1e, 0x53, 0x15, 0xa8, 0xa4, 0x0f, 0x53, 0x23, 0x49, 0xf1, 0x0b, 0x37, + 0x6b, 0x5b, 0xac, 0x45, 0x89, 0xb9, 0x4e, 0x4c, 0xda, 0x96, 0x63, 0x1d, 0xd0, 0x1c, 0x7a, 0xa7, + 0x80, 0xa2, 0x9e, 0x33, 0x98, 0x40, 0xfe, 0xef, 0x2e, 0xbf, 0xe3, 0x21, 0xc5, 0x88, 0x86, 0xd0, + 0xdc, 0x7f, 0xb7, 0xe9, 0xb8, 0x92, 0xd4, 0xc1, 0x99, 0x78, 0xeb, 0xab, 0x37, 0x2e, 0xde, 0xce, + 0xe4, 0x9b, 0xb0, 0x29, 0xbe, 0xad, 0x5a, 0x8a, 0xa3, 0x80, 0xcf, 0x6c, 0x8a, 0xae, 0xe9, 0xed, + 0x7c, 0xcc, 0x7a, 0x8e, 0xc3, 0x8e, 0x92, 0xc3, 0x5e, 0x22, 0x26, 0xd8, 0x52, 0xee, 0xae, 0x33, + 0xa8, 0xe8, 0x06, 0xf4, 0x1e, 0x81, 0xd8, 0x33, 0x50, 0x3a, 0x87, 0x2e, 0x2b, 0x37, 0x0d, 0x2a, + 0x7d, 0x16, 0x06, 0x03, 0x03, 0x85, 0xc1, 0x61, 0x1c, 0xca, 0x44, 0xb0, 0x1f, 0x99, 0xdb, 0xce, + 0x72, 0x4d, 0x24, 0xda, 0xc5, 0x7e, 0xe6, 0x32, 0x7e, 0x62, 0xb5, 0xff, 0x01, 0x1b, 0x22, 0x73, + 0xc4, 0x63, 0x2e, 0x1f, 0xfb, 0x24, 0x6d, 0x73, 0xf9, 0x80, 0x4a, 0xb5, 0x80, 0x5f, 0x36, 0x16, + 0xb0, 0xf7, 0xe2, 0xe4, 0x3f, 0xc5, 0x42, 0xd0, 0x22, 0xa8, 0x97, 0xfe, 0x98, 0xd6, 0x40, 0xbd, + 0x9c, 0x8d, 0xe5, 0xea, 0x7d, 0xfd, 0x97, 0x9b, 0x11, 0xd1, 0xc8, 0x97, 0x73, 0x05, 0xe3, 0xbb, + 0x06, 0x8c, 0x1a, 0x40, 0xdd, 0xda, 0xec, 0xf1, 0x8b, 0x26, 0xbd, 0x3c, 0x52, 0x1d, 0x3d, 0xe9, + 0x6e, 0x1e, 0xa5, 0x10, 0xe0, 0xfa, 0x19, 0x14, 0x42, 0x8e, 0xdc, 0xc6, 0x5c, 0x9f, 0x97, 0x7f, + 0x8d, 0x4a, 0x0e, 0xac, 0x10, 0x1e, 0xbf, 0x08, 0x3f, 0x13, 0x34, 0xe2, 0x1c, 0x64, 0xf1, 0x3a, + 0xe0, 0x62, 0x8a, 0x91, 0xa7, 0x07, 0x80, 0x4a, 0xba, 0x7f, 0x24, 0x05, 0x91, 0x2e, 0x34, 0x49, + 0xe6, 0x6d, 0xeb, 0x33, 0x99, 0x8a, 0x91, 0x7a, 0x3e, 0xab, 0xff, 0xb0, 0x8f, 0xd5, 0xe1, 0x2b, + 0x1a, 0xfc, 0x2a, 0x9c, 0xa3, 0x8a, 0x5f, 0xe9, 0x4d, 0x2c, 0xdd, 0xa7, 0x7b, 0x59, 0xfd, 0xa9, + 0xa6, 0xcf, 0x67, 0x75, 0x4c, 0x71, 0x6b, 0x21, 0x49, 0x36, 0x42, 0xa6, 0x47, 0x10, 0xe8, 0xf0, + 0xfb, 0xb7, 0x59, 0x9d, 0x24, 0xf1, 0xb3, 0x70, 0x18, 0x18, 0x48, 0x0c, 0x1e, 0xc3, 0xe2, 0xd3, + 0xcc, 0x6e, 0x44, 0xbd, 0x36, 0x1b, 0xd0, 0x68, 0xbc, 0xb1, 0x9d, 0x3a, 0x16, 0xfa, 0x5f, 0x06, + 0xda, 0xa1, 0x3c, 0x6e, 0xa3, 0x69, 0xb1, 0x10, 0x0a, 0x2a, 0xc7, 0xfc, 0x78, 0xf6, 0x3e, 0xfa, + 0x93, 0x93, 0xef, 0xe8, 0x4e, 0xd2, 0x0c, 0xaf, 0x3f, 0x8b, 0x62, 0x3a, 0xd8, 0x0a, 0x0b, 0x7a, + 0x1a, 0xf3, 0x1f, 0x83, 0x69, 0x54, 0xe6, 0x2c, 0x15, 0x17, 0xbe, 0xa6, 0x53, 0xda, 0x5f, 0x88, + 0xeb, 0xb6, 0x8b, 0x00, 0xae, 0x45, 0xee, 0x5b, 0x8b, 0x34, 0x8b, 0xfe, 0x4c, 0x93, 0x22, 0x88, + 0x2d, 0xa1, 0xa1, 0xe2, 0xe0, 0x3e, 0x2d, 0x8b, 0x2f, 0xa3, 0x8c, 0x8b, 0x31, 0xd4, 0x3e, 0xa9, + 0xda, 0x95, 0x4c, 0xfc, 0xcc, 0x21, 0x5f, 0xf9, 0x24, 0x6d, 0xf7, 0xe1, 0x7f, 0x5b, 0x61, 0x94, + 0x85, 0xf2, 0x5c, 0x6d, 0x3c, 0x7c, 0x90, 0x1d, 0x8b, 0x10, 0xa8, 0x57, 0xf5, 0xda, 0xde, 0x1a, + 0x90, 0x7e, 0x81, 0x95, 0xef, 0x45, 0x1d, 0x00, 0xea, 0x10, 0x20, 0x31, 0x39, 0x2c, 0xcd, 0x82, + 0x47, 0xf3, 0x45, 0x81, 0x44, 0x78, 0xe7, 0x45, 0x70, 0xa4, 0xc3, 0x7b, 0xf1, 0xc8, 0x44, 0x5b, + 0x4a, 0x76, 0xf8, 0x69, 0x7f, 0xe3, 0x35, 0xba, 0xca, 0x50, 0xa1, 0x09, 0x35, 0xd3, 0x0d, 0xa8, + 0xe8, 0xce, 0xeb, 0xb2, 0x7b, 0xfc, 0x93, 0x5d, 0xe4, 0xc3, 0xac, 0xee, 0x26, 0x1f, 0x46, 0x5e, + 0x66, 0x6c, 0xfa, 0xfd, 0xd3, 0x0c, 0x25, 0x13, 0xfa, 0x81, 0xee, 0x48, 0x21, 0x9e, 0x2e, 0x65, + 0xc8, 0x66, 0x40, 0x72, 0xe4, 0x1a, 0x1d, 0x02, 0xc7, 0xfa, 0x5d, 0x0c, 0x88, 0x76, 0x1e, 0x9e, + 0xc0, 0x2b, 0x50, 0x1f, 0x0f, 0x31, 0x38, 0x8f, 0xd3, 0x1c, 0xfd, 0xb4, 0xbd, 0x6f, 0x2b, 0x2e, + 0x11, 0xe1, 0x3a, 0x0a, 0x46, 0x08, 0xe1, 0xae, 0xe2, 0x3e, 0x7a, 0x09, 0xc5, 0x41, 0x48, 0x11, + 0x02, 0x12, 0xe6, 0xb0, 0xa7, 0x57, 0x8a, 0x22, 0x4f, 0x2e, 0x24, 0xb9, 0x28, 0x91, 0xb6, 0x6c, + 0x5d, 0x36, 0x37, 0xca, 0x84, 0x21, 0x5a, 0x17, 0x4d, 0x8c, 0x22, 0xe9, 0x25, 0xe8, 0x32, 0x8a, + 0x72, 0xc0, 0x47, 0x93, 0x45, 0xca, 0xc6, 0xf7, 0xe4, 0x75, 0xb6, 0x82, 0x82, 0x56, 0x1f, 0xf8, + 0xcd, 0x92, 0x67, 0xe4, 0xf9, 0x70, 0x41, 0x7f, 0x37, 0xc1, 0x9d, 0x91, 0x25, 0xe2, 0x78, 0x76, + 0xa2, 0x4c, 0xf9, 0x0e, 0x77, 0x4e, 0xcb, 0x13, 0x23, 0xda, 0x51, 0xc5, 0xc2, 0xba, 0xac, 0x0a, + 0x82, 0xa5, 0x52, 0x4a, 0xc8, 0x0e, 0x17, 0xc6, 0x28, 0x81, 0xe6, 0x53, 0xff, 0xcc, 0xbd, 0x94, + 0x25, 0x86, 0xb3, 0x55, 0x57, 0xc8, 0x65, 0x99, 0xf4, 0x9a, 0x3c, 0x75, 0xcf, 0xaf, 0x2e, 0x86, + 0xfb, 0x2b, 0x50, 0x2c, 0x62, 0xff, 0xa5, 0x1e, 0x44, 0x0c, 0x11, 0x14, 0xfa, 0x9d, 0xde, 0x49, + 0xd8, 0x2e, 0x41, 0xd7, 0x29, 0xec, 0xb6, 0x3b, 0x2f, 0x1e, 0xe6, 0x5e, 0x08, 0xca, 0x89, 0x87, + 0xa1, 0x97, 0x6f, 0x64, 0x50, 0x1d, 0x4d, 0x0b, 0xbf, 0x7f, 0x22, 0x46, 0xfa, 0xc3, 0x1b, 0x16, + 0x15, 0xfe, 0xbe, 0x2b, 0x51, 0x76, 0xf1, 0x59, 0xd2, 0x4e, 0x9c, 0xcf, 0xe0, 0xde, 0x67, 0xfb, + 0x6b, 0xc8, 0x69, 0xe7, 0x7f, 0x64, 0x85, 0x5d, 0x9c, 0x14, 0xed, 0xe4, 0x24, 0x71, 0x36, 0x35, + 0xe3, 0x8b, 0xa0, 0x7f, 0xbd, 0xc7, 0x20, 0xe8, 0x0f, 0x94, 0x5f, 0xb1, 0x54, 0xa7, 0xc9, 0x52, + 0x9d, 0x86, 0x08, 0x30, 0x2e, 0x74, 0x15, 0x66, 0xe4, 0x4d, 0x41, 0xd1, 0xb6, 0xad, 0xe4, 0x86, + 0x4a, 0xaa, 0x48, 0x76, 0x49, 0x9a, 0xa0, 0x88, 0x09, 0x13, 0x62, 0xc1, 0xc4, 0xe0, 0x91, 0xb4, + 0x68, 0x44, 0xa4, 0x09, 0xf2, 0x82, 0xf3, 0xf8, 0xf3, 0x64, 0x1e, 0x4b, 0x71, 0x24, 0x5e, 0x77, + 0x24, 0x08, 0x9d, 0xda, 0x0e, 0xe3, 0x34, 0xbc, 0xbe, 0x8d, 0x72, 0x21, 0x2f, 0xf8, 0x10, 0xb2, + 0xa4, 0x2d, 0x4e, 0xf3, 0x6f, 0xe5, 0x42, 0x07, 0x74, 0xa8, 0x84, 0x9a, 0x04, 0x49, 0x11, 0xed, + 0x69, 0xd6, 0x7b, 0xd9, 0xed, 0xa0, 0xe9, 0x6e, 0x29, 0x1d, 0x82, 0xf2, 0x29, 0xb6, 0x89, 0xb5, + 0xb1, 0x13, 0xa1, 0x4e, 0xea, 0xa1, 0xc7, 0x5b, 0x43, 0x17, 0x08, 0xa2, 0xc0, 0xa3, 0x1b, 0xde, + 0x81, 0x72, 0xf1, 0xb8, 0xa7, 0xc8, 0xab, 0xd8, 0x26, 0xa2, 0xc0, 0x15, 0xc9, 0xdd, 0xb2, 0x13, + 0x89, 0xcd, 0xc7, 0xd8, 0x17, 0x13, 0x17, 0xeb, 0x16, 0x14, 0x41, 0xd2, 0xb7, 0x3b, 0x11, 0xa3, + 0xc8, 0xa5, 0x8d, 0x3e, 0x4e, 0x13, 0xa8, 0x31, 0xf0, 0x74, 0x45, 0xc1, 0x59, 0x21, 0xce, 0x65, + 0xb3, 0xd4, 0x08, 0x1a, 0xd6, 0x7b, 0x5f, 0x76, 0x4c, 0x4e, 0x85, 0xf1, 0x0e, 0x62, 0x3c, 0x4d, + 0x4f, 0x72, 0xf3, 0xfc, 0x41, 0xbe, 0xbb, 0x78, 0x42, 0x0b, 0x4c, 0xd2, 0xbb, 0x6f, 0x85, 0x14, + 0x6a, 0x2e, 0x64, 0xa2, 0x45, 0x9a, 0xba, 0x79, 0x08, 0xc1, 0x96, 0xe8, 0x55, 0x3d, 0x24, 0x8a, + 0x8d, 0xde, 0xc2, 0x2d, 0xcc, 0xe4, 0x15, 0x66, 0x6e, 0x95, 0x5a, 0xc9, 0xb4, 0xf0, 0x4b, 0x91, + 0x94, 0x80, 0x99, 0x88, 0x16, 0xa7, 0xce, 0xa9, 0xcd, 0x49, 0x8e, 0x3b, 0xc4, 0xd6, 0x40, 0x82, + 0x1d, 0x89, 0xbc, 0xb2, 0xca, 0xd3, 0x23, 0x55, 0x53, 0xde, 0x62, 0xf6, 0x58, 0x32, 0x3b, 0x5b, + 0xed, 0x2d, 0x45, 0x59, 0x27, 0x97, 0x35, 0x8c, 0xe1, 0x06, 0x45, 0x7d, 0xaf, 0xb6, 0x3a, 0x45, + 0xe1, 0x77, 0x07, 0xbc, 0x3e, 0xc1, 0xc2, 0xf5, 0x61, 0x8b, 0x52, 0x9c, 0x93, 0x70, 0xef, 0xb0, + 0x9a, 0xa9, 0x4c, 0xde, 0x77, 0xc4, 0xed, 0xcf, 0x9a, 0x05, 0xcb, 0x93, 0xb2, 0x9d, 0x62, 0xb0, + 0xaf, 0x9a, 0xf8, 0xd1, 0xe7, 0x04, 0xb9, 0x79, 0x4c, 0xcf, 0xb8, 0x37, 0x63, 0x70, 0xe9, 0x03, + 0x96, 0x05, 0xfa, 0x18, 0x38, 0x86, 0x83, 0x2f, 0x18, 0xa8, 0x83, 0x1c, 0x8b, 0xc9, 0xb4, 0xd7, + 0xe0, 0x2a, 0xba, 0x1f, 0xd3, 0xca, 0x53, 0xb2, 0x51, 0x84, 0x57, 0x20, 0x4a, 0x5e, 0xd3, 0xf6, + 0x95, 0x31, 0xc3, 0x45, 0xb1, 0x7d, 0xa8, 0xa6, 0x6d, 0x75, 0xe6, 0x84, 0x77, 0x3a, 0x45, 0x68, + 0xb5, 0x13, 0x69, 0x72, 0x44, 0xc0, 0xd7, 0xd2, 0xde, 0x13, 0xcb, 0x1b, 0x75, 0xeb, 0x6b, 0xe0, + 0xb0, 0xab, 0xda, 0x56, 0x4b, 0xb4, 0xf9, 0xcc, 0xda, 0x38, 0xee, 0xc7, 0x14, 0x88, 0xb5, 0x98, + 0xe5, 0x08, 0xcb, 0xa4, 0xbe, 0x39, 0x60, 0xcc, 0x67, 0x77, 0x4f, 0x70, 0x08, 0x95, 0x2e, 0x6e, + 0xf6, 0x08, 0x41, 0x38, 0x2d, 0xfc, 0x91, 0x75, 0x93, 0x96, 0xb9, 0xb8, 0x9e, 0x00, 0x58, 0x45, + 0x5a, 0x86, 0x0b, 0x95, 0x16, 0xf9, 0xe5, 0x52, 0xe7, 0xf2, 0x64, 0x6a, 0x8d, 0xd9, 0xdc, 0x10, + 0x84, 0x89, 0xb1, 0x13, 0x2a, 0x3a, 0x4d, 0xd4, 0x29, 0x45, 0x0a, 0xfa, 0x55, 0x47, 0x34, 0xa2, + 0xa9, 0x2f, 0xd7, 0x28, 0xc3, 0x9a, 0xa4, 0x37, 0x36, 0xdd, 0x1f, 0xae, 0xf7, 0x5b, 0xcf, 0x2e, + 0x1d, 0x3a, 0x62, 0x2f, 0xc7, 0x69, 0x5f, 0xd4, 0x47, 0xcf, 0xc4, 0xc9, 0xb6, 0xdf, 0x7f, 0x17, + 0x01, 0xd4, 0xdf, 0x7f, 0xf7, 0x21, 0x09, 0x6c, 0x33, 0x9e, 0xaa, 0xcf, 0xf2, 0xc8, 0x63, 0x99, + 0xb6, 0xb8, 0x00, 0x5f, 0x15, 0x3a, 0x4e, 0xe3, 0x54, 0x7f, 0xe1, 0xec, 0x9e, 0x0b, 0x39, 0x10, + 0x37, 0x95, 0x74, 0x23, 0xee, 0xc1, 0xc8, 0xf3, 0x1f, 0x62, 0xc7, 0x0c, 0x1c, 0xfb, 0x90, 0x26, + 0x6f, 0x09, 0x1f, 0x5f, 0xa6, 0xb7, 0x09, 0x58, 0x12, 0x26, 0x01, 0xe1, 0x24, 0x17, 0x86, 0x0b, + 0xe9, 0x87, 0xa7, 0x4d, 0x05, 0x7d, 0xfc, 0x4f, 0x68, 0xd6, 0x6c, 0x1e, 0x25, 0x43, 0x6d, 0x02, + 0xbc, 0x15, 0xaf, 0x9e, 0xce, 0x07, 0x97, 0x3e, 0x60, 0x05, 0xb2, 0x59, 0x9c, 0xde, 0x7a, 0xd6, + 0x2a, 0xca, 0xa3, 0x09, 0x4c, 0x33, 0x36, 0x8d, 0xf2, 0x25, 0x60, 0x7a, 0xd9, 0xd0, 0x8a, 0x92, + 0x38, 0x4a, 0x78, 0x67, 0x42, 0x22, 0xd3, 0xa2, 0x50, 0x14, 0x3d, 0xab, 0xdb, 0xe3, 0x5d, 0xbd, + 0x75, 0x2e, 0x4e, 0x9c, 0xa2, 0xba, 0x04, 0xfb, 0x1d, 0x9f, 0x15, 0xa8, 0x2c, 0x5f, 0x3e, 0xa4, + 0x4b, 0x6b, 0xec, 0x73, 0x87, 0x2d, 0xec, 0x77, 0xf2, 0xb8, 0x5b, 0x7d, 0x91, 0xdc, 0xd6, 0xeb, + 0x06, 0xc6, 0x2c, 0xe5, 0x2e, 0xa4, 0x79, 0x98, 0xa9, 0x42, 0xd0, 0x01, 0x1c, 0x32, 0x75, 0xf8, + 0x48, 0x1e, 0xb6, 0x4c, 0x93, 0x37, 0xc9, 0xb2, 0x2c, 0xc8, 0xde, 0xa5, 0x4c, 0x3a, 0xba, 0x46, + 0xa7, 0x51, 0xbe, 0x20, 0x79, 0x89, 0x15, 0x7f, 0x1d, 0x13, 0x23, 0xfc, 0x08, 0x14, 0xc1, 0x62, + 0xa6, 0x7e, 0xc4, 0x95, 0x96, 0x2f, 0xa5, 0xba, 0x47, 0x96, 0x36, 0x4f, 0x24, 0x05, 0xe6, 0x43, + 0x1a, 0x25, 0xd9, 0x6a, 0xd3, 0x0f, 0x32, 0x83, 0xae, 0xe9, 0x92, 0x21, 0xc7, 0xdd, 0x50, 0x40, + 0xfa, 0xaf, 0x0e, 0x49, 0x8e, 0x19, 0x89, 0x37, 0x9d, 0xf5, 0x4f, 0x64, 0x15, 0xe9, 0xb2, 0xb6, + 0xbb, 0x8a, 0xda, 0xe2, 0x12, 0x24, 0x3e, 0xc5, 0x92, 0x5a, 0x9e, 0x78, 0xaf, 0x17, 0xd5, 0xf2, + 0x8e, 0x7a, 0x74, 0x1a, 0x57, 0xdc, 0xf6, 0xa2, 0xcb, 0xdb, 0xd3, 0x82, 0x4e, 0x29, 0x7d, 0x15, + 0x00, 0x84, 0x39, 0xef, 0xea, 0x7c, 0xf0, 0xce, 0x8d, 0x2b, 0xe2, 0xfb, 0x87, 0x25, 0x9d, 0x35, + 0x5b, 0x71, 0x8a, 0xab, 0x3b, 0x1b, 0x73, 0xf7, 0xce, 0xe0, 0x3a, 0xa3, 0x6b, 0xf9, 0x2e, 0x3b, + 0xed, 0xed, 0x56, 0x07, 0x33, 0x1a, 0x95, 0x89, 0x21, 0x55, 0xdd, 0xbe, 0xc3, 0x9e, 0x1a, 0xdf, + 0xbe, 0x1b, 0x5e, 0x7b, 0x86, 0x48, 0xdb, 0xd7, 0x1b, 0xfb, 0x8d, 0xe1, 0xbe, 0x4c, 0x1a, 0x1a, + 0x4c, 0xc6, 0x19, 0xcb, 0x2c, 0x26, 0x7b, 0x96, 0x68, 0x5a, 0x53, 0xdd, 0xc2, 0x16, 0x27, 0xc8, + 0xd9, 0x43, 0x75, 0x93, 0xcf, 0xb3, 0xde, 0x64, 0xe9, 0xb7, 0x82, 0x5e, 0x5a, 0x55, 0xaa, 0xd3, + 0x21, 0x61, 0x29, 0xc8, 0x53, 0x08, 0x33, 0x3a, 0x61, 0x9c, 0x7f, 0x8e, 0x9e, 0x56, 0x7c, 0x68, + 0x19, 0xb5, 0x74, 0x26, 0x28, 0xd6, 0x82, 0x96, 0xa5, 0x3b, 0x7e, 0xde, 0x83, 0xd5, 0xb9, 0xe5, + 0x93, 0xeb, 0xa8, 0xe8, 0x14, 0xc1, 0xb2, 0xb3, 0x80, 0x1a, 0x8b, 0x49, 0x95, 0x75, 0xc4, 0x99, + 0x01, 0x4b, 0x46, 0x79, 0xa0, 0x74, 0x5a, 0xea, 0x7f, 0x67, 0x60, 0xb1, 0x02, 0x42, 0x27, 0xa7, + 0x4b, 0x6a, 0x9e, 0x25, 0x92, 0x31, 0x09, 0x0b, 0xab, 0x4d, 0x32, 0xd2, 0xbd, 0x73, 0xa4, 0xf0, + 0x15, 0x2f, 0xf7, 0x42, 0x8a, 0xc2, 0xb9, 0x88, 0x63, 0xb9, 0x75, 0xa1, 0x1a, 0x88, 0x0b, 0x6e, + 0x0c, 0xf4, 0xe3, 0xa1, 0x1a, 0xd9, 0x23, 0x44, 0x5d, 0x3a, 0x2d, 0x75, 0x36, 0x5e, 0xfa, 0x30, + 0xfc, 0xb4, 0xe6, 0xd6, 0xaf, 0xcb, 0x34, 0x8f, 0x08, 0x81, 0x30, 0x6f, 0x26, 0x50, 0x13, 0x65, + 0x01, 0x1e, 0xde, 0x65, 0x6b, 0xe0, 0x1b, 0xf6, 0x11, 0x90, 0x87, 0xe5, 0xb5, 0x58, 0xe3, 0x80, + 0xa2, 0xfd, 0x20, 0x6e, 0x98, 0x7d, 0x4b, 0x5f, 0x95, 0x68, 0xb8, 0x9c, 0xf0, 0x61, 0x8b, 0xf5, + 0xba, 0x5a, 0x59, 0xb0, 0x93, 0x3a, 0x96, 0x9e, 0x7f, 0x71, 0xff, 0x41, 0xde, 0xcf, 0xb3, 0x2d, + 0xe2, 0x34, 0xcb, 0x51, 0x77, 0x4c, 0x6f, 0x81, 0xf0, 0xf4, 0xd6, 0x4d, 0x82, 0x55, 0x34, 0x0f, + 0xe8, 0x40, 0x18, 0x7a, 0xcb, 0x3e, 0x9f, 0xd3, 0x8d, 0xfb, 0xc8, 0x3f, 0xfd, 0xcd, 0xb6, 0x87, + 0x47, 0x21, 0x1c, 0xf0, 0x1b, 0xbe, 0x06, 0xfa, 0xb3, 0x34, 0x9a, 0x3a, 0xae, 0x73, 0x92, 0x07, + 0xb3, 0x20, 0x8b, 0x4e, 0x23, 0x7d, 0x25, 0x94, 0x3e, 0x7e, 0x12, 0xfd, 0xb0, 0x48, 0x13, 0xbe, + 0x8e, 0x7e, 0x48, 0xa7, 0xf8, 0x09, 0xa6, 0x46, 0x29, 0xd7, 0xbd, 0xd0, 0xe1, 0x7e, 0xc3, 0x64, + 0xb4, 0xa3, 0xf5, 0x3a, 0x03, 0x03, 0x41, 0x2c, 0xe9, 0x7b, 0xbb, 0x43, 0x75, 0xd6, 0x0e, 0x0b, + 0xd7, 0xb6, 0x4e, 0x4f, 0xad, 0x36, 0xe4, 0x4a, 0x9a, 0x17, 0x78, 0x2c, 0xa1, 0x28, 0x12, 0x8c, + 0xbf, 0x4d, 0xc7, 0x1b, 0x83, 0x2c, 0x5c, 0xb4, 0xa1, 0xaf, 0x36, 0x76, 0xa4, 0xa5, 0x10, 0x9d, + 0x3c, 0x64, 0x47, 0x12, 0x63, 0xca, 0x67, 0x05, 0xc5, 0xdd, 0x79, 0x19, 0x99, 0xb7, 0x9c, 0x65, + 0x10, 0xcd, 0x33, 0x2c, 0xa1, 0x67, 0x25, 0x18, 0xa6, 0x25, 0x6e, 0x85, 0xa6, 0xd7, 0xbc, 0x23, + 0x16, 0xca, 0xf2, 0xfa, 0x4c, 0xbe, 0x7b, 0xd6, 0x27, 0xdd, 0x6e, 0x17, 0x3a, 0xf4, 0x71, 0x50, + 0x9d, 0xbe, 0x04, 0x06, 0xce, 0xc2, 0xe3, 0x11, 0x60, 0xb3, 0xd9, 0x0c, 0xc0, 0x0c, 0x0b, 0x75, + 0x59, 0xd8, 0x5c, 0xc7, 0x1b, 0xb8, 0x1b, 0x08, 0x4a, 0x7e, 0x43, 0x34, 0x0f, 0x51, 0x55, 0x9d, + 0xed, 0xa6, 0xc3, 0x41, 0xaf, 0x20, 0xa5, 0x88, 0x7a, 0xf3, 0x1a, 0x33, 0xf2, 0x7d, 0x54, 0x8c, + 0x3d, 0x95, 0x66, 0x09, 0x7c, 0x58, 0xfa, 0xf6, 0x01, 0x1c, 0x48, 0x69, 0xc6, 0xd1, 0x07, 0x17, + 0x94, 0x19, 0x47, 0x5f, 0x5d, 0x50, 0x66, 0x5c, 0xee, 0xff, 0xd3, 0x86, 0xe7, 0x46, 0x27, 0x29, + 0x0e, 0xba, 0xa1, 0x7f, 0xcd, 0x0b, 0x1d, 0x8d, 0xba, 0x4c, 0x04, 0x93, 0xf1, 0x68, 0x67, 0x22, + 0x02, 0x4a, 0x4f, 0x11, 0x44, 0x1e, 0xb3, 0x11, 0xd9, 0x89, 0xa2, 0x98, 0x36, 0xb8, 0x77, 0x2b, + 0x8c, 0xf7, 0xf8, 0xae, 0x15, 0x44, 0xaa, 0x46, 0xa1, 0xd5, 0xee, 0x7e, 0x88, 0xba, 0x58, 0x43, + 0x6e, 0x40, 0x34, 0x3d, 0xde, 0x1d, 0x80, 0x7a, 0x1c, 0xdd, 0xfd, 0x00, 0x75, 0x31, 0xc5, 0x9b, + 0x2b, 0x80, 0x0d, 0x3f, 0x59, 0x43, 0x0c, 0x76, 0xda, 0xa8, 0x81, 0x3c, 0x05, 0x7a, 0x67, 0xbc, + 0xda, 0xd7, 0xae, 0x4d, 0xdc, 0xd1, 0x58, 0x7a, 0xd8, 0x4d, 0xa7, 0x3b, 0xdd, 0x71, 0xba, 0xb1, + 0xbc, 0x69, 0xa7, 0xc4, 0xca, 0x96, 0x74, 0x78, 0x64, 0x90, 0xbf, 0x4a, 0x07, 0x79, 0xdb, 0x8f, + 0x4f, 0x5f, 0xb2, 0xb0, 0xed, 0xf7, 0xd4, 0xa5, 0x4e, 0xff, 0xa7, 0xc6, 0xfe, 0x1a, 0xcc, 0x95, + 0x99, 0x1f, 0xb8, 0x74, 0x01, 0x31, 0x70, 0xe7, 0x6c, 0x85, 0xdf, 0xc9, 0x80, 0xcb, 0x73, 0xb3, + 0xa3, 0x5e, 0xdf, 0xbd, 0x38, 0x09, 0xf5, 0xb8, 0x67, 0x62, 0xb4, 0x0b, 0xf1, 0xbb, 0x12, 0x23, + 0xae, 0xcf, 0x72, 0xee, 0x78, 0xed, 0x02, 0x2f, 0x9f, 0xcc, 0xc0, 0x37, 0x34, 0xf9, 0x4b, 0xf7, + 0xf2, 0xf2, 0x92, 0xde, 0x67, 0xe2, 0xfd, 0xec, 0xcc, 0x3d, 0x3b, 0x3b, 0xc3, 0x7b, 0x57, 0xbe, + 0x5f, 0x74, 0x45, 0x7a, 0x46, 0xe9, 0x4b, 0x5d, 0xb7, 0xdb, 0x15, 0xef, 0x2f, 0x75, 0xdd, 0x99, + 0x7c, 0x17, 0x88, 0x94, 0x80, 0xc7, 0xbb, 0x11, 0x01, 0x61, 0xa6, 0x62, 0x8a, 0xd5, 0x76, 0x0f, + 0x85, 0xfe, 0xc4, 0x56, 0x38, 0x9d, 0xb3, 0xa3, 0x48, 0x80, 0xc3, 0xe6, 0x7b, 0xcb, 0x09, 0xae, + 0xaa, 0x31, 0x30, 0xa6, 0x20, 0x63, 0xa6, 0x53, 0x57, 0x4e, 0x7b, 0x2a, 0x83, 0x7d, 0x94, 0x90, + 0x11, 0x53, 0x3d, 0x20, 0x59, 0x6d, 0xae, 0xaa, 0xcd, 0x75, 0xb5, 0xb9, 0xae, 0x36, 0xde, 0x1b, + 0xa0, 0xa0, 0xd1, 0x4e, 0xf6, 0x8e, 0x26, 0x12, 0x1b, 0xf7, 0x00, 0xdd, 0x1c, 0x8d, 0x10, 0x44, + 0xcd, 0x3e, 0x27, 0xaa, 0xcf, 0x89, 0xee, 0x73, 0x52, 0xf5, 0xb9, 0xd9, 0x08, 0x0e, 0xaf, 0x75, + 0xee, 0xbc, 0xd8, 0xd6, 0x19, 0x1b, 0xc6, 0xd9, 0x83, 0xb2, 0xba, 0xbc, 0xbd, 0x87, 0xcf, 0xf6, + 0x1f, 0x49, 0x83, 0xfc, 0x16, 0x91, 0x32, 0xb2, 0xa5, 0x9a, 0x41, 0x31, 0x6e, 0x06, 0xc5, 0x06, + 0x4f, 0x5b, 0xba, 0xc3, 0x4e, 0xef, 0x24, 0x6a, 0xc3, 0x15, 0x83, 0x04, 0x4d, 0x21, 0x70, 0x2a, + 0x7f, 0xb0, 0x76, 0xab, 0x49, 0x4a, 0x75, 0x1d, 0xe5, 0x90, 0x6f, 0x39, 0xd0, 0xe5, 0x49, 0xe6, + 0x3c, 0x22, 0x9e, 0xcc, 0xc0, 0x55, 0xbe, 0xc3, 0x43, 0x1a, 0x33, 0x79, 0x3b, 0x16, 0xa1, 0x21, + 0x7b, 0x27, 0x8c, 0x95, 0x3b, 0xfb, 0x62, 0x63, 0xa2, 0xf6, 0x6e, 0xa0, 0xea, 0xcc, 0xbd, 0x3c, + 0x89, 0x07, 0xb5, 0x58, 0x34, 0xc4, 0xcf, 0x9e, 0xb8, 0x1c, 0x05, 0xde, 0x50, 0x7d, 0x2b, 0x58, + 0x15, 0x8b, 0x45, 0x23, 0x41, 0x4c, 0x5c, 0x28, 0xbe, 0x58, 0x02, 0xfb, 0x07, 0xab, 0x23, 0x0d, + 0x1c, 0x3a, 0xc1, 0x5e, 0x8e, 0xb8, 0x31, 0xd1, 0xb1, 0x8f, 0xc5, 0xd0, 0x86, 0x33, 0x7d, 0xf6, + 0xc6, 0x85, 0x3e, 0xde, 0x6c, 0x9c, 0x9d, 0x33, 0x26, 0xb5, 0xe5, 0x35, 0x8d, 0x56, 0xd6, 0x2e, + 0x21, 0x24, 0xdb, 0xc6, 0xd8, 0x7b, 0xd1, 0x87, 0xa5, 0xcc, 0xa9, 0x9d, 0xfa, 0x0f, 0xb5, 0xc9, + 0x92, 0x71, 0x58, 0x4a, 0x64, 0x7e, 0xd5, 0x36, 0x4e, 0x66, 0x5a, 0x38, 0xa9, 0xa3, 0x7c, 0x62, + 0xe9, 0x62, 0x53, 0x56, 0x8c, 0xac, 0x20, 0xbc, 0x9e, 0x8b, 0x95, 0xf4, 0x2c, 0x38, 0x60, 0x51, + 0x58, 0xbb, 0xba, 0x9f, 0x84, 0x61, 0xd8, 0xea, 0x5f, 0x7c, 0xc6, 0x5a, 0xa4, 0x2d, 0x5b, 0xdd, + 0xd6, 0x45, 0x97, 0xd2, 0x94, 0xdb, 0x6d, 0xbd, 0xa8, 0xf3, 0x61, 0x83, 0xd5, 0x50, 0x28, 0x34, + 0xee, 0x59, 0x2f, 0xe1, 0x67, 0xbf, 0x24, 0x8f, 0x95, 0x0e, 0x92, 0x90, 0xc7, 0x22, 0xa7, 0xbb, + 0x77, 0x6e, 0xdf, 0xa8, 0xfe, 0x9e, 0x33, 0xc7, 0xda, 0x2c, 0x23, 0xf3, 0xae, 0x2b, 0x2d, 0x3b, + 0x1d, 0x5f, 0xb6, 0x40, 0x0f, 0x9f, 0x59, 0x7a, 0xc6, 0xea, 0xed, 0xf1, 0x29, 0xc3, 0xd7, 0xb7, + 0xc8, 0x2f, 0x0b, 0x80, 0xe1, 0x2d, 0x1e, 0xe1, 0x3b, 0x3c, 0x02, 0x13, 0xbe, 0x85, 0x6e, 0x61, + 0xb5, 0x22, 0x91, 0x51, 0x27, 0x16, 0x0b, 0x61, 0xe5, 0xcc, 0xc8, 0x72, 0x90, 0xd3, 0x9c, 0x14, + 0xec, 0x41, 0x9b, 0xc1, 0x1e, 0xa8, 0x44, 0x18, 0xcd, 0x9e, 0xba, 0x41, 0x08, 0xfb, 0x84, 0x37, + 0x03, 0xf2, 0xb0, 0xc9, 0xab, 0xac, 0xf7, 0xab, 0xb9, 0xfa, 0x34, 0x99, 0xce, 0x11, 0xb7, 0xa2, + 0xd9, 0x9d, 0x97, 0xbb, 0x77, 0xec, 0x1e, 0xbf, 0xf7, 0x64, 0xaf, 0x18, 0x16, 0xcb, 0xbd, 0x61, + 0xb1, 0xe4, 0x85, 0x34, 0x37, 0x8a, 0x2a, 0x6a, 0x54, 0xd4, 0x51, 0xa3, 0xa2, 0x8e, 0x1a, 0x69, + 0x5b, 0x85, 0x0e, 0x37, 0x2a, 0xca, 0x86, 0xad, 0xd2, 0xb4, 0x77, 0xc2, 0xda, 0xde, 0x21, 0x1f, + 0xfd, 0xb0, 0xbd, 0x93, 0xd4, 0xf6, 0x4e, 0xb0, 0x37, 0xd6, 0x3a, 0x52, 0x0a, 0x68, 0x36, 0xdb, + 0x92, 0x97, 0x30, 0x6c, 0x4a, 0x0e, 0x89, 0x49, 0x6b, 0xc4, 0x40, 0x56, 0x24, 0x28, 0x59, 0xad, + 0xc5, 0xbb, 0x4c, 0xfc, 0x57, 0x4b, 0x76, 0x29, 0x72, 0x21, 0x4c, 0x51, 0x44, 0x77, 0x79, 0xfd, + 0x78, 0x27, 0xfa, 0xa2, 0x38, 0x6b, 0x9f, 0x19, 0x25, 0x43, 0x6a, 0x07, 0xf7, 0x13, 0x32, 0xbd, + 0x5d, 0x23, 0xcd, 0xad, 0xd8, 0x27, 0xed, 0x9d, 0x89, 0xbd, 0x91, 0x90, 0x0e, 0xf6, 0x55, 0xc1, + 0x6a, 0x8a, 0x4c, 0xb7, 0x53, 0x79, 0x90, 0xf2, 0x24, 0xa7, 0xf8, 0x74, 0xdb, 0x0e, 0x3b, 0xa9, + 0x3c, 0x4f, 0x79, 0x02, 0x52, 0x10, 0x52, 0xc3, 0xd9, 0xfc, 0xeb, 0xc2, 0x3e, 0x9a, 0xd9, 0x74, + 0x5c, 0xa1, 0x12, 0xfb, 0x41, 0x21, 0xe5, 0x10, 0x9b, 0xe9, 0x2b, 0x60, 0x7e, 0x36, 0x14, 0x67, + 0xd3, 0x25, 0x8d, 0x89, 0xd8, 0x15, 0xd8, 0xdc, 0xb3, 0xf3, 0x6d, 0x01, 0x15, 0x8a, 0x73, 0x11, + 0xa1, 0x02, 0xe0, 0xec, 0x8a, 0x27, 0x75, 0xc2, 0x4b, 0x7c, 0xee, 0xe2, 0xf8, 0xf8, 0x49, 0x00, + 0x24, 0x0a, 0xff, 0x1d, 0x02, 0xee, 0x0b, 0x0a, 0xd6, 0x1d, 0xe2, 0xfc, 0xfd, 0x92, 0xac, 0x34, + 0x3d, 0xb5, 0x4a, 0xec, 0x3d, 0x2e, 0x6b, 0x9e, 0xd1, 0xcd, 0xb3, 0xe4, 0x47, 0xaa, 0x19, 0x9e, + 0x3d, 0x1c, 0x92, 0x23, 0x90, 0x0e, 0x93, 0xb4, 0x28, 0x52, 0x38, 0xa1, 0x01, 0xed, 0x89, 0x4b, + 0x8b, 0x6d, 0xab, 0x86, 0x92, 0x1f, 0xc1, 0xa8, 0x3b, 0x26, 0xa6, 0x86, 0x93, 0x4a, 0x1e, 0x4b, + 0x41, 0xb7, 0xf2, 0x77, 0x89, 0xba, 0xc0, 0xba, 0x87, 0x1b, 0xe7, 0x10, 0xcd, 0x6f, 0xcb, 0x9d, + 0x9e, 0x92, 0x3b, 0xca, 0x69, 0xd7, 0x1e, 0x51, 0xb5, 0xe5, 0xf9, 0xaf, 0x0a, 0xa2, 0xd9, 0x48, + 0x41, 0x1c, 0x0b, 0x89, 0x64, 0xbc, 0xde, 0x6f, 0x1e, 0x93, 0x7f, 0xa1, 0x39, 0x8e, 0x70, 0x6b, + 0x1c, 0x52, 0xf2, 0x7c, 0x6b, 0x8c, 0x66, 0xbd, 0xfe, 0x17, 0x47, 0x17, 0x36, 0x47, 0x17, 0x1a, + 0xa3, 0x23, 0x1c, 0x4f, 0x9a, 0x1f, 0x9f, 0xf4, 0x1f, 0x4c, 0xb7, 0x53, 0x6f, 0x55, 0x66, 0xde, + 0x4b, 0xd1, 0x9f, 0x08, 0xb0, 0xc9, 0x8e, 0x1e, 0x54, 0x19, 0xfc, 0xfe, 0xe5, 0x16, 0x88, 0x5d, + 0x52, 0x32, 0x36, 0x79, 0x3d, 0x38, 0xf4, 0xa4, 0xb9, 0x2b, 0x2b, 0xa1, 0x3a, 0x51, 0xd8, 0x34, + 0x80, 0xbc, 0x7e, 0x1f, 0x32, 0xae, 0x69, 0xf3, 0x78, 0xbd, 0x1e, 0x3f, 0xdb, 0x18, 0x21, 0x9d, + 0xdb, 0x4a, 0xd8, 0x8b, 0xcd, 0x13, 0xee, 0x54, 0x82, 0xbe, 0x12, 0xe9, 0xa9, 0x6f, 0xf3, 0xc6, + 0x1e, 0x92, 0x96, 0xf0, 0x4e, 0x2d, 0xf8, 0x69, 0xf7, 0x53, 0x48, 0x39, 0xfa, 0x0e, 0xd9, 0x5f, + 0x10, 0xa1, 0xda, 0x13, 0x7d, 0x64, 0xdf, 0x86, 0xf6, 0x24, 0x7a, 0x2f, 0xbb, 0x6d, 0xb1, 0x59, + 0x43, 0x06, 0xf4, 0x51, 0xd7, 0x71, 0x4e, 0xec, 0xa4, 0x38, 0x15, 0x27, 0x0b, 0x72, 0x48, 0x5a, + 0x29, 0x39, 0x53, 0x74, 0xde, 0xdc, 0x7a, 0xda, 0xde, 0xb9, 0x82, 0x39, 0xea, 0xf5, 0x6a, 0xa1, + 0xcb, 0xdb, 0xb9, 0xdc, 0xf7, 0x0b, 0xd3, 0x1c, 0x0a, 0xfc, 0x84, 0xb6, 0x06, 0x4b, 0x9d, 0x97, + 0xd3, 0x46, 0x06, 0xf2, 0x2a, 0xe1, 0x0b, 0x5d, 0xf4, 0xbf, 0x67, 0x31, 0x58, 0x17, 0x32, 0x6b, + 0xdf, 0x16, 0xc3, 0xe6, 0x7f, 0x41, 0xcc, 0x23, 0x75, 0xb4, 0xdf, 0xe2, 0xdf, 0x8f, 0xe9, 0xed, + 0xcd, 0xc4, 0x56, 0x06, 0x5a, 0xe8, 0x24, 0xac, 0xec, 0x44, 0xce, 0xab, 0x54, 0x5b, 0xad, 0x6a, + 0xfb, 0xe4, 0xa8, 0x37, 0xd8, 0x52, 0x23, 0xa1, 0xa1, 0x46, 0xd2, 0x7d, 0x6a, 0x24, 0xdd, 0xd6, + 0x02, 0x82, 0x5a, 0xfc, 0xf8, 0xd9, 0x6a, 0xe4, 0x29, 0x00, 0xff, 0x2e, 0x35, 0xf2, 0x33, 0x11, + 0xd0, 0x5f, 0x55, 0x24, 0xd9, 0xbf, 0xa0, 0x48, 0x44, 0x47, 0xdf, 0x12, 0x17, 0x1f, 0xe8, 0x2b, + 0x60, 0x0f, 0x46, 0x08, 0x33, 0x4b, 0xe9, 0xf6, 0xe6, 0x2f, 0xb0, 0x79, 0xc0, 0x9c, 0xf5, 0x76, + 0x6d, 0xfb, 0xaa, 0x0b, 0xbd, 0x30, 0xe5, 0xf3, 0x86, 0xf1, 0xbc, 0xbd, 0x23, 0xbb, 0xcd, 0x16, + 0xdb, 0x16, 0x3a, 0x1c, 0x1c, 0xd6, 0xba, 0xe7, 0x71, 0x9c, 0xde, 0xb2, 0x56, 0x1c, 0xdd, 0x70, + 0xd6, 0x0a, 0xfe, 0x28, 0x03, 0xd6, 0x22, 0x7f, 0x87, 0xb5, 0x6e, 0x02, 0x0a, 0x17, 0xe2, 0x15, + 0xf5, 0x1c, 0xcb, 0xdb, 0xdb, 0xba, 0xaa, 0x23, 0x9b, 0xc8, 0xe6, 0x12, 0x94, 0x06, 0x2c, 0x5a, + 0x6f, 0x9e, 0x42, 0xc9, 0x7b, 0xe3, 0xfc, 0xf5, 0x61, 0xcc, 0x98, 0x73, 0xa5, 0x71, 0x04, 0x71, + 0x3d, 0x1e, 0x19, 0xd1, 0x6b, 0x01, 0x05, 0x39, 0xcf, 0x8b, 0x4e, 0x0e, 0xb1, 0x29, 0x5d, 0x0c, + 0xd6, 0x12, 0x08, 0x55, 0xc2, 0x4c, 0x0e, 0x45, 0xe1, 0xe6, 0x3b, 0x5a, 0xca, 0x84, 0xe7, 0xb9, + 0x88, 0x09, 0x1e, 0x1c, 0x5c, 0x55, 0xed, 0xb9, 0x63, 0x13, 0x06, 0x27, 0x4b, 0x97, 0xf4, 0xe5, + 0xe8, 0x7b, 0xaf, 0xd7, 0xc9, 0xa5, 0x91, 0xf7, 0x24, 0x16, 0xbe, 0x10, 0xe2, 0xe1, 0x91, 0x5e, + 0x2a, 0x67, 0xa1, 0x7c, 0x42, 0xdf, 0xc7, 0xff, 0xff, 0xf5, 0x7d, 0xd8, 0xd4, 0xf7, 0xe1, 0x73, + 0xf5, 0x7d, 0x6c, 0x8e, 0x23, 0xfe, 0x77, 0xe9, 0xfb, 0x70, 0x14, 0x37, 0x47, 0x17, 0x6f, 0xe9, + 0x7b, 0x92, 0x7d, 0xd7, 0xc6, 0x96, 0x57, 0xb4, 0xbd, 0xf7, 0x59, 0x6f, 0x80, 0x0d, 0xa2, 0x3d, + 0xdb, 0xa0, 0x52, 0xad, 0x52, 0xe0, 0x4f, 0x5d, 0xdb, 0x33, 0xe4, 0x5a, 0x4f, 0xe6, 0x89, 0xad, + 0xaf, 0xdc, 0xd7, 0x87, 0x85, 0xe5, 0xdc, 0xbe, 0x6a, 0x66, 0xc2, 0x60, 0xe0, 0x19, 0x78, 0x68, + 0x2b, 0x3b, 0x9a, 0xd2, 0xb7, 0x8f, 0xa7, 0xcc, 0xa6, 0xbd, 0xbf, 0xa6, 0x83, 0xa5, 0xdf, 0xbd, + 0x91, 0x4a, 0x8d, 0x9d, 0xbd, 0x1b, 0x45, 0xd5, 0x27, 0x3f, 0x82, 0xe9, 0x54, 0x8a, 0x70, 0xa1, + 0xff, 0xf4, 0xf5, 0x55, 0x53, 0xb6, 0x77, 0x1d, 0xe3, 0xa3, 0x01, 0xbb, 0x66, 0x0b, 0x96, 0x51, + 0x74, 0xe4, 0xd5, 0x13, 0x67, 0x6a, 0x0c, 0x06, 0x2a, 0x98, 0xf4, 0x88, 0x3d, 0x1d, 0x3e, 0xda, + 0x54, 0xa1, 0xc7, 0x68, 0x6b, 0xeb, 0x37, 0x7a, 0x7c, 0xeb, 0x37, 0x12, 0x9f, 0x11, 0x7d, 0xce, + 0xd6, 0xaf, 0x9e, 0xd9, 0x76, 0x78, 0xbc, 0xfa, 0xb6, 0xb8, 0x38, 0x75, 0x62, 0x8c, 0x51, 0x7f, + 0x00, 0x7d, 0xa0, 0xec, 0x16, 0x7e, 0xdb, 0xfa, 0xc9, 0x2e, 0xaa, 0xbb, 0x34, 0x54, 0x47, 0x6e, + 0x16, 0x19, 0x7b, 0xc5, 0xea, 0x90, 0xa2, 0x02, 0x90, 0x2f, 0xc5, 0x97, 0x19, 0x13, 0x78, 0xa0, + 0x51, 0x83, 0x12, 0xf6, 0xac, 0x81, 0x71, 0xac, 0x48, 0xf1, 0x86, 0x9f, 0x6c, 0x4c, 0x54, 0xd7, + 0x97, 0x89, 0xe5, 0x1d, 0xff, 0x87, 0x5d, 0xac, 0xea, 0xfa, 0x15, 0x9d, 0xdc, 0x44, 0xf0, 0x15, + 0xe4, 0x72, 0xd0, 0x55, 0x51, 0x8b, 0x45, 0x5b, 0x1b, 0xba, 0xea, 0xab, 0xf1, 0x5b, 0x78, 0x69, + 0x6c, 0x8a, 0x37, 0xe7, 0x52, 0xb0, 0x9e, 0x43, 0xc7, 0x12, 0x12, 0x75, 0x89, 0xd4, 0xfe, 0x3f, + 0x9a, 0x97, 0xfa, 0x04, 0xb9, 0xef, 0x1b, 0x83, 0xd2, 0xfb, 0xdc, 0x8f, 0x51, 0x29, 0x37, 0x50, + 0x90, 0xa9, 0x73, 0x0e, 0xc9, 0x16, 0x12, 0x9a, 0x4d, 0x77, 0x3f, 0x41, 0x21, 0x5a, 0x9b, 0xc8, + 0xa0, 0xeb, 0xba, 0x4f, 0x4d, 0xc0, 0x18, 0xff, 0x66, 0xcf, 0x58, 0xaa, 0x3e, 0x2d, 0x03, 0x7f, + 0xbb, 0xe3, 0x7a, 0x2d, 0x05, 0xc7, 0xa1, 0x6f, 0x7c, 0x0c, 0xb6, 0xa8, 0xb7, 0xfb, 0xd4, 0x6a, + 0x18, 0x6b, 0xa1, 0xd7, 0x6f, 0xb3, 0x2b, 0xa3, 0x1e, 0x6b, 0x18, 0x3d, 0x43, 0x44, 0x24, 0x07, + 0x26, 0x1c, 0xc7, 0xe6, 0x6c, 0xf3, 0xad, 0xe9, 0xa6, 0xc9, 0xc1, 0x79, 0xea, 0x03, 0x04, 0x52, + 0x48, 0x0e, 0x76, 0xbe, 0x10, 0x3c, 0x2c, 0x20, 0xe0, 0x0e, 0x88, 0x36, 0x3b, 0x43, 0xd1, 0x7a, + 0x2d, 0x1e, 0xf4, 0x25, 0x46, 0xa7, 0xfa, 0x1a, 0x49, 0xb4, 0x25, 0x50, 0x51, 0x41, 0x7c, 0x9a, + 0x79, 0x27, 0x77, 0x2f, 0xdc, 0x44, 0x7d, 0xa9, 0x45, 0x9e, 0x9f, 0x70, 0x36, 0x7b, 0xe1, 0x51, + 0x87, 0x9b, 0xed, 0x79, 0xce, 0x66, 0xe6, 0x44, 0xeb, 0x33, 0x78, 0xb4, 0xa0, 0x7f, 0x69, 0x6a, + 0x92, 0x4b, 0x33, 0x85, 0x16, 0x54, 0x93, 0x7f, 0x0a, 0x42, 0x8b, 0x9d, 0xea, 0x13, 0x0a, 0x10, + 0x3e, 0xbd, 0x9d, 0x61, 0xd0, 0xe2, 0xec, 0xbf, 0x2e, 0xa9, 0x0f, 0x72, 0x88, 0x0f, 0xb8, 0x6f, + 0x7f, 0x00, 0xa7, 0xd3, 0x1b, 0x74, 0x5f, 0x65, 0xf4, 0x39, 0x69, 0x71, 0x35, 0xb0, 0x2a, 0x1e, + 0x65, 0xed, 0xde, 0x58, 0x9f, 0xd8, 0xd8, 0xd6, 0x60, 0x83, 0xa3, 0xa3, 0xed, 0x2f, 0xe1, 0x88, + 0xcf, 0x06, 0x70, 0xb9, 0x34, 0xf4, 0x20, 0x03, 0xdf, 0x36, 0x16, 0x59, 0x94, 0x8c, 0x1e, 0x57, + 0x57, 0x85, 0x5e, 0x02, 0x69, 0x66, 0x4b, 0x30, 0xbd, 0xad, 0x79, 0x9a, 0xc2, 0xf0, 0xe0, 0xf5, + 0xd0, 0xff, 0xd9, 0x54, 0x9b, 0xcb, 0x3e, 0x50, 0x6a, 0xc4, 0x11, 0x28, 0xae, 0x86, 0x48, 0x74, + 0x04, 0xe5, 0x14, 0xc2, 0x83, 0x8a, 0x1c, 0x28, 0x35, 0x73, 0xee, 0x35, 0x59, 0x46, 0xbb, 0x32, + 0xe0, 0x9d, 0xf8, 0xea, 0x78, 0xbe, 0x2b, 0x97, 0x2a, 0x89, 0x53, 0xec, 0x48, 0xf5, 0x3c, 0xfa, + 0x93, 0xef, 0x6d, 0xa0, 0x80, 0xd9, 0xfa, 0xe8, 0xe8, 0x66, 0xb7, 0xe9, 0x9e, 0x2f, 0x0e, 0x3c, + 0x47, 0x9e, 0x88, 0x96, 0xb6, 0x29, 0x12, 0x1e, 0x91, 0xe7, 0xdb, 0x9c, 0x2f, 0x3e, 0x18, 0xb6, + 0x3b, 0x60, 0x1e, 0xeb, 0x3f, 0x5e, 0xd1, 0x54, 0x69, 0xe2, 0xfb, 0x58, 0x52, 0x96, 0xec, 0x80, + 0x32, 0x14, 0xf3, 0x96, 0x3c, 0x79, 0xa6, 0x98, 0x36, 0xac, 0x33, 0xfd, 0x99, 0x87, 0xbd, 0x06, + 0x9b, 0x18, 0x89, 0x28, 0xf1, 0xe4, 0xb1, 0x24, 0x4b, 0xba, 0xa5, 0xbb, 0xb2, 0xcf, 0x2c, 0xde, + 0x65, 0x42, 0xe1, 0xc1, 0x6e, 0x9f, 0xa9, 0xa2, 0xf1, 0x8a, 0xeb, 0x66, 0xc3, 0x9d, 0xce, 0xe4, + 0x09, 0x25, 0x43, 0x90, 0xa2, 0xae, 0xd7, 0xdb, 0x5f, 0x57, 0x2a, 0xbc, 0x66, 0xd5, 0xbe, 0xef, + 0x57, 0x1f, 0x6c, 0x32, 0xeb, 0xd2, 0x89, 0xa2, 0x66, 0xd5, 0x6d, 0xd2, 0xd8, 0x3a, 0x3b, 0x57, + 0x7d, 0xf5, 0x4f, 0x0a, 0x8c, 0xa4, 0xda, 0xe8, 0xd0, 0x11, 0x85, 0xa6, 0x2c, 0xa3, 0x2f, 0x7b, + 0x83, 0x35, 0x46, 0x0f, 0xd5, 0x57, 0x84, 0xbc, 0xdb, 0x62, 0xc3, 0x8c, 0xd7, 0x65, 0xb1, 0x19, + 0xc3, 0x1d, 0xab, 0x5d, 0xb4, 0xf0, 0x5e, 0x9c, 0xec, 0x23, 0xc6, 0x68, 0x54, 0x63, 0xf2, 0x4b, + 0xfc, 0xb9, 0xf7, 0x60, 0x86, 0xc4, 0xe4, 0xa6, 0xde, 0x66, 0xe3, 0x6c, 0x3b, 0x56, 0xc2, 0xa9, + 0x12, 0x74, 0xf1, 0x43, 0x14, 0x5e, 0x93, 0x53, 0x15, 0x4d, 0x3d, 0x0a, 0x18, 0xe8, 0xa3, 0x45, + 0xfa, 0x74, 0x1d, 0xa4, 0x85, 0x4c, 0x6d, 0x36, 0xb0, 0x38, 0x9a, 0x3e, 0x93, 0xa1, 0x91, 0xea, + 0xef, 0x20, 0x89, 0x7d, 0x12, 0x35, 0x98, 0x3a, 0x86, 0x13, 0xed, 0x0b, 0xe1, 0x64, 0xec, 0x81, + 0xce, 0xf2, 0xa8, 0xbf, 0xa2, 0xa1, 0xe3, 0x39, 0xe5, 0x16, 0x09, 0x48, 0x5b, 0x92, 0xc2, 0xd2, + 0xc2, 0x45, 0xf5, 0x4a, 0xe5, 0x08, 0x25, 0xc2, 0x11, 0x71, 0xf4, 0xf9, 0xac, 0xeb, 0x27, 0xa3, + 0x87, 0x92, 0xbf, 0xcf, 0xba, 0x5d, 0x1d, 0xa4, 0xa0, 0xa4, 0x24, 0x47, 0xb9, 0x8d, 0xa2, 0xad, + 0x72, 0x88, 0x3e, 0x75, 0xb2, 0xd8, 0xbb, 0x64, 0x5b, 0x1b, 0x55, 0x9e, 0xb5, 0x82, 0xac, 0x8e, + 0xe0, 0xd0, 0xe8, 0x60, 0xd6, 0x6b, 0x13, 0x82, 0x11, 0x21, 0xf4, 0xba, 0xcc, 0x74, 0xbc, 0xbc, + 0x97, 0x6c, 0xd7, 0x3b, 0x93, 0x91, 0xd0, 0xca, 0x19, 0x33, 0x5f, 0x7f, 0x68, 0x86, 0x47, 0x59, + 0xd3, 0x23, 0x27, 0x7f, 0xb0, 0x0e, 0x78, 0x78, 0xea, 0xc5, 0x18, 0x65, 0xf3, 0x08, 0x39, 0xab, + 0xaf, 0xd6, 0xc8, 0x3e, 0x1a, 0x07, 0x2d, 0x7b, 0x7d, 0x56, 0x1d, 0xbf, 0x96, 0x7f, 0x5a, 0x86, + 0x3d, 0xd4, 0xa8, 0xd0, 0x94, 0xa0, 0x8e, 0x55, 0x12, 0xa1, 0xc8, 0xbf, 0x86, 0x21, 0xfd, 0x15, + 0x4b, 0x61, 0xdd, 0x62, 0xf2, 0x24, 0xa5, 0x04, 0x20, 0x5d, 0x84, 0x9b, 0x82, 0xdd, 0x15, 0xec, + 0x63, 0xc1, 0xde, 0x16, 0xec, 0x5d, 0xe1, 0xdb, 0x6f, 0x4c, 0xaf, 0xc5, 0xbe, 0x29, 0xfc, 0x6b, + 0xd3, 0x1f, 0xd9, 0x22, 0x91, 0x37, 0x05, 0xbb, 0x81, 0xb7, 0x88, 0x36, 0x6f, 0x7c, 0x00, 0x7a, + 0x53, 0x18, 0x01, 0xdb, 0x37, 0x74, 0x0e, 0x5d, 0xa9, 0xfb, 0x08, 0x14, 0x77, 0xe0, 0xab, 0xa4, + 0x82, 0xe2, 0x8d, 0x66, 0xbc, 0xba, 0xf4, 0x94, 0x98, 0x1f, 0xd2, 0x51, 0xd5, 0x87, 0x49, 0xfd, + 0x75, 0xd3, 0x3f, 0x4a, 0x9e, 0xdd, 0xbf, 0xe7, 0x31, 0x17, 0x1f, 0xfa, 0xa3, 0x2f, 0x7b, 0x37, + 0xfe, 0x96, 0x46, 0x24, 0x0e, 0x6e, 0x8a, 0xbf, 0x4e, 0x21, 0x05, 0xb5, 0xf1, 0xd5, 0xaf, 0x03, + 0xa7, 0x09, 0x58, 0x39, 0xb8, 0x71, 0x23, 0xfa, 0xce, 0x62, 0x24, 0xbf, 0xf5, 0xc4, 0x7d, 0xf1, + 0x37, 0x64, 0x7c, 0x3f, 0x95, 0xdf, 0x6d, 0xf7, 0x84, 0xe3, 0x96, 0xac, 0xd7, 0x89, 0x8b, 0xb9, + 0xf9, 0xd5, 0x41, 0x54, 0xb2, 0x75, 0x58, 0x49, 0xfa, 0x98, 0xfe, 0x32, 0x09, 0x7d, 0xc4, 0x1b, + 0xca, 0xd4, 0xa3, 0x53, 0x64, 0x89, 0x43, 0x49, 0xc6, 0xe9, 0x0f, 0x95, 0xdc, 0x31, 0xe3, 0x63, + 0xe5, 0xdb, 0x7f, 0x45, 0x86, 0xfe, 0x9a, 0x41, 0x36, 0x1c, 0x45, 0x63, 0x8f, 0xcb, 0xae, 0x1a, + 0x1f, 0x51, 0x4d, 0xcc, 0x8f, 0xa8, 0xb2, 0x92, 0x51, 0xc8, 0x43, 0xfc, 0xed, 0x13, 0xfa, 0x2b, + 0x33, 0x25, 0x19, 0x72, 0xf6, 0x02, 0x8b, 0xb5, 0xcb, 0xc1, 0x0f, 0xdb, 0x27, 0xf1, 0xb4, 0x41, + 0x2c, 0x6e, 0xf0, 0xd1, 0xd5, 0x01, 0x80, 0xb0, 0xe2, 0x34, 0x20, 0x56, 0xa2, 0x2f, 0x88, 0x1a, + 0x87, 0x2f, 0x83, 0xe9, 0xbd, 0x50, 0x3a, 0x43, 0xac, 0x89, 0x77, 0xf8, 0xd0, 0xa8, 0xf5, 0xe5, + 0xbb, 0xb7, 0xe2, 0x23, 0xc6, 0xc8, 0x03, 0x1c, 0xba, 0x1f, 0x4f, 0x68, 0x57, 0xb8, 0xb6, 0x3f, + 0x16, 0xfe, 0x1d, 0xfd, 0xbf, 0x5e, 0x3f, 0x6c, 0x1c, 0x17, 0x9c, 0x99, 0x63, 0x24, 0xbe, 0x25, + 0xfe, 0x80, 0x9b, 0x05, 0xc2, 0x73, 0xa5, 0xff, 0xf2, 0x53, 0x95, 0x94, 0xd2, 0xce, 0x7f, 0x57, + 0x30, 0xfb, 0x6d, 0xe1, 0x23, 0xb7, 0xc4, 0x54, 0x6d, 0xf1, 0x14, 0x7f, 0x00, 0xc0, 0x5d, 0xf8, + 0x0b, 0x50, 0xab, 0x5b, 0x7d, 0xf9, 0xfa, 0x0b, 0xfa, 0xb6, 0xe4, 0x9c, 0x28, 0xd8, 0x95, 0x8c, + 0xeb, 0x4f, 0xc4, 0x8b, 0xdc, 0x5e, 0xf7, 0x97, 0xe2, 0x45, 0x44, 0xa7, 0xfc, 0x5b, 0x91, 0xfe, + 0x22, 0xbd, 0xf3, 0xef, 0x89, 0xee, 0xc1, 0x03, 0xff, 0x0d, 0xd8, 0x16, 0x4f, 0xe4, 0x58, 0x6e, + 0x00, 0x00 }; // Autogenerated from wled00/data/rangetouch.js, do not edit!! -const uint16_t rangetouchJs_length = 1833; +const uint16_t rangetouchJs_length = 1828; const uint8_t rangetouchJs[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb5, 0x58, 0xdf, 0x8f, 0xdb, 0xb8, - 0x11, 0x7e, 0x3f, 0xe0, 0xfe, 0x07, 0x59, 0x6d, 0x7d, 0xe4, 0x2e, 0x57, 0xb6, 0x17, 0xc8, 0x8b, - 0x1c, 0xc6, 0x48, 0x73, 0x39, 0xa0, 0x68, 0xb6, 0x29, 0xb2, 0x39, 0xb4, 0x80, 0xcf, 0x0f, 0xb2, - 0x44, 0xdb, 0xbc, 0xc8, 0xa4, 0x8e, 0xa4, 0xbc, 0x31, 0x76, 0xf5, 0xbf, 0x77, 0x86, 0x94, 0x6c, - 0x39, 0x6b, 0x27, 0x79, 0xb8, 0x2e, 0x16, 0xb6, 0x44, 0x0d, 0x87, 0x33, 0xdf, 0x7c, 0xf3, 0x43, - 0x1e, 0x8d, 0x22, 0xfe, 0xa7, 0xfd, 0xfd, 0xf8, 0xc3, 0x68, 0x14, 0x99, 0x4c, 0xad, 0x85, 0xd3, - 0x75, 0xbe, 0x49, 0x7e, 0xb7, 0xd1, 0xee, 0x36, 0x19, 0x27, 0x13, 0xff, 0xe0, 0x2e, 0xfb, 0x24, - 0xd5, 0x3a, 0x7a, 0x29, 0x55, 0x55, 0xbb, 0xc8, 0xed, 0x2b, 0xc1, 0x63, 0x2f, 0x1c, 0xbf, 0x8a, - 0x1e, 0xb4, 0xf9, 0x14, 0x69, 0x15, 0xf9, 0x7d, 0x51, 0x21, 0x76, 0x32, 0x17, 0xd6, 0xef, 0xda, - 0x38, 0x57, 0xd9, 0x74, 0x34, 0x5a, 0x4b, 0xb7, 0xa9, 0x97, 0x49, 0xae, 0xb7, 0x23, 0x9b, 0x6d, - 0x2b, 0xed, 0x9c, 0x1d, 0x1d, 0x8f, 0xf2, 0xa2, 0xef, 0x60, 0x93, 0xb2, 0x22, 0x8d, 0x3e, 0x6e, - 0x44, 0x74, 0xf7, 0x8f, 0x8f, 0xdd, 0x42, 0x44, 0xe0, 0x86, 0x7a, 0x91, 0x3f, 0xd3, 0xd7, 0xc1, - 0xaa, 0x56, 0xb9, 0x93, 0x5a, 0x11, 0xc1, 0x1c, 0x7d, 0x8c, 0xf5, 0xf2, 0x77, 0x91, 0xbb, 0x98, - 0x73, 0x74, 0x4d, 0xaf, 0x22, 0xf1, 0xb9, 0xd2, 0xc6, 0xd9, 0xe1, 0x30, 0xae, 0x55, 0x21, 0x56, - 0x52, 0x89, 0x22, 0x1e, 0x74, 0x0f, 0xb7, 0xba, 0xa8, 0x4b, 0x31, 0x0b, 0x5f, 0x49, 0x2b, 0xca, - 0x1d, 0xa1, 0x69, 0xdc, 0xa9, 0x3d, 0x6a, 0x0a, 0xbb, 0x87, 0xc3, 0xf0, 0x9d, 0x64, 0xdb, 0x62, - 0x16, 0x2e, 0x49, 0xfc, 0x01, 0x21, 0xf8, 0x88, 0x10, 0xc4, 0x60, 0x44, 0x4a, 0x04, 0x17, 0x4f, - 0x4f, 0x56, 0x94, 0x2b, 0x9a, 0x1c, 0x1f, 0xa1, 0xde, 0x86, 0xb8, 0x8d, 0xb4, 0x8c, 0x1c, 0x8c, - 0x06, 0x8b, 0x6b, 0xc0, 0xc6, 0x3a, 0x23, 0xc1, 0xea, 0x69, 0xb7, 0x1e, 0x89, 0xe0, 0xce, 0x4a, - 0x1b, 0xb2, 0xcb, 0x4c, 0xa4, 0xf8, 0x78, 0xaa, 0x5e, 0xba, 0xa4, 0x14, 0x6a, 0xed, 0x36, 0x53, - 0x75, 0x7d, 0x4d, 0x1f, 0x71, 0xdd, 0x70, 0x37, 0x57, 0x8b, 0xa9, 0x49, 0x84, 0xaa, 0xb7, 0xc2, - 0x64, 0xcb, 0x52, 0xf0, 0xfe, 0xcd, 0xd3, 0xd3, 0x60, 0xc2, 0x0c, 0xc4, 0x4b, 0xad, 0xe4, 0xba, - 0x0e, 0xcf, 0x07, 0x63, 0x16, 0xef, 0xb2, 0xb2, 0x16, 0xb1, 0x54, 0x91, 0x19, 0x0e, 0x89, 0x49, - 0x1e, 0x8c, 0x74, 0xed, 0x33, 0xca, 0xde, 0x7b, 0x04, 0x93, 0xe0, 0xdb, 0xbf, 0x8d, 0xae, 0x84, - 0x71, 0x7b, 0x30, 0xc7, 0x24, 0x9f, 0xc4, 0x9e, 0x19, 0xda, 0x34, 0x07, 0x2b, 0x1d, 0x5a, 0xc9, - 0x14, 0x7d, 0x34, 0xc2, 0xd5, 0x06, 0xee, 0x23, 0x50, 0x29, 0x66, 0x97, 0x34, 0x38, 0xf6, 0xe8, - 0x0f, 0x4e, 0x15, 0x3b, 0x9a, 0x98, 0x82, 0x3d, 0x7d, 0xfb, 0xf0, 0xbe, 0xb3, 0x07, 0xae, 0x1b, - 0x9a, 0x8a, 0xb9, 0x5b, 0x70, 0xd8, 0x72, 0x3c, 0xb7, 0x0d, 0x76, 0x40, 0xa6, 0x3d, 0x0d, 0x8c, - 0xb3, 0x44, 0xd0, 0xa9, 0x5c, 0x91, 0x76, 0x05, 0x58, 0xf9, 0xfe, 0x41, 0x75, 0xe7, 0xdf, 0xef, - 0xb7, 0x4b, 0x5d, 0xda, 0x0e, 0xb7, 0xaf, 0xc9, 0xa0, 0x1a, 0x87, 0xc0, 0x00, 0x96, 0x2b, 0x59, - 0x3a, 0x61, 0xc8, 0x31, 0x62, 0xee, 0xe0, 0xed, 0x59, 0x15, 0x3f, 0x0b, 0x9b, 0x1b, 0x59, 0x39, - 0x08, 0x1c, 0xda, 0xd8, 0x8b, 0x45, 0x43, 0x29, 0x65, 0x2a, 0xa9, 0x6a, 0xbb, 0x49, 0xb2, 0xaa, - 0x2a, 0xf7, 0x44, 0x21, 0x9a, 0xad, 0x32, 0x75, 0xf4, 0x0e, 0x76, 0x1e, 0x23, 0x6f, 0xf8, 0x64, - 0x6a, 0x5e, 0x66, 0x66, 0x0d, 0x6a, 0x94, 0xb3, 0x1d, 0x03, 0x4c, 0xc7, 0x00, 0xc9, 0x55, 0x5d, - 0x96, 0x03, 0x7e, 0x90, 0x98, 0x9b, 0xc5, 0xac, 0x7f, 0x93, 0x3e, 0x36, 0x53, 0xf3, 0xb7, 0xdb, - 0x99, 0x6a, 0x61, 0x21, 0x92, 0x32, 0x08, 0x73, 0x02, 0x07, 0xbc, 0xcd, 0xf2, 0x4d, 0xcf, 0x33, - 0x88, 0x23, 0x06, 0x54, 0x31, 0x09, 0x9c, 0xa2, 0x60, 0x6e, 0xfa, 0x0d, 0x0f, 0xed, 0xd9, 0x48, - 0x4b, 0x01, 0x00, 0xb2, 0x6f, 0x6d, 0x05, 0x33, 0x68, 0xda, 0xb3, 0xe9, 0x9c, 0x41, 0x00, 0xf5, - 0x65, 0x2a, 0x7d, 0x0b, 0x7d, 0x09, 0xe8, 0xa3, 0x13, 0x1d, 0xc0, 0xa2, 0x09, 0x70, 0x3d, 0x66, - 0x45, 0xf1, 0xe6, 0xfe, 0x1e, 0x69, 0x06, 0xb5, 0x6c, 0xbb, 0xfc, 0x8f, 0x2c, 0xdc, 0x26, 0x9d, - 0xbc, 0x60, 0x0f, 0x99, 0xcb, 0x37, 0xc8, 0xb8, 0x63, 0x16, 0xd6, 0x81, 0x67, 0xad, 0x86, 0x5e, - 0xd2, 0xb6, 0x2b, 0xaf, 0x8d, 0xc9, 0xf6, 0xc9, 0xca, 0xe8, 0x2d, 0x29, 0x74, 0xee, 0x21, 0x4f, - 0xfe, 0xa8, 0x85, 0xd9, 0xdf, 0x8b, 0x12, 0x8c, 0xd3, 0xe6, 0x75, 0x59, 0x82, 0x17, 0x34, 0x91, - 0x2a, 0x2f, 0xeb, 0x02, 0x80, 0xc1, 0xf4, 0xa7, 0x4d, 0x92, 0x67, 0xf0, 0x00, 0x75, 0x7b, 0xa3, - 0x34, 0x3f, 0x16, 0xb1, 0x83, 0xee, 0x10, 0x56, 0x31, 0x13, 0x98, 0xbd, 0x50, 0x1f, 0x6a, 0xd4, - 0x97, 0xe2, 0x6a, 0xc3, 0x72, 0x7e, 0x5a, 0xf5, 0xc2, 0x96, 0xc1, 0x80, 0x40, 0x79, 0x02, 0xe2, - 0x0a, 0x48, 0x43, 0xeb, 0x32, 0x95, 0x63, 0xd9, 0x82, 0x33, 0x58, 0x79, 0xe9, 0x00, 0xce, 0x45, - 0xc3, 0xb2, 0x73, 0x4f, 0x35, 0x5c, 0x43, 0x81, 0x0d, 0x28, 0x37, 0xcc, 0x7e, 0x45, 0xe6, 0x1e, - 0x8a, 0x97, 0x5a, 0x37, 0x6c, 0x75, 0x4e, 0x26, 0x40, 0x24, 0xad, 0xff, 0x86, 0xf5, 0x86, 0x6d, - 0xce, 0x89, 0xe5, 0xe0, 0xc8, 0xbf, 0x74, 0x21, 0xde, 0x49, 0x8b, 0x06, 0x17, 0xdc, 0xb2, 0x3d, - 0x5f, 0xb1, 0x25, 0xdf, 0xb0, 0xed, 0x25, 0xf9, 0xb7, 0xa5, 0x40, 0xc4, 0x41, 0x7c, 0x7d, 0x51, - 0x64, 0x17, 0x04, 0xaa, 0x73, 0x02, 0x10, 0x01, 0xfa, 0xf4, 0x44, 0xac, 0xff, 0x5a, 0xf9, 0xcf, - 0x0d, 0x7c, 0xd2, 0xe1, 0x70, 0x20, 0xda, 0x3c, 0x7b, 0x7a, 0xca, 0x60, 0x05, 0x16, 0x4e, 0x8b, - 0x4c, 0xfb, 0xb4, 0xc7, 0x94, 0x5d, 0x08, 0x04, 0x14, 0x9f, 0xc9, 0xab, 0x43, 0x65, 0xea, 0x9f, - 0x89, 0x2b, 0x8e, 0xc7, 0x31, 0x46, 0x33, 0xcf, 0x1c, 0x2a, 0xd9, 0x22, 0xe1, 0xc8, 0x88, 0xcc, - 0xd2, 0xdf, 0x12, 0xf2, 0x5b, 0x71, 0x4d, 0xe9, 0x0c, 0xae, 0xe7, 0xe2, 0xed, 0x82, 0xcc, 0xaf, - 0x6f, 0x16, 0xb3, 0xb0, 0xf4, 0xd7, 0x11, 0x9d, 0x76, 0xe5, 0x75, 0x76, 0x97, 0xb9, 0x0d, 0xec, - 0xfb, 0x4c, 0xc6, 0x8c, 0xb8, 0xf9, 0x64, 0x31, 0xc3, 0x8f, 0xd6, 0x9a, 0x74, 0x4c, 0x6f, 0x60, - 0xf1, 0x76, 0x31, 0xbb, 0xc6, 0x4f, 0xb8, 0xa5, 0xe9, 0x18, 0x1a, 0xce, 0x61, 0x7b, 0x95, 0x19, - 0x2b, 0x7e, 0x29, 0x35, 0x9e, 0x9e, 0x38, 0xfd, 0x8b, 0xfc, 0x2c, 0x0a, 0x48, 0xfa, 0x43, 0x86, - 0x78, 0xe5, 0x46, 0x43, 0x9f, 0x24, 0x62, 0xe4, 0xe8, 0x95, 0x6b, 0x9e, 0x13, 0xff, 0xa4, 0xf4, - 0x43, 0xc1, 0x20, 0xa7, 0x44, 0x04, 0xff, 0x81, 0x84, 0xa7, 0xf4, 0xa3, 0x6e, 0x63, 0xf4, 0x43, - 0xa4, 0xc4, 0x43, 0xf4, 0x11, 0x3a, 0xe9, 0x5b, 0x63, 0x20, 0x3b, 0xe3, 0x37, 0x99, 0x52, 0xda, - 0x45, 0x98, 0x08, 0x51, 0x16, 0xe5, 0x65, 0x66, 0x6d, 0x94, 0xc1, 0xff, 0xe1, 0xb0, 0x18, 0x92, - 0x37, 0x74, 0x4b, 0x47, 0xd9, 0x16, 0xf0, 0x9a, 0xe1, 0x4d, 0x22, 0x42, 0xd0, 0xb9, 0x48, 0x0b, - 0x1f, 0x19, 0x72, 0xb2, 0x7a, 0x3e, 0x0b, 0x31, 0xa8, 0xa0, 0xa2, 0x2f, 0x09, 0x3b, 0xab, 0x93, - 0x85, 0xc4, 0x1c, 0x1a, 0xf5, 0x41, 0x6b, 0x68, 0x4b, 0xdc, 0x90, 0xc7, 0x86, 0x49, 0x06, 0x1f, - 0x8a, 0x32, 0xff, 0x40, 0x2a, 0x09, 0xcd, 0xfc, 0x58, 0xbb, 0xb9, 0x83, 0x94, 0x9c, 0x3f, 0x02, - 0x3b, 0xd2, 0xd8, 0xc2, 0x5a, 0x15, 0xb3, 0xd0, 0xe8, 0xbe, 0x64, 0x80, 0xe2, 0x93, 0x67, 0xb5, - 0x7c, 0x38, 0xdc, 0x69, 0x59, 0x44, 0xe3, 0x01, 0xef, 0x15, 0xf1, 0x49, 0xbf, 0x88, 0x4f, 0xb0, - 0x88, 0x33, 0xed, 0x2b, 0x3d, 0xf6, 0xb7, 0xca, 0x73, 0x15, 0xfd, 0x9f, 0x69, 0xfe, 0x5d, 0x35, - 0xc8, 0xcb, 0x8a, 0xf4, 0x27, 0x3f, 0xf5, 0xcd, 0xfb, 0x53, 0xdf, 0xe2, 0x27, 0xa0, 0xc9, 0x36, - 0xa8, 0x9a, 0x8b, 0x45, 0xba, 0x7c, 0xa6, 0x55, 0xd0, 0x74, 0x1f, 0xa0, 0xd6, 0x5c, 0x74, 0xfd, - 0x70, 0x0b, 0x88, 0x56, 0x44, 0x53, 0xda, 0x2b, 0x26, 0x53, 0xf4, 0x30, 0x3f, 0x81, 0x0b, 0xad, - 0x0d, 0x71, 0xca, 0x13, 0x5f, 0x5f, 0x03, 0x0c, 0x25, 0x47, 0x36, 0xdc, 0xd5, 0x2e, 0x43, 0x70, - 0xde, 0x2f, 0xad, 0x30, 0xbb, 0x93, 0x26, 0x0b, 0xcc, 0xea, 0x59, 0xa0, 0x2e, 0x74, 0xab, 0xbe, - 0x48, 0x02, 0x65, 0x5d, 0x14, 0x58, 0x42, 0xec, 0x05, 0x69, 0xd4, 0x33, 0x1c, 0xd6, 0xd0, 0x75, - 0xd1, 0x1e, 0x34, 0xc0, 0xc1, 0x75, 0xee, 0x7b, 0x84, 0xff, 0x9f, 0x96, 0x89, 0x0e, 0xa6, 0x1c, - 0x91, 0x5c, 0xea, 0x62, 0xcf, 0x1e, 0xf3, 0x8d, 0x2c, 0x0b, 0x2c, 0x4d, 0xd8, 0x35, 0x6c, 0xbd, - 0x74, 0x46, 0x84, 0xd9, 0xa4, 0x63, 0x80, 0x86, 0xa4, 0xac, 0x7a, 0xc7, 0xf5, 0xaa, 0xac, 0x3f, - 0x07, 0x73, 0x05, 0x0f, 0x69, 0x58, 0x20, 0x89, 0x50, 0x38, 0x11, 0x14, 0x31, 0x83, 0xf6, 0x95, - 0x3e, 0xeb, 0x2b, 0xb1, 0x56, 0x7e, 0x9e, 0x86, 0x24, 0x32, 0x0e, 0xa7, 0xb4, 0x83, 0x39, 0xdd, - 0x45, 0x5b, 0xfa, 0x9a, 0x66, 0xc1, 0x20, 0x2a, 0x2d, 0xf3, 0x90, 0x95, 0xcf, 0x88, 0x07, 0x3d, - 0x3d, 0x69, 0x4f, 0x3b, 0xa5, 0x75, 0x12, 0xfa, 0xe0, 0x17, 0x19, 0x94, 0x58, 0xb7, 0x87, 0x51, - 0x18, 0x66, 0x52, 0x13, 0xf8, 0xc3, 0x63, 0xa5, 0x95, 0x88, 0xd9, 0x19, 0xa1, 0x07, 0xb1, 0xfc, - 0xa7, 0x74, 0xbf, 0x7e, 0x8f, 0xa8, 0x77, 0xe7, 0xb5, 0xb7, 0x88, 0xc7, 0xdb, 0x4c, 0xc9, 0xaa, - 0x2e, 0xb3, 0x90, 0xe5, 0x41, 0xbc, 0x04, 0x70, 0x85, 0x12, 0x30, 0x17, 0xe0, 0x08, 0x7a, 0x21, - 0x31, 0x79, 0xe8, 0x9e, 0x1d, 0x88, 0x10, 0x6a, 0x67, 0xf4, 0xfe, 0xff, 0xe0, 0xf2, 0x77, 0xba, - 0xfb, 0x6d, 0x57, 0xcf, 0xb8, 0x37, 0xb9, 0xec, 0x1e, 0x26, 0xd1, 0xd1, 0xbd, 0xc3, 0x9e, 0x4b, - 0xc5, 0xc4, 0x79, 0x3c, 0x98, 0x82, 0x21, 0x21, 0x06, 0xcf, 0x7c, 0xaf, 0x7b, 0xd7, 0x6e, 0x8a, - 0xd3, 0xd8, 0x88, 0xad, 0xde, 0x89, 0xd3, 0xd5, 0xe9, 0x3c, 0xee, 0x31, 0x8b, 0x85, 0x1b, 0x14, - 0xeb, 0xae, 0x85, 0x2a, 0xe2, 0xc5, 0x99, 0xfc, 0x11, 0x1e, 0xd4, 0x60, 0x32, 0x4c, 0x87, 0x40, - 0xe8, 0x73, 0x64, 0x07, 0x0c, 0x04, 0xb6, 0xb6, 0x06, 0x46, 0xcc, 0xc9, 0x09, 0xe1, 0x81, 0xe7, - 0xe7, 0xdc, 0xc0, 0x7e, 0x71, 0x08, 0x16, 0xbc, 0xac, 0xac, 0xb1, 0x54, 0x7f, 0x59, 0x52, 0x60, - 0x4c, 0x86, 0xc2, 0x03, 0x16, 0x83, 0x12, 0x26, 0xe1, 0x32, 0xdf, 0x20, 0x66, 0x85, 0x07, 0x4d, - 0xd8, 0xf9, 0x78, 0xc1, 0x6a, 0xde, 0x6b, 0x6e, 0x06, 0x87, 0xc2, 0xd7, 0x0e, 0xa6, 0x92, 0x65, - 0xed, 0xe0, 0xed, 0x6c, 0x2b, 0x81, 0x66, 0x50, 0x30, 0xc7, 0x50, 0x42, 0xbf, 0x26, 0x96, 0x7d, - 0xf6, 0x62, 0x93, 0x31, 0xbc, 0x90, 0x7c, 0x4d, 0x10, 0xb0, 0xac, 0x82, 0x24, 0x0c, 0x56, 0xfe, - 0xe1, 0xdf, 0xb1, 0x69, 0xc2, 0x0c, 0xf4, 0xa6, 0x94, 0x80, 0xcf, 0x07, 0x9c, 0x68, 0x29, 0x8c, - 0x55, 0xa0, 0x69, 0x54, 0x26, 0x0f, 0x38, 0x60, 0x5e, 0x9d, 0xf0, 0xf0, 0x38, 0x78, 0x8e, 0x6e, - 0xe9, 0x08, 0xc4, 0xba, 0x16, 0x3d, 0x7e, 0x45, 0xd4, 0xe9, 0x36, 0x99, 0xe4, 0x5e, 0xe9, 0x7f, - 0x6f, 0x4a, 0xe8, 0x17, 0x2b, 0x68, 0xa7, 0x33, 0x78, 0x19, 0x4c, 0x41, 0xe6, 0xa5, 0x02, 0x22, - 0x7b, 0x69, 0xca, 0x5e, 0x8c, 0x5f, 0xa9, 0x99, 0xba, 0xe1, 0x04, 0xee, 0x6e, 0x6e, 0xaf, 0x14, - 0xbd, 0xca, 0xd2, 0x17, 0xad, 0xc4, 0x35, 0xbf, 0xbd, 0x22, 0xea, 0xe6, 0xc5, 0x18, 0x16, 0x29, - 0xab, 0xaf, 0x77, 0x44, 0xe1, 0x91, 0x57, 0x44, 0xdf, 0xd4, 0x14, 0xeb, 0x5f, 0x17, 0x23, 0x7b, - 0x3e, 0x46, 0xbd, 0x64, 0x5a, 0x87, 0x61, 0xa8, 0x0b, 0x46, 0x52, 0x48, 0xdb, 0xa5, 0x99, 0x48, - 0x2a, 0x23, 0x90, 0x6b, 0x3f, 0x8b, 0x55, 0x56, 0x97, 0x08, 0xc0, 0x41, 0xcc, 0xeb, 0xf4, 0x64, - 0x45, 0xb0, 0x40, 0x07, 0x7b, 0x36, 0x35, 0xe0, 0xe0, 0xda, 0xb5, 0x48, 0x2c, 0x99, 0x9e, 0xb6, - 0x04, 0x5e, 0x18, 0x97, 0xf5, 0x12, 0x4e, 0xb0, 0xbe, 0xda, 0x4e, 0x05, 0x9e, 0x58, 0x61, 0x1f, - 0x09, 0xcf, 0xa1, 0xa8, 0x36, 0xe4, 0x40, 0x8d, 0x23, 0x83, 0x61, 0x28, 0x85, 0x55, 0xe8, 0x72, - 0xb3, 0x38, 0x70, 0x25, 0xc6, 0xea, 0x08, 0xad, 0x2f, 0x46, 0x4a, 0x2e, 0xc0, 0x07, 0x01, 0x1d, - 0xa3, 0x32, 0xda, 0x69, 0x94, 0x62, 0x1a, 0x70, 0xf0, 0x6b, 0x00, 0x07, 0x73, 0x2d, 0xe9, 0x34, - 0xcb, 0x1b, 0xe2, 0xfb, 0x02, 0xfe, 0x68, 0xf1, 0x97, 0xc8, 0xea, 0xda, 0xe4, 0xe2, 0x0e, 0x5e, - 0xdd, 0x20, 0xd2, 0xbf, 0x7e, 0x78, 0xc7, 0x4f, 0x7e, 0x63, 0xc1, 0x06, 0xf0, 0xe3, 0x0f, 0xff, - 0x03, 0x24, 0x8e, 0x90, 0x87, 0xc9, 0x11, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x58, 0xdf, 0x8f, 0xdb, 0xb8, + 0x11, 0x7e, 0xcf, 0x5f, 0x21, 0xab, 0xad, 0x8f, 0xdc, 0xe5, 0xca, 0xf6, 0x02, 0x79, 0x91, 0xc3, + 0x18, 0x69, 0x2e, 0x07, 0x14, 0xcd, 0x36, 0x45, 0x36, 0x87, 0x16, 0xf0, 0xf9, 0x41, 0x96, 0x68, + 0x9b, 0x17, 0x99, 0xd4, 0x91, 0x94, 0x37, 0xc6, 0xae, 0xfe, 0xf7, 0xce, 0x90, 0x92, 0x2d, 0x67, + 0xed, 0x24, 0x0f, 0xd7, 0x60, 0x21, 0x4b, 0xd4, 0x70, 0x38, 0x3f, 0xbe, 0xf9, 0x66, 0x94, 0xd1, + 0x28, 0xe2, 0x7f, 0xda, 0xbf, 0x17, 0xa3, 0x51, 0x64, 0x32, 0xb5, 0x16, 0x4e, 0xd7, 0xf9, 0x26, + 0xf9, 0xdd, 0x46, 0xbb, 0xdb, 0x64, 0x9c, 0x4c, 0x70, 0xfd, 0x2e, 0xfb, 0x2c, 0xd5, 0x3a, 0x7a, + 0x25, 0x55, 0x55, 0xbb, 0xc8, 0xed, 0x2b, 0xc1, 0x63, 0x2f, 0x1b, 0xbf, 0x8e, 0x1e, 0xb4, 0xf9, + 0x1c, 0x69, 0x15, 0xf9, 0x6d, 0x51, 0x21, 0x76, 0x32, 0x17, 0x16, 0x37, 0x6d, 0x9c, 0xab, 0x6c, + 0x3a, 0x1a, 0xad, 0xa5, 0xdb, 0xd4, 0xcb, 0x24, 0xd7, 0xdb, 0x91, 0xcd, 0xb6, 0x95, 0x76, 0xce, + 0x8e, 0x8e, 0x07, 0xa1, 0xe4, 0x7b, 0xd8, 0xa2, 0xac, 0x48, 0xa3, 0x4f, 0x1b, 0x11, 0xdd, 0xfd, + 0xe3, 0x53, 0xb7, 0x10, 0x11, 0x78, 0xa0, 0x28, 0xf1, 0x27, 0xba, 0x39, 0x58, 0xd5, 0x2a, 0x77, + 0x52, 0x2b, 0x22, 0x98, 0xa3, 0x8f, 0xb1, 0x5e, 0xfe, 0x2e, 0x72, 0x17, 0x73, 0x8e, 0x6e, 0xe9, + 0x55, 0x24, 0xbe, 0x54, 0xda, 0x38, 0x3b, 0x1c, 0xc6, 0xb5, 0x2a, 0xc4, 0x4a, 0x2a, 0x51, 0xc4, + 0x83, 0xee, 0xe5, 0x56, 0x17, 0x75, 0x29, 0x66, 0xe1, 0x27, 0x69, 0x45, 0xb9, 0x23, 0x34, 0x8d, + 0x3b, 0xb5, 0x47, 0x4d, 0x61, 0xf7, 0x70, 0x18, 0x7e, 0x93, 0x6c, 0x5b, 0xcc, 0xc2, 0x2d, 0x89, + 0x3f, 0xa2, 0xff, 0x9f, 0xd0, 0xff, 0x18, 0x8c, 0x48, 0x89, 0xe0, 0xe2, 0xe9, 0xc9, 0x8a, 0x72, + 0x45, 0x93, 0xe3, 0x2b, 0xd4, 0xdb, 0x10, 0xb7, 0x91, 0x96, 0x91, 0x83, 0xd1, 0x60, 0x71, 0x0d, + 0x91, 0xb1, 0xce, 0x48, 0xb0, 0x7a, 0xda, 0xad, 0x47, 0x22, 0xb8, 0xb3, 0xd2, 0x86, 0xec, 0x32, + 0x13, 0x29, 0x3e, 0x9e, 0xaa, 0x57, 0x2e, 0x29, 0x85, 0x5a, 0xbb, 0xcd, 0x54, 0x5d, 0x5f, 0xd3, + 0x47, 0x5c, 0x37, 0xdc, 0xcd, 0xd5, 0x62, 0x6a, 0x12, 0xa1, 0xea, 0xad, 0x30, 0xd9, 0xb2, 0x14, + 0xbc, 0xff, 0xf0, 0xf4, 0x34, 0x98, 0x30, 0x03, 0xc9, 0x52, 0x2b, 0xb9, 0xae, 0xc3, 0xfb, 0xc1, + 0x98, 0xc5, 0xbb, 0xac, 0xac, 0x45, 0x2c, 0x55, 0x64, 0x86, 0x43, 0x62, 0x92, 0x07, 0x23, 0x5d, + 0xfb, 0x8e, 0xb2, 0x0f, 0x3e, 0x82, 0x49, 0xf0, 0xed, 0xdf, 0x46, 0x57, 0xc2, 0xb8, 0x3d, 0x98, + 0x63, 0x92, 0xcf, 0x62, 0xcf, 0x0c, 0x6d, 0x9a, 0x83, 0x95, 0x0e, 0xad, 0x64, 0x8a, 0x3e, 0x1a, + 0xe1, 0x6a, 0x03, 0xcf, 0x11, 0xa8, 0x14, 0xb3, 0x4b, 0x1a, 0x1c, 0x7b, 0xf4, 0x07, 0xa7, 0x8a, + 0x1d, 0x4d, 0x4c, 0xc1, 0x9e, 0xbe, 0x7d, 0xf8, 0xdc, 0xd9, 0x03, 0xf7, 0x0d, 0x4d, 0xc5, 0xdc, + 0x2d, 0x38, 0x6c, 0x39, 0x9e, 0xdb, 0x26, 0x3b, 0x44, 0xa6, 0x3d, 0x0d, 0x8c, 0xb3, 0x44, 0xd0, + 0xa9, 0x5c, 0x91, 0x76, 0x05, 0x20, 0xf9, 0xe1, 0x41, 0x75, 0xe7, 0xdf, 0xef, 0xb7, 0x4b, 0x5d, + 0xda, 0x2e, 0x6e, 0xdf, 0x92, 0x41, 0x35, 0x0e, 0x03, 0x03, 0xb1, 0x5c, 0xc9, 0xd2, 0x09, 0x43, + 0x8e, 0x19, 0x73, 0x07, 0x6f, 0xcf, 0xaa, 0xf8, 0x59, 0xd8, 0xdc, 0xc8, 0xca, 0x41, 0xe2, 0xd0, + 0xc6, 0x5e, 0x2e, 0x1a, 0x4a, 0x29, 0x53, 0x49, 0x55, 0xdb, 0x4d, 0x92, 0x55, 0x55, 0xb9, 0x27, + 0x0a, 0xa3, 0xd9, 0x2a, 0x53, 0x47, 0xef, 0x60, 0xe7, 0x31, 0xf3, 0x86, 0x4f, 0xa6, 0xe6, 0x55, + 0x66, 0xd6, 0xa0, 0x46, 0x39, 0xdb, 0x21, 0xc0, 0x74, 0x08, 0x90, 0x5c, 0xd5, 0x65, 0x39, 0xe0, + 0x07, 0x89, 0xb9, 0x59, 0xcc, 0xfa, 0x0f, 0xe9, 0x63, 0x33, 0x35, 0x7f, 0xbb, 0x9d, 0xa9, 0x36, + 0x2c, 0x44, 0x52, 0x06, 0x69, 0x4e, 0xe0, 0x80, 0x77, 0x59, 0xbe, 0xe9, 0x79, 0x06, 0x79, 0xc4, + 0x84, 0x2a, 0x26, 0x01, 0x53, 0x14, 0xcc, 0x4d, 0xbf, 0xe3, 0xa1, 0x3d, 0x9b, 0x69, 0x29, 0x20, + 0x80, 0xec, 0x7b, 0x5b, 0xc1, 0x0c, 0x9a, 0xf6, 0x6c, 0x3a, 0x67, 0x10, 0x84, 0xfa, 0x32, 0x94, + 0xbe, 0x17, 0x7d, 0x09, 0xd1, 0x47, 0x27, 0xba, 0x00, 0x8b, 0x26, 0x84, 0xeb, 0x31, 0x2b, 0x8a, + 0xb7, 0xf7, 0xf7, 0x08, 0x33, 0x20, 0xb2, 0xed, 0xf2, 0x3f, 0xb2, 0x70, 0x9b, 0x74, 0xf2, 0x92, + 0x3d, 0x64, 0x2e, 0xdf, 0x20, 0xe2, 0x8e, 0x55, 0x58, 0x07, 0x9c, 0xb5, 0x1a, 0x7a, 0x45, 0xdb, + 0xae, 0xbc, 0x31, 0x26, 0xdb, 0x27, 0x2b, 0xa3, 0xb7, 0xa4, 0xd0, 0xb9, 0x0f, 0x79, 0xf2, 0x47, + 0x2d, 0xcc, 0xfe, 0x5e, 0x94, 0x60, 0x9c, 0x36, 0x6f, 0xca, 0x12, 0xbc, 0xa0, 0x89, 0x54, 0x79, + 0x59, 0x17, 0x10, 0x18, 0x2c, 0x7f, 0xda, 0x24, 0x79, 0x06, 0x2f, 0x50, 0xb7, 0x37, 0x4a, 0xf3, + 0x23, 0x89, 0x1d, 0x74, 0x87, 0xb4, 0x8a, 0x99, 0xc0, 0xea, 0x05, 0x7e, 0xa8, 0x51, 0x5f, 0x8a, + 0xab, 0x0d, 0xcb, 0xf9, 0x29, 0xeb, 0x85, 0x2d, 0x83, 0x01, 0x01, 0x7a, 0x02, 0xe0, 0x0a, 0x28, + 0x43, 0xeb, 0x32, 0x95, 0x23, 0x6d, 0xc1, 0x19, 0xac, 0xbc, 0x74, 0x00, 0xe7, 0xa2, 0x61, 0xd9, + 0xb9, 0xb7, 0x1a, 0xee, 0x81, 0x5f, 0x43, 0x94, 0x1b, 0x66, 0xbf, 0x21, 0x73, 0x0f, 0xe4, 0xa5, + 0xd6, 0x0d, 0x5b, 0x9d, 0x93, 0x09, 0x21, 0x92, 0xd6, 0xff, 0xc2, 0x7a, 0xc3, 0x36, 0xe7, 0xc4, + 0x72, 0x70, 0xe4, 0x5f, 0xba, 0x10, 0xef, 0xa5, 0x45, 0x83, 0x0b, 0x6e, 0xd9, 0x9e, 0xaf, 0xd8, + 0x92, 0x6f, 0xd8, 0xf6, 0x92, 0xfc, 0xbb, 0x52, 0x60, 0xc4, 0x41, 0x7c, 0x7d, 0x51, 0x64, 0x17, + 0x04, 0xaa, 0x73, 0x02, 0x90, 0x01, 0xfa, 0xf4, 0x44, 0xac, 0xff, 0x59, 0xf9, 0xeb, 0x06, 0xae, + 0x74, 0x38, 0x1c, 0x88, 0xb6, 0xce, 0x9e, 0x9e, 0x32, 0x58, 0x81, 0x85, 0x53, 0x92, 0x69, 0xdf, + 0xf6, 0x90, 0xb2, 0x0b, 0x89, 0x00, 0xf2, 0x99, 0xbc, 0x3e, 0x30, 0x53, 0xff, 0x4c, 0x5c, 0x71, + 0x3c, 0x8e, 0x31, 0x9b, 0x79, 0xe6, 0x50, 0xc9, 0x16, 0x01, 0x47, 0x46, 0x64, 0x96, 0xfe, 0x96, + 0x90, 0xdf, 0x8a, 0x6b, 0x4a, 0x67, 0x70, 0x3f, 0x17, 0xef, 0x16, 0x64, 0x7e, 0x7d, 0xb3, 0x98, + 0x85, 0xa5, 0xbf, 0x8e, 0xe8, 0xb4, 0xa3, 0xd7, 0xd9, 0x5d, 0xe6, 0x36, 0xb0, 0xef, 0x0b, 0x19, + 0x33, 0xe2, 0xe6, 0x93, 0xc5, 0x0c, 0x2f, 0xad, 0x35, 0xe9, 0x98, 0xde, 0xc0, 0xe2, 0xed, 0x62, + 0x76, 0x8d, 0x57, 0x78, 0xa4, 0xe9, 0x18, 0x1a, 0xce, 0x61, 0x7b, 0x95, 0x19, 0x2b, 0x7e, 0x29, + 0x35, 0x9e, 0x9e, 0x38, 0xfd, 0x8b, 0xfc, 0x22, 0x0a, 0x28, 0xfa, 0x43, 0x85, 0x78, 0xe5, 0x46, + 0x43, 0x9f, 0x24, 0x62, 0xe4, 0xe8, 0x95, 0x6b, 0x9e, 0x03, 0xff, 0x84, 0xfa, 0x81, 0x30, 0xc8, + 0x29, 0x10, 0xc1, 0x7f, 0x00, 0xe1, 0x29, 0xfc, 0xa8, 0xdb, 0x18, 0xfd, 0x10, 0x29, 0xf1, 0x10, + 0x7d, 0x82, 0x4e, 0xfa, 0xce, 0x18, 0xa8, 0xce, 0xf8, 0x6d, 0xa6, 0x94, 0x76, 0x11, 0x16, 0x42, + 0x94, 0x45, 0x79, 0x99, 0x59, 0x1b, 0x65, 0xf0, 0x77, 0x38, 0x2c, 0x86, 0xe2, 0x0d, 0xdd, 0xd2, + 0x51, 0xb6, 0x85, 0x78, 0xcd, 0xf0, 0x21, 0x11, 0x21, 0xe9, 0x5c, 0xa4, 0x85, 0xcf, 0x0c, 0x39, + 0x59, 0x3d, 0x5f, 0x85, 0x98, 0x54, 0x50, 0xd1, 0x97, 0x84, 0x9d, 0xd5, 0xc9, 0x42, 0x62, 0x0e, + 0x8d, 0xfa, 0xa0, 0x35, 0xb4, 0x25, 0x6e, 0xc8, 0x63, 0xc3, 0x24, 0x83, 0x8b, 0xa2, 0xcc, 0xbf, + 0x90, 0x4a, 0x42, 0x33, 0x3f, 0x72, 0x37, 0x77, 0x50, 0x92, 0xf3, 0x47, 0x40, 0x47, 0x1a, 0x5b, + 0x58, 0xab, 0x62, 0x16, 0x1a, 0xdd, 0xd7, 0x08, 0x50, 0x7c, 0xf2, 0x8c, 0xcb, 0x87, 0xc3, 0x9d, + 0x96, 0x45, 0x34, 0x1e, 0xf0, 0x1e, 0x89, 0x4f, 0xfa, 0x24, 0x3e, 0x41, 0x12, 0x67, 0xda, 0x33, + 0x3d, 0xf6, 0xb7, 0xca, 0x63, 0x15, 0xfd, 0x9f, 0x69, 0xfe, 0x43, 0x1c, 0xe4, 0x65, 0x45, 0xfa, + 0x93, 0x9f, 0xf8, 0xe6, 0xfd, 0x89, 0x6f, 0xf1, 0x13, 0xc0, 0x64, 0x1b, 0x54, 0xcd, 0xc5, 0x22, + 0x5d, 0x3e, 0xd3, 0x2a, 0x68, 0xba, 0x0f, 0xa1, 0xd6, 0x5c, 0x74, 0xfd, 0x70, 0x0b, 0x11, 0xad, + 0x88, 0xa6, 0xb4, 0x47, 0x26, 0x53, 0xf4, 0x30, 0x3f, 0x09, 0x17, 0x5a, 0x1b, 0xf2, 0x94, 0x27, + 0x9e, 0x5f, 0x43, 0x18, 0x4a, 0x8e, 0x68, 0xb8, 0xab, 0x5d, 0x86, 0xc1, 0xf9, 0xb0, 0xb4, 0xc2, + 0xec, 0x4e, 0x9a, 0x2c, 0x20, 0xab, 0x67, 0x81, 0xba, 0xd0, 0xad, 0xfa, 0x22, 0x09, 0xd0, 0xba, + 0x28, 0x90, 0x42, 0xec, 0x05, 0x69, 0xd4, 0x33, 0x1c, 0xd6, 0xd0, 0x75, 0xd1, 0x1e, 0x34, 0xc0, + 0xc1, 0x7d, 0xee, 0x7b, 0x84, 0xff, 0x9b, 0x96, 0x89, 0x0e, 0xa6, 0x1c, 0x23, 0xb9, 0xd4, 0xc5, + 0x9e, 0x3d, 0xe6, 0x1b, 0x59, 0x16, 0x48, 0x4d, 0xd8, 0x35, 0x6c, 0xbd, 0x74, 0x46, 0x84, 0xd9, + 0xa4, 0x43, 0x80, 0x86, 0xa2, 0xac, 0x7a, 0xc7, 0xf5, 0x58, 0xd6, 0x9f, 0x83, 0xb5, 0x82, 0x87, + 0x34, 0x2c, 0x80, 0x44, 0x28, 0x9c, 0x08, 0x8a, 0x98, 0x41, 0xfb, 0x4a, 0x9f, 0xf5, 0x95, 0x58, + 0x2b, 0x3f, 0x4c, 0x43, 0x11, 0x19, 0x87, 0x53, 0xda, 0xc1, 0x9c, 0xee, 0xa6, 0xa5, 0xbe, 0xa6, + 0x59, 0x30, 0xc8, 0x4a, 0x8b, 0x3c, 0x44, 0xe5, 0x33, 0xe0, 0x41, 0x4f, 0x4f, 0xda, 0xd3, 0x4e, + 0x61, 0x9d, 0x84, 0x3e, 0xf8, 0x55, 0x05, 0x25, 0xd6, 0xed, 0x61, 0x14, 0x86, 0x99, 0xd4, 0x04, + 0xfc, 0xf0, 0x58, 0x69, 0x25, 0x62, 0x76, 0x46, 0xe8, 0x41, 0x2c, 0xff, 0x29, 0xdd, 0xaf, 0x3f, + 0x22, 0xea, 0xdd, 0x79, 0xe3, 0x2d, 0xe2, 0xf1, 0x36, 0x53, 0xb2, 0xaa, 0xcb, 0x2c, 0x54, 0x79, + 0x10, 0x2f, 0x21, 0xb8, 0x42, 0x09, 0x98, 0x0b, 0x70, 0x04, 0xbd, 0x50, 0x98, 0x3c, 0x74, 0xcf, + 0x2e, 0x88, 0x90, 0x6a, 0x67, 0xf4, 0xfe, 0xff, 0xe0, 0xf2, 0x0f, 0xba, 0xfb, 0x7d, 0x57, 0xcf, + 0xb8, 0x37, 0xb9, 0xec, 0x1e, 0x16, 0xd1, 0xd1, 0xbd, 0xc3, 0x9e, 0x4b, 0x64, 0xe2, 0x7c, 0x3c, + 0x98, 0x82, 0x21, 0x21, 0x06, 0xcf, 0x7c, 0xaf, 0x7b, 0xdf, 0x6e, 0x8a, 0xd3, 0xd8, 0x88, 0xad, + 0xde, 0x89, 0xd3, 0xd5, 0xe9, 0x3c, 0xee, 0x21, 0x8b, 0x85, 0x07, 0x14, 0xeb, 0xee, 0x85, 0x2a, + 0xe2, 0xc5, 0x99, 0xfa, 0x11, 0x3e, 0xa8, 0xc1, 0x64, 0x98, 0x0e, 0x01, 0xd0, 0xe7, 0xc0, 0x0e, + 0x31, 0x10, 0xd8, 0xda, 0x1a, 0x18, 0x31, 0x27, 0x27, 0x80, 0x07, 0x9c, 0x9f, 0x73, 0x03, 0xfb, + 0xc5, 0x21, 0x59, 0xf0, 0xb1, 0xb2, 0x46, 0xaa, 0xfe, 0x9a, 0x52, 0x60, 0x4c, 0x06, 0xe2, 0x01, + 0x8b, 0x41, 0x09, 0x93, 0x70, 0x9b, 0x6f, 0x30, 0x66, 0x85, 0x0f, 0x9a, 0xb0, 0xf3, 0xf1, 0x82, + 0xd5, 0xbc, 0xd7, 0xdc, 0x0c, 0x0e, 0x85, 0x6f, 0x1c, 0x4c, 0x25, 0xcb, 0xda, 0xc1, 0xd7, 0xd9, + 0x56, 0x02, 0xcc, 0x80, 0x30, 0xc7, 0x40, 0xa1, 0xdf, 0x12, 0xcb, 0xbe, 0x78, 0xb1, 0xc9, 0x18, + 0x3e, 0x48, 0xbe, 0x25, 0x08, 0xb1, 0xac, 0x82, 0x24, 0x0c, 0x56, 0xfe, 0xe5, 0xdf, 0xb1, 0x69, + 0xc2, 0x0c, 0xf4, 0xb6, 0x94, 0x10, 0x9f, 0x8f, 0x38, 0xd1, 0x52, 0x18, 0xab, 0x40, 0xd3, 0xa8, + 0x4c, 0x1e, 0x70, 0xc0, 0xbc, 0x3a, 0xc1, 0xe1, 0x71, 0xf0, 0x1c, 0xdd, 0xd2, 0x11, 0x88, 0x75, + 0x2d, 0x7a, 0xfc, 0x9a, 0xa8, 0xd3, 0x6d, 0x32, 0xc9, 0xbd, 0xd2, 0xff, 0xde, 0x94, 0xd0, 0x2f, + 0x56, 0xd0, 0x4e, 0x67, 0xf0, 0x31, 0x98, 0x82, 0xcc, 0x2b, 0x05, 0x40, 0xf6, 0xd2, 0x94, 0xbd, + 0x1c, 0xbf, 0x56, 0x33, 0x75, 0xc3, 0x09, 0x3c, 0xdd, 0xdc, 0x5e, 0x29, 0x7a, 0x95, 0xa5, 0x2f, + 0x5b, 0x89, 0x6b, 0x7e, 0x7b, 0x45, 0xd4, 0xcd, 0xcb, 0x31, 0x2c, 0x52, 0x56, 0x5f, 0xef, 0x88, + 0xc2, 0x23, 0xaf, 0x88, 0xbe, 0xa9, 0x29, 0xf2, 0x5f, 0x97, 0x23, 0x7b, 0x3e, 0x47, 0xbd, 0x62, + 0x5a, 0x87, 0x61, 0xa8, 0x4b, 0x46, 0x52, 0x48, 0xdb, 0x95, 0x99, 0x48, 0x2a, 0x23, 0x10, 0x6b, + 0x3f, 0x8b, 0x55, 0x56, 0x97, 0x18, 0x80, 0x83, 0x98, 0xd7, 0xe9, 0xc1, 0x8a, 0xc1, 0x02, 0x1d, + 0xec, 0xd9, 0xd4, 0x80, 0x83, 0x6b, 0xd7, 0x22, 0x91, 0x32, 0x3d, 0x6c, 0x09, 0x7c, 0x30, 0x2e, + 0xeb, 0x25, 0x9c, 0x60, 0x3d, 0xdb, 0x4e, 0x05, 0x9e, 0x58, 0x61, 0x1f, 0x09, 0xef, 0x81, 0x54, + 0x1b, 0x72, 0x80, 0xc6, 0x11, 0xc1, 0x30, 0x94, 0xc2, 0x2a, 0x74, 0xb9, 0x59, 0x1c, 0xb0, 0x12, + 0x23, 0x3b, 0x42, 0xeb, 0x8b, 0x11, 0x92, 0x0b, 0xf0, 0x41, 0x40, 0xc7, 0xa8, 0x8c, 0x76, 0x1a, + 0xa5, 0x98, 0x86, 0x38, 0xf8, 0x35, 0x08, 0x07, 0x73, 0x2d, 0xe8, 0x34, 0xcb, 0x1b, 0xe2, 0xfb, + 0xc2, 0x8b, 0xd1, 0xe8, 0x2f, 0x91, 0xd5, 0xb5, 0xc9, 0xc5, 0x1d, 0x7c, 0xb9, 0x41, 0xa2, 0x7f, + 0xfd, 0xf8, 0x9e, 0x9f, 0xfc, 0xef, 0x0a, 0xf2, 0xff, 0x8b, 0xff, 0x01, 0x4a, 0x13, 0x82, 0xa3, + 0xc1, 0x11, 0x00, 0x00 }; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 3648573cb..46def5f80 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -8,7 +8,7 @@ // Autogenerated from wled00/data/style.css, do not edit!! const uint16_t PAGE_settingsCss_length = 824; const uint8_t PAGE_settingsCss[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x55, 0x5d, 0x8b, 0x9c, 0x30, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x55, 0x5d, 0x8b, 0x9c, 0x30, 0x14, 0xfd, 0x2b, 0x96, 0x61, 0x61, 0x0b, 0xa3, 0xa8, 0xa3, 0xb3, 0xd3, 0x48, 0xa1, 0xf4, 0xbd, 0x6f, 0xa5, 0x14, 0xca, 0x3e, 0x44, 0x73, 0x1d, 0xc3, 0xe4, 0x43, 0x92, 0xd8, 0x75, 0x2a, 0xfe, 0xf7, 0x26, 0x7e, 0xac, 0xce, 0xac, 0x6c, 0x5f, 0xca, 0xe0, 0xa0, 0xde, 0x98, 0x7b, 0xee, 0xb9, @@ -66,7 +66,7 @@ const uint8_t PAGE_settingsCss[] PROGMEM = { // Autogenerated from wled00/data/settings.htm, do not edit!! const uint16_t PAGE_settings_length = 985; const uint8_t PAGE_settings[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x56, 0x6d, 0x6f, 0xdb, 0x36, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x56, 0x6d, 0x6f, 0xdb, 0x36, 0x10, 0xfe, 0xee, 0x5f, 0xc1, 0xb0, 0x58, 0x23, 0xa1, 0xb2, 0xec, 0x38, 0xc3, 0xb0, 0xc9, 0x96, 0x8b, 0x35, 0x2f, 0x9d, 0x87, 0x04, 0x0d, 0x90, 0xa4, 0xdd, 0x80, 0x7d, 0xa1, 0xc9, 0x93, 0xcc, 0x46, 0x22, 0x05, 0xf2, 0xe4, 0xc4, 0x73, 0xf3, 0xdf, 0x77, 0x94, 0x9d, 0xb7, 0x36, 0xd8, 0x8a, @@ -134,7 +134,7 @@ const uint8_t PAGE_settings[] PROGMEM = { // Autogenerated from wled00/data/settings_wifi.htm, do not edit!! const uint16_t PAGE_settings_wifi_length = 1557; const uint8_t PAGE_settings_wifi[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x57, 0xff, 0x4f, 0xdb, 0x38, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x57, 0xff, 0x4f, 0xdb, 0x38, 0x14, 0xff, 0x3d, 0x7f, 0x85, 0xf1, 0x49, 0x53, 0xa3, 0x85, 0x94, 0xb6, 0xc7, 0x6e, 0x62, 0x49, 0x76, 0x5d, 0xdb, 0x0d, 0xee, 0x18, 0xeb, 0x29, 0x68, 0xe8, 0xa4, 0x93, 0x26, 0x37, 0x79, 0x6d, 0x3d, 0x9c, 0x38, 0x17, 0x3b, 0x2d, 0x88, 0xf1, 0xbf, 0xdf, 0xb3, 0x93, 0x96, 0x16, 0xe8, 0x36, @@ -238,7 +238,7 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = { // Autogenerated from wled00/data/settings_leds.htm, do not edit!! const uint16_t PAGE_settings_leds_length = 7326; const uint8_t PAGE_settings_leds[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xdd, 0x3c, 0xed, 0x76, 0xe2, 0xc6, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0xed, 0x76, 0xe2, 0xc6, 0x92, 0xff, 0x79, 0x8a, 0x76, 0x27, 0x71, 0xa4, 0x8b, 0x0c, 0x12, 0x1f, 0x8e, 0x07, 0x10, 0xac, 0xf1, 0x78, 0x26, 0xbe, 0xd7, 0x8e, 0x7d, 0x8c, 0x93, 0xb9, 0x7b, 0x26, 0x73, 0x32, 0x42, 0x34, 0xa0, 0xb1, 0x90, 0x74, 0x25, 0x61, 0x9b, 0xb5, 0xd9, 0x67, 0xda, 0x67, 0xd8, 0x27, 0xdb, 0xaa, @@ -702,7 +702,7 @@ const uint8_t PAGE_settings_leds[] PROGMEM = { // Autogenerated from wled00/data/settings_dmx.htm, do not edit!! const uint16_t PAGE_settings_dmx_length = 1612; const uint8_t PAGE_settings_dmx[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36, 0x10, 0x7d, 0xd7, 0x57, 0x20, 0x78, 0x88, 0xc9, 0x31, 0x43, 0x4a, 0x4e, 0x95, 0x36, 0x32, 0x49, 0x37, 0x56, 0x5c, 0xdb, 0x1d, 0xdb, 0xf5, 0x44, 0x49, 0xd3, 0x4e, 0xd3, 0xe9, 0x40, 0xe4, 0x4a, 0x44, 0x4c, 0x02, 0x2c, 0x00, 0x4a, 0x76, 0x2e, 0xff, 0xde, 0x05, 0x48, 0x5d, 0xec, 0xd8, 0x69, @@ -809,7 +809,7 @@ const uint8_t PAGE_settings_dmx[] PROGMEM = { // Autogenerated from wled00/data/settings_ui.htm, do not edit!! const uint16_t PAGE_settings_ui_length = 3090; const uint8_t PAGE_settings_ui[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48, 0x16, 0xfd, 0xce, 0xaf, 0xe8, 0x74, 0x52, 0x1e, 0x54, 0x56, 0x04, 0x4e, 0x66, 0x6b, 0x13, 0x40, 0x78, 0x63, 0xc7, 0x93, 0x78, 0xca, 0xd9, 0x64, 0x83, 0xbd, 0x99, 0xad, 0xac, 0xcb, 0x23, 0xa4, 0x06, 0x3a, 0x16, 0x92, 0x46, 0xdd, 0x32, 0x66, 0x09, 0xff, 0x7d, 0xcf, 0xed, 0x96, 0x40, 0x60, @@ -1009,7 +1009,7 @@ const uint8_t PAGE_settings_ui[] PROGMEM = { // Autogenerated from wled00/data/settings_sync.htm, do not edit!! const uint16_t PAGE_settings_sync_length = 3153; const uint8_t PAGE_settings_sync[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x9d, 0x5a, 0x6d, 0x77, 0xda, 0xb8, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x5a, 0x6d, 0x77, 0xda, 0xb8, 0x12, 0xfe, 0xee, 0x5f, 0xa1, 0xf8, 0xc3, 0x2e, 0x6c, 0x08, 0x18, 0x12, 0xd2, 0x94, 0x62, 0xf7, 0x86, 0x90, 0x26, 0xec, 0x36, 0x0d, 0x85, 0x64, 0x5f, 0xce, 0xb9, 0xe7, 0xec, 0x11, 0xb6, 0x00, 0x25, 0xb6, 0xe5, 0xb5, 0xe5, 0xbc, 0x9c, 0x6e, 0xff, 0xfb, 0x9d, 0x91, 0x6c, 0x03, 0x06, 0x02, @@ -1213,7 +1213,7 @@ const uint8_t PAGE_settings_sync[] PROGMEM = { // Autogenerated from wled00/data/settings_time.htm, do not edit!! const uint16_t PAGE_settings_time_length = 3302; const uint8_t PAGE_settings_time[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x3a, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x3a, 0xf2, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0xb8, 0xf1, 0xc5, 0x79, 0x42, 0x5a, 0x48, 0x62, 0x77, 0x43, 0x48, 0x0b, 0x2d, 0x09, 0x9c, 0x26, 0xbd, 0xec, 0xf6, 0x71, 0x6e, 0x15, 0x5b, 0x49, 0x0c, 0x8e, 0xe4, 0xb5, 0x65, 0x02, 0x4b, 0xf9, 0xef, 0x3b, 0x92, 0x1c, 0xe7, 0x85, 0x81, 0xf6, 0xde, 0xfd, @@ -1426,7 +1426,7 @@ const uint8_t PAGE_settings_time[] PROGMEM = { // Autogenerated from wled00/data/settings_sec.htm, do not edit!! const uint16_t PAGE_settings_sec_length = 2406; const uint8_t PAGE_settings_sec[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, 0x12, 0xfe, 0xee, 0x5f, 0x31, 0x4c, 0xaa, 0x58, 0xeb, 0x22, 0x2c, 0x43, 0x72, 0x5b, 0x09, 0x20, 0xe7, 0x20, 0x90, 0x0d, 0x57, 0x10, 0x28, 0x6c, 0x36, 0x77, 0x95, 0x4b, 0xa5, 0xc6, 0xd2, 0xd8, 0x9a, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x38, 0xbe, 0xec, 0xfe, 0xf7, 0x7b, 0x7a, 0x24, 0xd9, 0x86, @@ -1583,7 +1583,7 @@ const uint8_t PAGE_settings_sec[] PROGMEM = { // Autogenerated from wled00/data/settings_um.htm, do not edit!! const uint16_t PAGE_settings_um_length = 2230; const uint8_t PAGE_settings_um[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, 0x12, 0xfe, 0xce, 0xaf, 0x10, 0x13, 0x0a, 0xa4, 0xb2, 0x90, 0x4d, 0xb8, 0xdd, 0x4b, 0x6c, 0x8f, 0xd9, 0x90, 0x97, 0x0b, 0x57, 0x49, 0xa0, 0x8a, 0xec, 0x5e, 0x5d, 0x71, 0xd4, 0x22, 0x4b, 0x63, 0x7b, 0x82, 0x3c, 0xa3, 0x9a, 0x19, 0xf1, 0x72, 0xc6, 0xff, 0xfd, 0x9e, 0x1e, 0x49, 0xc6, 0x26, @@ -1729,7 +1729,7 @@ const uint8_t PAGE_settings_um[] PROGMEM = { // Autogenerated from wled00/data/settings_2D.htm, do not edit!! const uint16_t PAGE_settings_2D_length = 1751; const uint8_t PAGE_settings_2D[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x8d, 0x58, 0x6d, 0x73, 0xdb, 0x36, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x8d, 0x58, 0x6d, 0x73, 0xdb, 0x36, 0x12, 0xfe, 0xce, 0x5f, 0x01, 0x63, 0x3a, 0x2d, 0xd9, 0x50, 0x94, 0xe4, 0xde, 0x75, 0x3a, 0x16, 0x49, 0x37, 0x6e, 0xdc, 0xda, 0x1d, 0x7b, 0xe2, 0x89, 0x72, 0xce, 0xdc, 0x5c, 0x3a, 0x29, 0x44, 0xae, 0x44, 0xc4, 0x24, 0xc0, 0x01, 0x40, 0xd9, 0xae, 0xe2, 0xff, 0x7e, 0x0b, 0x90, 0x7a, 0xb5, @@ -1845,7 +1845,7 @@ const uint8_t PAGE_settings_2D[] PROGMEM = { // Autogenerated from wled00/data/settings_pin.htm, do not edit!! const uint16_t PAGE_settings_pin_length = 471; const uint8_t PAGE_settings_pin[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31, 0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0x6c, 0xa8, 0xa8, 0x04, 0xaa, 0xbd, 0x42, 0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x52, 0x55, 0x55, 0xe5, 0xd8, 0xb3, 0x89, 0x55, 0x7f, 0x2c, 0xb6, 0x37, 0x21, 0x54, 0xfc, 0x77, 0xc6, 0xbb, 0xa1, 0xa0, 0x5c, 0xd6, 0x7e, 0x33, 0xe3, 0x37, diff --git a/wled00/util.cpp b/wled00/util.cpp index a6f5363d9..107378a8f 100644 --- a/wled00/util.cpp +++ b/wled00/util.cpp @@ -400,64 +400,42 @@ typedef enum UM_SoundSimulations { // this is still work in progress um_data_t* simulateSound(uint8_t simulationId) { - static float sampleAvg; - static uint8_t soundAgc; - static float sampleAgc; - static int16_t sampleRaw; - static int16_t rawSampleAgc; static uint8_t samplePeak; static float FFT_MajorPeak; - static float FFT_Magnitude; static uint8_t maxVol; static uint8_t binNum; - static float multAgc; - float sampleGain; - uint8_t soundSquelch; - uint8_t inputLevel; + static float volumeSmth; + static uint16_t volumeRaw; + static float my_magnitude; //arrays uint8_t *fftResult; - uint8_t *myVals; - float *fftBin; static um_data_t* um_data = nullptr; if (!um_data) { //claim storage for arrays fftResult = (uint8_t *)malloc(sizeof(uint8_t) * 16); - myVals = (uint8_t *)malloc(sizeof(uint8_t) * 32); - fftBin = (float *)malloc(sizeof(float) * 256); // not used (for debugging purposes) // initialize um_data pointer structure // NOTE!!! // This may change as AudioReactive usermod may change um_data = new um_data_t; - um_data->u_size = 18; + um_data->u_size = 8; um_data->u_type = new um_types_t[um_data->u_size]; um_data->u_data = new void*[um_data->u_size]; - um_data->u_data[ 0] = &sampleAvg; - um_data->u_data[ 1] = &soundAgc; - um_data->u_data[ 2] = &sampleAgc; - um_data->u_data[ 3] = &sampleRaw; - um_data->u_data[ 4] = &rawSampleAgc; - um_data->u_data[ 5] = &samplePeak; - um_data->u_data[ 6] = &FFT_MajorPeak; - um_data->u_data[ 7] = &FFT_Magnitude; - um_data->u_data[ 8] = fftResult; - um_data->u_data[ 9] = &maxVol; - um_data->u_data[10] = &binNum; - um_data->u_data[11] = &multAgc; - um_data->u_data[14] = myVals; //*used (only once, Pixels) - um_data->u_data[13] = &sampleGain; - um_data->u_data[15] = &soundSquelch; - um_data->u_data[16] = fftBin; //only used in binmap - um_data->u_data[17] = &inputLevel; + um_data->u_data[0] = &volumeSmth; + um_data->u_data[1] = &volumeRaw; + um_data->u_data[2] = fftResult; + um_data->u_data[3] = &samplePeak; + um_data->u_data[4] = &FFT_MajorPeak; + um_data->u_data[5] = &my_magnitude; + um_data->u_data[6] = &maxVol; + um_data->u_data[7] = &binNum; } else { // get arrays from um_data - fftResult = (uint8_t*)um_data->u_data[8]; - myVals = (uint8_t*)um_data->u_data[14]; - fftBin = (float*)um_data->u_data[16]; + fftResult = (uint8_t*)um_data->u_data[2]; } uint32_t ms = millis(); @@ -468,36 +446,36 @@ um_data_t* simulateSound(uint8_t simulationId) for (int i = 0; i<16; i++) fftResult[i] = beatsin8(120 / (i+1), 0, 255); // fftResult[i] = (beatsin8(120, 0, 255) + (256/16 * i)) % 256; - sampleAvg = fftResult[8]; + volumeSmth = fftResult[8]; break; case UMS_WeWillRockYou: if (ms%2000 < 200) { - sampleAvg = random8(255); + volumeSmth = random8(255); for (int i = 0; i<5; i++) fftResult[i] = random8(255); } else if (ms%2000 < 400) { - sampleAvg = 0; + volumeSmth = 0; for (int i = 0; i<16; i++) fftResult[i] = 0; } else if (ms%2000 < 600) { - sampleAvg = random8(255); + volumeSmth = random8(255); for (int i = 5; i<11; i++) fftResult[i] = random8(255); } else if (ms%2000 < 800) { - sampleAvg = 0; + volumeSmth = 0; for (int i = 0; i<16; i++) fftResult[i] = 0; } else if (ms%2000 < 1000) { - sampleAvg = random8(255); + volumeSmth = random8(255); for (int i = 11; i<16; i++) fftResult[i] = random8(255); } else { - sampleAvg = 0; + volumeSmth = 0; for (int i = 0; i<16; i++) fftResult[i] = 0; } @@ -505,33 +483,22 @@ um_data_t* simulateSound(uint8_t simulationId) case UMS_10_3: for (int i = 0; i<16; i++) fftResult[i] = inoise8(beatsin8(90 / (i+1), 0, 200)*15 + (ms>>10), ms>>3); - sampleAvg = fftResult[8]; + volumeSmth = fftResult[8]; break; case UMS_14_3: for (int i = 0; i<16; i++) fftResult[i] = inoise8(beatsin8(120 / (i+1), 10, 30)*10 + (ms>>14), ms>>3); - sampleAvg = fftResult[8]; + volumeSmth = fftResult[8]; break; } - //derive other vars from sampleAvg - - //sampleAvg = mapf(sampleAvg, 0, 255, 0, 255); // help me out here - soundAgc = 0; //only avg in simulations - sampleAgc = sampleAvg; - sampleRaw = sampleAvg; - sampleRaw = map(sampleRaw, 50, 190, 0, 224); - rawSampleAgc = sampleAvg; samplePeak = random8() > 250; - FFT_MajorPeak = sampleAvg; - FFT_Magnitude = sampleAvg; - multAgc = sampleAvg; - myVals[millis()%32] = sampleAvg; // filling values semi randomly (why?) - sampleGain = 40; - soundSquelch = 10; + FFT_MajorPeak = volumeSmth; maxVol = 10; // this gets feedback fro UI binNum = 8; // this gets feedback fro UI - inputLevel = 128; // this gets feedback fro UI + volumeRaw = volumeSmth; + my_magnitude = 10000.0 / 8.0f; //no idea if 10000 is a good value for FFT_Magnitude ??? + if (volumeSmth < 1 ) my_magnitude = 0.001f; // noise gate closed - mute return um_data; }