From 5397b3ee88b1c63b85207f5d0f1f8c3e48c2c758 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 6 Oct 2023 07:48:45 +0100 Subject: [PATCH] Fixed key number offset bug added yesterday --- Dockerfile | 12 + Makefile | 2 +- README.md | 8 +- app/action.c | 1 + app/app.c | 6 +- app/dtmf.c | 5 +- app/main.c | 3 + app/spectrum.c | 1193 +++++++++++++++++++++++++++++++ app/spectrum.h | 171 +++++ compile-with-docker.bat | 4 + compile-with-docker.sh | 3 + driver/bk4819.c | 42 +- driver/bk4819.h | 1 + firmware.bin | Bin 53860 -> 53560 bytes firmware.packed.bin | Bin 53878 -> 53578 bytes font.c | 286 +++++++- functions.c | 3 + AM_fix.mp4 => images/AM_fix.mp4 | Bin image1.png => images/image1.png | Bin image2.png => images/image2.png | Bin image3.png => images/image3.png | Bin radio.c | 27 +- radio.h | 3 +- settings.c | 2 +- ui/menu.c | 9 +- ui/menu.h | 2 +- 26 files changed, 1750 insertions(+), 33 deletions(-) create mode 100644 Dockerfile create mode 100644 app/spectrum.c create mode 100644 app/spectrum.h create mode 100644 compile-with-docker.bat create mode 100644 compile-with-docker.sh rename AM_fix.mp4 => images/AM_fix.mp4 (100%) rename image1.png => images/image1.png (100%) rename image2.png => images/image2.png (100%) rename image3.png => images/image3.png (100%) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4b6c3f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM archlinux:latest +RUN pacman -Syyu base-devel --noconfirm +RUN pacman -Syyu arm-none-eabi-gcc --noconfirm +RUN pacman -Syyu arm-none-eabi-newlib --noconfirm +RUN pacman -Syyu git --noconfirm +RUN pacman -Syyu python-pip --noconfirm +RUN pacman -Syyu python-crcmod --noconfirm +WORKDIR /app +COPY . . + +RUN git submodule update --init --recursive +#RUN make && cp firmware* compiled-firmware/ diff --git a/Makefile b/Makefile index c7e0521..9e878a2 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ ENABLE_VOICE := 0 ENABLE_VOX := 0 ENABLE_ALARM := 0 ENABLE_TX1750 := 0 -ENABLE_PWRON_PASSWORD := 1 +ENABLE_PWRON_PASSWORD := 0 ENABLE_BIG_FREQ := 0 ENABLE_SMALL_BOLD := 1 ENABLE_KEEP_MEM_NAME := 1 diff --git a/README.md b/README.md index c1051ae..36212d0 100644 --- a/README.md +++ b/README.md @@ -159,13 +159,13 @@ You may obtain a copy of the License at # Example changes/updates

- - - + + +

