Merge remote-tracking branch 'origin/dev' into audioreactive-prototype
This commit is contained in:
commit
228890aa19
@ -109,6 +109,8 @@ static void autoResetPeak(void); // peak auto-reset function
|
|||||||
#define FFT_SPEED_OVER_PRECISION // enables use of reciprocals (1/x etc), and an a few other speedups
|
#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 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)
|
#define sqrt(x) sqrtf(x) // little hack that reduces FFT time by 50% on ESP32 (as alternative to FFT_SQRT_APPROXIMATION)
|
||||||
|
#else
|
||||||
|
// lib_deps += https://github.com/blazoncek/arduinoFFT.git
|
||||||
#endif
|
#endif
|
||||||
#include "arduinoFFT.h"
|
#include "arduinoFFT.h"
|
||||||
|
|
||||||
@ -1050,7 +1052,7 @@ class AudioReactive : public Usermod {
|
|||||||
if (strip.isUpdating() && (millis() - lastUMRun < 2)) return; // be nice, but not too nice
|
if (strip.isUpdating() && (millis() - lastUMRun < 2)) return; // be nice, but not too nice
|
||||||
|
|
||||||
// suspend local sound processing when "real time mode" is active (E131, UDP, ADALIGHT, ARTNET)
|
// 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
|
if ( (realtimeOverride == REALTIME_OVERRIDE_NONE) // please add other overrides here if needed
|
||||||
&&( (realtimeMode == REALTIME_MODE_GENERIC)
|
&&( (realtimeMode == REALTIME_MODE_GENERIC)
|
||||||
||(realtimeMode == REALTIME_MODE_E131)
|
||(realtimeMode == REALTIME_MODE_E131)
|
||||||
||(realtimeMode == REALTIME_MODE_UDP)
|
||(realtimeMode == REALTIME_MODE_UDP)
|
||||||
@ -1363,10 +1365,6 @@ class AudioReactive : public Usermod {
|
|||||||
infoArr.add(fftTime-sampleTime);
|
infoArr.add(fftTime-sampleTime);
|
||||||
infoArr.add("ms");
|
infoArr.add("ms");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// add a small horizontal line, for better readability
|
|
||||||
infoArr = user.createNestedArray(F("<hr style=\"height:1px;border-width:0;color:gray;background-color:gray\" />"));
|
|
||||||
infoArr.add(F(" <hr style=\"height:1px;border-width:0;color:gray;background-color:gray\" /> "));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
358
wled00/FX.cpp
358
wled00/FX.cpp
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#define IBN 5100
|
#define IBN 5100
|
||||||
#define PALETTE_SOLID_WRAP (strip.paletteBlend == 1 || strip.paletteBlend == 3)
|
#define PALETTE_SOLID_WRAP (strip.paletteBlend == 1 || strip.paletteBlend == 3)
|
||||||
|
#define indexToVStrip(index, stripNr) ((index) | (int((stripNr)+1)<<16))
|
||||||
|
|
||||||
// effect utility functions
|
// effect utility functions
|
||||||
uint8_t sin_gap(uint16_t in) {
|
uint8_t sin_gap(uint16_t in) {
|
||||||
@ -1926,10 +1927,7 @@ uint16_t mode_palette()
|
|||||||
for (int i = 0; i < SEGLEN; i++)
|
for (int i = 0; i < SEGLEN; i++)
|
||||||
{
|
{
|
||||||
uint8_t colorIndex = (i * 255 / SEGLEN) - counter;
|
uint8_t colorIndex = (i * 255 / SEGLEN) - counter;
|
||||||
|
SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(colorIndex, false, noWrap, 255));
|
||||||
if (noWrap) colorIndex = map(colorIndex, 0, 255, 0, 240); //cut off blend at palette "end"
|
|
||||||
|
|
||||||
SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(colorIndex, false, true, 255));
|
|
||||||
}
|
}
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
@ -1966,59 +1964,59 @@ static const char _data_FX_MODE_PALETTE[] PROGMEM = "Palette@Cycle speed,;1,2,3;
|
|||||||
// in step 3 above) (Effect Intensity = Sparking).
|
// in step 3 above) (Effect Intensity = Sparking).
|
||||||
uint16_t mode_fire_2012()
|
uint16_t mode_fire_2012()
|
||||||
{
|
{
|
||||||
const uint16_t cols = strip.isMatrix ? SEGMENT.virtualWidth() : 1;
|
uint16_t strips = SEGMENT.nrOfVStrips();
|
||||||
const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength();
|
if (!SEGENV.allocateData(strips * SEGLEN)) return mode_static(); //allocation failed
|
||||||
|
|
||||||
uint32_t it = strip.now >> 5; //div 32
|
|
||||||
//uint16_t q = cols>>2; // a quarter of flames
|
|
||||||
|
|
||||||
if (!SEGENV.allocateData(cols*rows)) return mode_static(); //allocation failed
|
|
||||||
|
|
||||||
byte* heat = SEGENV.data;
|
byte* heat = SEGENV.data;
|
||||||
|
|
||||||
if (it != SEGENV.step) {
|
uint32_t it = strip.now >> 5; //div 32
|
||||||
SEGENV.step = it;
|
|
||||||
uint8_t ignition = max(3,rows/10); // ignition area: 10% of segment length or minimum 3 pixels
|
|
||||||
|
|
||||||
for (int f = 0; f < cols; f++) {
|
struct virtualStrip {
|
||||||
// Step 1. Cool down every cell a little
|
static void runStrip(uint16_t stripNr, byte* heat, uint32_t it) {
|
||||||
for (int i = 0; i < rows; i++) {
|
|
||||||
uint8_t cool = (((20 + SEGMENT.speed/3) * 16) / rows);
|
if (it != SEGENV.step)
|
||||||
/*
|
{
|
||||||
// 2D enhancement: cool sides of the flame a bit more
|
uint8_t ignition = max(3,SEGLEN/10); // ignition area: 10% of segment length or minimum 3 pixels
|
||||||
if (cols>5) {
|
|
||||||
if (f < q) cool = qadd8(cool, 2*(uint16_t)((cool * (q-f))/cols)); // cool segment sides a bit more
|
// Step 1. Cool down every cell a little
|
||||||
if (f > 3*q) cool = qadd8(cool, 2*(uint16_t)((cool * (cols-f))/cols)); // cool segment sides a bit more
|
for (int i = 0; i < SEGLEN; i++) {
|
||||||
|
uint8_t cool = random8((((20 + SEGMENT.speed/3) * 16) / SEGLEN)+2);
|
||||||
|
uint8_t minTemp = 0;
|
||||||
|
if (i<ignition) {
|
||||||
|
cool /= (ignition-i); // ignition area cools slower
|
||||||
|
minTemp = 4*(ignition-i) + 8; // and should not become black
|
||||||
|
}
|
||||||
|
uint8_t temp = qsub8(heat[i], cool);
|
||||||
|
heat[i] = i<ignition && temp<minTemp ? minTemp : temp; // prevent ignition area from becoming black
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2. Heat from each cell drifts 'up' and diffuses a little
|
||||||
|
for (int k = SEGLEN -1; k > 1; k--) {
|
||||||
|
heat[k] = (heat[k - 1] + (heat[k - 2]<<1) ) / 3; // heat[k-2] multiplied by 2
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3. Randomly ignite new 'sparks' of heat near the bottom
|
||||||
|
if (random8() <= SEGMENT.intensity) {
|
||||||
|
uint8_t y = random8(ignition);
|
||||||
|
heat[y] = qadd8(heat[y], random8(160,255));
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
uint8_t temp = qsub8(heat[i+rows*f], random8(0, cool + 2));
|
|
||||||
heat[i+rows*f] = (temp==0 && i<ignition) ? random8(1,16) : temp; // prevent ignition area from becoming black
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 2. Heat from each cell drifts 'up' and diffuses a little
|
// Step 4. Map from heat cells to LED colors
|
||||||
for (int k = rows -1; k > 1; k--) {
|
for (int j = 0; j < SEGLEN; j++) {
|
||||||
heat[k+rows*f] = (heat[k+rows*f - 1] + (heat[k+rows*f - 2]<<1) ) / 3; // heat[k-2] multiplied by 2
|
SEGMENT.setPixelColor(indexToVStrip(j, stripNr), ColorFromPalette(SEGPALETTE, MIN(heat[j],240), 255, NOBLEND));
|
||||||
}
|
|
||||||
|
|
||||||
// Step 3. Randomly ignite new 'sparks' of heat near the bottom
|
|
||||||
if (random8() <= SEGMENT.intensity) {
|
|
||||||
uint8_t y = random8(ignition);
|
|
||||||
heat[y+rows*f] = qadd8(heat[y+rows*f], random8(160,255));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
for (int stripNr=0; stripNr<strips; stripNr++)
|
||||||
|
virtualStrip::runStrip(stripNr, &heat[stripNr * SEGLEN], it);
|
||||||
|
|
||||||
|
if (it != SEGENV.step)
|
||||||
|
SEGENV.step = it;
|
||||||
|
|
||||||
for (int f = 0; f < cols; f++) {
|
|
||||||
// Step 4. Map from heat cells to LED colors
|
|
||||||
for (int j = 0; j < rows; j++) {
|
|
||||||
CRGB color = ColorFromPalette(SEGPALETTE, /*MIN(*/heat[j+rows*f]/*,240)*/, 255, LINEARBLEND);
|
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(f, rows -j -1, color);
|
|
||||||
else SEGMENT.setPixelColor(j, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,1d,2d";
|
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,mp12=1,1d"; //bars
|
||||||
|
|
||||||
|
|
||||||
// ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb
|
// ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb
|
||||||
@ -2849,7 +2847,7 @@ uint16_t mode_bouncing_balls(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int pos = roundf(balls[i].height * (SEGLEN - 1));
|
int pos = roundf(balls[i].height * (SEGLEN - 1));
|
||||||
if (SEGLEN<32) SEGMENT.setPixelColor(pos | int((stripNr+1)<<16), color); // encode virtual strip into index
|
if (SEGLEN<32) SEGMENT.setPixelColor(indexToVStrip(pos, stripNr), color); // encode virtual strip into index
|
||||||
else SEGMENT.setPixelColor(balls[i].height + (stripNr+1)*10.0f, color);
|
else SEGMENT.setPixelColor(balls[i].height + (stripNr+1)*10.0f, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2942,68 +2940,68 @@ typedef struct Spark {
|
|||||||
uint8_t colIndex;
|
uint8_t colIndex;
|
||||||
} spark;
|
} spark;
|
||||||
|
|
||||||
|
#define maxNumPopcorn 21 // max 21 on 16 segment ESP8266
|
||||||
/*
|
/*
|
||||||
* POPCORN
|
* POPCORN
|
||||||
* modified from https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Popcorn.h
|
* modified from https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Popcorn.h
|
||||||
*/
|
*/
|
||||||
uint16_t mode_popcorn(void) {
|
uint16_t mode_popcorn(void) {
|
||||||
const uint16_t cols = strip.isMatrix ? SEGMENT.virtualWidth() : 1;
|
|
||||||
const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength();
|
|
||||||
|
|
||||||
//allocate segment data
|
//allocate segment data
|
||||||
uint16_t maxNumPopcorn = 21; // max 21 on 16 segment ESP8266
|
uint16_t strips = SEGMENT.nrOfVStrips();
|
||||||
uint16_t dataSize = sizeof(spark) * maxNumPopcorn;
|
uint16_t dataSize = sizeof(spark) * maxNumPopcorn;
|
||||||
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
|
if (!SEGENV.allocateData(dataSize * strips)) return mode_static(); //allocation failed
|
||||||
|
|
||||||
Spark* popcorn = reinterpret_cast<Spark*>(SEGENV.data);
|
|
||||||
|
|
||||||
float gravity = -0.0001 - (SEGMENT.speed/200000.0); // m/s/s
|
Spark* popcorn = reinterpret_cast<Spark*>(SEGENV.data);
|
||||||
gravity *= rows; //SEGLEN
|
|
||||||
|
|
||||||
bool hasCol2 = SEGCOLOR(2);
|
bool hasCol2 = SEGCOLOR(2);
|
||||||
SEGMENT.fill(hasCol2 ? BLACK : SEGCOLOR(1));
|
SEGMENT.fill(hasCol2 ? BLACK : SEGCOLOR(1));
|
||||||
|
|
||||||
uint8_t numPopcorn = SEGMENT.intensity*maxNumPopcorn/255;
|
struct virtualStrip {
|
||||||
if (numPopcorn == 0) numPopcorn = 1;
|
static void runStrip(uint16_t stripNr, Spark* popcorn) {
|
||||||
|
float gravity = -0.0001 - (SEGMENT.speed/200000.0); // m/s/s
|
||||||
|
gravity *= SEGLEN;
|
||||||
|
|
||||||
for (int i = 0; i < numPopcorn; i++) {
|
uint8_t numPopcorn = SEGMENT.intensity*maxNumPopcorn/255;
|
||||||
if (popcorn[i].pos >= 0.0f) { // if kernel is active, update its position
|
if (numPopcorn == 0) numPopcorn = 1;
|
||||||
popcorn[i].pos += popcorn[i].vel;
|
|
||||||
popcorn[i].vel += gravity;
|
for(int i = 0; i < numPopcorn; i++) {
|
||||||
} else { // if kernel is inactive, randomly pop it
|
if (popcorn[i].pos >= 0.0f) { // if kernel is active, update its position
|
||||||
if (random8() < 2) { // POP!!!
|
popcorn[i].pos += popcorn[i].vel;
|
||||||
popcorn[i].pos = 0.01f;
|
popcorn[i].vel += gravity;
|
||||||
popcorn[i].posX = random16(cols);
|
} else { // if kernel is inactive, randomly pop it
|
||||||
|
if (random8() < 2) { // POP!!!
|
||||||
uint16_t peakHeight = 128 + random8(128); //0-255
|
popcorn[i].pos = 0.01f;
|
||||||
peakHeight = (peakHeight * (rows -1)) >> 8;
|
|
||||||
popcorn[i].vel = sqrt(-2.0 * gravity * peakHeight);
|
uint16_t peakHeight = 128 + random8(128); //0-255
|
||||||
popcorn[i].velX = 0;
|
peakHeight = (peakHeight * (SEGLEN -1)) >> 8;
|
||||||
|
popcorn[i].vel = sqrt(-2.0 * gravity * peakHeight);
|
||||||
if (SEGMENT.palette) {
|
|
||||||
popcorn[i].colIndex = random8();
|
if (SEGMENT.palette)
|
||||||
} else {
|
{
|
||||||
byte col = random8(0, NUM_COLORS);
|
popcorn[i].colIndex = random8();
|
||||||
if (!hasCol2 || !SEGCOLOR(col)) col = 0;
|
} else {
|
||||||
popcorn[i].colIndex = col;
|
byte col = random8(0, NUM_COLORS);
|
||||||
|
if (!SEGCOLOR(2) || !SEGCOLOR(col)) col = 0;
|
||||||
|
popcorn[i].colIndex = col;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (popcorn[i].pos >= 0.0f) { // draw now active popcorn (either active before or just popped)
|
||||||
|
uint32_t col = SEGMENT.color_wheel(popcorn[i].colIndex);
|
||||||
|
if (!SEGMENT.palette && popcorn[i].colIndex < NUM_COLORS) col = SEGCOLOR(popcorn[i].colIndex);
|
||||||
|
uint16_t ledIndex = popcorn[i].pos;
|
||||||
|
if (ledIndex < SEGLEN) SEGMENT.setPixelColor(indexToVStrip(ledIndex, stripNr), col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (popcorn[i].pos >= 0.0f) { // draw now active popcorn (either active before or just popped)
|
};
|
||||||
uint32_t col = SEGMENT.color_wheel(popcorn[i].colIndex);
|
|
||||||
if (!SEGMENT.palette && popcorn[i].colIndex < NUM_COLORS) col = SEGCOLOR(popcorn[i].colIndex);
|
for (int stripNr=0; stripNr<strips; stripNr++)
|
||||||
|
virtualStrip::runStrip(stripNr, &popcorn[stripNr * maxNumPopcorn]);
|
||||||
uint16_t ledIndex = popcorn[i].pos;
|
|
||||||
if (ledIndex < rows) {
|
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(uint16_t(popcorn[i].posX), rows - 1 - ledIndex, col);
|
|
||||||
else SEGMENT.setPixelColor(ledIndex, col);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;1d,2d";
|
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;mp12=1,1d"; //bar
|
||||||
|
|
||||||
|
|
||||||
//values close to 100 produce 5Hz flicker, which looks very candle-y
|
//values close to 100 produce 5Hz flicker, which looks very candle-y
|
||||||
@ -3375,91 +3373,84 @@ static const char _data_FX_MODE_EXPLODING_FIREWORKS[] PROGMEM = "Fireworks 1D@Gr
|
|||||||
*/
|
*/
|
||||||
uint16_t mode_drip(void)
|
uint16_t mode_drip(void)
|
||||||
{
|
{
|
||||||
const uint16_t cols = strip.isMatrix ? SEGMENT.virtualWidth() : 1;
|
|
||||||
const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength();
|
|
||||||
|
|
||||||
//allocate segment data
|
//allocate segment data
|
||||||
uint8_t numDrops = 4;
|
uint16_t strips = SEGMENT.nrOfVStrips();
|
||||||
uint16_t dataSize = sizeof(spark) * numDrops;
|
const int maxNumDrops = 4;
|
||||||
if (!SEGENV.allocateData(dataSize * cols)) return mode_static(); //allocation failed
|
uint16_t dataSize = sizeof(spark) * maxNumDrops;
|
||||||
|
if (!SEGENV.allocateData(dataSize * strips)) return mode_static(); //allocation failed
|
||||||
|
Spark* drops = reinterpret_cast<Spark*>(SEGENV.data);
|
||||||
|
|
||||||
SEGMENT.fill(SEGCOLOR(1));
|
SEGMENT.fill(SEGCOLOR(1));
|
||||||
|
|
||||||
Spark* drops = reinterpret_cast<Spark*>(SEGENV.data);
|
struct virtualStrip {
|
||||||
|
static void runStrip(uint16_t stripNr, Spark* drops) {
|
||||||
|
|
||||||
numDrops = 1 + (SEGMENT.intensity >> 6); // 255>>6 = 3
|
uint8_t numDrops = 1 + (SEGMENT.intensity >> 6); // 255>>6 = 3
|
||||||
|
|
||||||
float gravity = -0.0005 - (SEGMENT.speed/50000.0);
|
float gravity = -0.0005 - (SEGMENT.speed/50000.0);
|
||||||
gravity *= rows-1;
|
gravity *= SEGLEN-1;
|
||||||
int sourcedrop = 12;
|
int sourcedrop = 12;
|
||||||
|
|
||||||
for (int k=0; k < cols; k++) {
|
for (int j=0;j<numDrops;j++) {
|
||||||
for (size_t j=0; j < numDrops; j++) {
|
if (drops[j].colIndex == 0) { //init
|
||||||
uint16_t idx = k*numDrops + j;
|
drops[j].pos = SEGLEN-1; // start at end
|
||||||
|
drops[j].vel = 0; // speed
|
||||||
if (drops[idx].colIndex == 0) { //init
|
drops[j].col = sourcedrop; // brightness
|
||||||
drops[idx].pos = rows-1; // start at end
|
drops[j].colIndex = 1; // drop state (0 init, 1 forming, 2 falling, 5 bouncing)
|
||||||
drops[idx].vel = 0; // speed
|
|
||||||
drops[idx].col = sourcedrop; // brightness
|
|
||||||
drops[idx].colIndex = 1; // drop state (0 init, 1 forming, 2 falling, 5 bouncing)
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t col = color_blend(BLACK, SEGCOLOR(0), sourcedrop);
|
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(k, 0, col);
|
|
||||||
else SEGMENT.setPixelColor(rows-1, col);// water source
|
|
||||||
|
|
||||||
if (drops[idx].colIndex == 1) {
|
|
||||||
if (drops[idx].col > 255) drops[idx].col = 255;
|
|
||||||
col = color_blend(BLACK,SEGCOLOR(0),drops[idx].col);
|
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1 - uint16_t(drops[idx].pos), col);
|
|
||||||
else SEGMENT.setPixelColor(uint16_t(drops[idx].pos), col);
|
|
||||||
|
|
||||||
drops[idx].col += map(SEGMENT.speed, 0, 255, 1, 6); // swelling
|
|
||||||
|
|
||||||
if (random8() < drops[idx].col/10) { // random drop
|
|
||||||
drops[idx].colIndex = 2; //fall
|
|
||||||
drops[idx].col = 255;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (drops[idx].colIndex > 1) { // falling
|
|
||||||
if (drops[idx].pos > 0) { // fall until end of segment
|
|
||||||
drops[idx].pos += drops[idx].vel;
|
|
||||||
if (drops[idx].pos < 0) drops[idx].pos = 0;
|
|
||||||
drops[idx].vel += gravity; // gravity is negative
|
|
||||||
|
|
||||||
for (int i = 1; i < 7 - drops[idx].colIndex; i++) { // some minor math so we don't expand bouncing droplets
|
SEGMENT.setPixelColor(indexToVStrip(SEGLEN-1, stripNr), color_blend(BLACK,SEGCOLOR(0), sourcedrop));// water source
|
||||||
uint16_t pos = constrain(uint16_t(drops[idx].pos) +i, 0, rows-1); //this is BAD, returns a pos >= SEGLEN occasionally
|
if (drops[j].colIndex==1) {
|
||||||
col = color_blend(BLACK, SEGCOLOR(0), drops[idx].col/i);
|
if (drops[j].col>255) drops[j].col=255;
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1 - pos, col);
|
SEGMENT.setPixelColor(indexToVStrip(uint16_t(drops[j].pos), stripNr), color_blend(BLACK,SEGCOLOR(0),drops[j].col));
|
||||||
else SEGMENT.setPixelColor(pos, col); //spread pixel with fade while falling
|
|
||||||
|
drops[j].col += map(SEGMENT.speed, 0, 255, 1, 6); // swelling
|
||||||
|
|
||||||
|
if (random8() < drops[j].col/10) { // random drop
|
||||||
|
drops[j].colIndex=2; //fall
|
||||||
|
drops[j].col=255;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (drops[j].colIndex > 1) { // falling
|
||||||
|
if (drops[j].pos > 0) { // fall until end of segment
|
||||||
|
drops[j].pos += drops[j].vel;
|
||||||
|
if (drops[j].pos < 0) drops[j].pos = 0;
|
||||||
|
drops[j].vel += gravity; // gravity is negative
|
||||||
|
|
||||||
if (drops[idx].colIndex > 2) { // during bounce, some water is on the floor
|
for (int i=1;i<7-drops[j].colIndex;i++) { // some minor math so we don't expand bouncing droplets
|
||||||
col = color_blend(SEGCOLOR(0), BLACK, drops[idx].col);
|
uint16_t pos = constrain(uint16_t(drops[j].pos) +i, 0, SEGLEN-1); //this is BAD, returns a pos >= SEGLEN occasionally
|
||||||
if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1, col);
|
SEGMENT.setPixelColor(indexToVStrip(pos, stripNr), color_blend(BLACK,SEGCOLOR(0),drops[j].col/i)); //spread pixel with fade while falling
|
||||||
else SEGMENT.setPixelColor(0, col);
|
}
|
||||||
}
|
|
||||||
} else { // we hit bottom
|
|
||||||
if (drops[idx].colIndex > 2) { // already hit once, so back to forming
|
|
||||||
drops[idx].colIndex = 0;
|
|
||||||
drops[idx].col = sourcedrop;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (drops[idx].colIndex == 2) { // init bounce
|
if (drops[j].colIndex > 2) { // during bounce, some water is on the floor
|
||||||
drops[idx].vel = -drops[idx].vel/4;// reverse velocity with damping
|
SEGMENT.setPixelColor(indexToVStrip(0, stripNr), color_blend(SEGCOLOR(0),BLACK,drops[j].col));
|
||||||
drops[idx].pos += drops[idx].vel;
|
}
|
||||||
}
|
} else { // we hit bottom
|
||||||
drops[idx].col = sourcedrop*2;
|
if (drops[j].colIndex > 2) { // already hit once, so back to forming
|
||||||
drops[idx].colIndex = 5; // bouncing
|
drops[j].colIndex = 0;
|
||||||
|
drops[j].col = sourcedrop;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (drops[j].colIndex==2) { // init bounce
|
||||||
|
drops[j].vel = -drops[j].vel/4;// reverse velocity with damping
|
||||||
|
drops[j].pos += drops[j].vel;
|
||||||
|
}
|
||||||
|
drops[j].col = sourcedrop*2;
|
||||||
|
drops[j].colIndex = 5; // bouncing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
for (int stripNr=0; stripNr<strips; stripNr++)
|
||||||
|
virtualStrip::runStrip(stripNr, &drops[stripNr*maxNumDrops]);
|
||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips;!,!;!;1d,2d";
|
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips;!,!;!;mp12=1,1d"; //bar
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3493,7 +3484,7 @@ uint16_t mode_tetrix(void) {
|
|||||||
if (SEGENV.call == 0) {
|
if (SEGENV.call == 0) {
|
||||||
drop->stack = 0; // reset brick stack size
|
drop->stack = 0; // reset brick stack size
|
||||||
drop->step = 0;
|
drop->step = 0;
|
||||||
//for (int i=0; i<SEGLEN; i++) SEGMENT.setPixelColor(i | int((stripNr+1)<<16), SEGCOLOR(1)); // will fill virtual strip only
|
//for (int i=0; i<SEGLEN; i++) SEGMENT.setPixelColor(indexToVStrip(i, stripNr), SEGCOLOR(1)); // will fill virtual strip only
|
||||||
}
|
}
|
||||||
|
|
||||||
if (drop->step == 0) { // init brick
|
if (drop->step == 0) { // init brick
|
||||||
@ -3521,7 +3512,7 @@ uint16_t mode_tetrix(void) {
|
|||||||
if (uint16_t(drop->pos) < drop->stack) drop->pos = drop->stack;
|
if (uint16_t(drop->pos) < drop->stack) drop->pos = drop->stack;
|
||||||
for (int i=int(drop->pos); i<SEGLEN; i++) {
|
for (int i=int(drop->pos); i<SEGLEN; i++) {
|
||||||
uint32_t col = i<int(drop->pos)+drop->brick ? SEGMENT.color_from_palette(drop->col, false, false, 0) : SEGCOLOR(1);
|
uint32_t col = i<int(drop->pos)+drop->brick ? SEGMENT.color_from_palette(drop->col, false, false, 0) : SEGCOLOR(1);
|
||||||
SEGMENT.setPixelColor(i | int((stripNr+1)<<16), col);
|
SEGMENT.setPixelColor(indexToVStrip(i, stripNr), col);
|
||||||
}
|
}
|
||||||
} else { // we hit bottom
|
} else { // we hit bottom
|
||||||
drop->step = 0; // proceed with next brick, go back to init
|
drop->step = 0; // proceed with next brick, go back to init
|
||||||
@ -3534,7 +3525,7 @@ uint16_t mode_tetrix(void) {
|
|||||||
drop->brick = 0; // reset brick size (no more growing)
|
drop->brick = 0; // reset brick size (no more growing)
|
||||||
if (drop->step > millis()) {
|
if (drop->step > millis()) {
|
||||||
// allow fading of virtual strip
|
// allow fading of virtual strip
|
||||||
for (int i=0; i<SEGLEN; i++) SEGMENT.blendPixelColor(i | int((stripNr+1)<<16), SEGCOLOR(1), 25); // 10% blend with Bg color
|
for (int i=0; i<SEGLEN; i++) SEGMENT.blendPixelColor(indexToVStrip(i, stripNr), SEGCOLOR(1), 25); // 10% blend
|
||||||
} else {
|
} else {
|
||||||
drop->stack = 0; // reset brick stack size
|
drop->stack = 0; // reset brick stack size
|
||||||
drop->step = 0; // proceed with next brick
|
drop->step = 0; // proceed with next brick
|
||||||
@ -5848,12 +5839,13 @@ uint16_t mode_2Dscrollingtext(void) {
|
|||||||
|
|
||||||
int letterWidth;
|
int letterWidth;
|
||||||
int letterHeight;
|
int letterHeight;
|
||||||
switch (map(SEGMENT.custom2, 0, 255, 1, 4)) {
|
switch (map(SEGMENT.custom2, 0, 255, 1, 5)) {
|
||||||
default:
|
default:
|
||||||
case 1: letterWidth = 5; letterHeight = 8; break;
|
case 1: letterWidth = 4; letterHeight = 6; break;
|
||||||
case 2: letterWidth = 6; letterHeight = 8; break;
|
case 2: letterWidth = 5; letterHeight = 8; break;
|
||||||
case 3: letterWidth = 7; letterHeight = 9; break;
|
case 3: letterWidth = 6; letterHeight = 8; break;
|
||||||
case 4: letterWidth = 5; letterHeight = 12; break;
|
case 4: letterWidth = 7; letterHeight = 9; break;
|
||||||
|
case 5: letterWidth = 5; letterHeight = 12; break;
|
||||||
}
|
}
|
||||||
const int yoffset = map(SEGMENT.intensity, 0, 255, -rows/2, rows/2) + (rows-letterHeight)/2;
|
const int yoffset = map(SEGMENT.intensity, 0, 255, -rows/2, rows/2) + (rows-letterHeight)/2;
|
||||||
char text[33] = {'\0'};
|
char text[33] = {'\0'};
|
||||||
@ -5893,7 +5885,7 @@ uint16_t mode_2Dscrollingtext(void) {
|
|||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
}
|
}
|
||||||
static const char _data_FX_MODE_2DSCROLLTEXT[] PROGMEM = "Scrolling Text@!,Y Offset,Trail,Font size;!,!;!;ix=96,c1=0,rev=0,mi=0,rY=0,mY=0,2d";
|
static const char _data_FX_MODE_2DSCROLLTEXT[] PROGMEM = "Scrolling Text@!,Y Offset,Trail,Font size;!,!;!;ix=128,c1=0,rev=0,mi=0,rY=0,mY=0,2d";
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
@ -5930,7 +5922,6 @@ static const char _data_FX_MODE_2DDRIFTROSE[] PROGMEM = "Drift Rose@Fade,Blur;;;
|
|||||||
#endif // WLED_DISABLE_2D
|
#endif // WLED_DISABLE_2D
|
||||||
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/******************** audio enhanced routines ************************/
|
/******************** audio enhanced routines ************************/
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -6614,11 +6605,6 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline.
|
|||||||
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
/******************** audio only routines ************************/
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
#ifdef USERMOD_AUDIOREACTIVE
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
// * PIXELS //
|
// * PIXELS //
|
||||||
//////////////////////
|
//////////////////////
|
||||||
@ -7207,14 +7193,7 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil
|
|||||||
} // mode_2DFunkyPlank
|
} // mode_2DFunkyPlank
|
||||||
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;ssim=0,2d,fr"; // Beatsin
|
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;ssim=0,2d,fr"; // Beatsin
|
||||||
|
|
||||||
#endif // WLED_DISABLE_2D
|
|
||||||
|
|
||||||
|
|
||||||
//end audio only routines
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
// 2D Akemi //
|
// 2D Akemi //
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@ -7319,7 +7298,6 @@ uint16_t mode_2DAkemi(void) {
|
|||||||
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0,2d,fr"; //beatsin
|
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0,2d,fr"; //beatsin
|
||||||
#endif // WLED_DISABLE_2D
|
#endif // WLED_DISABLE_2D
|
||||||
|
|
||||||
#endif // WLED_DISABLE_AUDIO
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// mode data
|
// mode data
|
||||||
@ -7501,16 +7479,14 @@ void WS2812FX::setupEffectData() {
|
|||||||
addEffect(FX_MODE_2DMETABALLS, &mode_2Dmetaballs, _data_FX_MODE_2DMETABALLS);
|
addEffect(FX_MODE_2DMETABALLS, &mode_2Dmetaballs, _data_FX_MODE_2DMETABALLS);
|
||||||
addEffect(FX_MODE_2DPULSER, &mode_2DPulser, _data_FX_MODE_2DPULSER);
|
addEffect(FX_MODE_2DPULSER, &mode_2DPulser, _data_FX_MODE_2DPULSER);
|
||||||
addEffect(FX_MODE_2DDRIFT, &mode_2DDrift, _data_FX_MODE_2DDRIFT);
|
addEffect(FX_MODE_2DDRIFT, &mode_2DDrift, _data_FX_MODE_2DDRIFT);
|
||||||
|
|
||||||
// --- 2D audio effects ---
|
// --- 2D audio effects ---
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
|
||||||
addEffect(FX_MODE_2DWAVERLY, &mode_2DWaverly, _data_FX_MODE_2DWAVERLY);
|
addEffect(FX_MODE_2DWAVERLY, &mode_2DWaverly, _data_FX_MODE_2DWAVERLY);
|
||||||
addEffect(FX_MODE_2DSWIRL, &mode_2DSwirl, _data_FX_MODE_2DSWIRL);
|
addEffect(FX_MODE_2DSWIRL, &mode_2DSwirl, _data_FX_MODE_2DSWIRL);
|
||||||
addEffect(FX_MODE_2DAKEMI, &mode_2DAkemi, _data_FX_MODE_2DAKEMI);
|
addEffect(FX_MODE_2DAKEMI, &mode_2DAkemi, _data_FX_MODE_2DAKEMI);
|
||||||
#endif
|
addEffect(FX_MODE_2DGEQ, &mode_2DGEQ, _data_FX_MODE_2DGEQ);
|
||||||
|
addEffect(FX_MODE_2DFUNKYPLANK, &mode_2DFunkyPlank, _data_FX_MODE_2DFUNKYPLANK);
|
||||||
#endif // WLED_DISABLE_2D
|
#endif // WLED_DISABLE_2D
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
|
||||||
// --- 1D audio effects ---
|
// --- 1D audio effects ---
|
||||||
addEffect(FX_MODE_PIXELWAVE, &mode_pixelwave, _data_FX_MODE_PIXELWAVE);
|
addEffect(FX_MODE_PIXELWAVE, &mode_pixelwave, _data_FX_MODE_PIXELWAVE);
|
||||||
addEffect(FX_MODE_JUGGLES, &mode_juggles, _data_FX_MODE_JUGGLES);
|
addEffect(FX_MODE_JUGGLES, &mode_juggles, _data_FX_MODE_JUGGLES);
|
||||||
@ -7525,29 +7501,15 @@ void WS2812FX::setupEffectData() {
|
|||||||
addEffect(FX_MODE_RIPPLEPEAK, &mode_ripplepeak, _data_FX_MODE_RIPPLEPEAK);
|
addEffect(FX_MODE_RIPPLEPEAK, &mode_ripplepeak, _data_FX_MODE_RIPPLEPEAK);
|
||||||
addEffect(FX_MODE_GRAVCENTER, &mode_gravcenter, _data_FX_MODE_GRAVCENTER);
|
addEffect(FX_MODE_GRAVCENTER, &mode_gravcenter, _data_FX_MODE_GRAVCENTER);
|
||||||
addEffect(FX_MODE_GRAVCENTRIC, &mode_gravcentric, _data_FX_MODE_GRAVCENTRIC);
|
addEffect(FX_MODE_GRAVCENTRIC, &mode_gravcentric, _data_FX_MODE_GRAVCENTRIC);
|
||||||
#endif // WLED_DISABLE_AUDIO
|
|
||||||
|
|
||||||
#ifdef USERMOD_AUDIOREACTIVE
|
|
||||||
// --- WLED-SR audio reactive usermod only effects ---
|
|
||||||
#ifdef WLED_DISABLE_AUDIO
|
|
||||||
#error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE
|
|
||||||
#endif
|
|
||||||
#ifdef WLED_DISABLE_2D
|
|
||||||
#error AUDIOREACTIVE usermod requires 2D support.
|
|
||||||
#endif
|
|
||||||
addEffect(FX_MODE_PIXELS, &mode_pixels, _data_FX_MODE_PIXELS);
|
addEffect(FX_MODE_PIXELS, &mode_pixels, _data_FX_MODE_PIXELS);
|
||||||
addEffect(FX_MODE_FREQWAVE, &mode_freqwave, _data_FX_MODE_FREQWAVE);
|
addEffect(FX_MODE_FREQWAVE, &mode_freqwave, _data_FX_MODE_FREQWAVE);
|
||||||
addEffect(FX_MODE_FREQMATRIX, &mode_freqmatrix, _data_FX_MODE_FREQMATRIX);
|
addEffect(FX_MODE_FREQMATRIX, &mode_freqmatrix, _data_FX_MODE_FREQMATRIX);
|
||||||
addEffect(FX_MODE_2DGEQ, &mode_2DGEQ, _data_FX_MODE_2DGEQ);
|
|
||||||
addEffect(FX_MODE_WATERFALL, &mode_waterfall, _data_FX_MODE_WATERFALL);
|
addEffect(FX_MODE_WATERFALL, &mode_waterfall, _data_FX_MODE_WATERFALL);
|
||||||
addEffect(FX_MODE_FREQPIXELS, &mode_freqpixels, _data_FX_MODE_FREQPIXELS);
|
addEffect(FX_MODE_FREQPIXELS, &mode_freqpixels, _data_FX_MODE_FREQPIXELS);
|
||||||
addEffect(FX_MODE_NOISEMOVE, &mode_noisemove, _data_FX_MODE_NOISEMOVE);
|
addEffect(FX_MODE_NOISEMOVE, &mode_noisemove, _data_FX_MODE_NOISEMOVE);
|
||||||
addEffect(FX_MODE_FREQMAP, &mode_freqmap, _data_FX_MODE_FREQMAP);
|
addEffect(FX_MODE_FREQMAP, &mode_freqmap, _data_FX_MODE_FREQMAP);
|
||||||
addEffect(FX_MODE_GRAVFREQ, &mode_gravfreq, _data_FX_MODE_GRAVFREQ);
|
addEffect(FX_MODE_GRAVFREQ, &mode_gravfreq, _data_FX_MODE_GRAVFREQ);
|
||||||
addEffect(FX_MODE_DJLIGHT, &mode_DJLight, _data_FX_MODE_DJLIGHT);
|
addEffect(FX_MODE_DJLIGHT, &mode_DJLight, _data_FX_MODE_DJLIGHT);
|
||||||
addEffect(FX_MODE_2DFUNKYPLANK, &mode_2DFunkyPlank, _data_FX_MODE_2DFUNKYPLANK);
|
|
||||||
addEffect(FX_MODE_BLURZ, &mode_blurz, _data_FX_MODE_BLURZ);
|
addEffect(FX_MODE_BLURZ, &mode_blurz, _data_FX_MODE_BLURZ);
|
||||||
addEffect(FX_MODE_ROCKTAVES, &mode_rocktaves, _data_FX_MODE_ROCKTAVES);
|
addEffect(FX_MODE_ROCKTAVES, &mode_rocktaves, _data_FX_MODE_ROCKTAVES);
|
||||||
//addEffect(FX_MODE_CUSTOMEFFECT, &mode_customEffect, _data_FX_MODE_CUSTOMEFFECT); //WLEDSR Custom Effects
|
|
||||||
#endif // USERMOD_AUDIOREACTIVE
|
|
||||||
}
|
}
|
||||||
|
117
wled00/FX.h
117
wled00/FX.h
@ -275,67 +275,39 @@
|
|||||||
#define FX_MODE_2DMETABALLS 142 // non audio
|
#define FX_MODE_2DMETABALLS 142 // non audio
|
||||||
#define FX_MODE_2DPULSER 143 // non audio
|
#define FX_MODE_2DPULSER 143 // non audio
|
||||||
#define FX_MODE_2DDRIFT 144 // non audio
|
#define FX_MODE_2DDRIFT 144 // non audio
|
||||||
#endif
|
#define FX_MODE_2DWAVERLY 145 // audio enhanced
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
#define FX_MODE_2DSWIRL 146 // audio enhanced
|
||||||
#ifndef WLED_DISABLE_2D
|
#define FX_MODE_2DAKEMI 147 // audio enhanced
|
||||||
#define FX_MODE_2DWAVERLY 145 // audio enhanced
|
#define FX_MODE_2DGEQ 148 // audio enhanced
|
||||||
#define FX_MODE_2DSWIRL 146 // audio enhanced
|
#define FX_MODE_2DFUNKYPLANK 149 // audio enhanced
|
||||||
#define FX_MODE_2DAKEMI 147 // audio enhanced
|
#endif //WLED_DISABLE_2D
|
||||||
// 148 & 149 reserved
|
#define FX_MODE_PIXELWAVE 150 // audio enhanced
|
||||||
#endif
|
#define FX_MODE_JUGGLES 151 // audio enhanced
|
||||||
#define FX_MODE_PIXELWAVE 150 // audio enhanced
|
#define FX_MODE_MATRIPIX 152 // audio enhanced
|
||||||
#define FX_MODE_JUGGLES 151 // audio enhanced
|
#define FX_MODE_GRAVIMETER 153 // audio enhanced
|
||||||
#define FX_MODE_MATRIPIX 152 // audio enhanced
|
#define FX_MODE_PLASMOID 154 // audio enhanced
|
||||||
#define FX_MODE_GRAVIMETER 153 // audio enhanced
|
#define FX_MODE_PUDDLES 155 // audio enhanced
|
||||||
#define FX_MODE_PLASMOID 154 // audio enhanced
|
#define FX_MODE_MIDNOISE 156 // audio enhanced
|
||||||
#define FX_MODE_PUDDLES 155 // audio enhanced
|
#define FX_MODE_NOISEMETER 157 // audio enhanced
|
||||||
#define FX_MODE_MIDNOISE 156 // audio enhanced
|
#define FX_MODE_NOISEFIRE 158 // audio enhanced
|
||||||
#define FX_MODE_NOISEMETER 157 // audio enhanced
|
#define FX_MODE_PUDDLEPEAK 159 // audio enhanced
|
||||||
#define FX_MODE_NOISEFIRE 158 // audio enhanced
|
#define FX_MODE_RIPPLEPEAK 160 // audio enhanced
|
||||||
#define FX_MODE_PUDDLEPEAK 159 // audio enhanced
|
#define FX_MODE_GRAVCENTER 161 // audio enhanced
|
||||||
#define FX_MODE_RIPPLEPEAK 160 // audio enhanced
|
#define FX_MODE_GRAVCENTRIC 162 // audio enhanced
|
||||||
#define FX_MODE_GRAVCENTER 161 // audio enhanced
|
#define FX_MODE_PIXELS 163 // audio enhanced
|
||||||
#define FX_MODE_GRAVCENTRIC 162 // audio enhanced
|
#define FX_MODE_FREQWAVE 164 // audio enhanced
|
||||||
#endif
|
#define FX_MODE_FREQMATRIX 165 // audio enhanced
|
||||||
|
#define FX_MODE_WATERFALL 166 // audio enhanced
|
||||||
|
#define FX_MODE_FREQPIXELS 167 // audio enhanced
|
||||||
|
#define FX_MODE_BINMAP 168 // audio enhanced
|
||||||
|
#define FX_MODE_NOISEMOVE 169 // audio enhanced
|
||||||
|
#define FX_MODE_FREQMAP 170 // audio enhanced
|
||||||
|
#define FX_MODE_GRAVFREQ 171 // audio enhanced
|
||||||
|
#define FX_MODE_DJLIGHT 172 // audio enhanced
|
||||||
|
#define FX_MODE_BLURZ 173 // audio enhanced
|
||||||
|
#define FX_MODE_ROCKTAVES 174 // audio enhanced
|
||||||
|
|
||||||
#ifndef USERMOD_AUDIOREACTIVE
|
#define MODE_COUNT 175
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
|
||||||
#define MODE_COUNT 163
|
|
||||||
#else
|
|
||||||
#ifndef WLED_DISABLE_2D
|
|
||||||
#define MODE_COUNT 145
|
|
||||||
#else
|
|
||||||
#define MODE_COUNT 118
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifdef WLED_DISABLE_AUDIO
|
|
||||||
#error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE
|
|
||||||
#endif
|
|
||||||
#ifdef WLED_DISABLE_2D
|
|
||||||
#error AUDIOREACTIVE usermod requires 2D support.
|
|
||||||
#endif
|
|
||||||
#define FX_MODE_2DGEQ 148
|
|
||||||
#define FX_MODE_2DFUNKYPLANK 149
|
|
||||||
#define FX_MODE_PIXELS 163
|
|
||||||
#define FX_MODE_FREQWAVE 164
|
|
||||||
#define FX_MODE_FREQMATRIX 165
|
|
||||||
#define FX_MODE_WATERFALL 166
|
|
||||||
#define FX_MODE_FREQPIXELS 167
|
|
||||||
#define FX_MODE_BINMAP 168
|
|
||||||
#define FX_MODE_NOISEMOVE 169
|
|
||||||
#define FX_MODE_FREQMAP 170
|
|
||||||
#define FX_MODE_GRAVFREQ 171
|
|
||||||
#define FX_MODE_DJLIGHT 172
|
|
||||||
#define FX_MODE_BLURZ 173
|
|
||||||
#define FX_MODE_ROCKTAVES 174
|
|
||||||
//#define FX_MODE_CUSTOMEFFECT 175 //WLEDSR Custom Effects
|
|
||||||
|
|
||||||
#define MODE_COUNT 175
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef enum mapping1D2D {
|
typedef enum mapping1D2D {
|
||||||
M12_Pixels = 0,
|
M12_Pixels = 0,
|
||||||
@ -416,14 +388,31 @@ typedef struct Segment {
|
|||||||
uint8_t _briT; // temporary brightness
|
uint8_t _briT; // temporary brightness
|
||||||
uint8_t _cctT; // temporary CCT
|
uint8_t _cctT; // temporary CCT
|
||||||
CRGBPalette16 _palT; // temporary palette
|
CRGBPalette16 _palT; // temporary palette
|
||||||
|
uint8_t _prevPaletteBlends; // number of previous palette blends (there are max 128 belnds possible)
|
||||||
uint8_t _modeP; // previous mode/effect
|
uint8_t _modeP; // previous mode/effect
|
||||||
//uint16_t _aux0, _aux1; // previous mode/effect runtime data
|
//uint16_t _aux0, _aux1; // previous mode/effect runtime data
|
||||||
//uint32_t _step, _call; // previous mode/effect runtime data
|
//uint32_t _step, _call; // previous mode/effect runtime data
|
||||||
//byte *_data; // previous mode/effect runtime data
|
//byte *_data; // previous mode/effect runtime data
|
||||||
uint32_t _start;
|
uint32_t _start;
|
||||||
uint16_t _dur;
|
uint16_t _dur;
|
||||||
Transition(uint16_t dur=750) : _briT(255), _cctT(127), _palT(CRGBPalette16(CRGB::Black)), _modeP(FX_MODE_STATIC), _start(millis()), _dur(dur) {}
|
Transition(uint16_t dur=750)
|
||||||
Transition(uint16_t d, uint8_t b, uint8_t c, const uint32_t *o) : _briT(b), _cctT(c), _palT(CRGBPalette16(CRGB::Black)), _modeP(FX_MODE_STATIC), _start(millis()), _dur(d) {
|
: _briT(255)
|
||||||
|
, _cctT(127)
|
||||||
|
, _palT(CRGBPalette16(CRGB::Black))
|
||||||
|
, _prevPaletteBlends(0)
|
||||||
|
, _modeP(FX_MODE_STATIC)
|
||||||
|
, _start(millis())
|
||||||
|
, _dur(dur)
|
||||||
|
{}
|
||||||
|
Transition(uint16_t d, uint8_t b, uint8_t c, const uint32_t *o)
|
||||||
|
: _briT(b)
|
||||||
|
, _cctT(c)
|
||||||
|
, _palT(CRGBPalette16(CRGB::Black))
|
||||||
|
, _prevPaletteBlends(0)
|
||||||
|
, _modeP(FX_MODE_STATIC)
|
||||||
|
, _start(millis())
|
||||||
|
, _dur(d)
|
||||||
|
{
|
||||||
for (size_t i=0; i<NUM_COLORS; i++) _colorT[i] = o[i];
|
for (size_t i=0; i<NUM_COLORS; i++) _colorT[i] = o[i];
|
||||||
}
|
}
|
||||||
} *_t;
|
} *_t;
|
||||||
@ -647,8 +636,6 @@ class WS2812FX { // 96 bytes
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
WS2812FX() :
|
WS2812FX() :
|
||||||
gammaCorrectBri(false),
|
|
||||||
gammaCorrectCol(true),
|
|
||||||
paletteFade(0),
|
paletteFade(0),
|
||||||
paletteBlend(0),
|
paletteBlend(0),
|
||||||
milliampsPerLed(55),
|
milliampsPerLed(55),
|
||||||
@ -747,8 +734,6 @@ class WS2812FX { // 96 bytes
|
|||||||
inline void appendSegment(const Segment &seg = Segment()) { _segments.push_back(seg); }
|
inline void appendSegment(const Segment &seg = Segment()) { _segments.push_back(seg); }
|
||||||
|
|
||||||
bool
|
bool
|
||||||
gammaCorrectBri,
|
|
||||||
gammaCorrectCol,
|
|
||||||
checkSegmentAlignment(void),
|
checkSegmentAlignment(void),
|
||||||
hasRGBWBus(void),
|
hasRGBWBus(void),
|
||||||
hasCCTBus(void),
|
hasCCTBus(void),
|
||||||
|
@ -459,14 +459,17 @@ void Segment::drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint3
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "console_font_5x8.h"
|
#include "src/font/console_font_4x6.h"
|
||||||
#include "console_font_5x12.h"
|
#include "src/font/console_font_5x8.h"
|
||||||
#include "console_font_6x8.h"
|
#include "src/font/console_font_5x12.h"
|
||||||
#include "console_font_7x9.h"
|
#include "src/font/console_font_6x8.h"
|
||||||
|
#include "src/font/console_font_7x9.h"
|
||||||
|
|
||||||
// draws a raster font character on canvas
|
// draws a raster font character on canvas
|
||||||
// only supports 5x8=40, 5x12=60, 6x8=48 and 7x9=63 fonts ATM
|
// only supports 5x8=40, 5x12=60, 6x8=48 and 7x9=63 fonts ATM
|
||||||
void Segment::drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t color) {
|
void Segment::drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t color) {
|
||||||
|
if (chr < 32 || chr > 126) return; // only ASCII 32-126 supported
|
||||||
|
chr -= 32; // align with font table entries
|
||||||
const uint16_t cols = virtualWidth();
|
const uint16_t cols = virtualWidth();
|
||||||
const uint16_t rows = virtualHeight();
|
const uint16_t rows = virtualHeight();
|
||||||
const int font = w*h;
|
const int font = w*h;
|
||||||
@ -478,6 +481,7 @@ void Segment::drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w,
|
|||||||
if (y0 >= rows) break; // drawing off-screen
|
if (y0 >= rows) break; // drawing off-screen
|
||||||
uint8_t bits = 0;
|
uint8_t bits = 0;
|
||||||
switch (font) {
|
switch (font) {
|
||||||
|
case 24: bits = pgm_read_byte_near(&console_font_4x6[(chr * h) + i]); break; // 5x8 font
|
||||||
case 40: bits = pgm_read_byte_near(&console_font_5x8[(chr * h) + i]); break; // 5x8 font
|
case 40: bits = pgm_read_byte_near(&console_font_5x8[(chr * h) + i]); break; // 5x8 font
|
||||||
case 48: bits = pgm_read_byte_near(&console_font_6x8[(chr * h) + i]); break; // 6x8 font
|
case 48: bits = pgm_read_byte_near(&console_font_6x8[(chr * h) + i]); break; // 6x8 font
|
||||||
case 63: bits = pgm_read_byte_near(&console_font_7x9[(chr * h) + i]); break; // 7x9 font
|
case 63: bits = pgm_read_byte_near(&console_font_7x9[(chr * h) + i]); break; // 7x9 font
|
||||||
|
@ -208,6 +208,7 @@ void Segment::setUpLeds() {
|
|||||||
|
|
||||||
CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
|
CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
|
||||||
static unsigned long _lastPaletteChange = 0; // perhaps it should be per segment
|
static unsigned long _lastPaletteChange = 0; // perhaps it should be per segment
|
||||||
|
static CRGBPalette16 randomPalette = CRGBPalette16(DEFAULT_COLOR);
|
||||||
byte tcp[72];
|
byte tcp[72];
|
||||||
if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0;
|
if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0;
|
||||||
if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0;
|
if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0;
|
||||||
@ -229,30 +230,31 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
|
|||||||
targetPalette = PartyColors_p; break;
|
targetPalette = PartyColors_p; break;
|
||||||
case 1: //periodically replace palette with a random one. Doesn't work with multiple FastLED segments
|
case 1: //periodically replace palette with a random one. Doesn't work with multiple FastLED segments
|
||||||
if (millis() - _lastPaletteChange > 5000 /*+ ((uint32_t)(255-intensity))*100*/) {
|
if (millis() - _lastPaletteChange > 5000 /*+ ((uint32_t)(255-intensity))*100*/) {
|
||||||
targetPalette = CRGBPalette16(
|
randomPalette = CRGBPalette16(
|
||||||
CHSV(random8(), 255, random8(128, 255)),
|
CHSV(random8(), random8(160, 255), random8(128, 255)),
|
||||||
CHSV(random8(), 255, random8(128, 255)),
|
CHSV(random8(), random8(160, 255), random8(128, 255)),
|
||||||
CHSV(random8(), 192, random8(128, 255)),
|
CHSV(random8(), random8(160, 255), random8(128, 255)),
|
||||||
CHSV(random8(), 255, random8(128, 255)));
|
CHSV(random8(), random8(160, 255), random8(128, 255)));
|
||||||
_lastPaletteChange = millis();
|
_lastPaletteChange = millis();
|
||||||
} break;
|
}
|
||||||
|
targetPalette = randomPalette; break;
|
||||||
case 2: {//primary color only
|
case 2: {//primary color only
|
||||||
CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0];
|
CRGB prim = gamma32(colors[0]);
|
||||||
targetPalette = CRGBPalette16(prim); break;}
|
targetPalette = CRGBPalette16(prim); break;}
|
||||||
case 3: {//primary + secondary
|
case 3: {//primary + secondary
|
||||||
CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0];
|
CRGB prim = gamma32(colors[0]);
|
||||||
CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1];
|
CRGB sec = gamma32(colors[1]);
|
||||||
targetPalette = CRGBPalette16(prim,prim,sec,sec); break;}
|
targetPalette = CRGBPalette16(prim,prim,sec,sec); break;}
|
||||||
case 4: {//primary + secondary + tertiary
|
case 4: {//primary + secondary + tertiary
|
||||||
CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0];
|
CRGB prim = gamma32(colors[0]);
|
||||||
CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1];
|
CRGB sec = gamma32(colors[1]);
|
||||||
CRGB ter = strip.gammaCorrectCol ? gamma32(colors[2]) : colors[2];
|
CRGB ter = gamma32(colors[2]);
|
||||||
targetPalette = CRGBPalette16(ter,sec,prim); break;}
|
targetPalette = CRGBPalette16(ter,sec,prim); break;}
|
||||||
case 5: {//primary + secondary (+tert if not off), more distinct
|
case 5: {//primary + secondary (+tert if not off), more distinct
|
||||||
CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0];
|
CRGB prim = gamma32(colors[0]);
|
||||||
CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1];
|
CRGB sec = gamma32(colors[1]);
|
||||||
if (colors[2]) {
|
if (colors[2]) {
|
||||||
CRGB ter = strip.gammaCorrectCol ? gamma32(colors[2]) : colors[2];
|
CRGB ter = gamma32(colors[2]);
|
||||||
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,ter,ter,ter,ter,ter,prim);
|
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,ter,ter,ter,ter,ter,prim);
|
||||||
} else {
|
} else {
|
||||||
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,sec,sec,sec);
|
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,sec,sec,sec);
|
||||||
@ -339,8 +341,11 @@ CRGBPalette16 &Segment::currentPalette(CRGBPalette16 &targetPalette, uint8_t pal
|
|||||||
loadPalette(targetPalette, pal);
|
loadPalette(targetPalette, pal);
|
||||||
if (transitional && _t && progress() < 0xFFFFU) {
|
if (transitional && _t && progress() < 0xFFFFU) {
|
||||||
// blend palettes
|
// blend palettes
|
||||||
uint8_t blends = map(_t->_dur, 0, 0xFFFF, 48, 6); // do not blend palettes too quickly (0-65.5s)
|
// there are about 255 blend passes of 48 "blends" to completely blend two palettes (in _dur time)
|
||||||
nblendPaletteTowardPalette(_t->_palT, targetPalette, blends);
|
// minimum blend time is 100ms maximum is 65535ms
|
||||||
|
uint32_t timeMS = millis() - _t->_start;
|
||||||
|
uint16_t noOfBlends = (255U * timeMS / _t->_dur) - _t->_prevPaletteBlends;
|
||||||
|
for (int i=0; i<noOfBlends; i++, _t->_prevPaletteBlends++) nblendPaletteTowardPalette(_t->_palT, targetPalette, 48);
|
||||||
targetPalette = _t->_palT; // copy transitioning/temporary palette
|
targetPalette = _t->_palT; // copy transitioning/temporary palette
|
||||||
}
|
}
|
||||||
return targetPalette;
|
return targetPalette;
|
||||||
@ -823,7 +828,7 @@ uint32_t Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_
|
|||||||
// default palette or no RGB support on segment
|
// default palette or no RGB support on segment
|
||||||
if ((palette == 0 && mcol < NUM_COLORS) || !(_capabilities & 0x01)) {
|
if ((palette == 0 && mcol < NUM_COLORS) || !(_capabilities & 0x01)) {
|
||||||
uint32_t color = (transitional && _t) ? _t->_colorT[mcol] : colors[mcol];
|
uint32_t color = (transitional && _t) ? _t->_colorT[mcol] : colors[mcol];
|
||||||
color = strip.gammaCorrectCol ? gamma32(color) : color;
|
color = gamma32(color);
|
||||||
if (pbri == 255) return color;
|
if (pbri == 255) return color;
|
||||||
return RGBW32(scale8_video(R(color),pbri), scale8_video(G(color),pbri), scale8_video(B(color),pbri), scale8_video(W(color),pbri));
|
return RGBW32(scale8_video(R(color),pbri), scale8_video(G(color),pbri), scale8_video(B(color),pbri), scale8_video(W(color),pbri));
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,7 @@ class Bus {
|
|||||||
static bool isRgbw(uint8_t type) {
|
static bool isRgbw(uint8_t type) {
|
||||||
if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true;
|
if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true;
|
||||||
if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true;
|
if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true;
|
||||||
|
if (type == TYPE_NET_DDP_RGBW) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
virtual bool hasRGB() {
|
virtual bool hasRGB() {
|
||||||
@ -178,7 +179,7 @@ class Bus {
|
|||||||
}
|
}
|
||||||
virtual bool hasWhite() {
|
virtual bool hasWhite() {
|
||||||
if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814 || _type == TYPE_WS2812_1CH || _type == TYPE_WS2812_WWA ||
|
if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814 || _type == TYPE_WS2812_1CH || _type == TYPE_WS2812_WWA ||
|
||||||
_type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_4CH || _type == TYPE_ANALOG_5CH) return true;
|
_type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_4CH || _type == TYPE_ANALOG_5CH || _type == TYPE_NET_DDP_RGBW) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
static void setCCT(uint16_t cct) {
|
static void setCCT(uint16_t cct) {
|
||||||
@ -573,9 +574,9 @@ class BusNetwork : public Bus {
|
|||||||
// _rgbw = false;
|
// _rgbw = false;
|
||||||
// _UDPtype = 0;
|
// _UDPtype = 0;
|
||||||
// break;
|
// break;
|
||||||
// default:
|
// default: // TYPE_NET_DDP_RGB / TYPE_NET_DDP_RGBW
|
||||||
_rgbw = false;
|
_rgbw = bc.type == TYPE_NET_DDP_RGBW;
|
||||||
_UDPtype = bc.type - TYPE_NET_DDP_RGB;
|
_UDPtype = 0;
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
_UDPchannels = _rgbw ? 4 : 3;
|
_UDPchannels = _rgbw ? 4 : 3;
|
||||||
|
@ -302,10 +302,10 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
|
|
||||||
float light_gc_bri = light["gc"]["bri"];
|
float light_gc_bri = light["gc"]["bri"];
|
||||||
float light_gc_col = light["gc"]["col"]; // 2.8
|
float light_gc_col = light["gc"]["col"]; // 2.8
|
||||||
if (light_gc_bri > 1.5) strip.gammaCorrectBri = true;
|
if (light_gc_bri > 1.5) gammaCorrectBri = true;
|
||||||
else if (light_gc_bri > 0.5) strip.gammaCorrectBri = false;
|
else if (light_gc_bri > 0.5) gammaCorrectBri = false;
|
||||||
if (light_gc_col > 1.5) strip.gammaCorrectCol = true;
|
if (light_gc_col > 1.5) gammaCorrectCol = true;
|
||||||
else if (light_gc_col > 0.5) strip.gammaCorrectCol = false;
|
else if (light_gc_col > 0.5) gammaCorrectCol = false;
|
||||||
|
|
||||||
JsonObject light_tr = light["tr"];
|
JsonObject light_tr = light["tr"];
|
||||||
CJSON(fadeTransition, light_tr["mode"]);
|
CJSON(fadeTransition, light_tr["mode"]);
|
||||||
@ -759,8 +759,8 @@ void serializeConfig() {
|
|||||||
light[F("aseg")] = autoSegments;
|
light[F("aseg")] = autoSegments;
|
||||||
|
|
||||||
JsonObject light_gc = light.createNestedObject("gc");
|
JsonObject light_gc = light.createNestedObject("gc");
|
||||||
light_gc["bri"] = (strip.gammaCorrectBri) ? 2.8 : 1.0;
|
light_gc["bri"] = (gammaCorrectBri) ? 2.8 : 1.0;
|
||||||
light_gc["col"] = (strip.gammaCorrectCol) ? 2.8 : 1.0;
|
light_gc["col"] = (gammaCorrectCol) ? 2.8 : 1.0;
|
||||||
|
|
||||||
JsonObject light_tr = light.createNestedObject("tr");
|
JsonObject light_tr = light.createNestedObject("tr");
|
||||||
light_tr["mode"] = fadeTransition;
|
light_tr["mode"] = fadeTransition;
|
||||||
|
@ -358,7 +358,7 @@ uint8_t gamma8(uint8_t b)
|
|||||||
|
|
||||||
uint32_t gamma32(uint32_t color)
|
uint32_t gamma32(uint32_t color)
|
||||||
{
|
{
|
||||||
//if (!strip.gammaCorrectCol) return color;
|
if (!gammaCorrectCol) return color;
|
||||||
uint8_t w = W(color);
|
uint8_t w = W(color);
|
||||||
uint8_t r = R(color);
|
uint8_t r = R(color);
|
||||||
uint8_t g = G(color);
|
uint8_t g = G(color);
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -172,8 +172,9 @@
|
|||||||
#define TYPE_LPD6803 54
|
#define TYPE_LPD6803 54
|
||||||
//Network types (master broadcast) (80-95)
|
//Network types (master broadcast) (80-95)
|
||||||
#define TYPE_NET_DDP_RGB 80 //network DDP RGB bus (master broadcast bus)
|
#define TYPE_NET_DDP_RGB 80 //network DDP RGB bus (master broadcast bus)
|
||||||
#define TYPE_NET_E131_RGB 81 //network E131 RGB bus (master broadcast bus)
|
#define TYPE_NET_E131_RGB 81 //network E131 RGB bus (master broadcast bus, unused)
|
||||||
#define TYPE_NET_ARTNET_RGB 82 //network ArtNet RGB bus (master broadcast bus)
|
#define TYPE_NET_ARTNET_RGB 82 //network ArtNet RGB bus (master broadcast bus, unused)
|
||||||
|
#define TYPE_NET_DDP_RGBW 88 //network DDP RGBW bus (master broadcast bus)
|
||||||
|
|
||||||
#define IS_DIGITAL(t) ((t) & 0x10) //digital are 16-31 and 48-63
|
#define IS_DIGITAL(t) ((t) & 0x10) //digital are 16-31 and 48-63
|
||||||
#define IS_PWM(t) ((t) > 40 && (t) < 46)
|
#define IS_PWM(t) ((t) > 40 && (t) < 46)
|
||||||
|
@ -101,7 +101,7 @@ button {
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: calc(var(--bh) + 6px);
|
bottom: calc(var(--bh) + 6px);
|
||||||
right: 6px;
|
right: 6px;
|
||||||
color: var(--c-d);
|
color: var(--c-d); /* must remain bright with dark shadow (see below) to be legible on gray background */
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
writing-mode: vertical-rl;
|
writing-mode: vertical-rl;
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
@ -1045,7 +1045,7 @@ textarea {
|
|||||||
/*box-shadow: 0 0 0 5px var(--c-d);*/
|
/*box-shadow: 0 0 0 5px var(--c-d);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.qcs, #namelabel {
|
.qcs, #namelabel { /* text shadow for name to be legible on grey backround */
|
||||||
text-shadow: -1px -1px 0 var(--c-4), 1px -1px 0 var(--c-4), -1px 1px 0 var(--c-4), 1px 1px 0 var(--c-4);
|
text-shadow: -1px -1px 0 var(--c-4), 1px -1px 0 var(--c-4), -1px 1px 0 var(--c-4), 1px 1px 0 var(--c-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -611,13 +611,13 @@ function parseInfo(i) {
|
|||||||
//gId("filter2D").classList.add("hide");
|
//gId("filter2D").classList.add("hide");
|
||||||
hideModes("2D");
|
hideModes("2D");
|
||||||
}
|
}
|
||||||
if (i.noaudio) {
|
// if (i.noaudio) {
|
||||||
gId("filterVol").classList.add("hide");
|
// gId("filterVol").classList.add("hide");
|
||||||
gId("filterFreq").classList.add("hide");
|
// gId("filterFreq").classList.add("hide");
|
||||||
}
|
// }
|
||||||
// if (!i.u || !i.u.AudioReactive) {
|
// if (!i.u || !i.u.AudioReactive) {
|
||||||
//gId("filterVol").classList.add("hide"); hideModes(" ♪"); // hide volume reactive effects
|
// gId("filterVol").classList.add("hide"); hideModes(" ♪"); // hide volume reactive effects
|
||||||
//gId("filterFreq").classList.add("hide"); hideModes(" ♫"); // hide frequency reactive effects
|
// gId("filterFreq").classList.add("hide"); hideModes(" ♫"); // hide frequency reactive effects
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -659,6 +659,7 @@ function populateInfo(i)
|
|||||||
|
|
||||||
cn += `v${i.ver} "${vcn}"<br><br><table>
|
cn += `v${i.ver} "${vcn}"<br><br><table>
|
||||||
${urows}
|
${urows}
|
||||||
|
${urows===""?'':'<tr><td colspan=2><hr style="height:1px;border-width:0;color:gray;background-color:gray"></td></tr>'}
|
||||||
${inforow("Build",i.vid)}
|
${inforow("Build",i.vid)}
|
||||||
${inforow("Signal strength",i.wifi.signal +"% ("+ i.wifi.rssi, " dBm)")}
|
${inforow("Signal strength",i.wifi.signal +"% ("+ i.wifi.rssi, " dBm)")}
|
||||||
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
||||||
@ -1042,7 +1043,7 @@ function updateLen(s)
|
|||||||
let tPL = gId(`seg${s}lbtm`);
|
let tPL = gId(`seg${s}lbtm`);
|
||||||
if (stop-start>1 && stopY-startY>1) {
|
if (stop-start>1 && stopY-startY>1) {
|
||||||
// 2D segment
|
// 2D segment
|
||||||
tPL.classList.remove("hide"); // unhide transpose checkbox
|
if (tPL) tPL.classList.remove("hide"); // unhide transpose checkbox
|
||||||
let sE = gId('fxlist').querySelector(`.lstI[data-id="${selectedFx}"]`);
|
let sE = gId('fxlist').querySelector(`.lstI[data-id="${selectedFx}"]`);
|
||||||
if (sE) {
|
if (sE) {
|
||||||
let sN = sE.querySelector(".lstIname").innerText;
|
let sN = sE.querySelector(".lstIname").innerText;
|
||||||
@ -1054,8 +1055,10 @@ function updateLen(s)
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 1D segment in 2D set-up
|
// 1D segment in 2D set-up
|
||||||
tPL.classList.add("hide"); // hide transpose checkbox
|
if (tPL) {
|
||||||
gId(`seg${s}tp`).checked = false; // and uncheck it
|
tPL.classList.add("hide"); // hide transpose checkbox
|
||||||
|
gId(`seg${s}tp`).checked = false; // and uncheck it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var out = "(delete)";
|
var out = "(delete)";
|
||||||
@ -1995,15 +1998,15 @@ function setSeg(s)
|
|||||||
var stopY = parseInt(gId(`seg${s}eY`).value);
|
var stopY = parseInt(gId(`seg${s}eY`).value);
|
||||||
obj.seg.startY = startY;
|
obj.seg.startY = startY;
|
||||||
obj.seg.stopY = (cfg.comp.seglen?startY:0)+stopY;
|
obj.seg.stopY = (cfg.comp.seglen?startY:0)+stopY;
|
||||||
obj.seg.tp = gId(`seg${s}tp`).checked;
|
|
||||||
}
|
}
|
||||||
if (gId(`seg${s}grp`)) {
|
if (gId(`seg${s}grp`)) { // advanced options, not present in new segment dialog (makeSeg())
|
||||||
var grp = parseInt(gId(`seg${s}grp`).value);
|
var grp = parseInt(gId(`seg${s}grp`).value);
|
||||||
var spc = parseInt(gId(`seg${s}spc`).value);
|
var spc = parseInt(gId(`seg${s}spc`).value);
|
||||||
var ofs = parseInt(gId(`seg${s}of` ).value);
|
var ofs = parseInt(gId(`seg${s}of` ).value);
|
||||||
obj.seg.grp = grp;
|
obj.seg.grp = grp;
|
||||||
obj.seg.spc = spc;
|
obj.seg.spc = spc;
|
||||||
obj.seg.of = ofs;
|
obj.seg.of = ofs;
|
||||||
|
if (isM) obj.seg.tp = gId(`seg${s}tp`).checked;
|
||||||
}
|
}
|
||||||
requestJson(obj);
|
requestJson(obj);
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@
|
|||||||
if (t > 31 && t < 48) d.getElementsByName("LC"+n)[0].value = 1; // for sanity change analog count just to 1 LED
|
if (t > 31 && t < 48) d.getElementsByName("LC"+n)[0].value = 1; // for sanity change analog count just to 1 LED
|
||||||
}
|
}
|
||||||
gId("rf"+n).onclick = (t == 31) ? (()=>{return false}) : (()=>{}); // prevent change for TM1814
|
gId("rf"+n).onclick = (t == 31) ? (()=>{return false}) : (()=>{}); // prevent change for TM1814
|
||||||
isRGBW |= (t == 30 || t == 31 || (t > 40 && t < 46 && t != 43)); // RGBW checkbox, TYPE_xxxx values from const.h
|
isRGBW = (t == 30 || t == 31 || (t > 40 && t < 46 && t != 43) || t == 88); // RGBW checkbox, TYPE_xxxx values from const.h
|
||||||
gId("co"+n).style.display = ((t >= 80 && t < 96) || (t >= 40 && t < 48)) ? "none":"inline"; // hide color order for PWM
|
gId("co"+n).style.display = ((t >= 80 && t < 96) || (t >= 40 && t < 48)) ? "none":"inline"; // hide color order for PWM
|
||||||
gId("dig"+n+"w").style.display = (t == 30 || t == 31) ? "inline":"none"; // show swap channels dropdown
|
gId("dig"+n+"w").style.display = (t == 30 || t == 31) ? "inline":"none"; // show swap channels dropdown
|
||||||
if (!(t == 30 || t == 31)) d.getElementsByName("WO"+n)[0].value = 0; // reset swapping
|
if (!(t == 30 || t == 31)) d.getElementsByName("WO"+n)[0].value = 0; // reset swapping
|
||||||
@ -332,6 +332,7 @@ ${i+1}:
|
|||||||
<option value="80">DDP RGB (network)</option>
|
<option value="80">DDP RGB (network)</option>
|
||||||
<!--option value="81">E1.31 RGB (network)</option-->
|
<!--option value="81">E1.31 RGB (network)</option-->
|
||||||
<!--option value="82">ArtNet RGB (network)</option-->
|
<!--option value="82">ArtNet RGB (network)</option-->
|
||||||
|
<option value="88">DDP RGBW (network)</option>
|
||||||
</select><br>
|
</select><br>
|
||||||
<div id="co${i}" style="display:inline">Color Order:
|
<div id="co${i}" style="display:inline">Color Order:
|
||||||
<select name="CO${i}">
|
<select name="CO${i}">
|
||||||
|
@ -25,9 +25,11 @@ void handleDDPPacket(e131_packet_t* p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t start = htonl(p->channelOffset) /3;
|
uint8_t ddpChannelsPerLed = (p->dataType == DDP_TYPE_RGBW32) ? 4 : 3; // data type 0x1A is RGBW (type 3, 8 bit/channel)
|
||||||
start += DMXAddress /3;
|
|
||||||
uint16_t stop = start + htons(p->dataLen) /3;
|
uint32_t start = htonl(p->channelOffset) / ddpChannelsPerLed;
|
||||||
|
start += DMXAddress / ddpChannelsPerLed;
|
||||||
|
uint16_t stop = start + htons(p->dataLen) / ddpChannelsPerLed;
|
||||||
uint8_t* data = p->data;
|
uint8_t* data = p->data;
|
||||||
uint16_t c = 0;
|
uint16_t c = 0;
|
||||||
if (p->flags & DDP_TIMECODE_FLAG) c = 4; //packet has timecode flag, we do not support it, but data starts 4 bytes later
|
if (p->flags & DDP_TIMECODE_FLAG) c = 4; //packet has timecode flag, we do not support it, but data starts 4 bytes later
|
||||||
@ -36,8 +38,8 @@ void handleDDPPacket(e131_packet_t* p) {
|
|||||||
|
|
||||||
if (!realtimeOverride || (realtimeMode && useMainSegmentOnly)) {
|
if (!realtimeOverride || (realtimeMode && useMainSegmentOnly)) {
|
||||||
for (uint16_t i = start; i < stop; i++) {
|
for (uint16_t i = start; i < stop; i++) {
|
||||||
setRealtimePixel(i, data[c], data[c+1], data[c+2], 0);
|
setRealtimePixel(i, data[c], data[c+1], data[c+2], ddpChannelsPerLed >3 ? data[c+3] : 0);
|
||||||
c+=3;
|
c += ddpChannelsPerLed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_leds_length = 7357;
|
const uint16_t PAGE_settings_leds_length = 7368;
|
||||||
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 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,
|
0x92, 0xff, 0x79, 0x8a, 0x76, 0x27, 0x71, 0xa4, 0x8b, 0x0c, 0x12, 0x1f, 0x8e, 0x07, 0x10, 0xac,
|
||||||
@ -359,345 +359,346 @@ const uint8_t PAGE_settings_leds[] PROGMEM = {
|
|||||||
0x43, 0x32, 0x20, 0x3c, 0x6b, 0x38, 0xe5, 0xb2, 0x4a, 0xdc, 0x61, 0xc9, 0xb3, 0x97, 0x97, 0x26,
|
0x43, 0x32, 0x20, 0x3c, 0x6b, 0x38, 0xe5, 0xb2, 0x4a, 0xdc, 0x61, 0xc9, 0xb3, 0x97, 0x97, 0x26,
|
||||||
0xb0, 0xe8, 0x6a, 0x2e, 0xb7, 0x0a, 0x17, 0xac, 0x02, 0xc6, 0xee, 0xb4, 0xf5, 0x5c, 0x4a, 0x62,
|
0xb0, 0xe8, 0x6a, 0x2e, 0xb7, 0x0a, 0x17, 0xac, 0x02, 0xc6, 0xee, 0xb4, 0xf5, 0x5c, 0x4a, 0x62,
|
||||||
0x42, 0x92, 0xa3, 0xe5, 0x11, 0xfa, 0x9e, 0x0d, 0x49, 0xc5, 0x83, 0xc9, 0xf1, 0x0d, 0xb0, 0x78,
|
0x42, 0x92, 0xa3, 0xe5, 0x11, 0xfa, 0x9e, 0x0d, 0x49, 0xc5, 0x83, 0xc9, 0xf1, 0x0d, 0xb0, 0x78,
|
||||||
0x3c, 0x30, 0x3a, 0xbc, 0x86, 0x5c, 0x6b, 0xde, 0x0b, 0x38, 0x58, 0x78, 0x2c, 0xa9, 0x71, 0x81,
|
0x3c, 0x30, 0x3a, 0xbc, 0x86, 0x5c, 0x43, 0x11, 0xd6, 0x84, 0xe0, 0xe0, 0x4a, 0x62, 0x5c, 0x1e,
|
||||||
0x70, 0x69, 0xb5, 0x40, 0x5a, 0xad, 0xe6, 0x01, 0x30, 0xc0, 0x51, 0xd9, 0x3e, 0x47, 0x55, 0x9c,
|
0x5c, 0x58, 0x2d, 0x10, 0x56, 0xab, 0x79, 0x80, 0x8f, 0x4e, 0x4e, 0x90, 0x0d, 0x8e, 0xd0, 0xf6,
|
||||||
0x6f, 0x4e, 0xb4, 0x38, 0xd0, 0x94, 0x23, 0x4f, 0x06, 0x42, 0x10, 0x9d, 0x54, 0x70, 0x1c, 0xc5,
|
0x39, 0xc2, 0xe2, 0xac, 0x73, 0x02, 0xc6, 0xf1, 0xa6, 0x44, 0x70, 0x32, 0x10, 0xe2, 0xe8, 0xa4,
|
||||||
0xc4, 0x99, 0x01, 0x8e, 0x2a, 0x7d, 0xda, 0xb2, 0xcb, 0x3c, 0x07, 0x5b, 0x16, 0xd9, 0xd4, 0x81,
|
0xe2, 0xe3, 0x28, 0x26, 0xce, 0x0c, 0x70, 0x54, 0xe9, 0xd3, 0x96, 0x75, 0xe6, 0x19, 0xd9, 0xb2,
|
||||||
0x09, 0xf0, 0x3b, 0x06, 0xff, 0x53, 0x2e, 0x81, 0x8f, 0x37, 0x45, 0x09, 0xe8, 0x6a, 0x91, 0xa4,
|
0xcb, 0xa6, 0x0e, 0xbc, 0x80, 0xf7, 0x31, 0xf8, 0x9f, 0x72, 0x39, 0x7c, 0xbc, 0x29, 0xca, 0x41,
|
||||||
0x4d, 0x4b, 0x58, 0x7f, 0x1b, 0xb7, 0x21, 0xdd, 0x33, 0xeb, 0xfd, 0x43, 0x23, 0xfa, 0xbf, 0x23,
|
0x57, 0x8b, 0x24, 0x6d, 0x5a, 0xc2, 0xfa, 0xdb, 0xb8, 0x0d, 0xe9, 0x9e, 0x59, 0xef, 0x1f, 0x1a,
|
||||||
0xb0, 0x69, 0x19, 0x1e, 0xe3, 0x18, 0x87, 0x36, 0x1b, 0x1c, 0x4f, 0x5b, 0x4f, 0xcc, 0xac, 0x2c,
|
0xd1, 0xff, 0x1d, 0x81, 0x4d, 0xcb, 0xf0, 0x18, 0xc7, 0x38, 0xb4, 0xd9, 0xe0, 0x78, 0xda, 0x7a,
|
||||||
0x23, 0x49, 0xf0, 0x58, 0x5b, 0x78, 0xa0, 0x10, 0x68, 0xa1, 0x78, 0xcb, 0xc7, 0x81, 0x67, 0xdb,
|
0x62, 0x6c, 0x65, 0x79, 0x49, 0x82, 0xc7, 0xda, 0xc2, 0x03, 0xe5, 0x40, 0x0b, 0xc5, 0x5b, 0x3e,
|
||||||
0xf6, 0x14, 0x19, 0xcb, 0x97, 0xde, 0x23, 0xa4, 0x62, 0x6c, 0x42, 0xa0, 0x8c, 0xc6, 0xea, 0xb4,
|
0x0e, 0xfc, 0xdb, 0xb6, 0xbf, 0xc8, 0x58, 0xbe, 0xf4, 0x1e, 0x21, 0x21, 0x63, 0x13, 0x02, 0xc5,
|
||||||
0x43, 0xef, 0x20, 0x6f, 0x04, 0xcf, 0x33, 0x21, 0x4a, 0xe8, 0xc7, 0x16, 0xbe, 0x32, 0x4e, 0xf4,
|
0x34, 0xd6, 0xa8, 0x1d, 0x7a, 0x07, 0xd9, 0x23, 0xf8, 0x9f, 0x09, 0x51, 0x42, 0x3f, 0xb6, 0xf0,
|
||||||
0xff, 0xfe, 0x2f, 0x35, 0xcd, 0x8c, 0x26, 0xfb, 0xf1, 0x4d, 0xd8, 0x37, 0x74, 0x0f, 0xbc, 0x5d,
|
0x95, 0x71, 0xa2, 0xff, 0xf7, 0x7f, 0xa9, 0x69, 0x7e, 0x34, 0xd9, 0x8f, 0x6f, 0xc2, 0xbe, 0xa1,
|
||||||
0xd5, 0xa1, 0x6b, 0x74, 0x12, 0x21, 0x98, 0xf8, 0x3f, 0x96, 0x0c, 0xc2, 0x22, 0xf7, 0x9a, 0x7e,
|
0x93, 0xe0, 0x4d, 0xab, 0x0e, 0x5d, 0xa3, 0xab, 0x08, 0xc1, 0xd0, 0xff, 0xb1, 0x64, 0x10, 0x1c,
|
||||||
0x78, 0xea, 0xba, 0x0a, 0xad, 0x3d, 0xc1, 0x8a, 0x6a, 0x4b, 0x33, 0x4c, 0xfc, 0x66, 0xe6, 0x4a,
|
0xb9, 0xef, 0xf4, 0xc3, 0x53, 0xd7, 0x55, 0x68, 0xed, 0x09, 0x56, 0x54, 0x5b, 0x9a, 0x61, 0xe2,
|
||||||
0x97, 0xdc, 0x87, 0x86, 0xe8, 0xf8, 0x36, 0xe6, 0xba, 0x39, 0x49, 0xee, 0x84, 0x82, 0xd7, 0x4a,
|
0x3d, 0x33, 0x87, 0xba, 0xe4, 0x9e, 0x34, 0x44, 0xf7, 0xb7, 0x31, 0xd7, 0xcd, 0x49, 0x72, 0x57,
|
||||||
0x6e, 0x6d, 0x61, 0xea, 0xda, 0x23, 0xb6, 0xd2, 0x00, 0x7d, 0x46, 0x26, 0xd8, 0x2a, 0xbf, 0x67,
|
0x14, 0xbc, 0x56, 0x78, 0x6b, 0x0b, 0x53, 0xd7, 0x1e, 0xb1, 0xa1, 0x06, 0xe8, 0x33, 0x32, 0xc1,
|
||||||
0x66, 0xb0, 0xab, 0xfc, 0xf6, 0x4b, 0x5f, 0x25, 0x05, 0xcf, 0x19, 0x54, 0x0b, 0x33, 0x59, 0xb1,
|
0x56, 0x11, 0x3e, 0x33, 0x83, 0x5d, 0x45, 0xb8, 0x5f, 0xfa, 0x2a, 0x29, 0x7b, 0xce, 0xa0, 0x66,
|
||||||
0x60, 0xf1, 0x33, 0x4b, 0x8a, 0x9f, 0x99, 0xfa, 0x8a, 0xb9, 0x43, 0x50, 0x35, 0x79, 0x63, 0xa1,
|
0x98, 0xc9, 0xba, 0x05, 0x4b, 0xa0, 0x59, 0x52, 0x02, 0xcd, 0xd4, 0x57, 0x8c, 0x1e, 0x42, 0xab,
|
||||||
0x5b, 0x32, 0x38, 0xa9, 0x9c, 0x66, 0x49, 0xe5, 0x24, 0x68, 0x28, 0xae, 0xf9, 0xa7, 0x0a, 0x1c,
|
0xc9, 0xdb, 0x0b, 0xdd, 0x92, 0xc1, 0x49, 0xfd, 0x34, 0x4b, 0xea, 0x27, 0x41, 0x43, 0x71, 0xcd,
|
||||||
0x55, 0x94, 0x37, 0xcf, 0x7c, 0x06, 0x48, 0x10, 0x22, 0xa4, 0x26, 0xbe, 0x38, 0x1e, 0x88, 0x25,
|
0x3f, 0x55, 0xe6, 0xa8, 0xa2, 0xc8, 0x79, 0xe6, 0x33, 0x40, 0x82, 0x10, 0x27, 0x35, 0xf1, 0xc5,
|
||||||
0xc8, 0x24, 0x6d, 0xfb, 0xae, 0x1f, 0x9a, 0xf4, 0xbb, 0xe9, 0x74, 0x4a, 0xbb, 0x69, 0x3d, 0x94,
|
0xf1, 0x40, 0x2c, 0x41, 0x26, 0x69, 0xdb, 0x77, 0xfd, 0xd0, 0xa4, 0xdf, 0x4d, 0xa7, 0x53, 0xda,
|
||||||
0x0e, 0x6c, 0x36, 0xb3, 0x71, 0x47, 0x46, 0xae, 0x1b, 0xb0, 0x8f, 0xe7, 0xa4, 0xda, 0x9b, 0x25,
|
0x4d, 0xab, 0xa2, 0x74, 0x60, 0xb3, 0x99, 0x8d, 0x3b, 0x32, 0x72, 0x3d, 0x81, 0x7d, 0x3c, 0x27,
|
||||||
0xd5, 0xde, 0x2c, 0xa9, 0xf6, 0x66, 0x49, 0xb5, 0x37, 0x93, 0xdd, 0x80, 0x60, 0xab, 0x1b, 0x10,
|
0x35, 0xdf, 0x2c, 0xa9, 0xf9, 0x66, 0x49, 0xcd, 0x37, 0x4b, 0x6a, 0xbe, 0x99, 0xec, 0x09, 0x04,
|
||||||
0xe4, 0xba, 0x01, 0xb8, 0x44, 0xd8, 0xf3, 0xec, 0xe6, 0xda, 0x02, 0xa7, 0x61, 0x68, 0xad, 0x6a,
|
0x5b, 0x3d, 0x81, 0x20, 0xd7, 0x13, 0xc0, 0x25, 0xc2, 0xce, 0x67, 0x37, 0xd7, 0x1c, 0x38, 0x0d,
|
||||||
0x4e, 0xc4, 0xff, 0x26, 0xe5, 0xbc, 0x8a, 0x8b, 0xfc, 0x00, 0x8b, 0xfc, 0xd0, 0x93, 0x6d, 0x03,
|
0x43, 0x6b, 0x55, 0x73, 0x22, 0xfe, 0x37, 0x29, 0xea, 0x55, 0x5c, 0xe4, 0x07, 0x58, 0xe4, 0x87,
|
||||||
0xb9, 0xd2, 0x0f, 0xb0, 0xd2, 0xab, 0x5a, 0xb0, 0x8c, 0xe6, 0x12, 0xf4, 0xd3, 0xc3, 0x67, 0x55,
|
0x9e, 0x6c, 0x1e, 0xc8, 0x95, 0x7e, 0x80, 0x95, 0x5e, 0xd5, 0x82, 0x65, 0x34, 0x97, 0xa0, 0x9f,
|
||||||
0x16, 0xbb, 0x3a, 0x94, 0xba, 0x41, 0xbe, 0xd4, 0x05, 0x2a, 0xce, 0x81, 0xf9, 0x55, 0xd0, 0x9d,
|
0x1e, 0x3e, 0xab, 0xb2, 0xe4, 0xd5, 0xa1, 0xe0, 0x0d, 0xf2, 0x05, 0x2f, 0x50, 0x71, 0x0e, 0xcc,
|
||||||
0x02, 0x27, 0xaf, 0x95, 0xbc, 0xd3, 0x44, 0x08, 0xd3, 0x44, 0x08, 0xd3, 0x44, 0x08, 0xd3, 0x44,
|
0xaf, 0x82, 0xee, 0x14, 0x38, 0x79, 0xad, 0xf0, 0x9d, 0x26, 0x42, 0x98, 0x26, 0x42, 0x98, 0x26,
|
||||||
0x08, 0xd3, 0x44, 0x08, 0xd3, 0x44, 0x08, 0xd3, 0x44, 0x08, 0xd3, 0x5c, 0xc9, 0x3b, 0x2d, 0x2d,
|
0x42, 0x98, 0x26, 0x42, 0x98, 0x26, 0x42, 0x98, 0x26, 0x42, 0x98, 0x26, 0x42, 0x98, 0xe6, 0x0a,
|
||||||
0x79, 0xaf, 0x4a, 0x99, 0x78, 0x6b, 0xc9, 0x7b, 0xb5, 0xaf, 0xe4, 0x15, 0xd2, 0xff, 0xba, 0x25,
|
0xdf, 0x69, 0x69, 0xe1, 0x7b, 0x55, 0xca, 0xc4, 0x5b, 0x0b, 0xdf, 0xab, 0x7d, 0x85, 0xaf, 0x90,
|
||||||
0xfd, 0xec, 0x89, 0x94, 0x5b, 0x4a, 0x27, 0x7b, 0xc7, 0xbb, 0x2e, 0xeb, 0xf5, 0x4a, 0x34, 0x67,
|
0xfe, 0xd7, 0x2d, 0xe9, 0x67, 0x4f, 0xa4, 0xdc, 0x52, 0x3a, 0xd9, 0x3b, 0xde, 0x7b, 0x59, 0xaf,
|
||||||
0x98, 0xd9, 0x67, 0xb9, 0xe6, 0x4c, 0x50, 0x6c, 0xce, 0x0c, 0xb6, 0x95, 0x0d, 0x82, 0x2c, 0xed,
|
0x57, 0xa2, 0x45, 0xc3, 0xcc, 0x3e, 0xcb, 0xb5, 0x68, 0x82, 0x62, 0x8b, 0x66, 0xb0, 0xad, 0x6c,
|
||||||
0x6c, 0x3d, 0xde, 0x81, 0xa0, 0xdf, 0x6c, 0x0e, 0xa8, 0x1f, 0x5a, 0xde, 0x0c, 0x9d, 0x00, 0xd7,
|
0x10, 0x6a, 0x69, 0x67, 0xeb, 0xf1, 0x0e, 0x04, 0xfd, 0x66, 0x73, 0x40, 0xfd, 0xd0, 0xf2, 0x66,
|
||||||
0xd3, 0xf5, 0x9a, 0xb9, 0x11, 0xe3, 0x02, 0xba, 0xdc, 0x35, 0xac, 0x9b, 0xef, 0xa2, 0x43, 0xa1,
|
0xe8, 0x04, 0xb8, 0x9e, 0xae, 0xd7, 0xcc, 0x8d, 0x18, 0x17, 0xd0, 0xe5, 0xae, 0x61, 0xdd, 0x7c,
|
||||||
0x96, 0xf5, 0xd0, 0x3f, 0xf9, 0x9f, 0x5f, 0x5e, 0x44, 0x40, 0x77, 0x23, 0xee, 0xdb, 0x44, 0xfc,
|
0x2f, 0x1d, 0xca, 0xb5, 0xac, 0x93, 0xfe, 0xc9, 0xff, 0xfc, 0xf2, 0x22, 0xc2, 0xba, 0x1b, 0x71,
|
||||||
0x59, 0xc8, 0xf8, 0x23, 0x1f, 0x82, 0x0b, 0xc2, 0xf2, 0x07, 0xd2, 0x81, 0x3c, 0x26, 0xed, 0x12,
|
0xdf, 0x26, 0xe2, 0xcf, 0x42, 0xc6, 0x1f, 0xf9, 0x10, 0x5c, 0x10, 0x16, 0x41, 0x90, 0x14, 0xe4,
|
||||||
0xc2, 0x99, 0x62, 0x65, 0x54, 0xb7, 0xf0, 0xa8, 0x6a, 0xf5, 0xb2, 0xbf, 0x00, 0xa8, 0x85, 0x69,
|
0x31, 0x69, 0x97, 0x10, 0xce, 0x14, 0x2b, 0xa3, 0xba, 0x85, 0x47, 0x55, 0xab, 0x97, 0xfd, 0x05,
|
||||||
0x55, 0x2f, 0x55, 0xed, 0xb2, 0x6f, 0xc3, 0x17, 0xdb, 0x84, 0x8f, 0x7f, 0xde, 0x8c, 0x7b, 0x18,
|
0x40, 0x2d, 0x4c, 0xab, 0x7a, 0xa9, 0x6a, 0x97, 0x7d, 0x1b, 0xbe, 0xd8, 0x26, 0x7c, 0xfc, 0xf3,
|
||||||
0x79, 0x94, 0xc7, 0x2a, 0x8c, 0x06, 0x79, 0x0b, 0x5a, 0x18, 0x17, 0xb1, 0x51, 0x7d, 0x26, 0x77,
|
0x66, 0xdc, 0xc3, 0xc8, 0xa3, 0x3c, 0x56, 0x61, 0x34, 0xc8, 0x5b, 0xd0, 0xc2, 0xb8, 0x88, 0xed,
|
||||||
0x40, 0x16, 0xd2, 0x51, 0x6f, 0x3d, 0x37, 0xcd, 0xc7, 0x01, 0x05, 0x99, 0x29, 0xb4, 0xfa, 0x58,
|
0xea, 0x33, 0xb9, 0x0f, 0xb2, 0x90, 0x8e, 0x7a, 0xeb, 0xb9, 0x69, 0x3e, 0x0e, 0x28, 0xc8, 0x4c,
|
||||||
0xa5, 0x24, 0x98, 0xaf, 0x22, 0xc7, 0xb6, 0xdc, 0xc4, 0xb3, 0x2f, 0xf4, 0x42, 0x05, 0x14, 0x6b,
|
0xa1, 0xd5, 0xc7, 0x2a, 0x25, 0xc1, 0x7c, 0x15, 0x39, 0xb6, 0xe5, 0x26, 0x9e, 0x7d, 0xa1, 0x17,
|
||||||
0x62, 0xff, 0x21, 0xae, 0x63, 0xda, 0xff, 0x17, 0x43, 0x97, 0x55, 0xf4, 0x64, 0x6c, 0x65, 0xe1,
|
0xea, 0xa0, 0x58, 0x13, 0xbb, 0x10, 0x71, 0x1d, 0x93, 0xff, 0xbf, 0x18, 0xba, 0xac, 0xa5, 0x27,
|
||||||
0x74, 0x6c, 0xd9, 0x0f, 0xb3, 0xd0, 0x5f, 0x7a, 0x13, 0xf3, 0x0b, 0xba, 0x65, 0x2b, 0x3c, 0x9a,
|
0x63, 0x2b, 0x0b, 0xa7, 0x63, 0xcb, 0x7e, 0x98, 0x85, 0xfe, 0xd2, 0x9b, 0x98, 0x5f, 0xd0, 0x2d,
|
||||||
0x85, 0xd6, 0xc4, 0xc1, 0xae, 0xfb, 0x3b, 0x7d, 0xc2, 0x66, 0x1a, 0xf9, 0xfe, 0x59, 0xb4, 0x13,
|
0x5b, 0xe1, 0xd1, 0x2c, 0xb4, 0x26, 0x0e, 0xf6, 0xde, 0xdf, 0xe9, 0x13, 0x36, 0xd3, 0xc8, 0xf7,
|
||||||
0x8e, 0xf5, 0x81, 0xf8, 0xf0, 0x0e, 0x12, 0x76, 0xbe, 0xe2, 0xb9, 0x55, 0xb4, 0x6d, 0x9b, 0xae,
|
0xcf, 0xa2, 0xa9, 0x70, 0xac, 0x0f, 0xc4, 0x87, 0x77, 0x90, 0xb6, 0xf3, 0x15, 0xcf, 0xad, 0xa2,
|
||||||
0x89, 0x9e, 0x00, 0xaf, 0x7f, 0xd0, 0xc8, 0x77, 0xad, 0x56, 0x2b, 0xfb, 0x4e, 0x80, 0xfe, 0x0f,
|
0x6d, 0xdb, 0x74, 0x4d, 0xf4, 0x04, 0x78, 0xfd, 0x83, 0x46, 0xbe, 0x6b, 0xb5, 0x5a, 0xd9, 0x77,
|
||||||
0xea, 0x17, 0xb9, 0x22, 0x6c, 0xb2, 0xab, 0x3a, 0xb0, 0xfb, 0xd7, 0x56, 0x3c, 0x47, 0xf7, 0xa4,
|
0x02, 0xf4, 0x7f, 0x50, 0xbf, 0xc8, 0x15, 0x61, 0x93, 0x5d, 0x35, 0x82, 0xdd, 0xbf, 0xb6, 0xe2,
|
||||||
0x70, 0xa7, 0xaa, 0x9d, 0xe8, 0xba, 0xfa, 0xf2, 0x22, 0x28, 0x9f, 0xe8, 0xe5, 0x31, 0xb2, 0x04,
|
0x39, 0xba, 0x27, 0x85, 0x3b, 0x55, 0xed, 0x44, 0xd7, 0xd5, 0x97, 0x17, 0x41, 0xf9, 0x44, 0x2f,
|
||||||
0x9f, 0x50, 0xc1, 0x04, 0x9b, 0xf5, 0xad, 0x04, 0x9b, 0xa1, 0x6f, 0x4e, 0x44, 0x60, 0x7b, 0x82,
|
0x8f, 0x91, 0x25, 0xf8, 0x84, 0x0a, 0x26, 0xd8, 0xac, 0x6f, 0x25, 0xd8, 0x0c, 0x7d, 0x73, 0x22,
|
||||||
0x02, 0x34, 0xf2, 0xbd, 0x82, 0x30, 0x33, 0xfa, 0x27, 0xfa, 0x0f, 0xd8, 0x84, 0x07, 0x74, 0x35,
|
0x02, 0xdb, 0x13, 0x94, 0xa1, 0x91, 0xef, 0x15, 0x84, 0x99, 0xd1, 0x3f, 0xd1, 0x7f, 0xc0, 0x56,
|
||||||
0x6c, 0xa6, 0x90, 0x05, 0x5b, 0xf8, 0xe1, 0x8a, 0x56, 0xb3, 0xa6, 0xcb, 0xe0, 0x0b, 0x51, 0x7a,
|
0x3c, 0xa0, 0xab, 0x61, 0x4b, 0x85, 0x2c, 0xd8, 0xc2, 0x0f, 0x57, 0xb4, 0x9a, 0xb5, 0x5e, 0x06,
|
||||||
0xe3, 0xfe, 0xc5, 0xdd, 0xdd, 0xcd, 0x5d, 0x87, 0xfc, 0xca, 0x9b, 0x27, 0x3e, 0xc4, 0x64, 0x10,
|
0x5f, 0x88, 0xd2, 0x1b, 0xf7, 0x2f, 0xee, 0xee, 0x6e, 0xee, 0x3a, 0xe4, 0x57, 0xde, 0x42, 0xf1,
|
||||||
0x06, 0xae, 0xc4, 0x7a, 0x78, 0xd0, 0xab, 0x8f, 0xfb, 0xea, 0x17, 0x48, 0xc1, 0xd5, 0x0e, 0xe0,
|
0x21, 0x26, 0x83, 0x30, 0x70, 0x25, 0xd6, 0xc3, 0x83, 0x5e, 0x7d, 0xdc, 0x57, 0xbf, 0x40, 0x22,
|
||||||
0xd3, 0x45, 0x53, 0x26, 0x00, 0x08, 0x19, 0xc4, 0x79, 0x50, 0x9c, 0x9b, 0x9c, 0x77, 0x9b, 0x39,
|
0xae, 0x76, 0x00, 0x9f, 0x2e, 0x5a, 0x33, 0x01, 0x40, 0xc8, 0x20, 0xce, 0x83, 0xe2, 0xdc, 0xe4,
|
||||||
0xae, 0xa2, 0x00, 0xda, 0xea, 0xe3, 0x5f, 0x44, 0xa1, 0xa3, 0xd6, 0xdb, 0x30, 0x8b, 0x7a, 0xa3,
|
0xbc, 0xdb, 0xcc, 0x71, 0x15, 0x05, 0xd0, 0x56, 0x1f, 0xff, 0x22, 0xca, 0x1d, 0xb5, 0xde, 0x86,
|
||||||
0x3b, 0x37, 0xe7, 0xfd, 0xf6, 0x20, 0x83, 0x9a, 0xab, 0x9d, 0x79, 0xd7, 0x32, 0x65, 0x66, 0x3f,
|
0x59, 0xd4, 0x1b, 0xdd, 0xb9, 0x39, 0xef, 0xb7, 0x07, 0x19, 0xd4, 0x5c, 0xed, 0xcc, 0xbb, 0x96,
|
||||||
0xe6, 0x19, 0xdd, 0x66, 0x89, 0xad, 0x0d, 0xcd, 0x7c, 0x75, 0x95, 0x75, 0x32, 0xe6, 0x3d, 0xa3,
|
0x29, 0xf3, 0xfb, 0x21, 0xcf, 0xe8, 0x36, 0x0b, 0x6d, 0x6d, 0x6c, 0xe6, 0x6b, 0xac, 0xac, 0x9f,
|
||||||
0xa6, 0x37, 0x0e, 0x0f, 0x0f, 0xc6, 0xf0, 0x6f, 0x38, 0x00, 0x34, 0x17, 0xa3, 0x5b, 0xd2, 0xfe,
|
0x31, 0xef, 0x19, 0x35, 0xbd, 0x71, 0x78, 0x78, 0x30, 0x84, 0x7f, 0xe3, 0x01, 0xa0, 0xb9, 0x18,
|
||||||
0x0d, 0x3b, 0x90, 0xe4, 0xc9, 0x89, 0xe7, 0xc4, 0x38, 0x25, 0xbf, 0x8e, 0x86, 0x24, 0x5a, 0x06,
|
0xdd, 0x92, 0xf6, 0x6f, 0xd8, 0x87, 0x24, 0x4f, 0x4e, 0x3c, 0x27, 0xc6, 0x29, 0xf9, 0x75, 0x34,
|
||||||
0x81, 0xbb, 0xa2, 0x1d, 0xc5, 0xaa, 0x9a, 0xe3, 0x01, 0x35, 0x1a, 0xbf, 0x11, 0xda, 0x19, 0x0e,
|
0x24, 0xd1, 0x32, 0x08, 0xdc, 0x15, 0xed, 0x28, 0x56, 0xd5, 0x1c, 0x0e, 0xa8, 0xd1, 0xf8, 0x8d,
|
||||||
0xe8, 0xc7, 0x51, 0xe3, 0xc4, 0x68, 0x13, 0xf1, 0x9d, 0xc2, 0x40, 0xaa, 0x01, 0xc4, 0x1c, 0xff,
|
0xd0, 0xce, 0x78, 0x40, 0x3f, 0x8e, 0x1a, 0x27, 0x46, 0x9b, 0x88, 0xef, 0x14, 0x06, 0x52, 0x0d,
|
||||||
0x47, 0x4f, 0xe5, 0x28, 0xec, 0xad, 0x79, 0x90, 0x41, 0x40, 0x52, 0x12, 0xfb, 0x7c, 0xda, 0x54,
|
0x20, 0xe6, 0xf8, 0x3f, 0x7a, 0x2a, 0x47, 0x61, 0x87, 0xcd, 0x83, 0x0c, 0x02, 0x92, 0x92, 0xd8,
|
||||||
0x14, 0x6a, 0xa3, 0xdd, 0x93, 0x35, 0xc4, 0x6c, 0xb5, 0x0b, 0x93, 0x2a, 0xbc, 0x71, 0xe5, 0x47,
|
0xe7, 0xd3, 0xa6, 0xa2, 0x5c, 0x1b, 0xed, 0x9e, 0xac, 0x21, 0x66, 0xab, 0x5d, 0x98, 0x54, 0xe1,
|
||||||
0x31, 0x61, 0xd3, 0x29, 0xa0, 0x89, 0x34, 0xf2, 0x9f, 0xb4, 0x7b, 0x51, 0x35, 0x47, 0xe6, 0xa8,
|
0xed, 0x2b, 0x3f, 0x8a, 0x09, 0x9b, 0x4e, 0x01, 0x4d, 0xa4, 0x91, 0xff, 0xa4, 0xdd, 0x8b, 0xaa,
|
||||||
0x20, 0x89, 0x91, 0xda, 0x19, 0x69, 0x17, 0x9c, 0xb0, 0x13, 0x11, 0xe6, 0xf9, 0xcb, 0xd9, 0x5c,
|
0x39, 0x32, 0x47, 0x05, 0x49, 0x8c, 0xd4, 0xce, 0x48, 0xbb, 0xe0, 0x84, 0x9d, 0x88, 0x30, 0xcf,
|
||||||
0xed, 0x8d, 0xc3, 0x7e, 0xd6, 0x1e, 0x2a, 0x2c, 0xaf, 0x55, 0xe8, 0x1a, 0x65, 0xcf, 0x87, 0x68,
|
0x5f, 0xce, 0xe6, 0x6a, 0x6f, 0x1c, 0xf6, 0xb3, 0x26, 0x51, 0x61, 0x79, 0xad, 0x42, 0xef, 0x28,
|
||||||
0x6f, 0x17, 0xe2, 0xe5, 0x57, 0xa1, 0x13, 0x45, 0x75, 0x3d, 0x91, 0x92, 0xbc, 0xbc, 0x97, 0x75,
|
0xb7, 0xec, 0x68, 0x6f, 0x17, 0xe2, 0xe5, 0x57, 0xa1, 0x13, 0x45, 0x75, 0x3d, 0x91, 0x92, 0xbc,
|
||||||
0x2a, 0x4d, 0x34, 0x33, 0xb7, 0xc5, 0x65, 0x45, 0xf1, 0x85, 0x37, 0x91, 0xcd, 0x3e, 0xd6, 0x33,
|
0xbc, 0x97, 0xd5, 0x2a, 0x4d, 0x34, 0x33, 0xb7, 0xd1, 0x65, 0x45, 0xf1, 0x85, 0x37, 0x91, 0x2d,
|
||||||
0x92, 0x06, 0x9e, 0xde, 0x7d, 0x7c, 0xcd, 0x7f, 0x8c, 0x40, 0xb1, 0xd8, 0x11, 0x44, 0x8f, 0xcc,
|
0x3f, 0xd6, 0x33, 0x92, 0x36, 0x9e, 0xde, 0x7d, 0x7c, 0xcd, 0x7f, 0x8c, 0x40, 0xb1, 0xd8, 0x11,
|
||||||
0x87, 0x54, 0x5f, 0xef, 0x39, 0x6c, 0x0e, 0xe9, 0x8a, 0x02, 0xfd, 0x75, 0x5f, 0xb5, 0x35, 0x50,
|
0x44, 0x8f, 0xcc, 0x87, 0x54, 0x5f, 0xef, 0x3c, 0x6c, 0x0e, 0xe9, 0x8a, 0x32, 0xfd, 0x75, 0x5f,
|
||||||
0x72, 0xea, 0xf1, 0xf2, 0xc7, 0x13, 0xe5, 0x0f, 0x54, 0xe1, 0xaa, 0xe6, 0x44, 0xbf, 0x58, 0xbf,
|
0xb5, 0x35, 0x50, 0x72, 0xea, 0xf1, 0x22, 0xc8, 0x13, 0x45, 0x10, 0xd4, 0xe2, 0xaa, 0xe6, 0x44,
|
||||||
0x28, 0x8f, 0xea, 0x40, 0xef, 0x3c, 0x66, 0x53, 0x85, 0xa2, 0x15, 0x17, 0x35, 0xdd, 0xce, 0x13,
|
0xbf, 0x58, 0xbf, 0x28, 0x8f, 0xea, 0x40, 0xef, 0x3c, 0x66, 0x53, 0x85, 0xd2, 0x15, 0x17, 0x35,
|
||||||
0x7b, 0x19, 0x1b, 0xe4, 0xce, 0x92, 0x2d, 0x1d, 0x48, 0xef, 0x46, 0xf7, 0x90, 0xdc, 0x39, 0x66,
|
0xdd, 0xd4, 0x13, 0x3b, 0x1a, 0x1b, 0xe4, 0xce, 0x92, 0x8d, 0x1d, 0x48, 0xef, 0x46, 0xf7, 0x90,
|
||||||
0x9c, 0x26, 0x72, 0x53, 0xe5, 0x40, 0x81, 0x0a, 0x04, 0xa2, 0x95, 0xd3, 0xc7, 0xb4, 0x6a, 0xf8,
|
0xdc, 0x39, 0x66, 0x9c, 0x26, 0x72, 0x53, 0xe5, 0x40, 0x81, 0x0a, 0x04, 0xa2, 0x95, 0xd3, 0xc7,
|
||||||
0xf2, 0x72, 0x24, 0xbe, 0x83, 0x32, 0x3b, 0x6a, 0xd2, 0xbd, 0x16, 0x0e, 0x0f, 0xe6, 0xca, 0x23,
|
0xb4, 0x6a, 0xf8, 0xf2, 0x72, 0x24, 0xbe, 0x83, 0x32, 0x3b, 0x6a, 0xd2, 0xc3, 0x16, 0x0e, 0x0f,
|
||||||
0x27, 0x02, 0x24, 0xf5, 0xf8, 0x97, 0xde, 0xc4, 0x79, 0x24, 0x7c, 0xdb, 0xc8, 0xe4, 0xf8, 0xfb,
|
0xe6, 0xca, 0x23, 0x27, 0x02, 0x24, 0x55, 0xf9, 0x97, 0xde, 0xc4, 0x79, 0x24, 0x7c, 0xf3, 0xc8,
|
||||||
0xbf, 0x7b, 0xbd, 0x39, 0x14, 0xba, 0xb8, 0x6e, 0x72, 0x77, 0xb9, 0xd3, 0x38, 0xd6, 0x83, 0x6f,
|
0xe4, 0xf8, 0xfb, 0xbf, 0x7b, 0xbd, 0x39, 0x94, 0xbb, 0xb8, 0x6e, 0x72, 0x8f, 0xb9, 0xd3, 0x38,
|
||||||
0xf8, 0xe6, 0xfb, 0x67, 0xa7, 0x6a, 0xac, 0x3b, 0x00, 0x22, 0x1a, 0x02, 0x44, 0xec, 0x1b, 0x5f,
|
0xd6, 0x83, 0x6f, 0xf8, 0xe6, 0xfb, 0x67, 0xa7, 0x6a, 0xac, 0x3b, 0x00, 0x22, 0xda, 0x02, 0x44,
|
||||||
0xdd, 0xc3, 0x8b, 0x35, 0x25, 0x50, 0xb4, 0xcd, 0xd1, 0x33, 0x98, 0xf4, 0xd7, 0x4b, 0x25, 0x0e,
|
0xec, 0x1e, 0x5f, 0xdd, 0xc3, 0x8b, 0x35, 0x25, 0x50, 0xba, 0xcd, 0xd1, 0x33, 0x98, 0xf4, 0xd7,
|
||||||
0x41, 0x22, 0x1c, 0x9d, 0x1f, 0xf0, 0xd9, 0xca, 0x92, 0xb2, 0xd1, 0xa0, 0x44, 0x8c, 0x66, 0x93,
|
0x4b, 0x25, 0x0e, 0x41, 0x22, 0x1c, 0x9d, 0x1f, 0xf0, 0xd9, 0xca, 0xc2, 0xb2, 0xd1, 0xa0, 0x44,
|
||||||
0x3e, 0xb7, 0x82, 0x6f, 0xbd, 0xba, 0x00, 0xd9, 0x06, 0x6e, 0xea, 0xb4, 0x3f, 0xfa, 0xdb, 0xf1,
|
0x8c, 0x66, 0x93, 0x3e, 0xb7, 0x82, 0x6f, 0xbd, 0xba, 0x00, 0xd9, 0x06, 0x6e, 0xea, 0xb4, 0x3f,
|
||||||
0x89, 0xd1, 0x20, 0x77, 0x1f, 0x86, 0x1f, 0xf7, 0x00, 0x1a, 0xb4, 0x7f, 0x7f, 0x6d, 0x9c, 0x18,
|
0xfa, 0xdb, 0xf1, 0x89, 0xd1, 0x20, 0x77, 0x1f, 0x86, 0x1f, 0xf7, 0x00, 0x1a, 0xb4, 0x7f, 0x7f,
|
||||||
0xad, 0xdd, 0x30, 0x8d, 0x16, 0x85, 0x42, 0x51, 0x7f, 0xf8, 0xf9, 0x3f, 0xf6, 0xc0, 0xb4, 0x05,
|
0x6d, 0x9c, 0x18, 0xad, 0xdd, 0x30, 0x8d, 0x16, 0x85, 0x7a, 0x51, 0x7f, 0xf8, 0xf9, 0x3f, 0xf6,
|
||||||
0x9e, 0xc6, 0xbb, 0xdd, 0x30, 0x6d, 0x60, 0x0a, 0x19, 0xd7, 0x8d, 0x3d, 0x30, 0xc0, 0xcf, 0xe9,
|
0xc0, 0xb4, 0x05, 0x9e, 0xc6, 0xbb, 0xdd, 0x30, 0x6d, 0x60, 0x0a, 0x19, 0xd7, 0x8d, 0x3d, 0x30,
|
||||||
0xed, 0xa9, 0xa1, 0x37, 0xf6, 0xc0, 0x34, 0x68, 0xff, 0xea, 0xf6, 0xfc, 0xe4, 0x44, 0x3f, 0xde,
|
0xc0, 0xcf, 0xe9, 0xed, 0xa9, 0xa1, 0x37, 0xf6, 0xc0, 0x34, 0x68, 0xff, 0xea, 0xf6, 0xfc, 0xe4,
|
||||||
0x03, 0xd4, 0xe2, 0x40, 0xc7, 0x27, 0x7a, 0x73, 0x0f, 0x50, 0x93, 0xf6, 0x6f, 0xdf, 0x9d, 0x18,
|
0x44, 0x3f, 0xde, 0x03, 0xd4, 0xe2, 0x40, 0xc7, 0x27, 0x7a, 0x73, 0x0f, 0x50, 0x93, 0xf6, 0x6f,
|
||||||
0x7b, 0x40, 0x5a, 0xc0, 0xf4, 0x8d, 0x57, 0xbf, 0x99, 0x4e, 0xf7, 0xc0, 0x00, 0xd3, 0xb7, 0x1f,
|
0xdf, 0x9d, 0x18, 0x7b, 0x40, 0x5a, 0xc0, 0xf4, 0x8d, 0x57, 0xbf, 0x99, 0x4e, 0xf7, 0xc0, 0x00,
|
||||||
0xaf, 0xc9, 0xc7, 0xb9, 0x13, 0xb3, 0x3d, 0x60, 0x0d, 0x01, 0x76, 0x76, 0x76, 0xbf, 0x07, 0xa8,
|
0xd3, 0xb7, 0x1f, 0xaf, 0xc9, 0xc7, 0xb9, 0x13, 0xb3, 0x3d, 0x60, 0x0d, 0x01, 0x76, 0x76, 0x76,
|
||||||
0x29, 0x80, 0x60, 0xd9, 0xf6, 0x00, 0xb5, 0x52, 0xa0, 0x3d, 0x6b, 0xdb, 0x6a, 0xa7, 0x50, 0xd5,
|
0xbf, 0x07, 0xa8, 0x29, 0x80, 0x60, 0xd9, 0xf6, 0x00, 0xb5, 0x52, 0xa0, 0x3d, 0x6b, 0xdb, 0x6a,
|
||||||
0x22, 0xcd, 0xdf, 0xbf, 0x35, 0xed, 0x83, 0xa3, 0xa3, 0x0d, 0xf0, 0xe3, 0x0c, 0xfc, 0x3c, 0x07,
|
0xa7, 0x50, 0xd5, 0x22, 0xcd, 0xdf, 0xbf, 0x35, 0xed, 0x83, 0xa3, 0xa3, 0x0d, 0xf0, 0xe3, 0x0c,
|
||||||
0x7f, 0x74, 0x04, 0xe0, 0x6c, 0x0b, 0xfb, 0x09, 0x08, 0xe6, 0xfc, 0xfc, 0x16, 0xc1, 0x89, 0xe2,
|
0xfc, 0x3c, 0x07, 0x7f, 0x74, 0x04, 0xe0, 0x6c, 0x0b, 0xfb, 0x09, 0x08, 0xe6, 0xfc, 0xfc, 0x16,
|
||||||
0xb1, 0xf8, 0xc9, 0x0f, 0x1f, 0xd4, 0xd7, 0x68, 0x9c, 0x80, 0xa4, 0x2e, 0x8c, 0x5a, 0xd3, 0x28,
|
0xc1, 0x89, 0xe2, 0xb1, 0xf8, 0xc9, 0x0f, 0x1f, 0xd4, 0xd7, 0x68, 0x9c, 0x80, 0xa4, 0x2e, 0x8c,
|
||||||
0x1f, 0x96, 0x90, 0x2a, 0x1f, 0x0b, 0xe2, 0x3b, 0x0d, 0xe3, 0x5f, 0x58, 0xbc, 0x7f, 0x70, 0xaf,
|
0x5a, 0xd3, 0x28, 0x1f, 0x96, 0x90, 0x2a, 0x1f, 0x0b, 0xe2, 0x3b, 0x0d, 0xe3, 0x5f, 0x58, 0xbc,
|
||||||
0x2e, 0xcc, 0xa4, 0x8f, 0x9e, 0x18, 0xbe, 0xa2, 0xa1, 0x3a, 0x13, 0x93, 0xda, 0xbe, 0xb0, 0x36,
|
0x7f, 0xf0, 0x26, 0x9f, 0x27, 0x29, 0x9f, 0x1f, 0x4b, 0x19, 0xed, 0xd5, 0x85, 0x59, 0xf5, 0xd1,
|
||||||
0x69, 0xa2, 0xd2, 0xb7, 0x76, 0x64, 0xa4, 0xef, 0x9f, 0x61, 0x28, 0x27, 0x37, 0xe1, 0x84, 0x85,
|
0x73, 0xc3, 0x57, 0x34, 0x6c, 0x67, 0x62, 0x52, 0xdb, 0x17, 0xd6, 0x29, 0x4d, 0x5a, 0xfa, 0xe2,
|
||||||
0x5b, 0x86, 0x7a, 0x76, 0xc3, 0x87, 0x6e, 0x8b, 0x18, 0x64, 0xf0, 0xe1, 0x6e, 0xcf, 0x42, 0xc1,
|
0x8e, 0xcc, 0x0c, 0xfa, 0x67, 0x18, 0xfa, 0xc9, 0x4d, 0x38, 0x61, 0xe1, 0x96, 0x61, 0x9f, 0xdd,
|
||||||
0x74, 0xf7, 0x2e, 0x24, 0x4c, 0x69, 0x78, 0xf7, 0x61, 0x8f, 0x79, 0xc2, 0xf8, 0xe1, 0x9e, 0xf7,
|
0xf0, 0xa1, 0xdb, 0x4b, 0x02, 0x32, 0xfb, 0x70, 0xb7, 0x67, 0x61, 0x41, 0x3c, 0x7b, 0x17, 0x1e,
|
||||||
0xa0, 0x07, 0xc3, 0x0f, 0x77, 0x7b, 0x14, 0x1c, 0xf8, 0x1b, 0x16, 0xde, 0xa7, 0xc2, 0xa9, 0x83,
|
0x44, 0x30, 0xbc, 0xfb, 0xb0, 0xc7, 0x9c, 0x61, 0xfc, 0x70, 0xcf, 0x7b, 0xd0, 0x9b, 0xe1, 0x87,
|
||||||
0x5c, 0xf2, 0xe2, 0x99, 0x38, 0x33, 0x9c, 0xe4, 0xd3, 0x96, 0x80, 0x78, 0x9c, 0xe9, 0x8f, 0x9e,
|
0xbb, 0x3d, 0x06, 0x01, 0xfc, 0x0d, 0xef, 0x4a, 0x85, 0x53, 0x07, 0xb9, 0xe4, 0xc5, 0x33, 0x71,
|
||||||
0xac, 0xa0, 0x43, 0x8a, 0x62, 0xf9, 0x28, 0xc5, 0xb2, 0x2d, 0x94, 0x5f, 0x60, 0x4c, 0x4a, 0x75,
|
0x66, 0x38, 0xc9, 0xa7, 0x2d, 0x01, 0xf1, 0xb8, 0xd4, 0x1f, 0x3d, 0x59, 0x41, 0x87, 0x14, 0xc5,
|
||||||
0x5b, 0x26, 0x1f, 0xc9, 0x21, 0x19, 0xee, 0x7a, 0xdf, 0x10, 0xef, 0x3f, 0xec, 0x7a, 0xdf, 0x14,
|
0xf2, 0x51, 0x8a, 0x65, 0x5b, 0x28, 0xbf, 0xc0, 0x98, 0x94, 0xea, 0xb6, 0x4c, 0x3e, 0x92, 0x43,
|
||||||
0xef, 0xb3, 0x59, 0x95, 0xce, 0x09, 0xff, 0x44, 0x81, 0xe5, 0xf1, 0xb9, 0x05, 0xd1, 0x44, 0x70,
|
0x32, 0xdc, 0xf5, 0xbe, 0x21, 0xde, 0x7f, 0xd8, 0xf5, 0xbe, 0x29, 0xde, 0x67, 0xb3, 0x2a, 0x9d,
|
||||||
0x2a, 0xda, 0x0d, 0x30, 0x00, 0xde, 0xf4, 0x49, 0x4f, 0xec, 0x74, 0xe2, 0x29, 0x0e, 0x93, 0x7a,
|
0x13, 0xfe, 0x89, 0x02, 0xcb, 0xe3, 0x73, 0x0b, 0xa2, 0x89, 0xe0, 0x54, 0xb4, 0x27, 0x60, 0x00,
|
||||||
0xcb, 0xc5, 0x98, 0x85, 0x34, 0x71, 0xcd, 0x23, 0xa1, 0x2c, 0x38, 0xda, 0x8d, 0xc4, 0x67, 0xe9,
|
0xbc, 0xe9, 0x93, 0x9e, 0xd8, 0x1f, 0xc5, 0xb3, 0x1f, 0x26, 0xf5, 0x96, 0x8b, 0x31, 0x0b, 0x69,
|
||||||
0xed, 0x5d, 0x22, 0xaa, 0x02, 0x4a, 0xb0, 0xba, 0x85, 0xd9, 0x62, 0x96, 0x86, 0xaa, 0xfd, 0xce,
|
0xe2, 0xca, 0x47, 0x42, 0x59, 0x70, 0xb4, 0x1b, 0x89, 0xcf, 0x32, 0x3a, 0xb8, 0x44, 0x54, 0x11,
|
||||||
0xa0, 0x09, 0x8f, 0xdf, 0x3f, 0x27, 0xe1, 0xd8, 0x51, 0xb9, 0x83, 0xe7, 0x94, 0x4c, 0x9a, 0xaf,
|
0x94, 0x60, 0x35, 0x0c, 0xb3, 0xc5, 0xac, 0x0e, 0x4d, 0xe1, 0x9d, 0x41, 0x13, 0x1e, 0xbf, 0x7f,
|
||||||
0x27, 0x10, 0xe9, 0x67, 0x13, 0xdd, 0x7d, 0x17, 0xfb, 0xff, 0x5d, 0x4a, 0x92, 0x56, 0x22, 0xa9,
|
0x4e, 0xc2, 0xb7, 0xa3, 0xf2, 0x80, 0xc0, 0x29, 0x99, 0x34, 0x5f, 0x7f, 0x20, 0xd2, 0xcf, 0x26,
|
||||||
0xf7, 0x0f, 0xbd, 0x71, 0x14, 0x74, 0xb7, 0x97, 0xc7, 0xde, 0xa9, 0xbf, 0x57, 0x3c, 0xb4, 0x75,
|
0x86, 0x87, 0x2e, 0xee, 0x1a, 0x74, 0x29, 0x49, 0x1a, 0x90, 0xa4, 0xde, 0x3f, 0xf4, 0xc6, 0x51,
|
||||||
0xf6, 0x4e, 0xea, 0xac, 0x38, 0x11, 0x39, 0x03, 0x43, 0xce, 0x80, 0x27, 0x8e, 0xb7, 0xc3, 0x35,
|
0xd0, 0xdd, 0x5e, 0x1e, 0x7b, 0xa7, 0xfe, 0x5e, 0xf1, 0x50, 0xd8, 0xd9, 0x3b, 0xa9, 0xb3, 0xe2,
|
||||||
0xcd, 0x56, 0x2a, 0x63, 0x29, 0x9d, 0x02, 0xf2, 0x4a, 0x81, 0x43, 0x21, 0x6c, 0x69, 0x63, 0xf5,
|
0x44, 0xe4, 0x0c, 0x0c, 0x39, 0x03, 0x9e, 0x68, 0xde, 0x0e, 0xd7, 0x34, 0x5b, 0xa9, 0x8c, 0xa5,
|
||||||
0x2d, 0x89, 0xeb, 0x52, 0xe2, 0xbc, 0x0f, 0xfc, 0x16, 0x81, 0xeb, 0x82, 0xb7, 0x82, 0x4c, 0x9b,
|
0x74, 0x0a, 0xc8, 0x2b, 0x05, 0x0e, 0x85, 0xb0, 0xa5, 0x8d, 0xd5, 0xb7, 0x24, 0xae, 0x4b, 0x89,
|
||||||
0xcd, 0x1c, 0x07, 0x92, 0xeb, 0x68, 0x23, 0x5e, 0xaa, 0xb4, 0x5e, 0xa4, 0x6c, 0x48, 0xca, 0x92,
|
0xf3, 0xee, 0xf1, 0x5b, 0x04, 0xae, 0x0b, 0xde, 0x0a, 0x32, 0x6d, 0x36, 0x73, 0x1c, 0x48, 0xae,
|
||||||
0xe8, 0x3e, 0x9a, 0xc6, 0x0e, 0x9a, 0x6f, 0x25, 0xd5, 0x78, 0x3b, 0xa9, 0xc6, 0xbf, 0x48, 0xaa,
|
0xa3, 0x8d, 0xf8, 0xaa, 0xd2, 0x7a, 0x91, 0xb2, 0x21, 0x29, 0x4b, 0xa2, 0xfb, 0x68, 0x1a, 0x3b,
|
||||||
0xf9, 0x76, 0x52, 0xcd, 0x7f, 0x91, 0x54, 0xeb, 0xed, 0xa4, 0x5a, 0xff, 0x14, 0xa9, 0x0d, 0x9d,
|
0x68, 0xbe, 0x95, 0x54, 0xe3, 0xed, 0xa4, 0x1a, 0xff, 0x22, 0xa9, 0xe6, 0xdb, 0x49, 0x35, 0xff,
|
||||||
0x0e, 0x77, 0xea, 0x34, 0x6a, 0x57, 0xc6, 0x18, 0xe4, 0xe9, 0x82, 0xb1, 0xa4, 0xf7, 0x28, 0x19,
|
0x45, 0x52, 0xad, 0xb7, 0x93, 0x6a, 0xfd, 0x53, 0xa4, 0x36, 0x74, 0x3a, 0xdc, 0xa9, 0xd3, 0xa8,
|
||||||
0xdc, 0xd0, 0x79, 0xde, 0x53, 0x1f, 0xfb, 0xdf, 0x12, 0x26, 0xcf, 0x7e, 0x4b, 0xa6, 0x53, 0xee,
|
0x5d, 0x19, 0x63, 0x90, 0xd7, 0x0b, 0xc6, 0x92, 0x5e, 0xa5, 0x64, 0x70, 0x43, 0xe7, 0x79, 0x27,
|
||||||
0xf1, 0xa2, 0xbd, 0xe4, 0x47, 0x0f, 0x4e, 0x40, 0xa6, 0x4e, 0x08, 0xd5, 0x00, 0xe6, 0x9c, 0x7b,
|
0x7e, 0xec, 0x7f, 0x4b, 0x98, 0x3c, 0xfb, 0x2d, 0x99, 0x4e, 0xb9, 0xc7, 0x8b, 0xf6, 0x92, 0x1f,
|
||||||
0xed, 0x6b, 0x74, 0x55, 0x22, 0x0e, 0xa8, 0x83, 0x68, 0xe6, 0x19, 0x37, 0xec, 0x68, 0x27, 0x53,
|
0x3d, 0x38, 0x01, 0x99, 0x3a, 0x21, 0x54, 0x0f, 0x98, 0xa3, 0xee, 0xb5, 0xaf, 0xd1, 0x55, 0x89,
|
||||||
0xd3, 0xbd, 0x4c, 0x41, 0x36, 0x42, 0xee, 0xd8, 0x34, 0x64, 0x51, 0x66, 0xf0, 0x5c, 0x42, 0x53,
|
0x38, 0xa0, 0x6e, 0xa2, 0x99, 0x67, 0xdc, 0xb0, 0xa3, 0x9d, 0x4c, 0x4d, 0xf7, 0x32, 0x05, 0xd9,
|
||||||
0xc1, 0x40, 0xb9, 0x20, 0xee, 0xde, 0xef, 0x17, 0x84, 0xb5, 0x97, 0xe6, 0xe9, 0x32, 0xf6, 0x8f,
|
0x0b, 0xb9, 0x63, 0xd3, 0x90, 0x45, 0x99, 0xc1, 0x73, 0x09, 0x4d, 0x05, 0x03, 0xe5, 0x82, 0xb8,
|
||||||
0x6c, 0xcb, 0xb5, 0x97, 0xae, 0x15, 0x33, 0xf2, 0x84, 0xb9, 0x0e, 0x1e, 0xc8, 0x84, 0x2a, 0xc6,
|
0x7b, 0xbf, 0x5f, 0x10, 0xd6, 0x5e, 0x9a, 0xa7, 0xcb, 0xd8, 0x3f, 0xb2, 0x2d, 0xd7, 0x5e, 0xba,
|
||||||
0x25, 0xd3, 0xd0, 0x5f, 0x60, 0x54, 0xee, 0x88, 0x15, 0xcb, 0x07, 0x89, 0xd3, 0x8f, 0x65, 0x41,
|
0x56, 0xcc, 0xc8, 0x13, 0xe6, 0x46, 0x78, 0x8c, 0x13, 0xaa, 0x1e, 0x97, 0x4c, 0x43, 0x7f, 0x81,
|
||||||
0x42, 0xdf, 0x17, 0x22, 0x8c, 0xfe, 0x30, 0x74, 0x66, 0xf3, 0x98, 0x85, 0x3b, 0x00, 0x1a, 0xfd,
|
0x11, 0xb9, 0x23, 0x56, 0x2c, 0x1f, 0x24, 0x4e, 0x3f, 0x96, 0x05, 0x09, 0x7d, 0x5f, 0x88, 0x30,
|
||||||
0x53, 0xdb, 0xc6, 0xa3, 0x69, 0xbb, 0x30, 0x34, 0xfb, 0xe7, 0x4b, 0xcb, 0xdd, 0x8e, 0x10, 0xc2,
|
0xfa, 0xc3, 0xd0, 0x99, 0xcd, 0x63, 0x16, 0xee, 0x00, 0x68, 0xf4, 0x4f, 0x6d, 0x1b, 0x0f, 0xb4,
|
||||||
0xad, 0xa6, 0x02, 0xe0, 0x7f, 0xbf, 0x74, 0x2d, 0xa8, 0xc5, 0x22, 0x16, 0xc6, 0xa7, 0x93, 0xaf,
|
0xed, 0xc2, 0xd0, 0xec, 0x9f, 0x2f, 0x2d, 0x77, 0x3b, 0x42, 0x08, 0xb7, 0x9a, 0x0a, 0x80, 0xff,
|
||||||
0x96, 0x0d, 0xd5, 0x03, 0x16, 0x65, 0x0a, 0x1d, 0x33, 0xa8, 0x03, 0x19, 0xf3, 0x26, 0x54, 0xf3,
|
0xfd, 0xd2, 0xb5, 0xa0, 0x76, 0x8b, 0x58, 0x18, 0x9f, 0x4e, 0xbe, 0x5a, 0x36, 0x54, 0x1b, 0x58,
|
||||||
0xd5, 0xb5, 0x2c, 0x0f, 0x94, 0xf8, 0xd3, 0xd1, 0x91, 0xf3, 0xb9, 0x16, 0x42, 0x3d, 0xfe, 0xc8,
|
0xc4, 0x29, 0x74, 0xcc, 0xa0, 0x6e, 0x64, 0xcc, 0x9b, 0x50, 0xcd, 0x57, 0xd7, 0xb2, 0x9c, 0x50,
|
||||||
0x14, 0x55, 0x83, 0x6f, 0xb2, 0x01, 0x54, 0xdd, 0x2a, 0xdb, 0x9c, 0x1e, 0x96, 0x16, 0x47, 0x46,
|
0xe2, 0x4f, 0x47, 0x47, 0xce, 0xe7, 0x5a, 0x08, 0xf5, 0xfb, 0x23, 0x53, 0x54, 0x0d, 0xbe, 0xc9,
|
||||||
0x79, 0x3b, 0xe1, 0x68, 0x1b, 0xbe, 0xbf, 0xdd, 0x79, 0xf0, 0x5e, 0x5e, 0xf8, 0xee, 0x70, 0xa1,
|
0x86, 0x51, 0x75, 0xab, 0xcc, 0x73, 0x7a, 0x58, 0x8a, 0x1c, 0x19, 0xe5, 0xed, 0x87, 0xa3, 0x6d,
|
||||||
0xfa, 0x39, 0xbb, 0xb9, 0x56, 0x40, 0x86, 0x50, 0xfe, 0xf0, 0xcd, 0x50, 0x51, 0x94, 0x38, 0x7b,
|
0xf8, 0xfe, 0x76, 0xa7, 0xc2, 0x7b, 0x79, 0xe1, 0x7b, 0xca, 0x85, 0x6a, 0xe9, 0xec, 0xe6, 0x5a,
|
||||||
0x2a, 0x20, 0xdb, 0x5f, 0xfc, 0x01, 0x0f, 0xc3, 0x15, 0xd0, 0xcc, 0xd7, 0x40, 0x50, 0xfd, 0x60,
|
0x01, 0x19, 0x42, 0xb9, 0xc4, 0xb7, 0x50, 0x45, 0x11, 0xe3, 0xec, 0xa9, 0x98, 0x6c, 0x7f, 0xf1,
|
||||||
0xb3, 0x4d, 0x96, 0x3b, 0x85, 0xa2, 0x26, 0x1b, 0xf2, 0x96, 0xd2, 0x86, 0x88, 0xc8, 0xba, 0xcf,
|
0x07, 0x3c, 0x0c, 0x57, 0x40, 0x33, 0x5f, 0x33, 0x41, 0xb5, 0x84, 0xcd, 0x39, 0x59, 0x1e, 0x15,
|
||||||
0x3a, 0xfe, 0x9e, 0x0b, 0xa9, 0xdf, 0xde, 0x14, 0x52, 0x8f, 0xdb, 0xed, 0x66, 0x3b, 0x17, 0x53,
|
0x8a, 0xa0, 0x6c, 0xc8, 0x5b, 0x4a, 0x21, 0x22, 0x22, 0xeb, 0x3e, 0xeb, 0xf8, 0x7b, 0x2e, 0xa4,
|
||||||
0xd9, 0x7a, 0xc3, 0x7e, 0x72, 0x31, 0xd3, 0xa4, 0x34, 0x0d, 0x9a, 0x6f, 0x08, 0x85, 0x7f, 0x3f,
|
0x7e, 0x7b, 0x53, 0x48, 0x3d, 0x6e, 0xb7, 0x9b, 0xed, 0x5c, 0x4c, 0x65, 0xeb, 0x0d, 0xfb, 0xc9,
|
||||||
0xcb, 0x31, 0x63, 0xef, 0x0d, 0x8b, 0x9b, 0x5c, 0x78, 0xeb, 0x02, 0xd5, 0x4d, 0x8b, 0x96, 0x76,
|
0xc5, 0x4c, 0x93, 0xd2, 0x34, 0x68, 0xbe, 0x21, 0x14, 0xfe, 0xfd, 0x2c, 0xc7, 0x8c, 0xbd, 0x37,
|
||||||
0xf5, 0xa7, 0xb2, 0x4c, 0xce, 0x85, 0x4c, 0x4f, 0x25, 0x7f, 0xff, 0xff, 0x32, 0xce, 0xc4, 0xde,
|
0x2c, 0x6e, 0x72, 0xe1, 0xad, 0x0b, 0x54, 0x37, 0x2d, 0x5a, 0xda, 0xd5, 0x9f, 0xca, 0x32, 0x39,
|
||||||
0xb8, 0x8b, 0x90, 0x96, 0x27, 0xf7, 0x1b, 0x85, 0xa6, 0x39, 0x2c, 0xe2, 0x6d, 0x91, 0xbd, 0xa6,
|
0x17, 0x32, 0x3d, 0x95, 0xfc, 0xfd, 0xff, 0xcb, 0x38, 0x13, 0x7b, 0xe3, 0x2e, 0x42, 0x5a, 0x9e,
|
||||||
0x68, 0x49, 0x6b, 0xfb, 0xe6, 0xd3, 0xaa, 0x93, 0xf4, 0x60, 0x63, 0x6d, 0x1c, 0x7b, 0x68, 0x14,
|
0xdc, 0x9f, 0x14, 0x9a, 0xe6, 0xb0, 0x88, 0xb7, 0x51, 0xf6, 0x9a, 0xa2, 0x25, 0xad, 0xed, 0x9b,
|
||||||
0xa0, 0x8b, 0xf2, 0x34, 0x45, 0x66, 0x2f, 0x60, 0xaa, 0xf8, 0x6a, 0xc7, 0xb1, 0xcb, 0x72, 0x23,
|
0x4f, 0xab, 0x4e, 0xd2, 0xb3, 0x8d, 0xb5, 0x71, 0xec, 0xa1, 0x51, 0x80, 0x2e, 0xca, 0x33, 0x18,
|
||||||
0x01, 0xcb, 0x4a, 0x4f, 0xb3, 0xe9, 0x07, 0x26, 0x6e, 0x9e, 0x29, 0xec, 0x93, 0x77, 0x64, 0xe4,
|
0x99, 0xbd, 0x80, 0xa9, 0xe2, 0xab, 0x1d, 0x87, 0x35, 0xcb, 0x8d, 0x04, 0x2c, 0x2b, 0x3d, 0x03,
|
||||||
0x2c, 0x5f, 0x92, 0x84, 0x87, 0x82, 0xa4, 0x9a, 0x27, 0x19, 0xb1, 0x98, 0x1b, 0xa9, 0xfa, 0x8c,
|
0xa7, 0x1f, 0x98, 0xb8, 0xd9, 0xa6, 0xb0, 0x4f, 0xde, 0x91, 0x91, 0xb3, 0x7c, 0x49, 0x12, 0x1e,
|
||||||
0x4e, 0x63, 0xe3, 0xec, 0x35, 0x13, 0x5b, 0x09, 0x78, 0xb6, 0x83, 0x61, 0x97, 0xef, 0x4d, 0x2c,
|
0x0a, 0x92, 0x6a, 0x9e, 0x64, 0xc4, 0x62, 0x6e, 0xa4, 0xea, 0x33, 0x3a, 0x8d, 0x8d, 0x13, 0xdb,
|
||||||
0xa9, 0x2c, 0x25, 0xdd, 0x95, 0xa4, 0x0b, 0x67, 0x52, 0xc5, 0x23, 0x20, 0x98, 0xca, 0x14, 0x1c,
|
0x4c, 0x6c, 0x3d, 0xe0, 0x89, 0x10, 0x86, 0x5d, 0xc1, 0x37, 0xb1, 0xa4, 0xb2, 0x94, 0x74, 0x57,
|
||||||
0xc5, 0xf6, 0xe1, 0xa4, 0x5e, 0x91, 0x97, 0x72, 0xd7, 0x84, 0xa3, 0x81, 0xd8, 0xf6, 0xe8, 0x6d,
|
0x92, 0x2e, 0x9c, 0x64, 0x15, 0x8f, 0x80, 0x60, 0x2a, 0x53, 0x70, 0x14, 0xdb, 0x47, 0x9a, 0x7a,
|
||||||
0x07, 0x55, 0xf0, 0x4b, 0xc3, 0xd8, 0x13, 0x87, 0x62, 0x13, 0x8f, 0xc4, 0xb1, 0x01, 0x6b, 0x51,
|
0x45, 0x5e, 0xca, 0x5d, 0x13, 0x8e, 0x06, 0x62, 0xdb, 0xa3, 0xb7, 0x1d, 0x54, 0xc1, 0x2f, 0x0d,
|
||||||
0xbe, 0xdf, 0xa5, 0x59, 0x26, 0xee, 0x68, 0x54, 0x47, 0x7c, 0x5b, 0xa2, 0x86, 0xb1, 0xe3, 0x6c,
|
0x63, 0x4f, 0x1c, 0xa5, 0x4d, 0x3c, 0x12, 0xc7, 0x06, 0xac, 0x45, 0xf9, 0xfe, 0x98, 0x66, 0x99,
|
||||||
0x6e, 0x85, 0x67, 0xfe, 0x84, 0x29, 0xd8, 0xb8, 0xd2, 0x07, 0xad, 0x93, 0x4e, 0xbb, 0xad, 0x56,
|
0xb8, 0x03, 0x52, 0x1d, 0xf1, 0x6d, 0x8c, 0x1a, 0xc6, 0x8e, 0xb3, 0xb9, 0x15, 0x9e, 0xf9, 0x13,
|
||||||
0x41, 0x4e, 0x4e, 0xd5, 0xfc, 0x32, 0x5c, 0xc6, 0xb1, 0xcf, 0xcf, 0xc7, 0xad, 0xc5, 0xb1, 0x82,
|
0xa6, 0x60, 0xa3, 0x4b, 0x1f, 0xb4, 0x4e, 0x3a, 0xed, 0xb6, 0x5a, 0x05, 0x39, 0x39, 0x55, 0xf3,
|
||||||
0x72, 0xc3, 0xe6, 0x46, 0x7b, 0x94, 0x58, 0x2d, 0xd4, 0xed, 0xd2, 0x94, 0xbe, 0x7f, 0xb6, 0xd6,
|
0xcb, 0x70, 0x19, 0xc7, 0x3e, 0x3f, 0x55, 0xb7, 0x16, 0x87, 0x11, 0xca, 0x0d, 0x9b, 0x1b, 0xed,
|
||||||
0x5b, 0x79, 0x48, 0x62, 0xec, 0xdf, 0xa2, 0xa2, 0x65, 0xf7, 0xbf, 0x68, 0x48, 0x52, 0xc6, 0x89,
|
0x51, 0x62, 0xb5, 0x50, 0xe7, 0x4b, 0x53, 0xfa, 0xfe, 0xd9, 0x5a, 0x6f, 0xe5, 0x21, 0x89, 0xb1,
|
||||||
0x42, 0x20, 0xfb, 0xfe, 0x99, 0x0e, 0x2f, 0xde, 0xc4, 0x75, 0x8a, 0x66, 0xcb, 0x76, 0x61, 0x12,
|
0x7f, 0x8b, 0x8a, 0x96, 0xdd, 0xff, 0xa2, 0x21, 0x49, 0x19, 0x27, 0x0a, 0x81, 0xec, 0xfb, 0x67,
|
||||||
0xba, 0x69, 0xc6, 0x03, 0x9a, 0x74, 0x72, 0xf0, 0x84, 0xc4, 0xba, 0x7f, 0x2e, 0x37, 0x0d, 0x52,
|
0x3a, 0xbc, 0x78, 0x13, 0xd7, 0x29, 0x9a, 0x2d, 0xdb, 0x85, 0x49, 0xe8, 0xa6, 0x19, 0x0f, 0x68,
|
||||||
0xb3, 0x29, 0x1d, 0xde, 0xc0, 0xe1, 0x8d, 0x92, 0xe1, 0xb7, 0xcb, 0x68, 0x3e, 0xe6, 0x42, 0xda,
|
0xd2, 0xf9, 0xc1, 0x73, 0x15, 0xeb, 0xfe, 0xb9, 0xdc, 0x64, 0x48, 0xcd, 0xa6, 0x74, 0x78, 0x03,
|
||||||
0x8f, 0xa0, 0x89, 0x08, 0x9a, 0x3b, 0x10, 0x10, 0x47, 0xee, 0xf1, 0xee, 0xc7, 0xd1, 0x42, 0x1c,
|
0x87, 0x37, 0x4a, 0x86, 0xdf, 0x2e, 0xa3, 0xf9, 0x98, 0x0b, 0x69, 0x3f, 0x82, 0x26, 0x22, 0x68,
|
||||||
0xad, 0x12, 0x1c, 0x23, 0x7e, 0x96, 0x6c, 0xff, 0xe0, 0x36, 0x0e, 0x6e, 0x97, 0x31, 0x70, 0x79,
|
0xee, 0x40, 0x40, 0x1c, 0xb9, 0x27, 0xbc, 0x1f, 0x47, 0x0b, 0x71, 0xb4, 0x4a, 0x70, 0x8c, 0xf8,
|
||||||
0x47, 0x22, 0xe6, 0x45, 0x7e, 0xb8, 0x1f, 0xc1, 0x31, 0x22, 0x38, 0x2e, 0x41, 0x70, 0xef, 0x2f,
|
0x09, 0xb4, 0xfd, 0x83, 0xdb, 0x38, 0xb8, 0x5d, 0xc6, 0xc0, 0xe5, 0x1d, 0x89, 0x98, 0x17, 0xf9,
|
||||||
0x5f, 0x23, 0xfe, 0x13, 0x8e, 0xfd, 0xa9, 0x64, 0xec, 0xa9, 0x67, 0xb9, 0xfe, 0x6c, 0xff, 0xe0,
|
0xe1, 0x7e, 0x04, 0xc7, 0x88, 0xe0, 0xb8, 0x04, 0xc1, 0xbd, 0xbf, 0x7c, 0x8d, 0xf8, 0x4f, 0x38,
|
||||||
0x13, 0x1c, 0x7c, 0xb2, 0x73, 0xf0, 0x0e, 0xe1, 0xd1, 0xd4, 0xf9, 0x51, 0x81, 0x94, 0xe7, 0xb2,
|
0xf6, 0xa7, 0x92, 0xb1, 0xa7, 0x9e, 0xe5, 0xfa, 0xb3, 0xfd, 0x83, 0x4f, 0x70, 0xf0, 0xc9, 0xce,
|
||||||
0x32, 0x34, 0x40, 0x02, 0x03, 0xf3, 0xed, 0x90, 0xc0, 0x77, 0x3c, 0x48, 0x75, 0xba, 0x5c, 0x47,
|
0xc1, 0x3b, 0x84, 0x47, 0x53, 0xe7, 0x47, 0x05, 0x52, 0x9e, 0xcb, 0xca, 0xd0, 0x00, 0x09, 0x0c,
|
||||||
0xf9, 0xe1, 0x0d, 0x8a, 0x37, 0x1c, 0x7e, 0x44, 0xbd, 0xfd, 0x51, 0x4d, 0xa2, 0xda, 0xe1, 0x77,
|
0xcc, 0xb7, 0x43, 0x02, 0xdf, 0xf1, 0x20, 0xd5, 0xe9, 0x72, 0x1d, 0xe5, 0x47, 0x3e, 0x28, 0xde,
|
||||||
0xdf, 0x1a, 0x3f, 0x19, 0xed, 0x6e, 0x92, 0x94, 0x83, 0x13, 0x95, 0xdb, 0x1c, 0x9b, 0xe6, 0x95,
|
0x8b, 0xf8, 0x11, 0xf5, 0xf6, 0x47, 0x35, 0x89, 0x6a, 0x87, 0xdf, 0x7d, 0x6b, 0xfc, 0x64, 0xb4,
|
||||||
0x3f, 0x72, 0x1e, 0xcf, 0xdc, 0x91, 0x83, 0x4e, 0x41, 0x29, 0xdc, 0x0e, 0x61, 0xea, 0xcb, 0x8b,
|
0xbb, 0x49, 0x52, 0x0e, 0x4e, 0x54, 0x6e, 0x8b, 0x6c, 0x9a, 0x57, 0xfe, 0xa0, 0x7a, 0x3c, 0x73,
|
||||||
0x52, 0xbc, 0x1f, 0xb2, 0x79, 0x08, 0x2d, 0xbd, 0x6b, 0xf0, 0x8c, 0xae, 0x4a, 0xb8, 0xce, 0x03,
|
0x47, 0x0e, 0x3a, 0x05, 0xa5, 0x70, 0xa7, 0x84, 0xa9, 0x2f, 0x2f, 0x4a, 0xf1, 0x56, 0xc9, 0xe6,
|
||||||
0x03, 0x33, 0x8e, 0x2e, 0x04, 0xb8, 0xfd, 0xad, 0xd6, 0xc4, 0x73, 0x7a, 0xb8, 0x5f, 0xbe, 0xbd,
|
0xd1, 0xb5, 0xf4, 0x86, 0xc2, 0x33, 0xba, 0x2a, 0xe1, 0x3a, 0x0f, 0x0c, 0xcc, 0x38, 0xba, 0x10,
|
||||||
0xe5, 0xc5, 0x5d, 0xa6, 0xfa, 0x27, 0xfa, 0xcc, 0x5e, 0xb1, 0x5d, 0x7c, 0x50, 0xb2, 0x8d, 0xe6,
|
0xe0, 0xf6, 0xb7, 0x66, 0x13, 0xcf, 0xe9, 0xe1, 0xfe, 0xfa, 0xf6, 0x16, 0x19, 0x77, 0x99, 0xea,
|
||||||
0x25, 0xf8, 0xd0, 0x51, 0xe3, 0xe1, 0xc5, 0x7c, 0xa5, 0xed, 0x7d, 0xc6, 0x36, 0xb1, 0xdc, 0x07,
|
0x9f, 0xe8, 0x4b, 0x7b, 0xc5, 0xf6, 0xf2, 0x41, 0xc9, 0xb6, 0x9b, 0x97, 0xe0, 0x43, 0x47, 0x8d,
|
||||||
0x8b, 0x74, 0x0a, 0x40, 0xfa, 0x36, 0x12, 0xdc, 0xd7, 0xda, 0x8d, 0x43, 0xe7, 0x38, 0x84, 0xc4,
|
0x47, 0x1e, 0xf3, 0x95, 0xb6, 0xf7, 0x19, 0xdb, 0xca, 0x72, 0xdf, 0x2c, 0xd2, 0x29, 0x00, 0xe9,
|
||||||
0x23, 0x27, 0x77, 0xba, 0x91, 0x69, 0x89, 0x90, 0x33, 0xe1, 0x2d, 0x03, 0xbc, 0x60, 0xf1, 0xde,
|
0xdb, 0x48, 0x70, 0x1f, 0x6c, 0x37, 0x0e, 0x9d, 0xe3, 0x10, 0x12, 0x8f, 0x9c, 0xdc, 0x99, 0x48,
|
||||||
0x71, 0xf1, 0x46, 0x8a, 0x3c, 0xb7, 0xe6, 0xb1, 0x27, 0xf2, 0xf7, 0xeb, 0xab, 0x9f, 0xe3, 0x38,
|
0xa6, 0x25, 0x42, 0xce, 0x84, 0xb7, 0x0c, 0xf0, 0x5a, 0xc6, 0x7b, 0xc7, 0xc5, 0x7b, 0x2c, 0xf2,
|
||||||
0xb8, 0x83, 0xec, 0x81, 0x45, 0x71, 0xd7, 0xdb, 0x7d, 0xeb, 0x23, 0x77, 0x53, 0x21, 0xbb, 0x47,
|
0xb4, 0x9b, 0xc7, 0x9e, 0xc8, 0xdf, 0xaf, 0xaf, 0x7e, 0x8e, 0xe3, 0xe0, 0x0e, 0xb2, 0x07, 0x16,
|
||||||
0x11, 0xcf, 0x1d, 0x3c, 0x6f, 0x14, 0x05, 0x3e, 0xc4, 0xc8, 0x7b, 0xf6, 0x2d, 0xd6, 0xf8, 0x13,
|
0xc5, 0x5d, 0x6f, 0xf7, 0x5d, 0x91, 0xdc, 0xfd, 0x86, 0xec, 0xf6, 0x45, 0x3c, 0x77, 0xf0, 0x94,
|
||||||
0x60, 0x33, 0x5e, 0x46, 0x78, 0xbc, 0x02, 0x26, 0xa9, 0x42, 0xec, 0xda, 0x7d, 0x23, 0x24, 0xc3,
|
0x52, 0x14, 0xf8, 0x10, 0x23, 0xef, 0xd9, 0xb7, 0x58, 0xe3, 0x4f, 0x80, 0xcd, 0x78, 0x19, 0xe1,
|
||||||
0xcb, 0xf2, 0x88, 0xf1, 0x8c, 0xaf, 0x65, 0x3f, 0x68, 0x07, 0x09, 0x02, 0x71, 0x61, 0xe7, 0xf6,
|
0x71, 0x0c, 0x98, 0xa4, 0x0a, 0xb1, 0x6b, 0xf7, 0x3d, 0x92, 0x0c, 0x2f, 0xcb, 0x23, 0xc6, 0x93,
|
||||||
0x06, 0x56, 0x53, 0xa3, 0x75, 0x31, 0x1d, 0xb9, 0x87, 0x12, 0xf3, 0x99, 0xbc, 0xf7, 0xc3, 0x05,
|
0xc1, 0x96, 0xfd, 0xa0, 0x1d, 0x24, 0x08, 0xc4, 0x35, 0x9f, 0xdb, 0x1b, 0x58, 0x4d, 0x8d, 0xd6,
|
||||||
0x9e, 0x15, 0x4b, 0xcf, 0x1a, 0xca, 0x1b, 0x2d, 0x0a, 0xc5, 0x13, 0xc6, 0xf2, 0xc8, 0x2b, 0x3f,
|
0xc5, 0x74, 0xe4, 0x9e, 0x4b, 0xcc, 0x67, 0xf2, 0xde, 0x0f, 0x17, 0x78, 0xc2, 0x2c, 0x3d, 0xa1,
|
||||||
0x6c, 0x8c, 0x57, 0x4c, 0x22, 0x10, 0x1f, 0xde, 0x32, 0xf1, 0x6a, 0x11, 0xc2, 0xc4, 0xaa, 0x56,
|
0x28, 0xef, 0xc1, 0x28, 0x14, 0xcf, 0x25, 0xcb, 0x83, 0xb2, 0xfc, 0x88, 0x32, 0x5e, 0x4c, 0x89,
|
||||||
0x72, 0x18, 0xf9, 0x60, 0xe3, 0xbe, 0xce, 0xd9, 0x74, 0x96, 0x4a, 0x4f, 0x8b, 0xbb, 0x34, 0x79,
|
0x40, 0x7c, 0x78, 0x37, 0xc5, 0xab, 0x45, 0x08, 0x13, 0xab, 0x5a, 0xc9, 0x11, 0xe6, 0x83, 0x8d,
|
||||||
0x49, 0xc1, 0x0a, 0xc1, 0xf1, 0x43, 0xdc, 0x94, 0xb7, 0x8b, 0x50, 0xce, 0x77, 0xcc, 0x82, 0x94,
|
0x5b, 0x3e, 0x67, 0xd3, 0x59, 0x2a, 0x3d, 0x2d, 0xee, 0xd2, 0xe4, 0x25, 0x05, 0x2b, 0x04, 0xc7,
|
||||||
0x6a, 0x00, 0x33, 0xe1, 0xf4, 0x06, 0x2c, 0xa5, 0x3b, 0x50, 0x30, 0x96, 0xa7, 0x5c, 0x28, 0x92,
|
0x0f, 0x71, 0x53, 0xde, 0x49, 0x42, 0x39, 0xdf, 0x31, 0x0b, 0x52, 0xaa, 0x01, 0xcc, 0x84, 0xd3,
|
||||||
0xff, 0x74, 0x0c, 0x9e, 0x99, 0x42, 0x72, 0x66, 0x5e, 0x34, 0x18, 0x9a, 0x71, 0x18, 0x28, 0x00,
|
0x1b, 0xb0, 0x94, 0xee, 0x40, 0xc1, 0x58, 0x9e, 0x72, 0xa1, 0x48, 0xfe, 0xd3, 0x31, 0x78, 0xd2,
|
||||||
0x28, 0x25, 0xca, 0x7c, 0xe9, 0xc6, 0x72, 0xfa, 0xfc, 0x66, 0x00, 0x57, 0x1e, 0xc5, 0xe3, 0xfb,
|
0x0a, 0xc9, 0x99, 0x79, 0xd1, 0x60, 0x68, 0xc6, 0x61, 0xa0, 0x00, 0xa0, 0x94, 0x28, 0xf3, 0xa5,
|
||||||
0x02, 0x71, 0x6d, 0xfe, 0xc4, 0x37, 0x5d, 0xf0, 0x03, 0xe8, 0xfe, 0x24, 0xb3, 0x19, 0x71, 0x80,
|
0x1b, 0xcb, 0xe9, 0xf3, 0xfb, 0x04, 0x5c, 0x79, 0x14, 0x8f, 0xef, 0x23, 0xc4, 0xb5, 0xf9, 0x13,
|
||||||
0xc4, 0xd0, 0xf9, 0xd1, 0x91, 0x64, 0xdb, 0x02, 0xb4, 0xb9, 0x9b, 0x80, 0x62, 0xba, 0x53, 0x03,
|
0xdf, 0xa4, 0xc1, 0x0f, 0xa0, 0xfb, 0x93, 0xcc, 0x66, 0xc4, 0x81, 0x13, 0x43, 0xe7, 0x47, 0x4d,
|
||||||
0xe8, 0x0b, 0xcb, 0x9e, 0x2b, 0x32, 0x76, 0x9a, 0xfd, 0xe7, 0x04, 0xd4, 0x10, 0x99, 0x42, 0x86,
|
0x92, 0x6d, 0x0e, 0xd0, 0xe6, 0x6e, 0x02, 0x8a, 0xe9, 0x4e, 0x0d, 0xa0, 0x2f, 0x2c, 0x7b, 0xae,
|
||||||
0x8a, 0xd5, 0x02, 0xc7, 0xcb, 0x9f, 0x47, 0x29, 0xb3, 0x9a, 0x2f, 0xbc, 0x0e, 0xc5, 0x78, 0xf6,
|
0xc8, 0xd8, 0x69, 0xf6, 0x9f, 0x13, 0x50, 0x43, 0x64, 0x0a, 0x19, 0x2a, 0x56, 0x0b, 0x1c, 0x2f,
|
||||||
0x25, 0x77, 0x50, 0x8a, 0x0f, 0xfd, 0xe4, 0x7c, 0xee, 0xee, 0xdc, 0x97, 0xf1, 0x0a, 0xd0, 0x28,
|
0x7f, 0x7e, 0xa5, 0xcc, 0x6a, 0xbe, 0xf0, 0x3a, 0x14, 0xe3, 0xd9, 0x97, 0xdc, 0xc1, 0x2a, 0x3e,
|
||||||
0x64, 0x6d, 0xe7, 0x7e, 0x51, 0x11, 0x96, 0x5b, 0x8a, 0xf6, 0x96, 0xd3, 0xa9, 0x22, 0xaf, 0x2a,
|
0xf4, 0x93, 0xf3, 0xb9, 0xbb, 0x73, 0x1f, 0xc7, 0x2b, 0x40, 0xa3, 0x90, 0xb5, 0x9d, 0xfb, 0x4b,
|
||||||
0x07, 0x3d, 0xbb, 0xd9, 0x04, 0xf5, 0x31, 0x51, 0xd6, 0xde, 0x72, 0x78, 0x15, 0x99, 0x80, 0x52,
|
0x45, 0x58, 0x6e, 0x29, 0xda, 0x5b, 0xce, 0xb4, 0x8a, 0xbc, 0xaa, 0x1c, 0xf4, 0xec, 0x66, 0x13,
|
||||||
0xbd, 0x1c, 0xf6, 0xee, 0x7d, 0x02, 0x9b, 0x5a, 0x2d, 0xac, 0xe9, 0x74, 0x07, 0x17, 0xbf, 0x95,
|
0xd4, 0xc7, 0x44, 0x59, 0x7b, 0xcb, 0x91, 0x57, 0x64, 0x02, 0x4a, 0xf5, 0x72, 0xd8, 0xbb, 0xf7,
|
||||||
0x01, 0x3f, 0xae, 0xd5, 0x75, 0xb2, 0xc4, 0x90, 0x1e, 0x81, 0x8b, 0x48, 0x93, 0x3c, 0xbc, 0x84,
|
0x09, 0x6c, 0x6a, 0xb5, 0xb0, 0xa6, 0xd3, 0x1d, 0x5c, 0xfc, 0x56, 0x06, 0xfc, 0xb8, 0x56, 0xd7,
|
||||||
0x24, 0x9e, 0xa6, 0x2b, 0xc9, 0xc4, 0x1a, 0xf2, 0x8c, 0x4c, 0x0a, 0x47, 0xcc, 0x5b, 0x4e, 0x89,
|
0xc9, 0x12, 0x43, 0x7a, 0x04, 0x2e, 0x22, 0x4d, 0xf2, 0xf0, 0xea, 0x92, 0x78, 0x9a, 0xae, 0x24,
|
||||||
0x9b, 0x19, 0x1f, 0x05, 0xde, 0x3b, 0x29, 0xbf, 0x92, 0xef, 0xdd, 0xe2, 0x59, 0x15, 0x5e, 0x9d,
|
0x13, 0x6b, 0xc8, 0x33, 0x32, 0x29, 0x1c, 0x31, 0x6f, 0x39, 0x25, 0x6e, 0x66, 0x7c, 0x14, 0x78,
|
||||||
0xaa, 0xc9, 0x61, 0xc2, 0x2d, 0x6f, 0x4f, 0xf1, 0xa0, 0xfc, 0x6e, 0x35, 0xc2, 0x94, 0x0c, 0xc9,
|
0xef, 0xa4, 0xfc, 0x4a, 0xbe, 0x77, 0x8b, 0x67, 0x5b, 0x78, 0x75, 0xaa, 0x26, 0x47, 0x10, 0xb7,
|
||||||
0xe2, 0xda, 0xa3, 0x11, 0xf2, 0x65, 0xc5, 0x3b, 0x4d, 0xa5, 0x73, 0xbf, 0xbf, 0xa7, 0x39, 0x91,
|
0xbc, 0x3d, 0xc5, 0xe3, 0xf5, 0xbb, 0xd5, 0x08, 0x53, 0x32, 0x24, 0x8b, 0x6b, 0x8f, 0x46, 0xc8,
|
||||||
0x5a, 0xb5, 0x38, 0x5e, 0x73, 0xae, 0x9c, 0x70, 0xd7, 0x71, 0xbc, 0xcb, 0xbb, 0xfc, 0x08, 0x09,
|
0x97, 0x15, 0x6f, 0x42, 0x95, 0xce, 0xfd, 0xfe, 0x9e, 0xe6, 0x44, 0x6a, 0xd5, 0xe2, 0x78, 0xcd,
|
||||||
0x8c, 0xd4, 0xca, 0x09, 0x5c, 0xde, 0x97, 0x81, 0x73, 0x9e, 0x84, 0x3c, 0x42, 0x06, 0x89, 0xe6,
|
0xb9, 0x72, 0xc2, 0x5d, 0xc7, 0xf7, 0x2e, 0xef, 0xf2, 0x23, 0x24, 0x30, 0x52, 0x2b, 0x27, 0x70,
|
||||||
0x2e, 0x62, 0x77, 0x57, 0x5b, 0xa3, 0x39, 0xfc, 0x6e, 0x7a, 0x77, 0xd7, 0xb4, 0xb0, 0x94, 0xb9,
|
0x79, 0x5f, 0x06, 0xce, 0x79, 0x12, 0xf2, 0x08, 0x19, 0x24, 0x9a, 0xbb, 0x88, 0xdd, 0x5d, 0x6d,
|
||||||
0x31, 0x10, 0xb2, 0x93, 0x5a, 0x41, 0x43, 0x13, 0xb7, 0x26, 0xa7, 0x11, 0x3a, 0x55, 0xb0, 0x6a,
|
0x8d, 0xe6, 0xf0, 0xbb, 0xe9, 0xdd, 0x5d, 0xd3, 0xc2, 0x52, 0xe6, 0xc6, 0x40, 0xc8, 0x4e, 0x6a,
|
||||||
0xb5, 0x23, 0xaf, 0xc7, 0xdc, 0xba, 0x0c, 0x4f, 0x91, 0xcb, 0x3c, 0xd0, 0x22, 0x68, 0xfb, 0xfc,
|
0x05, 0x0d, 0x4d, 0xdc, 0x9a, 0x9c, 0x46, 0xe8, 0x54, 0xc1, 0xaa, 0xd5, 0x8e, 0xbc, 0x54, 0x73,
|
||||||
0xd2, 0x9c, 0x68, 0x09, 0x1d, 0xd0, 0x14, 0xf2, 0x1e, 0x3c, 0x31, 0x19, 0x87, 0xfe, 0x13, 0x54,
|
0xeb, 0x32, 0x3c, 0x7b, 0x2e, 0xf3, 0x40, 0x8b, 0xa0, 0xed, 0xf3, 0xab, 0x76, 0xa2, 0x25, 0x74,
|
||||||
0x2f, 0x64, 0xe2, 0xb3, 0x08, 0xaf, 0x09, 0xe1, 0x76, 0xb4, 0x1f, 0x42, 0xa2, 0x3a, 0x67, 0xe4,
|
0x40, 0x53, 0xc8, 0x7b, 0xf0, 0xc4, 0x64, 0x1c, 0xfa, 0x4f, 0x50, 0xbd, 0x90, 0x89, 0xcf, 0x22,
|
||||||
0x0b, 0x77, 0x41, 0x5f, 0x48, 0x10, 0x82, 0x73, 0x85, 0x88, 0x82, 0x89, 0x3f, 0xc7, 0xc4, 0x73,
|
0xbc, 0x5c, 0x84, 0xdb, 0xd7, 0x7e, 0x08, 0x89, 0xea, 0x9c, 0x91, 0x2f, 0xdc, 0x05, 0x7d, 0x21,
|
||||||
0xd9, 0x88, 0x5f, 0xb5, 0xc9, 0x8e, 0x8f, 0x66, 0x68, 0x99, 0x80, 0x3a, 0xbd, 0xbd, 0x24, 0x4e,
|
0x41, 0x08, 0xce, 0x15, 0x22, 0x0a, 0x26, 0xfe, 0x1c, 0x13, 0xcf, 0x65, 0x23, 0x7e, 0x41, 0x27,
|
||||||
0x1e, 0x29, 0xef, 0xc9, 0x92, 0x38, 0x4f, 0x76, 0x05, 0xae, 0x2a, 0x7f, 0xa7, 0x72, 0x04, 0xd1,
|
0x3b, 0x74, 0x9a, 0xa1, 0x65, 0x02, 0xea, 0xf4, 0xf6, 0x92, 0x38, 0x79, 0xa4, 0xbc, 0x27, 0x4b,
|
||||||
0x83, 0xe2, 0xe8, 0x0e, 0xf8, 0x4c, 0xe9, 0x2c, 0x5d, 0xdf, 0xe6, 0xb7, 0x38, 0x6a, 0xc0, 0x47,
|
0xe2, 0x3c, 0xd9, 0x15, 0xb8, 0xaa, 0xfc, 0x4d, 0xcc, 0x11, 0x44, 0x0f, 0x8a, 0xa3, 0x3b, 0xe0,
|
||||||
0xec, 0xdb, 0x3e, 0x9e, 0xb3, 0xe4, 0x37, 0x41, 0x75, 0x4d, 0xe1, 0xb7, 0x52, 0x4d, 0x84, 0x70,
|
0x33, 0xa5, 0xb3, 0x74, 0x7d, 0x9b, 0xdf, 0xfd, 0xa8, 0x01, 0x1f, 0xb1, 0x6f, 0xfb, 0x78, 0x2e,
|
||||||
0x47, 0xb1, 0x1f, 0x5a, 0x33, 0x86, 0x22, 0xbd, 0x8c, 0xd9, 0x02, 0xe3, 0x92, 0x7d, 0x19, 0x40,
|
0x93, 0xdf, 0x1f, 0xd5, 0x35, 0x85, 0xdf, 0x65, 0x35, 0x11, 0xc2, 0x1d, 0xc5, 0x7e, 0x68, 0xcd,
|
||||||
0x15, 0x02, 0x89, 0x83, 0x00, 0x83, 0xf1, 0x8b, 0x00, 0x38, 0x44, 0x4f, 0x4a, 0xae, 0x21, 0x0b,
|
0x18, 0x8a, 0xf4, 0x32, 0x66, 0x0b, 0x8c, 0x4b, 0xf6, 0x65, 0x00, 0x55, 0x08, 0x24, 0x0e, 0x02,
|
||||||
0xae, 0x11, 0x29, 0x2d, 0x86, 0xe9, 0x0c, 0xf9, 0x88, 0xc7, 0x16, 0x2e, 0x6f, 0x41, 0x44, 0x5a,
|
0x0c, 0xc6, 0x2f, 0x02, 0xe0, 0x10, 0x3d, 0x29, 0xb9, 0x86, 0x2c, 0xb8, 0x46, 0xa4, 0xb4, 0x18,
|
||||||
0x01, 0x63, 0x54, 0xc4, 0xa8, 0x71, 0x6c, 0xaa, 0x8a, 0x50, 0xfc, 0x8e, 0x26, 0xa2, 0x1f, 0xf0,
|
0xa6, 0x33, 0xe4, 0x23, 0x1e, 0x73, 0xb8, 0xbc, 0x05, 0x11, 0x69, 0x05, 0x8c, 0x51, 0x11, 0xa3,
|
||||||
0xbb, 0xa7, 0x9d, 0x7a, 0x9d, 0x56, 0xf9, 0x6b, 0x3c, 0xc3, 0x50, 0xcd, 0xee, 0x8f, 0xd6, 0xa3,
|
0xc6, 0xb1, 0xa9, 0x2a, 0x42, 0xf1, 0x9b, 0x9d, 0x88, 0x7e, 0xc0, 0x6f, 0xac, 0x76, 0xea, 0x75,
|
||||||
0xda, 0xd7, 0x68, 0x10, 0x98, 0x0d, 0x0c, 0x1a, 0xea, 0xba, 0x02, 0x39, 0x91, 0xb8, 0x5b, 0xdb,
|
0x5a, 0xe5, 0xaf, 0xf1, 0xcc, 0x43, 0x35, 0xbb, 0x75, 0x5a, 0x8f, 0x6a, 0x5f, 0xa3, 0x41, 0x60,
|
||||||
0xe3, 0xa9, 0x55, 0xff, 0xdf, 0x9c, 0x05, 0x17, 0xfb, 0x32, 0x74, 0x21, 0x58, 0x8b, 0x83, 0x1a,
|
0x36, 0x30, 0x68, 0xa8, 0xeb, 0x0a, 0xe4, 0x44, 0xe2, 0x46, 0x6e, 0x8f, 0xa7, 0x56, 0xfd, 0x7f,
|
||||||
0x11, 0x9e, 0x01, 0x00, 0x40, 0x0e, 0xd0, 0xab, 0x8b, 0x4b, 0xc5, 0x78, 0x15, 0x93, 0x48, 0xf7,
|
0x73, 0x16, 0x5c, 0xec, 0xcb, 0xd0, 0x85, 0x60, 0x2d, 0x0e, 0x76, 0x44, 0x78, 0x66, 0x00, 0x00,
|
||||||
0x4f, 0x47, 0xbc, 0x1f, 0x07, 0x46, 0xb4, 0xa8, 0xf0, 0x82, 0x1c, 0x3f, 0xfd, 0x11, 0xa5, 0xbd,
|
0x39, 0x40, 0xaf, 0x2e, 0xae, 0x22, 0xe3, 0x05, 0x4e, 0x22, 0xdd, 0x3f, 0x1d, 0xf1, 0x7e, 0x1c,
|
||||||
0xbd, 0x29, 0x14, 0x16, 0x2c, 0x9e, 0xfb, 0xd8, 0x21, 0xf5, 0x23, 0xbc, 0xeb, 0x9b, 0x6b, 0x96,
|
0x18, 0xd1, 0xa2, 0xc2, 0x0b, 0x72, 0xfc, 0xf4, 0x47, 0x94, 0xf6, 0xf6, 0xa6, 0x50, 0x58, 0xb0,
|
||||||
0xc4, 0x3e, 0x88, 0xe3, 0xa9, 0xf8, 0x6c, 0xce, 0xdc, 0x60, 0x48, 0xfb, 0x95, 0x9e, 0x48, 0xcd,
|
0x78, 0xee, 0x63, 0x87, 0xd4, 0x8f, 0xf0, 0x86, 0x70, 0xae, 0x59, 0x12, 0xfb, 0x20, 0x8e, 0xa7,
|
||||||
0x65, 0xb5, 0x22, 0xbe, 0xe4, 0x72, 0xbd, 0x9f, 0x91, 0xec, 0xa0, 0x57, 0x17, 0x2f, 0xd2, 0xb6,
|
0xe2, 0xb3, 0x39, 0x73, 0x83, 0x21, 0xed, 0x57, 0x7a, 0x22, 0x35, 0x97, 0xd5, 0x8a, 0xf8, 0x92,
|
||||||
0x7a, 0xd9, 0x98, 0x4a, 0x3a, 0x68, 0x88, 0x83, 0x86, 0x10, 0xb2, 0xb3, 0x71, 0x85, 0x11, 0xf2,
|
0xcb, 0xf5, 0x7e, 0x46, 0xb2, 0x83, 0x5e, 0x5d, 0xbc, 0x48, 0xdb, 0xea, 0x65, 0x63, 0x2a, 0xe9,
|
||||||
0x8e, 0x41, 0x7f, 0x64, 0x3d, 0xb2, 0x0c, 0x64, 0x9e, 0x14, 0xde, 0xbd, 0x79, 0xa3, 0x5f, 0xc1,
|
0xa0, 0x21, 0x0e, 0x1a, 0x42, 0xc8, 0xce, 0xc6, 0x15, 0x46, 0xc8, 0x9b, 0x09, 0xfd, 0x91, 0xf5,
|
||||||
0xf5, 0x39, 0xb4, 0x16, 0x41, 0x97, 0xfc, 0x6c, 0x85, 0x78, 0xb2, 0x05, 0xf5, 0x3c, 0x5e, 0x06,
|
0xc8, 0x32, 0x90, 0x79, 0x52, 0x78, 0xf7, 0xe6, 0x8d, 0x7e, 0x05, 0xd7, 0xe7, 0xd0, 0x5a, 0x04,
|
||||||
0x20, 0x9c, 0x06, 0xe4, 0xd3, 0xb1, 0xe5, 0x26, 0x1d, 0xcf, 0xb4, 0x03, 0xeb, 0xda, 0x9c, 0x55,
|
0x5d, 0xf2, 0xb3, 0x15, 0xe2, 0x49, 0x18, 0xd4, 0xf3, 0x78, 0x19, 0x80, 0x70, 0x1a, 0x90, 0x4f,
|
||||||
0xd9, 0xcc, 0xcf, 0x3a, 0xc6, 0x36, 0x4e, 0x33, 0x4b, 0x4c, 0x7b, 0x4e, 0xff, 0x8e, 0x81, 0x3b,
|
0xc7, 0x96, 0x9b, 0x74, 0x3c, 0xd3, 0x0e, 0xac, 0x6b, 0x73, 0x56, 0x65, 0x33, 0x3f, 0xeb, 0x18,
|
||||||
0x04, 0x4b, 0x9c, 0x80, 0x9a, 0x06, 0xfe, 0x13, 0xe8, 0x83, 0x3c, 0x9a, 0x81, 0x67, 0x2b, 0xc6,
|
0xdb, 0x38, 0xcd, 0x2c, 0x31, 0xed, 0x39, 0xfd, 0x3b, 0x06, 0xee, 0x10, 0x2c, 0x71, 0x02, 0x6a,
|
||||||
0xa2, 0xbb, 0x17, 0xc5, 0xa2, 0x8b, 0xd8, 0xe9, 0xd5, 0x1d, 0x31, 0x6e, 0x2c, 0xbb, 0xbd, 0x15,
|
0x1a, 0xf8, 0x4f, 0xa0, 0x0f, 0xf2, 0x28, 0x07, 0x9e, 0xc5, 0x18, 0x8b, 0xee, 0x5e, 0x14, 0x8b,
|
||||||
0xb1, 0x69, 0xb3, 0xcc, 0xa8, 0xe1, 0x59, 0x96, 0x62, 0x37, 0x98, 0x9f, 0xa2, 0x90, 0xcd, 0x84,
|
0x2e, 0x62, 0xa7, 0x57, 0x77, 0xc4, 0xb8, 0xb1, 0xec, 0xf6, 0x56, 0xc4, 0xa6, 0xcd, 0x32, 0xa3,
|
||||||
0x94, 0x72, 0xe5, 0xc2, 0xc3, 0x42, 0x8a, 0x58, 0x4b, 0x48, 0x76, 0x41, 0xcf, 0x6d, 0x49, 0xcb,
|
0x86, 0x67, 0x5f, 0x8a, 0xdd, 0x60, 0x7e, 0xea, 0x42, 0x36, 0x13, 0x52, 0xca, 0x95, 0x0b, 0x0f,
|
||||||
0x63, 0x51, 0x44, 0x5c, 0xbc, 0xb5, 0xc9, 0xc2, 0x57, 0xda, 0xc5, 0xa7, 0x43, 0x26, 0x45, 0x2d,
|
0x0b, 0x29, 0x62, 0x2d, 0x21, 0xd9, 0x05, 0x3d, 0xb7, 0x25, 0x2d, 0x8f, 0x45, 0x11, 0x71, 0xf1,
|
||||||
0xeb, 0x45, 0x79, 0x77, 0x45, 0xf4, 0x8a, 0xf8, 0xd5, 0x16, 0x41, 0x35, 0xe9, 0x9e, 0xe2, 0x7d,
|
0xae, 0x27, 0x0b, 0x5f, 0x69, 0x17, 0x9f, 0x0e, 0x99, 0x14, 0xb5, 0xac, 0x17, 0xe5, 0x8d, 0x17,
|
||||||
0xa1, 0xfe, 0xb5, 0xb8, 0x2b, 0x4e, 0xce, 0x96, 0x61, 0x08, 0xfa, 0x9f, 0xd2, 0x90, 0x37, 0xc4,
|
0xd1, 0x2b, 0xe2, 0x17, 0x62, 0x04, 0xd5, 0xa4, 0x7b, 0x8a, 0xb7, 0x8c, 0xfa, 0xd7, 0xe2, 0x86,
|
||||||
0xaf, 0x4f, 0xe9, 0x46, 0xb5, 0xba, 0xd1, 0x6c, 0x6a, 0xb4, 0xb3, 0xa6, 0x97, 0xae, 0x6f, 0xf5,
|
0x39, 0x39, 0x5b, 0x86, 0x21, 0xe8, 0x7f, 0x4a, 0x43, 0xde, 0x2b, 0xbf, 0x3e, 0xa5, 0x1b, 0xd5,
|
||||||
0x89, 0xd3, 0x86, 0x53, 0xbf, 0x42, 0x16, 0xa7, 0x45, 0xf2, 0xd9, 0x1d, 0x88, 0xb4, 0xb2, 0xc0,
|
0xea, 0x46, 0xb3, 0xa9, 0xd1, 0xce, 0x9a, 0x5e, 0xba, 0xbe, 0xd5, 0x27, 0x4e, 0x1b, 0x4e, 0xfd,
|
||||||
0x26, 0x53, 0x47, 0x9c, 0x36, 0xea, 0x16, 0xb7, 0xf1, 0x2a, 0x87, 0xdf, 0xbd, 0x3b, 0x39, 0x39,
|
0x0a, 0x59, 0x9c, 0x16, 0xc9, 0x67, 0x37, 0x27, 0xd2, 0xca, 0x02, 0x9b, 0x4c, 0x1d, 0x71, 0x3a,
|
||||||
0xe9, 0x92, 0x7f, 0xf7, 0x97, 0x61, 0x71, 0x65, 0x40, 0x83, 0x1f, 0xb1, 0x25, 0x40, 0xe6, 0x20,
|
0xa9, 0x5b, 0xdc, 0xc6, 0xab, 0x1c, 0x7e, 0xf7, 0xee, 0xe4, 0xe4, 0xa4, 0x4b, 0xfe, 0xdd, 0x5f,
|
||||||
0x31, 0x62, 0x8b, 0x89, 0xd4, 0xb8, 0x54, 0xef, 0x7d, 0x02, 0x26, 0x05, 0xef, 0x19, 0x77, 0x65,
|
0x86, 0xc5, 0x95, 0x01, 0x0d, 0x7e, 0xc4, 0x96, 0x00, 0x99, 0x83, 0xc4, 0x88, 0x2d, 0x26, 0x52,
|
||||||
0x91, 0x35, 0x65, 0xc2, 0x81, 0xad, 0x10, 0x0b, 0xd7, 0x1a, 0x0d, 0x01, 0x03, 0xe1, 0x00, 0x96,
|
0xe3, 0x52, 0xbd, 0xf7, 0x09, 0x98, 0x14, 0xbc, 0x67, 0xdc, 0x95, 0x45, 0xd6, 0x94, 0x09, 0x07,
|
||||||
0x11, 0xc2, 0x81, 0xa2, 0x12, 0x1b, 0xe5, 0x15, 0xf1, 0x77, 0x95, 0x05, 0xa4, 0x50, 0x0e, 0x40,
|
0xb6, 0x42, 0x2c, 0x5c, 0x6b, 0x34, 0x04, 0x0c, 0x84, 0x03, 0x58, 0x46, 0x08, 0x07, 0x8a, 0x4a,
|
||||||
0x48, 0xaa, 0x8e, 0xf7, 0x95, 0xc9, 0x7b, 0xb1, 0x58, 0x00, 0x45, 0xc4, 0xf2, 0x26, 0xe0, 0x61,
|
0x6c, 0x94, 0x57, 0xc4, 0xdf, 0x55, 0x16, 0x90, 0x42, 0x39, 0x00, 0x21, 0xa9, 0x3a, 0xde, 0x57,
|
||||||
0xa7, 0x30, 0xf8, 0x20, 0x6b, 0x11, 0x81, 0x2a, 0x55, 0x4e, 0x93, 0xc5, 0xb4, 0x5c, 0x60, 0x93,
|
0x26, 0x6f, 0xd3, 0x62, 0x01, 0x14, 0x11, 0xcb, 0x9b, 0x80, 0x87, 0x9d, 0xc2, 0xe0, 0x83, 0xac,
|
||||||
0xaf, 0x62, 0x94, 0x5f, 0xd7, 0xd8, 0xc7, 0xf6, 0xe1, 0x0a, 0x44, 0xea, 0x47, 0xfc, 0xba, 0x19,
|
0x45, 0x04, 0xaa, 0x54, 0x39, 0x4d, 0x16, 0xd3, 0x72, 0x81, 0x4d, 0xbe, 0x8a, 0x51, 0x7e, 0x5d,
|
||||||
0xf2, 0xc8, 0xc1, 0x04, 0xf7, 0x7f, 0x63, 0x2c, 0x20, 0x56, 0x4c, 0x0e, 0x21, 0x85, 0x33, 0x4e,
|
0x63, 0x1f, 0xdb, 0x87, 0x2b, 0x10, 0xa9, 0x1f, 0xf1, 0x4b, 0x6a, 0xc8, 0x23, 0x07, 0x13, 0xdc,
|
||||||
0x89, 0x33, 0x15, 0x1c, 0xe0, 0x81, 0x29, 0x7e, 0x24, 0x6a, 0x02, 0x82, 0xb5, 0x63, 0xd4, 0x4d,
|
0xff, 0x8d, 0xb1, 0x80, 0x58, 0x31, 0x39, 0x84, 0x14, 0xce, 0x38, 0x25, 0xce, 0x54, 0x70, 0x80,
|
||||||
0xec, 0x62, 0xe3, 0xe0, 0xec, 0x4c, 0x12, 0x67, 0xa5, 0x72, 0xc9, 0x67, 0xca, 0x2f, 0x47, 0xa6,
|
0x07, 0xac, 0xf8, 0x11, 0xaa, 0x09, 0x08, 0xd6, 0x8e, 0x51, 0x37, 0xb1, 0x8b, 0x8d, 0x83, 0xb3,
|
||||||
0xb7, 0xd4, 0x20, 0x52, 0xb0, 0x10, 0x8a, 0xbf, 0x82, 0x10, 0x35, 0xe9, 0xfc, 0x90, 0x43, 0xbc,
|
0x33, 0x4c, 0x9c, 0x95, 0xca, 0x25, 0x9f, 0x29, 0xbf, 0x52, 0x99, 0xde, 0x6d, 0x83, 0x48, 0xc1,
|
||||||
0x39, 0xed, 0xcd, 0x04, 0x0b, 0x8a, 0xd4, 0x0b, 0x02, 0x4a, 0x8f, 0xf7, 0x94, 0xc1, 0x2a, 0x96,
|
0x42, 0x28, 0xfe, 0x0a, 0x42, 0xd4, 0xa4, 0xf3, 0x43, 0x0e, 0xf1, 0xbe, 0xb5, 0x37, 0x13, 0x2c,
|
||||||
0x11, 0x78, 0xc3, 0xc4, 0xb8, 0xa4, 0x36, 0x04, 0xe8, 0x43, 0x96, 0xde, 0x83, 0xe7, 0x3f, 0x79,
|
0x28, 0x52, 0x2f, 0x08, 0x28, 0x3d, 0xde, 0x6e, 0x06, 0xab, 0x58, 0x46, 0xe0, 0x0d, 0x13, 0xe3,
|
||||||
0x52, 0xab, 0xd5, 0xcc, 0x38, 0x42, 0x61, 0xb3, 0x8f, 0xbe, 0x1b, 0xe3, 0x95, 0x6b, 0xe5, 0x1a,
|
0x92, 0xda, 0x10, 0xa0, 0x0f, 0x59, 0x7a, 0x0f, 0x9e, 0xff, 0xe4, 0x49, 0xad, 0x56, 0x33, 0xe3,
|
||||||
0x0f, 0x87, 0xc9, 0x75, 0xe2, 0x76, 0x65, 0x11, 0x64, 0x0e, 0x24, 0x0c, 0x60, 0x6a, 0x49, 0x2b,
|
0x08, 0x85, 0xcd, 0x3e, 0xfa, 0x6e, 0x8c, 0x17, 0xb5, 0x95, 0x6b, 0x3c, 0x4c, 0x26, 0xd7, 0x89,
|
||||||
0x9e, 0x1f, 0xc4, 0xda, 0xd0, 0x6d, 0xbc, 0x76, 0xb6, 0xb5, 0x83, 0x8b, 0x5b, 0x16, 0x49, 0x99,
|
0xdb, 0x95, 0x45, 0x90, 0x39, 0x90, 0x30, 0x80, 0xa9, 0x25, 0xad, 0x78, 0x7e, 0x70, 0x6b, 0x43,
|
||||||
0x6b, 0x66, 0x05, 0x6f, 0x1f, 0x64, 0x22, 0x6f, 0x4c, 0x11, 0xa5, 0xdd, 0x5e, 0x9c, 0xaa, 0x95,
|
0xb7, 0xf1, 0xb2, 0xda, 0xd6, 0x0e, 0x2e, 0x6e, 0x59, 0x24, 0x65, 0xae, 0x99, 0x15, 0xbc, 0x7d,
|
||||||
0x9d, 0x9b, 0xb4, 0x6d, 0x0e, 0xcd, 0xa6, 0x53, 0xc7, 0xc6, 0x63, 0x7e, 0x44, 0x69, 0x22, 0xfc,
|
0x90, 0x89, 0xbc, 0x67, 0x45, 0x94, 0x76, 0x7b, 0x71, 0xaa, 0x56, 0x76, 0x6e, 0xd2, 0xb6, 0x39,
|
||||||
0x4e, 0x70, 0x1d, 0x54, 0x13, 0xcf, 0x74, 0x29, 0x4d, 0x7d, 0x0f, 0x18, 0xee, 0xa5, 0xf4, 0xe5,
|
0x34, 0x9b, 0x4e, 0x1d, 0x1b, 0x8f, 0x05, 0x12, 0xa5, 0x89, 0xf0, 0x3b, 0xc1, 0x75, 0x50, 0x4d,
|
||||||
0x09, 0x30, 0xc5, 0x68, 0xec, 0x81, 0xc4, 0xb3, 0x26, 0x95, 0x33, 0x5e, 0xf3, 0x96, 0xec, 0x13,
|
0x3c, 0x03, 0xa6, 0x34, 0xf5, 0x3d, 0x60, 0xb8, 0x97, 0xd2, 0x97, 0x27, 0xc6, 0x14, 0xa3, 0xb1,
|
||||||
0x17, 0x1c, 0x89, 0xb8, 0xf6, 0x55, 0xbe, 0xeb, 0x2d, 0x51, 0x88, 0x73, 0x78, 0x89, 0xa8, 0xf1,
|
0x07, 0x12, 0xcf, 0xa6, 0x54, 0xce, 0x78, 0xcd, 0x5b, 0xb2, 0x4f, 0x5c, 0x70, 0x24, 0xe2, 0xb2,
|
||||||
0x08, 0x1d, 0x48, 0x38, 0xb5, 0xf1, 0x44, 0xb8, 0xb4, 0xac, 0x21, 0x55, 0xd8, 0x06, 0xe2, 0x7e,
|
0x58, 0xf9, 0xae, 0xb7, 0x44, 0x21, 0xce, 0xed, 0x25, 0xa2, 0xc6, 0x23, 0x77, 0x20, 0xe1, 0xd4,
|
||||||
0xcd, 0xb5, 0x76, 0x5b, 0x77, 0x62, 0xdc, 0xc9, 0xce, 0x5b, 0xa6, 0xbc, 0x89, 0xdc, 0x9d, 0x9c,
|
0xc6, 0x13, 0xe1, 0xd2, 0xb2, 0x86, 0x54, 0x61, 0x1b, 0x88, 0xfb, 0x35, 0xd7, 0xda, 0x6d, 0xdd,
|
||||||
0x2a, 0x7a, 0xd1, 0x12, 0xfe, 0x58, 0x63, 0x1f, 0x98, 0xe0, 0x96, 0x88, 0xf4, 0xd1, 0x2c, 0x51,
|
0x89, 0x71, 0x27, 0x3b, 0x6f, 0x99, 0xf2, 0x26, 0x72, 0x77, 0x72, 0xaa, 0xe8, 0x45, 0x4b, 0xf8,
|
||||||
0xad, 0x6b, 0xa9, 0xe2, 0x48, 0x97, 0xdf, 0xec, 0x57, 0xb6, 0x1c, 0x7d, 0x33, 0xf3, 0x23, 0x78,
|
0x63, 0x8d, 0x7d, 0x60, 0x82, 0x5b, 0x22, 0xd2, 0x47, 0xb3, 0x44, 0xb5, 0xae, 0xa5, 0x8a, 0x23,
|
||||||
0xcc, 0x89, 0xff, 0x70, 0x85, 0x38, 0x1d, 0x18, 0x75, 0x92, 0x71, 0xe5, 0x9d, 0xff, 0x1d, 0x61,
|
0x5d, 0x7e, 0xb3, 0x5f, 0xd9, 0x72, 0xf4, 0xcd, 0xcc, 0x8f, 0xe0, 0xb1, 0x28, 0xfe, 0x73, 0x17,
|
||||||
0x0d, 0x31, 0x55, 0x73, 0xd1, 0x2d, 0x2d, 0x64, 0x30, 0x52, 0xd3, 0x7e, 0x35, 0x0d, 0x46, 0x24,
|
0xe2, 0x34, 0x61, 0xd4, 0x49, 0xc6, 0x95, 0x77, 0xfe, 0x77, 0x84, 0x35, 0xc4, 0x54, 0xcd, 0x45,
|
||||||
0x19, 0x5f, 0xd9, 0x46, 0x70, 0x54, 0x82, 0xe0, 0x48, 0x62, 0x38, 0xca, 0x45, 0xbc, 0x90, 0xf3,
|
0xb7, 0xb4, 0x90, 0xc1, 0x48, 0x4d, 0xfb, 0xd5, 0x34, 0x18, 0x91, 0x64, 0x7c, 0x65, 0x1b, 0xc1,
|
||||||
0x7b, 0xcd, 0x8f, 0x46, 0x92, 0x5f, 0x85, 0x3d, 0x55, 0xb2, 0x85, 0x5d, 0x80, 0x0e, 0xe8, 0x49,
|
0x51, 0x09, 0x82, 0x23, 0x89, 0xe1, 0x28, 0x17, 0xf1, 0x42, 0xce, 0xef, 0x35, 0x3f, 0x4a, 0x49,
|
||||||
0xb4, 0xaa, 0xe7, 0xe2, 0xd5, 0xc2, 0xc8, 0x85, 0xb1, 0x61, 0xc1, 0x9b, 0xf2, 0x63, 0xab, 0xa4,
|
0x7e, 0x15, 0xf6, 0x54, 0xc9, 0x16, 0x76, 0x01, 0x3a, 0xa0, 0x27, 0xd1, 0xaa, 0x9e, 0x8b, 0x57,
|
||||||
0x52, 0xda, 0xbd, 0x3f, 0x1a, 0x43, 0x32, 0xf2, 0xd0, 0x15, 0x62, 0x30, 0x74, 0x10, 0x43, 0x77,
|
0x0b, 0x23, 0x17, 0xc6, 0x86, 0x05, 0x6f, 0xca, 0x8f, 0xb9, 0x92, 0x4a, 0x69, 0xf7, 0xfe, 0x68,
|
||||||
0xce, 0xd0, 0x0b, 0xc1, 0x17, 0xf8, 0x3c, 0xe6, 0x99, 0xfd, 0x11, 0x9e, 0x6b, 0x5d, 0x46, 0x9d,
|
0x0c, 0xc9, 0xc8, 0x43, 0x57, 0x88, 0xc1, 0xd0, 0x41, 0x0c, 0xdd, 0x39, 0x43, 0x2f, 0x04, 0x5f,
|
||||||
0x06, 0x97, 0x92, 0x90, 0x61, 0xa5, 0x40, 0x22, 0x77, 0x8c, 0xf4, 0x4f, 0x3a, 0x6c, 0xd0, 0x28,
|
0xe0, 0xf3, 0x98, 0x67, 0xf6, 0x47, 0x78, 0x0e, 0x76, 0x19, 0x75, 0x1a, 0x5c, 0x4a, 0x42, 0x86,
|
||||||
0xa0, 0x46, 0xc2, 0x25, 0x4c, 0xc3, 0x13, 0x5e, 0x6f, 0xec, 0xb8, 0x0e, 0xba, 0xe2, 0x90, 0xb8,
|
0x95, 0x02, 0x89, 0xdc, 0xb1, 0xd3, 0x3f, 0xe9, 0xb0, 0x41, 0xa3, 0x80, 0x1a, 0x09, 0x97, 0x30,
|
||||||
0xd6, 0x0c, 0x12, 0xc4, 0x68, 0xc9, 0x22, 0xee, 0x72, 0x7e, 0x05, 0x57, 0xe8, 0x72, 0xef, 0x08,
|
0x0d, 0x4f, 0x78, 0xbd, 0xb1, 0xe3, 0x3a, 0xe8, 0x8a, 0x43, 0xe2, 0x5a, 0x33, 0x48, 0x10, 0xa3,
|
||||||
0xa6, 0x4e, 0x72, 0x61, 0x35, 0x39, 0x77, 0xda, 0x2f, 0x39, 0x12, 0x9a, 0xc8, 0x04, 0x9d, 0x09,
|
0x25, 0x8b, 0xb8, 0xcb, 0xf9, 0x15, 0x5c, 0xa1, 0xcb, 0xbd, 0x23, 0x98, 0x3a, 0xc9, 0x85, 0xd5,
|
||||||
0xfa, 0xc1, 0x31, 0xc6, 0x68, 0xf6, 0x0d, 0x00, 0xc0, 0x86, 0xed, 0x82, 0x5f, 0x06, 0xb5, 0xa8,
|
0xe4, 0x9c, 0x6a, 0xbf, 0xe4, 0x08, 0x69, 0x22, 0x13, 0x74, 0x26, 0xe8, 0x07, 0xc7, 0x18, 0xa3,
|
||||||
0x94, 0xe9, 0xc5, 0xb5, 0xf5, 0xc0, 0xd0, 0x11, 0xb1, 0xd9, 0x22, 0x71, 0x4b, 0x0c, 0x8a, 0x12,
|
0xd9, 0x37, 0x00, 0x00, 0x1b, 0xb6, 0x0b, 0x7e, 0x19, 0xd4, 0xa2, 0x52, 0xa6, 0x17, 0xd7, 0xd6,
|
||||||
0x49, 0x60, 0x67, 0xec, 0x4d, 0xe2, 0xe4, 0x48, 0x04, 0x57, 0x69, 0x76, 0xe3, 0x65, 0x24, 0x76,
|
0x03, 0x43, 0x47, 0xc4, 0x66, 0x8b, 0xc4, 0x2d, 0x31, 0x28, 0x4a, 0x24, 0x81, 0x9d, 0xb1, 0x37,
|
||||||
0x86, 0x60, 0xbe, 0x13, 0xc7, 0x66, 0xd1, 0xee, 0xf1, 0x99, 0x4f, 0x13, 0xed, 0x18, 0xde, 0x19,
|
0x89, 0x93, 0x23, 0x11, 0x5c, 0xa5, 0xd9, 0x8d, 0x97, 0x91, 0xd8, 0x19, 0x82, 0xf9, 0x4e, 0x1c,
|
||||||
0x91, 0x59, 0xbf, 0x8c, 0xdd, 0x91, 0x23, 0x90, 0xa3, 0x68, 0x66, 0xae, 0x3f, 0x16, 0x09, 0x0e,
|
0x9b, 0x45, 0xbb, 0xc7, 0x67, 0x3e, 0x4d, 0xb4, 0x63, 0x78, 0x67, 0x44, 0x66, 0xfd, 0x32, 0x76,
|
||||||
0x10, 0x99, 0x4e, 0x73, 0x59, 0x41, 0xa5, 0x3c, 0x2d, 0xb8, 0x3a, 0x97, 0x61, 0x7f, 0x87, 0x3d,
|
0x47, 0x8e, 0x40, 0x8e, 0xa2, 0x99, 0xb9, 0xfe, 0x58, 0x24, 0x38, 0x40, 0x64, 0x3a, 0xcd, 0x65,
|
||||||
0xf0, 0xe5, 0xad, 0x88, 0x73, 0x46, 0xb0, 0x98, 0x7f, 0x70, 0x65, 0xf8, 0x63, 0x61, 0x05, 0x01,
|
0x05, 0x95, 0xf2, 0xb4, 0xe0, 0xea, 0x5c, 0x86, 0xfd, 0x1d, 0xf6, 0xc0, 0x97, 0xb7, 0x22, 0xce,
|
||||||
0x2e, 0x74, 0x7e, 0xdf, 0x87, 0x24, 0xcd, 0xf7, 0x4e, 0xee, 0x68, 0x52, 0xb6, 0x03, 0xf2, 0x9a,
|
0x19, 0xc1, 0x62, 0xfe, 0xc1, 0x95, 0xe1, 0x8f, 0x85, 0x15, 0x04, 0xb8, 0xd0, 0xf9, 0x7d, 0x1f,
|
||||||
0x80, 0x77, 0xdb, 0x5d, 0xd2, 0xf3, 0x2f, 0x18, 0x0f, 0x2f, 0x50, 0xc1, 0xf0, 0x2a, 0xdb, 0x96,
|
0x92, 0x34, 0xdf, 0x3b, 0xb9, 0xa3, 0x49, 0xd9, 0x0e, 0xc8, 0x6b, 0x02, 0xde, 0x6d, 0x77, 0x49,
|
||||||
0x57, 0x8e, 0x01, 0xfb, 0xfe, 0x19, 0x86, 0x64, 0xf3, 0x64, 0xd3, 0xf0, 0x2a, 0xfb, 0xbd, 0x43,
|
0xcf, 0xbf, 0x60, 0x3c, 0xbc, 0x40, 0x05, 0xc3, 0xab, 0x6c, 0x5b, 0x5e, 0x39, 0x06, 0xec, 0xfb,
|
||||||
0x3a, 0x33, 0x5e, 0xae, 0xca, 0x29, 0xf1, 0x1e, 0x2d, 0xe8, 0x15, 0x6e, 0x5b, 0xfb, 0xee, 0x64,
|
0x67, 0x18, 0x92, 0xcd, 0x93, 0x4d, 0xc3, 0xab, 0xec, 0xf7, 0x0e, 0xe9, 0xcc, 0x78, 0xb9, 0x2a,
|
||||||
0x53, 0xe2, 0x1b, 0x99, 0xd1, 0xe6, 0x66, 0xa0, 0xa1, 0xa7, 0x1d, 0x7d, 0xa8, 0x52, 0x33, 0x97,
|
0xa7, 0xc4, 0x7b, 0xb4, 0xa0, 0x57, 0xb8, 0x6d, 0xed, 0xbb, 0x93, 0x4d, 0x89, 0x6f, 0x64, 0x46,
|
||||||
0x89, 0xdc, 0x5c, 0xde, 0x15, 0x36, 0x06, 0x2a, 0x6f, 0xdc, 0x19, 0x80, 0xda, 0x75, 0xcf, 0xbe,
|
0x9b, 0x9b, 0x81, 0x86, 0x9e, 0x76, 0xf4, 0xa1, 0x4a, 0xcd, 0x5c, 0x26, 0x72, 0x73, 0x79, 0x57,
|
||||||
0x40, 0x1a, 0x3c, 0xa5, 0x6e, 0x42, 0xe9, 0xba, 0x09, 0x5d, 0x72, 0xf2, 0xe9, 0x0e, 0xbc, 0x51,
|
0xd8, 0x18, 0xa8, 0xbc, 0x71, 0x67, 0x00, 0x6a, 0xd7, 0x3d, 0xfb, 0x02, 0x69, 0xf0, 0x94, 0xba,
|
||||||
0xcc, 0xc8, 0x64, 0xb3, 0xa3, 0x9f, 0x40, 0x56, 0xb2, 0x7d, 0xba, 0x46, 0xeb, 0xe8, 0x81, 0xad,
|
0x09, 0xa5, 0xeb, 0x26, 0x74, 0xc9, 0xc9, 0xa7, 0x3b, 0xf0, 0x46, 0x31, 0x23, 0x93, 0xcd, 0x8e,
|
||||||
0x0a, 0x27, 0xfd, 0xb6, 0x37, 0xeb, 0x24, 0x10, 0x3f, 0x1a, 0x9d, 0x3b, 0xc3, 0xb7, 0x89, 0xae,
|
0x7e, 0x02, 0x59, 0xc9, 0xf6, 0xe9, 0x1a, 0xad, 0xa3, 0x07, 0xb6, 0x2a, 0x9c, 0x0c, 0xdc, 0xde,
|
||||||
0x89, 0x47, 0x34, 0x39, 0xe4, 0x18, 0x7f, 0x5a, 0x62, 0x07, 0x3e, 0x3c, 0xc8, 0xb9, 0x9b, 0x68,
|
0xac, 0x93, 0x40, 0xfc, 0x28, 0x75, 0xee, 0xcc, 0xdf, 0x26, 0xba, 0x26, 0x1e, 0xe9, 0xe4, 0x90,
|
||||||
0x25, 0xdb, 0xc2, 0x6b, 0x18, 0xaf, 0xb1, 0x76, 0x4c, 0xfb, 0xc7, 0x92, 0x1e, 0x2f, 0x43, 0x76,
|
0x63, 0xfc, 0x41, 0x8a, 0x1d, 0xf8, 0xf0, 0xe0, 0xe7, 0x6e, 0xa2, 0x95, 0x6c, 0x0b, 0xaf, 0x61,
|
||||||
0xe0, 0xfa, 0x89, 0xf6, 0xdf, 0x71, 0xb0, 0xb0, 0x44, 0x16, 0x69, 0x6f, 0xbd, 0xcf, 0xeb, 0xea,
|
0xbc, 0xc6, 0xda, 0x31, 0xed, 0x1f, 0x4b, 0x7a, 0xbc, 0x0c, 0xd9, 0x81, 0xeb, 0x27, 0xda, 0x7f,
|
||||||
0x90, 0x8b, 0xae, 0x24, 0x5c, 0xa3, 0x53, 0xaa, 0x6c, 0xb4, 0xcd, 0x65, 0xd7, 0x3c, 0x53, 0xd5,
|
0xc7, 0xc1, 0xc2, 0x12, 0x59, 0xa4, 0xbd, 0xf5, 0x3e, 0xaf, 0xab, 0x43, 0x2e, 0xba, 0x92, 0x70,
|
||||||
0x1f, 0xb1, 0x69, 0xce, 0xdb, 0x11, 0x3f, 0xee, 0x6e, 0x99, 0x57, 0x4e, 0x79, 0xaa, 0x0b, 0xfa,
|
0x8d, 0x4e, 0xa9, 0xb2, 0xd1, 0x36, 0x97, 0x5d, 0xf3, 0x4c, 0x55, 0x7f, 0xc4, 0xa6, 0x39, 0x6f,
|
||||||
0x22, 0xd6, 0x11, 0xb3, 0xc5, 0x85, 0xe5, 0x78, 0xa9, 0xbf, 0xc2, 0x5f, 0xbd, 0x78, 0xa5, 0x40,
|
0x47, 0xfc, 0xb8, 0xbb, 0x65, 0x5e, 0x39, 0xe5, 0xa9, 0x2e, 0xe8, 0x8b, 0x58, 0x47, 0xcc, 0x16,
|
||||||
0xb8, 0x1e, 0xdd, 0x64, 0x15, 0x80, 0x28, 0x15, 0xf9, 0xa1, 0xed, 0xf2, 0x0c, 0x22, 0xed, 0x18,
|
0x17, 0x96, 0xe3, 0xa5, 0xfe, 0x0a, 0x7f, 0x2b, 0xe3, 0x95, 0x02, 0xe1, 0x7a, 0x74, 0x93, 0x55,
|
||||||
0x6c, 0x60, 0xe5, 0xbf, 0xbc, 0x23, 0x31, 0xf2, 0x96, 0x29, 0xa9, 0x58, 0xb6, 0xcd, 0x02, 0xc8,
|
0x00, 0xa2, 0x54, 0xe4, 0x87, 0xbc, 0xcb, 0x33, 0x88, 0xb4, 0x63, 0xb0, 0x81, 0x95, 0xff, 0x5e,
|
||||||
0x09, 0x6a, 0x1c, 0xdd, 0x0e, 0x43, 0x4f, 0xac, 0x63, 0xe1, 0xe6, 0xea, 0xc1, 0x1f, 0x73, 0x0d,
|
0x8f, 0xc4, 0xc8, 0x5b, 0xa6, 0xa4, 0x62, 0xd9, 0x36, 0x0b, 0x20, 0x27, 0xa8, 0x71, 0x74, 0x3b,
|
||||||
0x67, 0x5a, 0x77, 0x42, 0x81, 0x01, 0x04, 0xf1, 0x2b, 0x7f, 0x5e, 0xb0, 0x5c, 0x69, 0xb8, 0x16,
|
0x0c, 0x3d, 0xb1, 0x8e, 0x85, 0x9b, 0xab, 0x07, 0x7f, 0xcc, 0x35, 0x9c, 0x69, 0xdd, 0x09, 0x05,
|
||||||
0xa9, 0x80, 0x21, 0x4e, 0xcd, 0xd2, 0x5f, 0x79, 0xe2, 0xa2, 0x9d, 0x5a, 0xe0, 0x70, 0xe1, 0xe3,
|
0x06, 0x10, 0xc4, 0xaf, 0xfc, 0x79, 0xc1, 0x72, 0xa5, 0xe1, 0x5a, 0xa4, 0x02, 0x86, 0x38, 0x35,
|
||||||
0x34, 0x84, 0x8c, 0x61, 0x52, 0x87, 0xec, 0x86, 0x37, 0x43, 0x4d, 0xfa, 0x07, 0x2c, 0xb9, 0xf7,
|
0x4b, 0x7f, 0x1b, 0x8a, 0x8b, 0x76, 0x6a, 0x81, 0xc3, 0x85, 0x8f, 0xd3, 0x10, 0x32, 0x86, 0x49,
|
||||||
0x40, 0xd1, 0xea, 0xe0, 0xad, 0xdf, 0xab, 0x5b, 0x42, 0xb6, 0x77, 0xd8, 0x56, 0x79, 0xfb, 0x0e,
|
0x1d, 0xb2, 0x1b, 0xde, 0x0c, 0x35, 0xe9, 0x1f, 0xb0, 0xe4, 0xde, 0x03, 0x45, 0xab, 0x83, 0xb7,
|
||||||
0x1d, 0x9e, 0x13, 0x92, 0x07, 0x53, 0xae, 0xb6, 0xed, 0xb0, 0x92, 0x33, 0x44, 0x22, 0xae, 0x1f,
|
0x7e, 0xaf, 0x6e, 0x09, 0xd9, 0xde, 0x61, 0x5b, 0xe5, 0xed, 0x3b, 0x74, 0x78, 0x4e, 0x48, 0x1e,
|
||||||
0xee, 0x5f, 0x96, 0xbb, 0x6b, 0x9a, 0x54, 0x8f, 0x6f, 0xd2, 0x14, 0xec, 0x25, 0xed, 0xd1, 0x94,
|
0x4c, 0xb9, 0xda, 0xb6, 0xc3, 0x4a, 0xce, 0x10, 0x89, 0xb8, 0xae, 0xb8, 0x7f, 0x59, 0xee, 0xae,
|
||||||
0xdd, 0xfe, 0x17, 0x92, 0x26, 0xf9, 0x73, 0x19, 0x11, 0xcf, 0xa0, 0xee, 0xb1, 0xff, 0xcd, 0x03,
|
0x69, 0x52, 0x3d, 0xbe, 0x49, 0x53, 0xb0, 0x97, 0xb4, 0x47, 0x53, 0x76, 0xfb, 0x5f, 0x48, 0x9a,
|
||||||
0x29, 0x6e, 0x82, 0x4e, 0x31, 0xfd, 0x17, 0x25, 0xc1, 0x32, 0xa8, 0xf3, 0x1e, 0xe1, 0x6b, 0xa1,
|
0xe4, 0x8f, 0x6c, 0x44, 0x3c, 0x83, 0xba, 0xc7, 0xfe, 0x37, 0x0f, 0xa4, 0xb8, 0x09, 0x3a, 0xc5,
|
||||||
0x65, 0x28, 0xf5, 0x49, 0x62, 0xcd, 0x95, 0x36, 0x1b, 0x29, 0xe6, 0x19, 0xa4, 0x98, 0xe5, 0xce,
|
0xf4, 0x5f, 0x94, 0x04, 0xcb, 0xa0, 0xce, 0x7b, 0x84, 0xaf, 0x85, 0x96, 0xa1, 0xd4, 0x27, 0x89,
|
||||||
0x72, 0x51, 0x96, 0x6d, 0x66, 0x59, 0xa5, 0xa2, 0x1f, 0xc1, 0x13, 0x35, 0x29, 0x23, 0x4e, 0x65,
|
0x35, 0x57, 0xda, 0x6c, 0xa4, 0x98, 0x67, 0x90, 0x62, 0x96, 0x3b, 0xcb, 0x45, 0x59, 0xb6, 0x99,
|
||||||
0xbd, 0x87, 0xcc, 0x41, 0xc2, 0x94, 0x27, 0x31, 0xbc, 0xdd, 0x51, 0xa8, 0x6e, 0x53, 0xd0, 0x0b,
|
0x65, 0x95, 0x8a, 0x7e, 0x04, 0x4f, 0xd4, 0xa4, 0x8c, 0x38, 0x95, 0xf5, 0x1e, 0x32, 0x07, 0x09,
|
||||||
0x55, 0x29, 0xa4, 0xa8, 0x63, 0xdf, 0x87, 0x3c, 0x5f, 0xc7, 0xf2, 0x2f, 0x4a, 0xf2, 0xd5, 0x28,
|
0x53, 0x9e, 0xc4, 0xf0, 0x76, 0x47, 0xa1, 0xba, 0x4d, 0x41, 0x2f, 0x54, 0xa5, 0x90, 0xa2, 0x8e,
|
||||||
0x25, 0x8a, 0x51, 0xf7, 0x83, 0xb5, 0x58, 0x58, 0xc4, 0xf6, 0xc3, 0x50, 0x96, 0x7e, 0x98, 0x1e,
|
0x7d, 0x1f, 0xf2, 0x7c, 0x1d, 0xcb, 0xbf, 0x28, 0xc9, 0x57, 0xa3, 0x94, 0x28, 0x46, 0xdd, 0x0f,
|
||||||
0x88, 0xe4, 0xe7, 0x15, 0x19, 0x7d, 0x80, 0xe4, 0x94, 0x28, 0x51, 0x1c, 0xfa, 0x50, 0xe0, 0xa0,
|
0xd6, 0x62, 0x61, 0x11, 0xdb, 0x0f, 0x43, 0x59, 0xfa, 0x61, 0x7a, 0x20, 0x92, 0x9f, 0x57, 0x64,
|
||||||
0x37, 0x49, 0xdb, 0x0b, 0x9c, 0x40, 0x65, 0x27, 0xf6, 0x12, 0x61, 0xee, 0xa0, 0x80, 0xbd, 0x1a,
|
0xf4, 0x01, 0x92, 0x53, 0xa2, 0x44, 0x71, 0xe8, 0x43, 0x81, 0x83, 0xde, 0x24, 0x6d, 0x2f, 0x70,
|
||||||
0xa2, 0xe0, 0xcf, 0xed, 0x6c, 0x62, 0xc7, 0x7f, 0xc3, 0xac, 0xde, 0x04, 0xc3, 0x88, 0x73, 0x1c,
|
0x02, 0x95, 0x9d, 0xd8, 0x4b, 0x84, 0xb9, 0x83, 0x02, 0xf6, 0x6a, 0x88, 0x82, 0x3f, 0xd2, 0xb3,
|
||||||
0x4b, 0xc1, 0xbd, 0xdf, 0x14, 0x5c, 0x65, 0x43, 0x72, 0x46, 0xf9, 0xda, 0xfc, 0x80, 0x0a, 0x75,
|
0x89, 0x1d, 0xff, 0x0d, 0xb3, 0x7a, 0x13, 0x0c, 0x23, 0xce, 0x71, 0x2c, 0x05, 0xf7, 0x7e, 0x53,
|
||||||
0x0f, 0xa9, 0x5f, 0xe4, 0x20, 0xd3, 0x42, 0xa7, 0xce, 0x42, 0x3f, 0x8a, 0xa6, 0xd6, 0x84, 0xbd,
|
0x70, 0x95, 0x0d, 0xc9, 0x19, 0xe5, 0x6b, 0xf3, 0x03, 0x2a, 0xd4, 0x3d, 0xa4, 0x7e, 0x91, 0x83,
|
||||||
0x26, 0x97, 0xfb, 0xf7, 0x42, 0x77, 0x32, 0x04, 0x04, 0x7f, 0xed, 0x6a, 0x83, 0xb9, 0xfb, 0xf3,
|
0x4c, 0x0b, 0x9d, 0x3a, 0x0b, 0xfd, 0x28, 0x9a, 0x5a, 0x13, 0xf6, 0x9a, 0x5c, 0xee, 0xdf, 0x0b,
|
||||||
0x5d, 0xcc, 0x7d, 0x73, 0xb7, 0xcf, 0xdc, 0xe0, 0xcf, 0xe5, 0x91, 0x45, 0x84, 0x68, 0x65, 0x3b,
|
0xdd, 0xc9, 0x10, 0x10, 0xfc, 0x8d, 0xac, 0x0d, 0xe6, 0xee, 0xcf, 0x77, 0x31, 0xf7, 0xcd, 0xdd,
|
||||||
0xe5, 0xd6, 0x72, 0x59, 0x0c, 0x51, 0x2d, 0xce, 0xd8, 0x7c, 0x8d, 0xb1, 0xdb, 0xf7, 0xc2, 0x54,
|
0x3e, 0x73, 0x83, 0x3f, 0xb2, 0x47, 0x16, 0x11, 0xa2, 0x95, 0xed, 0x94, 0x5b, 0xcb, 0x65, 0x31,
|
||||||
0x90, 0x9b, 0x09, 0x54, 0xe3, 0x20, 0x3c, 0x3e, 0xb3, 0x44, 0xc9, 0xcf, 0xe5, 0x2f, 0x8b, 0x6d,
|
0x44, 0xb5, 0x38, 0x63, 0xf3, 0x35, 0xc6, 0x6e, 0xdf, 0x0b, 0x53, 0x41, 0x6e, 0x26, 0x50, 0x8d,
|
||||||
0x76, 0x4a, 0xee, 0xaf, 0x5e, 0x51, 0xc0, 0x1d, 0x62, 0x84, 0x77, 0x5c, 0x11, 0x12, 0xfc, 0xf7,
|
0x83, 0xf0, 0xf8, 0xcc, 0x12, 0x25, 0x3f, 0x97, 0xbf, 0x47, 0xb6, 0xd9, 0x29, 0xb9, 0xbf, 0x7a,
|
||||||
0xdc, 0x59, 0xed, 0xb6, 0xa5, 0xfb, 0xe1, 0xeb, 0x8a, 0x5e, 0x29, 0x21, 0x84, 0x44, 0xb0, 0xdb,
|
0x45, 0x01, 0x77, 0x88, 0x11, 0xde, 0x71, 0x45, 0x48, 0xf0, 0xdf, 0x73, 0x67, 0xb5, 0xdb, 0x96,
|
||||||
0xb9, 0x79, 0x16, 0xfa, 0xfe, 0x63, 0x59, 0x36, 0xf0, 0xd1, 0x72, 0x62, 0xde, 0xd8, 0x00, 0x4b,
|
0xee, 0x87, 0xaf, 0x2b, 0x7a, 0xa5, 0x84, 0x10, 0x12, 0xc1, 0x6e, 0xe7, 0xe6, 0x59, 0xe8, 0xfb,
|
||||||
0xab, 0xec, 0x39, 0x10, 0xfd, 0x1e, 0x96, 0x7a, 0x4f, 0x12, 0x80, 0xaf, 0x09, 0x4f, 0x21, 0x53,
|
0x8f, 0x65, 0xd9, 0xc0, 0x47, 0xcb, 0x89, 0x79, 0x63, 0x03, 0x2c, 0xad, 0xb2, 0xe7, 0x40, 0xf4,
|
||||||
0xa0, 0xca, 0xf6, 0xb9, 0x9d, 0xd1, 0xd2, 0x0b, 0x9d, 0xa8, 0x2c, 0x80, 0x82, 0xdc, 0xf9, 0xdd,
|
0x7b, 0x58, 0xea, 0x3d, 0x49, 0x00, 0xbe, 0x26, 0x3c, 0x85, 0x4c, 0x81, 0x2a, 0xdb, 0xe7, 0x76,
|
||||||
0x04, 0xfc, 0x71, 0x1e, 0xa8, 0x92, 0x30, 0xd2, 0xf1, 0xc5, 0xa8, 0x88, 0xa7, 0x43, 0x0b, 0x1c,
|
0x46, 0x4b, 0x2f, 0x74, 0xa2, 0xb2, 0x00, 0x0a, 0x72, 0xe7, 0x77, 0x19, 0xf0, 0x27, 0x7d, 0xa0,
|
||||||
0xba, 0xcd, 0x72, 0xa6, 0xf3, 0xda, 0x91, 0xca, 0xb3, 0xfb, 0xfc, 0xe1, 0xcc, 0x44, 0x99, 0x9e,
|
0x4a, 0xc2, 0x48, 0xc7, 0x17, 0xa3, 0x22, 0x9e, 0x0e, 0x2d, 0x70, 0xe8, 0x36, 0xcb, 0x99, 0xce,
|
||||||
0x6c, 0xda, 0xff, 0x20, 0x12, 0x6b, 0x5f, 0xe6, 0xb8, 0xdc, 0x06, 0xcb, 0x8e, 0x0e, 0x96, 0x9e,
|
0x6b, 0x47, 0x2a, 0xcf, 0xee, 0xf3, 0x87, 0x33, 0x13, 0x65, 0x7a, 0xb2, 0x69, 0xff, 0x83, 0x48,
|
||||||
0x14, 0xa4, 0x5b, 0xd3, 0xe2, 0x15, 0xff, 0xf9, 0xae, 0x64, 0xea, 0x95, 0x03, 0xe7, 0xb9, 0x5c,
|
0xac, 0x7d, 0x99, 0xe3, 0x72, 0x1b, 0x2c, 0x3b, 0x3a, 0x58, 0x7a, 0x52, 0x90, 0x6e, 0x4d, 0x8b,
|
||||||
0xeb, 0x95, 0x03, 0x85, 0x28, 0xe4, 0x57, 0x8e, 0x14, 0xa2, 0x84, 0x2b, 0xe5, 0xa7, 0x0a, 0x79,
|
0x57, 0xfc, 0xe7, 0xbb, 0x92, 0xa9, 0x57, 0x0e, 0x9c, 0xe7, 0x72, 0xad, 0x57, 0x0e, 0x14, 0xa2,
|
||||||
0xc5, 0x92, 0x4e, 0x0f, 0x84, 0x93, 0x9d, 0x87, 0x7c, 0xa5, 0xde, 0x39, 0xbb, 0x93, 0xf5, 0x0e,
|
0x90, 0x5f, 0x39, 0x52, 0x88, 0x12, 0xae, 0x94, 0x9f, 0x2a, 0xe4, 0x15, 0x4b, 0x3a, 0x3d, 0x10,
|
||||||
0x8c, 0x81, 0x64, 0x1d, 0x4c, 0xeb, 0x11, 0xaa, 0x2e, 0x17, 0x5c, 0x0f, 0x54, 0x0d, 0x3b, 0xa2,
|
0x4e, 0x76, 0x1e, 0xf2, 0x95, 0x7a, 0xe7, 0xec, 0x4e, 0xd6, 0x3b, 0x30, 0x06, 0x92, 0x75, 0x30,
|
||||||
0xe8, 0x76, 0x7e, 0x5c, 0xd9, 0x4c, 0x90, 0xcf, 0x86, 0x45, 0x0f, 0x23, 0xc3, 0x1a, 0xac, 0xf8,
|
0xad, 0x47, 0xa8, 0xba, 0x5c, 0x70, 0x3d, 0x50, 0x35, 0xec, 0x88, 0xa2, 0xdb, 0xf9, 0x71, 0x65,
|
||||||
0xe9, 0xe4, 0x11, 0x97, 0x7a, 0xc2, 0x97, 0x3f, 0x31, 0xeb, 0x1c, 0x41, 0x31, 0xa3, 0x4a, 0x62,
|
0x33, 0x41, 0x3e, 0x1b, 0x16, 0x3d, 0x8c, 0x0c, 0x6b, 0xb0, 0xe2, 0xa7, 0x93, 0x47, 0x5c, 0xea,
|
||||||
0xc4, 0xc3, 0x32, 0xa5, 0xbe, 0xe2, 0x37, 0x38, 0x89, 0xf2, 0x14, 0x5a, 0x01, 0xf6, 0x23, 0x16,
|
0x09, 0x5f, 0xfe, 0xc4, 0xac, 0x73, 0x04, 0xc5, 0x8c, 0x2a, 0x89, 0x11, 0x0f, 0xcb, 0x94, 0xfa,
|
||||||
0xfe, 0x23, 0x0c, 0x56, 0xf7, 0xa8, 0x77, 0x25, 0x19, 0x62, 0xb9, 0x4f, 0xd6, 0x2a, 0x22, 0x38,
|
0x8a, 0xdf, 0xf8, 0x24, 0xca, 0x53, 0x68, 0x05, 0xd8, 0x8f, 0x58, 0xf8, 0x8f, 0x30, 0x58, 0xdd,
|
||||||
0x52, 0xdd, 0xb3, 0x14, 0x09, 0xb8, 0x87, 0x07, 0x7d, 0x37, 0xa0, 0x4b, 0x14, 0x1f, 0x17, 0xbf,
|
0xa3, 0xde, 0x95, 0x64, 0x88, 0xe5, 0x3e, 0x59, 0xab, 0x88, 0xe0, 0x48, 0x75, 0xcf, 0x52, 0x24,
|
||||||
0xc4, 0x73, 0x97, 0xae, 0x53, 0x45, 0x3a, 0x86, 0x50, 0x1c, 0x9f, 0xc5, 0x2e, 0x1d, 0x7b, 0x9b,
|
0xe0, 0x1e, 0x1e, 0xf4, 0xdd, 0x80, 0x2e, 0x51, 0x7c, 0x5c, 0xfc, 0x12, 0xcf, 0x5d, 0xba, 0x4e,
|
||||||
0xa0, 0x13, 0xc7, 0x63, 0x34, 0x52, 0x39, 0xbf, 0x87, 0x02, 0xa2, 0x92, 0x09, 0xfa, 0xfd, 0xed,
|
0x15, 0xe9, 0x18, 0x42, 0x71, 0x7c, 0x16, 0xbb, 0x74, 0xec, 0x6d, 0x82, 0x4e, 0x1c, 0x8f, 0xd1,
|
||||||
0xe8, 0xd5, 0x82, 0xc8, 0x9e, 0xf2, 0x6a, 0x10, 0x7f, 0x5b, 0x91, 0xc4, 0x6c, 0x11, 0xb8, 0x79,
|
0x48, 0xe5, 0xfc, 0x1e, 0x0a, 0x88, 0x4a, 0x26, 0xe8, 0xf7, 0xb7, 0xa3, 0x57, 0x0b, 0x22, 0x7b,
|
||||||
0xfa, 0x95, 0xf2, 0xdc, 0xb0, 0x41, 0xc9, 0x3f, 0x9f, 0x1b, 0xd2, 0x64, 0x2f, 0x3d, 0xdd, 0x72,
|
0xca, 0xab, 0x41, 0xfc, 0x45, 0x46, 0x12, 0xb3, 0x45, 0xe0, 0xe6, 0xe9, 0x57, 0xca, 0x73, 0xc3,
|
||||||
0x6f, 0x40, 0xe1, 0xc2, 0x53, 0x80, 0xb2, 0xbc, 0x10, 0xf7, 0x08, 0xfe, 0x4f, 0x36, 0x1f, 0xea,
|
0x06, 0x25, 0xff, 0x7c, 0x6e, 0x48, 0x93, 0xbd, 0xf4, 0x74, 0xcb, 0xbd, 0x01, 0x85, 0x0b, 0x4f,
|
||||||
0xb8, 0x9f, 0x92, 0x2b, 0x93, 0xc5, 0x2f, 0x40, 0x26, 0x64, 0xeb, 0xb8, 0x15, 0x83, 0xfb, 0x32,
|
0x01, 0xca, 0xf2, 0x42, 0xdc, 0x23, 0xf8, 0x3f, 0xd9, 0x7c, 0xa8, 0xe3, 0x7e, 0x4a, 0xae, 0x4c,
|
||||||
0xf8, 0x13, 0xb0, 0xff, 0x03, 0x4b, 0x74, 0xff, 0x24, 0x12, 0x56, 0x00, 0x00
|
0x16, 0xbf, 0x1b, 0x99, 0x90, 0xad, 0xe3, 0x56, 0x0c, 0xee, 0xcb, 0xe0, 0x0f, 0xc7, 0xfe, 0x0f,
|
||||||
|
0x30, 0xf6, 0xeb, 0x92, 0x48, 0x56, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
3745
wled00/html_ui.h
3745
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -265,12 +265,9 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (set < 2) stop = start + 1;
|
if (set < 2) stop = start + 1;
|
||||||
|
uint32_t c = gamma32(RGBW32(rgbw[0], rgbw[1], rgbw[2], rgbw[3]));
|
||||||
for (int i = start; i < stop; i++) {
|
for (int i = start; i < stop; i++) {
|
||||||
if (strip.gammaCorrectCol) {
|
seg.setPixelColor(i, c);
|
||||||
seg.setPixelColor(i, gamma8(rgbw[0]), gamma8(rgbw[1]), gamma8(rgbw[2]), gamma8(rgbw[3]));
|
|
||||||
} else {
|
|
||||||
seg.setPixelColor(i, rgbw[0], rgbw[1], rgbw[2], rgbw[3]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!set) start++;
|
if (!set) start++;
|
||||||
set = 0;
|
set = 0;
|
||||||
@ -589,8 +586,6 @@ void serializeInfo(JsonObject root)
|
|||||||
leds["fps"] = strip.getFps();
|
leds["fps"] = strip.getFps();
|
||||||
leds[F("maxpwr")] = (strip.currentMilliamps)? strip.ablMilliampsMax : 0;
|
leds[F("maxpwr")] = (strip.currentMilliamps)? strip.ablMilliampsMax : 0;
|
||||||
leds[F("maxseg")] = strip.getMaxSegments();
|
leds[F("maxseg")] = strip.getMaxSegments();
|
||||||
//leds[F("actseg")] = strip.getActiveSegmentsNum();
|
|
||||||
//leds[F("seglock")] = false; //might be used in the future to prevent modifications to segment config
|
|
||||||
leds[F("cpal")] = strip.customPalettes.size(); //number of custom palettes
|
leds[F("cpal")] = strip.customPalettes.size(); //number of custom palettes
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
@ -617,10 +612,6 @@ void serializeInfo(JsonObject root)
|
|||||||
leds[F("wv")] = totalLC & 0x02; // deprecated, true if white slider should be displayed for any segment
|
leds[F("wv")] = totalLC & 0x02; // deprecated, true if white slider should be displayed for any segment
|
||||||
leds["cct"] = totalLC & 0x04; // deprecated, use info.leds.lc
|
leds["cct"] = totalLC & 0x04; // deprecated, use info.leds.lc
|
||||||
|
|
||||||
#ifdef WLED_DISABLE_AUDIO
|
|
||||||
root[F("noaudio")] = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WLED_DEBUG
|
#ifdef WLED_DEBUG
|
||||||
JsonArray i2c = root.createNestedArray(F("i2c"));
|
JsonArray i2c = root.createNestedArray(F("i2c"));
|
||||||
i2c.add(i2c_sda);
|
i2c.add(i2c_sda);
|
||||||
|
@ -184,8 +184,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
|
|||||||
turnOnAtBoot = request->hasArg(F("BO"));
|
turnOnAtBoot = request->hasArg(F("BO"));
|
||||||
t = request->arg(F("BP")).toInt();
|
t = request->arg(F("BP")).toInt();
|
||||||
if (t <= 250) bootPreset = t;
|
if (t <= 250) bootPreset = t;
|
||||||
strip.gammaCorrectBri = request->hasArg(F("GB"));
|
gammaCorrectBri = request->hasArg(F("GB"));
|
||||||
strip.gammaCorrectCol = request->hasArg(F("GC"));
|
gammaCorrectCol = request->hasArg(F("GC"));
|
||||||
|
|
||||||
fadeTransition = request->hasArg(F("TF"));
|
fadeTransition = request->hasArg(F("TF"));
|
||||||
t = request->arg(F("TD")).toInt();
|
t = request->arg(F("TD")).toInt();
|
||||||
|
@ -53,6 +53,9 @@ typedef struct ip_addr ip4_addr_t;
|
|||||||
#define DDP_PUSH_FLAG 0x01
|
#define DDP_PUSH_FLAG 0x01
|
||||||
#define DDP_TIMECODE_FLAG 0x10
|
#define DDP_TIMECODE_FLAG 0x10
|
||||||
|
|
||||||
|
#define DDP_TYPE_RGB24 0x0A
|
||||||
|
#define DDP_TYPE_RGBW32 0x1A
|
||||||
|
|
||||||
#define ARTNET_OPCODE_OPDMX 0x5000
|
#define ARTNET_OPCODE_OPDMX 0x5000
|
||||||
|
|
||||||
#define P_E131 0
|
#define P_E131 0
|
||||||
|
2566
wled00/src/font/console_font_4x6.h
Normal file
2566
wled00/src/font/console_font_4x6.h
Normal file
File diff suppressed because it is too large
Load Diff
4102
wled00/src/font/console_font_5x12.h
Normal file
4102
wled00/src/font/console_font_5x12.h
Normal file
File diff suppressed because it is too large
Load Diff
3078
wled00/src/font/console_font_5x8.h
Normal file
3078
wled00/src/font/console_font_5x8.h
Normal file
File diff suppressed because it is too large
Load Diff
3078
wled00/src/font/console_font_6x8.h
Normal file
3078
wled00/src/font/console_font_6x8.h
Normal file
File diff suppressed because it is too large
Load Diff
3334
wled00/src/font/console_font_7x9.h
Normal file
3334
wled00/src/font/console_font_7x9.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -564,7 +564,7 @@ void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w)
|
|||||||
{
|
{
|
||||||
uint16_t pix = i + arlsOffset;
|
uint16_t pix = i + arlsOffset;
|
||||||
if (pix < strip.getLengthTotal()) {
|
if (pix < strip.getLengthTotal()) {
|
||||||
if (!arlsDisableGammaCorrection && strip.gammaCorrectCol) {
|
if (!arlsDisableGammaCorrection && gammaCorrectCol) {
|
||||||
r = gamma8(r);
|
r = gamma8(r);
|
||||||
g = gamma8(g);
|
g = gamma8(g);
|
||||||
b = gamma8(b);
|
b = gamma8(b);
|
||||||
@ -665,9 +665,6 @@ void sendSysInfoUDP()
|
|||||||
#define DDP_FLAGS1_STORAGE 0x08
|
#define DDP_FLAGS1_STORAGE 0x08
|
||||||
#define DDP_FLAGS1_TIME 0x10
|
#define DDP_FLAGS1_TIME 0x10
|
||||||
|
|
||||||
#define DDP_TYPE_RGB24 0x0A
|
|
||||||
#define DDP_TYPE_RGBW32 0x1A // proposal, this is still not an official part of the DDP spec
|
|
||||||
|
|
||||||
#define DDP_ID_DISPLAY 1
|
#define DDP_ID_DISPLAY 1
|
||||||
#define DDP_ID_CONFIG 250
|
#define DDP_ID_CONFIG 250
|
||||||
#define DDP_ID_STATUS 251
|
#define DDP_ID_STATUS 251
|
||||||
@ -695,7 +692,7 @@ uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8
|
|||||||
case 0: // DDP
|
case 0: // DDP
|
||||||
{
|
{
|
||||||
// calculate the number of UDP packets we need to send
|
// calculate the number of UDP packets we need to send
|
||||||
size_t channelCount = length * 3; // 1 channel for every R,G,B value
|
size_t channelCount = length * (isRGBW? 4:3); // 1 channel for every R,G,B value
|
||||||
size_t packetCount = ((channelCount-1) / DDP_CHANNELS_PER_PACKET) +1;
|
size_t packetCount = ((channelCount-1) / DDP_CHANNELS_PER_PACKET) +1;
|
||||||
|
|
||||||
// there are 3 channels per RGB pixel
|
// there are 3 channels per RGB pixel
|
||||||
@ -727,7 +724,7 @@ uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8
|
|||||||
// write the header
|
// write the header
|
||||||
/*0*/ddpUdp.write(flags);
|
/*0*/ddpUdp.write(flags);
|
||||||
/*1*/ddpUdp.write(sequenceNumber++ & 0x0F); // sequence may be unnecessary unless we are sending twice (as requested in Sync settings)
|
/*1*/ddpUdp.write(sequenceNumber++ & 0x0F); // sequence may be unnecessary unless we are sending twice (as requested in Sync settings)
|
||||||
/*2*/ddpUdp.write(0); // data type, this is not fully defined by the DDP spec and thus left at "undefined" which is assumed to be 24-bit RGB
|
/*2*/ddpUdp.write(isRGBW ? DDP_TYPE_RGBW32 : DDP_TYPE_RGB24);
|
||||||
/*3*/ddpUdp.write(DDP_ID_DISPLAY);
|
/*3*/ddpUdp.write(DDP_ID_DISPLAY);
|
||||||
// data offset in bytes, 32-bit number, MSB first
|
// data offset in bytes, 32-bit number, MSB first
|
||||||
/*4*/ddpUdp.write(0xFF & (channel >> 24));
|
/*4*/ddpUdp.write(0xFF & (channel >> 24));
|
||||||
@ -744,7 +741,7 @@ uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8
|
|||||||
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // R
|
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // R
|
||||||
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // G
|
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // G
|
||||||
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // B
|
ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // B
|
||||||
if (isRGBW) bufferOffset++;
|
if (isRGBW) ddpUdp.write(scale8(buffer[bufferOffset++], bri)); // W
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ddpUdp.endPacket()) {
|
if (!ddpUdp.endPacket()) {
|
||||||
|
@ -133,9 +133,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USERMOD_AUDIOREACTIVE
|
#ifdef USERMOD_AUDIOREACTIVE
|
||||||
#ifdef WLED_DISABLE_AUDIO
|
|
||||||
#error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE
|
|
||||||
#endif
|
|
||||||
#include "../usermods/audioreactive/audio_reactive.h"
|
#include "../usermods/audioreactive/audio_reactive.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -260,9 +257,6 @@ void registerUsermods()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USERMOD_AUDIOREACTIVE
|
#ifdef USERMOD_AUDIOREACTIVE
|
||||||
#ifdef WLED_DISABLE_AUDIO
|
|
||||||
#error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE
|
|
||||||
#endif
|
|
||||||
usermods.add(new AudioReactive());
|
usermods.add(new AudioReactive());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,6 @@ uint16_t crc16(const unsigned char* data_p, size_t length) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_AUDIO
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Begin simulateSound (to enable audio enhanced effects to display something)
|
// Begin simulateSound (to enable audio enhanced effects to display something)
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -402,7 +401,6 @@ typedef enum UM_SoundSimulations {
|
|||||||
UMS_14_3
|
UMS_14_3
|
||||||
} um_soundSimulations_t;
|
} um_soundSimulations_t;
|
||||||
|
|
||||||
// this is still work in progress
|
|
||||||
um_data_t* simulateSound(uint8_t simulationId)
|
um_data_t* simulateSound(uint8_t simulationId)
|
||||||
{
|
{
|
||||||
static uint8_t samplePeak;
|
static uint8_t samplePeak;
|
||||||
@ -507,7 +505,6 @@ um_data_t* simulateSound(uint8_t simulationId)
|
|||||||
|
|
||||||
return um_data;
|
return um_data;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void enumerateLedmaps() {
|
void enumerateLedmaps() {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2208311
|
#define VERSION 2209061
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
@ -287,9 +287,11 @@ WLED_GLOBAL byte bootPreset _INIT(0); // save preset to load
|
|||||||
//if true, a segment per bus will be created on boot and LED settings save
|
//if true, a segment per bus will be created on boot and LED settings save
|
||||||
//if false, only one segment spanning the total LEDs is created,
|
//if false, only one segment spanning the total LEDs is created,
|
||||||
//but not on LED settings save if there is more than one segment currently
|
//but not on LED settings save if there is more than one segment currently
|
||||||
WLED_GLOBAL bool autoSegments _INIT(false);
|
WLED_GLOBAL bool autoSegments _INIT(false);
|
||||||
WLED_GLOBAL bool correctWB _INIT(false); //CCT color correction of RGB color
|
WLED_GLOBAL bool correctWB _INIT(false); // CCT color correction of RGB color
|
||||||
WLED_GLOBAL bool cctFromRgb _INIT(false); //CCT is calculated from RGB instead of using seg.cct
|
WLED_GLOBAL bool cctFromRgb _INIT(false); // CCT is calculated from RGB instead of using seg.cct
|
||||||
|
WLED_GLOBAL bool gammaCorrectCol _INIT(false); // use gamma correction on colors
|
||||||
|
WLED_GLOBAL bool gammaCorrectBri _INIT(false); // use gamma correction on brightness
|
||||||
|
|
||||||
WLED_GLOBAL byte col[] _INIT_N(({ 255, 160, 0, 0 })); // current RGB(W) primary color. col[] should be updated if you want to change the color.
|
WLED_GLOBAL byte col[] _INIT_N(({ 255, 160, 0, 0 })); // current RGB(W) primary color. col[] should be updated if you want to change the color.
|
||||||
WLED_GLOBAL byte colSec[] _INIT_N(({ 0, 0, 0, 0 })); // current RGB(W) secondary color
|
WLED_GLOBAL byte colSec[] _INIT_N(({ 0, 0, 0, 0 })); // current RGB(W) secondary color
|
||||||
|
@ -140,8 +140,8 @@ void loadSettingsFromEEPROM()
|
|||||||
ntpEnabled = EEPROM.read(327);
|
ntpEnabled = EEPROM.read(327);
|
||||||
currentTimezone = EEPROM.read(328);
|
currentTimezone = EEPROM.read(328);
|
||||||
useAMPM = EEPROM.read(329);
|
useAMPM = EEPROM.read(329);
|
||||||
strip.gammaCorrectBri = EEPROM.read(330);
|
gammaCorrectBri = EEPROM.read(330);
|
||||||
strip.gammaCorrectCol = EEPROM.read(331);
|
gammaCorrectCol = EEPROM.read(331);
|
||||||
overlayCurrent = EEPROM.read(332);
|
overlayCurrent = EEPROM.read(332);
|
||||||
|
|
||||||
alexaEnabled = EEPROM.read(333);
|
alexaEnabled = EEPROM.read(333);
|
||||||
|
@ -394,8 +394,8 @@ void getSettingsJS(byte subPage, char* dest)
|
|||||||
sappend('c',SET_F("BO"),turnOnAtBoot);
|
sappend('c',SET_F("BO"),turnOnAtBoot);
|
||||||
sappend('v',SET_F("BP"),bootPreset);
|
sappend('v',SET_F("BP"),bootPreset);
|
||||||
|
|
||||||
sappend('c',SET_F("GB"),strip.gammaCorrectBri);
|
sappend('c',SET_F("GB"),gammaCorrectBri);
|
||||||
sappend('c',SET_F("GC"),strip.gammaCorrectCol);
|
sappend('c',SET_F("GC"),gammaCorrectCol);
|
||||||
sappend('c',SET_F("TF"),fadeTransition);
|
sappend('c',SET_F("TF"),fadeTransition);
|
||||||
sappend('v',SET_F("TD"),transitionDelayDefault);
|
sappend('v',SET_F("TD"),transitionDelayDefault);
|
||||||
sappend('c',SET_F("PF"),strip.paletteFade);
|
sappend('c',SET_F("PF"),strip.paletteFade);
|
||||||
|
Loading…
Reference in New Issue
Block a user