Video showing the AM fix working .. - + diff --git a/app/action.c b/app/action.c index 3d0ec31..fe07b1d 100644 --- a/app/action.c +++ b/app/action.c @@ -333,6 +333,7 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) if (Key == KEY_SIDE1 && !bKeyHeld && bKeyPressed) { gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + if (gDTMF_InputIndex > 0) { gDTMF_InputBox[--gDTMF_InputIndex] = '-'; diff --git a/app/app.c b/app/app.c index c0a284b..e1006ab 100644 --- a/app/app.c +++ b/app/app.c @@ -2256,14 +2256,16 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) char Code; if (Key == KEY_SIDE2) - { + { // transmit 1750Hz tone Code = 0xFE; } else { - Code = DTMF_GetCharacter(Key); + Code = DTMF_GetCharacter(Key - KEY_0); if (Code == 0xFF) goto Skip; + + // transmit DTMF keys } if (!bKeyPressed || bKeyHeld) diff --git a/app/dtmf.c b/app/dtmf.c index 83d71d3..b5135ff 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -390,8 +390,9 @@ void DTMF_Reply(void) default: case DTMF_REPLY_NONE: - if (gDTMF_CallState != DTMF_CALL_STATE_NONE || - gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_OFF || + if (gDTMF_CallState != DTMF_CALL_STATE_NONE || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_OFF || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN) { gDTMF_ReplyState = DTMF_REPLY_NONE; diff --git a/app/main.c b/app/main.c index c7b3659..b650338 100644 --- a/app/main.c +++ b/app/main.c @@ -34,6 +34,9 @@ #include "settings.h" #include "ui/inputbox.h" #include "ui/ui.h" +#ifdef ENABLE_SPECTRUM +// #include "app/spectrum.h" +#endif void toggle_chan_scanlist(void) { // toggle the selected channels scanlist setting diff --git a/app/spectrum.c b/app/spectrum.c new file mode 100644 index 0000000..9d00b86 --- /dev/null +++ b/app/spectrum.c @@ -0,0 +1,1193 @@ +/* Copyright 2023 fagci + * https://github.com/fagci + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "../app/spectrum.h" + +struct FrequencyBandInfo { + uint32_t lower; + uint32_t upper; + uint32_t middle; +}; + +const struct FrequencyBandInfo FrequencyBandTable[7] = { + [BAND1_50MHz ] = {.lower = 1600000, .middle = 6500000, .upper = 7600000}, + [BAND2_108MHz] = {.lower = 10800000, .middle = 12200000, .upper = 13599990}, + [BAND3_136MHz] = {.lower = 13600000, .middle = 15000000, .upper = 17399990}, + [BAND4_174MHz] = {.lower = 17400000, .middle = 26000000, .upper = 34999990}, + [BAND5_350MHz] = {.lower = 35000000, .middle = 37000000, .upper = 39999990}, + [BAND6_400MHz] = {.lower = 40000000, .middle = 43500000, .upper = 46999990}, + [BAND7_470MHz] = {.lower = 47000000, .middle = 55000000, .upper = 130000000}, +}; + + +#define F_MIN FrequencyBandTable[0].lower +#define F_MAX FrequencyBandTable[ARRAY_SIZE(FrequencyBandTable) - 1].upper + +const uint16_t RSSI_MAX_VALUE = 65535; + +static uint16_t R30, R37, R3D, R43, R47, R48, R7E; +static uint32_t initialFreq; +static char String[32]; + +bool isInitialized = false; +bool isListening = true; +bool monitorMode = false; +bool redrawStatus = true; +bool redrawScreen = false; +bool newScanStart = true; +bool preventKeypress = true; +bool audioState = true; + +State currentState = SPECTRUM, previousState = SPECTRUM; + +PeakInfo peak; +ScanInfo scanInfo; +KeyboardState kbd = {KEY_INVALID, KEY_INVALID, 0}; + +const char *bwOptions[] = {" 25k", "12.5k", "6.25k"}; +const char *modulationTypeOptions[] = {" FM", " AM", "USB"}; +const uint8_t modulationTypeTuneSteps[] = {100, 50, 10}; +const uint8_t modTypeReg47Values[] = {1, 7, 5}; + +SpectrumSettings settings = {stepsCount: STEPS_64, + scanStepIndex: S_STEP_25_0kHz, + frequencyChangeStep: 80000, + scanDelay: 3200, + rssiTriggerLevel: 150, + backlightState: true, + bw: BK4819_FILTER_BW_WIDE, + listenBw: BK4819_FILTER_BW_WIDE, + modulationType: false, + dbMin: -130, + dbMax: -50}; + +uint32_t fMeasure = 0; +uint32_t currentFreq, tempFreq; +uint16_t rssiHistory[128] = {}; + +uint8_t freqInputIndex = 0; +uint8_t freqInputDotIndex = 0; +KEY_Code_t freqInputArr[10]; +char freqInputString[11] = "----------\0"; // XXXX.XXXXX\0 + +uint8_t menuState = 0; +uint16_t listenT = 0; + +RegisterSpec registerSpecs[] = { + {}, + {"LNAs", 0x13, 8, 0b11, 1}, + {"LNA", 0x13, 5, 0b111, 1}, + {"PGA", 0x13, 0, 0b111, 1}, + {"IF", 0x3D, 0, 0xFFFF, 0x2aaa}, + // {"MIX", 0x13, 3, 0b11, 1}, // TODO: hidden +}; + +uint16_t statuslineUpdateTimer = 0; + +static uint8_t DBm2S(int dbm) { + uint8_t i = 0; + dbm *= -1; + for (i = 0; i < ARRAY_SIZE(U8RssiMap); i++) { + if (dbm >= U8RssiMap[i]) { + return i; + } + } + return i; +} + +static int Rssi2DBm(uint16_t rssi) { return (rssi >> 1) - 160; } + +static uint16_t GetRegMenuValue(uint8_t st) { + RegisterSpec s = registerSpecs[st]; + return (BK4819_ReadRegister(s.num) >> s.offset) & s.maxValue; +} + +static void SetRegMenuValue(uint8_t st, bool add) { + uint16_t v = GetRegMenuValue(st); + RegisterSpec s = registerSpecs[st]; + + uint16_t reg = BK4819_ReadRegister(s.num); + if (add && v <= s.maxValue - s.inc) { + v += s.inc; + } else if (!add && v >= 0 + s.inc) { + v -= s.inc; + } + // TODO: use max value for bits count in max value, or reset by additional + // mask in spec + reg &= ~(s.maxValue << s.offset); + BK4819_WriteRegister(s.num, reg | (v << s.offset)); + redrawScreen = true; +} + +// GUI functions + +static void PutPixel(uint8_t x, uint8_t y, bool fill) { + if (fill) { + gFrameBuffer[y >> 3][x] |= 1 << (y & 7); + } else { + gFrameBuffer[y >> 3][x] &= ~(1 << (y & 7)); + } +} +static void PutPixelStatus(uint8_t x, uint8_t y, bool fill) { + if (fill) { + gStatusLine[x] |= 1 << y; + } else { + gStatusLine[x] &= ~(1 << y); + } +} + +static void DrawHLine(int sy, int ey, int nx, bool fill) { + for (int i = sy; i <= ey; i++) { + if (i < 56 && nx < 128) { + PutPixel(nx, i, fill); + } + } +} + +static void GUI_DisplaySmallest(const char *pString, uint8_t x, uint8_t y, + bool statusbar, bool fill) { + uint8_t c; + uint8_t pixels; + const uint8_t *p = (const uint8_t *)pString; + + while ((c = *p++) && c != '\0') { + c -= 0x20; + for (int i = 0; i < 3; ++i) { + pixels = gFont3x5[c][i]; + for (int j = 0; j < 6; ++j) { + if (pixels & 1) { + if (statusbar) + PutPixelStatus(x + i, y + j, fill); + else + PutPixel(x + i, y + j, fill); + } + pixels >>= 1; + } + } + x += 4; + } +} + +// Utility functions + +KEY_Code_t GetKey() { + KEY_Code_t btn = KEYBOARD_Poll(); + if (btn == KEY_INVALID && !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT)) { + btn = KEY_PTT; + } + return btn; +} + +static int clamp(int v, int min, int max) { + return v <= min ? min : (v >= max ? max : v); +} + +static uint8_t my_abs(signed v) { return v > 0 ? v : -v; } + +void SetState(State state) { + previousState = currentState; + currentState = state; + redrawScreen = true; + redrawStatus = true; +} + +// Radio functions + +static void ToggleAFBit(bool on) { + uint16_t reg = BK4819_ReadRegister(BK4819_REG_47); + reg &= ~(1 << 8); + if (on) + reg |= on << 8; + BK4819_WriteRegister(BK4819_REG_47, reg); +} + +static void BackupRegisters() { + R30 = BK4819_ReadRegister(0x30); + R37 = BK4819_ReadRegister(0x37); + R3D = BK4819_ReadRegister(0x3D); + R43 = BK4819_ReadRegister(0x43); + R47 = BK4819_ReadRegister(0x47); + R48 = BK4819_ReadRegister(0x48); + R7E = BK4819_ReadRegister(0x7E); +} + +static void RestoreRegisters() { + BK4819_WriteRegister(0x30, R30); + BK4819_WriteRegister(0x37, R37); + BK4819_WriteRegister(0x3D, R3D); + BK4819_WriteRegister(0x43, R43); + BK4819_WriteRegister(0x47, R47); + BK4819_WriteRegister(0x48, R48); + BK4819_WriteRegister(0x7E, R7E); +} + +static void SetModulation(ModulationType type) { + RestoreRegisters(); + uint16_t reg = BK4819_ReadRegister(BK4819_REG_47); + reg &= ~(0b111 << 8); + BK4819_WriteRegister(BK4819_REG_47, reg | (modTypeReg47Values[type] << 8)); + if (type == MOD_USB) { + BK4819_WriteRegister(0x3D, 0b0010101101000101); + BK4819_WriteRegister(BK4819_REG_37, 0x160F); + BK4819_WriteRegister(0x48, 0b0000001110101000); + } +} + +static void ToggleAFDAC(bool on) { + uint32_t Reg = BK4819_ReadRegister(BK4819_REG_30); + Reg &= ~(1 << 9); + if (on) + Reg |= (1 << 9); + BK4819_WriteRegister(BK4819_REG_30, Reg); +} + +static void SetF(uint32_t f) { + fMeasure = f; + + BK4819_SetFrequency(fMeasure); + BK4819_PickRXFilterPathBasedOnFrequency(fMeasure); + uint16_t reg = BK4819_ReadRegister(BK4819_REG_30); + BK4819_WriteRegister(BK4819_REG_30, 0); + BK4819_WriteRegister(BK4819_REG_30, reg); +} + +// Spectrum related + +bool IsPeakOverLevel() { return peak.rssi >= settings.rssiTriggerLevel; } + +static void ResetPeak() { + peak.t = 0; + peak.rssi = 0; +} + +bool IsCenterMode() { return settings.scanStepIndex < S_STEP_2_5kHz; } +uint8_t GetStepsCount() { return 128 >> settings.stepsCount; } +uint16_t GetScanStep() { return scanStepValues[settings.scanStepIndex]; } +uint32_t GetBW() { return GetStepsCount() * GetScanStep(); } +uint32_t GetFStart() { + return IsCenterMode() ? currentFreq - (GetBW() >> 1) : currentFreq; +} +uint32_t GetFEnd() { return currentFreq + GetBW(); } + +static void TuneToPeak() { + scanInfo.f = peak.f; + scanInfo.rssi = peak.rssi; + scanInfo.i = peak.i; + SetF(scanInfo.f); +} + +static void DeInitSpectrum() { + SetF(initialFreq); + RestoreRegisters(); + isInitialized = false; +} + +uint8_t GetBWRegValueForScan() { + return scanStepBWRegValues[settings.scanStepIndex]; +} + +uint16_t GetRssi() { + // SYSTICK_DelayUs(800); + // testing autodelay based on Glitch value + while ((BK4819_ReadRegister(0x63) & 0b11111111) >= 255) { + SYSTICK_DelayUs(100); + } + return BK4819_GetRSSI(); +} + +static void ToggleAudio(bool on) { + if (on == audioState) { + return; + } + audioState = on; + if (on) { + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + } else { + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + } +} + +static void ToggleRX(bool on) { + isListening = on; + + BK4819_ToggleGpioOut(BK4819_GPIO0_PIN28_GREEN, on); + + ToggleAudio(on); + ToggleAFDAC(on); + ToggleAFBit(on); + + if (on) { + listenT = 1000; + BK4819_WriteRegister(0x43, listenBWRegValues[settings.listenBw]); + } else { + BK4819_WriteRegister(0x43, GetBWRegValueForScan()); + } +} + +// Scan info + +static void ResetScanStats() { + scanInfo.rssi = 0; + scanInfo.rssiMax = 0; + scanInfo.iPeak = 0; + scanInfo.fPeak = 0; +} + +static void InitScan() { + ResetScanStats(); + scanInfo.i = 0; + scanInfo.f = GetFStart(); + + scanInfo.scanStep = GetScanStep(); + scanInfo.measurementsCount = GetStepsCount(); +} + +static void ResetBlacklist() { + for (int i = 0; i < 128; ++i) { + if (rssiHistory[i] == RSSI_MAX_VALUE) + rssiHistory[i] = 0; + } +} + +static void RelaunchScan() { + InitScan(); + ResetPeak(); + ToggleRX(false); +#ifdef SPECTRUM_AUTOMATIC_SQUELCH + settings.rssiTriggerLevel = RSSI_MAX_VALUE; +#endif + preventKeypress = true; + scanInfo.rssiMin = RSSI_MAX_VALUE; +} + +static void UpdateScanInfo() { + if (scanInfo.rssi > scanInfo.rssiMax) { + scanInfo.rssiMax = scanInfo.rssi; + scanInfo.fPeak = scanInfo.f; + scanInfo.iPeak = scanInfo.i; + } + + if (scanInfo.rssi < scanInfo.rssiMin) { + scanInfo.rssiMin = scanInfo.rssi; + settings.dbMin = Rssi2DBm(scanInfo.rssiMin); + redrawStatus = true; + } +} + +static void AutoTriggerLevel() { + if (settings.rssiTriggerLevel == RSSI_MAX_VALUE) { + settings.rssiTriggerLevel = clamp(scanInfo.rssiMax + 8, 0, RSSI_MAX_VALUE); + } +} + +static void UpdatePeakInfoForce() { + peak.t = 0; + peak.rssi = scanInfo.rssiMax; + peak.f = scanInfo.fPeak; + peak.i = scanInfo.iPeak; + AutoTriggerLevel(); +} + +static void UpdatePeakInfo() { + if (peak.f == 0 || peak.t >= 1024 || peak.rssi < scanInfo.rssiMax) + UpdatePeakInfoForce(); +} + +static void Measure() { rssiHistory[scanInfo.i] = scanInfo.rssi = GetRssi(); } + +// Update things by keypress + +static void UpdateRssiTriggerLevel(bool inc) { + if (inc) + settings.rssiTriggerLevel += 2; + else + settings.rssiTriggerLevel -= 2; + redrawScreen = true; + redrawStatus = true; +} + +static void UpdateDBMax(bool inc) { + if (inc && settings.dbMax < 10) { + settings.dbMax += 1; + } else if (!inc && settings.dbMax > settings.dbMin) { + settings.dbMax -= 1; + } else { + return; + } + redrawStatus = true; + redrawScreen = true; + SYSTEM_DelayMs(20); +} + +static void UpdateScanStep(bool inc) { + if (inc && settings.scanStepIndex < S_STEP_100_0kHz) { + settings.scanStepIndex++; + } else if (!inc && settings.scanStepIndex > 0) { + settings.scanStepIndex--; + } else { + return; + } + settings.frequencyChangeStep = GetBW() >> 1; + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void UpdateCurrentFreq(bool inc) { + if (inc && currentFreq < F_MAX) { + currentFreq += settings.frequencyChangeStep; + } else if (!inc && currentFreq > F_MIN) { + currentFreq -= settings.frequencyChangeStep; + } else { + return; + } + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void UpdateCurrentFreqStill(bool inc) { + uint8_t offset = modulationTypeTuneSteps[settings.modulationType]; + uint32_t f = fMeasure; + if (inc && f < F_MAX) { + f += offset; + } else if (!inc && f > F_MIN) { + f -= offset; + } + SetF(f); + redrawScreen = true; +} + +static void UpdateFreqChangeStep(bool inc) { + uint16_t diff = GetScanStep() * 4; + if (inc && settings.frequencyChangeStep < 200000) { + settings.frequencyChangeStep += diff; + } else if (!inc && settings.frequencyChangeStep > 10000) { + settings.frequencyChangeStep -= diff; + } + SYSTEM_DelayMs(100); + redrawScreen = true; +} + +static void ToggleModulation() { + if (settings.modulationType < MOD_USB) { + settings.modulationType++; + } else { + settings.modulationType = MOD_FM; + } + SetModulation(settings.modulationType); + redrawScreen = true; +} + +static void ToggleListeningBW() { + if (settings.listenBw == BK4819_FILTER_BW_NARROWER) { + settings.listenBw = BK4819_FILTER_BW_WIDE; + } else { + settings.listenBw++; + } + redrawScreen = true; +} + +static void ToggleBacklight() { + settings.backlightState = !settings.backlightState; + if (settings.backlightState) { + GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); + } else { + GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); + } +} + +static void ToggleStepsCount() { + if (settings.stepsCount == STEPS_128) { + settings.stepsCount = STEPS_16; + } else { + settings.stepsCount--; + } + settings.frequencyChangeStep = GetBW() >> 1; + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void ResetFreqInput() { + tempFreq = 0; + for (int i = 0; i < 10; ++i) { + freqInputString[i] = '-'; + } +} + +static void FreqInput() { + freqInputIndex = 0; + freqInputDotIndex = 0; + ResetFreqInput(); + SetState(FREQ_INPUT); +} + +static void UpdateFreqInput(KEY_Code_t key) { + if (key != KEY_EXIT && freqInputIndex >= 10) { + return; + } + if (key == KEY_STAR) { + if (freqInputIndex == 0 || freqInputDotIndex) { + return; + } + freqInputDotIndex = freqInputIndex; + } + if (key == KEY_EXIT) { + freqInputIndex--; + } else { + freqInputArr[freqInputIndex++] = key; + } + + ResetFreqInput(); + + uint8_t dotIndex = + freqInputDotIndex == 0 ? freqInputIndex : freqInputDotIndex; + + KEY_Code_t digitKey; + for (int i = 0; i < 10; ++i) { + if (i < freqInputIndex) { + digitKey = freqInputArr[i]; + freqInputString[i] = digitKey <= KEY_9 ? '0' + digitKey : '.'; + } else { + freqInputString[i] = '-'; + } + } + + uint32_t base = 100000; // 1MHz in BK units + for (int i = dotIndex - 1; i >= 0; --i) { + tempFreq += freqInputArr[i] * base; + base *= 10; + } + + base = 10000; // 0.1MHz in BK units + if (dotIndex < freqInputIndex) { + for (int i = dotIndex + 1; i < freqInputIndex; ++i) { + tempFreq += freqInputArr[i] * base; + base /= 10; + } + } + redrawScreen = true; +} + +static void Blacklist() { + rssiHistory[peak.i] = RSSI_MAX_VALUE; + ResetPeak(); + ToggleRX(false); + newScanStart = true; +} + +// Draw things + +// applied x2 to prevent initial rounding +uint8_t Rssi2PX(uint16_t rssi, uint8_t pxMin, uint8_t pxMax) { + const int DB_MIN = settings.dbMin << 1; + const int DB_MAX = settings.dbMax << 1; + const int DB_RANGE = DB_MAX - DB_MIN; + + const uint8_t PX_RANGE = pxMax - pxMin; + + int dbm = clamp(rssi - (160 << 1), DB_MIN, DB_MAX); + + return ((dbm - DB_MIN) * PX_RANGE + DB_RANGE / 2) / DB_RANGE + pxMin; +} + +uint8_t Rssi2Y(uint16_t rssi) { + return DrawingEndY - Rssi2PX(rssi, 0, DrawingEndY); +} + +static void DrawSpectrum() { + for (uint8_t x = 0; x < 128; ++x) { + uint16_t rssi = rssiHistory[x >> settings.stepsCount]; + if (rssi != RSSI_MAX_VALUE) { + DrawHLine(Rssi2Y(rssi), DrawingEndY, x, true); + } + } +} + +static void DrawStatus() { +#ifdef SPECTRUM_EXTRA_VALUES + sprintf(String, "%d/%d P:%d T:%d", settings.dbMin, settings.dbMax, + Rssi2DBm(peak.rssi), Rssi2DBm(settings.rssiTriggerLevel)); +#else + sprintf(String, "%d/%d", settings.dbMin, settings.dbMax); +#endif + GUI_DisplaySmallest(String, 0, 1, true, true); + + for (int i = 0; i < 4; i++) { + BOARD_ADC_GetBatteryInfo(&gBatteryVoltages[i], &gBatteryCurrent); + } + + uint16_t Voltage; + uint8_t v = 0; + + Voltage = (gBatteryVoltages[0] + gBatteryVoltages[1] + gBatteryVoltages[2] + + gBatteryVoltages[3]) / + 4; + + if (gBatteryCalibration[5] < Voltage) { + v = 5; + } else if (gBatteryCalibration[4] < Voltage) { + v = 5; + } else if (gBatteryCalibration[3] < Voltage) { + v = 4; + } else if (gBatteryCalibration[2] < Voltage) { + v = 3; + } else if (gBatteryCalibration[1] < Voltage) { + v = 2; + } else if (gBatteryCalibration[0] < Voltage) { + v = 1; + } + + gStatusLine[127] = 0b01111110; + for (int i = 126; i >= 116; i--) { + gStatusLine[i] = 0b01000010; + } + v <<= 1; + for (int i = 125; i >= 116; i--) { + if (126 - i <= v) { + gStatusLine[i + 2] = 0b01111110; + } + } + gStatusLine[117] = 0b01111110; + gStatusLine[116] = 0b00011000; +} + +static void DrawF(uint32_t f) { + sprintf(String, "%u.%05u", f / 100000, f % 100000); + UI_PrintStringSmall(String, 8, 127, 0); + + sprintf(String, "%s", modulationTypeOptions[settings.modulationType]); + GUI_DisplaySmallest(String, 116, 1, false, true); + sprintf(String, "%s", bwOptions[settings.listenBw]); + GUI_DisplaySmallest(String, 108, 7, false, true); +} + +static void DrawNums() { + + if (currentState == SPECTRUM) { + sprintf(String, "%ux", GetStepsCount()); + GUI_DisplaySmallest(String, 0, 1, false, true); + sprintf(String, "%u.%02uk", GetScanStep() / 100, GetScanStep() % 100); + GUI_DisplaySmallest(String, 0, 7, false, true); + } + + if (IsCenterMode()) { + sprintf(String, "%u.%05u \xB1%u.%02uk", currentFreq / 100000, + currentFreq % 100000, settings.frequencyChangeStep / 100, + settings.frequencyChangeStep % 100); + GUI_DisplaySmallest(String, 36, 49, false, true); + } else { + sprintf(String, "%u.%05u", GetFStart() / 100000, GetFStart() % 100000); + GUI_DisplaySmallest(String, 0, 49, false, true); + + sprintf(String, "\xB1%u.%02uk", settings.frequencyChangeStep / 100, + settings.frequencyChangeStep % 100); + GUI_DisplaySmallest(String, 48, 49, false, true); + + sprintf(String, "%u.%05u", GetFEnd() / 100000, GetFEnd() % 100000); + GUI_DisplaySmallest(String, 93, 49, false, true); + } +} + +static void DrawRssiTriggerLevel() { + if (settings.rssiTriggerLevel == RSSI_MAX_VALUE || monitorMode) + return; + uint8_t y = Rssi2Y(settings.rssiTriggerLevel); + for (uint8_t x = 0; x < 128; x += 2) { + PutPixel(x, y, true); + } +} + +static void DrawTicks() { + uint32_t f = GetFStart() % 100000; + uint32_t step = GetScanStep(); + for (uint8_t i = 0; i < 128; i += (1 << settings.stepsCount), f += step) { + uint8_t barValue = 0b00000001; + (f % 10000) < step && (barValue |= 0b00000010); + (f % 50000) < step && (barValue |= 0b00000100); + (f % 100000) < step && (barValue |= 0b00011000); + + gFrameBuffer[5][i] |= barValue; + } + + // center + if (IsCenterMode()) { + gFrameBuffer[5][62] = 0x80; + gFrameBuffer[5][63] = 0x80; + gFrameBuffer[5][64] = 0xff; + gFrameBuffer[5][65] = 0x80; + gFrameBuffer[5][66] = 0x80; + } else { + gFrameBuffer[5][0] = 0xff; + gFrameBuffer[5][1] = 0x80; + gFrameBuffer[5][2] = 0x80; + gFrameBuffer[5][3] = 0x80; + gFrameBuffer[5][124] = 0x80; + gFrameBuffer[5][125] = 0x80; + gFrameBuffer[5][126] = 0x80; + gFrameBuffer[5][127] = 0xff; + } +} + +static void DrawArrow(uint8_t x) { + for (signed i = -2; i <= 2; ++i) { + signed v = x + i; + if (!(v & 128)) { + gFrameBuffer[5][v] |= (0b01111000 << my_abs(i)) & 0b01111000; + } + } +} + +static void OnKeyDown(uint8_t key) { + switch (key) { + case KEY_3: + UpdateDBMax(true); + break; + case KEY_9: + UpdateDBMax(false); + break; + case KEY_1: + UpdateScanStep(true); + break; + case KEY_7: + UpdateScanStep(false); + break; + case KEY_2: + UpdateFreqChangeStep(true); + break; + case KEY_8: + UpdateFreqChangeStep(false); + break; + case KEY_UP: + UpdateCurrentFreq(true); + break; + case KEY_DOWN: + UpdateCurrentFreq(false); + break; + case KEY_SIDE1: + Blacklist(); + break; + case KEY_STAR: + UpdateRssiTriggerLevel(true); + break; + case KEY_F: + UpdateRssiTriggerLevel(false); + break; + case KEY_5: + FreqInput(); + break; + case KEY_0: + ToggleModulation(); + break; + case KEY_6: + ToggleListeningBW(); + break; + case KEY_4: + ToggleStepsCount(); + break; + case KEY_SIDE2: + ToggleBacklight(); + break; + case KEY_PTT: + SetState(STILL); + TuneToPeak(); + break; + case KEY_MENU: + break; + case KEY_EXIT: + if (menuState) { + menuState = 0; + break; + } + DeInitSpectrum(); + break; + default: + break; + } +} + +static void OnKeyDownFreqInput(uint8_t key) { + switch (key) { + case KEY_0: + case KEY_1: + case KEY_2: + case KEY_3: + case KEY_4: + case KEY_5: + case KEY_6: + case KEY_7: + case KEY_8: + case KEY_9: + case KEY_STAR: + UpdateFreqInput(key); + break; + case KEY_EXIT: + if (freqInputIndex == 0) { + SetState(previousState); + break; + } + UpdateFreqInput(key); + break; + case KEY_MENU: + if (tempFreq < F_MIN || tempFreq > F_MAX) { + break; + } + SetState(previousState); + currentFreq = tempFreq; + if (currentState == SPECTRUM) { + ResetBlacklist(); + RelaunchScan(); + } else { + SetF(currentFreq); + } + break; + default: + break; + } +} + +void OnKeyDownStill(KEY_Code_t key) { + switch (key) { + case KEY_3: + UpdateDBMax(true); + break; + case KEY_9: + UpdateDBMax(false); + break; + case KEY_UP: + if (menuState) { + SetRegMenuValue(menuState, true); + break; + } + UpdateCurrentFreqStill(true); + break; + case KEY_DOWN: + if (menuState) { + SetRegMenuValue(menuState, false); + break; + } + UpdateCurrentFreqStill(false); + break; + case KEY_STAR: + UpdateRssiTriggerLevel(true); + break; + case KEY_F: + UpdateRssiTriggerLevel(false); + break; + case KEY_5: + FreqInput(); + break; + case KEY_0: + ToggleModulation(); + break; + case KEY_6: + ToggleListeningBW(); + break; + case KEY_SIDE1: + monitorMode = !monitorMode; + break; + case KEY_SIDE2: + ToggleBacklight(); + break; + case KEY_PTT: + // TODO: start transmit + /* BK4819_ToggleGpioOut(BK4819_GPIO0_PIN28_GREEN, false); + BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true); */ + break; + case KEY_MENU: + if (menuState == ARRAY_SIZE(registerSpecs) - 1) { + menuState = 1; + } else { + menuState++; + } + redrawScreen = true; + break; + case KEY_EXIT: + if (!menuState) { + SetState(SPECTRUM); + monitorMode = false; + RelaunchScan(); + break; + } + menuState = 0; + break; + default: + break; + } +} + +static void RenderFreqInput() { + UI_PrintString(freqInputString, 2, 127, 0, 8); +} + +static void RenderStatus() { + memset(gStatusLine, 0, sizeof(gStatusLine)); + DrawStatus(); + ST7565_BlitStatusLine(); +} + +static void RenderSpectrum() { + DrawTicks(); + DrawArrow(peak.i << settings.stepsCount); + DrawSpectrum(); + DrawRssiTriggerLevel(); + DrawF(peak.f); + DrawNums(); +} + +static void RenderStill() { + DrawF(fMeasure); + + const uint8_t METER_PAD_LEFT = 3; + + for (int i = 0; i < 121; i++) { + if (i % 10 == 0) { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b01110000; + } else if (i % 5 == 0) { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b00110000; + } else { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b00010000; + } + } + + uint8_t x = Rssi2PX(scanInfo.rssi, 0, 121); + for (int i = 0; i < x; ++i) { + if (i % 5) { + gFrameBuffer[2][i + METER_PAD_LEFT] |= 0b00000111; + } + } + + int dbm = Rssi2DBm(scanInfo.rssi); + uint8_t s = DBm2S(dbm); + sprintf(String, "S: %u", s); + GUI_DisplaySmallest(String, 4, 25, false, true); + sprintf(String, "%d dBm", dbm); + GUI_DisplaySmallest(String, 28, 25, false, true); + + if (!monitorMode) { + uint8_t x = Rssi2PX(settings.rssiTriggerLevel, 0, 121); + gFrameBuffer[2][METER_PAD_LEFT + x] = 0b11111111; + } + + const uint8_t PAD_LEFT = 4; + const uint8_t CELL_WIDTH = 30; + uint8_t offset = PAD_LEFT; + uint8_t row = 4; + + for (int i = 0, idx = 1; idx <= 4; ++i, ++idx) { + if (idx == 5) { + row += 2; + i = 0; + } + offset = PAD_LEFT + i * CELL_WIDTH; + if (menuState == idx) { + for (int j = 0; j < CELL_WIDTH; ++j) { + gFrameBuffer[row][j + offset] = 0xFF; + gFrameBuffer[row + 1][j + offset] = 0xFF; + } + } + sprintf(String, "%s", registerSpecs[idx].name); + GUI_DisplaySmallest(String, offset + 2, row * 8 + 2, false, + menuState != idx); + sprintf(String, "%u", GetRegMenuValue(idx)); + GUI_DisplaySmallest(String, offset + 2, (row + 1) * 8 + 1, false, + menuState != idx); + } +} + +static void Render() { + memset(gFrameBuffer, 0, sizeof(gFrameBuffer)); + + switch (currentState) { + case SPECTRUM: + RenderSpectrum(); + break; + case FREQ_INPUT: + RenderFreqInput(); + break; + case STILL: + RenderStill(); + break; + } + + ST7565_BlitFullScreen(); +} + +bool HandleUserInput() { + kbd.prev = kbd.current; + kbd.current = GetKey(); + + if (kbd.current == KEY_INVALID) { + kbd.counter = 0; + return true; + } + + if (kbd.current == kbd.prev && kbd.counter <= 16) { + kbd.counter++; + SYSTEM_DelayMs(20); + } + + if (kbd.counter == 3 || kbd.counter > 16) { + switch (currentState) { + case SPECTRUM: + OnKeyDown(kbd.current); + break; + case FREQ_INPUT: + OnKeyDownFreqInput(kbd.current); + break; + case STILL: + OnKeyDownStill(kbd.current); + break; + } + } + + return true; +} + +static void Scan() { + if (rssiHistory[scanInfo.i] != RSSI_MAX_VALUE) { + SetF(scanInfo.f); + Measure(); + UpdateScanInfo(); + } +} + +static void NextScanStep() { + ++peak.t; + ++scanInfo.i; + scanInfo.f += scanInfo.scanStep; +} + +static void UpdateScan() { + Scan(); + + if (scanInfo.i < scanInfo.measurementsCount) { + NextScanStep(); + return; + } + + redrawScreen = true; + preventKeypress = false; + + UpdatePeakInfo(); + if (IsPeakOverLevel()) { + ToggleRX(true); + TuneToPeak(); + return; + } + + newScanStart = true; +} + +static void UpdateStill() { + Measure(); + redrawScreen = true; + preventKeypress = false; + + peak.rssi = scanInfo.rssi; + AutoTriggerLevel(); + + ToggleRX(IsPeakOverLevel() || monitorMode); +} + +static void UpdateListening() { + preventKeypress = false; + if (currentState == STILL) { + listenT = 0; + } + if (listenT) { + listenT--; + SYSTEM_DelayMs(1); + return; + } + + if (currentState == SPECTRUM) { + BK4819_WriteRegister(0x43, GetBWRegValueForScan()); + Measure(); + BK4819_WriteRegister(0x43, listenBWRegValues[settings.listenBw]); + } else { + Measure(); + } + + peak.rssi = scanInfo.rssi; + redrawScreen = true; + + if (IsPeakOverLevel() || monitorMode) { + listenT = 1000; + return; + } + + ToggleRX(false); + newScanStart = true; +} + +static void Tick() { + if (!preventKeypress) { + HandleUserInput(); + } + if (newScanStart) { + InitScan(); + newScanStart = false; + } + if (isListening && currentState != FREQ_INPUT) { + UpdateListening(); + } else { + if (currentState == SPECTRUM) { + UpdateScan(); + } else if (currentState == STILL) { + UpdateStill(); + } + } + if (redrawStatus || ++statuslineUpdateTimer > 4096) { + RenderStatus(); + redrawStatus = false; + statuslineUpdateTimer = 0; + } + if (redrawScreen) { + Render(); + redrawScreen = false; + } +} + +void APP_RunSpectrum() { + // TX here coz it always? set to active VFO + currentFreq = initialFreq = + gEeprom.VfoInfo[gEeprom.TX_VFO].pRX->Frequency; + + BackupRegisters(); + + isListening = true; // to turn off RX later + redrawStatus = true; + redrawScreen = false; // we will wait until scan done + newScanStart = true; + + ToggleRX(true), ToggleRX(false); // hack to prevent noise when squelch off + SetModulation(settings.modulationType = MOD_FM); + BK4819_SetFilterBandwidth(settings.listenBw = BK4819_FILTER_BW_WIDE, false); + + RelaunchScan(); + + for (int i = 0; i < 128; ++i) { + rssiHistory[i] = 0; + } + + isInitialized = true; + + while (isInitialized) { + Tick(); + } +} diff --git a/app/spectrum.h b/app/spectrum.h new file mode 100644 index 0000000..61ac358 --- /dev/null +++ b/app/spectrum.h @@ -0,0 +1,171 @@ +/* Copyright 2023 fagci + * https://github.com/fagci + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SPECTRUM_H +#define SPECTRUM_H + +#include "../bitmaps.h" +#include "../board.h" +#include "../bsp/dp32g030/gpio.h" +#include "../driver/bk4819-regs.h" +#include "../driver/bk4819.h" +#include "../driver/gpio.h" +#include "../driver/keyboard.h" +#include "../driver/st7565.h" +#include "../driver/system.h" +#include "../driver/systick.h" +#include "../external/printf/printf.h" +#include "../font.h" +#include "../frequencies.h" +#include "../helper/battery.h" +#include "../misc.h" +#include "../radio.h" +#include "../settings.h" +#include "../ui/helper.h" +#include +#include +#include + +static const uint8_t DrawingEndY = 40; + +static const uint8_t U8RssiMap[] = { + 121, 115, 109, 103, 97, 91, 85, 79, 73, 63, +}; + +static const uint16_t scanStepValues[] = { + 1, 10, 50, 100, + + 250, 500, 625, 833, 1000, 1250, 2500, 10000, +}; + +static const uint16_t scanStepBWRegValues[] = { + // RX RXw TX BW + // 0b0 000 000 001 01 1000 + // 1 + 0b0000000001011000, // 6.25 + // 10 + 0b0000000001011000, // 6.25 + // 50 + 0b0000000001011000, // 6.25 + // 100 + 0b0000000001011000, // 6.25 + // 250 + 0b0000000001011000, // 6.25 + // 500 + 0b0010010001011000, // 6.25 + // 625 + 0b0100100001011000, // 6.25 + // 833 + 0b0110110001001000, // 6.25 + // 1000 + 0b0110110001001000, // 6.25 + // 1250 + 0b0111111100001000, // 6.25 + // 2500 + 0b0011011000101000, // 25 + // 10000 + 0b0011011000101000, // 25 +}; + +static const uint16_t listenBWRegValues[] = { + 0b0011011000101000, // 25 + 0b0111111100001000, // 12.5 + 0b0100100001011000, // 6.25 +}; + +typedef enum State { + SPECTRUM, + FREQ_INPUT, + STILL, +} State; + +typedef enum StepsCount { + STEPS_128, + STEPS_64, + STEPS_32, + STEPS_16, +} StepsCount; + +typedef enum ModulationType { + MOD_FM, + MOD_AM, + MOD_USB, +} ModulationType; + +typedef enum ScanStep { + S_STEP_0_01kHz, + S_STEP_0_1kHz, + S_STEP_0_5kHz, + S_STEP_1_0kHz, + + S_STEP_2_5kHz, + S_STEP_5_0kHz, + S_STEP_6_25kHz, + S_STEP_8_33kHz, + S_STEP_10_0kHz, + S_STEP_12_5kHz, + S_STEP_25_0kHz, + S_STEP_100_0kHz, +} ScanStep; + +typedef struct SpectrumSettings { + uint32_t frequencyChangeStep; + StepsCount stepsCount; + ScanStep scanStepIndex; + uint16_t scanDelay; + uint16_t rssiTriggerLevel; + BK4819_FilterBandwidth_t bw; + BK4819_FilterBandwidth_t listenBw; + int dbMin; + int dbMax; + ModulationType modulationType; + bool backlightState; +} SpectrumSettings; + +typedef struct KeyboardState { + KEY_Code_t current; + KEY_Code_t prev; + uint8_t counter; +} KeyboardState; + +typedef struct ScanInfo { + uint16_t rssi, rssiMin, rssiMax; + uint8_t i, iPeak; + uint32_t f, fPeak; + uint16_t scanStep; + uint8_t measurementsCount; +} ScanInfo; + +typedef struct RegisterSpec { + char *name; + uint8_t num; + uint8_t offset; + uint16_t maxValue; + uint16_t inc; +} RegisterSpec; + +typedef struct PeakInfo { + uint16_t t; + uint16_t rssi; + uint32_t f; + uint8_t i; +} PeakInfo; + +void APP_RunSpectrum(void); + +#endif /* ifndef SPECTRUM_H */ + +// vim: ft=c diff --git a/compile-with-docker.bat b/compile-with-docker.bat new file mode 100644 index 0000000..42adad1 --- /dev/null +++ b/compile-with-docker.bat @@ -0,0 +1,4 @@ +@echo off +docker build -t uvk5 . +docker run -v %CD%\compiled-firmware:/app/compiled-firmware uvk5 /bin/bash -c "cd /app && make clean && make && cp firmware* compiled-firmware/" +pause \ No newline at end of file diff --git a/compile-with-docker.sh b/compile-with-docker.sh new file mode 100644 index 0000000..fb5dd01 --- /dev/null +++ b/compile-with-docker.sh @@ -0,0 +1,3 @@ +#!/bin/sh +docker build -t uvk5 . +docker run -v $(PWD)/compiled-firmware:/app/compiled-firmware uvk5 /bin/bash -c "cd /app && make && cp firmware* compiled-firmware/" \ No newline at end of file diff --git a/driver/bk4819.c b/driver/bk4819.c index d485c96..0d921d7 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -1004,6 +1004,42 @@ void BK4819_PlayTone(uint16_t Frequency, bool bTuningGainSwitch) BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); } +void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level, const bool play_speaker) +{ + BK4819_EnterTxMute(); + + if (play_speaker) + { + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + BK4819_SetAF(BK4819_AF_BEEP); + } + else + BK4819_SetAF(BK4819_AF_MUTE); + + // level 0 ~ 127 +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | ((level & 0x7f) << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + + BK4819_EnableTXLink(); + SYSTEM_DelayMs(50); + + BK4819_WriteRegister(BK4819_REG_71, scale_freq(tone_Hz)); + + BK4819_ExitTxMute(); + SYSTEM_DelayMs(delay); + BK4819_EnterTxMute(); + + if (play_speaker) + { + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + BK4819_SetAF(BK4819_AF_MUTE); + } + + BK4819_WriteRegister(BK4819_REG_70, 0x0000); + BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); +} + void BK4819_EnterTxMute(void) { BK4819_WriteRegister(BK4819_REG_50, 0xBB20); @@ -1287,7 +1323,7 @@ void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency) // set the tone amplitude // // BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); - BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (50u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); @@ -1631,7 +1667,9 @@ void BK4819_PlayRoger(void) BK4819_EnterTxMute(); BK4819_SetAF(BK4819_AF_MUTE); - BK4819_WriteRegister(BK4819_REG_70, 0xE000); // 1110 0000 0000 0000 + +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); BK4819_EnableTXLink(); SYSTEM_DelayMs(50); diff --git a/driver/bk4819.h b/driver/bk4819.h index 352bbf5..736b171 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -102,6 +102,7 @@ void BK4819_DisableVox(void); void BK4819_DisableDTMF(void); void BK4819_EnableDTMF(void); void BK4819_PlayTone(uint16_t Frequency, bool bTuningGainSwitch); +void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level, const bool play_speaker); void BK4819_EnterTxMute(void); void BK4819_ExitTxMute(void); void BK4819_Sleep(void); diff --git a/firmware.bin b/firmware.bin index 985866918bec3ec27c3b1936c39f4f90b24f1fe8..01983d508d701be2601e71e434768475279e7890 100644 GIT binary patch delta 36322 zcmaE|gn7pz<_R`Tx}g*8E*XgbX86GQoAZPIuYb=!*fS{1a$>mD5mMk@;I5#^;?3$6 zkjdf1bb-;DLHp;$0`~)MlVi9XG_L#?*vr7d=J5aT|NjgP+zzZ>Y@Wgy+z!GC0!l32 zGcyI9{#=YmC~%+b!uWvc1>0mbrYaD%h-s0)3pNG?hOIUl3^y|$aDPzxIXQ$`jnRK{ zHS<}QD?1q&ery%==3x+JXqTGlBzlqG(}IEf!_gnSo*vF@3?R1aPYwn}2JR2Le>BTQ zIR!f=IDeCHkZh3ru@@w};m7127BjIaKZHF!oY@%^7`Q)({N!LTWZ?eL^<(l4784$j z9gfTl3`aN_7$(PA=`iw5?zU2{XZ5-$t6_AeUa;cLa|VS6&lwf&Jr`qQPyo5MV5=wt zgC^4j1`W=O1$!AZ{#+3CmSQk45-ea;GBlPd5cE-Iur!vgVAPhlsLWtxEL9OC87w1k z;kXvVT?QqvNWp|n3`&9w|GzK(&#c7eZEd1ZAXRYV`EjN9&zY1BO_X^HE!U;^cL#224l(On$(s#I)(pW)?OVMi#CQ6aG#1Veey- z`#bp#yBE`sKa({$oS5oM}AEs8WkfRyJ1Zv$>;Z(?Ma>CB+Rc!Akjk|AVrG4EEU%-@r>_=*_AHqYgo%gAK*YqO2OHD)HI zACpByj9557{Qf`LOT>vWd~&adHDmbXlOoPcS9VV36Sd-xFcNOy%4l-tN>F0p^o*Ju zE*dGp`61~4|L?#47VQ17l{u4zp>=~q#=q}-{!Kn1s=~DL-{g0qJ}jIcUjCnKC)T3G z`C;k*_Dx(0xeT0&8P1#^=KXKp#HCQiz^Pc^%rKer!?gdCpNLf`fkUwVKLaQmfYLP! zgNqU$1A`*hhu9w)4FA4A{5!c$JVQ?B-~aCq{xEv{|Gxic!CnD%1_tx397_KcGu*g7 zi2s<(B4Gf^&Snx$>>vX_Y@Il{Uc#QSY4U!FbZ*WME&ns!(mnov_nd4gDbHv*Ia1O% ze)nH(hJ?Z@V~GwfMa~af{%SKUD6E0<*8Y7^_*OxYfr0V=ckcfjN`?#y44fZq|7$bU zK~>E8tIeQL&;aF41({XQY%E=&$YATSxZwZy50hU@8rNU@2h+>(U(Z{LA=*f&La9KC zA;w6kBB?-%A=XH!Vo`w=nN# zq)px^CCt_Qk9EU`y$9T0uuVQEWy9z&nOoYG(ROm6w4`zRzpu*Dj1MH3R{sC4^^e(` zY2^cn|KC;r-31pv5&R4cAGWq`U}F$rV4Td(cwB?wM*ZZu(&{|S|B@@2RtXm*S2HS3 zz922erNJQ0DD3d4p2J}B2WdIAhE2lGN(|aYLKQ&_!p=;qgbS4!_>@4ULo|c1gA#+j zkx&Jf!(<&9B}R|Q{xYK0m;Zts@&oLUm47*u7!;XSaDKS`SCN59$;J@GKJ=H>n`z|_ ziT~ec{ssAmaW&A%M|{7*Z#Rg;oo8HHHzwh!t8FXbXXe<2tF7@-5LIcCU z?;HN?f`1k$qkM#=w*uVe!@$dW5 zACrCLqL`Nbn7l$xj;Z~}i2*4?`QUA@w$}&VjXb%`}}|#!&`<2EDXO`1-1(L zfQssLW2pjVh74oripfqa7a^tTWG9ge3Jm;842qcsoF6>@C^0Z7XBY_=C^1xkNdqI{ z0%k8m6X60zW90&Yy`aJgREl$WFeoxJR2mCxl`LRps1h>x1P$ZjJ@BK3-5}P-9?Fsy41NlPWN-;Ly&y zIoE5R_dNgkp3)WUD;OqOG5q_!=$CN?`wHgCoFDH0WMyDq!TI5K{ZHoEObijy)4bVN zN=Ps&|NZ{sKdYS5g~{H%zMw3}pe=PlnSoI$)>x|G|M!^x|G#hf&7^E(^14{Lf*BA^K@QQn+2~c{U5n(5_+RWR%qloP z%>BvEP!Dp&%%A1nObj2SB_!Baf}F7ZKZ6GU1!aa;6kj!lDl_8>Ms4|`IPiEBCx%j?@L0|JC#9$6>m77Wo zf!@KMCC1VfnMMo~*;jab{`>y_C&U`tpDYtV)>?wCVVPZH@J*^g(wYHeQRsgL4b}@x z%BxHMe?Rz-d3JV*g`Y74B)S+b$UHaoQLSOnt!KC({@k3Q%G|nwO`G9{;BzzYt%W7V zhF%un0Q>j-)KB&m_7$8TIDT47F;A{BW48V*!M=iJGV3(X5C48JDl;*#uVk6=_q*JG z1`URbAD^i+s4*}pi0M%E=|7-etzp6-?S37nrqKE--2fT$EE*E@ycFBAJyqyl)k= zdC#t7&}O)}>luR*i}$VKZO>H8pB8_HHfm-tFeqrSGbqHcGbkvqGbp5=V_=xV0BKzr zurny+onv4qJjcLLevW~mzF@0>s)Ubn#%gEf1aTh*Rb_@KW7z^_26JQSiV9N(ZH5bZ zwnE-_n;BH&WWJWqllfYHPlm<#ZaJU#*YX>UtDHD5I!MTNHEfFNYIS0|(d5K_NsHlD zqq&J}6v32Fm*aY!0Bj3UVB%7W=W)#E*x;xSqklSdc-wfO^COBF1ZyVzR~&b`{Mrs%4}YcmYXtznF%O5 zR0|5g1s%u{3<7Kp-?z&7u`(1_@GvlFPfn57=KZ6{puzC}`?){G6%5*wXUQwnb9l2T zX1E16{Qth~&-cBI%2{sFPQneJo`cHDkX;N6tIz)be`nYK{|sCCJ$pCsdutgouV9+Y z`N8-nuQ$_5DFzOsOZ7}ExJnt6yh>+fX()0`x|PK_Nh&)!n`;u|WbVoTzt8#4yMbXZ z$ShG-6$Vhee%~75&B|bGEL{;^@589gbb-~HQJd+8r1IkA?|T<#gW`(OSVFtx#^U63 zg@4~K{K{ikEO~&{Mrn53L0%39E(Qi|#=FrHQ38u4XS7e=#4vfW%xuZq{S!BxmRcy= zDQTyEB3^pa3@5e=r`tiMF+Tdw?;DcN8TI{IF?ai{ zgf;~T2x|r1WmbxEHu3C|m{bw8iNi=pigA(@1EZGd4Mqh9E!>oR}}@c&}oZEfJ9* zr@WRSRdRI-v#PqchSyC=?+jsuSZ7u5=-5!n%nD8>N#}px&-`LiejT<*M$kB#VUpzR zO_$pj$xf4Gm~~m|GuUAa7uxHeL)_N>=g?-p5$qMsa9KjW|KImbznK;O zeV6z>N3lSGlj+}gn_moy1`7YaTl_Lm0F}cgzZ#UiJfoTXo&QS|Dpd0P`>y@#m%;&t zf8X1G3Md<8xOfOV8`mfN``+-ALx6K^GWZh`SQ-9(@BD4;@$Y-V z&wt-*ew%pw`=0&t-}n08W*+~(r~Ul*z38{T$G`81KmUC%{cWT0OIbi=HbaE-zwZ%0 z|9wySt>N+Sd+<-=3~i6a&c+GJYJ?^?f4C~SWI@4MRXUkVNk>z;#Jm<$S_*Z}28MkfXa1wRIckX@6HY3J~1 z|9`H)p#*AW|NDOK?_>uZH>Op8CwJ%sF*W?1d`BmUDeUiL16?yAtG|E0oBVzWS8Mcl za)oYz*v~&KN{S5S9vmMm{(+1s_4xPw{h!JIbPbrU{h4f_CnDwlOG}wSgW*DQg%*R5 zLWvQhVup)w!Qb!Bzb41&B{B8>nS4mkratcvhoS<*-|z2!awsv%8Tm6@UfvUL!R-^6DaFGeBX7bEkY|AS>}f>oR0CWEpOL$r}_L2`u=1EY1Mlec4xk#NCc zI4{;nxZp9I7iT0~pj-)484uD|X~YmI*X@`9(gkHFg7j1}DjG3JFeDjqI0zINFhp^1 zIV2k}6-cp9;%C-ksK3Z)Wyp|X$W>s-FpDkKa5m>9{xmbL0^o`d8?Gsw zS5oz4VEp&J@VAQ3X9ZP;08;@aO$Lxi#&1wln8WCD`7DN25sXIq7Z{Z}OdgkWZuqcw znsPM5hG(EyUGv9+LCllm!`?sd!2BhDEEt46IX-OtQ~v`jFz1g2gMcT;hqZs0pMx|^ z`D4Mr>&fw9=^tJ&zvqty1D7Yqhq-@jpEDY>XrH)v?zsd%0|RJy22{q^oMT{UILE-y zc8-Ce=NtpWq;sI&s=3cM1yzOwQw}9f1_#D}--UjIMng0iG7LCA1pEQBtr-doI6inm zI1CjA93Nc%d{fZ!0i{BamY=^A890>GJva>iegFJRk>QsDkCK2PNaoG2$t*?&OqYL6 zHZ$^Ia``v8!AL<7R272io)23$_-yb~u5aI9njyi!w2FD9J_FP&h}hLdBBOQmN0z4V+>nbFd^FwOhqrpm$qV^4+?QGdT%{G0s7I8I6a zw<3c<2A7hWp@{*<2iD(i-bNWWE0wd%O>S&rR{r;W$DheLCK`-slc$K|NJ}ojHyih%zvP^P=>Kofg%I5vI4^; zi3+m-!w>`G0*(**zy2%bcuN)Rc$Vd@l%;3f_B_K|DNEnD>A7;2k?HGaMhvM&%2}WU zE?mH*lq`FzoXuqFGX^E)EJ21FoBn;T{0$L(`Ajv7L+QWb2^E$V93RAg%~w}p4EKI4 zVXmz^In~TE$k$tl@v+40O_QCtFME4GmeAK`zv<=uSb|-f`KAH`%gTS>*ZlmT%we)* zQ#9ior{fnHbQvy&JY!HftLWtQA^YF={GX2gCgzOizh-MBtVsCtJ^26R4`w3uS-)9z z-dwbJX2cK!b>{JB#thNMyPg>_#2I~kZp098^y#?~LxNEi$V1?q3d)^7pBXVE89ja8 zq_9s>HLHOk!?}}z{lowN3Qg-3_9?>n-~aDZOlVT@=w!%nX8-Wv|AMBYP}!$VAob5p z|0^;mH2+eN@D?ykZU&`Jr=KhbDt`mTeMbFktxe z-S|I)hWv%ECJKz8T-C7Y@An)3H5quk4HyqdFex=`;xPRC{rvyQW!7qwf0)}aDV&^a zW}(CsT|GI*LWXhP<>^0pi)YUdxal!7Fc|&$|NkZvXsnorflK|YtR({* z1N(<7|Ew9Doxe%x6=*Xs+RkzMe33y}x#-7U7v&FIot-;3FeLg zY<5;mTmMXUvQuH&@Mm&{or1-LzfAK5l=hf^mt;`1U||2i^#7QSzzqe4uLcZ^97>i9 zpm19F*OI~BTLBzS9EKo~8Gk1quv218nEco-l&S3RWGj0U3n6yKf*r;|{0`5L>oniA zW>{dp#8|S!B7;Hc&v&^$773Nlxe^#=ErwR}{~vs1b#UTmxUzHdGW(4B7vS*(n8O9V zL8H}D48_KUMgj!^1rh~}O1$1tB?azm8XOm;7?>47;(-OMO2x)f1s|TXdrhoo&}6wd zsZx@m(6A%q)ALJ}KS8}WMg|2?Aqz71$JR#wMxW|>25spJ4PILmg&8~Qg zCD}`a89<%H$qf!7_2r-{ih)rH)bIcEeaauDoMJy=NIOrv_M$RF5~#(eU2!4XmsvrZ zp#scfxG?WQmS=EgkDGKxrso`&9#@8&Qy*k__PAwuMoJ{QGTi8UpvVwy$Wg(n5q*RG z1M?r|%%a)}GZH7gT zJkVySgjjg7<;Q|-0dQz%>w;J%^E z5CgV~<$^Lp0+_Y^BC~?_0~=2pu!;>gtv#b9tUbG(KHpGgh&O)w+|ttuEVKBgrDwE+ zr6>CXQ%?)9$gG>@p3xHKp50DUZ{B%s;MwD*2M(9Mn}(jz5{91LPMtUZfB*ZBL76E= z;dAl7?_d7>*emTR4c5$Xqx!kL=e6hJp5jn`@pEa^yODVz_G$o*2!)VQ@&30pv_hPSd zW9f?MdIm=0-~vWvGZWlNmX^!_KhNvb6<(Xa)CYKA98$LXr=FOmb ztDZ|a%6W=6quQ(nC5AAgxrK8J#0vg?=lJpWyU7nt1`UQk-&y`EGng666(m784PNZovjm;84MYsj13s%3jTaQ_K$hCvqGet zx7{%275 z^IiRaokEi5pYJ~Z{(L|1-&`TV^Urs;e?bcIo`1eO{R4H8{(QIl7vpK5@aMbLzi5v? z->3hDn7RBPqap{xpYM(T!ae?c@A<3Ekd+xad990dg7iNhk3Zil{$^zgR5EI$TxgbK z)Q-6kSo#0^o?m~y&-%xx$g1$?d(=M@zt7c7+6)&DK48|4yuhfoD#PcROj9Op zt_%9!wqBs2GKNW73^tyuEB<_6_=|NdgYxI%$p)@EJf?q*8JdhGD*k-0`ae0tRl)E1 ze*q=y3A=tLPy6#V&a_uuycgJPh)T>d*I}f3u#md5c4B z5b|0B?}|F`GBdnjn|#gHsvguV2aPy^8fS&)7#NIe7_>Pq8klNVuxPVfU{VtIo$SnT zq4GJ%QOY@>A#xUNwu{2v42n(0QWZiTY#+Y-SI*HgmZ)IR5WS$xkO|FdT+sMqgfHPq|7M70V3Fj2R0g3%bCu3JO6-CI$x3oE)foJ7e-+cm8?_Mh1mC?+;t=WVdfn zVql#hpunJ7?Wt`fR>74KWel27Ah`15_`pJKUrju(^*!Fj9L+gSmWyL|p= zGJsO@tUn!!W(t44yZrg3uF1ft@aOx)Ka6Vo8F&=_e1G(tmBG}(z={0=gCdi{pYKM0 zEExWL@BjTl{kbNCy~3aGT7MF}YZc6lB`f5WB^~0tC7u6#SNNlxDW3sS`25f0I3JCA zwm%CLIhhQdeHH$EXZW*3k!AKtMoDKsg+Jea{$`%-uOP|9G#jMx({F~^6$+9}j9}jD z-=Lyt|DQkKPyDf9P-pn_J?xJL1Eb=f?*@O2%smvWJ^y^a`P;gJN7clSL0kEvg?Eav zM1_TSWVMBNbTxxE(?#V>iOR@I#(E7Ga3;36@&9}Nk3Zji{}}ozGeFX{^95sQy0(L+ zYmkNi{xB$5S2R1ZTm)60jM@x0B^Zp&Kn?*7vFlv;^Zm!4Ki~iSX;7ACly!!L#FXFv zzo-3Roz0-lbb&$P|M!AF>>EDp75Dh_-O2C|yMmbKpYP4T#e5Gv7xVUH2rxbo_2;|l zA9e)+&p+SGe+&6;d;aHp`JaQ&|9n6F=NhO1!oZ*aifs-L22g%J<*Swm%ExC|K+RQg zU&t55+KW9~b^L$l3lQN?g(*;IlCN1`htIHXcTqhU%tJjNPP|lcDzgqIR7RQa* z6{|xTmCU?n6`O%guz4U+$)L=rD8=ym`}BYRH5f0f2z~b)l<^rZG(4a79MpSfR5Udb zF3|KcGr3qST(Y8mb$LLEVnN6A-`{oqv_5CnX1Lh&Trs1g{yuNp` zGs6@Zet)n2tB?Sq9sVgW{P|w}4-|#%e>s&{y`vf#l%$Fom9tBb$FgVCGcqWA*lO$F zy5Toy?0zz%w(gDJ5>m34>X|0ZlI1YIU4ONnak81u;u_}3OtTrZIW9b_VbD{&z^LbY zfm!)+Npj}m5(ZU1MLlmVhR85RWri8ePFao%Y8YlaNL<=E@ZngD9z{)WcdAE_b-FSvI~sLk4qS5FD^Ov{87nkP@An@0Ti5|7JR{0J_c5X z|KB(MU{K`u7Vx>1J-Pm23BTv!lD^{O+I%+{bQvxvm;L{q`QJ!6xsgGc(@VKXxHL)T za=CJG!CnSk#tXt3j}!lYH~;?*991xLLDAIX_G7EIk066GLz0`8uYvKqO6iLAu?$*F z7wZ``6p*G+_>@$XVBl92PB<-~PE&Rfpw zu*761)|-sV8VSmU_h6GMCdvgjo`WVILCbD#Jg<-tW&lNj+~5BiXD+lmow~rNv|3W4 zP{4ad=&WLXP$p0`zE!^eIj9_J_|K@!pvdWEVG`WP$|WYs4FY>XbrQH$ z%*dedeQSn~G6QHH7Ss%=fAHr!Xd?8__ne=Q!RkNXC;a&H-QZWe$M5g2|Hpe4D*XB0 z{^QU0-#=shJ$`?G^#9NIcR!=S!ZknseE;w>+~fE6>;M0Je+(W({`0-?hk-(f=b!Jn zKSF%9;q4SONC?a#>} zAqw?>zDNE7HL{{iL5(a1W$gk`Ww+sHai(-7Xa@Ij9fLOGg}>h|eu6x^{`dF2Oxmk1 zf|{9cencqfdj9z?_@hWc$Mes3-X9MX3l#o*=lpR&kwG<9fs^sicjh0F3TmFezyJTA zp%|&~`}^A#F8Nb9}-(jLFRTSE=H{vR}!{`>po{|t%|3JK3&uuZlL6{`mY|7uPK z@N^HTqDXiJ8Eidl&cKjrz`&5vz`zh1%D}KHl!3uu6$1lk&;v9op25Mups=5bfkBB; zL0~J3cT_Qpx0$g-!T;}izdGD2e+jWUZFD zT_3$kx?V!mBTlZ(iRs2HC&^okN(u~0NtZXJ7%*!}T+GlCy31IQY0apRVv=3_|2xxf zr3w*cMlFU5T*iz_*^M0DQ6<-(OEElo&ZNXtz-ayIIiu3A=b*9=l)3)?|6dPs1fvqC zx4_n@Vh(RkA5e#SvCNI~f8Xc)`~Q8@e@4sorMLmcPKMCwqr!J-?C#L!>9$hd+NNuM5)& z230$tO1n<^+j9m@@rw-F-!FK2Gpb237#JHGi4{l|xO=47ZeykYY-Tf9K9`! zr3#poLDQZL+V3vjdv4`ho-;E%d(NRDd{Kcx-AgEAVz*Y7hjW93hSvlq z_B#w347b!h7?gg0XZ)p+w0H9CaK-xH-?M)*Xso=*I8!5wi-Bo&hZFN{CWaYK40oj% zmPm+tO>ttmu+WL=&KxJcyW9-gNmHIPDl2I`yr`MQA$eevBE#?R3xECBIC-(-xiZ6h zcpS_)#{dH0DHTxgg7Q14{rUC5SJrP2zOw%R|G%C=v0$rgy|5DUK zj%)JXkn)~UDJj8KC>6q_`0xAD-=NCs=1)i!CE|5E^Gdb?gL1;}?@hlzmD%23@1FDf zzR6x(e_WgQCa97t1B-9`#o?{QFtc(&J)`oU@BM!tJpc3k&2L6!GgIw?ThBpp4RTmL z$Yr3&|FAW}hn)e`FO{ok-N2ydbwL?Cjl`lYZ~@eR=Do?N!196T2ZOS|@9F}`ta{WY z(B#|S@4tV7Y8EeV27QeSj0!VlS&dJW-zxvF$f5K^jcEnjhZVog7!4ShR{r^(^P9uW z(R z_ z{;=)8s`veH27Sp3t80#H3*S)jW>#c2W}JMZp3#8qgYj?1*^CPHH_I&<{(m?9!>BCh zmE9;-YG%Uy;Qx2y|I?m>`nUhTYy1)SHZv(VmM;J`@w%TgXoy?{87Fu{z>nGN1K23O z-yh5Q6uG<^6(Ym_f9LBoqc-=&R3BxAdT@7){{m=wQ1%~# za=nRi0f@c%Pj)2}s0FPQ>n&CAWAFd(9e<*|4Zu~=iwj)J!OoFh!UfNs^C?I8h539A zt7p(=zwrP2o`1>=`X+kD@&)Pz_nvD*7aTBL=zCCH4O%(T_#ms2QH%YehZku5lD?5} zfu4zS!TIORT1jw+FIp%y81Xpg%c2TA^NHhEtH^rxFc@5W`FZwhw*3 zKqg677@8;-Fe-m8W>DT-0`so4w^RXWR4v1(!c@3GyP)Jblk(@1htHX`7%zx;2^Scc zFe=Y@F6hOiAY71CBj9ajI;&iXfl=AWNVvdDmd#MR;6nN7a$}R%&p|5~L8kt=P|u{q z>Md39<@w+5^*wZu{3o0i;SqB!G3El-;qp}$l7>%Nmr5G%X1PY?EV?1Mh z0-X;!#&|7slDr|wAi`j2$Wc&ZqS(Qp$#FrkgVC~clVSsC-Jc*sogqho07HcVV+DgI z^99BVM$40%80!lnvpdY@nzD6?LHK`mnWq0~-V5T1E}eo7z5tN}$CiDTe9{ zY#*$CX1kS|Gbvdz+>mAaVEmIskM*WAmjXy2!-egG_D?oFwwsC!yb4T8rG_98rJo#n ztT#cc97_#ZR7|^(pa@!1T&(cxJL}&DWzos*wX*fUzCZbcSSAdrA{jMV zF0y(GDrqpJ7+!fUsKlVC!NB(6|BnmL54eF^8psQYzi+kkWl+>+u=Qb_@Th-5f2DDQ z#3GqX{c;rz5=yd{`Xvh*BpL+ryPGz>?3(UmdWlU*s$icoXn6tahok=uy_eU^Mpgc3 zXVPN5s8w&E#dMKTQP(T5M1etx;g_O^0YitIkx+#vLx+>W4F)Zi3y`r#74N7L&}gii zaiyt7g;c=?Cyoos3|_{J8d^6Pm81$7lzmK;8@}(=@1E|&c!^c%=<_Zo#+xik2cNI+ z0*Npy?RlOLW-%$%Z-1`eHQj0JB}S!9&l$AXE}9uL8c7xKct@4|{yz05sA2AAeEK=K zJ2-o?)5QzQ4Bp0)75~4>{yz<`QbAD(ipGMiLOzfMmJHgw7Z{XvRb5P^Vl^4Kv=}cK z7+u_SFoe;VS^Fz!#l0rW1rAR}qhGe)UH^Z7{$GpvBC99chvXk0pEDY$h5Xvog%CG(6 zO&Ra1cuUlGFmI|hX1t~BEz#kqTy4Ox$wo24ne~I+UuI<%1_q@JHzvjZ-!J}SRAo?> z_K;-IbeQ8Lb;(hQ(UQyIPza;3qxP4J40?up{eHbsR^ ztREKtWoFP~;PpK8yk3bx^T`EAt4E*?E4aTZ!B7vGc6!Rfps@cO1H+bc3=C!G85kLSu<%f-C(R& z{QuqkKcs^PO0D2j%gCT$;KipP%uujZ-_zKbBTTx2LBsx{XElQ+*99G)M41!y3>vH# zQ&dwMHGLFH84XU9YxpGAGidT$WY*@q09v^e`*T6%|L=?bGb$-~2N;7&OF2(QLy*3= z7v(%tRCyT64LJ%J73)h(R2w9G%#0LD1Pd5dMSYTFu9h=vKL;CP{ZrUGz+^_{|L=AG zRSWJu=k-Yfx3qaKFl%1}tI+z%1yzv?9@0AfTtqRkk;Rj%^aiZ;!oUCyYEY^A0@`?a zp!8uYgW@)i`5PwHGq8Sm`ge=(R-e~0H|w<-)ao^i88jI#G(X@}kgnL^UnEy`iP1X3 znNgXG!9wEy_j7->88nQgD>gfE-sDu^P-aj9Z95QTu#jN0{{OumD$8ibsj%6J;m$m1 zkh~xRi!w;>hQHbjO7$S!vppG&_*VS-KJ!mKn=*qElOo@W|KAt>bx>kZ}Cm{|;eT$8d<@1jAi07GbnyT*bVWxsj=zX&2LbruR&m%sZLqGcRD;!nA~W z7t?0uwM@Ifa6fYt!xpCZOh=hh8B!U}GM{I@$b64^7t>|t8_c(vcQL(W-o?bjB3REN z!SaN88PhH%eHIfIh*k(`$uilg^KO81({qq-H{Rq_^mESjlor+5lG1aW}GRsMjymi!yESohxp z26aYNO9sBx^-gkf6xFiva2#HWpiAX zVxG*X%rcoljde0;!NT1Ke5+?jX1lS>lCEaZVz_wdalMj};{Wge|M0Ee=frvGQ;fV8 z!_9q<_c<|NniVUr#c*TSW7b*Bv!}QvyD(2?wB7D>`^N4EcJImX2q|a~*H#3|R&aQx*+|i?R&rSq%ET7nQ;K4*k)t1P`B- zKDT5DR9N5e>-*z>`OhW%80`bh>KXP&b17OduzqO$ZNbpJiA#}rGV6z*znEt?ZIT2B za{X^cW$i-cEJo|>!f1vW(Z9au{SSC9?5Ui^W;mPSq{PPO2i!oVDX4t`YFBXVV_w`%=bKSkU6*P9r%4R0uAF=#Q|e*0(@IB-n=7-unPbKK6B zo9npDJ6e*(7_=Oj;lkrbFhluPFev~3e)_j!7T=1$-}nF0P-0m(h!Ham9FKRIKda{1_0d^Y_0NsC;J77QMirWWd0+`c@Io zN*1F41J)1izw$p@urThz(pNfPhX{B_g5{Kc7O$?L&e^>uwTyLVybb-&BNn7|vly@MgX06xeyAa_CN{JERV5@}t zpBZe0^zUEar~i@P@L{hg1B0@znu}>MOFWQa28g5H4UetY=vTVlXH(8bVm; zG>0+6Je9J941=8~JY!c<%+m4pa#k>&DFMoevcDCw7&JKVih4t) zEm^?RJHNhr{X72j*LRzLN1n1PD|jkp>T?{(o;Fh)^IjM#4}K?SkT7EAbOsGK^Bxt7#S2m%`i}=nCr>X}Lc*3o$lvUsv?0oXMQdX&F)e{g|{)AsS+fym4&@kB9_-T=+a+ZzZZH9Wi zrwUola{SuTHx3y5H{e>!zzAA)+OX;OckdtC6$;i2N^uH`44`oZe?zW@@(3~Fb!0^ME@{-;_s=P#cw#9;qen+PvtCe z!`Te?p0Js|?pMot&}GOF;mq=3&;QmAC^xT%`BcUn%O*IRJ^nal$a0wsONtQN@$>1gp}#e ze;8)*t@!i(_J8CuT?$+{>HlN`r(KX%;h*aM)sk$+x9X2;@!nuGQt<>C`SbhF{~+@~ z1vD$T0NekgUXsK7SN(AYn}w)ep?|)?c1Ly5XR_-G70B0hE_j&NDDv z+0DQZvWJ1;${q#=wet)NX6G3g^v^>UKZ6!JfbzH1c?Jf%^9&3jdm&viH;}%)3=ARX zL6f))3JK>K7&6X-HnuJE?%cq`Af2()k8uLSBt8wki_vU%`5Cn9xo#JOGZ5Q_U*C8A zoab$5EL#9tSUd;ZN@vw(y2zmL_xr)$zm#TpgO>XkGw6cKZEfZYa!OOdW6=ycffpzH z>N5nHTUUT4qkn&&@WZA+pCK5`XTI?J`;s3F%GL$?3?XolNU%t#sdjw@gSN;82K5GS z=?tdHGwPXUF)Dwo{QaH(mwo}G;)lvV-~aw+RQUVd@Sg<((}yL0O1)>-GH6F!C;>Z< zQ9Jko<7`3gtP29#P8S(;7F}SN&7d885wvuG;RlOSp0}T|R6(vcvsF~dl;@1Iv;73M z#V-8%?)H;$HlMcOMTXh+4BC7bl6^H8tPGedK+}>UN(_puAJl&^C|jCp7cd$Zmqd9- zS2AfcU(`^F@(weWYA~*6(B6H4L77p(xcv9`v;RR3*nELeDF7TAiO(5l3t2O2``={H zVYnFe9ONK|3t^zOU$a4$gXA10S@rVrX#zq}&;*-2OR}!td`3{#!q{ z^D+i6tYf;sprd(Fq`=(E)JU*`L6i3a<4i71uABUpjGBx$7(Xog!=NZwpzp z0Gd}~{9yJ=+us^ID9t<>RKq$w1UZ%Cq5{Le?+gAEJy7woFsi@soMHBr=Zv%esS0Vc zU65d4wD|pf=WkYq{~Adb7+BZ6*%pvQp7?rIHetp0COVGQ? zSf=8iF2jYN4}N_&hi)4A_5H}tWVtzx0-l8mzrOGL$*hp#q~P%D`-ES=zDNG%@%Z&! zt*yHO2*c43PCa%ol!ruldcOY+RtsU;+*Y zK5)1&USRyN@aM1Z=Knz>KPKSyG>k@|xubdhzhyyfMozf8$v=O6fB26<>9_2y^3~O# zlmfvA4-3MW)c(sF)Gw~->m=h zJ?3Anw^YS{EyjzWaU){}MkUZzwt5ETBH7F3n`AGS|NZXt1C-V3{}g&NC`mF@8*&v$ zGJq7VuBbB1DzGZyDwym9GCKI@-|roN89(^{1TD?__5I;bzvrNs{`Fn&*RSuEzhE&v z_h+JKfx@rvhkpF}p7bl;CrJseW>pSCBU(4M+cAn#rum za8u(s2LsE89e-FD8kmGwrn6at7b&t#X3*vb=XRb8eA-;#fMvL_>>()MEPm+V&7@># zT=Brp&lo(6&N`Vv+x!B9jwx6jC^S$1Vw}xrEy2Jv`S*A4U!VjI@=EO4U&i1`1JF`6 zV;_E{5EETR1qPN6TK^bkFD^C$?LDsG(`LC5DI-{*?G<8lHN==fKq(!RLX`4B#tF;BGqBSQ>h5@RakCPpzPX(mvtOMo-G z<3l3`&^ZyHIUxpR;Q}Eq;Q|H~P{b%Qm>Qdz$rKnBFwXe<-RLjFl{K9&iI?3Q&^}mPtU(Kv1TUWn@qQWuVKKAsOaGy{|TdDQN6?5~$@c>%mcP0i%1B z+6;^{K%V&dJ@L;WZOGl1qkn6(%#e0m^Lpv~Z7EL)Li6zV*yBD#Xn zYOMs9Qn2$|iM5-Q7!(;a7=C{50{5pao--<~_kO!+wxn#~TJO1`>%3T}RyKvr#r8wStVSLhTlefay6efCnXWxkW0jBYITW}nPH*=NaQC^IbU)-#r_ zDBx(2nCf+#VOE48!_V(Geogj1EV0^2vi>If1V$zH*~$rR-cp5Mp7wdol33-$d85~> z*K?Lries;LiW85+6AAVy2cCC(O?KLQlYP?e=dIo|oS1KPc+Zn&pLYLwi{J0(jEZKa zG6k9iX3tB!%e)w7GU$NPPx(&CLEkt1`NtNt^isgCeLf7i0+Wj*dC5t#HFd+1okLE5PHjgcQRz zBcY0A#uiqWHaUez6&x)5^F6r!-`{LdOga4qWxd+ppe)|`%ZhHBj~V%59Ip!4nmC|QD%o~yTH4QR%NVP;f`WQpHX zmRSs1QWs}eM{i=#7QP5e(AO?7THoFzTwuh&rC9G`bTLFgDc#JdfI&&an_-evf$`IS z-y?o}fByIT%-;u}GwAHUV9EeW84TLHE*LW~sAL$+6c{iVGw>@_7%MVl8psr|e2D$S zs3hraXr@yD$`=*SM0`O>Rjz_TkKw|Xryz%dGWn?=3_4a9WxOE{ntV~4L7*O-S+yB7 z8Mr+%jQOpk3Nj7(j6w`pJ}CZSm|bD2UBEDl*;}gM7r^syaYn1j=uq)WC2t_&LK& zXUPI>22h=F#`}!ttzxN?&Uy>e$dZ%Z3^TO~W|pseqQJl~^XK=CKWv|aD(1^SET1#Z z29+R;HyJ+o{yX5y@PhUTmd|YJWgJX1LJ)1XTPw&9lwFJjD}pM#of)lWOWfYXs3U$+SexM{$I}IhQ4ISfEIRAG z>OC2nBqnX@a$>mr_eq(TaPfu4U*DsDmU^=r-zoq9o#hWm!-pq@UaUr!%m07>^V<@X z#0|L%7-llg5G=^?GBaniur3fTVAf!`dFKhshuWW0SXme*vWhb>sw8P40vIW)*pyo3ysEscAg2!w`E?XH6ts5C;KP?A2 zcG+)dZ$>3%>XAH`( zWLQium%lD&R2KAN`0)21qztfP;8Fw?0ifv=M(qz5g)11e-(F-;2088J^WWds|9JKs zlm&i#*ZTkeyV7q^&I46upd1CtiJ)95pw7S`%JKLAf5w>}asnC*H;W$a_uKEw@?q}e z_o<@wzZniOo?tx9D8b~zlnt(7-7YfdxPS^R#Z6v@#*ziX^#a;r7dQAMXEA6C-R9Ib zyTdp`%}C$iLP)ekauSy|>qTV-hFKBDfhJM~iUrHPnUowJFoAQ(i64u-7kSARTn2mC z?xG=sfgwi)qlWy26;1{hxl~-txa$jyD+(%-ouwrhwAC+&Fld;lRLpVWxjfmE(VDxQ zQCZVSxS${0i2w!fs$Yj6Fe)1qa2IrWyMP;$ycfE>1Q|38IV)y5v0rWj>k@`GLmxeF z^kz_moPuR&y!m;Zk3v0%hR{Vwfyt_U=_dP%dd3d{|BN%(XUyzoQ1UkT@jdWAgR(-B zcEOS7%nW?iOxlb$7_S;@fI&`hepv|#FU_L<3=Qg;~Zl{qyf z?!t^0y}+y`1?nDYaa?pUGp=Bo(d5K@kwL-V%fLvWV5XDAZ9gyJr1Iy?%1o1=JO>3J zB=inTynLRb4B{J9I6D_qBsfb*Y_5=&n7!%la|iE6aPm~Y$e^Qofl<-M%g)EpNU*@x z%TwZ+Oub;ir+V#rbAJXcm5cn=jN0rsG_n|GHEa@O`0?H7KZ6Dj$T^CJUIylYM#2U9 zUe*Q7Mi7leE31>b1QMw3sf~Xfa&ydiVj{6ZrrA#!mrl@e9h{()A|V#TS)) zR2c$I^(q+jDlRbUMOS7K)1_2kqRyvxhLprmFh%)q6=c!$eaT1rFWP>2FU zQj(gXpi-m(%ZH;s9zS~(!f5;gI-LZnlR!BHlruQB*WY0@PEM-l(w=h>G{-5Zq-F@x zH1~%RXs77R2%|t_!2$*i{)->WB@32%M^!Uuv0h+MiYm5dfb>(W85oodjL$xkEC3Zd zZ!fez2c?&eo1iJ?2v8eWnc3uV`NQXo%Gw3@o+~p%7|RtffW<&f1W>m9`@OIJ_oQc_ zBINsXP|pR_*#(t~!Ox8t7!^UW)b15j&7fs|5mFT?T!6I_m@hPXa@KQbf@Y-~ybR1h zkyGboT)=E}xxB_((-<^u&iVjSif}2pn0*Q<_hwR(Do}e~>di1qs-V=H5nQ>|vtKl3 z0Ih0sP%8A~&Y0}XoxrGUVYc|$-|ts{F)3wvOBH;3&M*@+t;YErF^Nm_*hMJ@2E_;?!Gb{J?a%*wU;6WN zHux9?ZIg@4HjFx_ZUlHo*H<%WpS%caSH1gn{JB;=!%P7!v5Qez3|hjsL6)9>2D0?b zGea{*L&E}2Erz?to~fD28?FptG>S^%(wcJd%yR{XAK#b%+4T&xWB=rz*Wd;X!-Y*? zo$H_3dK(%yJqLACH$P*X6#y;*%^op-Q2FP=z`#%sA_(CJ3=9khm>3w&F)=V)VPatL zV`gB;0?jag`2QbPohAMNHEREV|M<%qde9!Iz;gR(#lSej&`7x8$9K1X%*x_k!UeD@ zobks0@3-oIG0aL)lq#@ha50vum{Z~9%xJSjf=em7BG~zf#F9Fk2uqpWeUH!)aH&9uRoU%dXKLZEk*cecn0y#q%>bS+fq!_Zmi=uKb zO4oq)&)5I|{`H471EZRuv0MSj<+2r9ok}j;^I_7hxd2*F{r`LCFXb8rZPSZS^L{CU zvf$Lezf=;OuY0mFfOvg>ulTRtq{!gztiixEnfU|HKkiM8lWR3uZ?4|-L~4no@+QW~ zzsxikPJ1$c`1f~?68EMchKWwBH;;QU&Au#kyIxXy(|!rYnTNc(oeXXXGcYL@7)ush zPdnhFoH3&wbY|gk=pqo%FoBh^M1def!=@kKU;a^M0EGgR(iU$slPqJYg00@5bsnIF zbN{~2`Om1u0`}p=3;(~j{$SQ(y!iin8_j^tB7Rqqc zd6y@52(w~Gy|-imld^CjgR-R&<6}(*28G|>W&de17%=?)F8NQ1q1Xgum0*QZg=Aq= zp=5DX@s;P?40^`W6&BXFH!Uu>1#OP}_&)v5zwe6wL1hW7Ir8tjcvBFn4WN#X*Nw(Xg~E!+iMiZ13qLztD9JYrC`G`BAJ2`52eCTm zC!>*}xmCff;(y;S{R0hBR9^sP?Awnl88Qqx>nlKgz^jiKXA5g9UIb+(xr+=sG8bU( zwPdIOTgVIU6>%5nDux(c3;`d5rEFntT>zR&O#jWGZ003gV8xJOBwS!&&ZzwVyYg>i zFGC}N3PUd=BZiqmAX_fXd1PqLp!5DBqXnA=L>(Uj4KaRLJf2G=t> zGP*FjGkP(mFs3tRGv+cDFiv1dVk}}TW%OfcWNc=vXKZC`XY6F`X6$9`^_H%+PV#%8 zoWX8xr=KflXd6pc9DlBy zp#`?Y(D?iFT<=?zvn8Y}_dL(?-uFDyJKGafjry1vCow2`>!9rzw7@?^1hLMSoU5$b7o_`R7Okp&+oc_V!as^Zr5kulD$?wr}@wK*k9TV z5k6WqS;l52phXe4A26!P6@+--&X&q#Hx|!$pLV<6f}y}vyWq!n_5T(OKffRPp;qwg zyX6m2C2#Li&`Ed7o?gX9!UY~)MMlB}3`%a^WyVqkF5ZR4QUwm)k_@TfLCG{jt^#|{ zaxgpHu%4@cSuw*{s=&(I(paj%5_FzCo#zoK}YS6I>aPHxN)Qq6qm145!dA)LmzA^7}YX;C-wWrUL zO=dn1^42qEc^=^X>A7--k@5d$sV4o;eZlcAQOT$b8r|LbJjSH;d9+FM^Ei{n=kX@> z&l5~)pC_7BKTk5LeEz#@{WGZoP}lQy+K=y^|BMvuJb!$@{TEaW>LvU(XC z2~@CnnHc##1vM-FeNXuP@B4$_phC-)iGcwW+yz_XeYN373AR0m@rm_Tt7p(Rlg==z zU{s9eWYF@u!0p6xF~S>i+JfB$B?dhsVetM#;Q}UYmK#A(8G#E7N`eZ44FA3x{{poO z^uf~ypd%AN2g@-kTbODW{QNHamsO7W0!ZE(EMH|TQPJvTc!5EK>jHx=#|6+~mGx2; z$_$mp42lvJ|GxA7Qf82C0gF_1`c5G%a9It~OCF0PO{3RMcQFE%^8S#Lq9!HMDszGBbcCy_jx- zrkUT}U{tI&;bKrM`1gIs&*#rIw4dJ8V&Jj5w24uR^M(=wqhhs@U_mrH^F=NO&^fuw ze%6>Mb+CEQa=Lg?LwOps7X*q5P#prw4gdc$F)&OHnRZ6*00V;p#|3T&mJ8etJQuhf zer)Au5My9vU^Hj`AoyeQtQwvAEkD^!7){?mS0~Aw0Zomb@t(Osx`J~uXdMf~2T5>3 zWBS3uAj~4dD#6O2@<8c`_ap{Ih9e#_110+ zhd&ULwHO*bc~^Y@{;U2!hZ2*?<4p{cm=qb5ctK02elRNKdP^0s&1O+yG-jL3GTX)6 z#h7I>^K3@#DHqdyAqO1&c~t2wT`^0JNsHm;&qprG$zBsHy`3*f?1Bt>UVQSX$Q!iy zis9n@N0Hug70KSx6>`pu7Z^Sm|IsO6)D*hItdQ;9#ZZ4KBFj6#Sz02?!;^tCZgvI3 z#OO^KV7IOPpYAP}zzkju33AxxABP?VK@BZ`9_*dq3GyGq#n|WZp3%>Jz%nx~1bIz* z&ZuPTEmbh-IrFT^PKg&elp;J?XE1+g{Nd~UWD{7=g$)nPy=T=kXeHHOoL$MF#4!n^ zlq*=DE8NL7HA32b@b2{xYff~Gg~%-faSP7D_pK43Juu!(o& zukRoKGpK>K`Z6gxdi?#K@Iz3MYXzr-HUp;;vjW4kzu!53+JH8_#;{KYO*t%hAh>#t zTaufxw}7$p>3Ziw&ZnIZNoNQru+L`GX1KZX!3+k_Is|2g6gLJXc}0fEKi|LqpZ9>< z8#FUM?*fOCs%NLf^ykd8ls!Rne;i5^pK}=getx@h_H$VV28HL03<{~tkOM}aF)}DD zKhMCh{?bo05@Xg#ptC`~L>Y zT(hK{*e-a3MSmDr7&3h@`9FD0pG5t~zg(-Os~NP}F0#$G_mryOUBPJd{ky_HBk$RD zOxoHPlo)tds3`vb?)cY$!NQa21Mfcr1|9}8Po@t|f0Y@S7)-#)l>_WR6-AH(1^$;m zzg;=^xdDTYC)01FZf7XvM4&!(@eeMP&xw6?>nt%~pV0 z{^;+A=LQV2o=hLE|21IXnkenb^ugyZ*K8&RNwDTiFwJ1Sf4 z!VZdDhO?f`N_K`54VXSm{inci(vw-q(Xh{e=|kT?1%_ju%t|hX-3Ck_+W#pq9P(sV zayRTSVEWMTZ@-@cgCPU6l9yqt0n>+ye})XKN~|+{4VgX^{hMqsK}jvdIOKH50qG3p zgk(2nZI&Ce7y=`BS1^630SDp?a3Ci9n_MwLhvmkqsUCknix71Ia)KiUjUo1#4# zrhyXhlt0YMN(|4RJWyg#oWv03!SrF)UjZcsMZpzJAEy2d_5{(({_=oVQP(R;G6=5t z^WEbwsE7y2wEXq)@$pm!9q4q?8|(wq3tnJ7J%72B>%~E{zmo-5a9IEOt_L?Z>+j^W zNoGRV|1c`EC^1YHS5yX@I`Qx1b(7SXl>bb=Hp!}<^-uBxP`rayANu%uFfeHAGDuxu zU?^o^P>{L6z);D+prCkxf#D7VgF-a}gF+A^g950a0Tm#|7Z@1sF)}FJVPsISyuiQ! zDtJIE8Fw)-DEM7qVA##Tpb&BavhoR3E`VkY{23S&6c`v3A}=s7Ji5Rj&X9V6fnhHL zgF?Xt28KNh3<~8J7#Nx^OkOtG#X#&g!z7T~#T8>bBA!cCw?6;#eZxP=4IlPGLNUUF z>BH1Nuuz=vXR_23x%%wi1`NCm{+>)99{d6=Klb$$T=D&T+HcU(d{FHvxPsmK&vzZT zwv0c@6^z=5)lX11Qj`P>XF9Q0@Mfhkh;QojutdN*+?GJWX(1xgNjVAqKLKKfk8OV{&K6v%CS zzxO?7)E2y`1=gtjN7GwTL8?N-Te1RlA`;i?lba4m{P{lnHjs$urVjzXo5AfWh6{xcIFuSaQw%j2m_8W&=1{5kuJ?nq zK#Cr4Dg9Th^q3=xwWoANwFjt7nErsnkVlE>gZS^w;Fawqo;*sW z^&Sd_Odt4utE+6T1u1HOz^0Vvsbg5+!SsRox2{UQca9p^_zRqNxezB@tOK>sb!I(C_7hYxU`Y04`f%%4k~h<2 zt%}7mvz*v2Gp&9QR?nmq?`a^x^x^C;MiUmDj~Bmx_xS_bqzr0vG2d|a=*1kd6XPIY7Ch^totRR()QfXTe&){h^){CZ|9v*+bU;D+clJ}fZo2mYyp{J|Ix99vSptfo1b3IQdk3Zj! z|4MkS?dj<8>bZzv+H(i6bqp6PpKEx6YTCl*zm#meCoxEO$jeN2V!UkSE#I+!Q;H&J zpO3x@7ZDT<7fnLgb4!8p5Vld&h$itpc(elo3K`mpc^yP~6Wio`M}hD!<03#Bq8 z>X}yj`99%S)N>7QiH=|2xBt}iWMTkm@cQ}exjNM1(&vIoBA!AXOdqU&to`K;pXvL56hph)xHg8~?{L|~F_b*T3gkRpjJiHT_vsBomnWVXtotcvul)Dqy zjkyyH6u)|Z^^i>X>ix|}GUJ;sqeFv2y<~!9h65|3vt+_&Z+kV#j8FcG4w4Bn86Q0r zoh1`KdVcib&Hx$2oxq(T;r!m4BSA9bod=_XWCD|-M8~l+c`O*LD?`vnu*)lIH5tgK}9fQHVe1&5l`U+?u^4;PgsQ=xD%8z zE_2;x)OI+aD&U~Yc!@#FLD*Tsd9U|gFA0YR<=YGr&I$?K8M{5C9Cmwy2G|5vOLgq@ zmP%+)X3B`JXOePeO4#ltkiqOMoWQ8G)jP;ZDq*XaaK>z&*(|~dLKyVeLz2r`D&fcXS-+VSR(O8@{^4JP zvQdUKldyAxl5xTk?;r-L1O}zW-ckwL8H`4gowXC{7kW!)L@+RLGiWp1e)e#__W_Cd zo{S%y{_`m_sAMECDrhHgS!*X9Hhz=1I&r4APNG!COwT4~se~C`T?sS1P9=0G1u=Lf zO!u1ZDUvYVOE6)g=X5Ww1O=t6M5zoWXQ_l=O4=FB&e{o+d?$N5nrbje6)=8y_>Yl6 zgW<<_?LU3>N{S3Y480yqAC~;+_2pO6RRk5R^L{WYWO}VB7S0f40EG*avQUNs11Rvg z7`QW76uF%n6onHwnZAEN@k^0Gf#Li2BfrcQ>O8-HKk!RQ(M;j{_dUOa6{Jq1=UeaQWxp~SX&wuEG?GP9&Jr$Xl@ zMw9Q~TYd@Xe7Y#FknZ{Yd)+TPg*4Ca->ZI2P)zks^)goAWRhz5{=MiIgQC5{_wRYX z5`B|AG#P$=ziR&D=l8EaetzHln@N#D;pg{#|CtmS6@Gr-_5auR^*e)#`?76xty28PLU z^TL%m*c=?XKr;et4)x#u|7Tdh?ePEq|L^}lgRT@~IPqZtx5MNa^K3L31Q{H7cCa~! zaxf^c2rxMC^D{7T2rxMOPh?;K6=s(iA^p6@$$#gm*K=KDUotvJ8Z)L z{|^`$6j(SI6s~}19fk{@&p}f`S^ol*_Iop`N+m=k?DG~dl1kX?EuAr&E$S)*Xg{6u zZZ8Q2;Q~e_PSq)HJAM8uN;+gZbH?7<#AwW*nSPN$gYm*9Z>a*7*`R9$Hh6PbNfoU1 zmafm3%@%#7L5V?etq0==z5frCxKuzb-PIn9AJqRdD%UG9D6aHinDYDk{eR40-ZC)n z#yhD5!q_9`NJ)cZDCbyrna=ofs}OJz!9o=kfjf@*hSzUoJ8z&+!s2fZ_(- z2XnlH6W%JtlzO~n3Lse6Myes%DaP^frnct^ZoSWceCPYgGF!s=z$ONbITt&;JA6R3yU)dT za8=`RkyU}wDFvqUIx3 z4ThU)j~GAP`y)13y4xQRUAWP0F4dWe7VPCmehZ3hQ7G#t)VM zK&|2WK#xfbdM1n?ivB5AFl$R({IBri`_!M`zE}Pa^9D`rF>9w>WSPyR09vaEI^Jmc zFYAmjFJT8pCF_JxZ>fSg&l$9zTmUtuIaV-!@c##5@vLC{;00z0tYG}$`cJunN!#S2 zw3=fT0Ie&3~BkN135%lanXIRGt;zzDxe) zQejZ$SRu(!uLMp5e|c7bwr(&ef_OLnvVv2D1vo`q{QK>DLDd)0@_M zf)4Rzy}+o&e33zAmA6a*H^VBhn8AgWo}3konmQMmtQfU4Z!jn=^Oh=D=3Osc!R)Mh zajCa-hCX;knfc;kuwSJw{P^Deb0Iikie6mc$z1{JYy47~=aIs|(lF11senm=qhPKl zSHWB_VK9F2fI<7(#itKudowA3ask6d1_=hmU*Cg%-F`6Luhkc{m5c8pgYxSz25p54 zlf9)YER1j0Z(`Gyx-k)KCBuc|4=fmdeP{aJ=`CLXQOIy{?}Kh{Cga=njM@wrmx7wg z7q&e3{hi_G#s>x92DI^oS#pe8%r}a_dB+NxhsrM0d4cvjHyPg|}1zqt5XQ^-MYp7kVBPdEc&M&}O*U{y;#f2)g#9(3{0bs)0c{$IG}t zyddAJ?|C@bigOoo!Stz%49Y=X!UZ8-!Uc<;XL@~kp6D%I%bfUk&z-!bDxAF;v_vjAc!7>45V$B= z5C%46*##bjZ{Pd=F|ao9gYr6)3WJirw^YHb=b#ef%|-bFZ|@W%kQp`%6P`2ZOuFa< z*4KBz4(z3_3!qjn$oH)`Kqh6vOuA6}yyf{8rFvUXE24ox$;Ml%fb#*Uj|#d8Q4eeg zC~5)}6XMH1z?M6{Qyhp&f*R3%cL|-kb{tV6_<+Wg)S<2{bl& z{-HLw`w)6j6e(p`GW`1P{?oVqK{X?!iw8P+umyBDDIC$6Y>}s6hQ5DP>ly_uODZGWXWIO)&4Lj@AuL!5H8r~ zC0wx2&$xn7oBiTmuwOxYNjkt=P(Wd!dts+{bUlN%=7k+#S=9^M!6Bh|aT}PHy|~rO zxI(Bx*m;W=h!nlJ*;~4TRa>zB!msbfe>eJpG6%~Ag$f1@#*6>H|N76MywJghmUv57uxJ~D52!M@Im??};ZCPq*Z1!wKlzkdIoEEIaALSn`jAmM z+G(zrXv17Dk%qaTB&*GE;m|`+^K<^gSzf{ov%KXC>bt?K$rvx*>Wpd>P-aw^=E;=- zYMD*-mM{4CecOKqrEYJjg2~`wQ|SVz+svRXaj^mH5Rr?0U|Qf}l{aXY49|r!?=CNC zus{1iGkFS-AjWiqeH5Z|V99R&BY94SrcZ#uW{|pe$JV@Z0y) zf64U>+ME}Xyk#mt-C`MM=8M0+FZfg8EmQFGyV)-;W$gwAW#a+{(2M;7sKd>m&3wV%dq(At@Bcxk^{LfodZ&6x zXI|=%W|iih<-~U(&39$YYE6a<(GO=zO?G0s5h?TEuv4mY6T2qE&8UZ<931I=t0BUB zHu!=Wh7VzX9KkWka3TD$KR7fPE(Sdg1+zf2t405V!DT2jxKjW3o$aR)I4oH&xP$T& zXw3z~2a`Xbel?Re$3-Xa*&WjCEEhSHO+C3Xf*rUMw7g|272RdEg$M=6fKxY$Q{-+AggrK>U-@lC^ z&b!F)q5k7Cut8Z6 zlv6-C2b48Iqcoraf6z?94(N!@5k>}uLyQaxpmDlw3=9f8p|vI`E6!(RP!MKfs0WV< z3NbJ!%wuFw0A5ljp}Dw40jbJt^Qk0+QiA&<-~BQ=-D2x zJ)ZSjoFr}vcRZG2)MmTL-66rsa5e3jur|YuCL5Op#4}Ci@ZHI-RS)OJ^cUE=M42)UoO0R&Z_Y9`@KIU&mgIOuJ=4> zCStxg2OLuZ7Zz0h{x15POX+dFc|owVcEh*tMt{G3kNeA@$ieXKyWXFgXTQD+|DNbA zUjWJ*rOz0Rj2tFAFM~tmov~dpB6-u$%NaG2Cu{#$?1YQ_EqB43DIa zgJJ9)%?lS3Wi%ZMV|HntzF6uzQF4(}%*`gL$(y7YG#J%2pzFuDUJR^qDP$6OGb35+?5*!-WZZLe1_i<^^SO0_HH-@YK zH5e_tXE>d>`2BmtpU)keI;87agq>BrCMU2cUoPNLGV+!xa8NV^FX$3Z`2M};|K{h# zokpF~EW*xyph}T=#Z{h z(6FcwRMIJdQxDTcp_SjhoBiKd$ziC#koo|WB|%y9H9rGGJ!tG4R9z}S^DHQjF9YRq zX!ZkTIWbNK1rb&T21W)31r7rS2L=NM2Oa|k2Q^j(25D9X23b}H2Bu5~hP+)23^#xM z|9_X2fdSN*W#C|QkYQzD*w4VAAj-g?fb1293vSPOl(vD|KP<{yy&e|`td?qEQi^KW z)G@1J6WHC%7dC=v?u!g68+=)&Y_7b`F~^DXGRthxzStk%KmA}+6j<^7`<8!-&o^{D zW;h_R+`D1ZVF`Y1)*FyUEaOGi*({S6dmoly2VaB$YL+rx_*@Cv-mJ;+?fcpP^^7JQ zrk9>CRTfxtn?bpOMLAs|x#8RQ`#%q`9^hTjkgD+Q`^}&A$`TF>3X>JSeZTyZL-9dj z?DGlUY^#J@^%Pl@J0*f!1y}s|-t~h+amRBOZOG8z!7};p_pHAR8ZR!^c^EPj82tU7 z{Fg!F(FK-yW!{Wta>aL_Gb^*sP%ggzyxbeK?x@K~pg@XYBbY4loM9xGAjMETS5T{^C)J@Rllg-La|zl#b%OCMO(ymIf)}FU)?B1a3t$Tv+rZ z38|v``+fc2cyQ=5TwMI*-*=ur3!X42GAVrfzVIiAbo<$$EX~NmAmQY9fm`9*ce|eq ztPK3$zbF4@sh{v)!{q{K$e2;v;R2*i6uaQ(XTZSlq5Ll^gOCR6O<^Si1}{&B51RiO zZCPgXC>4h?D3?lR7r22kfVX^sD^h>N8SD({3r@b;75v)lHwBa&Jsmw5K5+lnu3)s* zF3_y7^J1CdEfWyJpm=-J#gKXtCG7$$Z_qL_`GW7?b$%zaGG4XtmM?hB%6`?{n@2&u z;M@1-Kg_%vxFre}voc*}0Oz}8HpZ()-tq;?Y#fT0cGjzU-i(TDU>y}dmDyRZ zGAL?!vnfaxeEVMT6V#qQ{KLYD;X={#nCA!FKuKPXm7yM<-jz5R6fS)D|3Bm7|Np|L z85p!!85lsVOg&Zx1}RPkg%=Ev;bl<%D`00(s9=Y*JVC8cP_q_P)xjpuf*BbU0zpH~ z3=9gO=I|s228F2%3<{uYK_`M{KR}c1;O4V4r2PzPPlMXRkerZk;qUjX-wa9%y`>5k zf&&!P&OG*izLzlgid@hVT4B(B^NX{+{ZiKIh-R4O#CoI2`&Nf?$1Ep?%l99A|GxWYJ$RZU-~yx0jEk8H-@dc` zU}a!tVYu4yAWPxv_y7NyRLZ?|nHgAR9T<37otdYCuIl*q-TMcq8`t(gT#a=Kd%Y6# z>}W1w2NrG7iwr8vv+uIL<<0g=X1E-++KKbx<4vqH9&Tcp{NwxmKg_ddI5AvY^N7(T zL+9;9=2^_MgE*`mm?yDZ5N2ply2LE(%siRVjzRD0#Yjjdxw+_3l($62x9_UI)F1FF zeEq)tKg4-X&-oO-e&6sv*gMFtUYAAI!8k+1`LNV2@!1jqz6J@w4$0a~cXTQkO`dF; zsA#0n$)Hp4_4~*F+7(RNY&VP)JUqXCfAwEf`TuwA-v$}qzJL4qU)jZrSwXnK8PqgW zb_VwXoVbi5_CNSBoTv_n}BA7K?xU>Ye1O- zH0Y=SonK`5@Sg#6k`!p3k%8eqJ0BB+0%++TY+eyG=LniR1Z9xdLJSO`8Dh{}Bd9U@ zxV{s#(oL4(aigt+wG;nEg_@n7&N9j+JG>nj4oH0ezWA?l4YM}GP1O?6V8fr^k2`0x z^In8jITtsAI!aos7dCi_gR;Yg_1^LY>%l!ghKtJ{uxc}3SmQmT^4E8Vf2+a1X1M_A zoH1OS{s7WFt7o_{>A`Z(6<*vOpktT>Dws5wFD~_9s1VlRyTE8YdlPp9gEr^I+2CC- zY}zb092Dkza%VIAd3UxR{30P09ysx8PBA}cF{qx!ArQI3EIeL^RDv+ zRf}vFo522Ix(G^?Oc$9HzJHhhqg}zQ&2#bF_uW50MzQ7hN!EmwYnKf7w!^PZZ zAT^*8m*GPCGwuR0Z~21cXAH{P4WL042JMYtCno%c45+NS$f~fs;K%m^|Gs?}`^O88 zPB!iNHyjiNq0u<=IjEJq_4xzP;w;d(J!q5>G))Q0BA~1X>YIV;8PH5RX!ab`&P!o{ zEXpte4U=%NIe^-IOiT<40nnNDcZ>`QpamG9*-Fr?J7~rol*K^(zHaE$=MzQ-1<=eT zD7%BQ;9AQG-EP!?%Y(M@b$a@ z->=`_{}c82n*4p$p9Wvx^M1`6z+U%zYo1>K7QTAa$z@c)0nVFm`-Wg-j{E-*9v zJIKJWS!e4xMy9a;lmBd!(K`9hpy0>euirsCi@$z9^pDZRqTtDiBV5p~`i(}B_GY3jpxEL}RH)k9% zV5S0@K@5Ca24 zO?^Exm|64hAHoUt_4N=ZfJ_5UlqkBiHZ2Cxq~_}N)lSn6Az)POc8@$oY{tdiHZTq4a`1t;V4FeV!pO|V!{Gn{3``Kfz#(Cf zaG-&Kfdd@Y7B&z+Ffi1EW9`EajuR(-d;qzNo12^Q2h?KF947-m{~xHcK)&bTXaDhs zg@r{%0;HIOgOBac9~N*-fMj{tnZb%#SQtQD4h{|k7wqC6e^^>t=FEWTpA%WEKlc%aIft83sO3(&OM@U;u?KM3RGp!J^;+C=NkSg>Hhg98lpkhI4C=Z}Jd!h-{lz~pB?@IXO9Apw#VIe1vW zT(}qc!Q2N2KpBLSlaox3=9l=_JHgKC2UYB$Fk>#1L(RrP)WqV!NbDC0VxH+YBsOh^O@0@ zL6qSI^A|=228Q~2J3AQ}4hBa@B_$CNj+5sY7_OgZV7POhf#Jz{28Q?N85q8wXJGhy zesb19Ek2O6-~|Q-kqZnA5*H>fI@lxwtwnjcK-JTkrC#x8gqU~Vy7Yfi{jTiIdWWo- wHrJn5U}QP?zxDs-`4=WIisfggCk41$={TCJia$BMbv^^bb7lsH$v&4P08}m_BLDyZ delta 36717 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 Z%~i#poZdR0f#Kl)*8k6$Co5c(001gKMF;=@ diff --git a/firmware.packed.bin b/firmware.packed.bin index 3b838c8428099f958dc4a58c7f980ff698f505ec..be0723a80c4174880a83d6af14f23ddae3825746 100644 GIT binary patch literal 53578 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 z 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

PsEMdy{rgrC_@_pyz1#hS6 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%0DEJiZ-~qO}9{=ll||@VZWm% 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 ARsaA1 literal 53878 zcmdlkd!Q&R%wtMHLc;Aek9}%xcwOr@c%%Bj=O#n_{>LG#FRi9$Z^+~My;17XNtQ78 zm%BbXZA*{mpJs5!03{T5>+$#%0$mMTW%M>UF<+pS(8=yv}vH zGqgG8;JIrX?il9e>^y3>b@7I6#s2LnlV2_M>3O{2TD7d0j)0}=zZw2_LR5<@rth?{ zs@Zce_DS<``H;qq8w0PE*K*y>TcCUF`S+cA-WtmmEJ)h+-!h{A=&l)4(}ko0C3h}6 zoBsJ})CPrXF&~`P?5@+>|Mh#rb*~&|7s0QQ*G;nWH`UIz*VHH%N}l-HRq0@6+f$D% zKHk~P^^bicud}sJHl9-dZ(jD_&^=ZmYOlPec{f}Z`~5-T;o}qiDVGwRL+0kS>rT_{ z)Ne6VtLC-Xmwrt{BQ#IfsX!{=e_Z11%_@bCinCXIbeZg-kgG4%ym+-hYRJDO)93t4 zEtoxZ%Ib$-*vgYGpR(gr+OFU?^_qWug+O4t$NnuF6F%k}KjOWSb=mqrpi0H*+27VJ zeeA{hg0G}!Lpsmxl~Rvh8a{r0X5Hn$2|2<^(>NaLhH&sboNn!}`pmg#wb{W}tCba3 znWoA&NM~+XcW>3FKRK80-d#0y;q8!JHOKxf>rPz%n0cGv=Os1MmrgO3J1`|%zg_wJ zrVl%=imY8!@9la;IPsbLW1E9_7{C1}cw_s+Kj85{PnIdpFO8>rugK%MJtgqR$&V?a z6L;NqO-nEHb^rdbCPb3uLam~F6x#yl$$4|`6bP+4*{-gU6vVl4ul&hRe;O_+UoZLD zd3$$F;I}{jwyu|oDJ(WITPOAHPuT>Yj=Sd!!$qIZ{_M_e-sBSQy`>>AV|Dn2*|TpX z9g5DHs&dQsv%s>YkJHS5J56`oy!d_3KL01F@NMI|&F6Fc{q1#My{|u# zq4LZ0a=4>Jwov2A?Gkby7)@D9R`mMBJP*EK;IP~4+G@-5x()F=84m3~9HjOzDz9gQ zANP%&RpNRF%bZSanz%VIy`E?5|CJY$rP&N~jrsc-7kD+!Id^pG-CY**S%i#tP20Fd z#QN8^n5Rm2=W@^7oxCgc>Cz(|e`e?xD>H4Yx&DQxcw*`8kLNVX6~4}T-Fx(CVVHUS za>w@MA1Tc`{w8a$udwdXy1c~hL`=%#_|(^hB|RJce0H+^RqBt7bAP$#lKY>1@oneI zx@}{er%dFu3YloKz{@M*n_PjF)7t(Vv0%SKv%dDI=j?snQhx()m?&)*(P{nBwtG(W zo3Njf*ZK_p-+ANxZ)s|FwV2b?l*#PY4&F;&6-?PR;e!(Y0-jWbwPI%r->W|8xWG{F z5q7EXRnRkyd2xpyZ%VQ}dEls9@tR%J-xZ2Xyz)rGVLo5}K|h1}Lh_rHfBZSPG{9=( zi>!M>!C8g7Qc4~cp1AE$xJN5H@9-~|#rMCTX<|PTCE)J4PrT^Q*Bc)yGetEe!|y7Z zlsG8;2wMCqeTrB6g1PY#J~cBvuXTTUs`{XB8MFAllkrzy3(VfVU1k2xjfX#;JT7x( z^)BVWZBOj$FP1J?KIi4ZWc3B5os0_S_;<8j%C_1QG&8SLCpv1oOO&HTj)ayF+Nh z^lK$fR-7#J|49^b8gJMxXYtklmcw1HUso62UiEfL)ihOlIBgO3QuA72mukqP=u7$GS$z3xB^)-m=>?OW~aI)7zi@l|E#J)Ytj!c6>9p zj@c*rQ=)y;1_jmge#{y!OBZOnKU`hbb3ubE;Zx+LPh5VERTDo(pR;mipLYDC>6(}S zf0`u~bDithH7R{vZ|tiJ25Y}F2ZwR~>JaPh`rUXtM8=wR5A*zj6!HG_+ZzMU$UZXs zy0!QTuX<4UqZ}?cpe6#H?4b6b6*=&E8xqp7U z*}lrdb#7z9kJLlg>^G)gjSe}eV&L#=md%@Ip%-3A@@g3PPXE0qs{6@-HsvFe6rAR! z_j4D1V}0Mq{aGc_{%=Cf0)D7z{!#h6>Rd?X%jk5W z-)$3S1)MC~`19cEMW43CteUW;CR6)>g3Dwn_w8z1V{1HIvf5ma?SJO9^3IJ5g2vVA zMZO*kZ{~ETvA$dUOnKM5KGwNXPfl`dNNIfa-79&|TW*$*!S=$ETOQ_E{YxwH?p?6c zxZrh%=l?k@oWenmHgA`=eKBRqWr4pjCno%uRht~Y^hixM*MmrAms2d-*?G-bwKEoE zYqUq6n6Pf6)q&dBcGHeSHEAAs2Yfd)b3ExbFMS%cSOg7w$-NnpUuLYZ&iWT@yJ<~|&@^kGlS>xtJiX+A{bHp(-7|LPZmlTX952%S#kXU! z(zWQH6Mj6D&yD}o=Ft-Hr^wu3-FnHde_nrR$uiqy8Gh`H(26-qH-*BE1zp>;AQ5afh*e<->jo+dUGx=KKA0@ z!`wN#X{NIaH+CEB%~9@`n0{R5fI;pac6sX?*V<-R?q7P}PhtCk+}PB)w+{xGlw6kb zT`w*5r%K95Dz z7sonWqj(jSf6Dw_b#~^jwvrcgNtc>h>E=yU3cg>G|5-%GC z$@p&7u1)=%W$o5ez2$17%_GxKZa*&m*m2ZqFX)_~kYMD(4eRBMx!FIuHdjY$OpM+ro7MBq zc*2*sfB8o;(4h|501$4|Y21s1md?Nd@pV6s{$o+=m= zchbNlG&cU`#~I5Xhp7I%HNAV2&lkTfQm@`0C=6LTbLPdbF7_!Z-yf;P%d;F(TcH#8 zteMN-Lo}*LVrIcIbxwf_LBHfn&p&)wlqL1|WcHuiGi_6UFcvx_?_F1{`hUo{(<4Y56Y)^3B?EX02{nu z`m_Ds#+e;0scD?_G4N}Qea^q{@7Eu%aFg4)Wo$pxtA)paQj_8vv(uclg^XjJ}Z4)oF}JNXx{o3 zDgVY;?G&#BziZ#REbc!~kM^H^{d}*#^yv>qlfFEBKV5Sr(_Jp1>zg(+%DFH5uyKQ4 zfO*6X(Jws_>G|=S;%*hY_K}G@Q`Rqrz=~GXKJm^zb9StPvlt-t7+)CwuN8cGWY4($eW?yIe-sH{9D) zn|qqE@Ii8++-G%(+ucTgc)~t5`J`O4cqJG%se6LPfuJy%2*rX5?U`naJZdg7#&`bw zQgUFko>#+;)iHjZmGhMf%GkIIo+VcwE88L0$`{0aW7UVuy^%I8%?ywHve%?NV|cT1 z|22UUE9+Iu*q<&b?d#ZLFT$(1`md3L*W5{ycEzW*?p#)rUGzA4-^B^<1HR~_vwO|9 zO1QqjT65B>awhww9xE!gY}TBwQzsL1@OtRA?t{Uq54@%-DK*YGZRa?x>vrO&^miZ>ePTLv{9S+%rpl3Z|BpkH#=vkzaJ z9C!O?bL8p7EPndjyzSBb;BY488|T!TxNooW$z^-&s1Y8NJiWV&$$qKAN}nkkebczo z4_vUX{PBGCdFhvOHYqC;zx+Mx;vyNBp`9@l;yX-(EGq>8iy{gR8G z@hZCf6}lUjn5T1RamuUz;WgPE;P4Op2nv7S*>(xn7gTFBneBaeAjtQT&y-7be`ZY( z`P;0%H>jN_u5ng2WH%c!WnF3y{hPt_t$b$y`ts6 zK$U{Z@B2&FFSt3^jjuyv1GhnSZQivoEmO7mT#FiyRbQWN<0?42ICG@pMO%Nv`Pc7*X z3l}OreDA8^s9b#avPPax%!1j578R2f585VgQ~suAz_U;jbg!!t*6!9BJ|1;8`wD9!UJ6aywe{W~H@~+DW_Ak;#dc*m%}wp+ z4f#iHIVxS>_uYEB#J#U^%ER|RwHwU-O5Nga%-bqhfBeq7 zrajK_0m<(a1J0E2hu&JYTPKU#T=`pW&4zoAt)gT-w=7a{-aSENPs4Ae%Lfh5m@NR6 zzhUw&J6>8%)b^kGnZ@s+tl7oK;Y(NTPP~^^FLUk6%EQHnZXHrHQ%yg%S!?or%b-Qa ztgQF=9}M;|n)F59f>+V|-=cdJ4qdla%B4QL`>ZB=(gRTbTW|0wr^B_$<-n!uD;9lC zva8R%9h`1|R%MZL_|%-@a+%jk4-T>|Fk4W+Gg*A!F?ZLlsQDh7{_@<|(0Op-2buhr zD>o)yo3UbYR{3lBHz(CT@e1d=w#Cm?aXxMrVf9eLb*l7%C2cktwgoRQH(ysyE6kqY zG1Jt&=UUr@JH<6UUnXj;UHw&j4MV+#J=4FoMW0tbj?H)*>?dCQrHP|zqRWDMncYg) zS4*#VYslXyY(J-Y^{2jLQ$B2PmDZkA^uOzgncGQMHW{zyHM;+FPU;`GaC?wzF#2wflba*N8lr5E?LdKm7l^eC~Zl1@4P^;q+a=$M`_?=->w_iS=G zK1V=WYR<;TPD+=BV#>3>_)QN|Pe1A#z4^zr1=;3o9d(n1?b{!hr;453INiWUe{!Qpvw~^fi}gVDFN4u9JFmr)J_de^vG3n{bfJ1HW9ntSNcNhg zhqxwPzxpgV%4w+_tEIJP!J_N?|Np<1_*Cg{Oh%r9>!R6)jFruEqhpHMrKas^{h-s~ zdd_t}=k*2gnv+*6D?JdL`_$9IZ@QR@|6{+{OS{$-otJ(umlNo4)IQK@$G!ePx?A!l zKFgRTYZtlV_(@kb1yA<)^C}#6N!14HPWmNWO*!8EYM1}inEtb(&sNS7lJGuK*fVR@ zVpr34E6Up zLs+*NOwZmi`7_Hx+ear4gt)(4=my+^8Ve{718kt$pT+{9G*-BkN;Wfi6>u~)D5y< z_mR((f z@in`>Sxg1r`wZx=9^8J`FNj-TkzIL98>H% z3>TJ(Gt55c{_Fv#=7vqPq!pM~AB+%jH#QT@S@Yku{%YN2vy!O$C&PZ<^}Ey{wUysY zBG76&!!~v4!fFS<N$ln!Nvk#^qa2AcDVj_5!d7l z7kV~%%p{f_R*qK> z9-TE!@{N-!tMlELn%nZHIH$hOxB8PK7CXtD_e`s-)n?0YDFTbvb{eUPShQU0P!8G` zwR^U9$kNo9S`*8A!Dowg1lZQ`d(SJ^c=6NbM_83I-;e3;8{!1w+qUi6xI_4OUX@+~ zr|p+%&u8=hG5*4^?7+dVlFGh+bvJyMD?VrZNMK)y+Lwa1f>kpL`TaRw&z*TO@ORJ= zmo)o$kKn~Jm#ptTVtQzkB%qajpjb_!(a_OF=}Q#H#3in=A+`V7K5M$llrx8ZS!nQu zx7O)|lep%!1=SiGyE6rED8-j-UoP}CcY^QZ_y2EX{@*!mw%G)a-;aLJeH>%n9la-V zD&NZ4Q>#Djv}YIYZ`pr(Y5&=xCwA;lmz?aG zIPc;6TJ6LQce$=z-FbUcO|Ds0Wli>m2SwiR6a`MUOiZ6zyPIQl$MwqL7dJ!zFOr+y;K`7MEN)hCm0ul83c5TSSTYpDSJT&3` z%GFE`N6SkNS$&Wam$y8zD(UdagW*eNxU!w{bktw+;@ZjhFB>9L*=ET1&UBW#eccjQH;^lU}pK zdd&`v6#av)nj8&N9)BsB%Gv*Tmp?1_hNnzBbjs3R?)tFTF<}AwmSZPnS_H2ZY!k?r zxVq!fu6gG}8;(qr*cU!4!TIOzt>Q1FHC8b>_1={3T0A>8vM=^qP4=Eg9W@5mdK~T> zt~u-eIVQ5%>*q?t-#JPr65BLZKe<)Adx_7a<%!Iu|MmsX<(si;#bQ1Ok+$C;|4+zc z<9_?-Ow;W!k=rXe6OPr!M=yE0G42ba+Ljtk@gviAWj*V?a(9x~0*RBN9NLu(tEaeW zJy`d+*y1mAO>;t@M@tOpJ16R?@yMvg+yT zgq+{T7voqgja|Aou2)~+HcPVp(WTg0Ztv+%oA&FRvW{ff@vnUI$tQ;voUc)5y_R!A z|G1UfL;o9cGX?KY0hK=+YIX_EV^4~WF4UYQClPg{k?GgxD2>i5yJA7}55=07*L~Y8 zc5U6_&-^bwuAZTyaou12+Pv;Sr5{0|rCzpv(__>!4yM`MNI4iS{D$R0!Yf_BC9`8| zjjZLecI)c?ZqhsRreC!B+ve(VzZR(!N62`#&yKwM zec!gtnCl!fv1Ve*p5kw9OAf{DmerI@(R$MPd1~zK;Pc_p*C!`Bik!*OeRiWsG0)FJRKTpC>uFc=K9+OYWsJ=B{8VT=hJpWYf`{~!RrpNalZ8V*p?Qxsuo}KWz%GdaKmXEUms_DWOXbo`uZe>8EJVJJi;w! zU*BhX@R6a<|5r2iKMr!e**HDhzwtB6!SzXRtjm0sPXCa2?|Hn+)hjCx6*JvDq-LX< zw+__)wg^f(ITb zi{`&wRvojCT2`BV{%N@Kdqv}ur97RkPn;AuuPxZ3KWSO?r`JV`7u?MCc6e}mqR5}7 zZ&?~OyF~9FICJw~hnQ@&s`y!vN%Q?a@fbcn`_g`)mB7@CdmLq#$=>6%TUHg#Cco2v z+R0;aa}T;%1oa&U^*v7>>TBof0GM~g|ndq3FH}5o;8+^&B zKilMDe?nvXBc{pS?E4M`t$K7~(?-{VKeg+9-`vR3tcez8>xh}Wt$xko^3<17bvONH zUSiu5@NwZM(U4BNOAqeH%6@kL7Hqq}((PgDnSJS(W4*5| zdWn$E{aI&HD%?)a7k|HHw)sXKiHJ9I%eL3F#%s*Iy{kAw?BCL!-QJ;@M%>q?7RVI* zeP{psYOQ9`KQ;v?(@>G<$b=3uHSH|jP*(3wD?uA zY`gbHRZP9bt-n5F)6B1_`aaL*_M4uUXYb_5ct2B6e5yOs@iwWNhf%%DUx4hNB4^>0 z+sM>uu=KibqU)lR;&o> zl#lv>=0D|U{x>-KuB0HLLh(xIo!RC-#rNVqSvNjX`@2B*Vcx!2=4T9r0f{2ELJq8R z^G(;AoNY`w{8z;y+<5M{Zg=jJO)lZ0OLs^le9ATstyxoj?}EZN)u6DO6~62CTy=l) zs@-B$Uct%5Ne>?%YcILAu+yP8wS?F2+Y8H*t{W3STc@QR1C2jl6G$rCWwlp5J;9N2 z(v$@4m+OQa)O0E}7QR@h`n~0C*y1_ycEw70&z2qFz7V>pc7~(0wYth2#viFl9}@i3 zeeX4d6tB*^kk51CyVzNcH>wA&++>K~|2RbTrF8qfEo!ni3o;+?ZBPomxtVdUSNWs! z7xGWqEO|YdG3&BN^0ReWru>VR@LR94`krVNyrgYiUTNIRbqg(PuDN~qHFtt){hpK~ z6MU_sB&)sFm=^u|EA!?0;U&SFM77yxt<+2T5EQcfRmMi=#NRO!Jj3)u+<(GEO{l)w~qBnj3KW+>s65AD$o=CPgubIP= z&u}5}chJ^lOIMfPlxE-M9Wwp4RpuPq>72pS(_ULnS>y0>f26mY+0v4`Ur(Ny&usVP zxs}gsLH(&4re7&#Ea{XuEyAw6q-{#}!}r=c%?gbV8sdwNrE8@={kCcAs?FIB#VLj- z>y8JM&5TP5O3?kUtv09Jsq2eg$nu1|EeWZ`X~G$8x4fQphkQ4`;QNaqZI{=|PaQ|6 zJMY=I|5;Y*qemy(ieB!%>ecL@Y5k1D?p)RPz%?sR6z!h5(0zX1*QJr1OB3dC7&K+@ z?%Z#AaN*qR-g(>gq`MX$%})vct#|I~y4O*^MCxYy{JqoWU8il;sJQ&R{)FywrNbxv z)7SKEtc<>$<+ZW<3 z^fsFn(%;^!g`GjKM3ki*IJek5c+aTUvP!fu_=c8JqkDR&;*7P| zL$|Dvl2DU5`IWzPQ-u(_=G6rkH6|@~|E#?wzGU&^mV}g_evgwpKQY~}juTfrlzUU7 zew(oEzgH6LvZt!CazA+ZFyM}?+l`%y3+F6q7=roXa8a;}Nz7xwbxGqLvEIx;Fx zJ^s8ta!2W%*ObQ&?F;69f9w-;!0X!Tf~TqnEG{s_x4#Net^7JYTPly|_D11HFFWJi zPwLt^ZTmZce_A-3P0LNShk4$&$`0>Tn|wX@S#Z>%kaO>Ut zMD8mI<-HHu{~3y zmEcY5l#J4D-ul;Zy|mPDbLJe~i8XGUr9|`&x;d^~^wDYB|9Jjw-w)Uj| zsI4+vuK&}zPKkTcs#>v!N;@`q?BBE@=||kvdLH(*PrD7ziChj_d4I;5L%Sc{vRV+a zT8!tyu2VPvKGt(T9H!HDKHZ})U-J6#tA5Jbvi%v`}%Qkj0h$95K?C*Afmj9uf8S zU6jxr#gepq_GK@f91Z01&v?4`f!p%iHd>rKd0DF9)`G^wZ813_@1D1>KPLGtF*hOq zYI^M4RgPvleP=g6PrPt&b!Fkk?HXEv0h5ZfwkOFnY@VrG^7ZS{34a3Z70s-c-S360 ze_F1oQLc1<(rS03V?w%*TyJb}b-wNUxX%Bm)wLDu_sk~b-3;(ulN{p*3V-JbGB>sd zd|r4;G^BIp$C4(~9HD2IcKTR?`k$cke?ir@|AqpE(z~n@8K#L^SzWlvS|}4ai{0|W z%dC0aPeq^34qZRl_YC_1M`6CtI@}VMSKj2bU{&i^`ZFWS_0WNe*!IQ38y)7Q`fQB5__dRVK0Ildqp|m#$u0{e*j^;U0UBgYu*#s^nK&@DNQe~rj|`By{zY`@$}J|iznri69s+D zJJim#mrXwV^V94b*(DSIa@(vpH=A?azJq+FFBZ+sHZPLeywURQo7-tVoDVyl=1%TA zQTY0#z!BcKr@~e-Ld&*DZS0MF-uj5`|DNaF%BF>kEu*6mI)|Vp_iJ zKz*WI`yO^s`*(xpuSdK4a(eGx+~as^*^=&QC)4NLR=%IJz;NN~8ChNXkM$KkPh>n| zzR`~%GgG*C)hE|YOkw93ix@L2-9wH&HIcuip<@zTHhKAj=~*TZ!mishX}2jq-TB^M zTw66+>cx~96|cAFpYUCCvoQ8O_j0Qr<{SG%AK2Zp|J`w*da+BS+9rz~U7-Sni*Ibb zaL)8C`x4blwqlHG4^nuxrypG4(4QCiy!h4hU>o&DZx+Gz+xALGo|8^fyj7h1_4Z;{ zy>-{lUb(-@VU1MAx;+Aa_0m2z`^>qZRU&XL^RBVL#YDF7%W6VK36A1d=ciRm{(Ww6 zT-D&59iz{b_80>u-&Z{weAVaAl6w65Wa`{`N5mW_rlm$)_3n>7#F05eV!LK~y^cOt z@`+ddLAp_@|9FERO?%xXZ_L6sn`yGtEhbI&39jE({aa)08x~e%aCo0h(U-3&o7ism zpL-!_b#2n>`$`9jV#7VQoW7fITR6_AM*sh%Zp$M|2K~pGLv~x)_-%5T?yzD12I=eJ z@~_{8mE3FWbm%RS<#%_{^j-4wBIh=3U-lIXe>GnZedZk1m@u11rm3Lt|8mxZPk$RO z-Qn`MwCgsg|M^d}d3*4gLS?u4fycEjDE_KxKX`A|`hzKcYy3G6ck#&zPf4n%51A-( zs_k}`M$H}3od<1xa@IPExcqr3z1-VxCIeHW)yf9@h5iCompK00#5!E%xahkiNlSj` zk?C`eC1m+|%#BTu>?pXE&nb{0=%4KM;McFl+a9u28Z)(jEUrB{?a}MW1~p~O?-f6t zI-k<%YUzCNUd39mc{w!|x9pbkt*yJ`KRrr$q6k;pcP5P*R*~D{tjad=t_NHci>%IT z_{~&c_J4cJ_@&%Vxw)K$_k6_HTs^Y#P_fm$hxy+AGX!NPZJ2Kn^zg9D`we%cin0U! zlUF^sIDezk9j;dwHcoa~m1)<%tci8q>s!CAuKfkKzv{Dj98E;TwoMXn=RDjLUmkeZ zf4Y&n%j0_g!$y}EnA&DvO<%|mvd?(crzZyzuKCU6W1MLfs%O7&r$EugkAX8+e9h;5 zS<|xhpdtsT`~$Urk8Lfh+8s4d-AXpPkWpVw;=|QOCi`eVjgN-AV&7c-*H)w)AXCIB zcx`{{SB{z=d6#9ftj#s%G(JvAuxauwalA2!A#;LBcX;Jt_p96+&hLAWzcW~T$uobB zN4wguZ8^uj`{k~eooB!Ktn3Q({5Jhno7(48on_MO2mOra8%nx+?U?&~X@RxNdz;&q z+H;~d`pQ{r&tAHiOM10-1IFL&IKcC<}OEi>OX?o)A;*XwJ(k&+9Ns+s>Xm@&=T6_fMi z>c`q_mIndVC;zU0X~`dRXx`!HOd5UfzyAEK62)E_+vl-;mZ0;Z6(@X_-pJhhYw{HP z2PLmBo!xmdEiu_B*ncNn!TA zuez323Jg3`CkRHZaNOQ1F*Dq#>e$`F=%mGJ!l{4Hx81zQ99wN<`DMM~{P<4SV)sM$ zR;)e!ZPv;(r31l>7x-mNlCV1ZXOTMBZlik(3{2Gyr`PBY{chIy zxKl~b|IjWCx2eAIHcOuDl>aNt`*6CokI%Cy5sS|+y;CH(>)?Er4gMW$LT}}jS4_F& z%<;Ees%dqkO8VP>@s0bdWMU1Omh~C@;p6|+?DOf8PAT)Xr-%J7Em;#ho!bCcIhu`p++; zuj?hg{JC-}e7Bdhwfezz6BoGuK2TU5ZntcafcI_RS=RoCthRg#Ii_mKXu%cpWsYNp1*qiAS`2{3tN$I zex3d_E<2H0VU`C00t#v7i@GQ7|F^W_6zkJMcA>(m!i`fOynnCTsm%0u`TZ89P4%fa z?w)M+UH&JCS@YWR0}&U~C&cVlNW8W{Q@3eVx{~eExOEZRHq_Nj$v0X!=cm`ZZVQ?H zvN69E>zA)y^-17ByVr!gk30^KKD|ER5wvWV!oo1Oc=KuhEw@zKAA{uo8z~$1`>igp za*|r6EVOP(-^wX+7FjnMnT)Kfri z_b09P*F6wqALp@Ur<3DtzSWz$B{zKiY;;`J(&yK!%x$ge>`Qg`$^W%ddr+FFYr6bYdGd)RcV??6>OLJulue4xah9f z3t_FwCsKcdZbYg##g_DcD~n19{_V{ysg{4{j84_>Qtx+HRX0don^pb)-jASgIfs;r zIk7gN@kfE#5;+==RUahZW{6jR9HQ#;b$YhsLZ07pS09}$nd$zL(avdGz$=Sej4vfy zs)b+X2<59ikDD9j_H1c|#AJzY;zEnndnZm2v$}olqmdS`&XtX~H`V(dYunbHqwt_r z*?QJ;p{qLPo11+;UEmDY`m*(~zp&lXS?e;Vcsu0$tiQxltF~9HNN72G*0tHp%jT^p zZ|~*&@^XTz?&eD~54S#$O?}yaIQX1vyzA06Q@OTrgmrKj`_2$#pM3l0u@=n~2kR8p z#^4E=T54w`5~noYR=QKEA^KwRUH*pD|9iFv9Q9N%zNX3aJVxfrvO@+;8hu({Mfax! z6&ALIHTHBlyv&>=64LnoyV%(kZ&VM2++c_={~N-Zr#U_QPA1Q9U!g}QJw4rD?)u?0 z?fMh`Y3wyUCst=1GTd`NxNk?+Cefoj@m9OLlP^TBj*i^vYE$&lSK2{Yz0zy4^^Rlz zT3Di**mKO4Z*yK-eqh%%uT7S_^EKd*2x)r{5N?gLL+YcY#t?}`y>6-NB z(u0PZm+Lbg_p>rsrDS{OasFB={q@A1@YEL*Kjdr=jdPr~^JGy=sM>nJjJ$y7bFx3| z>sq2|eO~gQT3^uNg8x%IB=fGzF;DyBpw)A8UA)VYyDdxS)yg?D8t>7r{wR@qyk^Fo zxJBC;_Eb)r8=9?~nlf2!yLTdU-hq1F`@hu8gxhqlE?@V3#`bH~tfvB|J8au;*0fpS z@nikIni&ThRtD~Uo4)t6sNHfYnOpWR?oMW0?0K{G@0HHGn{+p-TU$m)Y;#pj{QNiU za`D~AD{^$MEZnB}e`(Xw>|9Zg8!6Wum&n^~+WPR&J(X2Y3^zXPJ^I+XUysB+rF{TRwh$C{PF7S2d@@;m(0j)bDo-*olth=r0Fti zw&S%)qL%0P?%KcK@mba@SHrgNM#0{}8@Fm{{8BshllgC!!|b1Pass}6E8CPV7VemR zVtr54VTtt&bu$j$+p$LZ>&D*)kIqnt$?;s5y{Xa0x3kck$@cmRmRn*I%Nc!5=t_0PnR-pNrF7f!&;NhSU7VqK?(F%^8(%vA zYyWwcasB4sWgff8sp-lRNDf{uc=oPrMTpAKH=9k-pI&?4X}Se%kSwkxS`8?L+$9OjV`7C`4xTsc}Z1hY})uGKlSh1Zwuzg>t|F8{$2mj@>Kbx3h#5* zG)ok}Z0=51+Lw~2ZgKx%;I9?dmwo*%?CL5!f6ild*vg$VudOJ{Kh7!8b6r($;ylen zy+<~scf!OAwpr!s{8@K>`%#Xt$2k#2dnPW6Q;R&-9vrY*!foo4C7j)xx7D(0EX;nw zK0Syl?^jV}Lf*Hs<7wxu!16ZcmXO`?lj#jEHZng1Z&8%pC#7+=1))da`?AK-63(` zG~+D`EU)ijWb)c~S!1U5w52XCfy-?7UXYP?m~n0SfeTkoPL{QlPh1%8HFZ{X)UAXI zGs?ehHB8``(Uo|#=EAN+#e#2GlehhpG+BSiyltg*=A7lzID&Rsd}*{UR*RPOZ7g{Be35$HUnicW*9|pY7xkDi zRvPE5f4uqAJI(6{xi7aLeX)~&sz&(fE0el+YaIv@_3)UoUt9C`(w%4G4|_ked-O%| z!I_`J^_vgHd91WPlf7AoNBdUP;|~Yx_gf@=cKKT`FMsvRQ`=Da+?{;fmzFKyy0&4z z&e{U2T`wN0KV73zcu_-y<7?&M+(X?EA>r#i09C5P=9 zG}{dKcYaD$TAbjgzAgFJ9H-m)2Q>XoTYc#cy9XNoN%vhdxs0`uqeXgBUh2t3SqDz8 zP6^4J@lmg(L|=E>Eb#i9{u z=dWC2zxA6TUia~FclO7*UM+DUJ1nH0TDGl>xELeW^uaTRf7(&g!_|jW9{L@=6}@U{ z)};MgrYmk*HDRxMl=rEh$ue;apT2)ET=di>pkuX_FSBorNs`#{IM<8fU$#1U@xR%m z`a?ofe|fj&-UGIxv$RvMd+po4(P>HiN&mGsv;Q8nxc6mx&P}Cy*F##SFE_o8TqNfD z+cM&;;K3Rv%iWhtT5I)n@BaVw?6Za1!yNY*@kA#Ir^(zUftqw7TNXdl+`rPGqDF`Hd-Fs86z^)@^+`2o87X5h3`+; zECG$bEzVCnW|6&NzMVjg)du@uE9KzW!fh#Qo}IjQ$nnbal89ZmcPIR4;SF!zU!2#y zPw3kI);~HMW`-tfCOqNR{l59MBln}O*!nD&jb2IIc_(AnocO-UQsIs2nQhGcrh5Nk z%vD|8L^k-X-|2ix>vEIF{S{Tt>jTwm^`|}W)HwF}+jEvzMSfRuL>C^{aw?FD`ahrj z$d=jW^QOsJe7fJL6y)KrG4a!m-jsLW!#^tqnDk#}n7h^Bh+NvCnwfl3M(R4VHhyyB zyxeTBC)N9?CYO7~NuPx`GPe9$5T|-5_U8W%ahY)S_l4$CtK=@rlvxPq9guZB-F;|l zAZYz@{t25U(%|vuMOFz18TVKV;&hb<)DJyc&n9LG@LC2b z9^GXypd{V! zs;8ZwJ(LbqhPPGsXiKd5m}lhc=VZ0?+MnYphQ6LcPYQBkZYeMqVZ5(ZQFZ&~#qNMT zlaBv3ESq?F-UTWCeHHx7My8j&ZtD7Oe9ZLuWO~Y{8yg$Ljx8t-^ZWYDCS=L6WBx67 zCs>FSaABL z4Za?C??)bL4)-s8$#FRFSXey6){n_+{!ABt#J4^&?foX9-RHkuEfkz^VvdY-h3Cp^ z`*;q1`ZDnm^WP-NhSj_4FMNISZNi*WzXO;{-+nPzZ<@3D5$Bw98l@V`uC3BbJSC&! z?>xmOxN3E#hZxJvq-#;Hc+_wBeiU4OWs+hXf;ZwWrX~7REhSzJA*fg@^lnxZUN^^R`8CNdy{fgkC%{qS5@`IWr zk}kYm$!t-ic2r_jUo+FJ{ed5%4nH!z)ABQP_nhel<+p@2~dRtmbnUxq5zO z_j$n^MuIXOJ%6=-%oMiviLbAH``e)8rZ~3}(}VQ~Ul_?LPxtD`M^1|8)Wpg61#em9%0>TqRS_`h$wJ>H-x-g- zE;;YFc>h7Ede)0>wJ!xG>|UA2bCX&7#m>;w#0wi5BaSK8dtLn&nSa_ZIU(&CX#B4&WajbK;7jVeo}VvXsK^`i`Kw^9 z!qvbZ6MyV3%@JGwGyG|wexa5S+j`-ztmR2@yPwVesiyRALbMyx!Q>cmo-Lo0HD+Y4 zKjITm$vS!AT=O6KJ0Hn7i=6uZvprlFw*ULQtoy;e3bT&a>xMu1_S)dQu&A}Aw?@Lb zrMoxJmAjJVvES-Q=!-2e)(WrX3_r39SO0!+sV3DXLuH<#-2v&j0XDBe38H zzc{A`YbgC~iT=!Zpjcg2c*>)PQWMIi$Fm1>T!=0?e`hB9tPY=)UvEpeBBy&imev2g z!Q#rV+iJVz-g7715*L)2cJ!C}A8Fp{^Cj|auI?7vFlBqGWcf}D(-^6W=!F_3<$(+L z^SW40HA>{2ZzhoYXT2FOPHQO22&h7ZkHQM?yhg{oj#bhfAMU#u=-=vHij@ ziGQ_dN+ieqp!}t-D?|@A+O}JlvhL@eC%nPkRl7msZwROs|8va|HtgaE#6#)yHr?Ve`qcIYfPP#B$<{P33O>2-6aaLk#_Jn3-emnDnb8I|i_gZIBo z-aR=l(iFR_}y2zS-ibwO)-6`aoX+o$G-vzh5pWy8G}l*XM5$# z9lmD2bG}Z3j8FW%nk%ah&%Q0bUFpZ6C96DqHzk)7m9WV zVEdoV4ZrY|Z>pUQn*VzgS60H#pAwp6!7=sYr8xEc88yx68{c;qOuj6)IfSQf`J)ik zm8a{b^{YDk-nggUq;96}%U|jR-s(&zr+x32s7|qY?zh`dQd)k^-2FdS6kGi|{_&Qo zU`U~(;=PdX*A_7eo^uJ1%3h?K_~Ltb+ZL%a{a?;%_ZWQPvusR1ZFN&DD@pFZ5RMW{X-F5dY zrU$MU<98O>@}zDkmg5u6QE(qE2@alfXI0fQcVA_df6cv#c(==*ee=$#b?CJ$0%1n0H%7 zQ?pd$X~%EpOG+y$tRuF~O7MPBGTYqv_RY7C4Nh%aT)tDezV9)c*-fiXX`h*s*f%vU zd^y8|=ezQTNmKP?L#Dm!^gVycPIf2DWZwQAOgW7EfqbmK~Jdp(dreS+7A9tG4 zS9IrQ>ZzaijNe$BnZIpM%-m_t0ZwIwYlB{iFlt9XUVLxse^~$L;J>SecnO?%_{`ED_MuWJ|%qw)#%x?B>m~&uqv+vB3Eh0?X z(UD7BY$aAdomHiD&Fja6$5roV7#^)!Fek`P*MMuCP4QRu@+9`y!}ngS3pJQ{Oy;P~ z(wf!Fiyvkt{QjZiQ=|XC|F}U7+XKm0((L<+LiDD*-jdxE8@X*&lJACtwSJZ_cQ{O& zy<&4l`K!Eh3@RVg40KA{Hh4bxdi`v5<;se^>e7XrPOG2TO00Q0t7_x^=#RNNW=nK? zm&^`)%(SjpQ;LmE$0peDckSfdpPKo~|4szCF*Qrar8PX>8oYB!{wduxw=#JCTx%D< zR=lV%);SH|t+8Y`lJv!Uwe!6Fu)wX|5Y<;$Vtu2gByTTT7yFR-TS@ibb z(!R5b54Nh$NpRpaTWFr}^7;(NN%tJJZvI{@H^VTfX2X+kn_>+?_LUqQx4AuQl@Hu& zS*7GVVS)3f$3gii!EZKt*KzaA@(aH;>)L7)8FqQ!UuNEOCNJKR=sMk5X8*Ul$EDu* z-jFDtv-{wwgNJwUZ~O17byhgIZl#8Q@%os#XI$Bx3MIA%PZK$yvTNGLea$Clu58rY zq5F<=)`ZWow(eig-+UjHQKZDNw8!9(eBPlCG3uI-^%rak2ZCbb{jO{*NSh5>f8*eN zZMDH0)dNDe80sgiRN3&$YKKyDtjn{))Snw0pST}vQ*divr@+7eucX)sD{DnfAU?XqEw{fq~$&Y_KE-Bt!dVhtQl*&v)rrM@`e&J;Xrx)JueUVzf ze(w=`#-nX+pKkr&UVO0FRl083M3KVPdB-9ReuXptF+P6I!2jp}jwN#LesB2rg?wjT zUEKkxuwQPtP2cSUlw z3>{sp{zh?d-riOF=lH*6&2s{5in#>8aSF4{eD&`JxBSA-;k%~vMc&Db5D4$Td|y+^ zpZn{ID|St@d=9KwXJC+-`QecIiYc-Wh4MCUo2SO2DCmNQ;aRL*Ii=~p0}^d(u- z&vVm>h}B{()z;aM9vy14UG%WWX>MvCw>`Jrh00y=FY7Ij&lW74ARe(qCwTJ;nU<7t zi9^!X*BVd$`yyS)cP>b%d-WBuw4AqWjr*DBTpZJEBAPo_WwV^aW}KR{JzM|zuM=gRK4v*m(tHxYLN@%#C}f? zuKIn!EcWI69rs$w>_w*q{MPxxsJ7E`vBbaW;*l%PUwL2(E2N%n+)*_pM|hKww&&rFz++V&DXMKuY=uRPWj@rEj5OJ8)*G0xc`@y zc1$CA!~C!{1yVfKALh1daDNEhgKYX`)&YIV4zl%8PtwFE-_C zkm~X07awl3{vvm5XU0aA`_H=1IzQj0{%py#PT%Ac4^CZM#&nO%?!wO7yK80`9;n;6 zTEfQP>y@I%`ST&w(>=c0Gx4@b&;7O|KI*4raZ2EuPVJNzTjuzL-<8Ece!;PN#V){WjCqf%_l#=UIg>3yGOq?QRuRb$FM> z()gKz@e7(3*d~1b+j!gRZ>C(XPTtb+egD_4_gVA0{MTE>`;u5?%+zgBoch0_dO{TF{3CONFFfxzL(V@7N^Urws`NR*U*B`x2CsZ3 z-^X=+=ZtO~W4NJu&Xw~|$2*A-^%v4}6eh`8pIDJ~V&}%!ev6j0?{$2!oNpV4-Il6n z7n!$O`8Z7LmU4`^2Oa-r3W^TYoGNF*n*7mEIma?^@`s&0X;05@TJXl{PY|=fmm{@D zWy`uIA2N+ptXJX>$#%T-X%4XBTYVFz4#kLWw42*Qp!XzGX-~ z@eRKFbaqj}wi5Q)vt=9>vuqKwY_P2Xq76zXCeYW%&bQYxlXy=9}}FUd!Ccc%%yXq}VSKIL7^ z9NT3|x#wyX<>S{H6>aTlcg=9#Wj&vbA$Vz9ROUm2&up6E=cS@IPyDc}S4uG}alxDb zJ2wOFWzE%JdGj~MKouat; zoXNT`A3yBboyYcjuIB%ZZ&KXOuIY4|ozc&~@OU_%k{c%b9&^{xGJ?>fQreZN@pYu;6!`OSJm^>CKm0ZY*NC!q7+H1c_FuatiD@?e~=+U)nvjPCBfa_;Y98 zzK#EvCcIWyh@Ae;&&iiso>n=1PV9k$F*S8QQ599k_RjHp=M;W#$LqMoZ<0L!f)!q+-^!+ZoSbKWVpUQ__nEf$6Lwt4 zSXZK_a){GTvr>vpZl~R(^dmbIcl5|ys+8PiwRiDP|3DW928SpvwXEcqC?E}d>*;AUw+@< ze!9%(0z-VsqY%|X>*?M#`8>BZr5?T9_}KI1{*QYcS1gpi^|(o{<&f{CnhgSJ$2Ln% z+W%>Kg4e2`*`jAu=0q*kmrOY<-af%!0{Ewx@p!%=;u}_SH7o`1pVE&I&lh?blp0fI?J6qZ2M11nkjd|Se zhj%DA&2#JfuKoSdflz5a>3J%?&TE%OYP~$x@AkS;VwuRnhp|y>eXI*^U90+fl+`sk z`0!G(e=T3)=3e&?+aTREW!1~C{PCCKPCYuOQKQHYqJbU(n zprhR%;%Ave1zsW_ZlpLtq^I1UlHIv{sQ2z@w z{$a;y@knph{6kNo4<^Qm2Tc(YRQX}E;E4a>;QPma_q)yZ`NXuY^O8x~L$B%H{xjv+ zcUv}kTzuWW9<=@eHvjNuaubt8zUS55LK~+XD`mOm_`c$nRPlngznT9mo4$20+~m@_ zlBKh1v0Wc)p+`DbD3kIl#S>@vZ?ExJ{e0x!t2H+jW6A`xHx?~hAd=xVeS@0q>h0b6 z8+B_w3#uNp`T4u!oqUSwvf`XMe#kcx=^^pMmkhaLy?pODAc8>#@6S3+G(Wt?JHwdX?$@ zl2of2Eji7wH0`+chut?HC|Dg_Wco$J&^Mj%+Eu{B>d5 zc;mr>^Vd2-_Mdu9h%Q{aN=~BaT?5nilTjM^QoCaR9Q(Iy_M8Bl zVqx)V=Wl({5#3!o`;VMPxcjq7-TI3T1aUBVOp!KCxE=55Q}g26wQhk$st;5yGSttH z31fXJG0l66s*K-OO^bbpWD9RCYTWCXvqWAS)cym_zj@!PSk)-HdD_uZM~Qug^S@`k z>keLh)2`^|wWEfXt&Fp}4lfe5x>0eY(dATJ{!M`|{RY?kmM}abDW7*s1;pK=aSLt)}E~J&SkBek>mRd)9VCi{46&t1lMm&NB3< zs>%NK*ik|7OV5@M>AA;q*+Aoe;PuDK2Z})Jj~%bFOv`zk!hFUn&|2XLx1sK2vHD+E zlWJdz?BA`%#B+7Z!AFnowfP-iuInI~QENVJZG%;b&Ye?!vN3;myWH3?Pj&C=j-|$Z z|57TVR!rP3{iCBx+To&ZwB)=`o;_(#Zfw>#DIcC$ES47E+r{4)T02Sohepj+wwnjs zSZ)R7rc^FlE>O8zeFc}%ol4#>2FEoGa&G?b(2xmLUtPF9VwD`s`D>ra8&T0rAJr&SSBpR*_9E|^r5ad zy!Zds$j1R@XD$VPZ>;_#zt+_EqmJWZ5yNdNIW9_STSM!kT_+}ZOsws``~8!`yb~L~ z@T|Hsn|<;A(;@fI6;1c_niAU& zN2h7&Vf@>^AGA91?wE-8+5X9o5^ zI5zzI_kS*1*_S^cbo_vWqxoqzM__QAr?f@&)|}G z==Jtsjw+Pw(cKz;V9RWCQ2P&5{wjTm;^@4+t9DB9qEjt%ie(%P_}6JQd||RkirWp^ z|F8D9DcVi)U}Zp`=ax+qI8^fw$QypP`P$8X-)@FjHbclB;}xGWj!e4kaM@|YM$>bW zH^SUbHXf*G&DR%w#__^r*?)$|&ur&!l$(~_u>S~8_t~G%rwPVMygjUc?ZwGU*H$Xr zy%QucUAuOvO7A0{6?4LEYz=tBLXK~`sNPGt)H+VXi9f*^vioOTBF+G>yX znN4(DyEHQY#j&pJR}&@HiZE)=iCW}i75wpglc926Q}~3}d)C_9{g-Xp)0yqX{7!Mx znXmkrKf>%aW8{*x&2no}?)q(wDRY?OH@!eT?|?G@ySlHxw{okVi006)@44V#t0&mH zd4U4|S;y4JKaVdf6!dP3ot`Vgx9!uf)Jsn;if^^@$z9X^Zuu!ervkZYd5ISuu8px; z`=kmo{`dzn{=#$OUmJM*pGolBdIQk>kH9y3Zsu^IryakqCmd-qmwx>|@6zX)zQ*Y_ zuPe`fHaxCts5v#6Y5$3+t1qQ8=PaMZbK_F}qnGvze+pmhaG0Cg&%b45liHWZv*mWW zO}1V;A#&C6WBoHSv6PQ+MskT_D7x$$71(mYd2k7@1GM=e9o}N z;4pap&;IAG?SiL0zqoTAXu7#w>FoxubS|}(@jSo0T6ZeXDZi4x^8AcFC(W)NvRV?c zT8#I?=F^T_4%RkV&iv>+-8e_=*`1S4+Zo~>rWWqMI(LEN*1V@nRXG0a`N@g6n9IuZc6c<(l%M+b)BI<>zVcJilg^)lwcLD# zx|9@?UgRJ2i+xuD4eYd!G5fR$Zd7$Z7SHfB!%HX}Dy*-816o``vYa6yKg{ z+~b@Rz^wdqtH;xH$M)xEK;!=LOie1wSdpRjwdRmy!{bYnLXpt8xMu28y)`6Y3G0N0hIsL|4xWc4ed|2O%u~=zE+<7Y;au7An5lrllBXKr7y*f>{3ykxfL}3b*OERTsF_;zt#G4 z@4ne+vtIt2)Xsa8(vIpWEI#k?F579B@vQF;mmKWbxP5BS!)3Qj1Y0BbP5iLFH|0V7 z*%@Dg`d`-w`>Yd|4efE&cd^-|S!T1W>eH^P8`s8^Z%e)~Kj3zbuvWubM&EA+$LkF& zCK>xInH{RP=hd_i3tbbn7aA^?I9T=Ea@ReP^wj##iF3>?mX+l0uT_*6U%NN})c$^S zcX#uLEba>Dh2F_N&p!M1YZ~fAu{Utv6An3cWLv|N0P~8=tY6j(e!O$i$A7mymtd;l zvYp*-;Qgc*TuX?d1Qp6#?*FZJ!gKAovPD<)?( z_uRc(ymGhkyzh~lqFyc7FLv_MwYsmG%=#xbPi)HHqIk3|ygIPGSB?4ast0d$x?SHn zS!rIccVU~focGg#TKl$u`^Lf5i}O!-uQ`!<;$YG(lMeS;!t(nLrj-hvZJoS8weQ5* zB$+1%+jet0vYGi^t*hVm@AR=^shiCK>-9?4U-a_wu#GO3x*64${$RO ze=TNSc>jxX=iZcaKaPRRA7)7TlfSuk_IVAB@?F;_t=^`5plE%V#}>_mgx~p}y=;7V zu5~Bqt3HVNvCnk=WB1&o$`)=O)wmODvn1^%ulu`b;aq1`-yHFG-yd3rtj*m~t010s zcEK*`c$=VeM>)b)scWZKb8g%tdxB5#_J5^&l@a#S=f^UCzWT3ud-RzAX3H<1ncuDH za=q&W%76J!JAS(}zE-LTms>bXBH=@h@%HYVO`!I#*n^5!((LT-ZPF6APX`xqt~-A(K{9Cb|2f;cWw$T= zWPDuN;QS<3pVT=a`Y&Eji_DVbxzUt8w`HC8zG=H|IH#wrcgl~s^8B|n?}PbP^Ht>+ zc=>v8L=;Lnrzc;yuuj)%^_z!ApV=D~EP4wyCj9KptK0T(>C49E?3;3j76u)6xm-4> z*=O1njS{aph5sA`gjLJK>z7RuX&C$mJDHnX#6&HFZuX_I3 z@Kbfc_K4jR99E>IzWpE9lvDkraE8#|^)K(A&fiqwU2;h$JmN}j$03!^;Q5!$pA$YL z8v8y!nRqwa?zoPD&o_qkolGH`FJCX|>QUvp*`PUD^HZ4Rt%aS{zmw1K?>!=EvqJ0J zgR9mK>1GRODY(ww9bx76e&>Dp!%HGJxXQms)Y;&-DG5Ey)l(Ka$-XF^>=XZw;plIsH!7D)UK@I@nVeo~ zdk0kh>{fos^66n|pOa)Lcks5dc)4lMPU^OBseSO%$}fMmF)M!mtR+I$_a$}I_yZk_ zH}2**@#$CNYRjP!H;tczVbOWdiSzvYM!@Uw&3^9tE<-h z-{`Sp`G&-wxhrb@4_W1A8~jmT5OR|tULDl_vzqP=UjHEt8Gp%Ca@uA-hku$~JAaFw z=sz=Shcq**uJSL}+SfXFO3dF6I)7n9%9f{wbLSQbPCXbN_F-~s$cMB48ny?V`TMx^ zi(vJE7>&l{!*ZH+B0JWd{Ol%C<`rHlecip{TBh&gni|!;)&&MfR1G=oHko(^^2>bp zR##wD30k+o^6c+RYObe6ce%Ij)o?2~|LeJ#EbqhV+#O*TCJSwya;(<>&fX2H!X+2y zc5ma~8I(9>^R1R`vAd@^JFGfsmvCakmpc8->d8|UJusPM+aSFu#A{)MMc{4cSSrq}i{(z9L&+;FGOoruy6aZIxlD?4`w(FE4(n zYvW-15G4OZiuIDcedo(H`pR0%eV$i7G6@pQYY?13LlxpVF^Rg2)BrRak4&7onsMKXxB{~}&g3vK@d|Cr>kvuvCA+u0G11I+hcW{O%bZU0B-XYH&dVOlkMY~9^% zoF|*OWIVTKOIk0kFRM)vgu1~w)S3 zY+g-wdBr_rZ)J%7r`MArvIWCEHyVDF_#9S#du6B7-1NS*!oM$U_aB(@$xcvJ`ojN+ z#Mjr_oxFD0@5o_QPMG4CyzC*DVg1*)jQr;(e&5w&rg))k^Qz<&(ERIT(D>uj(A|zw z=IX3-=dP?%+Mjet#W%%uR{4a8$-z7?>#wh{<27IDe$&8b(d-b7m#^~rHaPNXZ+KO1 zc(AI#V!>X;)q4~|RK7p539&u+%1_%@`syyJ-TTkK<>TC{)DoVW6zcqRiS!F^9ks%# zQnT_v{SVOmJ81q9HvZ#rG;Mc%oN>5N?xb$^3IEoC*1x=a%6NZ$@#m%+->>&=@R;?y zXUf4E(EgvtR?|EhW8}McOI`ncQP2J0E`^l=1^TShK>Hu=un8`^aXp4zY+JvQBC!@jxl8_ga`ob?v9|j}0=lPrE?B+a)bf+~>)c+j3w$ad{HG*j(_siWWPo8}1+^-YH=jZoipU1Kgn~yb( zOAJ3hRsPi;6~cL-J9yKJt*;X<9j?zZF`MWWGI>$l`b9om%(Kp~bT6~qojXT&g2B1D zS#NcJCx;x`rLi^0NB=|OKU3ZoDb@$qbmaNhOpI>pJU+MDt23iFT(UZPMRNelrU1`<3;LMHZ#xV*7FBG-Teqkw3S`nX?^x@uT!%3@mTrF6&Xu+!djsA(; z6GSGp-$=U_b&6Bvi2NiO{+`FFW?#LQWVgqPH*YjNFVQP2GileYpmg7O^CeF<+N>A) zcFK=2rgk2)*0*n_dv|VLJhL-=^Oj^6oubI#m+KlejdY{A)=hXJU%&Uz<{NVsvt%~C zP<(aveENFpb|0SWVlsTozUEeE-cee#;8p&tgyE1R|N4C5Sl9D7O#KFD zuk;2Vo3qVXvUYxJb6+-rtKiG4WZ{ z@xC2)A)Mt#;U@|xzcK;^IOZtKUNq@IM#+^}1=Wg9pD-p`V@ z>tB8UWM=KsVZOklq0`2>`>f!zvIEM&)rB6(@1F1~?)vb_3n?SvgldIW-ZTg`gup< z(X+O8_oM$63%8}!Ex2>+m+BXe$d9Rd`%bT7X4^33dR?Vp?~(cYZ4yfy6A!pD1a9iq z1f4(h^Znht>TUPGsb3GWGkPridEJVycXB-Ld{~fds&07g`i_{W1C>c_l~Wo6GZyEa z&RJ8y@hnQ=P1ObWmCWqhui3k;b?PbF;Hss)L~7liH+r{LZ&SMTKP`pj;kQ?X+c?4s zSrf!k&Mw^L@4+5_?$&PWS>b}pm#kJ#anyRSu2Dl%*IDE4tIeukTYiKxUJX>MED`wf zi1}U2lu*Cj_S_OF7Rx5AEED;p)V9I+#zgsy&$ULCH81M_el|V+-O{^|sb5bvJ@?%r zz6Tq8+)sPF{bh2nG`)LbV_RTKJmcE0k8ERE_`c2O$Pc@^OK8*7`kDfXdloI>#gZ(} z3*Pi5Y@XU+S@|@8^YG#ia{uq8nz(GAaU>vdyWxsipIZA|dEM<9_1XomOAx6Wn<>%1*@U2>itE^5DE{%`#+ra71F>SD{M^(bs?2|XB9 zxFCH?j#g#l!rpyyCl;F*D%72GSdpjWx1{9l%dmyly_4NF(%HKV=19hzs?o4#3T{{a zdm_q}@wHOS@;|w&wX2szpRib~ve%{Hv~;o5`>hNi-Ii7Pm#x-iGu-*WbNT6`hdgbG zce+1jZJWK~bmsk&7A4ni@5`~s&sx9IabeQwr3DgmbbHkWs-xEKUe3yN>zs2K)88LH z+h47&=l%Ap>{IfNUo*o6p1OnXpW0kId%1>2xzaVr{E(d&FcXVs^hbFjsj)MU>~d?}qrkuSfP~{Y4z(qp-KQeYdR=J+Ky*u#O#2x%Qze`#rOLIM( zZ_yF@Y@zp(1K+1*daW|)_~t8hL3ZPQp2NTYHr~H3UCy!nWfo`Z*V0Fw+b5k>_7MEO z)nKw5X#YvLl#%*u!~B}O+s2lV^Q8e4kIp*6lmI>eHTM!9BAD zWiBi~y|^jL%Kgv^EvK33{l^QwKeY+Hci=%jS7i9Km5v*dDxCu)=IE9b>q;_YDt);5 z|MazmOt-nrE-Bg0ik)S+qav#^z_|GGUIS47|6WM_Og?!j^>%|@E2RZhGo1NpVTz}D&F%+YFfQWJmkyUe~sG%kMw+*uX9@P zcY4Ahr4H4=E&3T#CvSgjb*g|(U;27z#gWVv=Y5x|@10k~^+x7F&dom^;c@|fh2E#7 z{Ab27=SV+#83`JH{@^sNK8}Ce_mehDknbNk)&;VE!F{Rvs0Dt>E|2u){x-C1jbi@8 zl^_N>|FwC0;Mtxp-1>72zH+)XCY*kqWTMwMUy|C5;O{Ms3T_wU0Z_ZT3e-)Y@{7 zN=RRYu-WI(TOW$&F+}pPbPI4ydfJ;`JZDmv;yu-*rq#RC!nglh+VOVXYneX=*VYSg z+&=Fgvs+yA%7SUy&kvS(1#0!{2R?l*Sh>PZug?q3xsT#zV|%G4YgJ;_DR z2-N;4WnoP^H+ijY-LW%UCO%=)|5zgYZJWc2bjKF;WtLKs>Yo;R|Jix<$=ck+sy7?G zGPqL@`MPoa=-k0HXU`V@U;jI5Btq0bd*}6l+W-D!x1zqK-q6=h6%K-O{yrH%W5|&bJCrIJa=Kp9gz%$*I6cafxif z(S;AE$Vsfa*2v`aH%jBJnd>46ZN|!{a{^?tJh<1dm-_RkY(`PGJ-0%c#q!RBAzt2s z5!*ettrpDqQL!>s}5&KK4I52DwNrCYYyGAT3WMWTk?f@&bRXpiuxb2(x}-j#P-1Vca+c4$*VpU9@&z; z(I@1@>MR+%gcT_-cVCult<~Rj_wB~R>!iNP@9dnIc4U{7pGQXY$-<<>gbPd778JID z*B>=py2CZ;+NRsz^Xm5fThr`&`cJVU_p%;?JHgtGp`EHLMe3FKnX{cQwXH}9=bZ8- zLF2aNW5JsJUOT!S-rRcNd84@g#A7|yDOSI;&gQZIGL}j^X%V*j<&F#*`f29;Kirz1Z{3gia%@}slet#1 zw#@0*uNyY#@@{6_<*2bDY{7N812OTh4TQH>|JfG2d&xAGdXWp2IyuZO_A~uHGq2xs zGT`b<$;zJB;=CuK{_fncB6U4q$4sZGWomr;MI`e7zBqVEO;IG}%;H^}r|OhwJBIu} z8uNKersT%${K=pH2VX91+i`x;=8Rq8>r&r)R41227;vr2xPIIvwy`~i$5Arns^Px_ zbEBiZ-1NQ_-_X8i!@fe*^kyaR7qeS@O+LT4#C=jk%zjnQ;hvml1Kxi!q0Rl&%=X=m ztP4LUTA3uDKkTa%{8S*dUr}_`b!WYY$%uvajULoY)URW$GJ~?dAmBo+gskG@0?_?^Du= za*@BhOs`CGWo729k(QR@xp77N<<1LXiZ?bk25)1?V|n)FMaVXeuv;t>=E|w2tOOPEz2=9T8B z9ovz;VSeYkIL@vAFXa5(k|Ei=T;%`y2Ru(RwlxHD9bTl8`t;wDS#zHMRyUnw_=m0Z zv|rjFOGV3%eHi~Z+tU{>6??%v!&~P+L*bCu>5-=xkhoZ zoTbc0)5ntb3tx)w%XFFtDu3h5dA2jh{j;-nPdAI3`^n*Wn=Qx63|D(W<)v+>GUQA? zv)6y!%3P$8uk&lkEW@0NN!tUD_I{bKv2OJmqx4xdNeAyOSb0a0wajhj#mbnzZOMP; z7JSRI+SEO9`@e1znZ*)HM*kZwa;*N3#t?26Q0PtGkLGG{6s zt}Z<*xAAcEOv$2le+LPV{-Z%(6K|yKUDEfp`r-3EmUVxv{zkD(pN<{RaJgJ()zjZu%6qA&wC~JrtF)9d=!(aK!2UFoag z&*c%W0+sC^d$w;#_?B(#6Z^|>+sAX##Zo@Mp7O>d)joYGc{Fae+)J5V5z-P_x^ts< z-P)dRnx*pY+pp(l24Rm=A8$*aw$V%I?3=57XB!{+ANYAI%1KM@@5~Q>CtX&$5b*Qk z!d;~aV%OUiK414b;%CW{^}^TV+4*Z{+Ho+1yD!P9NxNaXwY0{?byGsogS-=dOJ|4N zTyW1s<)GV5MIJ{HxBrZH_dA4bSNpwJ!Jzs;jf3It3&}@qB6!^Yo)l?$dhzj=o6i!~ zT4|)_y=%LE7qtGgDJVK{V~a$@t1FF4cbTFzCj5RTCQ|(5ebYLx+Uzop{oktg|_5HPFFqY&pDB0->tdZD?EFdlrnj> zHds{b>5+4LdG&zDx%5&Vx4#>0_nn;b+RiGUGXKUwuNR1pZ-m}l=V28VGh&2l6VT~$82K8sUYGtGDz$47UL!%fF^J=Y~)`n6I%&NDP?_R-@(>8ht5aVCA)ck|fx z?w!*eCHC{4oSf^fcc7}p;@f-YSj+c3GHq)=vW$c~^D zTV|Vs>fhU4du<|<*UmmaXYF$Z*BJ^iQKG?dN4%%p zsqmSUb3rlXi`R7t^Eax8eLNey_f}@r{;Hg|YlDNI_G-<~Fn`PM>*Myv;wJJ8hpK zZ;KeqK|iy&B(cYnHqLp!G{|aq!+Zhpq%dc*YnCS`eO=F_f6Fr3Xho!6O6?JZ)6YDyy5tSZ&d@!M7K@l6Hb0qEz|frIXYbM zW{`@A-~EdWXErL7`=5fbv4@tD!*mJb6_4TQx^Z4YNgDf^Id-ndIcG=Ur*CT&UpR{xB zeoOwurgfpA3pYMCd~WcCr(tvL?Dx+!!hcCl>YnlzbpBC@c+w#ZcnctpEHg5F*i3I6pZL5k~d%< z_6ai;w|x7C;CIsw)N)qt51zql6+9_(Q_7QPUmrD?pOc!E_x|3lS}&G=ZN-|`*OW2~ zRIiiR^EK{Y&P+K?hH%zv6RQ{9SuNs|;I*wIVaKr?;Ym$*QZ5Hsol!qjdNad%k8soP z_aYNFP0VAwz1iaPkCj3$lI8qfGm_f$rhR>_yH&pL(Y}8Z3s-Gdn0)Ygx z(b`v$+ctP6ak)SCH|1S>ZI#3uHGv1}mu5)EhOoZeHAfqC|G-9}C!HG~`!3n{G4otP z38UZlM;4*NEU)uz)lfM@%cFy zbN+sATITxCn>!-${DM%mpGtGH{bwezZuphhZQhkLQF60KeqMe4)wm{`Ww-5K=4$1q zl`aeP_qZJ$?X+8GI@?a^AI5JzgQ7p3Z&Xmb=dF>a^J?+`o~!>RJ~KaSWbWyleUw z=_%KqGhO_*UOVl^-pI8_*jsDn2TSZ?WWAJTbXdcCo6UYh-C3cpubl3eP~!}k652Se zB5CE#We+tgjs$K$QShaeJ$>O~TYjrpm8F$Gl=d9UeZ1+_ER&O^?p3=k`N`GBi%sLO zn^C#@U^i=^T20@YLmnQr@m06(1b@qAv^KU#J|S=YaN1=qz0gJX?G(3tO*d<+ZQc@a zw)~Ochjk)Hb*d%pmnsD+RVlJ7oOJtrFwI5XbJ2$23o~aM`3KybbglZFxY8LP2KMMZ z2aI{m6sHDk`pa`~Q|F_n2iuo$?#T9&wRiiX^8K-GsPr|#tuDSH$K&VfIi2D=TCwp| zNi}O_)QXKMpB}qUX}wUfz?EqN^RBf$wtr=t7OZEv>v)zg_rl3^^B-xKQ#7~oa$TEP zJ>}k#;<)8a88Z`dZgU^<@9Ew6wVQM4@}M_%tg*c-a(q4o9nn}EA1ggC@aMvVwaylO zJN)EQ*8j~)(c?c?%=>hbRfz4gB7??nyPPB$A4>Stno8+Rn|GhJ;N7)OGqtNxKYMS_ z77kwbZ)KlvS!n%gA+@SA*F(!@)@J*h6AUl@X3D+)YTSB*4LLVA#LM3n*x?rY!0T%D zN^#i-$FsTO_7;SHeR6Q>2ctWJoAz#!vOBTH?bOVM!h2~cInUReOu7H~;^_?~9r

zyW4%LMmQhar0&Oa4g|%wdrXnOlW@Ds$fxH0Ea?8TREGLAqYzfzLeTzK4(+1ApBoR> zx?8#nHvFwJSD*I9lB?o&{-b?jll`8p$>RHVG}P$eOo=(_%cR0@dM2-W`0MLG1%W$J zyQe+a_I0*lK~?vDeLF{`<@44r{wUtz`rExb$wZ&|RiULD=cld@Qb~U{dL=MaGW;>U z^5|-Hu>fC(&nJ#0cmAGmaV_jA+7f%cWuxIE$=0p@r;c7On4W%y+3x$R!^IW1PNA9?RC8Zj$n}-2 zEIVm}_KzJh>Q&v3)0M23I;_rqv(Y=5%m48`)7!f)m0O&TI^^SJ6gU5Ike%4s<uE=xgB^qx3UpX(6-g-HIk9yMG__^zxpWY1-+;&nrUvhC|_s%_% z2SNT<%FEysn7l7-w&91W1y4%N>o4WaTXTTzYW=LLBy+CtQYF^~t8B84WG-5;Eq{`P z&xdj&Q*+Sxql%5{A(x_Cyj#5j%;ywMnXNpva?|b&?-DH+`U`BjWIHAOjP3T%pA2-K zTx8xFsZu+ys$}!j<25mYD^4EG5&P#XIb+Jx_eXUXR(anq6S#C#Nham#pKYt!B6K%z z6m$(ZKIeMKDbESEKh<&+{x$?lWZu?_t#NaCubKEE-&hD7{+q>h4;%kxc+-0*-0tb5 zj5+dCzwrEc_`lNdwfm{*S4I9UW!9Va_pxn=wur$WVXqXQPsNF^k54NW^fSnpuVEifu@zxY=0vr*9%HWRrwn(o4m`lW0IGj zy2thnfk}n7zvFpsR$oy}`eHW0_XX3{x4+#>A97Crao&gfzy@Ut{bMC5i+XoN-t)|h zxmvGpy^JO6DytNG)YVs-d&J}S7N45?c%Q#ib?};b;Q5EvOUg%Q&C1kqUwBiQtuQCy z)z1<|rnzmE?_KJe^?rn(w~%3--}%^`^FXu5#=N_W+Hxj%tqK>pk$5f2mWy$vyFFX% zjul?u{QogNR(5OP&xTueayJw|at7>*-6kR`*?nDKlSM3!IH-1t3Q_A zJO1`d;#%W-X2MJl{Ot0x{Nm>_xE^ccm*}vZw^{7>lD4!wInz(KlLc2u+C5yeG z1aU9^wd-8Ulg4wc%h$iQ_^GjPnWXB6`iWb1^GawOQTp=YaNmR@nX@-IY~T1f`9Tkh zlKDF3vyWH5ak(gB!xejVg}TqDphr=Ubz|kO1-^K_Q9h>8SJZV1vq<9oHw$^UdZaE{ zZRX3q_LTDK>pP|>SGN3}$m%X(Y_aN(wdTU9+n!f!vq|jUysJD#Y;sa!1$(%F7x%t( zQeQr<3X}h2C+)r2dA?V^TDI6W8@V|JyPWhVn5_yI>E;y6saamVGHhe;?5`_0eLe@> z=-=++vf)+m&xL2wMOJMSVgG9{Ci3szkLNA2hZnOdv#b7C@3<-#HgAEO;c=82n)B+WXppFZZjlC$JBwU@K&ZR$QXVM%fP@=MvX61*n84fJ`%yY|WogL6(V zCLdyY>mU;T^P$92uMK~yPx`&>Gq79eExP;2UdPMAFpf4x!Z(4Q!d+uXZiqmKVucFre2CVY?JHSYc|I>AM?y9<75 zgx9i7>X!d>ASgA?V+-i~3Eo#eF}r77>khY3eegn(q5j6B5LLsk)3cTGd2Zi3_2}f& z>FzHleQ=s4)z3c-RQ_wSKfG&xJnd-w+;wj6&(=(Ge4lpTs4()DRu5?Yv+1(Qmav9N z+G$JEo;EJoxHo1?&zETZy|wpE3mcao`N6E(ul%Ix(9{WMeyv&%k_Aft`2}^ccMESR zpO?NYk$8Z^D|F6e{g;nT`!~jLZ%SVAF41hEzxbw0PO2#>bBgv#+O$aPKg`>-Kkb>} zt_}Om1ojpxuV{@IJ`fSL!B_6ZOYNCV3cO9%rrus3S#&`(firPGy~GY1RNfN*smL5-f3TD_q-gp-|Cx)J z^?p8ys*?S^Y+sVo)arO1R_EsaGr!c0%nknK|6BU|!GZfr3xxKa(9W0Aj*i^u(x3Rz zN5DZzNA9G;#MP=-d*1wO-sW`nuqX4n^-{n7md~!u`gXESwrBo)$l&9IcRV8T zSKnL=KNF<(LSTV-TKVrAH@}_cZ9nV$*~H5vd%koXaeZ|nSbG5 zs#(H?ytvk_lm7BoD^&JV%DGe-%XO0$-2XIL;`|2BZT;F+tN*h2KlA3;5@m6&W@W$& z*5`YLnSL!PEWQca|FH2?u;w?}yVG{vR!sk+#=qr%w7pzM%Jcb>`5DLGDfxT6k1dqk z)IDQQy}u)8**>|0?q;VwLG!OuxF?9E$E*J5xEFBt;$wj)^-VupdtIlx+VeAqD}9-; ziY?1->7x~qTX&zxJnZt=HSTuSHQ960#_|P|n4hZb51#f?aQZI6KG^`>n1=pOve~zO zS}~TWOz{bMvrzwu%--jz*4xgoS!C^)bIdH*>R#MDR@S0u4gX}1=ecIRo;#bOnEAQq zh~zxEwOyn-xGlh|Y0BD%FJ$W{yp55TxV+)#dXAhZr2|DL!#%c~Pfhrp|H>yu&->cy zKQ^ilrgAdWOS}qEO*EeFEt1c3TV3kW%la_)ld>P2rg6vdZ8o989X+ z{rjgzIGgyS?!He4f<(hTwrt#xaQnj}pO{-2S2kGGZCm8S5HZ7YMfm(8XBN#3`{HCK zOTBsFB)3!UJRe_RSv{-mm)CpG-nM(ZZ{Ni913!Bg@BcS#b;lm#dH*W5s9Th+6W+k8 zSp1XoZxq+$U)#UVGW<|^wK}XlvpOBz|Bp<{+s!WZ`Kij^-N9O!hflZZUA#7RW4eRy zW1sgwvahd*T5?-_u?okNeJ4V$KEM4}VKp1eiLBHIj}G=baBR#~{r5auyYK2r+wIP3 zihp*;rrulnWApT5HM4K+cp-HAXMf-RuD=WgYvzK^e+vG2WP-9%%KLfY5>JC$UpWe} zUx|F>vS9{maz@fd?wt)Yq}(}=b#Tb}@@#j~cqMn)ujlBNI|A9SluczOus+{;P|9Q? z*VNgIC)nKB-SDIPcpJ}x{h2OP=I2K*|7vMcrJ7r1VCAA?HhJ@=mg9Zb9_?wK+|R7N zu&pIaWb@0ljhZStF`L&-TA-Sl_kT-Cw$*b-kFFJKrSJa<-Bchf&2eqPTa88C_1T9O z?O9zhWp6^*q+DUChTmRSx>=TLcDk}-yZs%$xAyHwrj)wzNH0H z?d(nJM0Qa`0M!- zS4s){CB-k-%AA<6Y*Nla9pB)pE7jS8tPlDoFvs4xbjS4dsl(Iw6?A?#NIiVLJpItk z9gKY5VewpBJ_UwumAtlmv$apQ-(smPDur)WyX`XW{U&rGD(akTYT@JhPA1EiV|j`b zPURW!u5z34CAdbwRp{^P7kN5ruL^{1Z&s}0yf$g&ede>j7BBdgx$Sqthdg7?@Kdu3 z4k*?uR);O-e6r_c=-nR^dCYemk?+`O@gixq>dO-oKl;nfT(L6y%)+)e9VwsZEl?>h zUGj0&@tWbtb3R+{h4Ebxt~1*277fdH;#>l)FQ@h_ zsYkE*%a1H{Vbk(XK62&F_eVCNvWF8{6+rtxc5jS&yR<+e!18halO@bO-UX_KJ%&w+ z5!;0|cC9vIPI=ByxFc!#>ns1`%-2hQ{ZllvHOo86SYPRHPqaziW3AYlAeV^=N!neK zw&p7t&VE*!qWmC!7Q^~>ra-gy;#r4h%kgn@JbU;2V2k(p?vH-`Z0<~UUoGcX2p#SO z+h4fr@|Rn8g$oxZG^I#2yG_`>-85su+<9G6e;3?;r*N+(>DaNh#vHrn-pq4SP78j! zGsPop_ukpXa!L-M`d4msTuIiHkd}s@`G@Y+^f6tjjuS9F-!6xWn6ua_a#r(TJ=VG^6_JRC9gjQx5i6VL7mRDXNiZ3 z+wN{%$pLQvFVB1NPRntZ(Zp{DZ)ICNoFeA*`3aMQnodb#L$U8FPJ8#n>Dv~cjqqA* zxYhf9YFR^HjA#z5z14Y=Yl{|9{b0zNvP$&kv38&(|icw)=b_C^pVx z%g=;_-}Og)YNmT#TP^TL^?(rvL;ViJ5Z2_^)3cNFcy6nlesoee%>AUAg44DGef-n5 zyfV|{2<&IKi!q(JJ5c$=nY&d2J5KbfYb7)s-fed_f9JY23L4jOt+VNhaayy_aY7rmaBu?7#V#l33Tk@=0?y)93Sa*v_`MUSdMH4sFY?^bftubfc zQ)lKmDN6;v-4XEyrGGX#(+dydZ3Mipi0Z7@)3bT@^ZZ^V@#y945ciY2e4Vy! z>f@glTWZtt>-$5$>-*B4*=BE;AF-rBO84YEb*sSWKxbDu2|o5lCL<5eq^8A|@)ctL zmQK1Fos;AxwQOJI|CqGjWvBHLl+}&r&-@*heOk#!&iTm#&Fs~6tK4}`GT-{VW}T{m z`%1>R4J&+0Ur5hTSRg0by>Piw|D7=Rlb=31O#_X8_?)y^vRv(9UP*r1u>~0$<_9b- zkdl#@$9^g}Ixu01oW=fYjY>Ixqd4?#@2X9Cdd|3M$MrRZ6NFq>FaEec=x6%nxmiZ$ zOkX-)J9#~p@G$57Gg+&2_p9zav$I-aj|G>RHuyOznyzmSpL?>PoqNkSosA2to(JBO z3GZAmGxndWjOe#d3zg3Cxh+xChywrKzmg8;bMk+gIjELl(Y#2X>w_o4H%JLiF>kW4j* z{YGcz+)BI_HI2t-b@)PtkX^>yJ`W`RD?f?n<9_hCwdIwb+o4^WkHeTmgx`ICY7^3a ztd${Nq5R0itd9LhLJbbz2%fXWK>J6o_BF}Vhp#oSJhVE3tKn6XYns`a`lb~j2F;hA zDSkWoaZWq`^QE@T+WlHzt{ysP<-Rqd#>2(3U1d`G!5H6&wJisLIx=5#RId{E5y zBlpzVi>FK6H~qW5>6V^MG^qU15fOR!<&jND;=$Fd3gQdTZr|j*SoT(d;Qo^<@?xZy zww2@x+RQU-&{WXLNW3)JXIJ*4KWm$PjDN>^1d}hZ;f$RTCQAS5E7Wm6W-`PCjfHDJ1kCmF=wbgZRR1dJjsaYl`9X~B)?zyIdYGS z49}PEueLvt5q+h{?Kf#{h|&v_BfN<4>c+M`Zg!!-Phkf zt&WNguE}Dyjxqw-e|g%Bq(ygHlOt{|GtFpy^lbi@nwb3LvvZ4UU${hnO1%9fmD`?k z+Q!#&Go|Gn?NhF-WvJQgw;)vJM>gMa;TFBc`8(xfW_6!*I}_!kK9!Ae$CRq$3u8o+ zIy3g<-McKK{7tR(-6=c28eTbm=f1U?Q}3HKvIfaXZc52B)|d3#I4inso0reat$Gd{ zXPmN?Sy#8H;l6eaNA}HmD#iUi-zWN9R?$`#5!@!UBFrl~EKDT&%O;LR6T6?q+uYXr z{`kZ4_pj#N(6X;T7Vmn*Ixc&r9@~yZk#Wtn@*yj&E>GA7y8r#l!nSjaY0<12I;m|N z53Vw=dzTeuWj)2;G0@Ry_m>qxkN0&s8qSU8Ql0QZzHXVzQrASHzo=>c znDDLniYcR3+^WhqH4V2W@W^Yfib<_6?&F@|%X{lq^+)jiuMU?p@8!s-d`oLtciv6- zq@SXEy4cI<8~49k+Htn=p#ZCOFlV9d9r+jkG7ECkWmz*`<@wWftUETa!AFlRWdRctFno?Zn;YFX+ zj<$H8R{zCQ_4LEb-SQjdYWaev$%*|;G%<5q%FQOevt>g4@hx6%9<@=HQs)9QF05Un z5P0bBi}#M2Gn4|hthsNea=ccwpQBJCS;B_d>$xJw`6ql5zjK7`ZhlzF_hpL09jlxC zbs>S*cR0Mv%)7p;+kfk^<%evo4rovK)}beprP^PdILCJ4oLg4{Tbe(W`Mq9HxW)0& z0{-nMUY;tRb+ef{Qr-Vq#M~tgc0n#jo!{r&lPHP~^hlO`{^5Ir(rvED>)AR^OH-e* z6c!}~SZI3`UTZTjF)3?n^*M4~r}_%Jb+*6K0ij#L9(@ZN609d|^sc$F{91Ov8`T4w zuQBxRe;n^BW;K0^`P$DcTcuuhg6=OcG{3+mN;U|FI?2 zRlB67rb`6`7;c;(8gX`6-Cwmoff-Y8Zj`Qhabx}e4GsdUe@V`oqrKrBkMTkY#dC$< zd{+7edVb6P&vNa5ruh;1;}6%_pU+*k;L^7L?aK?Sc4^E@mrIT|JUK-!;?u5JhV`jY z8WT_NlFdH(udQDtET&jUa9W`87oOrpwZF|RHN@|3pVa;M@qwWFP>(I3^?yGe`@~!i zzt)}iUiE?bEr$9d4?|cl3QW(Q@QUa62d+ma8~3}v6moLf7Tn7}ZSh>27M-?-e(|98 z&o6(6fF%V|%Y^2!PXMid+w%N9qt-=*DchoXyLUgZz1aJ1%gjI7B`;V#nb!+{*k3;J z{6}?7Yjx!>v)5ftDUe%K7I@``a%S7sKwtkG$(y1Kj;I(sog~G-yCPKY^(zB~9U)@f zT}74WXEYr@z3amBe`)I{WsAQyTOiF|>^DjOX!TILa- zmg#xoJC{s4wZvrirnye>Jl+kBt!-k+Qj)4hJG&HFuH@3E!ws+5U4Z#kvi z-v416gWZIxw-@(sDpPiS))%?@_|d+CS9^aZ342LcN@!n`J9yH(K|N<%5LeIYFJgJm zH=LXICh*P1|1op7dVFE)PO6=&7N8Gj-4pe2`Pf(zoOk`jxihD(EH}3m zUlqS{v+aK4eNSIXTvJ#j_l3vq!J~(V+Dzje*zWkUzBB`$e{$wqVve<+`?`g*RGrn@ z3#2t98uO(WU+HbR%fI2Xnj)nC?Xmi+|FM6|>$2xOi1!ryYF&1dCw7|r-kX9`o4oE|)q^I+U_Vw#Sblv~7&%=^lkZ=w$Q`2Owak&j&aTJnYG27jJ> zpSR~skCa-R-gV*ozx30e5-*vaDt>WSd}rH~xeVT3JH@WG7g+ng-*fLb;AHQJqzv(-Zk4+=+$HpTyIR>jEV~)*OaXNqU>m}!( zi|$g-&?&Dm)>x8vytU)(?8jU=EXwh(HgAzP{>0X(beC(%1;$C*;`!^|9&6ecUGv9- zd)cpRfB0%A|N3lqGk6WtwX7P4o34@$>di$n6K2>{CcE$mt_cLUzhgPtOhD_O-@Kmg z?Kv}w()u$_*>dhGg0iLMrrumj^9R^x3%I# za$S#VS8sLz@Bh6T<+R*xhR-MI^&TQee$OoI72e-<;DZGVHOTob^bBObBoPt zwEH5-_R=m~Eoa(Kg~jKmzEAf0`Ewr6nI`E8H}A_>yj<6)siYHSF!7hes*QFh(w|>v z4a}$({JZes7ydaql1TWFZ=5&xg_llEws`95pp^_U zAzMTAUcT<{>Q&`Ck(K)R(ZP0ijvcq0(lYjaNh~lhNL9)GWoG3PU}jaaaq7`pqkku&cws|2sQk14F>SljmkS4C zgAUfsZ1>u+aYKu>&x+|xp!Emuc}x$LZ=7t?(wy)2mZSIe24BmKi?XgXUstPNY$%rg zr&OJPkBubPInKC;DS!5*9c@rpeE!M%WG|`zYjWRh@w8g?QqI_tZ6kR8C5(Gly=U*A zMKj+_`km&H~7MHX>;xDehrQC z#n&gT?omEabT!Ol%lxE--)|rJ#BB1qwtCxJ)dQz*FvK5v6r%dWX}Xi%y({9Jnh5`%N0PPYIO86qXziue94uw|}K_>I|5 zbL5xX&G37~7_#50^3hYN#5qT&@cc6ref;oXTN2+iv2RoSMPjGD^|V=Lll$AwsNZod z=>D0*C1Hi2^+(dp3)?Q`Sb_K7tLauIcP-vkmLhgLebIIAlmZPWw*Kn(Avz4T6AFJC zNHeaRw1D^1T}jaX_wO5PCX~!B@n`;VVS$0^R>sgt((HRqq+j`1IMsW#7|(@`rypJX z5VlY5Dqm*U!#MtJohNLT%u|1ur;?j?>~8jk`Ho8pq^3yCW0#7G4m>qg&cf?@qmtR* zD30&9chx>Q{%_gIIRQ4?nFPOWGWf!CdQiGx$ zn*Fvq`nzG7*@Qn+wAuHa2)^Q0wncb@E5Ek)TMhGrr71JTc14~`DN%HbX-fYs&3k&@ zL}k}`3mm8A=Y!AR+VgFb1Ze*o!^zM&tEvoIJ+sXxu23y+eG#s9-8-dBgPAS#c-h4( z|HBU3GwHVPp4;`=o$Fxp;suYgHadTr=rTE;$CKgfZ{;~V!Q&4t#^?P$IZbzH-#2T+ zs-$O+KDD`B+I_1i|FsCmHf;xWKKZSn_D9CirOC3q_nsHLdhv5Ui=*Hb>m?!+gPw)) zc^I@tF;C={-jnj?U)bN;J7EdUbLVb!=uFo=Sv%40$ESN0;Y};tn0{ILi4=b^*RESV zQADfhM#ky`T5}ez$zRA2GS^rUZ2yY=bsIqEk6mrIShTRyX>NI6@?D*6HtWT|wXp`P z*3R1`wD`~3_eoAGqrc{IXnPoKbS?SG@#Tx>hQAIgCjOYIE8hF`U-S0jGvXdx>sCp> z{>%PT@w-Z3gp|_XNl|i#&6b{7tNnVTcP6*ZiU5`-#elYSV=N*f??CepJV%7YJEf4e%ZV1pbl-&_B>3IB20a}e>EzDEyGrxK{_k_v^T;XI7GV!Ne&m9~&&1Ol zNha!?>n1Jm`t(!6@4m=gM5#u| z`a=s%0q0&XQJH7S8iMCR=kM9?%Uru#X!Dd~C6ad>-gn(;+dA8v9aR2YZ&aH3H;SVb zI{wi-HNYmBS@4^S;TIm;O|`QdH8slTU4x|mpJ5(b>Jt)vD?IjzG4Q^&`r2F71M_b( z#1}sfQB|{=?tLqd=QfMR{e~O%i@3lsyXMdtNdT;KkJ$3xwve$D0Z1NZdzg;o>!c#k`+o$I0ic-aE2f9L% zE(pZ7zbY!cl=(T|`qHdVUfioRuid(JFPpQ@bYaN#nmdy}7pR=wWE$~H;L^P%pLgGK zNzb`1KKZ-MmLv||htu|TmgFt)T(snPf59v3e^b{pgheksRkR`~V~Uh>v~=7C(V4q? z1r>x64X;M0BxnfnM;w21(S6gG*i_SBPc@d=9FkGuxcxy+;Mh{HiQGq5O#9k=z~|&0 zyZ+Taza`lvSIBNR+?+7y@1&P98x6!H^*1`5bY>Is{k${h<@ZOXA-i&&Sro)e=55y8 zoR{`8*lCw>@Aqbj!yInOQjdOo5%c`n#F@P-T2ZWO8%N=f)Mc-){1W`W+<@segV*!e zqxZtrXnfuBJ7-bImUA+}Z#H=+aDQaJXAW9_VPG?l?am}A_WdWrufCM%mG+%Eht&oe z|7_xW9IX~@EBOAxZpqt=54TzRPZngIYB1;Sk`k*$QRlx47O!j5$(ED-bhGTM6MM{# zyw87oC3>I!YuYY+hR=g*-FoS_f4KjL?zX?lwo1*dVX?#S%LS$3hIcnkXi&|r@O8g) z^OAsB+4(IC4>H7TK4@P$tFTx4uBuS?;lQ5@-=%`)KOED=!RcQ;q$K;4nTboH{RWSF z-&VXWIK}#GYrJ$u0ppA}r9of(PRSLmjNs~n`9{kH9j$gVavb`oR zD#=X!;N_`t%9&@1oYnUxf11xc;r)vco@)OqaR%qAR)?)juH0wF?f2blOYWxKJU8D4 z{@A%F(8=cEF6Zfq^@7is>|Rt`C_b5O?Ps`lnb*qm#zA|IZnMa~z`7>ec%w_<|J8<< z!S(+{F8;kU3^S^l_kqs8jRVjBmnAp(x4NEr`v5~ihr1kUf`6Xey_tKOfcGhlr z<{e6#LGypF)>+NF?zOhkYW)+Vpoi-kHC1$@g}pLY>ZZK?A6}Bp_0+*bbdHJ}3K}`^%SWy4+_T zVh)#n^inh2{bb-jr)^u~`N8K;T0`d_q_Z~6uUc9l#U?qAy(Snk{{~urG52p2$Nk&8 zYQ>NJTXu17fQ!w@yCK?YR<7rv*Ngw6 z#Ggbhlu>z^x!OhNi!8glP_<}_%s$DT5|dMFl{GfxMYtF8T{0>DCV4XA)#Ew35g%Pz zFB$&5#pQfsrCfUGFWIK$A^pV~huI%hzYi&!S(~)(befFSzLXlXTQ4^Sl%y5OF_%O<=@4@)Q( z{5rSld5qJKywhCC*6JK{dw%b{nzJHLChSRgJIC)?B0Y__{jSAL;}TunbN4{;^99vD zFHbd2H@?G}aqF+_>(6EGrzY-^-p0+!#sBY;ZJ^x#hLFv=>DDW zlJ4r(#T%WoSI=Pabw6!&2;Bei;aE3w{{c7uUtXDWcqg9OyIA7U%Y(~yycF@9XS*{t%)hg|Kx(nnJa*9h8>sx3JkrQybSp|@V*0LFy<`8Dt(zBM zGof4HsY%mIohe2hzj?CN+nCm99%8Y3tngfhV@hGgbe%Z4e74((*Mdani9Xn(cd3PI zMSpLR?W|oas-W|q9!eC+gihRb+db{7sN}Qnk8DF$<^H$pQu3X*&~ZavqHC$(&J%_? zOtFXjHxlnhtzE8idHOQ8klofIsvgC2n2mMWXA1`Y+&Jrr`=OHx0q0UmdEB#_)c;8F z_D)}^miw$1eEvlJE9HQ>@lq853pH<8C4BnTc3JsY7tF6i&EE{Qp8kCt5OZJhG_ zeYaMlV)XXPh^Ezd#f!Feotf}PJuIQPV$L3irnHnp+#gf|HELAYc7Ar|JlqtMQ!!EV46{Q(>Hd?F~ z`1YXG$|cYK5V-$Q^2+x;%RQ~&rEQ;b>%rk~scV(;al-7YDbN0I=hBOkadb8a+h_1D zrrY(XdrgwDzVhE0(J8C$Rtoj|xprxT&Oh~AdoN3|hF3g&b@)Q&kWEHx;P&Uv{eBx( zB|Uz0q>p3q%1-Cj5`CMyFL&~v2+uiWX62%3wpnPyltZP3jQcEl!{07(?fQ0)H{sLY ziI*5#qnYP$?<>m}+jYL)29?k5< z`6qnV#;m!%;dPwe1fNd~>kqQJmwqhlls?tLb7Ru1k4>QckK76_(#oZQ1mF=W6Q4u$of0b`iBQ^R1bW=$q@heafs>{tLfe? z`8>Bl``>EA+)u9f>@>|hj(=O?Nt-3_)gR^+=cgTeo3&wn!qNh%Y>9d70m0FMQB&nC zg0D9!fzJQpzO}3N@9}@jv!9Vr< z0^i+2D;4fo7q8maIe)ACf#}!`u6))xQyCQn{x)iK&)##ss^x!J^M-;mLJEs7tbe+d zzkEW(?kBUAaui&qO5`hDKOMXLMeerWt1|ceo__9P@|9raH=>uPXEQzBTg4#xaDt5e z@~;zjZa8`9>D6}EQym{8z9pO$ymDQ_cE3j2!$jl#X=j)1+Nyf2zv%Tgt&UWw<|x0$ zZIVB}Uu&NBNveuv3iqZjY?J*{kmCG?j@Q}YGA2VfNn-zH zn-)%CE1JQ1UbyJw|1_pvwsbD@>LYx!6hq1nra4uw^l5a?D6HA$>v24dH`ugX^|S}4 zZp?O1_kb6CEx56LRI=GVLqPeF zdXD+@BS8}W8E;&s&r{1k?YI19UGd4|wxO|Ga@guOJq}TPAv}B6j=Y~d2cBQrY597S z++1#_X_Ho@W`Fz3^5y@Ot^h0l!2dQHPASGgSqFAoWM6P!m&_Pld@t_PSLZn8b5TrL zT#uYZ8vnI5YA8loaYtNRma|vq=eK%x|GXE1ib;>p@@X{$iG(|z`jPN%eonlN_3eMl z&sIK3eZYE?Q}x^9TaK^Vp6hJBRl9eycJ@KXuyZdrtz=sFP?ATBq5sbzX_iH98+3(C z7bjc)omp0FU>J4li)6$F4p(qd6%*2s=_i%G)wVh&&1u=(|k^*`loXFJB8G_=oq+;cd{ZqJMR?k`@>$tWm^ z+f^ix*?pk3=XKRf0p?cmCeXwqL1wr;uo>bVERKVV_T= zJ&P0f%Kg#5qi$8Xo3+>WbKDC&|AXn`nZJeGRsVdb$tcly;af0$V$+#~gNWWkf}h8F+Fzad|1LpNG{ESbgPhgIdt44-dXb7!GoSXQpD8_Z+&@_S zhodFy8k_pOs>G(5X4+P76>mwNbp3eAAtY4SWmER+nPmn(b1piFHtb%fV%&b~Kskiivw#LRB-sKwXiUZo28}?1H6Jo@_QU zjGF)DV({$j$5-bHR8DEQxbp8Tqrj{LaG)}_iSgP&b>_JypMBQP;J9vQa7I!&!K(QTCr4#t_zu(*JMwB`r7tr<-(ga z6COJDmsA_waz7EM|I+a_d-(P5I$u}4`)U6pLcn_2E(|OpE90nyZ!OOhkn%( zwa*k5itKmGyJEF#ZlJo%YuyHKR6pE)!BFq;fo<+ftLfQ0 z@_2p+c*iBS6fAz3^j4^+eJlU6@272Ap4^;tXZQP=vZr5&mRknN?3B5fc%uCJpWS}m z1=EAsrstVSm+YJ~dv?agwzsWWGKs}bMmEo92A`Gjzf!yVy4IbrS=S$Rm@AqDKMk{( zelR)ta{ce%8aI#R&j0VuKJvRIThsP{iEWN0O9o5sp&yZwFVB7q5_)^=>$6QOqrXkM zcqX%Po^rVN#jMH)^Kzc;+_?C^4Yyo~;`h*)vRRWOd^Re)qO!z z7K;RPCEw4mlvKU`X~FLETHnH(lGr-i6+#2nD%_oRCSlfXxra;Yt^99B6%*zKwr62APJ zME4b?(4f=ducwG69KC(=@za_juj=l`H`5;cyt%EO?ePm%eXF?a+Ps^;Go&m|Dupe4 z8T@h0w#o6ortzILZ5331<*$)f|9n^W)O`<@L|IRh+^nV%lwZ&?RYP*)_2bMre>gRd z-+B{}_J?I!(nb^%+B+ybR*7S;;x1{zv-cRjp%%(aUk^X$_9Q7_R-0E0Q^Lx#xtdxv!hP4=npytzF=O+Ra+~!`y2PL z|46#>NVX(=Qr#|f(JdQZ^ZIq2ei|wD$KU6HSgO^p%v{bR)peGs@^g;wF(U3Q8Y2S1w z@nrqZ2Rjem-lN=c+)z#8_pP6udnB9Lgj%OechCK(vgwKJse{hzU+ws~ZF{?La%~lp(%*88iMQX1C^Y|TYrZ7t zr|9E$?LpZlo$^h!ot%;q@)6e->?s%O(1=YfSkkB=bvyP}jn4#wYdaY3h^{cZY3$d3 zS*HFa=hEl~wX)w$nwNfd>bT$PJ6QBjHr{6O@t-CCq%)UuSm&obo9cD=*3zW~++7xL zohpMf9Vb4ouKx6VVZQg|D2>IxubXfk`?qQFN6VsO=C~Q_4Zi4<|F!;Wuc^UYb!}3& zd%=vL*l>>nFa3?0^Ve`$-C&*3ZLm0bna>L=zx|i;%wKY^jo1)xc79{%643ciFL!-( zdTh?`b>#2-s?*Y0>m=)Jb2dCv-SDaXjh(@pxQpsiY}|@pj*0kfnc3)W%l-HN>2?=;U~gjSF{QL8_6#K6w#Xs%)Nt+gFwTHY_wkGSJT5Q;V zY-xej%h>y+kh%ge423Cz4&jG#>CsZVpER&Yddg7Fv!*|_Rho9oq0wNYQNT{ zL1mt52;J#EIYlfbsMb6dc`y?#QfV@Vb^=Nhr z8~27?ADyHW`DQ!sHZ@`AX*>F>T4GZd`BiA8J$tUPVgILT z4px2I%haWGRQ&rpm;^peKcK+y(oZ2-WLNAAv43q%z5y~-mjtive)vTvJGpkZ><^7_ zrE3?yvML=AP!=`2wlPL&rtWbgrW_-PO!O|Aiw`XVAUJT>Df*Td49K_esuCj zyZg&_1*dK4aeOboov>+O7OODW~poelG+1c>CD8edx<{6Ho7V(pQ#gv3OpRaee2#vS055aPYMvBrJA_HvHs zBk~Q)s&BF`Q(c|Qac`ob=E>6MeE0l3=ikWdUbem}{l?V;#k0dQbJidK7}Y7L_RtTM z{ugAudw6VVnawV_8R~qw{{Bm+7!>#J-Oc29&PnC_jxI6H$#JJ zam&T3hF!aKHTrK((!48?X};>uRo?WUAF%dIQGoJ1}x{TRztNeXn~`2)+23Pc@EpP`tlqr$hhCo%oZ%14Q@hgHM74lE6h+Bx^@pGW%1 z85VgPPR7r7=V`3l;Si=BBD?a_YYW-?xwhuz-F@-_uLbVta~}y?_`>{g>q=5*J~w@ z+dPPzQLsEs^5A`~>iaw^%hv>0wVtnlx=Rh{a0B*&x_|JF_UdHWoQf1s{-5ApI7OT{++)h>M3dk4TjXkP#9X;4up(`< z&rQ*qw}-_8S7lDG-(sb+|C8sVlUIU;PySrW_%z*{^U(F)(reOc|2*^kH5WXy+%W&# z$AFwa;q%m=M)3zez3uJu=~QGa<~pbD-(X{7fz4g5iO)KWR8j)m!J&e1db{>XM~p4>q50vU|NjH29@%tL7goQ28T!t655T z?~9dAp2gBp*LTlOX)!Wh%w1=n_H2R6vNx@*O7(9f5)A^ym~8)DmwW!Ib)j?G&TNgm zLoaJpn|5t!PWJLwcN4s}-hkU&^-=7L>>Q01cC&Ava927Iw8)G5_8$Yi`S~(IzCSpp zAFp|H>%aU|Po39~Lw=piysh-u%J#RP^~Tl?R^i*b_!7Qris|3qd{TJ1U)dtYdaX3c z7QN?xIv<)^x!Rs9_A3@L-I#3=bE)+zlhWU%{8xX!;4?Y)uX6Q`f)E@3&}#vb8+gEd~JCHqRra+bS~OcGR_m**Hvl$qRp{$S~PrYXS|`(>)am(^af+>rPA z%ID~9^ZTUS#kw{#KQd;Ip2qQ`@N|6gLqF>YACF7@;qQzqlI~5lF6>gW=}eRFbnlR!EXZHZdu!wT zsDAUqoJKdiG&dBjEnLhym7$^eaR@7@{p&xG=eOsxC;sdkHqLkBblR5gVDNCls@Nyl zlK;Tv&yF%bM^OETY(Ez; zMW=jI>T*l{br+WiOfGeXZiCBjEuWv z?gZ7`@LE^?Eo*VwsrWzb`yYqMUiALPb&)-y0z@Y)LVFFNJx z;(ys|YKSqMn$+#iamTMb++j|CM#k;@#X2!JyskA{JkfpN1FC->i>UrInw;6E@4M@R z%A?L^P4<;H76|{>lhnPwuc34kv(e{xmwLy=PxZgH{di+p{8?+hT6R=iQTyHSz}*jy zduMMcHk)|+nqkVZf5+Z$2#~23H=e%U;DJT*vdrD~8C=d<*Cup{X&(#9m1R2Cn;>^7 z?UgIja_0GmDsM?ID6lRA%DYki0HEm1q58W3LyV%RmzYb>Y z$iAodS)ZrnL-eDQ2SS`5uA1nyO--&~+UL`@ZSrah`KtBRmMzHKzVq19fV_7;&(u@J zXZ-04A*_e=UJO8l{kHV&9p#JBB@Iwss`~POKzGUeH zwSPeEuTH~d?2=v^oir*p%W!^RJ{DfC4f;u)FJSt$dYet;Aly`Xfrm1WU zpVBH%Mfu*+n0I8APxj4sZHpKA$rLk#%0Ec@zkkyp9@PGG(7oXl8}2b@<%9;1{W%9* zFLoQOd75xW(xHCevtYJYwv)0q3>O~ z^=`@eYEr?__UE-mDJw|(^X`&m|K|123YINqeyF#6$DS+gn~Ij`T3C4KUfZ;L|1D7a zGooc(eZlGa-!5MSjGlGtd@}nOb5J6GdG?)NL9gk_E9zukuM1Lf?_iaP<`VDHKFE$y?n5Qo4u{R&TvD-N|9Z(n#}xze?!+2K~_Lu11|zFdTaf58<{`}2)!1GxP8?7;~t z{|wgUoL(sP=)|D_?~kiM`Tu^u*!Qy*4f0A)y{zlQ+7e!E*nezmhS?tJ`Ql2^mv^3A zA}8_b+AK+>zq@WUdTXt1IreepWhn8Lz^Z8pFf_y!~ zTNc*mThIUPQgWc`T95q~(+?q6IojP{`+ViJYA;z|C-P;Rkd&e4y!eZ|9>%UL_Y?2> zZ+L{~vfWKT?Sjg03$r%Fo9(SITBI>gLDbtTVPE&N2Ss6wzi$0?HJ^BUms9nze|^;{ z5uo@#wn6_1sQlY}{Gvj*&WWbk5xNJWmaachap0=hQrIJq}LX{-FS z`;Ts4?mRe!kNxejMkXcRMG7-7JFQJQ`Ec6&C;GwFzhB0wpJ>rZUz@bs&de-5N=}No zUg$uaqkBZ_y1azP<+QXDNg*gKX=7(HPs1DizM1CWrJe!S58TLP!v{KrSvz-qVLG6 z*qD3Y_`IKF$mGj19pA6?h9@?YKq@1i51@>k^U1D~4= z`Ro69v;I_?nX|7<29*C!9t?8__5Ze|$Mav?-dS@bI_;sKO+p^L{NE*UFFk7V?ZS<- z7&#x`oF}Bkx+o(sdRJ`8&5zS2H^>M~Pf5R8$j77Pt)fF|aKbn_S?5=d)*Vo;> zd*Ooxv-KDE{JG(Ja+cy>o0n%ae|%qlIfV76YDe{kJf7;ps70QPV(!aQ6EAs6#Ixt| zd)BzjR{I#JlArc-f7XWoa~-9I+xI{`d7 zGC~(OYkbkE_iEj3uc;Akbh3B0`y+-)cc*uVY^<-pUGO+Kc}7>*=>nal4}6Zv*YE%1 z-Ktr2UAy2N&zE&vpKjiZWY@IX$W-<`zCV*AQfIcvGDW`X_sf!b-U}{ck+!0 zZ`rtD!R>tIo|+rJHz#X6R#ND>$xvUf9K!WYX=d^IL?3HIsU*(Eu<(ytzxl2!pMQSZ z_mh8Iq*vD6TfJZMX2Plu|JhOvtQN6!m~eYL7aEGZOZauKkxA)qsCnb*U9l`9q`Vl|~r{haqXU604^mXh)*m;Sr`Upmu)@=W85 z<5NT(Zfmadv7PEQ^K99hl&uoe7<6836tsGodrj$yKhM49{4;O1geCRvx|M#|v&w#X z)7rWgJE!y6+_A#FF9bIHemvDV^s~fnXOpsQmm^bx13Ip)(N|g=#rySRcW%h)-nR2s znLWbF1gAf)`NAoDuy$TFvt+ve(n;%#c%CNZE6L59BI^1t|CnXa->N77(w;F)_2~>U z>$_Q4@G|SDQd5X#-^So&pP#6@ull{0Z<+>I^uDFDa@I&xrz#{qed z49*rs3KSK7JrEpssp%$D-Xs(MjjK;sh;O~OwE2a-4O?#Q&NIHBF zfBz`*Q=41=-oCz)7CW&^)}mfvm#=1hetqnrapta=yQNa%{5IdG_(m_dw!|R(ZoSOc z{Xc3Qzjn7BKOq|x%pA1uoYQ2_@aY^=r6i@4O1^FXm&AU6QHGIs^+pxd=>d' -}; +#else + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00}, + {0x00, 0x0F, 0x1F, 0x00, 0x00, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x20, 0xF8, 0xF8, 0x20, 0xF8, 0xF8, 0x20, 0x00, 0x02, 0x0F, 0x0F, 0x02, 0x0F, 0x0F, 0x02}, + {0x70, 0xF8, 0x88, 0x8E, 0x8E, 0x98, 0x10, 0x00, 0x04, 0x0C, 0x08, 0x38, 0x38, 0x0F, 0x07}, + {0x30, 0x30, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x0C, 0x0C}, + {0x80, 0xD8, 0x7C, 0xE4, 0xBC, 0xD8, 0x40, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08}, + {0x00, 0x10, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0xF0, 0xF8, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0C, 0x08, 0x00}, + {0x00, 0x00, 0x04, 0x0C, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x07, 0x03, 0x00}, + {0x00, 0x80, 0xA0, 0xE0, 0xC0, 0xE0, 0xA0, 0x80, 0x00, 0x00, 0x02, 0x03, 0x01, 0x03, 0x02}, + {0x00, 0x80, 0x80, 0xE0, 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1E, 0x0E, 0x00, 0x00}, + {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x84, 0xC4, 0x64, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x09, 0x08, 0x08, 0x0F, 0x07}, + {0x00, 0x10, 0x18, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08}, + {0x18, 0x1C, 0x04, 0x84, 0xC4, 0x7C, 0x38, 0x00, 0x0C, 0x0E, 0x0B, 0x09, 0x08, 0x08, 0x08}, + {0x18, 0x1C, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x80, 0xC0, 0x60, 0x30, 0x18, 0xFC, 0xFC, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, 0x0F}, + {0x7C, 0x7C, 0x44, 0x44, 0x44, 0xC4, 0x84, 0x00, 0x04, 0x0C, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xF0, 0xF8, 0x4C, 0x44, 0x44, 0xC4, 0x80, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x04, 0x04, 0x04, 0x84, 0xE4, 0x7C, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x01, 0x00, 0x00}, + {0xB8, 0xFC, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x78, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0xF8, 0x00, 0x00, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x03}, + {0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x06, 0x00, 0x00}, + {0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}, + {0x00, 0x08, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x00}, + {0x38, 0x3C, 0x04, 0x84, 0xC4, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00}, + {0xF0, 0xF8, 0x08, 0xC8, 0xC8, 0xF8, 0xF0, 0x00, 0x07, 0x0F, 0x08, 0x0B, 0x0B, 0x0B, 0x01}, + {0xF8, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0xF8, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0x1C, 0x18, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0E, 0x06}, + {0xFC, 0xFC, 0x04, 0x04, 0x0C, 0xF8, 0xF0, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x0C, 0x07, 0x03}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0x04, 0x04, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0x04, 0x04, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x04, 0x84, 0x84, 0x9C, 0x98, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xFC, 0xFC, 0x40, 0x40, 0x40, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x0F, 0x07, 0x00}, + {0xFC, 0xFC, 0xE0, 0x30, 0x18, 0x0C, 0x04, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08}, + {0xFC, 0xFC, 0x18, 0x70, 0x18, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x60, 0xC0, 0x80, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01, 0x0F, 0x0F}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xFC, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0x78, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x08, 0x0C, 0x0C, 0x1F, 0x17}, + {0xFC, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0x78, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x38, 0x7C, 0x44, 0x44, 0x44, 0xCC, 0x88, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x00, 0x04, 0x04, 0xFC, 0xFC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x7C, 0xFC, 0x80, 0x00, 0x80, 0xFC, 0x7C, 0x00, 0x00, 0x03, 0x0F, 0x0C, 0x0F, 0x03, 0x00}, + {0xFC, 0xFC, 0x00, 0x80, 0x00, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x06, 0x03, 0x06, 0x0F, 0x0F}, + {0x0C, 0x3C, 0xF0, 0xC0, 0xF0, 0x3C, 0x0C, 0x00, 0x0C, 0x0F, 0x03, 0x00, 0x03, 0x0F, 0x0C}, + {0x00, 0x3C, 0x7C, 0xC0, 0xC0, 0x7C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0x04, 0x04, 0x84, 0xC4, 0x64, 0x3C, 0x1C, 0x00, 0x0E, 0x0F, 0x09, 0x08, 0x08, 0x08, 0x08}, + {0x00, 0x00, 0xFC, 0xFC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x00}, + {0x38, 0x70, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0E}, + {0x00, 0x00, 0x04, 0x04, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x0F, 0x00}, + {0x08, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}, + {0x00, 0x00, 0x03, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0xA0, 0xA0, 0xA0, 0xA0, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0x60, 0x40, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0C, 0x04}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xFC, 0xFC, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x01}, + {0x20, 0x20, 0xF8, 0xFC, 0x24, 0x24, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0x00, 0x07, 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x3F}, + {0xFC, 0xFC, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00, 0x00, 0x30, 0x70, 0x40, 0x40, 0x7F, 0x3F}, + {0xFC, 0xFC, 0x00, 0x80, 0xC0, 0x60, 0x20, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x00, 0x00, 0x04, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0xE0, 0xE0, 0x20, 0xE0, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F}, + {0xE0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xE0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x7F, 0x7F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x7F, 0x7F}, + {0xE0, 0xE0, 0x60, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x08, 0x09, 0x09, 0x09, 0x09, 0x0F, 0x06}, + {0x20, 0x20, 0xFC, 0xFC, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x03, 0x0F, 0x0C, 0x0F, 0x03, 0x00}, + {0xE0, 0xE0, 0x00, 0x80, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x0F, 0x08, 0x0F, 0x07}, + {0x60, 0xE0, 0x80, 0x00, 0x80, 0xE0, 0x60, 0x00, 0x0C, 0x0E, 0x03, 0x01, 0x03, 0x0E, 0x0C}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x3F}, + {0x20, 0x20, 0x20, 0xA0, 0xE0, 0x60, 0x20, 0x00, 0x0C, 0x0E, 0x0B, 0x09, 0x08, 0x08, 0x08}, + {0x00, 0x00, 0x40, 0xF8, 0xBC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x08, 0x08}, + {0x00, 0x00, 0x00, 0xBC, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0x00, 0x04, 0x04, 0xBC, 0xF8, 0x40, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x07, 0x00, 0x00}, + {0x08, 0x0C, 0x04, 0x0C, 0x08, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} +#endif +}; #if 0 // original font @@ -132,7 +230,7 @@ const uint8_t gFontBig[95][15] = {0x00, 0xF0, 0xF8, 0xB8, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0xB8, 0xF0, 0xE0, 0x00, 0x11, 0x33, 0x77, 0x67, 0x66, 0x66, 0x66, 0x76, 0x33, 0x3F, 0x1F, 0x07}, {0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00} }; -#else +#elif 0 // VCR font const uint8_t gFontBigDigits[11][26] = { @@ -148,6 +246,22 @@ const uint8_t gFontBig[95][15] = {0x00, 0x00, 0x78, 0xFC, 0xC6, 0x86, 0x86, 0x86, 0x86, 0x86, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x18, 0x38, 0x71, 0x61, 0x61, 0x61, 0x61, 0x71, 0x3F, 0x1F, 0x00}, {0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00} }; +#else + // Terminus font + const uint8_t gFontBigDigits[11][26] = + { + {0x00, 0x00, 0xFC, 0xFE, 0xFE, 0x06, 0x86, 0xC6, 0xE6, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x67, 0x63, 0x61, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x00, 0x00}, + {0x00, 0x00, 0x1C, 0x1E, 0x1E, 0x06, 0x06, 0x06, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x60, 0x70, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x60, 0x60, 0x00}, + {0x00, 0x00, 0x0C, 0x0E, 0x0E, 0x86, 0x86, 0x86, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x30, 0x70, 0x70, 0x61, 0x61, 0x61, 0x61, 0x7F, 0x7F, 0x3E, 0x00}, + {0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x7F, 0x7F, 0x7F, 0x00}, + {0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x30, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0xF8, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x06, 0x06, 0x86, 0xE6, 0xFE, 0x7E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x7C, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0xFC, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x01, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x7F, 0x3F, 0x1F, 0x00}, + {0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00} + }; #endif /* const uint8_t gFontSmallDigits[11][7] = @@ -363,4 +477,170 @@ const uint8_t gFontSmall[95][6] = {0x00, 0x41, 0x77, 0x3E, 0x08, 0x00}, {0x0C, 0x06, 0x0C, 0x18, 0x0C, 0x00} }; -#endif \ No newline at end of file +#endif + +#ifdef ENABLE_SPECTRUM + const uint8_t gFont3x5[160][3] = + { + {0x00, 0x00, 0x00}, // 32 - space + {0x00, 0x17, 0x00}, // 33 - exclam + {0x03, 0x00, 0x03}, // 34 - quotedbl + {0x1f, 0x0a, 0x1f}, // 35 - numbersign + {0x0a, 0x1f, 0x05}, // 36 - dollar + {0x09, 0x04, 0x12}, // 37 - percent + {0x0f, 0x17, 0x1c}, // 38 - ampersand + {0x00, 0x03, 0x00}, // 39 - quotesingle + {0x00, 0x0e, 0x11}, // 40 - parenleft + {0x11, 0x0e, 0x00}, // 41 - parenright + {0x05, 0x02, 0x05}, // 42 - asterisk + {0x04, 0x0e, 0x04}, // 43 - plus + {0x10, 0x08, 0x00}, // 44 - comma + {0x04, 0x04, 0x04}, // 45 - hyphen + {0x00, 0x10, 0x00}, // 46 - period + {0x18, 0x04, 0x03}, // 47 - slash + {0x1e, 0x11, 0x0f}, // 48 - zero + {0x02, 0x1f, 0x00}, // 49 - one + {0x19, 0x15, 0x12}, // 50 - two + {0x11, 0x15, 0x0a}, // 51 - three + {0x07, 0x04, 0x1f}, // 52 - four + {0x17, 0x15, 0x09}, // 53 - five + {0x1e, 0x15, 0x1d}, // 54 - six + {0x19, 0x05, 0x03}, // 55 - seven + {0x1f, 0x15, 0x1f}, // 56 - eight + {0x17, 0x15, 0x0f}, // 57 - nine + {0x00, 0x0a, 0x00}, // 58 - colon + {0x10, 0x0a, 0x00}, // 59 - semicolon + {0x04, 0x0a, 0x11}, // 60 - less + {0x0a, 0x0a, 0x0a}, // 61 - equal + {0x11, 0x0a, 0x04}, // 62 - greater + {0x01, 0x15, 0x03}, // 63 - question + {0x0e, 0x15, 0x16}, // 64 - at + {0x1e, 0x05, 0x1e}, // 65 - A + {0x1f, 0x15, 0x0a}, // 66 - B + {0x0e, 0x11, 0x11}, // 67 - C + {0x1f, 0x11, 0x0e}, // 68 - D + {0x1f, 0x15, 0x15}, // 69 - E + {0x1f, 0x05, 0x05}, // 70 - F + {0x0e, 0x15, 0x1d}, // 71 - G + {0x1f, 0x04, 0x1f}, // 72 - H + {0x11, 0x1f, 0x11}, // 73 - I + {0x08, 0x10, 0x0f}, // 74 - J + {0x1f, 0x04, 0x1b}, // 75 - K + {0x1f, 0x10, 0x10}, // 76 - L + {0x1f, 0x06, 0x1f}, // 77 - M + {0x1f, 0x0e, 0x1f}, // 78 - N + {0x0e, 0x11, 0x0e}, // 79 - O + {0x1f, 0x05, 0x02}, // 80 - P + {0x0e, 0x19, 0x1e}, // 81 - Q + {0x1f, 0x0d, 0x16}, // 82 - R + {0x12, 0x15, 0x09}, // 83 - S + {0x01, 0x1f, 0x01}, // 84 - T + {0x0f, 0x10, 0x1f}, // 85 - U + {0x07, 0x18, 0x07}, // 86 - V + {0x1f, 0x0c, 0x1f}, // 87 - W + {0x1b, 0x04, 0x1b}, // 88 - X + {0x03, 0x1c, 0x03}, // 89 - Y + {0x19, 0x15, 0x13}, // 90 - Z + {0x1f, 0x11, 0x11}, // 91 - bracketleft + {0x02, 0x04, 0x08}, // 92 - backslash + {0x11, 0x11, 0x1f}, // 93 - bracketright + {0x02, 0x01, 0x02}, // 94 - asciicircum + {0x10, 0x10, 0x10}, // 95 - underscore + {0x01, 0x02, 0x00}, // 96 - grave + {0x1a, 0x16, 0x1c}, // 97 - a + {0x1f, 0x12, 0x0c}, // 98 - b + {0x0c, 0x12, 0x12}, // 99 - c + {0x0c, 0x12, 0x1f}, // 100 - d + {0x0c, 0x1a, 0x16}, // 101 - e + {0x04, 0x1e, 0x05}, // 102 - f + {0x0c, 0x2a, 0x1e}, // 103 - g + {0x1f, 0x02, 0x1c}, // 104 - h + {0x00, 0x1d, 0x00}, // 105 - i + {0x10, 0x20, 0x1d}, // 106 - j + {0x1f, 0x0c, 0x12}, // 107 - k + {0x11, 0x1f, 0x10}, // 108 - l + {0x1e, 0x0e, 0x1e}, // 109 - m + {0x1e, 0x02, 0x1c}, // 110 - n + {0x0c, 0x12, 0x0c}, // 111 - o + {0x3e, 0x12, 0x0c}, // 112 - p + {0x0c, 0x12, 0x3e}, // 113 - q + {0x1c, 0x02, 0x02}, // 114 - r + {0x14, 0x1e, 0x0a}, // 115 - s + {0x02, 0x1f, 0x12}, // 116 - t + {0x0e, 0x10, 0x1e}, // 117 - u + {0x0e, 0x18, 0x0e}, // 118 - v + {0x1e, 0x1c, 0x1e}, // 119 - w + {0x12, 0x0c, 0x12}, // 120 - x + {0x06, 0x28, 0x1e}, // 121 - y + {0x1a, 0x1e, 0x16}, // 122 - z + {0x04, 0x1b, 0x11}, // 123 - braceleft + {0x00, 0x1b, 0x00}, // 124 - bar + {0x11, 0x1b, 0x04}, // 125 - braceright + {0x02, 0x03, 0x01}, // 126 - asciitilde + {0x00, 0x00, 0x00}, // 127 - empty + {0x00, 0x00, 0x00}, // 128 - empty + {0x00, 0x00, 0x00}, // 129 - empty + {0x00, 0x00, 0x00}, // 130 - empty + {0x00, 0x00, 0x00}, // 131 - empty + {0x00, 0x00, 0x00}, // 132 - empty + {0x00, 0x00, 0x00}, // 133 - empty + {0x00, 0x00, 0x00}, // 134 - empty + {0x00, 0x00, 0x00}, // 135 - empty + {0x00, 0x00, 0x00}, // 136 - empty + {0x00, 0x00, 0x00}, // 137 - empty + {0x00, 0x00, 0x00}, // 138 - empty + {0x00, 0x00, 0x00}, // 139 - empty + {0x00, 0x00, 0x00}, // 140 - empty + {0x00, 0x00, 0x00}, // 141 - empty + {0x00, 0x00, 0x00}, // 142 - empty + {0x00, 0x00, 0x00}, // 143 - empty + {0x00, 0x00, 0x00}, // 144 - empty + {0x00, 0x00, 0x00}, // 145 - empty + {0x00, 0x00, 0x00}, // 146 - empty + {0x00, 0x00, 0x00}, // 147 - empty + {0x00, 0x00, 0x00}, // 148 - empty + {0x00, 0x00, 0x00}, // 149 - empty + {0x00, 0x00, 0x00}, // 150 - empty + {0x00, 0x00, 0x00}, // 151 - empty + {0x00, 0x00, 0x00}, // 152 - empty + {0x00, 0x00, 0x00}, // 153 - empty + {0x00, 0x00, 0x00}, // 154 - empty + {0x00, 0x00, 0x00}, // 155 - empty + {0x00, 0x00, 0x00}, // 156 - empty + {0x00, 0x00, 0x00}, // 157 - empty + {0x00, 0x00, 0x00}, // 158 - empty + {0x00, 0x00, 0x00}, // 159 - empty + {0x00, 0x00, 0x00}, // 160 - empty + {0x00, 0x1d, 0x00}, // 161 - exclamdown + {0x0e, 0x1b, 0x0a}, // 162 - cent + {0x14, 0x1f, 0x15}, // 163 - sterling + {0x15, 0x0e, 0x15}, // 164 - currency + {0x0b, 0x1c, 0x0b}, // 165 - yen + {0x00, 0x1b, 0x00}, // 166 - brokenbar + {0x14, 0x1b, 0x05}, // 167 - section + {0x01, 0x00, 0x01}, // 168 - dieresis + {0x02, 0x05, 0x05}, // 169 - copyright + {0x16, 0x15, 0x17}, // 170 - ordfeminine + {0x02, 0x05, 0x00}, // 171 - guillemotleft + {0x02, 0x02, 0x06}, // 172 - logicalnot + {0x04, 0x04, 0x00}, // 173 - softhyphen + {0x07, 0x03, 0x04}, // 174 - registered + {0x01, 0x01, 0x01}, // 175 - macron + {0x02, 0x05, 0x02}, // 176 - degree + {0x12, 0x17, 0x12}, // 177 - plusminus + {0x01, 0x07, 0x04}, // 178 - twosuperior + {0x05, 0x07, 0x07}, // 179 - threesuperior + {0x00, 0x02, 0x01}, // 180 - acute + {0x1f, 0x08, 0x07}, // 181 - mu + {0x02, 0x1d, 0x1f}, // 182 - paragraph + {0x0e, 0x0e, 0x0e}, // 183 - periodcentered + {0x10, 0x14, 0x08}, // 184 - cedilla + {0x00, 0x07, 0x00}, // 185 - onesuperior + {0x12, 0x15, 0x12}, // 186 - ordmasculine + {0x00, 0x05, 0x02}, // 187 - guillemotright + {0x03, 0x08, 0x18}, // 188 - onequarter + {0x0b, 0x18, 0x10}, // 189 - onehalf + {0x03, 0x0b, 0x18}, // 190 - threequarters + {0x18, 0x15, 0x10}, // 191 - questiondown + }; +#endif diff --git a/functions.c b/functions.c index a302208..cd02ab1 100644 --- a/functions.c +++ b/functions.c @@ -204,6 +204,9 @@ void FUNCTION_Select(FUNCTION_Type_t Function) DTMF_Reply(); + if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO) + BK4819_PlaySingleTone(2525, 250, 0, gEeprom.DTMF_SIDE_TONE); + #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) if (gAlarmState != ALARM_STATE_OFF) { diff --git a/AM_fix.mp4 b/images/AM_fix.mp4 similarity index 100% rename from AM_fix.mp4 rename to images/AM_fix.mp4 diff --git a/image1.png b/images/image1.png similarity index 100% rename from image1.png rename to images/image1.png diff --git a/image2.png b/images/image2.png similarity index 100% rename from image2.png rename to images/image2.png diff --git a/image3.png b/images/image3.png similarity index 100% rename from image3.png rename to images/image3.png diff --git a/radio.c b/radio.c index 98b7907..38dd1b5 100644 --- a/radio.c +++ b/radio.c @@ -332,12 +332,12 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure if (Data[5] == 0xFF) { gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = false; - gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = 0; + gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = PTT_ID_OFF; } else { - gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = !!((Data[5] >> 0) & 1u); - gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = ((Data[5] >> 1) & 3u); + gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = ((Data[5] >> 0) & 1u) ? true : false; + gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = ((Data[5] >> 1) & 7u); } // *************** @@ -1080,8 +1080,12 @@ void RADIO_SendEndOfTransmission(void) if (gEeprom.ROGER == ROGER_MODE_MDC) BK4819_PlayRogerMDC(); + if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO) + BK4819_PlaySingleTone(2475, 250, 28, gEeprom.DTMF_SIDE_TONE); + if (gDTMF_CallState == DTMF_CALL_STATE_NONE && - (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)) + (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)) { // end-of-tx if (gEeprom.DTMF_SIDE_TONE) { @@ -1093,15 +1097,14 @@ void RADIO_SendEndOfTransmission(void) BK4819_EnterDTMF_TX(gEeprom.DTMF_SIDE_TONE); BK4819_PlayDTMFString( - gEeprom.DTMF_DOWN_CODE, - 0, - gEeprom.DTMF_FIRST_CODE_PERSIST_TIME, - gEeprom.DTMF_HASH_CODE_PERSIST_TIME, - gEeprom.DTMF_CODE_PERSIST_TIME, - gEeprom.DTMF_CODE_INTERVAL_TIME); - + gEeprom.DTMF_DOWN_CODE, + 0, + gEeprom.DTMF_FIRST_CODE_PERSIST_TIME, + gEeprom.DTMF_HASH_CODE_PERSIST_TIME, + gEeprom.DTMF_CODE_PERSIST_TIME, + gEeprom.DTMF_CODE_INTERVAL_TIME); + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gEnableSpeaker = false; } diff --git a/radio.h b/radio.h index 66f1536..e1d03da 100644 --- a/radio.h +++ b/radio.h @@ -44,7 +44,8 @@ enum PTT_ID_t { PTT_ID_OFF = 0, // OFF PTT_ID_TX_UP, // BEGIN OF TX PTT_ID_TX_DOWN, // END OF TX - PTT_ID_BOTH // BOTH + PTT_ID_BOTH, // BOTH + PTT_ID_APOLLO // Apolo quindar tones }; typedef enum PTT_ID_t PTT_ID_t; diff --git a/settings.c b/settings.c index b7821f8..1910c55 100644 --- a/settings.c +++ b/settings.c @@ -219,7 +219,7 @@ void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, | (pVFO->OUTPUT_POWER << 2) | (pVFO->CHANNEL_BANDWIDTH << 1) | (pVFO->FrequencyReverse << 0); - State[5] = (pVFO->DTMF_PTT_ID_TX_MODE << 1) | (pVFO->DTMF_DECODING_ENABLE << 0); + State[5] = ((pVFO->DTMF_PTT_ID_TX_MODE & 7u) << 1) | ((pVFO->DTMF_DECODING_ENABLE & 1u) << 0); State[6] = pVFO->STEP_SETTING; State[7] = pVFO->SCRAMBLING_TYPE; EEPROM_WriteBuffer(OffsetVFO + 8, State); diff --git a/ui/menu.c b/ui/menu.c index 26b3cc0..03984b7 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -240,12 +240,13 @@ const char gSubMenu_D_RSP[4][11] = "BOTH" }; -const char gSubMenu_PTT_ID[4][7] = +const char gSubMenu_PTT_ID[5][15] = { "OFF", - "KEY UP", - "KEY DN", - "BOTH" + "KEY\nUP", + "KEY\nDOWN", + "KEY\nUP+DOWN", + "APOLLO\nQUINDAR" }; const char gSubMenu_PONMSG[4][8] = diff --git a/ui/menu.h b/ui/menu.h index d4d96fa..157b3d2 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -139,7 +139,7 @@ extern const char gSubMenu_MDF[4][15]; extern const char gSubMenu_AL_MOD[2][5]; #endif extern const char gSubMenu_D_RSP[4][11]; -extern const char gSubMenu_PTT_ID[4][7]; +extern const char gSubMenu_PTT_ID[5][15]; extern const char gSubMenu_PONMSG[4][8]; extern const char gSubMenu_ROGER[3][9]; extern const char gSubMenu_RESET[2][4];