From 7ac5119fbd6e7fe37e5d6c43dd1178d8786863b4 Mon Sep 17 00:00:00 2001 From: ElVit Date: Fri, 6 Jun 2025 13:05:02 +0200 Subject: [PATCH 01/13] Check bytes before publish state. Renamed set16_1 to set16_9. Renamed some states e. g. OperationMode (top4/set9). Added functions to set only high or low nibble of a byte in a command message. --- components/panasonic_heatpump/commands.cpp | 16 +- components/panasonic_heatpump/decode.cpp | 50 +- components/panasonic_heatpump/decode.h | 33 +- .../panasonic_heatpump/number/__init__.py | 54 +- .../panasonic_heatpump/panasonic_heatpump.cpp | 518 ++++++++++-------- .../panasonic_heatpump/panasonic_heatpump.h | 34 +- .../panasonic_heatpump/select/__init__.py | 2 +- .../text_sensor/__init__.py | 6 +- 8 files changed, 386 insertions(+), 327 deletions(-) diff --git a/components/panasonic_heatpump/commands.cpp b/components/panasonic_heatpump/commands.cpp index b880e48..9c30a53 100644 --- a/components/panasonic_heatpump/commands.cpp +++ b/components/panasonic_heatpump/commands.cpp @@ -95,17 +95,17 @@ namespace esphome { switch (input) { - case 0: return 18; // heat-only - case 1: return 19; // cool-only + case 0: return 18; // heat + case 1: return 19; // cool case 2: return 24; // auto case 3: return 25; // auto-heat case 4: return 26; // auto-cool - case 5: return 33; // dhw-only - case 6: return 34; // heat+dhw - case 7: return 35; // cool+dhw - case 8: return 40; // auto-dhw - case 9: return 41; // auto-heat+dhw - case 10: return 42; // auto-cool+dhw + case 5: return 33; // tank + case 6: return 34; // heat+tank + case 7: return 35; // cool+tank + case 8: return 40; // auto-tank + case 9: return 41; // auto-heat+tank + case 10: return 42; // auto-cool+tank default: return 0; // do nothing } } diff --git a/components/panasonic_heatpump/decode.cpp b/components/panasonic_heatpump/decode.cpp index 1536b90..696c65a 100644 --- a/components/panasonic_heatpump/decode.cpp +++ b/components/panasonic_heatpump/decode.cpp @@ -11,19 +11,19 @@ namespace esphome constexpr const char* const PanasonicDecode::InactiveActive[]; constexpr const char* const PanasonicDecode::PumpFlowRateMode[]; constexpr const char* const PanasonicDecode::HolidayState[]; - constexpr const char* const PanasonicDecode::OpModeDesc[]; - constexpr const char* const PanasonicDecode::Powerfulmode[]; - constexpr const char* const PanasonicDecode::Quietmode[]; - constexpr const char* const PanasonicDecode::Valve[]; - constexpr const char* const PanasonicDecode::Valve2[]; + constexpr const char* const PanasonicDecode::OperationMode[]; + constexpr const char* const PanasonicDecode::PowerfulMode[]; + constexpr const char* const PanasonicDecode::QuietMode[]; + constexpr const char* const PanasonicDecode::ThreeWayValve[]; + constexpr const char* const PanasonicDecode::TwoWayValve[]; constexpr const char* const PanasonicDecode::MixingValve[]; - constexpr const char* const PanasonicDecode::ZonesState[]; - constexpr const char* const PanasonicDecode::HeatCoolModeDesc[]; - constexpr const char* const PanasonicDecode::SolarModeDesc[]; - constexpr const char* const PanasonicDecode::ZonesSensorType[]; + constexpr const char* const PanasonicDecode::ZoneState[]; + constexpr const char* const PanasonicDecode::WaterTempControl[]; + constexpr const char* const PanasonicDecode::SolarMode[]; + constexpr const char* const PanasonicDecode::ZoneSensorType[]; constexpr const char* const PanasonicDecode::LiquidType[]; constexpr const char* const PanasonicDecode::ExtPadHeaterType[]; - constexpr const char* const PanasonicDecode::Bivalent[]; + constexpr const char* const PanasonicDecode::BivalentMode[]; constexpr const char* const PanasonicDecode::ModelNames[]; constexpr const uint8_t KnownModels[NUMBER_OF_MODELS][10] = @@ -170,32 +170,32 @@ namespace esphome return (input & 0b1111) - 1; } - int PanasonicDecode::getWordMinus1(uint8_t low, uint8_t hi) + int PanasonicDecode::getWordMinus1(const std::vector& data, uint8_t index) { - return ((hi << 8) + low) - 1; + return ((data[index + 1] << 8) + data[index]) - 1; } - int PanasonicDecode::getUintt16(uint8_t input1, uint8_t input2) + int PanasonicDecode::getUintt16(const std::vector& data, uint8_t index) { - return (static_cast((input2 << 8) | input1)) - 1; + return (static_cast((data[index + 1] << 8) | data[index])) - 1; } // TOP4 // - int PanasonicDecode::getOpMode(uint8_t input) + int PanasonicDecode::getOperationMode(uint8_t input) { switch ((int)(input & 0b111111)) { - case 18: return 0; // heat-only - case 19: return 1; // cool-only + case 18: return 0; // heat + case 19: return 1; // cool case 24: return 2; // auto case 25: return 3; // auto-heat case 26: return 4; // auto-cool - case 33: return 5; // dhw-only - case 34: return 6; // heat+dhw - case 35: return 7; // cool+dhw - case 40: return 8; // auto-dhw - case 41: return 9; // auto-heat+dhw - case 42: return 10; // auto-cool+dhw + case 33: return 5; // tank + case 34: return 6; // heat+tank + case 35: return 7; // cool+tank + case 40: return 8; // auto-tank + case 41: return 9; // auto-heat+tank + case 42: return 10; // auto-cool+tank default: return -1; // unknown } } @@ -222,9 +222,9 @@ namespace esphome // TOP1 // // input1 = data[169] // input2 = data[170] - float PanasonicDecode::getPumpFlow(uint8_t input1, uint8_t input2) + float PanasonicDecode::getPumpFlow(const std::vector& data, uint8_t index) { - return (((float)input1 - 1) / 256) + ((int)input2); + return (((float)data[index] - 1) / 256) + ((int)data[index + 1]); } // TOP5, TOP6 // diff --git a/components/panasonic_heatpump/decode.h b/components/panasonic_heatpump/decode.h index 4651504..32d61c8 100644 --- a/components/panasonic_heatpump/decode.h +++ b/components/panasonic_heatpump/decode.h @@ -33,12 +33,12 @@ namespace esphome static int getByteMinus1Times200(uint8_t input); static int getHighNibbleMinus1(uint8_t input); static int getLowNibbleMinus1(uint8_t input); - static int getWordMinus1(uint8_t hi, uint8_t low); - static int getUintt16(uint8_t input1, uint8_t input2); + static int getWordMinus1(const std::vector& data, uint8_t index); + static int getUintt16(const std::vector& data, uint8_t index); - static int getOpMode(uint8_t input); + static int getOperationMode(uint8_t input); static int getModel(const std::vector& data, uint8_t index); - static float getPumpFlow(uint8_t input1, uint8_t input2); + static float getPumpFlow(const std::vector& data, uint8_t index); static float getFractional(uint8_t input, uint8_t shift); static std::string getErrorInfo(uint8_t errorType, uint8_t errorNumber); @@ -50,21 +50,24 @@ namespace esphome static const constexpr char* const OffOn[] = { "2", "Off", "On" }; static const constexpr char* const InactiveActive[] = { "2", "Inactive", "Active" }; static const constexpr char* const PumpFlowRateMode[] = { "2", "DeltaT", "Max flow" }; - static const constexpr char* const Valve[] = { "2", "Room", "DHW" }; - static const constexpr char* const Valve2[] = { "2", "Cool", "Heat" }; - static const constexpr char* const HeatCoolModeDesc[] = { "2", "Comp. Curve", "Direct" }; + static const constexpr char* const ThreeWayValve[] = { "2", "Buffer Tank", "DHW Tank" }; + static const constexpr char* const TwoWayValve[] = { "2", "Cool", "Heat" }; + static const constexpr char* const WaterTempControl[] = { "2", "Comp. Curve", "Direct" }; static const constexpr char* const LiquidType[] = { "2", "Water", "Glycol" }; static const constexpr char* const HolidayState[] = { "3", "Off", "Scheduled", "Active" }; - static const constexpr char* const SolarModeDesc[] = { "3", "Disabled", "Buffer", "DHW" }; + static const constexpr char* const SolarMode[] = { "3", "Disabled", "Buffer Tank", "DHW Tank" }; static const constexpr char* const MixingValve[] = { "4", "Off", "Decrease","Increase", "Invalid" }; - static const constexpr char* const ZonesSensorType[] = { "4", "Water Temperature", "External Thermostat", "Internal Thermostat", "Thermistor" }; - static const constexpr char* const Quietmode[] = { "4", "Off", "Level 1", "Level 2", "Level 3" }; - static const constexpr char* const Powerfulmode[] = { "4", "Off", "30min", "60min", "90min" }; - static const constexpr char* const OpModeDesc[] = { "11", "Heat only", "Cool only", "Auto", "Auto(heat)", "Auto(cool)", "DHW only", - "Heat+DHW", "Cool+DHW", "Auto+DHW", "Auto(heat)+DHW", "Auto(cool)+DHW" }; - static const constexpr char* const ZonesState[] = { "3", "Zone 1", "Zone 2", "Zone 1 & 2" }; + static const constexpr char* const ZoneSensorType[] = { "4", "Water Temperature", "External Thermostat", "Internal Thermostat", "Thermistor" }; + static const constexpr char* const QuietMode[] = { "4", "Off", "Level 1", "Level 2", "Level 3" }; + static const constexpr char* const PowerfulMode[] = { "4", "Off", "30min", "60min", "90min" }; + static const constexpr char* const OperationMode[] = + { + "11", "HEAT", "COOL", "AUTO", "AUTO(HEAT)", "AUTO(COOL)", + "TANK", "HEAT+TANK", "COOL+TANK", "AUTO+TANK", "AUTO(HEAT)+TANK", "AUTO(COOL)+TANK" + }; + static const constexpr char* const ZoneState[] = { "3", "Zone 1", "Zone 2", "Zone 1 & 2" }; static const constexpr char* const ExtPadHeaterType[] = { "3", "Disabled", "Type-A", "Type-B" }; - static const constexpr char* const Bivalent[] = { "3", "Alternative", "Parallel", "Advanced Parallel" }; + static const constexpr char* const BivalentMode[] = { "3", "Alternative", "Parallel", "Advanced Parallel" }; static const constexpr char* const ModelNames[] = { "55", // string representation of number of known models (last model number + 1) diff --git a/components/panasonic_heatpump/number/__init__.py b/components/panasonic_heatpump/number/__init__.py index 101241b..26038f3 100644 --- a/components/panasonic_heatpump/number/__init__.py +++ b/components/panasonic_heatpump/number/__init__.py @@ -16,15 +16,15 @@ CONF_SET7 = "set7" # Set Z2 Heat Request Temperature CONF_SET8 = "set8" # Set Z2 Cool Request Temperature CONF_SET11 = "set11" # Set DHW Temp CONF_SET15 = "set15" # Set Max Pump Duty -CONF_SET16_1 = "set16_1" # Set Zone1 Heat Target High -CONF_SET16_2 = "set16_2" # Set Zone1 Heat Target Low -CONF_SET16_3 = "set16_3" # Set Zone1 Heat Outside Low -CONF_SET16_4 = "set16_4" # Set Zone1 Heat Outside High -CONF_SET16_5 = "set16_5" # Set Zone2 Heat Target High -CONF_SET16_6 = "set16_6" # Set Zone2 Heat Target Low -CONF_SET16_7 = "set16_7" # Set Zone2 Heat Outside Low -CONF_SET16_8 = "set16_8" # Set Zone2 Heat Outside High -CONF_SET16_9 = "set16_9" # Set Zone1 Cool Target High +CONF_SET16_01 = "set16_01" # Set Zone1 Heat Target High +CONF_SET16_02 = "set16_02" # Set Zone1 Heat Target Low +CONF_SET16_03 = "set16_03" # Set Zone1 Heat Outside Low +CONF_SET16_04 = "set16_04" # Set Zone1 Heat Outside High +CONF_SET16_05 = "set16_05" # Set Zone2 Heat Target High +CONF_SET16_06 = "set16_06" # Set Zone2 Heat Target Low +CONF_SET16_07 = "set16_07" # Set Zone2 Heat Outside Low +CONF_SET16_08 = "set16_08" # Set Zone2 Heat Outside High +CONF_SET16_09 = "set16_09" # Set Zone1 Cool Target High CONF_SET16_10 = "set16_10" # Set Zone1 Cool Target Low CONF_SET16_11 = "set16_11" # Set Zone1 Cool Outside Low CONF_SET16_12 = "set16_12" # Set Zone1 Cool Outside High @@ -51,15 +51,15 @@ TYPES = [ CONF_SET8, CONF_SET11, CONF_SET15, - CONF_SET16_1, - CONF_SET16_2, - CONF_SET16_3, - CONF_SET16_4, - CONF_SET16_5, - CONF_SET16_6, - CONF_SET16_7, - CONF_SET16_8, - CONF_SET16_9, + CONF_SET16_01, + CONF_SET16_02, + CONF_SET16_03, + CONF_SET16_04, + CONF_SET16_05, + CONF_SET16_06, + CONF_SET16_07, + CONF_SET16_08, + CONF_SET16_09, CONF_SET16_10, CONF_SET16_11, CONF_SET16_12, @@ -146,47 +146,47 @@ CONFIG_SCHEMA = cv.Schema( cv.Optional(CONF_SET15): number.number_schema( PanasonicHeatpumpNumber, ), - cv.Optional(CONF_SET16_1): number.number_schema( + cv.Optional(CONF_SET16_01): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_2): number.number_schema( + cv.Optional(CONF_SET16_02): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_3): number.number_schema( + cv.Optional(CONF_SET16_03): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_4): number.number_schema( + cv.Optional(CONF_SET16_04): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_5): number.number_schema( + cv.Optional(CONF_SET16_05): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_6): number.number_schema( + cv.Optional(CONF_SET16_06): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_7): number.number_schema( + cv.Optional(CONF_SET16_07): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_8): number.number_schema( + cv.Optional(CONF_SET16_08): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, ), - cv.Optional(CONF_SET16_9): number.number_schema( + cv.Optional(CONF_SET16_09): number.number_schema( PanasonicHeatpumpNumber, unit_of_measurement=UNIT_CELSIUS, entity_category=ENTITY_CATEGORY_CONFIG, diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index 1b0134a..5461378 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -19,6 +19,13 @@ namespace esphome ESP_LOGCONFIG(TAG, "Setting up Panasonic Heatpump ..."); delay(10); // NOLINT this->check_uart_settings(9600, 1, uart::UART_CONFIG_PARITY_EVEN, 8); + + // initialize vector + for (int i = 0; i < RESPONSE_MSG_SIZE; i++) + { + this->last_message_.push_back(0); + } + this->update(); } @@ -53,37 +60,43 @@ namespace esphome } case LoopState::PUBLISH_SENSOR: { - this->publish_sensor(this->heatpump_message_); + this->publish_sensor(this->heatpump_message_, this->last_message_); this->loop_state_ = LoopState::PUBLISH_BINARY_SENSOR; break; } case LoopState::PUBLISH_BINARY_SENSOR: { - this->publish_binary_sensor(this->heatpump_message_); + this->publish_binary_sensor(this->heatpump_message_, this->last_message_); this->loop_state_ = LoopState::PUBLISH_TEXT_SENSOR; break; } case LoopState::PUBLISH_TEXT_SENSOR: { - this->publish_text_sensor(this->heatpump_message_); + this->publish_text_sensor(this->heatpump_message_, this->last_message_); this->loop_state_ = LoopState::PUBLISH_NUMBER; break; } case LoopState::PUBLISH_NUMBER: { - this->publish_number(this->heatpump_message_); + this->publish_number(this->heatpump_message_, this->last_message_); this->loop_state_ = LoopState::PUBLISH_SELECT; break; } case LoopState::PUBLISH_SELECT: { - this->publish_select(this->heatpump_message_); + this->publish_select(this->heatpump_message_, this->last_message_); this->loop_state_ = LoopState::PUBLISH_SWITCH; break; } case LoopState::PUBLISH_SWITCH: { - this->publish_switch(this->heatpump_message_); + this->publish_switch(this->heatpump_message_, this->last_message_); + this->loop_state_ = LoopState::STORE_RESPONSE; + break; + } + case LoopState::STORE_RESPONSE: + { + this->last_message_ = this->heatpump_message_; this->loop_state_ = LoopState::SEND_REQUEST; break; } @@ -286,18 +299,56 @@ namespace esphome return true; } + void PanasonicHeatpumpComponent::set_command_high_nibble(const uint8_t value, const uint8_t index) + { + if (this->next_request_ != RequestType::COMMAND) + { + // initialize the command + this->command_message_.assign(std::begin(PanasonicCommand::CommandMessage), + std::end(PanasonicCommand::CommandMessage)); + } + uint8_t lowNibble = this->heatpump_message_[index] & 0b1111; + uint8_t highNibble = value << 4; + // set command byte + this->command_message_[index] = highNibble + lowNibble; + // calculate and set set checksum (last element) + this->command_message_.back() = PanasonicCommand::calcChecksum(this->command_message_, this->command_message_.size() - 1); + + // command will be send on next loop + this->next_request_ = RequestType::COMMAND; + } + + void PanasonicHeatpumpComponent::set_command_low_nibble(const uint8_t value, const uint8_t index) + { + if (this->next_request_ != RequestType::COMMAND) + { + // initialize the command + this->command_message_.assign(std::begin(PanasonicCommand::CommandMessage), + std::end(PanasonicCommand::CommandMessage)); + } + uint8_t highNibble = this->heatpump_message_[index] & 0b11110000; + uint8_t lowNibble = value & 0b1111; + // set command byte + this->command_message_[index] = highNibble + lowNibble; + // calculate and set set checksum (last element) + this->command_message_.back() = PanasonicCommand::calcChecksum(this->command_message_, this->command_message_.size() - 1); + + // command will be send on next loop + this->next_request_ = RequestType::COMMAND; + } + void PanasonicHeatpumpComponent::set_command_byte(const uint8_t value, const uint8_t index) { if (this->next_request_ != RequestType::COMMAND) { // initialize the command - command_message_.assign(std::begin(PanasonicCommand::CommandMessage), + this->command_message_.assign(std::begin(PanasonicCommand::CommandMessage), std::end(PanasonicCommand::CommandMessage)); } // set command byte - command_message_[index] = value; + this->command_message_[index] = value; // calculate and set set checksum (last element) - command_message_.back() = PanasonicCommand::calcChecksum(command_message_, command_message_.size() - 1); + this->command_message_.back() = PanasonicCommand::calcChecksum(this->command_message_, this->command_message_.size() - 1); // command will be send on next loop this->next_request_ = RequestType::COMMAND; @@ -308,7 +359,7 @@ namespace esphome if (this->next_request_ != RequestType::COMMAND) { // initialize the command - command_message_.assign(std::begin(PanasonicCommand::CommandMessage), + this->command_message_.assign(std::begin(PanasonicCommand::CommandMessage), std::end(PanasonicCommand::CommandMessage)); } // set command bytes @@ -316,10 +367,10 @@ namespace esphome { uint8_t value = std::get<0>(data[i]); uint8_t index = std::get<1>(data[i]); - command_message_[index] = value; + this->command_message_[index] = value; } // calculate and set set checksum (last element) - command_message_.back() = PanasonicCommand::calcChecksum(command_message_, command_message_.size() - 1); + this->command_message_.back() = PanasonicCommand::calcChecksum(this->command_message_, this->command_message_.size() - 1); // command will be send on next loop this->next_request_ = RequestType::COMMAND; @@ -337,58 +388,58 @@ namespace esphome bool change_detected = false; std::string top76 = PanasonicDecode::getTextState( - PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit7and8(data[28])); // Heating Mode + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); // Heating Mode std::string top81 = PanasonicDecode::getTextState( - PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode float set5_min = this->set5_number_->traits.get_min_value(); // Z1 Heat Request Temperature float set6_min = this->set6_number_->traits.get_min_value(); // Z1 Cool Request Temperature float set7_min = this->set7_number_->traits.get_min_value(); // Z2 Heat Request Temperature float set8_min = this->set8_number_->traits.get_min_value(); // Z2 Cool Request Temperature - if (set5_min >= 0.0 && top76 == PanasonicDecode::HeatCoolModeDesc[1]) + if (set5_min >= 0.0 && top76 == PanasonicDecode::WaterTempControl[1]) { this->set5_number_->traits.set_min_value(-5.0); this->set5_number_->traits.set_max_value(5.0); change_detected = true; } - if (set6_min >= 0.0 && top81 == PanasonicDecode::HeatCoolModeDesc[1]) + if (set6_min >= 0.0 && top81 == PanasonicDecode::WaterTempControl[1]) { this->set6_number_->traits.set_min_value(-5.0); this->set6_number_->traits.set_max_value(5.0); change_detected = true; } - if (set7_min >= 0.0 && top76 == PanasonicDecode::HeatCoolModeDesc[1]) + if (set7_min >= 0.0 && top76 == PanasonicDecode::WaterTempControl[1]) { this->set7_number_->traits.set_min_value(-5.0); this->set7_number_->traits.set_max_value(5.0); change_detected = true; } - if (set8_min >= 0.0 && top81 == PanasonicDecode::HeatCoolModeDesc[1]) + if (set8_min >= 0.0 && top81 == PanasonicDecode::WaterTempControl[1]) { this->set8_number_->traits.set_min_value(-5.0); this->set8_number_->traits.set_max_value(5.0); change_detected = true; } - if (set5_min <= 0.0 && top76 == PanasonicDecode::HeatCoolModeDesc[2]) + if (set5_min <= 0.0 && top76 == PanasonicDecode::WaterTempControl[2]) { this->set5_number_->traits.set_min_value(20.0); this->set5_number_->traits.set_max_value(60.0); change_detected = true; } - if (set6_min <= 0.0 && top81 == PanasonicDecode::HeatCoolModeDesc[2]) + if (set6_min <= 0.0 && top81 == PanasonicDecode::WaterTempControl[2]) { this->set6_number_->traits.set_min_value(20.0); this->set6_number_->traits.set_max_value(60.0); change_detected = true; } - if (set7_min <= 0.0 && top76 == PanasonicDecode::HeatCoolModeDesc[2]) + if (set7_min <= 0.0 && top76 == PanasonicDecode::WaterTempControl[2]) { this->set7_number_->traits.set_min_value(20.0); this->set7_number_->traits.set_max_value(60.0); change_detected = true; } - if (set8_min <= 0.0 && top81 == PanasonicDecode::HeatCoolModeDesc[2]) + if (set8_min <= 0.0 && top81 == PanasonicDecode::WaterTempControl[2]) { this->set8_number_->traits.set_min_value(20.0); this->set8_number_->traits.set_max_value(60.0); @@ -403,235 +454,236 @@ namespace esphome #endif } - void PanasonicHeatpumpComponent::publish_sensor(const std::vector& data) + void PanasonicHeatpumpComponent::publish_sensor(const std::vector& data, const std::vector& last) { #ifdef USE_SENSOR if (data.empty()) return; - if (this->top1_sensor_) this->top1_sensor_->publish_state(PanasonicDecode::getPumpFlow(data[169], data[170])); - if (this->top5_sensor_) this->top5_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[143]) + PanasonicDecode::getFractional(data[118], 0)); - if (this->top6_sensor_) this->top6_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[144]) + PanasonicDecode::getFractional(data[118], 3)); - if (this->top7_sensor_) this->top7_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[153])); - if (this->top8_sensor_) this->top8_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[166])); - if (this->top9_sensor_) this->top9_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[42])); - if (this->top10_sensor_) this->top10_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[141])); - if (this->top11_sensor_) this->top11_sensor_->publish_state(PanasonicDecode::getWordMinus1(data[182], data[183])); - if (this->top12_sensor_) this->top12_sensor_->publish_state(PanasonicDecode::getWordMinus1(data[179], data[180])); - if (this->top14_sensor_) this->top14_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[142])); - if (this->top15_sensor_) this->top15_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[194])); - if (this->top16_sensor_) this->top16_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[193])); - if (this->top21_sensor_) this->top21_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[158])); - if (this->top22_sensor_) this->top22_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[99])); - if (this->top23_sensor_) this->top23_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[84])); - if (this->top24_sensor_) this->top24_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[94])); - if (this->top25_sensor_) this->top25_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[44])); - if (this->top27_sensor_) this->top27_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[38])); - if (this->top28_sensor_) this->top28_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[39])); - if (this->top29_sensor_) this->top29_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[75])); - if (this->top30_sensor_) this->top30_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[76])); - if (this->top31_sensor_) this->top31_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[78])); - if (this->top32_sensor_) this->top32_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[77])); - if (this->top33_sensor_) this->top33_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[156])); - if (this->top34_sensor_) this->top34_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[40])); - if (this->top35_sensor_) this->top35_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[41])); - if (this->top36_sensor_) this->top36_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[145])); - if (this->top37_sensor_) this->top37_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[146])); - if (this->top38_sensor_) this->top38_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[196])); - if (this->top39_sensor_) this->top39_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[195])); - if (this->top40_sensor_) this->top40_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[198])); - if (this->top41_sensor_) this->top41_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[197])); - if (this->top42_sensor_) this->top42_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[147])); - if (this->top43_sensor_) this->top43_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[148])); - if (this->top45_sensor_) this->top45_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[43])); - if (this->top46_sensor_) this->top46_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[149])); - if (this->top47_sensor_) this->top47_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[150])); - if (this->top48_sensor_) this->top48_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[151])); - if (this->top49_sensor_) this->top49_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[154])); - if (this->top50_sensor_) this->top50_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[155])); - if (this->top51_sensor_) this->top51_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[157])); - if (this->top52_sensor_) this->top52_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[159])); - if (this->top53_sensor_) this->top53_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[160])); - if (this->top54_sensor_) this->top54_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[161])); - if (this->top55_sensor_) this->top55_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[162])); - if (this->top56_sensor_) this->top56_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[139])); - if (this->top57_sensor_) this->top57_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[140])); - if (this->top62_sensor_) this->top62_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[173])); - if (this->top63_sensor_) this->top63_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[174])); - if (this->top64_sensor_) this->top64_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[163])); - if (this->top65_sensor_) this->top65_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[171])); - if (this->top66_sensor_) this->top66_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[164])); - if (this->top67_sensor_) this->top67_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[165])); - if (this->top70_sensor_) this->top70_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[100])); - if (this->top71_sensor_) this->top71_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[101])); - if (this->top72_sensor_) this->top72_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[86])); - if (this->top73_sensor_) this->top73_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[87])); - if (this->top74_sensor_) this->top74_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[89])); - if (this->top75_sensor_) this->top75_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[88])); - if (this->top77_sensor_) this->top77_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[83])); - if (this->top78_sensor_) this->top78_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[85])); - if (this->top79_sensor_) this->top79_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[95])); - if (this->top80_sensor_) this->top80_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[96])); - if (this->top82_sensor_) this->top82_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[79])); - if (this->top83_sensor_) this->top83_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[80])); - if (this->top84_sensor_) this->top84_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[82])); - if (this->top85_sensor_) this->top85_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[81])); - if (this->top86_sensor_) this->top86_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[90])); - if (this->top87_sensor_) this->top87_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[91])); - if (this->top88_sensor_) this->top88_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[93])); - if (this->top89_sensor_) this->top89_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[92])); - if (this->top90_sensor_) this->top90_sensor_->publish_state(PanasonicDecode::getWordMinus1(data[185], data[186])); - if (this->top91_sensor_) this->top91_sensor_->publish_state(PanasonicDecode::getWordMinus1(data[188], data[189])); - if (this->top93_sensor_) this->top93_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[172])); - if (this->top95_sensor_) this->top95_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[45])); - if (this->top96_sensor_) this->top96_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[104])); - if (this->top97_sensor_) this->top97_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[105])); - if (this->top98_sensor_) this->top98_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[106])); - if (this->top102_sensor_) this->top102_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[61])); - if (this->top103_sensor_) this->top103_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[62])); - if (this->top104_sensor_) this->top104_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[63])); - if (this->top105_sensor_) this->top105_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[64])); - if (this->top113_sensor_) this->top113_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[59])); - if (this->top115_sensor_) this->top115_sensor_->publish_state(PanasonicDecode::getByteMinus1Div50(data[125])); - if (this->top116_sensor_) this->top116_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[126])); - if (this->top117_sensor_) this->top117_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[127])); - if (this->top118_sensor_) this->top118_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[128])); - if (this->top127_sensor_) this->top127_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[177])); - if (this->top128_sensor_) this->top128_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[178])); - if (this->top131_sensor_) this->top131_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[65])); - if (this->top134_sensor_) this->top134_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[66])); - if (this->top135_sensor_) this->top135_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[68])); - if (this->top136_sensor_) this->top136_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[67])); - if (this->top137_sensor_) this->top137_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[69])); - if (this->top138_sensor_) this->top138_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[70])); + if (this->top1_sensor_ && last[169] != data[169]) this->top1_sensor_->publish_state(PanasonicDecode::getPumpFlow(data, 169)); + if (this->top5_sensor_ && (last[143] != data[143] || last[118] != data[118])) this->top5_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[143]) + PanasonicDecode::getFractional(data[118], 0)); + if (this->top6_sensor_ && (last[144] != data[144] || last[118] != data[118])) this->top6_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[144]) + PanasonicDecode::getFractional(data[118], 3)); + if (this->top7_sensor_ && last[153] != data[153]) this->top7_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[153])); + if (this->top8_sensor_ && last[166] != data[166]) this->top8_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[166])); + if (this->top9_sensor_ && last[42] != data[42]) this->top9_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[42])); + if (this->top10_sensor_ && last[141] != data[141]) this->top10_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[141])); + if (this->top11_sensor_ && last[182] != data[182]) this->top11_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 182)); + if (this->top12_sensor_ && last[179] != data[179]) this->top12_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 179)); + if (this->top14_sensor_ && last[142] != data[142]) this->top14_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[142])); + if (this->top15_sensor_ && last[194] != data[194]) this->top15_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[194])); + if (this->top16_sensor_ && last[193] != data[193]) this->top16_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[193])); + if (this->top21_sensor_ && last[158] != data[158]) this->top21_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[158])); + if (this->top22_sensor_ && last[99] != data[99]) this->top22_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[99])); + if (this->top23_sensor_ && last[84] != data[84]) this->top23_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[84])); + if (this->top24_sensor_ && last[94] != data[94]) this->top24_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[94])); + if (this->top25_sensor_ && last[44] != data[44]) this->top25_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[44])); + if (this->top27_sensor_ && last[38] != data[38]) this->top27_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[38])); + if (this->top28_sensor_ && last[39] != data[39]) this->top28_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[39])); + if (this->top29_sensor_ && last[75] != data[75]) this->top29_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[75])); + if (this->top30_sensor_ && last[76] != data[76]) this->top30_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[76])); + if (this->top31_sensor_ && last[78] != data[78]) this->top31_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[78])); + if (this->top32_sensor_ && last[77] != data[77]) this->top32_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[77])); + if (this->top33_sensor_ && last[156] != data[156]) this->top33_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[156])); + if (this->top34_sensor_ && last[40] != data[40]) this->top34_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[40])); + if (this->top35_sensor_ && last[41] != data[41]) this->top35_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[41])); + if (this->top36_sensor_ && last[145] != data[145]) this->top36_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[145])); + if (this->top37_sensor_ && last[146] != data[146]) this->top37_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[146])); + if (this->top38_sensor_ && last[196] != data[196]) this->top38_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[196])); + if (this->top39_sensor_ && last[195] != data[195]) this->top39_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[195])); + if (this->top40_sensor_ && last[198] != data[198]) this->top40_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[198])); + if (this->top41_sensor_ && last[197] != data[197]) this->top41_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[197])); + if (this->top42_sensor_ && last[147] != data[147]) this->top42_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[147])); + if (this->top43_sensor_ && last[148] != data[148]) this->top43_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[148])); + if (this->top45_sensor_ && last[43] != data[43]) this->top45_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[43])); + if (this->top46_sensor_ && last[149] != data[149]) this->top46_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[149])); + if (this->top47_sensor_ && last[150] != data[150]) this->top47_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[150])); + if (this->top48_sensor_ && last[151] != data[151]) this->top48_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[151])); + if (this->top49_sensor_ && last[154] != data[154]) this->top49_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[154])); + if (this->top50_sensor_ && last[155] != data[155]) this->top50_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[155])); + if (this->top51_sensor_ && last[157] != data[157]) this->top51_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[157])); + if (this->top52_sensor_ && last[159] != data[159]) this->top52_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[159])); + if (this->top53_sensor_ && last[160] != data[160]) this->top53_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[160])); + if (this->top54_sensor_ && last[161] != data[161]) this->top54_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[161])); + if (this->top55_sensor_ && last[162] != data[162]) this->top55_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[162])); + if (this->top56_sensor_ && last[139] != data[139]) this->top56_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[139])); + if (this->top57_sensor_ && last[140] != data[140]) this->top57_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[140])); + if (this->top62_sensor_ && last[173] != data[173]) this->top62_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[173])); + if (this->top63_sensor_ && last[174] != data[174]) this->top63_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[174])); + if (this->top64_sensor_ && last[163] != data[163]) this->top64_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[163])); + if (this->top65_sensor_ && last[171] != data[171]) this->top65_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[171])); + if (this->top66_sensor_ && last[164] != data[164]) this->top66_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[164])); + if (this->top67_sensor_ && last[165] != data[165]) this->top67_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[165])); + if (this->top70_sensor_ && last[100] != data[100]) this->top70_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[100])); + if (this->top71_sensor_ && last[101] != data[101]) this->top71_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[101])); + if (this->top72_sensor_ && last[86] != data[86]) this->top72_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[86])); + if (this->top73_sensor_ && last[87] != data[87]) this->top73_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[87])); + if (this->top74_sensor_ && last[89] != data[89]) this->top74_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[89])); + if (this->top75_sensor_ && last[88] != data[88]) this->top75_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[88])); + if (this->top77_sensor_ && last[83] != data[83]) this->top77_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[83])); + if (this->top78_sensor_ && last[85] != data[85]) this->top78_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[85])); + if (this->top79_sensor_ && last[95] != data[95]) this->top79_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[95])); + if (this->top80_sensor_ && last[96] != data[96]) this->top80_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[96])); + if (this->top82_sensor_ && last[79] != data[79]) this->top82_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[79])); + if (this->top83_sensor_ && last[80] != data[80]) this->top83_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[80])); + if (this->top84_sensor_ && last[82] != data[82]) this->top84_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[82])); + if (this->top85_sensor_ && last[81] != data[81]) this->top85_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[81])); + if (this->top86_sensor_ && last[90] != data[90]) this->top86_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[90])); + if (this->top87_sensor_ && last[91] != data[91]) this->top87_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[91])); + if (this->top88_sensor_ && last[93] != data[93]) this->top88_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[93])); + if (this->top89_sensor_ && last[92] != data[92]) this->top89_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[92])); + if (this->top90_sensor_ && last[185] != data[185]) this->top90_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 185)); + if (this->top91_sensor_ && last[188] != data[188]) this->top91_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 188)); + if (this->top93_sensor_ && last[172] != data[172]) this->top93_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[172])); + if (this->top95_sensor_ && last[45] != data[45]) this->top95_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[45])); + if (this->top96_sensor_ && last[104] != data[104]) this->top96_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[104])); + if (this->top97_sensor_ && last[105] != data[105]) this->top97_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[105])); + if (this->top98_sensor_ && last[106] != data[106]) this->top98_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[106])); + if (this->top102_sensor_ && last[61] != data[61]) this->top102_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[61])); + if (this->top103_sensor_ && last[62] != data[62]) this->top103_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[62])); + if (this->top104_sensor_ && last[63] != data[63]) this->top104_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[63])); + if (this->top105_sensor_ && last[64] != data[64]) this->top105_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[64])); + if (this->top113_sensor_ && last[59] != data[59]) this->top113_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[59])); + if (this->top115_sensor_ && last[125] != data[125]) this->top115_sensor_->publish_state(PanasonicDecode::getByteMinus1Div50(data[125])); + if (this->top116_sensor_ && last[126] != data[126]) this->top116_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[126])); + if (this->top117_sensor_ && last[127] != data[127]) this->top117_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[127])); + if (this->top118_sensor_ && last[128] != data[128]) this->top118_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[128])); + if (this->top127_sensor_ && last[177] != data[177]) this->top127_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[177])); + if (this->top128_sensor_ && last[178] != data[178]) this->top128_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[178])); + if (this->top131_sensor_ && last[65] != data[65]) this->top131_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[65])); + if (this->top134_sensor_ && last[66] != data[66]) this->top134_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[66])); + if (this->top135_sensor_ && last[68] != data[68]) this->top135_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[68])); + if (this->top136_sensor_ && last[67] != data[67]) this->top136_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[67])); + if (this->top137_sensor_ && last[69] != data[69]) this->top137_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[69])); + if (this->top138_sensor_ && last[70] != data[70]) this->top138_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[70])); #endif } - void PanasonicHeatpumpComponent::publish_binary_sensor(const std::vector& data) + void PanasonicHeatpumpComponent::publish_binary_sensor(const std::vector& data, const std::vector& last) { #ifdef USE_BINARY_SENSOR if (data.empty()) return; - if (this->top0_binary_sensor_) this->top0_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); - if (this->top2_binary_sensor_) this->top2_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); - if (this->top3_binary_sensor_) this->top3_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[7]))); - if (this->top13_binary_sensor_) this->top13_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); - if (this->top26_binary_sensor_) this->top26_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); - if (this->top60_binary_sensor_) this->top60_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[112]))); - if (this->top61_binary_sensor_) this->top61_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[112]))); - if (this->top68_binary_sensor_) this->top68_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[5]))); - if (this->top69_binary_sensor_) this->top69_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); - if (this->top99_binary_sensor_) this->top99_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); - if (this->top100_binary_sensor_) this->top100_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[24]))); - if (this->top108_binary_sensor_) this->top108_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20]))); - if (this->top109_binary_sensor_) this->top109_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[20]))); - if (this->top110_binary_sensor_) this->top110_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[20]))); - if (this->top119_binary_sensor_) this->top119_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); - if (this->top120_binary_sensor_) this->top120_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); - if (this->top121_binary_sensor_) this->top121_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); - if (this->top122_binary_sensor_) this->top122_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); - if (this->top123_binary_sensor_) this->top123_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[116]))); - if (this->top124_binary_sensor_) this->top124_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[116]))); - if (this->top129_binary_sensor_) this->top129_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); - if (this->top132_binary_sensor_) this->top132_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[26]))); - if (this->top133_binary_sensor_) this->top133_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[26]))); + if (this->top0_binary_sensor_ && last[4] != data[4]) this->top0_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); + if (this->top2_binary_sensor_ && last[4] != data[4]) this->top2_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); + if (this->top3_binary_sensor_ && last[7] != data[7]) this->top3_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[7]))); + if (this->top13_binary_sensor_ && last[5] != data[5]) this->top13_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); + if (this->top26_binary_sensor_ && last[111] != data[111]) this->top26_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); + if (this->top60_binary_sensor_ && last[112] != data[112]) this->top60_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[112]))); + if (this->top61_binary_sensor_ && last[112] != data[112]) this->top61_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[112]))); + if (this->top68_binary_sensor_ && last[5] != data[5]) this->top68_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[5]))); + if (this->top69_binary_sensor_ && last[117] != data[117]) this->top69_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); + if (this->top99_binary_sensor_ && last[24] != data[24]) this->top99_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); + if (this->top100_binary_sensor_ && last[24] != data[24]) this->top100_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[24]))); + if (this->top108_binary_sensor_ && last[20] != data[20]) this->top108_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20]))); + if (this->top109_binary_sensor_ && last[20] != data[20]) this->top109_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[20]))); + if (this->top110_binary_sensor_ && last[20] != data[20]) this->top110_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[20]))); + if (this->top119_binary_sensor_ && last[23] != data[23]) this->top119_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); + if (this->top120_binary_sensor_ && last[23] != data[23]) this->top120_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); + if (this->top121_binary_sensor_ && last[23] != data[23]) this->top121_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); + if (this->top122_binary_sensor_ && last[23] != data[23]) this->top122_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); + if (this->top123_binary_sensor_ && last[116] != data[116]) this->top123_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[116]))); + if (this->top124_binary_sensor_ && last[116] != data[116]) this->top124_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[116]))); + if (this->top129_binary_sensor_ && last[26] != data[26]) this->top129_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); + if (this->top132_binary_sensor_ && last[26] != data[26]) this->top132_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[26]))); + if (this->top133_binary_sensor_ && last[26] != data[26]) this->top133_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[26]))); #endif } - void PanasonicHeatpumpComponent::publish_text_sensor(const std::vector& data) + void PanasonicHeatpumpComponent::publish_text_sensor(const std::vector& data, const std::vector& last) { #ifdef USE_TEXT_SENSOR if (data.empty()) return; - if (this->top4_text_sensor_) this->top4_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OpModeDesc, PanasonicDecode::getOpMode(data[6]))); - if (this->top17_text_sensor_) this->top17_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Powerfulmode, PanasonicDecode::getBit6and7and8(data[7]))); - if (this->top18_text_sensor_) this->top18_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Quietmode, PanasonicDecode::getBit3and4and5(data[7]))); - if (this->top19_text_sensor_) this->top19_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); - if (this->top20_text_sensor_) this->top20_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Valve, PanasonicDecode::getBit7and8(data[111]))); - if (this->top44_text_sensor_) this->top44_text_sensor_->publish_state(PanasonicDecode::getErrorInfo(data[113], data[114])); - if (this->top58_text_sensor_) this->top58_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit5and6(data[9]))); - if (this->top59_text_sensor_) this->top59_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(data[9]))); - if (this->top76_text_sensor_) this->top76_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit7and8(data[28]))); - if (this->top81_text_sensor_) this->top81_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit5and6(data[28]))); - if (this->top92_text_sensor_) this->top92_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(data, 129))); - if (this->top94_text_sensor_) this->top94_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZonesState, PanasonicDecode::getBit1and2(data[6]))); - if (this->top101_text_sensor_) this->top101_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::SolarModeDesc, PanasonicDecode::getBit3and4(data[24]))); - if (this->top106_text_sensor_) this->top106_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29]))); - if (this->top107_text_sensor_) this->top107_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::LiquidType, PanasonicDecode::getBit1(data[20]))); - if (this->top111_text_sensor_) this->top111_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZonesSensorType, PanasonicDecode::getLowNibbleMinus1(data[22]))); - if (this->top112_text_sensor_) this->top112_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZonesSensorType, PanasonicDecode::getHighNibbleMinus1(data[22]))); - if (this->top114_text_sensor_) this->top114_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); - if (this->top125_text_sensor_) this->top125_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Valve2, PanasonicDecode::getBit5and6(data[116]))); - if (this->top126_text_sensor_) this->top126_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Valve, PanasonicDecode::getBit7and8(data[116]))); - if (this->top130_text_sensor_) this->top130_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Bivalent, PanasonicDecode::getBit5and6(data[26]))); + if (this->top4_text_sensor_ && last[6] != data[6]) this->top4_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]))); + if (this->top17_text_sensor_ && last[7] != data[7]) this->top17_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]))); + if (this->top18_text_sensor_ && last[7] != data[7]) this->top18_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7]))); + if (this->top19_text_sensor_ && last[5] != data[5]) this->top19_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); + if (this->top20_text_sensor_ && last[111] != data[111]) this->top20_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[111]))); + if (this->top44_text_sensor_ && (last[113] != data[113] || last[114] != data[114])) this->top44_text_sensor_->publish_state(PanasonicDecode::getErrorInfo(data[113], data[114])); + if (this->top58_text_sensor_ && last[9] != data[9]) this->top58_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit5and6(data[9]))); + if (this->top59_text_sensor_ && last[9] != data[9]) this->top59_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(data[9]))); + if (this->top76_text_sensor_ && last[28] != data[28]) this->top76_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28]))); + if (this->top81_text_sensor_ && last[28] != data[28]) this->top81_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28]))); + if (this->top92_text_sensor_ && last[129] != data[129]) this->top92_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(data, 129))); + if (this->top94_text_sensor_ && last[6] != data[6]) this->top94_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6]))); + if (this->top101_text_sensor_ && last[24] != data[24]) this->top101_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::SolarMode, PanasonicDecode::getBit3and4(data[24]))); + if (this->top106_text_sensor_ && last[29] != data[29]) this->top106_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29]))); + if (this->top107_text_sensor_ && last[20] != data[20]) this->top107_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::LiquidType, PanasonicDecode::getBit1(data[20]))); + if (this->top111_text_sensor_ && last[22] != data[22]) this->top111_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getLowNibbleMinus1(data[22]))); + if (this->top112_text_sensor_ && last[22] != data[22]) this->top112_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getHighNibbleMinus1(data[22]))); + if (this->top114_text_sensor_ && last[25] != data[25]) this->top114_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); + if (this->top125_text_sensor_ && last[116] != data[116]) this->top125_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::TwoWayValve, PanasonicDecode::getBit5and6(data[116]))); + if (this->top126_text_sensor_ && last[116] != data[116]) this->top126_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[116]))); + if (this->top130_text_sensor_ && last[26] != data[26]) this->top130_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26]))); #endif } - void PanasonicHeatpumpComponent::publish_number(const std::vector& data) + void PanasonicHeatpumpComponent::publish_number(const std::vector& data, const std::vector& last) { #ifdef USE_NUMBER if (data.empty()) return; - if (this->set11_number_) this->set11_number_->publish_state(PanasonicDecode::getByteMinus128(data[42])); - if (this->set20_number_) this->set20_number_->publish_state(PanasonicDecode::getByteMinus128(data[99])); - if (this->set18_number_) this->set18_number_->publish_state(PanasonicDecode::getByteMinus128(data[84])); - if (this->set19_number_) this->set19_number_->publish_state(PanasonicDecode::getByteMinus128(data[94])); - if (this->set5_number_) this->set5_number_->publish_state(PanasonicDecode::getByteMinus128(data[38])); - if (this->set6_number_) this->set6_number_->publish_state(PanasonicDecode::getByteMinus128(data[39])); - if (this->set16_1_number_) this->set16_1_number_->publish_state(PanasonicDecode::getByteMinus128(data[75])); - if (this->set16_2_number_) this->set16_2_number_->publish_state(PanasonicDecode::getByteMinus128(data[76])); - if (this->set16_4_number_) this->set16_4_number_->publish_state(PanasonicDecode::getByteMinus128(data[78])); - if (this->set16_3_number_) this->set16_3_number_->publish_state(PanasonicDecode::getByteMinus128(data[77])); - if (this->set7_number_) this->set7_number_->publish_state(PanasonicDecode::getByteMinus128(data[40])); - if (this->set8_number_) this->set8_number_->publish_state(PanasonicDecode::getByteMinus128(data[41])); - if (this->set16_9_number_) this->set16_9_number_->publish_state(PanasonicDecode::getByteMinus128(data[86])); - if (this->set16_10_number_) this->set16_10_number_->publish_state(PanasonicDecode::getByteMinus128(data[87])); - if (this->set16_12_number_) this->set16_12_number_->publish_state(PanasonicDecode::getByteMinus128(data[89])); - if (this->set16_11_number_) this->set16_11_number_->publish_state(PanasonicDecode::getByteMinus128(data[88])); - if (this->set29_number_) this->set29_number_->publish_state(PanasonicDecode::getByteMinus128(data[83])); - if (this->set16_5_number_) this->set16_5_number_->publish_state(PanasonicDecode::getByteMinus128(data[79])); - if (this->set16_6_number_) this->set16_6_number_->publish_state(PanasonicDecode::getByteMinus128(data[80])); - if (this->set16_8_number_) this->set16_8_number_->publish_state(PanasonicDecode::getByteMinus128(data[82])); - if (this->set16_7_number_) this->set16_7_number_->publish_state(PanasonicDecode::getByteMinus128(data[81])); - if (this->set16_13_number_) this->set16_13_number_->publish_state(PanasonicDecode::getByteMinus128(data[90])); - if (this->set16_14_number_) this->set16_14_number_->publish_state(PanasonicDecode::getByteMinus128(data[91])); - if (this->set16_16_number_) this->set16_16_number_->publish_state(PanasonicDecode::getByteMinus128(data[93])); - if (this->set16_15_number_) this->set16_15_number_->publish_state(PanasonicDecode::getByteMinus128(data[92])); - if (this->set15_number_) this->set15_number_->publish_state(PanasonicDecode::getByteMinus1(data[45])); - if (this->set21_number_) this->set21_number_->publish_state(PanasonicDecode::getByteMinus1(data[104])); - if (this->set22_number_) this->set22_number_->publish_state(PanasonicDecode::getByteMinus128(data[105])); - if (this->set23_number_) this->set23_number_->publish_state(PanasonicDecode::getByteMinus128(data[106])); - if (this->set27_number_) this->set27_number_->publish_state(PanasonicDecode::getByteMinus128(data[59])); - if (this->set36_number_) this->set36_number_->publish_state(PanasonicDecode::getByteMinus128(data[65])); - if (this->set37_number_) this->set37_number_->publish_state(PanasonicDecode::getByteMinus128(data[66])); - if (this->set38_number_) this->set38_number_->publish_state(PanasonicDecode::getByteMinus128(data[68])); + if (this->set11_number_ && last[42] != data[42]) this->set11_number_->publish_state(PanasonicDecode::getByteMinus128(data[42])); + if (this->set20_number_ && last[99] != data[99]) this->set20_number_->publish_state(PanasonicDecode::getByteMinus128(data[99])); + if (this->set18_number_ && last[84] != data[84]) this->set18_number_->publish_state(PanasonicDecode::getByteMinus128(data[84])); + if (this->set19_number_ && last[94] != data[94]) this->set19_number_->publish_state(PanasonicDecode::getByteMinus128(data[94])); + if (this->set5_number_ && last[38] != data[38]) this->set5_number_->publish_state(PanasonicDecode::getByteMinus128(data[38])); + if (this->set6_number_ && last[39] != data[39]) this->set6_number_->publish_state(PanasonicDecode::getByteMinus128(data[39])); + if (this->set16_01_number_ && last[75] != data[75]) this->set16_01_number_->publish_state(PanasonicDecode::getByteMinus128(data[75])); + if (this->set16_02_number_ && last[76] != data[76]) this->set16_02_number_->publish_state(PanasonicDecode::getByteMinus128(data[76])); + if (this->set16_04_number_ && last[78] != data[78]) this->set16_04_number_->publish_state(PanasonicDecode::getByteMinus128(data[78])); + if (this->set16_03_number_ && last[77] != data[77]) this->set16_03_number_->publish_state(PanasonicDecode::getByteMinus128(data[77])); + if (this->set7_number_ && last[40] != data[40]) this->set7_number_->publish_state(PanasonicDecode::getByteMinus128(data[40])); + if (this->set8_number_ && last[41] != data[41]) this->set8_number_->publish_state(PanasonicDecode::getByteMinus128(data[41])); + if (this->set16_09_number_ && last[86] != data[86]) this->set16_09_number_->publish_state(PanasonicDecode::getByteMinus128(data[86])); + if (this->set16_10_number_ && last[87] != data[87]) this->set16_10_number_->publish_state(PanasonicDecode::getByteMinus128(data[87])); + if (this->set16_12_number_ && last[89] != data[89]) this->set16_12_number_->publish_state(PanasonicDecode::getByteMinus128(data[89])); + if (this->set16_11_number_ && last[88] != data[88]) this->set16_11_number_->publish_state(PanasonicDecode::getByteMinus128(data[88])); + if (this->set29_number_ && last[83] != data[83]) this->set29_number_->publish_state(PanasonicDecode::getByteMinus128(data[83])); + if (this->set16_05_number_ && last[79] != data[79]) this->set16_05_number_->publish_state(PanasonicDecode::getByteMinus128(data[79])); + if (this->set16_06_number_ && last[80] != data[80]) this->set16_06_number_->publish_state(PanasonicDecode::getByteMinus128(data[80])); + if (this->set16_08_number_ && last[82] != data[82]) this->set16_08_number_->publish_state(PanasonicDecode::getByteMinus128(data[82])); + if (this->set16_07_number_ && last[81] != data[81]) this->set16_07_number_->publish_state(PanasonicDecode::getByteMinus128(data[81])); + if (this->set16_13_number_ && last[90] != data[90]) this->set16_13_number_->publish_state(PanasonicDecode::getByteMinus128(data[90])); + if (this->set16_14_number_ && last[91] != data[91]) this->set16_14_number_->publish_state(PanasonicDecode::getByteMinus128(data[91])); + if (this->set16_16_number_ && last[93] != data[93]) this->set16_16_number_->publish_state(PanasonicDecode::getByteMinus128(data[93])); + if (this->set16_15_number_ && last[92] != data[92]) this->set16_15_number_->publish_state(PanasonicDecode::getByteMinus128(data[92])); + if (this->set15_number_ && last[45] != data[45]) this->set15_number_->publish_state(PanasonicDecode::getByteMinus1(data[45])); + if (this->set21_number_ && last[104] != data[104]) this->set21_number_->publish_state(PanasonicDecode::getByteMinus1(data[104])); + if (this->set22_number_ && last[105] != data[105]) this->set22_number_->publish_state(PanasonicDecode::getByteMinus128(data[105])); + if (this->set23_number_ && last[106] != data[106]) this->set23_number_->publish_state(PanasonicDecode::getByteMinus128(data[106])); + if (this->set27_number_ && last[59] != data[59]) this->set27_number_->publish_state(PanasonicDecode::getByteMinus128(data[59])); + if (this->set36_number_ && last[65] != data[65]) this->set36_number_->publish_state(PanasonicDecode::getByteMinus128(data[65])); + if (this->set37_number_ && last[66] != data[66]) this->set37_number_->publish_state(PanasonicDecode::getByteMinus128(data[66])); + if (this->set38_number_ && last[68] != data[68]) this->set38_number_->publish_state(PanasonicDecode::getByteMinus128(data[68])); #endif } - void PanasonicHeatpumpComponent::publish_select(const std::vector& data) + void PanasonicHeatpumpComponent::publish_select(const std::vector& data, const std::vector& last) { #ifdef USE_SELECT if (data.empty()) return; - if (this->set9_select_) this->set9_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OpModeDesc, PanasonicDecode::getOpMode(data[6]))); - if (this->set4_select_) this->set4_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Powerfulmode, PanasonicDecode::getBit6and7and8(data[7]))); - if (this->set3_select_) this->set3_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Quietmode, PanasonicDecode::getBit3and4and5(data[7]))); - if (this->set2_select_) this->set2_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); - if (this->set17_select_) this->set17_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZonesState, PanasonicDecode::getBit1and2(data[6]))); - if (this->set26_select_) this->set26_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); - if (this->set35_select_) this->set35_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Bivalent, PanasonicDecode::getBit5and6(data[26]))); + if (this->set9_select_ && last[6] != data[6]) this->set9_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]))); + if (this->set4_select_ && last[7] != data[7]) this->set4_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]))); + if (this->set3_select_ && last[7] != data[7]) this->set3_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7]))); + if (this->set2_select_ && last[5] != data[5]) this->set2_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); + if (this->set17_select_ && last[6] != data[6]) this->set17_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6]))); + if (this->set26_select_ && last[25] != data[25]) this->set26_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); + if (this->set35_select_ && last[26] != data[26]) this->set35_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26]))); #endif } - void PanasonicHeatpumpComponent::publish_switch(const std::vector& data) + void PanasonicHeatpumpComponent::publish_switch(const std::vector& data, const std::vector& last) { -#ifdef USE_SWITCH +#ifdef USE_SWITCH if (data.empty()) return; - if (this->set1_switch_) this->set1_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); - if (this->set10_switch_) this->set10_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); - if (this->set24_switch_) this->set24_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); - if (this->set12_switch_) this->set12_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); - if (this->set13_switch_) this->set13_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); - if (this->set28_switch_) this->set28_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); - if (this->set30_switch_) this->set30_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); - if (this->set33_switch_) this->set33_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); - if (this->set31_switch_) this->set31_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); - if (this->set32_switch_) this->set32_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); - if (this->set34_switch_) this->set34_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); + if (this->set1_switch_ && last[4] != data[4]) this->set1_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); + if (this->set10_switch_ && last[4] != data[4]) this->set10_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); + if (this->set24_switch_ && last[5] != data[5]) this->set24_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); + if (this->set12_switch_ && last[111] != data[111]) this->set12_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); + if (this->set13_switch_ && last[117] != data[117]) this->set13_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); + if (this->set28_switch_ && last[24] != data[24]) this->set28_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); + if (this->set25_switch_ && last[20] != data[20]) this->set25_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20]))); + if (this->set30_switch_ && last[23] != data[23]) this->set30_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); + if (this->set33_switch_ && last[23] != data[23]) this->set33_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); + if (this->set31_switch_ && last[23] != data[23]) this->set31_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); + if (this->set32_switch_ && last[23] != data[23]) this->set32_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); + if (this->set34_switch_ && last[26] != data[26]) this->set34_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); #endif } @@ -656,33 +708,33 @@ namespace esphome else if (object == this->set37_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 66); else if (object == this->set38_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 68); // Set zone 1 curve - if (object == this->set16_1_number_ || object == this->set16_2_number_ - || object == this->set16_3_number_ || object == this->set16_4_number_ - || object == this->set16_9_number_ || object == this->set16_10_number_ + if (object == this->set16_01_number_ || object == this->set16_02_number_ + || object == this->set16_03_number_ || object == this->set16_04_number_ + || object == this->set16_09_number_ || object == this->set16_10_number_ || object == this->set16_11_number_ || object == this->set16_12_number_) { std::vector> curve; - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_1_number_->state), 75)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_2_number_->state), 76)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_3_number_->state), 77)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_4_number_->state), 78)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_9_number_->state), 86)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_01_number_->state), 75)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_02_number_->state), 76)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_03_number_->state), 77)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_04_number_->state), 78)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_09_number_->state), 86)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_10_number_->state), 87)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_11_number_->state), 88)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_12_number_->state), 89)); this->set_command_bytes(curve); } // Set zone 2 curve - if (object == this->set16_5_number_ || object == this->set16_6_number_ - || object == this->set16_7_number_ || object == this->set16_8_number_ + if (object == this->set16_05_number_ || object == this->set16_06_number_ + || object == this->set16_07_number_ || object == this->set16_08_number_ || object == this->set16_13_number_ || object == this->set16_14_number_ || object == this->set16_15_number_ || object == this->set16_16_number_) { std::vector> curve; - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_5_number_->state), 79)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_6_number_->state), 80)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_7_number_->state), 81)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_8_number_->state), 82)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_05_number_->state), 79)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_06_number_->state), 80)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_07_number_->state), 81)); + curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_08_number_->state), 82)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_13_number_->state), 90)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_14_number_->state), 91)); curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_15_number_->state), 92)); diff --git a/components/panasonic_heatpump/panasonic_heatpump.h b/components/panasonic_heatpump/panasonic_heatpump.h index d39e79f..a6b63dc 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.h +++ b/components/panasonic_heatpump/panasonic_heatpump.h @@ -45,6 +45,7 @@ namespace esphome PUBLISH_NUMBER, PUBLISH_SELECT, PUBLISH_SWITCH, + STORE_RESPONSE, SEND_REQUEST, READ_REQUEST, RESTART_LOOP @@ -214,15 +215,15 @@ namespace esphome SUB_NUMBER(set8); SUB_NUMBER(set11); SUB_NUMBER(set15); - SUB_NUMBER(set16_1); - SUB_NUMBER(set16_2); - SUB_NUMBER(set16_3); - SUB_NUMBER(set16_4); - SUB_NUMBER(set16_5); - SUB_NUMBER(set16_6); - SUB_NUMBER(set16_7); - SUB_NUMBER(set16_8); - SUB_NUMBER(set16_9); + SUB_NUMBER(set16_01); + SUB_NUMBER(set16_02); + SUB_NUMBER(set16_03); + SUB_NUMBER(set16_04); + SUB_NUMBER(set16_05); + SUB_NUMBER(set16_06); + SUB_NUMBER(set16_07); + SUB_NUMBER(set16_08); + SUB_NUMBER(set16_09); SUB_NUMBER(set16_10); SUB_NUMBER(set16_11); SUB_NUMBER(set16_12); @@ -292,6 +293,7 @@ namespace esphome bool log_uart_msg_ { false }; // uart message variables std::vector heatpump_message_; + std::vector last_message_; std::vector response_message_; std::vector request_message_; std::vector command_message_; @@ -310,16 +312,18 @@ namespace esphome void send_request(RequestType requestType); void read_request(); bool check_response(const std::vector& data); + void set_command_high_nibble(const uint8_t value, const uint8_t index); + void set_command_low_nibble(const uint8_t value, const uint8_t index); void set_command_byte(const uint8_t value, const uint8_t index); void set_command_bytes(const std::vector>& data); // sensor and control publish functions void set_number_traits(const std::vector& data); - void publish_sensor(const std::vector& data); - void publish_binary_sensor(const std::vector& data); - void publish_text_sensor(const std::vector& data); - void publish_number(const std::vector& data); - void publish_select(const std::vector& data); - void publish_switch(const std::vector& data); + void publish_sensor(const std::vector& data, const std::vector& last); + void publish_binary_sensor(const std::vector& data, const std::vector& last); + void publish_text_sensor(const std::vector& data, const std::vector& last); + void publish_number(const std::vector& data, const std::vector& last); + void publish_select(const std::vector& data, const std::vector& last); + void publish_switch(const std::vector& data, const std::vector& last); }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/select/__init__.py b/components/panasonic_heatpump/select/__init__.py index b6e6b15..3986c48 100644 --- a/components/panasonic_heatpump/select/__init__.py +++ b/components/panasonic_heatpump/select/__init__.py @@ -30,7 +30,7 @@ CONF_SELECTS = [ [ "Off", "Scheduled", "Active", ], [ "Off", "Level 1", "Level 2", "Level 3", ], [ "Off", "30min", "60min", "90min", ], - [ "Heat only", "Cool only", "Auto", "Auto(heat)", "Auto(cool)", "DHW only", "Heat+DHW", "Cool+DHW", "Auto+DHW", "Auto(heat)+DHW", "Auto(cool)+DHW", ], + [ "HEAT", "COOL", "AUTO", "AUTO(HEAT)", "AUTO(COOL)", "TANK", "HEAT+TANK", "COOL+TANK", "AUTO+TANK", "AUTO(HEAT)+TANK", "AUTO(COOL)+TANK", ], [ "Zone 1", "Zone 2", "Zone 1 & 2", ], [ "Disabled", "Type-A", "Type-B" ], [ "Alternative", "Parallel", "Advanced Parallel" ], diff --git a/components/panasonic_heatpump/text_sensor/__init__.py b/components/panasonic_heatpump/text_sensor/__init__.py index ad00a96..9596d9b 100644 --- a/components/panasonic_heatpump/text_sensor/__init__.py +++ b/components/panasonic_heatpump/text_sensor/__init__.py @@ -7,7 +7,7 @@ from esphome.const import ( from .. import CONF_PANASONIC_HEATPUMP_ID, PanasonicHeatpumpComponent, panasonic_heatpump_ns -ICON_OPERATING_MODE = "mdi:thermostat" +ICON_OPERATION_MODE = "mdi:thermostat" ICON_POWERFUL_MODE = "mdi:arm-flex" ICON_QUIET_MODE = "mdi:sleep" ICON_HOLIDAY_MODE = "mdi:palm-tree" @@ -24,7 +24,7 @@ ICON_PUMP = "mdi:pump" ICON_EXTERNAL_PAD_HEATER = "mdi:radiator" -CONF_TOP4 = "top4" # Operating Mode State +CONF_TOP4 = "top4" # Operation Mode # ToDo: Split up top4 into top4_1 (Heating Mode State) and top4_2 (DHW Mode State) CONF_TOP17 = "top17" # Powerful Mode Time CONF_TOP18 = "top18" # Quiet Mode Level @@ -79,7 +79,7 @@ CONFIG_SCHEMA = cv.Schema( cv.Optional(CONF_TOP4): text_sensor.text_sensor_schema( PanasonicHeatpumpTextSensor, - icon=ICON_OPERATING_MODE, + icon=ICON_OPERATION_MODE, ), cv.Optional(CONF_TOP17): text_sensor.text_sensor_schema( PanasonicHeatpumpTextSensor, From 60d172f05765c659730e82dd81fa448679a34314 Mon Sep 17 00:00:00 2001 From: ElVit Date: Mon, 9 Jun 2025 10:24:06 +0200 Subject: [PATCH 02/13] Replaced setPlus73 with setPlus1 --- components/panasonic_heatpump/commands.cpp | 19 +++++++------------ components/panasonic_heatpump/commands.h | 1 - .../panasonic_heatpump/panasonic_heatpump.cpp | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/components/panasonic_heatpump/commands.cpp b/components/panasonic_heatpump/commands.cpp index 9c30a53..d554f80 100644 --- a/components/panasonic_heatpump/commands.cpp +++ b/components/panasonic_heatpump/commands.cpp @@ -48,32 +48,32 @@ namespace esphome uint8_t PanasonicCommand::setMultiply2(size_t input) { - return input * 2; + return input * 0b10; } uint8_t PanasonicCommand::setMultiply4(size_t input) { - return input * 4; + return input * 0b100; } uint8_t PanasonicCommand::setPlus1Multiply4(size_t input) { - return (input + 1) * 4; + return (input + 1) * 0b100; } uint8_t PanasonicCommand::setPlus1Multiply8(size_t input) { - return (input + 1) * 8; + return (input + 1) * 0b1000; } uint8_t PanasonicCommand::setPlus1Multiply16(size_t input) { - return (input + 1) * 16; + return (input + 1) * 0b10000; } uint8_t PanasonicCommand::setPlus1Multiply64(size_t input) { - return (input + 1) * 64; + return (input + 1) * 0b1000000; } uint8_t PanasonicCommand::setPlus1(size_t input) @@ -81,14 +81,9 @@ namespace esphome return input + 1; } - uint8_t PanasonicCommand::setPlus73(size_t input) - { - return input + 73; - } - uint8_t PanasonicCommand::setPlus128(size_t input) { - return input + 128; + return input + 0b10000000; } uint8_t PanasonicCommand::setOperationMode(size_t input) diff --git a/components/panasonic_heatpump/commands.h b/components/panasonic_heatpump/commands.h index 09aa48f..ad7df8b 100644 --- a/components/panasonic_heatpump/commands.h +++ b/components/panasonic_heatpump/commands.h @@ -25,7 +25,6 @@ namespace esphome static uint8_t setPlus1Multiply16(size_t input); static uint8_t setPlus1Multiply64(size_t input); static uint8_t setPlus1(size_t input); - static uint8_t setPlus73(size_t input); static uint8_t setPlus128(size_t input); static uint8_t setOperationMode(size_t input); static uint8_t temp2hex(float temp); diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index 5461378..b39d1e9 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -749,7 +749,7 @@ namespace esphome { if (object == this->set2_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 5); else if (object == this->set3_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply8(value), 7); - else if (object == this->set4_select_) this->set_command_byte(PanasonicCommand::setPlus73(value), 7); + else if (object == this->set4_select_) this->set_command_byte(PanasonicCommand::setPlus1(value), 7); else if (object == this->set9_select_) this->set_command_byte(PanasonicCommand::setOperationMode(value), 6); else if (object == this->set17_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 6); else if (object == this->set26_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 25); From b229ee80e692d8eda5319fbb104f7cb66b02b476 Mon Sep 17 00:00:00 2001 From: ElVit Date: Mon, 9 Jun 2025 10:25:01 +0200 Subject: [PATCH 03/13] Updated limits of SET37 and SET38 --- components/panasonic_heatpump/number/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/panasonic_heatpump/number/__init__.py b/components/panasonic_heatpump/number/__init__.py index 26038f3..c0960bf 100644 --- a/components/panasonic_heatpump/number/__init__.py +++ b/components/panasonic_heatpump/number/__init__.py @@ -113,8 +113,8 @@ CONF_NUMBERS = [ [ 0, 10, 1, ], [ 5, 35, 1, ], [ -15, 35, 1, ], - [ -15, 35, 1, ], - [ -15, 35, 1, ], + [ -10, 0, 1, ], + [ -10, 0, 1, ], ] PanasonicHeatpumpNumber = panasonic_heatpump_ns.class_("PanasonicHeatpumpNumber", number.Number, cg.Component) From f9f29a635d17c8b2e7c0b66812e5464164d21dbd Mon Sep 17 00:00:00 2001 From: ElVit Date: Tue, 10 Jun 2025 20:08:35 +0200 Subject: [PATCH 04/13] Refactored Code: Moved most code from main component class to entity component classes. Set traits for select entities. --- .../binary_sensor/__init__.py | 9 +- .../panasonic_heatpump_binary_sensor.cpp | 149 ++++- .../panasonic_heatpump_binary_sensor.h | 33 +- components/panasonic_heatpump/commands.cpp | 22 +- components/panasonic_heatpump/commands.h | 8 + components/panasonic_heatpump/decode.cpp | 22 +- components/panasonic_heatpump/decode.h | 8 +- components/panasonic_heatpump/helpers.h | 2 + .../panasonic_heatpump/number/__init__.py | 6 +- .../number/panasonic_heatpump_number.cpp | 465 +++++++++++++- .../number/panasonic_heatpump_number.h | 47 +- .../panasonic_heatpump/panasonic_heatpump.cpp | 506 ++++----------- .../panasonic_heatpump/panasonic_heatpump.h | 294 ++------- .../panasonic_heatpump/select/__init__.py | 8 +- .../select/panasonic_heatpump_select.cpp | 132 +++- .../select/panasonic_heatpump_select.h | 21 +- .../panasonic_heatpump/sensor/__init__.py | 9 +- .../sensor/panasonic_heatpump_sensor.cpp | 581 +++++++++++++++++- .../sensor/panasonic_heatpump_sensor.h | 105 +++- .../panasonic_heatpump/switch/__init__.py | 6 +- .../switch/panasonic_heatpump_switch.cpp | 161 ++++- .../switch/panasonic_heatpump_switch.h | 26 +- .../text_sensor/__init__.py | 9 +- .../panasonic_heatpump_text_sensor.cpp | 137 ++++- .../panasonic_heatpump_text_sensor.h | 31 +- 25 files changed, 2076 insertions(+), 721 deletions(-) diff --git a/components/panasonic_heatpump/binary_sensor/__init__.py b/components/panasonic_heatpump/binary_sensor/__init__.py index e334744..5b82aa8 100644 --- a/components/panasonic_heatpump/binary_sensor/__init__.py +++ b/components/panasonic_heatpump/binary_sensor/__init__.py @@ -146,10 +146,11 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) - for key in TYPES: + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + for index, key in enumerate(TYPES): if child_config := config.get(key): var = await binary_sensor.new_binary_sensor(child_config) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_binary_sensor")(var)) + cg.add(var.set_parent(parent)) + cg.add(var.set_id(index)) + cg.add(parent.add_binary_sensor(var)) diff --git a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp index c2f0f96..2ef6264 100644 --- a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp +++ b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_binary_sensor.h" -#include "esphome/core/log.h" namespace esphome @@ -13,5 +12,153 @@ namespace esphome LOG_BINARY_SENSOR("", "Panasonic Heatpump Binary Sensor", this); delay(10); } + + void PanasonicHeatpumpBinarySensor::publish_new_state(const std::vector& data) + { + bool new_state; + switch (this->id_) + { + case BinarySensorIds::CONF_TOP0: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP2: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP3: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[7])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP13: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP26: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP60: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[112])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP61: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[112])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP68: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[5])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP69: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP99: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP100: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[24])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP108: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP109: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[20])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP110: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[20])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP119: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP120: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP121: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP122: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP123: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[116])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP124: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[116])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP129: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP132: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[26])); + if (this->state == new_state) return; + break; + } + case BinarySensorIds::CONF_TOP133: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[26])); + if (this->state == new_state) return; + break; + } + default: return; + }; + this->publish_state(new_state); + } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h index 8d620ba..d24a899 100644 --- a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h +++ b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h @@ -1,18 +1,47 @@ #pragma once -#include "esphome/components/binary_sensor/binary_sensor.h" #include "esphome/core/component.h" +#include "esphome/components/binary_sensor/binary_sensor.h" #include "../panasonic_heatpump.h" +#include "../decode.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpBinarySensor : public binary_sensor::BinarySensor, public Component, public Parented + enum BinarySensorIds : int + { + CONF_TOP0, + CONF_TOP2, + CONF_TOP3, + CONF_TOP13, + CONF_TOP26, + CONF_TOP60, + CONF_TOP61, + CONF_TOP68, + CONF_TOP69, + CONF_TOP99, + CONF_TOP100, + CONF_TOP108, + CONF_TOP109, + CONF_TOP110, + CONF_TOP119, + CONF_TOP120, + CONF_TOP121, + CONF_TOP122, + CONF_TOP123, + CONF_TOP124, + CONF_TOP129, + CONF_TOP132, + CONF_TOP133, + }; + + class PanasonicHeatpumpBinarySensor : public binary_sensor::BinarySensor, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpBinarySensor() = default; void dump_config() override; + void publish_new_state(const std::vector& data) override; }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/commands.cpp b/components/panasonic_heatpump/commands.cpp index d554f80..3ad5bdb 100644 --- a/components/panasonic_heatpump/commands.cpp +++ b/components/panasonic_heatpump/commands.cpp @@ -90,17 +90,17 @@ namespace esphome { switch (input) { - case 0: return 18; // heat - case 1: return 19; // cool - case 2: return 24; // auto - case 3: return 25; // auto-heat - case 4: return 26; // auto-cool - case 5: return 33; // tank - case 6: return 34; // heat+tank - case 7: return 35; // cool+tank - case 8: return 40; // auto-tank - case 9: return 41; // auto-heat+tank - case 10: return 42; // auto-cool+tank + case 0: return 0b010010; // 0x12 = heat + case 1: return 0b100001; // 0x21 = tank + case 2: return 0b100010; // 0x22 = heat+tank + case 3: return 0b010011; // 0x13 = cool + case 4: return 0b100011; // 0x23 = cool+tank + case 5: return 0b011000; // 0x18 = auto + case 6: return 0b011001; // 0x19 = auto-heat + case 7: return 0b101000; // 0x28 = auto-tank + case 8: return 0b011010; // 0x1A = auto-cool + case 9: return 0b101001; // 0x29 = auto-heat+tank + case 10: return 0b101010; // 0x2A = auto-cool+tank default: return 0; // do nothing } } diff --git a/components/panasonic_heatpump/commands.h b/components/panasonic_heatpump/commands.h index ad7df8b..85de7a8 100644 --- a/components/panasonic_heatpump/commands.h +++ b/components/panasonic_heatpump/commands.h @@ -2,10 +2,18 @@ #include #include +#ifndef INIT_REQUEST_SIZE #define INIT_REQUEST_SIZE 8 +#endif +#ifndef INIT_RESPONSE_SIZE #define INIT_RESPONSE_SIZE 51 +#endif +#ifndef DATA_MESSAGE_SIZE #define DATA_MESSAGE_SIZE 111 +#endif +#ifndef OPTIONAL_MESSAGE_SIZE #define OPTIONAL_MESSAGE_SIZE 20 +#endif namespace esphome diff --git a/components/panasonic_heatpump/decode.cpp b/components/panasonic_heatpump/decode.cpp index 696c65a..491c73b 100644 --- a/components/panasonic_heatpump/decode.cpp +++ b/components/panasonic_heatpump/decode.cpp @@ -185,17 +185,17 @@ namespace esphome { switch ((int)(input & 0b111111)) { - case 18: return 0; // heat - case 19: return 1; // cool - case 24: return 2; // auto - case 25: return 3; // auto-heat - case 26: return 4; // auto-cool - case 33: return 5; // tank - case 34: return 6; // heat+tank - case 35: return 7; // cool+tank - case 40: return 8; // auto-tank - case 41: return 9; // auto-heat+tank - case 42: return 10; // auto-cool+tank + case 0b010010: return 0; // 0x12 = heat + case 0b100001: return 1; // 0x21 = tank + case 0b100010: return 2; // 0x22 = heat+tank + case 0b010011: return 3; // 0x13 = cool + case 0b100011: return 4; // 0x23 = cool+tank + case 0b011000: return 5; // 0x18 = auto + case 0b011001: return 6; // 0x19 = auto-heat + case 0b101000: return 7; // 0x28 = auto-tank + case 0b011010: return 8; // 0x1A = auto-cool + case 0b101001: return 9; // 0x29 = auto-heat+tank + case 0b101010: return 10; // 0x2A = auto-cool+tank default: return -1; // unknown } } diff --git a/components/panasonic_heatpump/decode.h b/components/panasonic_heatpump/decode.h index 32d61c8..b4d93ba 100644 --- a/components/panasonic_heatpump/decode.h +++ b/components/panasonic_heatpump/decode.h @@ -3,8 +3,12 @@ #include #include +#ifndef RESPONSE_MSG_SIZE #define RESPONSE_MSG_SIZE 203 +#endif +#ifndef NUMBER_OF_MODELS #define NUMBER_OF_MODELS 55 +#endif namespace esphome @@ -62,8 +66,8 @@ namespace esphome static const constexpr char* const PowerfulMode[] = { "4", "Off", "30min", "60min", "90min" }; static const constexpr char* const OperationMode[] = { - "11", "HEAT", "COOL", "AUTO", "AUTO(HEAT)", "AUTO(COOL)", - "TANK", "HEAT+TANK", "COOL+TANK", "AUTO+TANK", "AUTO(HEAT)+TANK", "AUTO(COOL)+TANK" + "11", "HEAT", "TANK", "HEAT+TANK", "COOL", "COOL+TANK", "AUTO", + "AUTO(HEAT)", "AUTO(TANK)", "AUTO(COOL)", "AUTO(HEAT)+TANK", "AUTO(COOL)+TANK" }; static const constexpr char* const ZoneState[] = { "3", "Zone 1", "Zone 2", "Zone 1 & 2" }; static const constexpr char* const ExtPadHeaterType[] = { "3", "Disabled", "Type-A", "Type-B" }; diff --git a/components/panasonic_heatpump/helpers.h b/components/panasonic_heatpump/helpers.h index 531f1d5..ab0ade2 100644 --- a/components/panasonic_heatpump/helpers.h +++ b/components/panasonic_heatpump/helpers.h @@ -5,7 +5,9 @@ #include #include +#ifndef UART_LOG_CHUNK_SIZE #define UART_LOG_CHUNK_SIZE 120 +#endif namespace esphome diff --git a/components/panasonic_heatpump/number/__init__.py b/components/panasonic_heatpump/number/__init__.py index c0960bf..9ad43eb 100644 --- a/components/panasonic_heatpump/number/__init__.py +++ b/components/panasonic_heatpump/number/__init__.py @@ -274,7 +274,7 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) for index, key in enumerate(TYPES): if child_config := config.get(key): var = await number.new_number( @@ -284,6 +284,6 @@ async def to_code(config): step=CONF_NUMBERS[index][2] ) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_number")(var)) + cg.add(var.set_parent(parent)) cg.add(var.set_id(index)) + cg.add(parent.add_number(var)) diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp index 3a2fc9f..5b112da 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_number.h" -#include "esphome/core/log.h" namespace esphome @@ -16,8 +15,468 @@ namespace esphome void PanasonicHeatpumpNumber::control(float value) { - this->publish_state(value); - this->parent_->control_number(this, value); + switch (this->id_) + { + case NumberIds::CONF_SET5: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 38); + break; + } + case NumberIds::CONF_SET6: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 39); + break; + } + case NumberIds::CONF_SET7: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 40); + break; + } + case NumberIds::CONF_SET8: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 41); + break; + } + case NumberIds::CONF_SET11: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 42); + break; + } + case NumberIds::CONF_SET15: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 45); + break; + } + case NumberIds::CONF_SET16_01: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 75); + break; + } + case NumberIds::CONF_SET16_02: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 76); + break; + } + case NumberIds::CONF_SET16_03: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 77); + break; + } + case NumberIds::CONF_SET16_04: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 78); + break; + } + case NumberIds::CONF_SET16_05: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 79); + break; + } + case NumberIds::CONF_SET16_06: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 80); + break; + } + case NumberIds::CONF_SET16_07: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 81); + break; + } + case NumberIds::CONF_SET16_08: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 82); + break; + } + case NumberIds::CONF_SET16_09: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 86); + break; + } + case NumberIds::CONF_SET16_10: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 87); + break; + } + case NumberIds::CONF_SET16_11: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 88); + break; + } + case NumberIds::CONF_SET16_12: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 89); + break; + } + case NumberIds::CONF_SET16_13: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 90); + break; + } + case NumberIds::CONF_SET16_14: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 91); + break; + } + case NumberIds::CONF_SET16_15: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 92); + break; + } + case NumberIds::CONF_SET16_16: + { + this->parent_->set_command_curve(PanasonicCommand::setPlus128(value), 93); + break; + } + case NumberIds::CONF_SET18: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 84); + break; + } + case NumberIds::CONF_SET19: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 94); + break; + } + case NumberIds::CONF_SET20: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 99); + break; + } + case NumberIds::CONF_SET21: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 104); + break; + } + case NumberIds::CONF_SET22: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 105); + break; + } + case NumberIds::CONF_SET23: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 106); + break; + } + case NumberIds::CONF_SET27: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 59); + break; + } + case NumberIds::CONF_SET29: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 83); + break; + } + case NumberIds::CONF_SET36: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 65); + break; + } + case NumberIds::CONF_SET37: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 66); + break; + } + case NumberIds::CONF_SET38: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus128(value), 68); + break; + } + default: return; + }; + this->publish_state(state); + this->keep_state_ = 2; + } + + void PanasonicHeatpumpNumber::publish_new_state(const std::vector& data) + { + if (this->keep_state_ > 0) + { + this->keep_state_--; + return; + } + + float new_state; + switch (this->id_) + { + case NumberIds::CONF_SET11: + { + new_state = PanasonicDecode::getByteMinus128(data[42]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET20: + { + new_state = PanasonicDecode::getByteMinus128(data[99]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET18: + { + new_state = PanasonicDecode::getByteMinus128(data[84]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET19: + { + new_state = PanasonicDecode::getByteMinus128(data[94]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET5: + { + new_state = PanasonicDecode::getByteMinus128(data[38]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET6: + { + new_state = PanasonicDecode::getByteMinus128(data[39]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_01: + { + new_state = PanasonicDecode::getByteMinus128(data[75]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_02: + { + new_state = PanasonicDecode::getByteMinus128(data[76]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_04: + { + new_state = PanasonicDecode::getByteMinus128(data[78]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_03: + { + new_state = PanasonicDecode::getByteMinus128(data[77]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET7: + { + new_state = PanasonicDecode::getByteMinus128(data[40]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET8: + { + new_state = PanasonicDecode::getByteMinus128(data[41]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_09: + { + new_state = PanasonicDecode::getByteMinus128(data[86]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_10: + { + new_state = PanasonicDecode::getByteMinus128(data[87]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_12: + { + new_state = PanasonicDecode::getByteMinus128(data[89]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_11: + { + new_state = PanasonicDecode::getByteMinus128(data[88]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET29: + { + new_state = PanasonicDecode::getByteMinus128(data[83]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_05: + { + new_state = PanasonicDecode::getByteMinus128(data[79]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_06: + { + new_state = PanasonicDecode::getByteMinus128(data[80]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_08: + { + new_state = PanasonicDecode::getByteMinus128(data[82]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_07: + { + new_state = PanasonicDecode::getByteMinus128(data[81]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_13: + { + new_state = PanasonicDecode::getByteMinus128(data[90]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_14: + { + new_state = PanasonicDecode::getByteMinus128(data[91]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_16: + { + new_state = PanasonicDecode::getByteMinus128(data[93]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET16_15: + { + new_state = PanasonicDecode::getByteMinus128(data[92]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET15: + { + new_state = PanasonicDecode::getByteMinus1(data[45]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET21: + { + new_state = PanasonicDecode::getByteMinus1(data[104]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET22: + { + new_state = PanasonicDecode::getByteMinus128(data[105]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET23: + { + new_state = PanasonicDecode::getByteMinus128(data[106]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET27: + { + new_state = PanasonicDecode::getByteMinus128(data[59]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET36: + { + new_state = PanasonicDecode::getByteMinus128(data[65]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET37: + { + new_state = PanasonicDecode::getByteMinus128(data[66]); + if (this->state == new_state) return; + break; + } + case NumberIds::CONF_SET38: + { + new_state = PanasonicDecode::getByteMinus128(data[68]); + if (this->state == new_state) return; + break; + } + default: return; + }; + this->publish_state(new_state); + } + + bool PanasonicHeatpumpNumber::set_traits(const std::vector& data) + { + std::string top76 = PanasonicDecode::getTextState( + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); // Heating Mode + std::string top81 = PanasonicDecode::getTextState( + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode + + switch (this->id_) + { + case NumberIds::CONF_SET5: + { + if (this->traits.get_min_value() != -5.0 && top76 == PanasonicDecode::WaterTempControl[1]) + { + this->traits.set_min_value(-5.0); + this->traits.set_max_value(5.0); + return true; + } + if (this->traits.get_min_value() != 20.0 && top76 == PanasonicDecode::WaterTempControl[2]) + { + this->traits.set_min_value(20.0); + this->traits.set_max_value(60.0); + return true; + } + break; + } + case NumberIds::CONF_SET6: + { + if (this->traits.get_min_value() != -5.0 && top81 == PanasonicDecode::WaterTempControl[1]) + { + this->traits.set_min_value(-5.0); + this->traits.set_max_value(5.0); + return true; + } + if (this->traits.get_min_value() != 20.0 && top81 == PanasonicDecode::WaterTempControl[2]) + { + this->traits.set_min_value(20.0); + this->traits.set_max_value(60.0); + return true; + } + break; + } + case NumberIds::CONF_SET7: + { + if (this->traits.get_min_value() != -5.0 && top76 == PanasonicDecode::WaterTempControl[1]) + { + this->traits.set_min_value(-5.0); + this->traits.set_max_value(5.0); + return true; + } + if (this->traits.get_min_value() != 20.0 && top76 == PanasonicDecode::WaterTempControl[2]) + { + this->traits.set_min_value(20.0); + this->traits.set_max_value(60.0); + return true; + } + break; + } + case NumberIds::CONF_SET8: + { + if (this->traits.get_min_value() != -5.0 && top81 == PanasonicDecode::WaterTempControl[1]) + { + this->traits.set_min_value(-5.0); + this->traits.set_max_value(5.0); + return true; + } + if (this->traits.get_min_value() != 20.0 && top81 == PanasonicDecode::WaterTempControl[2]) + { + this->traits.set_min_value(20.0); + this->traits.set_max_value(60.0); + return true; + } + break; + } + }; + return false; } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.h b/components/panasonic_heatpump/number/panasonic_heatpump_number.h index 5b535fd..7c3b92f 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.h +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.h @@ -1,23 +1,62 @@ #pragma once -#include "esphome/components/number/number.h" #include "esphome/core/component.h" +#include "esphome/components/number/number.h" #include "../panasonic_heatpump.h" +#include "../decode.h" +#include "../commands.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpNumber : public number::Number, public Component, public Parented + enum NumberIds : int + { + CONF_SET5, + CONF_SET6, + CONF_SET7, + CONF_SET8, + CONF_SET11, + CONF_SET15, + CONF_SET16_01, + CONF_SET16_02, + CONF_SET16_03, + CONF_SET16_04, + CONF_SET16_05, + CONF_SET16_06, + CONF_SET16_07, + CONF_SET16_08, + CONF_SET16_09, + CONF_SET16_10, + CONF_SET16_11, + CONF_SET16_12, + CONF_SET16_13, + CONF_SET16_14, + CONF_SET16_15, + CONF_SET16_16, + CONF_SET18, + CONF_SET19, + CONF_SET20, + CONF_SET21, + CONF_SET22, + CONF_SET23, + CONF_SET27, + CONF_SET29, + CONF_SET36, + CONF_SET37, + CONF_SET38, + }; + + class PanasonicHeatpumpNumber : public number::Number, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpNumber() = default; void dump_config() override; - void set_id(int id) { this->id_ = id; } + void publish_new_state(const std::vector& data) override; + bool set_traits(const std::vector& data) override; protected: void control(float value) override; - int id_; }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index b39d1e9..484cdf0 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -20,12 +20,6 @@ namespace esphome delay(10); // NOLINT this->check_uart_settings(9600, 1, uart::UART_CONFIG_PARITY_EVEN, 8); - // initialize vector - for (int i = 0; i < RESPONSE_MSG_SIZE; i++) - { - this->last_message_.push_back(0); - } - this->update(); } @@ -55,48 +49,48 @@ namespace esphome case LoopState::SET_NUMBER_TRAITS: { this->set_number_traits(this->heatpump_message_); + this->loop_state_ = LoopState::SET_SELECT_TRAITS; + break; + } + case LoopState::SET_SELECT_TRAITS: + { + this->set_select_traits(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_SENSOR; break; } case LoopState::PUBLISH_SENSOR: { - this->publish_sensor(this->heatpump_message_, this->last_message_); + this->publish_sensor(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_BINARY_SENSOR; break; } case LoopState::PUBLISH_BINARY_SENSOR: { - this->publish_binary_sensor(this->heatpump_message_, this->last_message_); + this->publish_binary_sensor(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_TEXT_SENSOR; break; } case LoopState::PUBLISH_TEXT_SENSOR: { - this->publish_text_sensor(this->heatpump_message_, this->last_message_); + this->publish_text_sensor(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_NUMBER; break; } case LoopState::PUBLISH_NUMBER: { - this->publish_number(this->heatpump_message_, this->last_message_); + this->publish_number(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_SELECT; break; } case LoopState::PUBLISH_SELECT: { - this->publish_select(this->heatpump_message_, this->last_message_); + this->publish_select(this->heatpump_message_); this->loop_state_ = LoopState::PUBLISH_SWITCH; break; } case LoopState::PUBLISH_SWITCH: { - this->publish_switch(this->heatpump_message_, this->last_message_); - this->loop_state_ = LoopState::STORE_RESPONSE; - break; - } - case LoopState::STORE_RESPONSE: - { - this->last_message_ = this->heatpump_message_; + this->publish_switch(this->heatpump_message_); this->loop_state_ = LoopState::SEND_REQUEST; break; } @@ -114,16 +108,19 @@ namespace esphome } default: { + if (this->set_traits_loop_) this->set_traits_total_++; + // Perform reboot only if a traits (e.g. min/max value of a number entity) was changed the second time. // The first traits change should happen before controller is connected to home assistant, // because the default min/max value is 0. - if (this->trait_update_counter_ > 1) + if (this->set_traits_total_ > 1) { ESP_LOGW(TAG, "Min/max values have changed. Rebooting so Home Assistant reconfigures the number component."); delay(100); // NOLINT App.safe_reboot(); } + this->set_traits_loop_ = false; this->loop_state_ = LoopState::READ_RESPONSE; break; } @@ -354,7 +351,7 @@ namespace esphome this->next_request_ = RequestType::COMMAND; } - void PanasonicHeatpumpComponent::set_command_bytes(const std::vector>& data) + void PanasonicHeatpumpComponent::set_command_curve(const uint8_t value, const uint8_t index) { if (this->next_request_ != RequestType::COMMAND) { @@ -362,13 +359,36 @@ namespace esphome this->command_message_.assign(std::begin(PanasonicCommand::CommandMessage), std::end(PanasonicCommand::CommandMessage)); } - // set command bytes - for (size_t i = 0; i < data.size(); ++i) + + // Set zone 1 curve bytes + if (index == 75 || index == 76 || index == 77 || index == 78 || + index == 86 || index == 87 || index == 88 || index == 89) { - uint8_t value = std::get<0>(data[i]); - uint8_t index = std::get<1>(data[i]); - this->command_message_[index] = value; + this->command_message_[75] = this->heatpump_message_[75]; + this->command_message_[76] = this->heatpump_message_[76]; + this->command_message_[77] = this->heatpump_message_[77]; + this->command_message_[78] = this->heatpump_message_[78]; + this->command_message_[86] = this->heatpump_message_[86]; + this->command_message_[87] = this->heatpump_message_[87]; + this->command_message_[88] = this->heatpump_message_[88]; + this->command_message_[89] = this->heatpump_message_[89]; } + // Set zone 2 curve bytes + if (index == 79 || index == 80 || index == 81 || index == 82 || + index == 90 || index == 91 || index == 92 || index == 93) + { + this->command_message_[79] = this->heatpump_message_[79]; + this->command_message_[80] = this->heatpump_message_[80]; + this->command_message_[81] = this->heatpump_message_[81]; + this->command_message_[82] = this->heatpump_message_[82]; + this->command_message_[90] = this->heatpump_message_[90]; + this->command_message_[91] = this->heatpump_message_[91]; + this->command_message_[92] = this->heatpump_message_[92]; + this->command_message_[93] = this->heatpump_message_[93]; + } + + // set command byte + this->command_message_[index] = value; // calculate and set set checksum (last element) this->command_message_.back() = PanasonicCommand::calcChecksum(this->command_message_, this->command_message_.size() - 1); @@ -376,406 +396,98 @@ namespace esphome this->next_request_ = RequestType::COMMAND; } + void PanasonicHeatpumpComponent::publish_binary_sensor(const std::vector& data) + { + if (data.empty()) return; + for (auto *entity : this->binary_sensors_) + { + entity->publish_new_state(data); + } + } + + void PanasonicHeatpumpComponent::publish_number(const std::vector& data) + { + if (data.empty()) return; + for (auto *entity : this->numbers_) + { + entity->publish_new_state(data); + } + } + void PanasonicHeatpumpComponent::set_number_traits(const std::vector& data) { -#ifdef USE_TEXT_SENSOR -#ifdef USE_NUMBER if (data.empty()) return; + std::string top76_str = PanasonicDecode::getTextState( + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); // Heating Mode + std::string top81_str = PanasonicDecode::getTextState( + PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode + // ToDo: Convert top76 and top81 into int and pass them to set_traits(); // traits can be changed anytime, but entities will only be updated in home assistant, // if the traits was set before connecting to home assistant. If now a traits must be changed later, // a reboot of the ESP controller is required to see the changes in home assistant. bool change_detected = false; - std::string top76 = PanasonicDecode::getTextState( - PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); // Heating Mode - std::string top81 = PanasonicDecode::getTextState( - PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode - float set5_min = this->set5_number_->traits.get_min_value(); // Z1 Heat Request Temperature - float set6_min = this->set6_number_->traits.get_min_value(); // Z1 Cool Request Temperature - float set7_min = this->set7_number_->traits.get_min_value(); // Z2 Heat Request Temperature - float set8_min = this->set8_number_->traits.get_min_value(); // Z2 Cool Request Temperature - - if (set5_min >= 0.0 && top76 == PanasonicDecode::WaterTempControl[1]) + for (auto *entity : this->numbers_) { - this->set5_number_->traits.set_min_value(-5.0); - this->set5_number_->traits.set_max_value(5.0); - change_detected = true; + change_detected = entity->set_traits(data) ? true : change_detected; } - if (set6_min >= 0.0 && top81 == PanasonicDecode::WaterTempControl[1]) - { - this->set6_number_->traits.set_min_value(-5.0); - this->set6_number_->traits.set_max_value(5.0); - change_detected = true; - } - if (set7_min >= 0.0 && top76 == PanasonicDecode::WaterTempControl[1]) - { - this->set7_number_->traits.set_min_value(-5.0); - this->set7_number_->traits.set_max_value(5.0); - change_detected = true; - } - if (set8_min >= 0.0 && top81 == PanasonicDecode::WaterTempControl[1]) - { - this->set8_number_->traits.set_min_value(-5.0); - this->set8_number_->traits.set_max_value(5.0); - change_detected = true; - } - - if (set5_min <= 0.0 && top76 == PanasonicDecode::WaterTempControl[2]) - { - this->set5_number_->traits.set_min_value(20.0); - this->set5_number_->traits.set_max_value(60.0); - change_detected = true; - } - if (set6_min <= 0.0 && top81 == PanasonicDecode::WaterTempControl[2]) - { - this->set6_number_->traits.set_min_value(20.0); - this->set6_number_->traits.set_max_value(60.0); - change_detected = true; - } - if (set7_min <= 0.0 && top76 == PanasonicDecode::WaterTempControl[2]) - { - this->set7_number_->traits.set_min_value(20.0); - this->set7_number_->traits.set_max_value(60.0); - change_detected = true; - } - if (set8_min <= 0.0 && top81 == PanasonicDecode::WaterTempControl[2]) - { - this->set8_number_->traits.set_min_value(20.0); - this->set8_number_->traits.set_max_value(60.0); - change_detected = true; - } - if (change_detected) { - this->trait_update_counter_++; + this->set_traits_loop_ = true; } -#endif -#endif } - void PanasonicHeatpumpComponent::publish_sensor(const std::vector& data, const std::vector& last) + void PanasonicHeatpumpComponent::publish_select(const std::vector& data) { -#ifdef USE_SENSOR if (data.empty()) return; - if (this->top1_sensor_ && last[169] != data[169]) this->top1_sensor_->publish_state(PanasonicDecode::getPumpFlow(data, 169)); - if (this->top5_sensor_ && (last[143] != data[143] || last[118] != data[118])) this->top5_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[143]) + PanasonicDecode::getFractional(data[118], 0)); - if (this->top6_sensor_ && (last[144] != data[144] || last[118] != data[118])) this->top6_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[144]) + PanasonicDecode::getFractional(data[118], 3)); - if (this->top7_sensor_ && last[153] != data[153]) this->top7_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[153])); - if (this->top8_sensor_ && last[166] != data[166]) this->top8_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[166])); - if (this->top9_sensor_ && last[42] != data[42]) this->top9_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[42])); - if (this->top10_sensor_ && last[141] != data[141]) this->top10_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[141])); - if (this->top11_sensor_ && last[182] != data[182]) this->top11_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 182)); - if (this->top12_sensor_ && last[179] != data[179]) this->top12_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 179)); - if (this->top14_sensor_ && last[142] != data[142]) this->top14_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[142])); - if (this->top15_sensor_ && last[194] != data[194]) this->top15_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[194])); - if (this->top16_sensor_ && last[193] != data[193]) this->top16_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[193])); - if (this->top21_sensor_ && last[158] != data[158]) this->top21_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[158])); - if (this->top22_sensor_ && last[99] != data[99]) this->top22_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[99])); - if (this->top23_sensor_ && last[84] != data[84]) this->top23_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[84])); - if (this->top24_sensor_ && last[94] != data[94]) this->top24_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[94])); - if (this->top25_sensor_ && last[44] != data[44]) this->top25_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[44])); - if (this->top27_sensor_ && last[38] != data[38]) this->top27_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[38])); - if (this->top28_sensor_ && last[39] != data[39]) this->top28_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[39])); - if (this->top29_sensor_ && last[75] != data[75]) this->top29_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[75])); - if (this->top30_sensor_ && last[76] != data[76]) this->top30_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[76])); - if (this->top31_sensor_ && last[78] != data[78]) this->top31_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[78])); - if (this->top32_sensor_ && last[77] != data[77]) this->top32_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[77])); - if (this->top33_sensor_ && last[156] != data[156]) this->top33_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[156])); - if (this->top34_sensor_ && last[40] != data[40]) this->top34_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[40])); - if (this->top35_sensor_ && last[41] != data[41]) this->top35_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[41])); - if (this->top36_sensor_ && last[145] != data[145]) this->top36_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[145])); - if (this->top37_sensor_ && last[146] != data[146]) this->top37_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[146])); - if (this->top38_sensor_ && last[196] != data[196]) this->top38_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[196])); - if (this->top39_sensor_ && last[195] != data[195]) this->top39_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[195])); - if (this->top40_sensor_ && last[198] != data[198]) this->top40_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[198])); - if (this->top41_sensor_ && last[197] != data[197]) this->top41_sensor_->publish_state(PanasonicDecode::getByteMinus1Times200(data[197])); - if (this->top42_sensor_ && last[147] != data[147]) this->top42_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[147])); - if (this->top43_sensor_ && last[148] != data[148]) this->top43_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[148])); - if (this->top45_sensor_ && last[43] != data[43]) this->top45_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[43])); - if (this->top46_sensor_ && last[149] != data[149]) this->top46_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[149])); - if (this->top47_sensor_ && last[150] != data[150]) this->top47_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[150])); - if (this->top48_sensor_ && last[151] != data[151]) this->top48_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[151])); - if (this->top49_sensor_ && last[154] != data[154]) this->top49_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[154])); - if (this->top50_sensor_ && last[155] != data[155]) this->top50_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[155])); - if (this->top51_sensor_ && last[157] != data[157]) this->top51_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[157])); - if (this->top52_sensor_ && last[159] != data[159]) this->top52_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[159])); - if (this->top53_sensor_ && last[160] != data[160]) this->top53_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[160])); - if (this->top54_sensor_ && last[161] != data[161]) this->top54_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[161])); - if (this->top55_sensor_ && last[162] != data[162]) this->top55_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[162])); - if (this->top56_sensor_ && last[139] != data[139]) this->top56_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[139])); - if (this->top57_sensor_ && last[140] != data[140]) this->top57_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[140])); - if (this->top62_sensor_ && last[173] != data[173]) this->top62_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[173])); - if (this->top63_sensor_ && last[174] != data[174]) this->top63_sensor_->publish_state(PanasonicDecode::getByteMinus1Times10(data[174])); - if (this->top64_sensor_ && last[163] != data[163]) this->top64_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[163])); - if (this->top65_sensor_ && last[171] != data[171]) this->top65_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[171])); - if (this->top66_sensor_ && last[164] != data[164]) this->top66_sensor_->publish_state(PanasonicDecode::getByteMinus1Times50(data[164])); - if (this->top67_sensor_ && last[165] != data[165]) this->top67_sensor_->publish_state(PanasonicDecode::getByteMinus1Div5(data[165])); - if (this->top70_sensor_ && last[100] != data[100]) this->top70_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[100])); - if (this->top71_sensor_ && last[101] != data[101]) this->top71_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[101])); - if (this->top72_sensor_ && last[86] != data[86]) this->top72_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[86])); - if (this->top73_sensor_ && last[87] != data[87]) this->top73_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[87])); - if (this->top74_sensor_ && last[89] != data[89]) this->top74_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[89])); - if (this->top75_sensor_ && last[88] != data[88]) this->top75_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[88])); - if (this->top77_sensor_ && last[83] != data[83]) this->top77_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[83])); - if (this->top78_sensor_ && last[85] != data[85]) this->top78_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[85])); - if (this->top79_sensor_ && last[95] != data[95]) this->top79_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[95])); - if (this->top80_sensor_ && last[96] != data[96]) this->top80_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[96])); - if (this->top82_sensor_ && last[79] != data[79]) this->top82_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[79])); - if (this->top83_sensor_ && last[80] != data[80]) this->top83_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[80])); - if (this->top84_sensor_ && last[82] != data[82]) this->top84_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[82])); - if (this->top85_sensor_ && last[81] != data[81]) this->top85_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[81])); - if (this->top86_sensor_ && last[90] != data[90]) this->top86_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[90])); - if (this->top87_sensor_ && last[91] != data[91]) this->top87_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[91])); - if (this->top88_sensor_ && last[93] != data[93]) this->top88_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[93])); - if (this->top89_sensor_ && last[92] != data[92]) this->top89_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[92])); - if (this->top90_sensor_ && last[185] != data[185]) this->top90_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 185)); - if (this->top91_sensor_ && last[188] != data[188]) this->top91_sensor_->publish_state(PanasonicDecode::getWordMinus1(data, 188)); - if (this->top93_sensor_ && last[172] != data[172]) this->top93_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[172])); - if (this->top95_sensor_ && last[45] != data[45]) this->top95_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[45])); - if (this->top96_sensor_ && last[104] != data[104]) this->top96_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[104])); - if (this->top97_sensor_ && last[105] != data[105]) this->top97_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[105])); - if (this->top98_sensor_ && last[106] != data[106]) this->top98_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[106])); - if (this->top102_sensor_ && last[61] != data[61]) this->top102_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[61])); - if (this->top103_sensor_ && last[62] != data[62]) this->top103_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[62])); - if (this->top104_sensor_ && last[63] != data[63]) this->top104_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[63])); - if (this->top105_sensor_ && last[64] != data[64]) this->top105_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[64])); - if (this->top113_sensor_ && last[59] != data[59]) this->top113_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[59])); - if (this->top115_sensor_ && last[125] != data[125]) this->top115_sensor_->publish_state(PanasonicDecode::getByteMinus1Div50(data[125])); - if (this->top116_sensor_ && last[126] != data[126]) this->top116_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[126])); - if (this->top117_sensor_ && last[127] != data[127]) this->top117_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[127])); - if (this->top118_sensor_ && last[128] != data[128]) this->top118_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[128])); - if (this->top127_sensor_ && last[177] != data[177]) this->top127_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[177])); - if (this->top128_sensor_ && last[178] != data[178]) this->top128_sensor_->publish_state(PanasonicDecode::getByteMinus1Div2(data[178])); - if (this->top131_sensor_ && last[65] != data[65]) this->top131_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[65])); - if (this->top134_sensor_ && last[66] != data[66]) this->top134_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[66])); - if (this->top135_sensor_ && last[68] != data[68]) this->top135_sensor_->publish_state(PanasonicDecode::getByteMinus128(data[68])); - if (this->top136_sensor_ && last[67] != data[67]) this->top136_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[67])); - if (this->top137_sensor_ && last[69] != data[69]) this->top137_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[69])); - if (this->top138_sensor_ && last[70] != data[70]) this->top138_sensor_->publish_state(PanasonicDecode::getByteMinus1(data[70])); -#endif - } - - void PanasonicHeatpumpComponent::publish_binary_sensor(const std::vector& data, const std::vector& last) - { -#ifdef USE_BINARY_SENSOR - if (data.empty()) return; - if (this->top0_binary_sensor_ && last[4] != data[4]) this->top0_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); - if (this->top2_binary_sensor_ && last[4] != data[4]) this->top2_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); - if (this->top3_binary_sensor_ && last[7] != data[7]) this->top3_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[7]))); - if (this->top13_binary_sensor_ && last[5] != data[5]) this->top13_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); - if (this->top26_binary_sensor_ && last[111] != data[111]) this->top26_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); - if (this->top60_binary_sensor_ && last[112] != data[112]) this->top60_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[112]))); - if (this->top61_binary_sensor_ && last[112] != data[112]) this->top61_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[112]))); - if (this->top68_binary_sensor_ && last[5] != data[5]) this->top68_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[5]))); - if (this->top69_binary_sensor_ && last[117] != data[117]) this->top69_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); - if (this->top99_binary_sensor_ && last[24] != data[24]) this->top99_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); - if (this->top100_binary_sensor_ && last[24] != data[24]) this->top100_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[24]))); - if (this->top108_binary_sensor_ && last[20] != data[20]) this->top108_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20]))); - if (this->top109_binary_sensor_ && last[20] != data[20]) this->top109_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[20]))); - if (this->top110_binary_sensor_ && last[20] != data[20]) this->top110_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[20]))); - if (this->top119_binary_sensor_ && last[23] != data[23]) this->top119_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); - if (this->top120_binary_sensor_ && last[23] != data[23]) this->top120_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); - if (this->top121_binary_sensor_ && last[23] != data[23]) this->top121_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); - if (this->top122_binary_sensor_ && last[23] != data[23]) this->top122_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); - if (this->top123_binary_sensor_ && last[116] != data[116]) this->top123_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[116]))); - if (this->top124_binary_sensor_ && last[116] != data[116]) this->top124_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[116]))); - if (this->top129_binary_sensor_ && last[26] != data[26]) this->top129_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); - if (this->top132_binary_sensor_ && last[26] != data[26]) this->top132_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[26]))); - if (this->top133_binary_sensor_ && last[26] != data[26]) this->top133_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[26]))); -#endif - } - - void PanasonicHeatpumpComponent::publish_text_sensor(const std::vector& data, const std::vector& last) - { -#ifdef USE_TEXT_SENSOR - if (data.empty()) return; - if (this->top4_text_sensor_ && last[6] != data[6]) this->top4_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]))); - if (this->top17_text_sensor_ && last[7] != data[7]) this->top17_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]))); - if (this->top18_text_sensor_ && last[7] != data[7]) this->top18_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7]))); - if (this->top19_text_sensor_ && last[5] != data[5]) this->top19_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); - if (this->top20_text_sensor_ && last[111] != data[111]) this->top20_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[111]))); - if (this->top44_text_sensor_ && (last[113] != data[113] || last[114] != data[114])) this->top44_text_sensor_->publish_state(PanasonicDecode::getErrorInfo(data[113], data[114])); - if (this->top58_text_sensor_ && last[9] != data[9]) this->top58_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit5and6(data[9]))); - if (this->top59_text_sensor_ && last[9] != data[9]) this->top59_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(data[9]))); - if (this->top76_text_sensor_ && last[28] != data[28]) this->top76_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28]))); - if (this->top81_text_sensor_ && last[28] != data[28]) this->top81_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28]))); - if (this->top92_text_sensor_ && last[129] != data[129]) this->top92_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(data, 129))); - if (this->top94_text_sensor_ && last[6] != data[6]) this->top94_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6]))); - if (this->top101_text_sensor_ && last[24] != data[24]) this->top101_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::SolarMode, PanasonicDecode::getBit3and4(data[24]))); - if (this->top106_text_sensor_ && last[29] != data[29]) this->top106_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29]))); - if (this->top107_text_sensor_ && last[20] != data[20]) this->top107_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::LiquidType, PanasonicDecode::getBit1(data[20]))); - if (this->top111_text_sensor_ && last[22] != data[22]) this->top111_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getLowNibbleMinus1(data[22]))); - if (this->top112_text_sensor_ && last[22] != data[22]) this->top112_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getHighNibbleMinus1(data[22]))); - if (this->top114_text_sensor_ && last[25] != data[25]) this->top114_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); - if (this->top125_text_sensor_ && last[116] != data[116]) this->top125_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::TwoWayValve, PanasonicDecode::getBit5and6(data[116]))); - if (this->top126_text_sensor_ && last[116] != data[116]) this->top126_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[116]))); - if (this->top130_text_sensor_ && last[26] != data[26]) this->top130_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26]))); -#endif - } - - void PanasonicHeatpumpComponent::publish_number(const std::vector& data, const std::vector& last) - { -#ifdef USE_NUMBER - if (data.empty()) return; - if (this->set11_number_ && last[42] != data[42]) this->set11_number_->publish_state(PanasonicDecode::getByteMinus128(data[42])); - if (this->set20_number_ && last[99] != data[99]) this->set20_number_->publish_state(PanasonicDecode::getByteMinus128(data[99])); - if (this->set18_number_ && last[84] != data[84]) this->set18_number_->publish_state(PanasonicDecode::getByteMinus128(data[84])); - if (this->set19_number_ && last[94] != data[94]) this->set19_number_->publish_state(PanasonicDecode::getByteMinus128(data[94])); - if (this->set5_number_ && last[38] != data[38]) this->set5_number_->publish_state(PanasonicDecode::getByteMinus128(data[38])); - if (this->set6_number_ && last[39] != data[39]) this->set6_number_->publish_state(PanasonicDecode::getByteMinus128(data[39])); - if (this->set16_01_number_ && last[75] != data[75]) this->set16_01_number_->publish_state(PanasonicDecode::getByteMinus128(data[75])); - if (this->set16_02_number_ && last[76] != data[76]) this->set16_02_number_->publish_state(PanasonicDecode::getByteMinus128(data[76])); - if (this->set16_04_number_ && last[78] != data[78]) this->set16_04_number_->publish_state(PanasonicDecode::getByteMinus128(data[78])); - if (this->set16_03_number_ && last[77] != data[77]) this->set16_03_number_->publish_state(PanasonicDecode::getByteMinus128(data[77])); - if (this->set7_number_ && last[40] != data[40]) this->set7_number_->publish_state(PanasonicDecode::getByteMinus128(data[40])); - if (this->set8_number_ && last[41] != data[41]) this->set8_number_->publish_state(PanasonicDecode::getByteMinus128(data[41])); - if (this->set16_09_number_ && last[86] != data[86]) this->set16_09_number_->publish_state(PanasonicDecode::getByteMinus128(data[86])); - if (this->set16_10_number_ && last[87] != data[87]) this->set16_10_number_->publish_state(PanasonicDecode::getByteMinus128(data[87])); - if (this->set16_12_number_ && last[89] != data[89]) this->set16_12_number_->publish_state(PanasonicDecode::getByteMinus128(data[89])); - if (this->set16_11_number_ && last[88] != data[88]) this->set16_11_number_->publish_state(PanasonicDecode::getByteMinus128(data[88])); - if (this->set29_number_ && last[83] != data[83]) this->set29_number_->publish_state(PanasonicDecode::getByteMinus128(data[83])); - if (this->set16_05_number_ && last[79] != data[79]) this->set16_05_number_->publish_state(PanasonicDecode::getByteMinus128(data[79])); - if (this->set16_06_number_ && last[80] != data[80]) this->set16_06_number_->publish_state(PanasonicDecode::getByteMinus128(data[80])); - if (this->set16_08_number_ && last[82] != data[82]) this->set16_08_number_->publish_state(PanasonicDecode::getByteMinus128(data[82])); - if (this->set16_07_number_ && last[81] != data[81]) this->set16_07_number_->publish_state(PanasonicDecode::getByteMinus128(data[81])); - if (this->set16_13_number_ && last[90] != data[90]) this->set16_13_number_->publish_state(PanasonicDecode::getByteMinus128(data[90])); - if (this->set16_14_number_ && last[91] != data[91]) this->set16_14_number_->publish_state(PanasonicDecode::getByteMinus128(data[91])); - if (this->set16_16_number_ && last[93] != data[93]) this->set16_16_number_->publish_state(PanasonicDecode::getByteMinus128(data[93])); - if (this->set16_15_number_ && last[92] != data[92]) this->set16_15_number_->publish_state(PanasonicDecode::getByteMinus128(data[92])); - if (this->set15_number_ && last[45] != data[45]) this->set15_number_->publish_state(PanasonicDecode::getByteMinus1(data[45])); - if (this->set21_number_ && last[104] != data[104]) this->set21_number_->publish_state(PanasonicDecode::getByteMinus1(data[104])); - if (this->set22_number_ && last[105] != data[105]) this->set22_number_->publish_state(PanasonicDecode::getByteMinus128(data[105])); - if (this->set23_number_ && last[106] != data[106]) this->set23_number_->publish_state(PanasonicDecode::getByteMinus128(data[106])); - if (this->set27_number_ && last[59] != data[59]) this->set27_number_->publish_state(PanasonicDecode::getByteMinus128(data[59])); - if (this->set36_number_ && last[65] != data[65]) this->set36_number_->publish_state(PanasonicDecode::getByteMinus128(data[65])); - if (this->set37_number_ && last[66] != data[66]) this->set37_number_->publish_state(PanasonicDecode::getByteMinus128(data[66])); - if (this->set38_number_ && last[68] != data[68]) this->set38_number_->publish_state(PanasonicDecode::getByteMinus128(data[68])); -#endif - } - - void PanasonicHeatpumpComponent::publish_select(const std::vector& data, const std::vector& last) - { -#ifdef USE_SELECT - if (data.empty()) return; - if (this->set9_select_ && last[6] != data[6]) this->set9_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]))); - if (this->set4_select_ && last[7] != data[7]) this->set4_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]))); - if (this->set3_select_ && last[7] != data[7]) this->set3_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7]))); - if (this->set2_select_ && last[5] != data[5]) this->set2_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]))); - if (this->set17_select_ && last[6] != data[6]) this->set17_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6]))); - if (this->set26_select_ && last[25] != data[25]) this->set26_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25]))); - if (this->set35_select_ && last[26] != data[26]) this->set35_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26]))); -#endif - } - - void PanasonicHeatpumpComponent::publish_switch(const std::vector& data, const std::vector& last) - { -#ifdef USE_SWITCH - if (data.empty()) return; - if (this->set1_switch_ && last[4] != data[4]) this->set1_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4]))); - if (this->set10_switch_ && last[4] != data[4]) this->set10_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4]))); - if (this->set24_switch_ && last[5] != data[5]) this->set24_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]))); - if (this->set12_switch_ && last[111] != data[111]) this->set12_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]))); - if (this->set13_switch_ && last[117] != data[117]) this->set13_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117]))); - if (this->set28_switch_ && last[24] != data[24]) this->set28_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]))); - if (this->set25_switch_ && last[20] != data[20]) this->set25_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20]))); - if (this->set30_switch_ && last[23] != data[23]) this->set30_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]))); - if (this->set33_switch_ && last[23] != data[23]) this->set33_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]))); - if (this->set31_switch_ && last[23] != data[23]) this->set31_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23]))); - if (this->set32_switch_ && last[23] != data[23]) this->set32_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23]))); - if (this->set34_switch_ && last[26] != data[26]) this->set34_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]))); -#endif - } - -#ifdef USE_NUMBER - void PanasonicHeatpumpComponent::control_number(number::Number* object, float value) - { - if (object == this->set5_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 38); - else if (object == this->set6_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 39); - else if (object == this->set7_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 40); - else if (object == this->set8_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 41); - else if (object == this->set11_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 42); - else if (object == this->set15_number_) this->set_command_byte(PanasonicCommand::setPlus1(value), 45); - else if (object == this->set18_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 84); - else if (object == this->set19_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 94); - else if (object == this->set20_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 99); - else if (object == this->set21_number_) this->set_command_byte(PanasonicCommand::setPlus1(value), 104); - else if (object == this->set22_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 105); - else if (object == this->set23_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 106); - else if (object == this->set27_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 59); - else if (object == this->set29_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 83); - else if (object == this->set36_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 65); - else if (object == this->set37_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 66); - else if (object == this->set38_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 68); - // Set zone 1 curve - if (object == this->set16_01_number_ || object == this->set16_02_number_ - || object == this->set16_03_number_ || object == this->set16_04_number_ - || object == this->set16_09_number_ || object == this->set16_10_number_ - || object == this->set16_11_number_ || object == this->set16_12_number_) + for (auto *entity : this->selects_) { - std::vector> curve; - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_01_number_->state), 75)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_02_number_->state), 76)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_03_number_->state), 77)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_04_number_->state), 78)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_09_number_->state), 86)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_10_number_->state), 87)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_11_number_->state), 88)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_12_number_->state), 89)); - this->set_command_bytes(curve); + entity->publish_new_state(data); } - // Set zone 2 curve - if (object == this->set16_05_number_ || object == this->set16_06_number_ - || object == this->set16_07_number_ || object == this->set16_08_number_ - || object == this->set16_13_number_ || object == this->set16_14_number_ - || object == this->set16_15_number_ || object == this->set16_16_number_) + } + + void PanasonicHeatpumpComponent::set_select_traits(const std::vector& data) + { + if (data.empty()) return; + bool top120 = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); // Heat Cool Control + + bool change_detected = false; + for (auto *entity : this->selects_) { - std::vector> curve; - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_05_number_->state), 79)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_06_number_->state), 80)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_07_number_->state), 81)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_08_number_->state), 82)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_13_number_->state), 90)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_14_number_->state), 91)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_15_number_->state), 92)); - curve.push_back(std::make_tuple(PanasonicCommand::setPlus128(this->set16_16_number_->state), 93)); - this->set_command_bytes(curve); + change_detected = entity->set_traits(data) ? true : change_detected; + } + if (change_detected) + { + this->set_traits_loop_ = true; } } -#endif -#ifdef USE_SELECT - void PanasonicHeatpumpComponent::control_select(select::Select* object, size_t value) + void PanasonicHeatpumpComponent::publish_sensor(const std::vector& data) { - if (object == this->set2_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 5); - else if (object == this->set3_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply8(value), 7); - else if (object == this->set4_select_) this->set_command_byte(PanasonicCommand::setPlus1(value), 7); - else if (object == this->set9_select_) this->set_command_byte(PanasonicCommand::setOperationMode(value), 6); - else if (object == this->set17_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 6); - else if (object == this->set26_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 25); - else if (object == this->set35_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 26); + if (data.empty()) return; + for (auto *entity : this->sensors_) + { + entity->publish_new_state(data); + } } -#endif -#ifdef USE_SWITCH - void PanasonicHeatpumpComponent::control_switch(switch_::Switch* object, bool state) + void PanasonicHeatpumpComponent::publish_switch(const std::vector& data) { - size_t value = state ? 1 : 0; - - if (object == this->set1_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 4); - else if (object == this->set10_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 4); - else if (object == this->set12_switch_) this->set_command_byte(PanasonicCommand::setMultiply2(value), 8); - else if (object == this->set13_switch_) this->set_command_byte(PanasonicCommand::setMultiply4(value), 8); - else if (object == this->set14_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 4); - else if (object == this->set24_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 5); - else if (object == this->set25_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 20); - else if (object == this->set28_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 24); - else if (object == this->set30_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 23); - else if (object == this->set31_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 23); - else if (object == this->set32_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 23); - else if (object == this->set33_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 23); - else if (object == this->set34_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 26); + if (data.empty()) return; + for (auto *entity : this->switches_) + { + entity->publish_new_state(data); + } + } + + void PanasonicHeatpumpComponent::publish_text_sensor(const std::vector& data) + { + if (data.empty()) return; + for (auto *entity : this->text_sensors_) + { + entity->publish_new_state(data); + } } -#endif } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/panasonic_heatpump.h b/components/panasonic_heatpump/panasonic_heatpump.h index a6b63dc..c8e445c 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.h +++ b/components/panasonic_heatpump/panasonic_heatpump.h @@ -1,33 +1,14 @@ #pragma once - +#include +#include +#include #include "esphome/core/component.h" #include "esphome/core/defines.h" #include "esphome/core/log.h" #include "esphome/components/uart/uart.h" -#ifdef USE_SENSOR -#include "esphome/components/sensor/sensor.h" -#endif -#ifdef USE_BINARY_SENSOR -#include "esphome/components/binary_sensor/binary_sensor.h" -#endif -#ifdef USE_TEXT_SENSOR -#include "esphome/components/text_sensor/text_sensor.h" -#endif -#ifdef USE_NUMBER -#include "esphome/components/number/number.h" -#endif -#ifdef USE_SELECT -#include "esphome/components/select/select.h" -#endif -#ifdef USE_SWITCH -#include "esphome/components/switch/switch.h" -#endif +#include "helpers.h" #include "decode.h" #include "commands.h" -#include "helpers.h" -#include -#include -#include namespace esphome @@ -39,13 +20,13 @@ namespace esphome READ_RESPONSE, CHECK_RESPONSE, SET_NUMBER_TRAITS, + SET_SELECT_TRAITS, PUBLISH_SENSOR, PUBLISH_BINARY_SENSOR, PUBLISH_TEXT_SENSOR, PUBLISH_NUMBER, PUBLISH_SELECT, PUBLISH_SWITCH, - STORE_RESPONSE, SEND_REQUEST, READ_REQUEST, RESTART_LOOP @@ -59,220 +40,22 @@ namespace esphome NONE }; + class PanasonicHeatpumpEntity + { + public: + virtual void set_id(const int id) { id_ = id; } + virtual void publish_new_state(const std::vector& data) = 0; + virtual bool set_traits(const std::vector& data) { return false; } + + protected: + int id_ { -1 }; + int keep_state_ { 0 }; + }; + class PanasonicHeatpumpComponent : public PollingComponent, public uart::UARTDevice { public: - // ToDo: Add template for custom sensor classes similar to SUB_SENSOR (see Pipsolar) -#ifdef USE_SENSOR - SUB_SENSOR(top1); - SUB_SENSOR(top5); - SUB_SENSOR(top6); - SUB_SENSOR(top7); - SUB_SENSOR(top8); - SUB_SENSOR(top9); - SUB_SENSOR(top10); - SUB_SENSOR(top11); - SUB_SENSOR(top12); - SUB_SENSOR(top14); - SUB_SENSOR(top15); - SUB_SENSOR(top16); - SUB_SENSOR(top21); - SUB_SENSOR(top22); - SUB_SENSOR(top23); - SUB_SENSOR(top24); - SUB_SENSOR(top25); - SUB_SENSOR(top27); - SUB_SENSOR(top28); - SUB_SENSOR(top29); - SUB_SENSOR(top30); - SUB_SENSOR(top31); - SUB_SENSOR(top32); - SUB_SENSOR(top33); - SUB_SENSOR(top34); - SUB_SENSOR(top35); - SUB_SENSOR(top36); - SUB_SENSOR(top37); - SUB_SENSOR(top38); - SUB_SENSOR(top39); - SUB_SENSOR(top40); - SUB_SENSOR(top41); - SUB_SENSOR(top42); - SUB_SENSOR(top43); - SUB_SENSOR(top45); - SUB_SENSOR(top46); - SUB_SENSOR(top47); - SUB_SENSOR(top48); - SUB_SENSOR(top49); - SUB_SENSOR(top50); - SUB_SENSOR(top51); - SUB_SENSOR(top52); - SUB_SENSOR(top53); - SUB_SENSOR(top54); - SUB_SENSOR(top55); - SUB_SENSOR(top56); - SUB_SENSOR(top57); - SUB_SENSOR(top62); - SUB_SENSOR(top63); - SUB_SENSOR(top64); - SUB_SENSOR(top65); - SUB_SENSOR(top66); - SUB_SENSOR(top67); - SUB_SENSOR(top70); - SUB_SENSOR(top71); - SUB_SENSOR(top72); - SUB_SENSOR(top73); - SUB_SENSOR(top74); - SUB_SENSOR(top75); - SUB_SENSOR(top77); - SUB_SENSOR(top78); - SUB_SENSOR(top79); - SUB_SENSOR(top80); - SUB_SENSOR(top82); - SUB_SENSOR(top83); - SUB_SENSOR(top84); - SUB_SENSOR(top85); - SUB_SENSOR(top86); - SUB_SENSOR(top87); - SUB_SENSOR(top88); - SUB_SENSOR(top89); - SUB_SENSOR(top90); - SUB_SENSOR(top91); - SUB_SENSOR(top93); - SUB_SENSOR(top95); - SUB_SENSOR(top96); - SUB_SENSOR(top97); - SUB_SENSOR(top98); - SUB_SENSOR(top102); - SUB_SENSOR(top103); - SUB_SENSOR(top104); - SUB_SENSOR(top105); - SUB_SENSOR(top113); - SUB_SENSOR(top115); - SUB_SENSOR(top116); - SUB_SENSOR(top117); - SUB_SENSOR(top118); - SUB_SENSOR(top127); - SUB_SENSOR(top128); - SUB_SENSOR(top131); - SUB_SENSOR(top134); - SUB_SENSOR(top135); - SUB_SENSOR(top136); - SUB_SENSOR(top137); - SUB_SENSOR(top138); -#endif -#ifdef USE_BINARY_SENSOR - SUB_BINARY_SENSOR(top0); - SUB_BINARY_SENSOR(top2); - SUB_BINARY_SENSOR(top3); - SUB_BINARY_SENSOR(top13); - SUB_BINARY_SENSOR(top26); - SUB_BINARY_SENSOR(top60); - SUB_BINARY_SENSOR(top61); - SUB_BINARY_SENSOR(top68); - SUB_BINARY_SENSOR(top69); - SUB_BINARY_SENSOR(top99); - SUB_BINARY_SENSOR(top100); - SUB_BINARY_SENSOR(top108); - SUB_BINARY_SENSOR(top109); - SUB_BINARY_SENSOR(top110); - SUB_BINARY_SENSOR(top119); - SUB_BINARY_SENSOR(top120); - SUB_BINARY_SENSOR(top121); - SUB_BINARY_SENSOR(top122); - SUB_BINARY_SENSOR(top123); - SUB_BINARY_SENSOR(top124); - SUB_BINARY_SENSOR(top129); - SUB_BINARY_SENSOR(top132); - SUB_BINARY_SENSOR(top133); -#endif -#ifdef USE_TEXT_SENSOR - SUB_TEXT_SENSOR(top4); - SUB_TEXT_SENSOR(top17); - SUB_TEXT_SENSOR(top18); - SUB_TEXT_SENSOR(top19); - SUB_TEXT_SENSOR(top20); - SUB_TEXT_SENSOR(top44); - SUB_TEXT_SENSOR(top58); - SUB_TEXT_SENSOR(top59); - SUB_TEXT_SENSOR(top76); - SUB_TEXT_SENSOR(top81); - SUB_TEXT_SENSOR(top92); - SUB_TEXT_SENSOR(top94); - SUB_TEXT_SENSOR(top101); - SUB_TEXT_SENSOR(top106); - SUB_TEXT_SENSOR(top107); - SUB_TEXT_SENSOR(top111); - SUB_TEXT_SENSOR(top112); - SUB_TEXT_SENSOR(top114); - SUB_TEXT_SENSOR(top125); - SUB_TEXT_SENSOR(top126); - SUB_TEXT_SENSOR(top130); -#endif -#ifdef USE_NUMBER - SUB_NUMBER(set5); - SUB_NUMBER(set6); - SUB_NUMBER(set7); - SUB_NUMBER(set8); - SUB_NUMBER(set11); - SUB_NUMBER(set15); - SUB_NUMBER(set16_01); - SUB_NUMBER(set16_02); - SUB_NUMBER(set16_03); - SUB_NUMBER(set16_04); - SUB_NUMBER(set16_05); - SUB_NUMBER(set16_06); - SUB_NUMBER(set16_07); - SUB_NUMBER(set16_08); - SUB_NUMBER(set16_09); - SUB_NUMBER(set16_10); - SUB_NUMBER(set16_11); - SUB_NUMBER(set16_12); - SUB_NUMBER(set16_13); - SUB_NUMBER(set16_14); - SUB_NUMBER(set16_15); - SUB_NUMBER(set16_16); - SUB_NUMBER(set18); - SUB_NUMBER(set19); - SUB_NUMBER(set20); - SUB_NUMBER(set21); - SUB_NUMBER(set22); - SUB_NUMBER(set23); - SUB_NUMBER(set27); - SUB_NUMBER(set29); - SUB_NUMBER(set36); - SUB_NUMBER(set37); - SUB_NUMBER(set38); - - void control_number(number::Number* object, float value); -#endif -#ifdef USE_SELECT - SUB_SELECT(set2); - SUB_SELECT(set3); - SUB_SELECT(set4); - SUB_SELECT(set9); - SUB_SELECT(set17); - SUB_SELECT(set26); - SUB_SELECT(set35); - - void control_select(select::Select* object, size_t value); -#endif -#ifdef USE_SWITCH - SUB_SWITCH(set1); - SUB_SWITCH(set10); - SUB_SWITCH(set12); - SUB_SWITCH(set13); - SUB_SWITCH(set14); - SUB_SWITCH(set24); - SUB_SWITCH(set25); - SUB_SWITCH(set28); - SUB_SWITCH(set30); - SUB_SWITCH(set31); - SUB_SWITCH(set32); - SUB_SWITCH(set33); - SUB_SWITCH(set34); - - void control_switch(switch_::Switch* object, bool state); -#endif + bool set_traits_loop_ { false }; PanasonicHeatpumpComponent() = default; // base class functions @@ -286,6 +69,18 @@ namespace esphome void set_log_uart_msg(bool enable) { this->log_uart_msg_ = enable; } // uart message variables to use in lambda functions int getResponseByte(const int index); + // command functions + void set_command_high_nibble(const uint8_t value, const uint8_t index); + void set_command_low_nibble(const uint8_t value, const uint8_t index); + void set_command_byte(const uint8_t value, const uint8_t index); + void set_command_curve(const uint8_t value, const uint8_t index); + // entity functions + void add_binary_sensor(PanasonicHeatpumpEntity *binary_sensor) { binary_sensors_.push_back(binary_sensor); } + void add_number(PanasonicHeatpumpEntity *number) { numbers_.push_back(number); } + void add_select(PanasonicHeatpumpEntity *select) { selects_.push_back(select); } + void add_sensor(PanasonicHeatpumpEntity *sensor) { sensors_.push_back(sensor); } + void add_switch(PanasonicHeatpumpEntity *switch_) { switches_.push_back(switch_); } + void add_text_sensor(PanasonicHeatpumpEntity *text_sensor) { text_sensors_.push_back(text_sensor); } protected: // options variables @@ -293,7 +88,6 @@ namespace esphome bool log_uart_msg_ { false }; // uart message variables std::vector heatpump_message_; - std::vector last_message_; std::vector response_message_; std::vector request_message_; std::vector command_message_; @@ -305,25 +99,29 @@ namespace esphome bool request_receiving_ { false }; RequestType next_request_ { RequestType::INITIAL }; LoopState loop_state_ { LoopState::RESTART_LOOP }; - uint16_t trait_update_counter_ { 0 }; + uint8_t set_traits_total_ { 0 }; + // entity vectors + std::vector binary_sensors_; + std::vector numbers_; + std::vector selects_; + std::vector sensors_; + std::vector switches_; + std::vector text_sensors_; // uart message functions void read_response(); void send_request(RequestType requestType); void read_request(); bool check_response(const std::vector& data); - void set_command_high_nibble(const uint8_t value, const uint8_t index); - void set_command_low_nibble(const uint8_t value, const uint8_t index); - void set_command_byte(const uint8_t value, const uint8_t index); - void set_command_bytes(const std::vector>& data); - // sensor and control publish functions + // entity functions + void publish_binary_sensor(const std::vector& data); + void publish_number(const std::vector& data); + void publish_select(const std::vector& data); + void publish_sensor(const std::vector& data); + void publish_switch(const std::vector& data); + void publish_text_sensor(const std::vector& data); void set_number_traits(const std::vector& data); - void publish_sensor(const std::vector& data, const std::vector& last); - void publish_binary_sensor(const std::vector& data, const std::vector& last); - void publish_text_sensor(const std::vector& data, const std::vector& last); - void publish_number(const std::vector& data, const std::vector& last); - void publish_select(const std::vector& data, const std::vector& last); - void publish_switch(const std::vector& data, const std::vector& last); + void set_select_traits(const std::vector& data); }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/select/__init__.py b/components/panasonic_heatpump/select/__init__.py index 3986c48..8e0ff6c 100644 --- a/components/panasonic_heatpump/select/__init__.py +++ b/components/panasonic_heatpump/select/__init__.py @@ -30,7 +30,7 @@ CONF_SELECTS = [ [ "Off", "Scheduled", "Active", ], [ "Off", "Level 1", "Level 2", "Level 3", ], [ "Off", "30min", "60min", "90min", ], - [ "HEAT", "COOL", "AUTO", "AUTO(HEAT)", "AUTO(COOL)", "TANK", "HEAT+TANK", "COOL+TANK", "AUTO+TANK", "AUTO(HEAT)+TANK", "AUTO(COOL)+TANK", ], + [ ], [ "Zone 1", "Zone 2", "Zone 1 & 2", ], [ "Disabled", "Type-A", "Type-B" ], [ "Alternative", "Parallel", "Advanced Parallel" ], @@ -67,11 +67,11 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) for index, key in enumerate(TYPES): if child_config := config.get(key): var = await select.new_select(child_config, options=CONF_SELECTS[index]) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_select")(var)) + cg.add(var.set_parent(parent)) cg.add(var.set_id(index)) + cg.add(parent.add_select(var)) diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp index 062abf2..aacf1ee 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_select.h" -#include "esphome/core/log.h" namespace esphome @@ -16,10 +15,135 @@ namespace esphome void PanasonicHeatpumpSelect::control(const std::string &value) { + auto optIndex = this->index_of(value); + if (!optIndex.has_value()) return; + size_t index = optIndex.value(); + + switch (this->id_) + { + case SelectIds::CONF_SET2: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 5); + break; + } + case SelectIds::CONF_SET3: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply8(index), 7); + break; + } + case SelectIds::CONF_SET4: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(index), 7); + break; + } + case SelectIds::CONF_SET9: + { + this->parent_->set_command_byte(PanasonicCommand::setOperationMode(index), 6); + break; + } + case SelectIds::CONF_SET17: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(index), 6); + break; + } + case SelectIds::CONF_SET26: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 25); + break; + } + case SelectIds::CONF_SET35: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(index), 26); + break; + } + default: return; + }; this->publish_state(value); - auto index = this->active_index(); - if (index.has_value()) - this->parent_->control_select(this, index.value()); + this->keep_state_ = 2; + } + + void PanasonicHeatpumpSelect::publish_new_state(const std::vector& data) + { + if (this->keep_state_ > 0) + { + this->keep_state_--; + return; + } + + std::string new_state; + switch (this->id_) + { + case SelectIds::CONF_SET9: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET4: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET3: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET2: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET17: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET26: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25])); + if (this->state == new_state) return; + break; + } + case SelectIds::CONF_SET35: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26])); + if (this->state == new_state) return; + break; + } + default: return; + }; + Select::publish_state(new_state); + } + + bool PanasonicHeatpumpSelect::set_traits(const std::vector& data) + { + bool top120 = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); // Heat Cool Control + + switch (this->id_) + { + case SelectIds::CONF_SET9: + { + if (this->traits.get_options().size() != 3 && !top120) + { + auto options = std::vector(PanasonicDecode::OperationMode + 1, PanasonicDecode::OperationMode + 4); + this->traits.set_options(options); + return true; + } + if (this->traits.get_options().size() != 10 && top120) + { + auto options = std::vector(PanasonicDecode::OperationMode + 1, std::end(PanasonicDecode::OperationMode)); + this->traits.set_options(options); + return true; + } + break; + } + }; + return false; } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.h b/components/panasonic_heatpump/select/panasonic_heatpump_select.h index 8f7ebe5..24f301b 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.h +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.h @@ -1,23 +1,36 @@ #pragma once -#include "esphome/components/select/select.h" #include "esphome/core/component.h" +#include "esphome/components/select/select.h" #include "../panasonic_heatpump.h" +#include "../decode.h" +#include "../commands.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpSelect : public select::Select, public Component, public Parented + enum SelectIds : int + { + CONF_SET2, + CONF_SET3, + CONF_SET4, + CONF_SET9, + CONF_SET17, + CONF_SET26, + CONF_SET35, + }; + + class PanasonicHeatpumpSelect : public select::Select, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpSelect() = default; void dump_config() override; - void set_id(int id) { this->id_ = id; } + void publish_new_state(const std::vector& data) override; + bool set_traits(const std::vector& data) override; protected: void control(const std::string &value) override; - int id_; }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/sensor/__init__.py b/components/panasonic_heatpump/sensor/__init__.py index 0e16ea7..1305b18 100644 --- a/components/panasonic_heatpump/sensor/__init__.py +++ b/components/panasonic_heatpump/sensor/__init__.py @@ -896,10 +896,11 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) - for key in TYPES: + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + for index, key in enumerate(TYPES): if child_config := config.get(key): var = await sensor.new_sensor(child_config) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_sensor")(var)) + cg.add(var.set_parent(parent)) + cg.add(var.set_id(index)) + cg.add(parent.add_sensor(var)) diff --git a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp index 58c558c..c57113a 100644 --- a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp +++ b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_sensor.h" -#include "esphome/core/log.h" namespace esphome @@ -13,5 +12,585 @@ namespace esphome LOG_SENSOR("", "Panasonic Heatpump Sensor", this); delay(10); } + + void PanasonicHeatpumpSensor::publish_new_state(const std::vector& data) + { + float new_state; + switch (this->id_) + { + case SensorIds::CONF_TOP1: + { + new_state = PanasonicDecode::getPumpFlow(data, 169); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP5: + { + new_state = PanasonicDecode::getByteMinus128(data[143]) + PanasonicDecode::getFractional(data[118], 0); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP6: + { + new_state = PanasonicDecode::getByteMinus128(data[144]) + PanasonicDecode::getFractional(data[118], 3); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP7: + { + new_state = PanasonicDecode::getByteMinus128(data[153]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP8: + { + new_state = PanasonicDecode::getByteMinus1(data[166]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP9: + { + new_state = PanasonicDecode::getByteMinus128(data[42]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP10: + { + new_state = PanasonicDecode::getByteMinus128(data[141]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP11: + { + new_state = PanasonicDecode::getWordMinus1(data, 182); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP12: + { + new_state = PanasonicDecode::getWordMinus1(data, 179); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP14: + { + new_state = PanasonicDecode::getByteMinus128(data[142]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP15: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[194]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP16: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[193]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP21: + { + new_state = PanasonicDecode::getByteMinus128(data[158]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP22: + { + new_state = PanasonicDecode::getByteMinus128(data[99]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP23: + { + new_state = PanasonicDecode::getByteMinus128(data[84]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP24: + { + new_state = PanasonicDecode::getByteMinus128(data[94]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP25: + { + new_state = PanasonicDecode::getByteMinus128(data[44]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP27: + { + new_state = PanasonicDecode::getByteMinus128(data[38]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP28: + { + new_state = PanasonicDecode::getByteMinus128(data[39]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP29: + { + new_state = PanasonicDecode::getByteMinus128(data[75]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP30: + { + new_state = PanasonicDecode::getByteMinus128(data[76]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP31: + { + new_state = PanasonicDecode::getByteMinus128(data[78]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP32: + { + new_state = PanasonicDecode::getByteMinus128(data[77]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP33: + { + new_state = PanasonicDecode::getByteMinus128(data[156]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP34: + { + new_state = PanasonicDecode::getByteMinus128(data[40]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP35: + { + new_state = PanasonicDecode::getByteMinus128(data[41]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP36: + { + new_state = PanasonicDecode::getByteMinus128(data[145]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP37: + { + new_state = PanasonicDecode::getByteMinus128(data[146]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP38: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[196]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP39: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[195]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP40: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[198]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP41: + { + new_state = PanasonicDecode::getByteMinus1Times200(data[197]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP42: + { + new_state = PanasonicDecode::getByteMinus128(data[147]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP43: + { + new_state = PanasonicDecode::getByteMinus128(data[148]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP45: + { + new_state = PanasonicDecode::getByteMinus128(data[43]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP46: + { + new_state = PanasonicDecode::getByteMinus128(data[149]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP47: + { + new_state = PanasonicDecode::getByteMinus128(data[150]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP48: + { + new_state = PanasonicDecode::getByteMinus128(data[151]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP49: + { + new_state = PanasonicDecode::getByteMinus128(data[154]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP50: + { + new_state = PanasonicDecode::getByteMinus128(data[155]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP51: + { + new_state = PanasonicDecode::getByteMinus128(data[157]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP52: + { + new_state = PanasonicDecode::getByteMinus128(data[159]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP53: + { + new_state = PanasonicDecode::getByteMinus128(data[160]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP54: + { + new_state = PanasonicDecode::getByteMinus128(data[161]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP55: + { + new_state = PanasonicDecode::getByteMinus128(data[162]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP56: + { + new_state = PanasonicDecode::getByteMinus128(data[139]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP57: + { + new_state = PanasonicDecode::getByteMinus128(data[140]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP62: + { + new_state = PanasonicDecode::getByteMinus1Times10(data[173]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP63: + { + new_state = PanasonicDecode::getByteMinus1Times10(data[174]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP64: + { + new_state = PanasonicDecode::getByteMinus1Div5(data[163]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP65: + { + new_state = PanasonicDecode::getByteMinus1Times50(data[171]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP66: + { + new_state = PanasonicDecode::getByteMinus1Times50(data[164]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP67: + { + new_state = PanasonicDecode::getByteMinus1Div5(data[165]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP70: + { + new_state = PanasonicDecode::getByteMinus128(data[100]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP71: + { + new_state = PanasonicDecode::getByteMinus1(data[101]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP72: + { + new_state = PanasonicDecode::getByteMinus128(data[86]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP73: + { + new_state = PanasonicDecode::getByteMinus128(data[87]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP74: + { + new_state = PanasonicDecode::getByteMinus128(data[89]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP75: + { + new_state = PanasonicDecode::getByteMinus128(data[88]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP77: + { + new_state = PanasonicDecode::getByteMinus128(data[83]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP78: + { + new_state = PanasonicDecode::getByteMinus128(data[85]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP79: + { + new_state = PanasonicDecode::getByteMinus128(data[95]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP80: + { + new_state = PanasonicDecode::getByteMinus128(data[96]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP82: + { + new_state = PanasonicDecode::getByteMinus128(data[79]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP83: + { + new_state = PanasonicDecode::getByteMinus128(data[80]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP84: + { + new_state = PanasonicDecode::getByteMinus128(data[82]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP85: + { + new_state = PanasonicDecode::getByteMinus128(data[81]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP86: + { + new_state = PanasonicDecode::getByteMinus128(data[90]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP87: + { + new_state = PanasonicDecode::getByteMinus128(data[91]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP88: + { + new_state = PanasonicDecode::getByteMinus128(data[93]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP89: + { + new_state = PanasonicDecode::getByteMinus128(data[92]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP90: + { + new_state = PanasonicDecode::getWordMinus1(data, 185); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP91: + { + new_state = PanasonicDecode::getWordMinus1(data, 188); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP93: + { + new_state = PanasonicDecode::getByteMinus1(data[172]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP95: + { + new_state = PanasonicDecode::getByteMinus1(data[45]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP96: + { + new_state = PanasonicDecode::getByteMinus1(data[104]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP97: + { + new_state = PanasonicDecode::getByteMinus128(data[105]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP98: + { + new_state = PanasonicDecode::getByteMinus128(data[106]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP102: + { + new_state = PanasonicDecode::getByteMinus128(data[61]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP103: + { + new_state = PanasonicDecode::getByteMinus128(data[62]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP104: + { + new_state = PanasonicDecode::getByteMinus128(data[63]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP105: + { + new_state = PanasonicDecode::getByteMinus128(data[64]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP113: + { + new_state = PanasonicDecode::getByteMinus128(data[59]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP115: + { + new_state = PanasonicDecode::getByteMinus1Div50(data[125]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP116: + { + new_state = PanasonicDecode::getByteMinus128(data[126]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP117: + { + new_state = PanasonicDecode::getByteMinus128(data[127]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP118: + { + new_state = PanasonicDecode::getByteMinus128(data[128]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP127: + { + new_state = PanasonicDecode::getByteMinus1Div2(data[177]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP128: + { + new_state = PanasonicDecode::getByteMinus1Div2(data[178]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP131: + { + new_state = PanasonicDecode::getByteMinus128(data[65]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP134: + { + new_state = PanasonicDecode::getByteMinus128(data[66]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP135: + { + new_state = PanasonicDecode::getByteMinus128(data[68]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP136: + { + new_state = PanasonicDecode::getByteMinus1(data[67]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP137: + { + new_state = PanasonicDecode::getByteMinus1(data[69]); + if (this->get_state() == new_state) return; + break; + } + case SensorIds::CONF_TOP138: + { + new_state = PanasonicDecode::getByteMinus1(data[70]); + if (this->get_state() == new_state) return; + break; + } + default: return; + }; + this->publish_state(new_state); + } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h index 82072b9..fbc364d 100644 --- a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h +++ b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h @@ -1,18 +1,119 @@ #pragma once -#include "esphome/components/sensor/sensor.h" #include "esphome/core/component.h" +#include "esphome/components/sensor/sensor.h" #include "../panasonic_heatpump.h" +#include "../decode.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpSensor : public sensor::Sensor, public Component, public Parented + enum SensorIds : int + { + CONF_TOP1, + CONF_TOP5, + CONF_TOP6, + CONF_TOP7, + CONF_TOP8, + CONF_TOP9, + CONF_TOP10, + CONF_TOP11, + CONF_TOP12, + CONF_TOP14, + CONF_TOP15, + CONF_TOP16, + CONF_TOP21, + CONF_TOP22, + CONF_TOP23, + CONF_TOP24, + CONF_TOP25, + CONF_TOP27, + CONF_TOP28, + CONF_TOP29, + CONF_TOP30, + CONF_TOP31, + CONF_TOP32, + CONF_TOP33, + CONF_TOP34, + CONF_TOP35, + CONF_TOP36, + CONF_TOP37, + CONF_TOP38, + CONF_TOP39, + CONF_TOP40, + CONF_TOP41, + CONF_TOP42, + CONF_TOP43, + CONF_TOP45, + CONF_TOP46, + CONF_TOP47, + CONF_TOP48, + CONF_TOP49, + CONF_TOP50, + CONF_TOP51, + CONF_TOP52, + CONF_TOP53, + CONF_TOP54, + CONF_TOP55, + CONF_TOP56, + CONF_TOP57, + CONF_TOP62, + CONF_TOP63, + CONF_TOP64, + CONF_TOP65, + CONF_TOP66, + CONF_TOP67, + CONF_TOP70, + CONF_TOP71, + CONF_TOP72, + CONF_TOP73, + CONF_TOP74, + CONF_TOP75, + CONF_TOP77, + CONF_TOP78, + CONF_TOP79, + CONF_TOP80, + CONF_TOP82, + CONF_TOP83, + CONF_TOP84, + CONF_TOP85, + CONF_TOP86, + CONF_TOP87, + CONF_TOP88, + CONF_TOP89, + CONF_TOP90, + CONF_TOP91, + CONF_TOP93, + CONF_TOP95, + CONF_TOP96, + CONF_TOP97, + CONF_TOP98, + CONF_TOP102, + CONF_TOP103, + CONF_TOP104, + CONF_TOP105, + CONF_TOP113, + CONF_TOP115, + CONF_TOP116, + CONF_TOP117, + CONF_TOP118, + CONF_TOP127, + CONF_TOP128, + CONF_TOP131, + CONF_TOP134, + CONF_TOP135, + CONF_TOP136, + CONF_TOP137, + CONF_TOP138, + }; + + class PanasonicHeatpumpSensor : public sensor::Sensor, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpSensor() = default; void dump_config() override; + void publish_new_state(const std::vector& data) override; }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/switch/__init__.py b/components/panasonic_heatpump/switch/__init__.py index b718eab..bf88059 100644 --- a/components/panasonic_heatpump/switch/__init__.py +++ b/components/panasonic_heatpump/switch/__init__.py @@ -85,11 +85,11 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) for index, key in enumerate(TYPES): if child_config := config.get(key): var = await switch.new_switch(child_config) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_switch")(var)) + cg.add(var.set_parent(parent)) cg.add(var.set_id(index)) + cg.add(parent.add_switch(var)) diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp index 2716d43..651c0be 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_switch.h" -#include "esphome/core/log.h" namespace esphome @@ -16,8 +15,166 @@ namespace esphome void PanasonicHeatpumpSwitch::write_state(bool state) { + size_t value = state ? 1 : 0; + switch (this->id_) + { + case SwitchIds::CONF_SET1: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 4); + break; + } + case SwitchIds::CONF_SET10: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 4); + break; + } + case SwitchIds::CONF_SET12: + { + this->parent_->set_command_byte(PanasonicCommand::setMultiply2(value), 8); + break; + } + case SwitchIds::CONF_SET13: + { + this->parent_->set_command_byte(PanasonicCommand::setMultiply4(value), 8); + break; + } + case SwitchIds::CONF_SET14: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 4); + break; + } + case SwitchIds::CONF_SET24: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 5); + break; + } + case SwitchIds::CONF_SET25: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 20); + break; + } + case SwitchIds::CONF_SET28: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 24); + break; + } + case SwitchIds::CONF_SET30: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 23); + break; + } + case SwitchIds::CONF_SET31: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 23); + break; + } + case SwitchIds::CONF_SET32: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 23); + break; + } + case SwitchIds::CONF_SET33: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 23); + break; + } + case SwitchIds::CONF_SET34: + { + this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 26); + break; + } + default: return; + }; this->publish_state(state); - this->parent_->control_switch(this, state); + this->keep_state_ = 2; + } + + void PanasonicHeatpumpSwitch::publish_new_state(const std::vector& data) + { + if (this->keep_state_ > 0) + { + this->keep_state_--; + return; + } + + bool new_state; + switch (this->id_) + { + case SwitchIds::CONF_SET1: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[4])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET10: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[4])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET24: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET12: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET13: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[117])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET28: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET25: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[20])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET30: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET33: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET31: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(data[23])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET32: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[23])); + if (this->state == new_state) return; + break; + } + case SwitchIds::CONF_SET34: + { + new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26])); + if (this->state == new_state) return; + break; + } + default: return; + }; + this->publish_state(new_state); } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h index de9f4f7..7a0b709 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h @@ -1,23 +1,41 @@ #pragma once -#include "esphome/components/switch/switch.h" #include "esphome/core/component.h" +#include "esphome/components/switch/switch.h" #include "../panasonic_heatpump.h" +#include "../decode.h" +#include "../commands.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpSwitch : public switch_::Switch, public Component, public Parented + enum SwitchIds : int + { + CONF_SET1, + CONF_SET10, + CONF_SET12, + CONF_SET13, + CONF_SET14, + CONF_SET24, + CONF_SET25, + CONF_SET28, + CONF_SET30, + CONF_SET31, + CONF_SET32, + CONF_SET33, + CONF_SET34, + }; + + class PanasonicHeatpumpSwitch : public switch_::Switch, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpSwitch() = default; void dump_config() override; - void set_id(int id) { this->id_ = id; } + void publish_new_state(const std::vector& data) override; protected: void write_state(bool state) override; - int id_; }; } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/text_sensor/__init__.py b/components/panasonic_heatpump/text_sensor/__init__.py index 9596d9b..d635528 100644 --- a/components/panasonic_heatpump/text_sensor/__init__.py +++ b/components/panasonic_heatpump/text_sensor/__init__.py @@ -161,10 +161,11 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): - hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) - for key in TYPES: + parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) + for index, key in enumerate(TYPES): if child_config := config.get(key): var = await text_sensor.new_text_sensor(child_config) await cg.register_component(var, child_config) - await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) - cg.add(getattr(hub, f"set_{key}_text_sensor")(var)) + cg.add(var.set_parent(parent)) + cg.add(var.set_id(index)) + cg.add(parent.add_text_sensor(var)) diff --git a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp index 016838b..a8c8333 100644 --- a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp +++ b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp @@ -1,5 +1,4 @@ #include "panasonic_heatpump_text_sensor.h" -#include "esphome/core/log.h" namespace esphome @@ -13,5 +12,141 @@ namespace esphome LOG_TEXT_SENSOR("", "Panasonic Heatpump Text Sensor", this); delay(10); } + + void PanasonicHeatpumpTextSensor::publish_new_state(const std::vector& data) + { + std::string new_state; + switch (this->id_) + { + case TextSensorIds::CONF_TOP4: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP17: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP18: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::QuietMode, PanasonicDecode::getBit3and4and5(data[7])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP19: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP20: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[111])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP44: + { + new_state = PanasonicDecode::getErrorInfo(data[113], data[114]); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP58: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit5and6(data[9])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP59: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(data[9])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP76: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP81: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP92: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(data, 129)); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP94: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ZoneState, PanasonicDecode::getBit1and2(data[6])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP101: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::SolarMode, PanasonicDecode::getBit3and4(data[24])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP106: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP107: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::LiquidType, PanasonicDecode::getBit1(data[20])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP111: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getLowNibbleMinus1(data[22])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP112: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ZoneSensorType, PanasonicDecode::getHighNibbleMinus1(data[22])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP114: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(data[25])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP125: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::TwoWayValve, PanasonicDecode::getBit5and6(data[116])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP126: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::ThreeWayValve, PanasonicDecode::getBit7and8(data[116])); + if (this->get_state() == new_state) return; + break; + } + case TextSensorIds::CONF_TOP130: + { + new_state = PanasonicDecode::getTextState(PanasonicDecode::BivalentMode, PanasonicDecode::getBit5and6(data[26])); + if (this->get_state() == new_state) return; + break; + } + default: return; + }; + this->publish_state(new_state); + } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h index 164d7eb..deca7dd 100644 --- a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h +++ b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h @@ -1,18 +1,45 @@ #pragma once -#include "esphome/components/text_sensor/text_sensor.h" #include "esphome/core/component.h" +#include "esphome/components/text_sensor/text_sensor.h" #include "../panasonic_heatpump.h" +#include "../decode.h" namespace esphome { namespace panasonic_heatpump { - class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor, public Component, public Parented + enum TextSensorIds : int + { + CONF_TOP4, + CONF_TOP17, + CONF_TOP18, + CONF_TOP19, + CONF_TOP20, + CONF_TOP44, + CONF_TOP58, + CONF_TOP59, + CONF_TOP76, + CONF_TOP81, + CONF_TOP92, + CONF_TOP94, + CONF_TOP101, + CONF_TOP106, + CONF_TOP107, + CONF_TOP111, + CONF_TOP112, + CONF_TOP114, + CONF_TOP125, + CONF_TOP126, + CONF_TOP130, + }; + + class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor, public Component, public Parented, public PanasonicHeatpumpEntity { public: PanasonicHeatpumpTextSensor() = default; void dump_config() override; + void publish_new_state(const std::vector& data) override; }; } // namespace panasonic_heatpump } // namespace esphome From 9c50cc236d7572525931377df5703f9e5597fe7e Mon Sep 17 00:00:00 2001 From: ElVit Date: Tue, 10 Jun 2025 20:09:26 +0200 Subject: [PATCH 05/13] Renamed decode class from ptototype directory. Updated decode excel file. --- .../{decode.cpp => decode_proto.cpp} | 6 +++--- .../{decode.h => decode_proto.h} | 12 ++++++------ .../panasonic_heatpump/heishamon_decode.xlsx | Bin 136564 -> 167090 bytes 3 files changed, 9 insertions(+), 9 deletions(-) rename prototypes/panasonic_heatpump/{decode.cpp => decode_proto.cpp} (99%) rename prototypes/panasonic_heatpump/{decode.h => decode_proto.h} (97%) diff --git a/prototypes/panasonic_heatpump/decode.cpp b/prototypes/panasonic_heatpump/decode_proto.cpp similarity index 99% rename from prototypes/panasonic_heatpump/decode.cpp rename to prototypes/panasonic_heatpump/decode_proto.cpp index 4c4436c..e13775d 100644 --- a/prototypes/panasonic_heatpump/decode.cpp +++ b/prototypes/panasonic_heatpump/decode_proto.cpp @@ -1,4 +1,4 @@ -#include "decode.h" +#include "decode_proto.h" int getBit1(uint8_t input) { @@ -179,7 +179,7 @@ float getPumpFlow(uint8_t input1, uint8_t input2) int PumpFlow2 = (int)input2; float PumpFlow1 = (((float)input1 - 1) / 256); float PumpFlow = PumpFlow2 + PumpFlow1; - + return PumpFlow; } @@ -189,7 +189,7 @@ float getFractional(uint8_t input, uint8_t shift) float result; int fractional = (int)((input >> shift) & 0b111) - 1; result = fractional * 0.25; - + return result; } diff --git a/prototypes/panasonic_heatpump/decode.h b/prototypes/panasonic_heatpump/decode_proto.h similarity index 97% rename from prototypes/panasonic_heatpump/decode.h rename to prototypes/panasonic_heatpump/decode_proto.h index 750d5eb..6eb48da 100644 --- a/prototypes/panasonic_heatpump/decode.h +++ b/prototypes/panasonic_heatpump/decode_proto.h @@ -5,11 +5,11 @@ #include #include -#define NUMBER_OF_MODELS 51 -#define NUMBER_OF_TOPICS 127 -#define NUMBER_OF_TOPICS_EXTRA 6 -#define NUMBER_OF_OPT_TOPICS 7 -#define MAX_TOPIC_LEN 42 +#define NUMBER_OF_MODELS_PROTO 51 +#define NUMBER_OF_TOPICS_PROTO 127 +#define NUMBER_OF_TOPICS_EXTRA_PROTO 6 +#define NUMBER_OF_OPT_TOPICS_PROTO 7 +#define MAX_TOPIC_LEN_PROTO 42 int getBit1(uint8_t input); int getBit1and2(uint8_t input); @@ -117,7 +117,7 @@ static const char *ModelNames[] = }; // stores the bytes #129 to #138 of known models in the same order as the ModelNames above -static const uint8_t KnownModels[NUMBER_OF_MODELS][10] = +static const uint8_t KnownModels[NUMBER_OF_MODELS_PROTO][10] = { 0xE2, 0xCF, 0x0B, 0x13, 0x33, 0x32, 0xD1, 0x0C, 0x16, 0x33, //0 0xE2, 0xCF, 0x0B, 0x14, 0x33, 0x42, 0xD1, 0x0B, 0x17, 0x33, //1 diff --git a/prototypes/panasonic_heatpump/heishamon_decode.xlsx b/prototypes/panasonic_heatpump/heishamon_decode.xlsx index afba72fa6bd5c560a8cd0411b8b49914cf0723e1..98bf309b480be0c0286e39a72d7642791fac6030 100644 GIT binary patch delta 140505 zcmYIvV~{3I)Aex2wrzXIwr$%suECCN+qP}(*tTuYy!+hoMSMRhBRe7^`c$6G?5ygl z#|p@XbZ86(X;3g!pkF|cKtMo5KyGym?H#~CK>PI=q#%HPIUFX$kQ)i#(BxXxWvJpL zwKa!4heAR@0)sjVO&Yz81_+7m98Hvh3g~cRrKMEe>Z`XO`>uqq*cpuM>KsP$16>la zCk2($q?M5=?7NR|D+lrlkzH1en>r+EnSG!8GYg+y*fi=Iw{j#p#aALzB|5h_D}vd( zzl)>rVf<_dGQSj@)AD)n;pL0(V`k_4z2KOzeuk)cv?}N^cs`}>4YJDU^;VwLqWux8 z6a`?ZbF;oD6K_E<0qzn*(PTs%USds_{0pk;Z0crpiy3iz&KEboA6ahPn=3l^c95b+ z&e4g#0%N>WVQ6xFv-myuYg;2PJJ~!V&*7uI54QJnF(}gY3qgY(zfAXdIb&et6 zC5dqLVfKF0{W;Jk!ZiagJS$4xV=?wra6J+OTwawLy# zg7Rv2Ptv>-qYy1W!0|f~316}=q z0s%?F0s$fXqte5M!QI};+Q{DCn%=|Krb=Dge*ZV7ufFAvFuPDjDXXIph)5qKniT_Wc~B9(~+6vOFRE43>-*$Q%*C@qQ3HAAZnDg zQ;a2PV3yv1>Fi;0bx5X+m@D$ zETbzi%xYknL;r@SaN%9Z@F^Y=qd*6?F^Q=&y10m?sT@C8sQUM2$f1G!DHc3Eg!vVKEvDWdmWT)9j85n~)*E}=@C_24MM3FU1CgTDY*4p&EvgU%YL z*?5(fQt=Xd^f`u_2RQn}%iJ;25AP);W1p@q`Wnvy?kC^nt>8IgJqtE7AS@~8kE;1V zYCxayQ}<;ydH&mWs#Pmx*(EE09n)P*Yl9_Jc(QeLdF&g?&@cw4sBO10h&!;Ol)e8s zvYcvLjb+RM20Q2Pt0695Mq93KMSJc5-dr0)lFfbM!M@^J4`7~DhJ$yB85az#r!t4l zq))7l%3R-aOdVvtK2PY`cn8u~KVW>!ve^I;BCBQ`mVt0!074maUD^7Vmp7>ItHr(& zi$W?btvhU8Qx}b7`jI7e0%S%vE{$;w^8{`zM%6v(sF^#%2NOn;kliSNZ#es?0 z1_hJT2M=;VIzV`{=k&W;sjZa82kwW$=sNOpd*8CH|0)5mb+$1ta-Hr-G8ZrEnxo{$ zPD)fs&LLIOfTQGz&$xwXU~E?ynUA~o6#QRy&-$)y;w3S&2vDCB0$^@wK z1aeYTZcx;?M;FS%H+HH0&USq_p4)x!=>TpiP+Z=~Ab?a7x<_Y$p~TQz*>kUo;-5I5 zw?ZbHG`qo%MngB(@b3k!xF~%~!4Yb@A2lUJ6G^Kb1qi^lT`}+xr6rF*H9ji7T`|xU z5sg3|JoL^#)s~JbO9vAcr^Pw5YLJ{nGRp_^6>d?ab(OQjz}RfQeZq8))urI zv9F#IV0R?9AsC|R#=Ca^k@eE)pbjl&2q0L$$~SbCsXimow=RguhYOWcZsgr*&>q8y zw$;ya-%p;~f*v`d*a2JjYR@pxWAq>kM(OZz8(!j%!iPxx2oPRa(JSAisO8ytsr-R? zg{>VzYDd28)q%qG&7Ce$H@X>Ze5(Y|c`)J;cm-YD1(lZe?=;?NljZ*~=W!i&?4YeM zKX^Uq3;YoLS1Az3o(9rP{#ExqC?FtgAV}a;UIY;AMq?OgV8E2sAS3MPO;ES+t*`6+ zO$<4&4XoFy=>@*PZ!6@C)&6I``)8K5>kg(B|?a8BOL0 z%|A+IT?wKS+ivpi(&$()%%NJ6GMb?wwhbGZPcX{{TV%>=)!{m*mP%?`8{5uyBH?gp z@m7i*iQV&X8UXY2z*a(d1ww++yR3^JCJi@ami1$*g^kUl9oOnfAI_Hb8=8PvsV)x6 zt8~;)<+C6vq-q%G4uQ;u!pYlj6Hce0sN7IVaz4u{WhjV*?ZYpQe8Mhfo&2#sftq0S zGl8@-zZqqj$sM~QNb=AT$W)w8(+VRCAgiJ1#y8D_-}N9qqR^e{7{}&6y~fu6T%$sd zR8p#UopP4TAZuaY+jGFku#hz0Nf}GcruAxFg;Zm$zYNLFw;AHOu#+ATE&(X>$Y2!j<|K$qv^KLw#_#^#wQ)F6+%ddX+tOOc7Vb2 z{W0m20I6Y-%@21^#H25S$@ZDWixYqYyt- z!%5RToX9+~^_c#ZMl}~Ug|Y+g5`EP4d4T#EXJltdR*{n-D%B*R7SA1EXFc?h##zw-uK0mZ0)z0`j9 z6>tnB;G3Kn;U>S--SxQTyk*fAHkB_R5+2+F+Vctd}kGpaqDXWe;GXH ziCLdWLi$NNNcLh6C+C?GG})+hAnkA4^ah^t`CIEKo_J^vR7OR`-BCq*ji`QG6SmVwGq77 z1=z_VCW>HmIer3-H^tPk>b_EJ>#s!%Z^Px(fyvj}?|N*pJY%%uMn6TVm?Db15ttIqo=A&ZJqCc6&hr>@*-((UGS&DWSh8Axo9_Q$SjZ z!5$QmP@Dri*fHwxj^NP9=)i5nB`I1#-PTe2+@|-=uKf9-q=7e-&`agb=7jp(I{b-b zZHnj23#pyY~viaEo5w9q%t4 zKS3KS5D}38=MEy^F)4y>ZWg>&azP*z9Tt~a5g?-tWtwN*&X|3+W=L&QhCr>f)DDvc z@UQOTKffCxH;);AeR`vQUea0(_BJ)$ZF0g=JDj7bA2XIUQ#I2U8wy&p$ZBOmxpzRV zIAb@gRMgEWw2T{iRIOiYg{FzAk`(59S%0FezPhIX*3GaN+2=S;a?5P90ISj=jhI_O zu8o+dXnsI;+SWks-_0eg~!<%uI1LZd;fkLoAxwM zwvo{y3*Cin&kN;Od1d&ExnZ0UN1x7g86yX28_3@(%Zo%f+~L3X?14_wh1S*clpf31 z>>TDe&%s;<$fR&Tg~>Uj&#`PxPJq6iA5CwxgZ2lC_!<4*Y*o zZBG)(HFwGY$)XyrX_19Xt3sEWnP5{voBu%C)J*zzbVTCq1jq&&$fs|>IoM76!fbN) zXz{-cb{fB-8!hGRti4W?Dw^Q!;PQ7KY}~R{pGY-Q@;O;#Ck6g2SgwV`fz~2ud4bYSr8Xk_ zH1?}lbxQuF2{fMF!f*e>$!?jA|6htCYwq$AeZ z>^FTfj!U=N^3t`jG?YQ?_WLuY0w!=gvN?FP0FiuWbyqEZ?Ws>HAa8Rv){V zl>+mxwm&&RPZ>G)cdxGO&)vVDQQik&0FS|g_E|5%7{0!Hq5%EhE=NlGuT6kiO4`mC z9MAD_n1zFJ7?&pnt6uC77?46wWX!vv;eUAJvm4KG0(?ivIa+k36j(DZ|3#dVf@eD4 z`jq0rmR0n~ZR4ZpLmop!4d>uRCWNaihO)x!4dIBdfA`F4-?mZRKHs|Prm})8B_MJO zaW~gi31m|(7V10m+%8e$`}ex&s7)y{xb{Dqe1juO;zk$mD+$b zJ-*Zw2h!(TD*w;x!OB!=ZLZ!ILE;AEKJ;ye3DFBO5Kx-Ie_g^Z(=R}xqJ1VK;(vVt zVQ&xxa^B#p-^)*K?9r5BbAKbF z+Ifu#X@nvnR}IbDmDJ;_G0L=p0p11m^0{2nsi=lab)4H8Oc^8e9z)Kfbw{E>9X!B+F&WJNGof|F$OIW4;u=`8BTbm`EXzEp&L0Hhe)jH zZ-C#%*tQ(&aBV-8SeR8!611KtZ1OvWXHoMJ6;0;NB6ofdaI*2=0GS)H! zHPv`@ONSd$++Eq*{5S3l(*ebN@lPe=A0v{SV*WlB>bEpfKti_0I97@uVoI(-kFHsL zs%p3&1(qaK_ZPC=wFUmXryoJh$;*X9;*n^J+(XvLFhP@+8nWDKCv;SqbdwxT70soLiGb83|iXd*(8et5=}_KPk- z4|KaVZqLoso1} zK77qJTyHz>ENCS|65AAO%KWEXlDwJEBUcCH*Jy=#DXY{1shlK;To=STDLT1sh`50%RDT{N-j4sbAxh$M1(;z`ynU&(D7%Nk=yUhXcMx$_l;? zeThFor-gvI+DkMs9dGuK4~jLdF_Is&x|7gL4e0I6IcL|Fr1(O%J=nsqqg^( z^Yim$CYSH?F89axWpuRkYr$Rr=i}i<|E%`qfS|5}iN7%$|#dXkw5 zK7W0zDdWH#TN4liO@}^gx@$)rvkTIJJ2WHYN0nF?>!ywSCVl$dq7|*4TDBnalhU=M zH^=3DB0vXN>Cc+^auRqX4Z>c`IiIe;0$8edVJ(@hVIg>mtquUYwMCSh@w~Gjx8=BU zA27{8jyfv@tt;!Avyoh-l@_i`a34_3Kw9&b30{@2>$I$3J!SDo|*~rR}mTtfIq^)+?UV(paBc!sPL?&QGlVgcvI^t{OS6avUSVhDEe({%o3^rh)f zFh1IY!{%EoZ)Vg?q{*M*nS%=Z5#pD8Ro(f*SU-Y~4wn3cdDLy>BI>_g(Aj`$leKLM zDg1C+`c%LRHNKFXI-h^ikvg>p1L~+4OffGnFDBr+7G)g9YXThIhaiy1-UKhxcYWZQ zEEwArj1ZK%lMJEUKAZdY^8WTsQv)yb3wq@JX1p>V5+9*Furm75?|MS!WQrlf<9gXW z)Q8Nq#hhNU4gl@MT3r+MKil2qap1WeHy;XW(?=vQ0g)^Laf(kdh|NzO2OLQ<;ag)Z z4-!u?PS=DSZ-|^|l^`jtlXV1*VucB{gEbbDQTca!Pi2kE{Ow=|fUD3jz10S5{!PL}rFbt6QL(ENJTHYW64^CyFRPHfI>zj;z7$vyvx@t1_!B3q1sJqL!f9D)Ud|fG`TWicS(cZwgP_%!}MFOiQL)rKsONnj&VTJ3M=r>otRFE3X6M@QFW7MGD~cgH8V zIEuwl$wkvghffBiG;yH}yWEkP$+|vS>)%CKYWoJ5NEuK7++<{QXFOXGY#OTB%hTw| zq4aExtj1Z}WSW*p!50GhVzP77wX{s)yqkMOkye==;>&}JIte+fbR)S?R^wev{@Fr0 zR9h>WgK*=pF*loFU-eikp19Rhu9n6BL*De!BibA(D)@*AMayxHse`GtQZNnXCbT@Z zsPuIzp$dq!+Fp6Q*`y~2*YhH++s6)DS4~vXftqd@pffgcqO#sq>abEy_{TlNq_LCd z_uX{W-4?w=yDl3S?}d@8gU~o#*w zEphOWr|N(XUR3Ozx$4p)pa_#=T&#=IDA37I0<hys=l(^^2c>BF&i4CfB>N8L3v-lIG|5&d5Yfv0 z?Mcu#tk^qj2HfsLgH-?O4*a_L&|r#>pbuj7N8bW+R&&UKtC>?d+pc-^&Bp2LTaL#m zhCJ-ttBe5~jhJ=xjYzR#Fa0g=lk*K=Wdo|pEZWB^j_hov%QiMQleK3DLfZ9K_nD<1 z&loFB$7YrZvM#jm2ze6*OoqPwS5K1uLQ?84YEub-XcVh@}(sewt@CPeLxRuTTtlUY|4%?w*Qz4q-AT;HSpO#%D$vwp4N_f7x{K%Wm zMCqFyh=|upVJW6Aw?8=ETF}H78L|vt4tHLMpTo^-B-?{}Qa%qtpMhJa1HkBq_Oq{$m z2vK#ZHF;?_#=JCOE%X2ofe=B(9W>wT0@jc7?`@(vXJdzI1b+e4noH(5nomr5oV&4} z4g$Zf50T=)U$Twi(w(SEU}w0v=^vHq2aLS#kjWszt;s6SAABb8{-&JU2_k^cBNSNs zs8VNP)|7Op#1$?z8zrmNA#hB(x8!w#^P);r?uxIS4LKXm4!D*w`? zGgs*OsOsnRXocfL7cJd`KDZeDE;AKakviJku|un5hskym2pR84KFt@#5qaNdQT!~QS^8e}9>}dqwqWj+q!1*Q9*-7@qA7~CV3C24kNW5Lv+GB|ndwhfV4%?^qr1h1VF zc8rSSjyysAkc_<2MFRtR5&7%~r_-7;O*PJZ8zj8mq5uU_{5f^u6t$ls2IiJ^VGiXc z+9k$<95DX~KSq5s60wEleyb9uOo!aVydQFqm#sUD%-eW$G2nn;7kA#3RgYCYj(58^ z4WFO2;)4mdM4C{hnNlO6`P&->RVsXhcgch6h5zYc61t4<6)keo=PwP z;Ny;JMg#Tk!($x+EY%~x>m*1>l2C>iqSANaRu;qPZ`~{@cHpQaC#7v^Q;(76b&b1S z4BxI`TtzUXw1hi&Xil1FFaSPWLy*lS8p2ax0DG+kfXjOzf(1uX`P&=t^fBujs$+b+TIZPP>0@9bpc;kzp} zd?IF$G;>+VH!_58a@5D_lqg?%w3yv zfR0ZtUJ4m8(51kGl$O$mFjaZG?`!f^wa=yHRK{Y8ZQla0LaIT^kE3~7# zj;6@n%_@w03q6NhQ4Tebi`vyRi)C0()ZT(6{r8M)G#@Unmb3*y!Xma)_`U32YUyo` z%|6ng!(Zyoo&sB5<%l-P9maMvQZy%S07ymaju+8p6z&!u3Urqx@#T7LRoR6AoAdj& zaWQ5a$3B`ns3w_?p>=w;p6HqlKkY#5QY)*#z&sQq@BBi0A~bSoz{44# za^Vj2?HQpwvGl`Ppu0r)hbW$O;n8}HTMSHLva`M4>!N>3-E6rqh2i^bIG2UXO$f3(!1cZIRHRC# z3tWqF=VE}S@Q2Sxm0if@rGdl`!hvj5^kqB1LVrTQv@7V&=J^(N1^$-d7rG{f1b42CsM;dUl?EbS5dm1;)xp zf4@cvV7WzLNiwApU9pqip?@4k-?1ag7sajM3%nVliY(wud=GXDfEMpQRSfA?6(w$O zm5zrrVui}H68V~5L`m-hyYs`ysJ($db7=296$2@Ykfq7Vwwh95u<0p5cUS8$%+CWz zdiqy4rqK=;Ulita7Ok5n6MaB^_ zrR=@)xU>lOXg?mR@E)@#`b4DbBT0Am*0lMBn>kN{?CfHfv-eYX8zBLeQkOX$AF$9mjIuxiBLf*4*HJ${XZ}3`aC2{ zyZdgawYooHw^8Nan5=E@l3;3jBo0n8pi_Hl?xEP;I+_e1I{QA<`|Je=GRzb7F&2SMx&z0q(`P z;SPyV@B39;M#t6*f(NuDnEBz7XWtnK#I)ZScgzNX2(@HivKnbhJeg{SMx_chOp-_J z0c*;&PSyzg^T886%^gc&gPr%X0TU0qx3aL1u9~`yi@PC))O4Ss6KC|~S}MC3!8Z~* z&0nV?MONrI=}X)QR({DCp)odOlW#Ts^cV*L(aj8Q3~k{HIxC{U-K+q(L2&m_T^agr~0@}C_;y-K!P$)R}Qtqynb zl*aK;a#BPA2MkXqR_7Hl%DEl^zGNM=(@UrcZc*UIZ*oGt{-tP?y_evNo4&{m?vJN9g;~J)T@ct>{3jKZ2Gej4$M6mauyBQZ0ZOCv zxN*Y|qfy`U3PW%)dH4XaWe5F>yQVUzaMX*^G{{;rYZVJL|3hN>#Z*$!YRUopyxbodI4BZlMbp`5{@Cd2;Ww0N3EUKvv zl^%b?mR`E2fx7M#g=qleOZ7(q8P@()xmP0au5jyec_A#D-Us)IVRm867VcZkkrHzYi;RHAe znA3IZa(53bk${wSSnO(xTil}B@z2vLXU!%f>?a}wB7dQh?Gro@;0FZkxlh0VkI)hK z?G7!f%)HNQx(yMhfwlgipTV&1*iQStL{0f z&%HL-Letd`tg%PtQ=F|$BvT-9uvEa9du%ueCN79*#8iVVS6-w;>A5lV#KRW5jN0C05#J&r>2}#ih-qnx z6eoe_L`Ko~c5DA6vvXcvlaqeTB>_aTe)eJNXi&zBvhcz^k|S61pk%U4Zh!xMFBt)SugZMXFdJ zF~MKRs|RT@%zFR5K|2i}rA#c>**r=@hZ1btig-qeW?4V%{LYRA74l(OVXLt2$Xu9_ z`mD>WG)TfLEwWzek(H=|OL@tP1~Ku@hX#Pyt|3rz%nQva-S0c?l^70~_kl$)}JAZ-B> zBEW<@0C5pu#{VWpp5Qz6tdTu1)~K2bg~*6apPyuv~Vwsad1HWZQfq>MVof~n54Wca7uTjO-}5+@x$Q3bk6*UuR~~Mz-{$#$mUuIE zdij5jE8UL=IosQ6xGu6ID_c7OzMNOJFEiNiay zCyVbhGuO_Jw}uSaFhy@BLDbQyS7=m~TM@J^WmNr$J``hg5AYzkbe^ z_xz^&0hc#x=FG}UuFf9{Ka-P(waZ?!>o*p!ug-o~PP_D^B!|k#XBXG{@5i@;QcaG0 zk6?hA>$zUZ3kFAJ>%-dA`BvfE%+z46b)$?9U&cZv7eUoMD94PCD*i19AVALJ;i#71 zM@wH%U)QJY#QBEnBODKK|AAosmBrbJ@I3*@+3E4@efMyz1xO{{h(1`zH5z{J?w)r{Ce>{P)gn| z@cJ(Fwx6+AS8rY60GRgb(EWUte$0}5e9V$D==0YXd0JBBkeevHn`E3+c{ zy}eyu1P||->kaWu#chr}2y7gxyKFbma!DHu(I*U@^da*t)1Il3DVeb`Z+dObFZWxQ z_?0!j4+D`Qs&0VV&Dd|%t{EJjG~pGtT)v-!!K15>hYh>%7Z`!D#aJpeq>VKFY>y*G z+XCv$H=eKlGY`9*#@Gt|t2vPd7xdBStsG%g{Zh<$A8(uP>*s zr$&Xk)Iwv3L7I7zIK0}M_#)X>7TE3U0olYxqATj&CY?j8_;R%*KXR=(O&Kk zt25GDX^7DV z1FipLtgiv#{4hFVpF8o4InyOWoPoRtCE_I&0(hWrzi_<4!K@d;d{0Y0b>X_b?FK+| zu=K^!x*ae>i08}cRbox>*LbM0+^?Bn?alY+=)0y_|N8B+*BsfWbF;@eSWFYYomMw~ zXC2}NZ=J0Dg;Q{DF7#rDyT+HXvgHNQ#*-hj&J`|7-{)6L4K-xTH>ZC!@(u?TM2oPg zESUDWzkkayM4v5>IoRevlA=WY(q4<}Bzzy;*A!rMx23^BI)vKDfF*>5C9JQxii>IG znNr&REp@ae2924ziEOaUF2_@>83DI&JvTvdOD1=^jC~SWtU64QF6;RRql{I0lw!1Y zI^{&f>!fsar`NC9C$2!_lvS|aHp1vD&p86_RZG$*I1sGoJ7h+N#Z@kBIkL%c|NE@$Y=YH3(Ue|=J78~c=Zg``!pj_-TIRrWyVpn%cA59ewH&sif8^}lTWJ^UPI z$zcu})T}qJ?>1f*HFX-vdTWcO`RY>v(0@o_tTjT(C0Mv4=i^>W3kTH3#KWeT1Dj1y z1P7$=h5refaf2}P7lj~qf-u`|qsXECNHQScj>(p>0yd^?0#@PP%U38>&S4qAL;%NR zVMKeyr9*M$$Ag)=ovW-Paktd$$9uLxFq~-#XHzaGQ-A z?uvCtO>s{Q;oabRwgJ$D&^pN*tS)F=5>@^-oQa%Ct$eyn(g8AKuoQl{Izgaev^1rd zR^xZflB^Vb3{W$j9gPtdAo%FZkNu*WGw;OowMij6T}UcKa0wU4y+VC|?Z*?y6)QkU zqL>{`<(RiS+Naq)7#R{!k${PvP zN34qV^V(GJJ=4m3g!%_)UXs0-tVHH`w;e%>QIkXMNFPWJz!Q*!laq%JMNn7>X_jNj zVh-vClDlzb2yhsptYvx{C|}M(c+tq`Lj6v`d%1I4b31-!@5p7E8N_Z`mGhunJYBB(d|zLj&&D(NF5X(W-RxQc@~(_ z-u4#Gj|YCkr^}lqmw|ECeBGAAT*B<6hzxZOUZ^by5>QN>%7Vut_ovc#ei@5BMfT*qa8|*HL1j%B-x)-eI@;o0iAX0_so!gYBdi`DZ$P3x$Mdp#aQDI0 z0JO6=t~1djbbs8b^@YY7I3?!t0s8c6k?;h+TC; z(Z>BxVHypq8>+LWmpIc0;SJ^Uq5j3v+0oL;Mny{~VMWW^li!47blJn{@qYA^#Z5#_ z1z<~`;BU)pYt)mCd5p7f!Fx*kdZB$f0RFaoh~H_(`M52=VPw$!2H)K4?@H <}v5 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

2u1_;(SYTehAB4dHf!Z99fW*{;MBpHc} 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 z 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�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%0DCPqLpg(V<%<^o!{%oQc)6 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 R215oT2Au;m1EE4-{x9oi4ygbD delta 110405 zcmYg#LttP{({*gywvCCMOfs>ZiEZNs6Wg|Jb7I@Z1QXl%=lR~vzo_b3+{L-w)zww! zG^E4bSHNH^%7Q~+fIxx3fPjFIf?#tNn6!d|fN0fYQ-A?K>^4|Xf}bG0paVAg3$i(c z7#Ymtn>tHC69^1NV;K7}Wa1JRdwiv$j3EMy2f`wq$VJGGyX|R&?}o7>r_~j35^riy z3%zLQT*j>r%%aJ~HNdK}KKc<$-1+?y-jrgF*g zqL&cGJ3?Z-Q{m~qo_T<4KYe@bwI_>P)Fnckr~d9CA$xhY9Z6`Yzi$)$-cAIV{f@dY zBP*gj@^E`RjK2=5P-5;xd3rGWS@BZ9ZhJq=237D)d;ADUCw`tk2UBZn%Y_n|Xt|_1 z!=pYhIufN366`iVBE=xVa-h6N8hu(9cY})rsHHN_e1Nl8xwgJI%XfwgQp5zJK0$ko z>G?j8)S*bSwaM#eqD`*HJO2sg8x}0HTEy=%MH)`*O|2IK#Y`>#1%}j!41o;}o7U#D z{TCbr1R;?b8XHj8vES#x@g=tW6yp-jDCKaJ1{3dtftjnLTc|MIm_~O(SE)Lp8cE8V zdw=>MKyw&BhjT4kFKUUMd8u)GHHhR<-iDd5%s^0eF)f3W3FIgmn-Kmm-?P?J8{?H1 zB`Ai)E#ph5GziTVdT6Ef_LX1IfP_i#$*bX=(bby?;snAS{gTZn0+Q9ne@+^W>fiGl zLxjF$pb$xQSmMMG8E2GvL#1X9#Mh{Ekm%#t{7kqOfF(ygGW6>y(b8`m`pxUYYF3*m z2S3jP9$}8B)I%?$Mv1h!CY!+aP7tsG*^nIgyA~W6^$*pe|2-eBDhHl&^f$r)w7G}- zbr3K)fdM#06|;tS`Ke^h|3pU+5LNx0hOTx((w&Y+zy&5l@|woA9Z5ZiO&XC~(ogGp z3s5~*Q)>bn&-r2`O32j09i~f34=D)B2yseu=FnJ zn+kAhMrFxMsUormn}RnR#kaPOh7$ka$HV%YAajTcT9Rx}NxSe(K@3gAJ=NJXPA#}y zG-#@yO@htK(V1Q(UkzDNrHxtasuUh}JtfanZ*;bls+!WM`l*TgM-`*d1-i`w6wK~# z-D81ea?lM^UCVi~e1aC2PwNSjOPL%|FJwTcN83p;5_h4{Mj(Ogk8_u2R-kC|{ASMPB_%Az>?<-(_V);wZ~~BUOP< ze!cJDbQ<$*0m{`Fc1*<}z7+Jrd33?{smlJ~!pb}yEO@Op$81`ma48fqf>Dx;CixQ< zeR~v^VGCt&i{})IPLyIB!psm3jo})eZjW(BDL>@k{Ic(ih_}Z>lz8e#+}v%Nyi3ep zMpqaX*_&=w>p3>=Hr${+6U#3m>18c_9@>Kqb$zedu1*i_0$)OYYf$Po9Ij$2^kxXi z)jXoBEpYclZ1UB16+Cr*A$uSjG^6sOp9^KdX8GhYADREGEsZ=Z1eiQHh`kH%ZVEd) z=VFKM%Ts0nd__Vhf%8c7bkFY3IO0$ER3k}H4A>?My(`0ibz8Yn2c8}j_+dT3f)H{Q z^bxxIc3QMU_``b@=e}-Y`2%FHOvd6T^v2t0Z|+!2Q*gndp%1L|@ch7A#OT?DhMoj* z*^hFQ@dTwwvLsQ{;z^aq7NA3?VN^2?SM~ePacvHp&h~DtUPH)bJvNE8v{AKqD%0TR zDS=~249y_ia;RcHUK+h1z%_r`6MP?r_tueMrd_c1Hy1W%pLLM}D=?3!k>pE$hQ;^g#5BgDG2WBmsD zQ;sH0!q6P6h}}4sV|j`>C+e^0wl6wdKm7oR_iz!Jb8ZAo*`OGxRxyA1e5rIqpP1VEICVtxr+Zzcf{guQ-kXuzsd<&#|Hy3U=L3#(wqNcbv3ZL|b-35=){azYijTmbcy# zrKqk8d0)!mtSEJ4gC42x65_xXzlK8LtxWT4QvBo4@Yz%uJm?AOnj46NeoV1P*iU^r zu=-&h&qJ|u!^i;+q)xn+9()86YbnZ)+tFx&}Wp%kYUAKtNh zQ-Qb&3>wL?42++YgG4V5q-Yg=A=6k(-LrAf}+duDenCr1{zT3j>V%u@a=V7bxH`>Li>O@^tNHhPb#B`L_ zA{;q6$F9RNL((ycDWtP?|2aNG(qG|xn2MN;E^lCIZ}J^z=nLqlwvJ`w&oCSn5utx8 z%l1Bl0k4lS;z za8j2fXA06r!Bav)MhbL8Wq$3#pV}7A(EIrM-K|e3sQBM^m3P#QrzD2ndVO(bE%PUh zYRSCo=4149Cy=-?HT9Vk^|@L3VGenH`*M27{X`PDa;4Yv=_koJG0HwKJf4p{pOB41 zC@84F!$BAv0b|hl`K;Gs78Ins%iJn2CS;7MQscb$F^m7kB$-3z0EnHI>TZez;q_I_ zr=uBa+msQ)^ApYUn$}_nU}<^K?u?_lyGUO%X{2baVx{+eAaL0%qlpXs(gnTdn8T!2 z&8RTnCUM|evw5o-i8Z=HQc~<;`I)-z=86Gmp5iF8EwG;!Qrh78s!K&MXYGJKGh>~l ze+SuYSq8a$UwF+1T)!?)a&HtaY^|d~zlb0KvagI2kE3Ngo4q%$p~G%Y%~_F5Gox7^ z#uKal2Py<*4fLy-ev%#8l=5)nWb z-Pajzd5BYQi_(b4LFiL*h;~_|SRm&Ts}1pAbI})n=qy6+u<>Er*DLiqm&>6`j&G|7 z68}Xxx+#y=VqoiVU2myALe$@ zDEkjA77Y$CN%r+-L0-nnQ#{(mTV6oBc<#2ypqx+|Q=#ZoAi-)^j!tdlIbSuxdq(w! zvL~K;aMi*W(#z1W$VBX>Zur&dEwdpN1W z%sC@Fe8UFm|8UGVB%kMJXfkTHK`PU9Hfbgq$l-OtY2y)gwnJtk)Ktc zTA)^SHg1tGzyi?n^FLpP$2&Nvdm6j2t*z-Gfpxg}CO0qDbxJN94`r{^>)$&6{j_oe$yPe`-)RERF4wjkr3B~@~eR(B2Qv< zMRHTMwuKk=*-*s(?32vI2Byui?^jm?NHFe(Gd??rfJ4Z<&aV7-7%^6?tK6mt5+>n6*3Wd2Ji@LR!xv_l6J7}+N?pXc_DybsnZ07M+_h#aWSICC zssmU?OGZpF>c;T(=C)`Y$WFN@nT_pCPk&FD+^^@*`!L63C(>BCo~>Ecw()!U zsn#@xh?TEdW--$E^?%YJa-*g%JMJV!Wdd9@n5)pmR<@g}t5C(&3V%v8ak-bs@srd! zg|-%u#Mkp)!mlRUwN~Cuil4rl1ia;`aM?r=_#2q&`uNp9zQZ4{&2_>6FOLOVj_0wu+6BwQiVq0a&3HQZ{IZ|y$hW!A z+gbS!KY)%7*;DY{X~j|NYa8ym)&n&Ejo)7PGdL9w-UgbEk4p!96NSf{x9z<8kvR_s zXkJLm)?VWy2PC1f&cWJP{NL2Vi6Ju(iob(zDNG!3epc zz7QhWfo4IGE|{%2Q>~t7>bN{xC#9-~OIwpqv|9&u>VNm8z{X3$j(|=(ZyWbMzP_qr zO|xSr+|Ws^KE#VvM%imM%g(JZyEj5Q6_G8aV00DGdgY_(8Fc$L3Oe0TJSEXV!z9bi z>6d#Qda`XS0148mD@}payx5dV*Ba;iTJYansLC0-`kstyDXK&fjVMc4JaQVNdXCrf zi;}HK0?i+nrQ5}PmnOnuSFmJ}{LNmQo* z(zYLPM)g;o9Bhtvr_Y<9_iVz7TDzX7Tda_E@Z9cGj{Yc??fu}ENnn9X^nALHCl*rN zV*Vp;R|Id?1@cWdJK^sFC>JDex`)l~9!Me~1u&UbyPA`ZKf5Wq{>cj6nDU zG5J)!7WrC=WS0~?U{z$F=k@>|M`^-;mF?$~G87HhHtIxndRZd5<57%$Eju>SmUNFbYhoGQmT(l?pKO}1;r-2+_~5_u4k?%(Q-?!T zNP%p4Bf}waY?UfX$153vt^&%l@BB@sR~PZTL(5TKhWM}@lEZA(kd9X(1RYAhm^Tnt z*A%mPLPvXUzS7Kp7sWVAaux~x_?G(4Ux&$tpUcNamfVt2_q9;NAGX{ zxQDN=e=O41SC_A~{ibxn#S`d}5XLDOJb=H_S}MJ)@&U4*U}{;)sFm`5qK)v&s&f-- zIiX9r-P;TJh^9!VI1rblh?MYTU2Va6fia_0kdzz_f8YCD@apE(v{e`SaBzP+-n|?# zVk6iDw6-?Cc;ueu*RD&6w>wJ}{@xso>+d`1^9EDg+E%V#B0^#hIz@Xs{Q@Pqp&w)_&k_-A zD(Ys#69m83)9=`3L`|`}CXMnYe-2LYBPYvvq!%itC#CWtC69Tee<36X;J(c$;-4ixSa1@07&msQj0Q&Jsyk5(1fsTUA3gzF1 z-vVLpvSf`a2pnnOT}E`_gf?IksjkUN|3$}Iv|F2V-hPuyUrql;H~1RBo5_38Az?nT>7|}T6zn5c-ufe>+arJ$t>02uI%ic=B}K2jgLcy{;Kczy#3f^ zq5op_x!*9zeE0x7e~VB)rve;4?;g(sLV_I+W@n#HzFdt-qk;kwGqb#b*OEc6&&&BzVdTE2d&(dvTKIe^&<5EAqlFc|F9Ufa~Y0Ww{M&s(i!k0}-V8+`-ky%pskifZ)r^Qf=z-jQq5MK|5UG$j-l=tFE5h zu(`5*X;+X=H;~VzA4mB6l{33oBRDI38w37<#pB|c^Tji}agy)_X!0;zof~kXnMdH<9iQv1EM`5mhtZXoe8Qt>J_vX&AhOuPvJ zwOm(1A|p!&_T1yL-btxz+YJPVyg!aes?OC8bVO~Ma}e#+SFA$xUL~z<|T?VHb!y*_2r*tE%DX3>uG4Z3E?0m$367AnYM=Tgcz=~cE-atV2pyt z$}GmQZ5Y~uN6MQx&a~^cx)E+Vw8?IOj#1@@G4vfR=^gFTRB4HRzYp8e_mFn&Z6s+~ z{7?oDwqPXttL<87Xes+3$(S`exQl|JpX$>QNbt#GIOdz zl_q#Plt0u;g6Z0@!X?+Vf6ad?qEXjtMoy-tL+TF)yi1F`oW8Vr2Nb`6-R(mHFwqNC zcmq;YyP7X8xCDIQth>|{L35rkpu|slf8keU8XZs;*Unh3D7l%T z@RndbRKLjAWDA$t zC4_9*j_o(__JeIt1uX4m`*qHoJ>g&17JWL(I$Zse0Niylu9k&AA)OO2h+PjlQTu9r z8WEneW7!PTI~(7H{4&7guR7;>uNSDZi64kDAW<*Y>dCdQXMlE$QzA#&)zcB(h|p5G zh*E9y;>G?uH)<933zG`8dk;2FQp23nzD*xfqwz-W7?3*`eXzSEq+j&M5qCq?SAl&t zTu6QV+2kyl&4`9M(|kI&W~nKZ3cdxD_ASkIx(qrwVsgi>T7j=B$pCn=;Zl#46Ke|HX`jOOwSGoT0sAG)HI^e{yW zJJ4LXD-?QpA|DKWzXWZRv2Pm=%3XeQKr8LGdctfn_3*6Fy2@ip=hUX*b+$xo%c26jq7T**;3Ei`E1Tqm5q zT!yU}k-<;0?^F+WL4tP=b6{$g`rsp+oeUs`0vp(%r5;f!*vFj@Y#f;WSF_0+@-uBb z1BiTKjw49XkKhbkWO*q=Y{yV2%3IJ16RK+T3M7 zB{N7;l~&?gg;DW?j+k!wU1nXMGBB(`aFgxZt!@APtbzX|=wv?Z5xeL^qPQE?Xnj^6 z_>~rs_*=TPwtQhltu&rx!Q_`?$!9n+#{)1SyVnUffzVzp)sQA6bqhnY~Qc?BcJ1iGl3#5R@7}ytGr_w!pY0 zFlVd-AAzN=iUSUoPx zmB6!B3pxr6t0Ej)T3lx;l}JV}2N^(Rusv!1flR#*oH*4XvlooKtV*^b-u`QlH00hO zcGd?+c1~*R`v)q1Sg43{E?XxkyD>LuaiCwnzmF`TL%W~Hs^MxLVQ@w-v-u(k2#CFe z8Qd-6JKAT}6r$E;;0hoa*2}}Tu4$uK<0F4&FkFOu4Efo%!E=yM6wO`36nxpHJ-a0IgRfb};Bo#Z?{Og14vCnawd{!>uPCJsa>(NR&Ve zp3bNo>9p73Q*fyFjP5dO=Pc!!HCeu28(X7S(s}XVvEq9*4day83CLoZ7K->N%Ck=K z)&OY-Pk>U&q+6=v4*`!ku9*tK`EVnV93c#wa~>H&Yu4H+7rs!g5|;Z5=&qtw+)=Ll z8s`5D-E~wBbcVspjF=FptmYOi6ta~cosgYft%LQ``l|no>a*aE>7$X){7@)BsDO;R z?DBjQ&XW#>Vi|8dlGf=4J>Un6dbH02F~))#KE1i@TeY>5Rc$h;4Tw0Wz@@Gk6hExo zOFPNpC6!~)JU~Ynblh78P{PGxZ`qMYTX(-NOH==JZ1Z67@veH*e12@h8F0+A7hYp$ zzQp{STbP-U^7g@0M^4BY?LC!pDon{m6hp{m5IS~Jo;Ty?njYhUwil< zZ}KQMI|wzQ4sB|Sr|Tqxrghn&)>ma@$we;`*D;&djw{vH{UrPXP5#`*ntME zNEhN?j{JpDk}zzHdDxJ-=yyep(omHb^fnw7Mob3FXFsh186JKQJ%Oukco6Wf%5uXwh&xtnb-v6Txpz#TMl* z*!8VX$A0_v?Sd%!gWr_~L9erZo9mu@W9fzI7M>m_-LNqW9BzI~$!SA|33Z<65=C^K z6R*b~)j6IEDCvS2;o_ehyr37|)nsFp>POwBThx_X?Il+9_8dkR?iX88Am4{3pJ?|0 zLz*T>5i1>;Z3}ze^CdSYvLd(Kj$9I}rX{qR)8Dw5KGAhfg>VV~K3+vBAc??f5e4{>xl3To-eho*6 z8rvm?%))q-O{4f^G!{uvN_s>0TUgRgHc%BAT*N(+-YCe1^x3t86?*)TtD#v%Jx*=!%yOvf>U)5b-v zwSUM17T{7Xj&YZ zccXQAfJ;B)#Lzz*M1yJ91j(Pe-9UuN6f7q}p_{BmgZZ%pfufA?Gkzt_uOeYzlLDHk zYZHhdvEYs-NsAH(N#62@48#!G#D%!f|AA6u7wrApu0{i;=-w@!zx|V55k((dWQ_%Y z79qVth8Vg}A+d;cfPuKcLqsX^-;`uh&4u0g;RfqJ?mjFAKk5Uc9SFI_Dq|Sho!bTn z;xD1)Vnx(Zz}f#JxHmcS|FiJoUbSKiOs&(zq3!foZ+XJt66fo)0<~*vweJwU>Is*> zYaxpn6^yI-f`ImqyFb8b>yBWpf$o-1ckO$>Wgl}@-Q4$gt}%PG-bA=w+HZ04Gbu8E z4f4Kh2-H4^lr}Gg^E}8DH|_ewZ;Eu3amrNcA?CHx*@MG;&-6|e!N$f}1Af@hw=R8z>o z&H}_RXpL)U6ytZCFjhZ=L6{p|29oW_fxATEZoVl2w(OW1zpq6!*)_hfJgqlOij>#) zmHR|2%?!ypj`@JTd5n6FdH?WYCfvuz{Kj}9Muz0_I`Zg;(BkswVpIWDdYlYMhQoRL zU&YIRunqA%uRwq_Nh^-uNr&b75eg#y<&TU`ENarG)6$c_F$78}EC_xZl@tdx5DmW& zcUVcvVPh-YTvDSP94hECWI>Y*lk=b)pk`rPOF7WqjL)+Pv$?)s##wGLE$C~rPR!cW zP$Ij)t7gayq#;H@++BVo3$DX(tWunUuULx_s=YLU4**a1xsYw`xmclB;X@6`zRg1$O%0xfw zkR4RlaG;hpo;(M9){3yH|30;A8ui&gnf7U$BF+TDzVbThS#K+BV(M9`H=tS&xiK~tI zLqBh&%M`~*yZtS@d07{e(AKOD@P14GG;r|Uj3G~hI|js6tbOG=`M$`zGtS6eBd38* zUTxI7^x2sUq5C}v4e~dsId$?imYo-v7jVLW5RF1Rap?m7kQ(oaivQIsOXcZr&?mG2 zUu+qOo=-H|`UVQIrD#Zgw;?+fZI1jOOe+iMn*jEgO-y@`m(ZFF)a%h9cE>f2N`Zky zI12)BA`u2R9bHb)3#wvEDGT#CO;QW)^0?2Tby06uv|XEgswSb%&dy?r1C3slYf=Iz z@z*{*^!4Tp{h~k8 zeo#XWgo~sshNq`qC89AwN)S290b!OdgRSd!D~JmdmcQM6tsBI>+4@)>^h6OL@%m&3 zf3oEGi=Da+`s{UL>ow=HYdPwnnkGSpZie#Tqo8@^Cu45nZ=;EvCBLeYZ*DB$rDgu- zLRGVs`Mii2c{%ZuL`ly5?>8&4*rYo7R0zoEhtn5spU_RlKYen%CpP`x_|Pmp46dD% zcDF-1)A`iJcJ;4WvG*;C3ha&mN!~1F0!8N+=PunfSK~hnd;94;&SuT#`;+P6lr7Hn zeQr!xt9EE3ulEB{;HBtP*$c7Sd^QHp*LM<*TsQY;Be5>Xvp0x(j9)Kzui)B$by&Y) z-&z!~=R4OAjEP&zA1@pv<{Esgx79^^Va8y;m0n>^VBe^Kylr97q+YNA;Cf-iqsDtj zEf7v`(Hz>dy7`c5GrfC!3=j4!$lob=vq2RV&HbQu(eSyQ2a3>%Emj3_t-sMCm1wdp zLpskLq%vxRa1AcKcX2nddF<1H{PoiZ6^;AeP@##0W2E|PtuqC$q=$$0_@|@t^jcZJ zyK#crow1#<>Gsss^mLLa;9-v@`ccpuYD(PrC!D3gXsmHouJ7Rc`T1F5+-3+^1|5c?SC02jK(fD?i8jwv>yHOf zM+>9-H}si78Cvw2AsJfigF}}tdtA(l`KgG$FBi!<8NX;(*qKhK&(bB^+~uKZS6bBH zsykTgFILBQ8#9%BZ)6>%8u&+t$cz+Jj!Uub8^J}lx3O@{K#g%&1D>U(qI$7406lKi z%JUUAu8x=Hud<^GedeiSh75q z&cc~NyAWMDrOM-eT$ERObnEHo%R_P;3GbT?Z4!@`=X)aiUYy%+iyiIe_M_(v&G z9R@bUu2+>7N>A`%9Z$d$k!$Yo$Hk*V1t3)#U*`j*{P=G}2e<>8_& z@L$QfpH^=6mvu(oaLz?i#`t1{`@b8uH6178=4{KHu_Z6U#4hoK z>K~O0hrYj*9om+uL7E;;jl(+uAC#C&J3fb7Q??Qu)x)C(5r?#FqwBZgFC=2z&8ACt zTdisvfXz?7;ME0wn3|is50SdB;8hU^QI%4WcT+ic zNtY6~0_!m`N=hU~csQU|8nY-?mW9?)eJHWxw-pn-5b$j5dgrId)8XK|dO1HS_bWlN ziDM=7GQTKZe+p5PN=)YB$U=|B!(iixa=IYCC_Z(eMXbTd@0tD&GKMbkCX&Q9ZQM8+ z7`$v?aB(PP;L6b@1wAfssB7q_;e)Fj?5Hs59u<;0`hH~n5Ie);l$RXiy>o#2r}@RE`!>bds|knNQ;@Y9?^(P z1*Y+yzZV);9^>)u)<29=3X9=HOkl9kU_8;mfH;yH{CGvE|Eod9rrM8#eq<=N#Y8?{5}F=gY;lhdM1`wtzOa zwUi3+M_y)p3pe6y4yaNrC|FbNYpqTL-D$Msc8}i5zpTms{M9;KV$E&nO?@?LV|APv z`3?oAZ(NB`CDPWJS@g!A+LOoiM-S=HDw+%<7sN-4G(r~mIn2+pq|p-$UD7q0>}hDW zPy$}^@?&f%AMuUL8TOYbl=JVNY~xXLeIoVH0t-5I=wU0&R=>6syvK&?1LykxOq0-K z$1p1QrDs5rwi;RwEubYQd(xRm)F{!(`Ya~rt{u513%fqqE`3(fgFfU!7eYf4gI&>M zo3Vv$9>|aBU(6LY%GBJzhMOUePmb46R>aXUr9tSo59|M#Ba2}-(0oW^vrOW=fxqaC zrL~szh(@!)qUCIX3|ib9thzdfnVhUT-kk}(C`qIc-pbk867BJwNpkue72TX1AqJWi zYUFOXn9w%inY_0b+KG6UA0)nqRZE)Szd3KVr>m)y|6y{mkM-Y$*k@XGUL7mb)y;GU5x|2 zi*)<%W!swXvh1dfnC)SkB{0HiH($oVDEERW{cI!lG^y*ggW{8dA>TE?%WNU`Qx~Ff&Mg#za8H5RmkV+T205UyhP|2bkWbj z{x%ZhV*b24J|Nd!)Rdxn9FX*Or^V&!DL5ATWpe#LCGe$$h|px=E0h26GZsM9Ls7;Y zkh%L)sB;mhZ*EoErb>~WiWDD(U<6z)`wk6@7j*up26v%WS3?!vZ^IqRCi4{S&^Y^g z>FC)(U|L==n62!>H0Q*0mp|*(x?Ey8-&@q<_02V)z1F+Qop^i7U0$h_y1f24n_4=$ zeLOgP@N)fnu=Bkj`vDMi3G()|Z32%IFE?j*)WFwWJupE#wB6(YrjEtdz^ zzmoelL#}8OM&y|6d-T6rN>*x`yA13rMn34;qx@mVo>DN=t_S;nK~|nI?;y7dnKICY zDBza5B2c)_J|sDg8EG5 ziC37KV{JGu4K*`flmnZ6Bf9)(^tkrARVKO&>TFC{^yyN6 z?6)sD*dE;V`9$UGE&lxdRV^_<1^-V)qpRtPp|N1ZyBt32!A5+u1^OdHy1+L4%Jr}j zzfTr0;A?VPK7VuvcVPW0=I=XP+zFSl~MsjV-93R4ueyA?1OgF5N z#Ncp9y_7#8cE4za-Dmns8s*xUPUy%@?iCZ#+42f^$%SXqrXzHPWNFv`eY1H<)xjNW zcc1^3tikPmc+!ZDI(_{fGQ!OIxP&rdpYfDSz|SC^)qY7i~7hbgllb z-QspLABZ=1CJb_$-cJA482D~Y^$#3(YBcvLGq)kV5k93Xik4Tr%Vk8T&FY*h5K9gt z%FA^tx;8%K1HkT~&44nMC@u*lV10XvYH}v7rQSW+K84kI7;Y;ehYw=t4}|9poZB3m z0F8C@?>qsQC4_(bcK@3w04EV$_#mv4L~;|7b)P8=)xBHu<)h_}J?ihY^)-9l<-eBe zk}!y)VzHg~v_sAgyOIyC2g$RToDqCCViPp}6l%L;5&#wG#3mbu*i$z{tJ7ISwZ*1e zl}uVeI|?D3SL5c(OY2M})PqN*#4IcJ?g>Kr`|8kj6@v4V&ANgG*Bff zOn?nB$ePi5Pw*1jL!(dnCqjF5d=M6@?`C~epC5{q0h+lD=c1Q?d9mP5rLZe-J|hLXG9Sh z#J+`XPo)f`tNCce6;_XBcS_xWFId^_(2}^*DRo|>Z)5onmp2i2>@S?IVCp*YR<1uS z^?;~d;qeQVmZp7;Pq*xFTSEgLo^NPPCf?s`tNLRS$pZYa_!Fp~^@wJ^v4dP`kwaXo zf7+YGI@m<5<#1(Dk1---_I&P{mywRKh>o!!r@J*jyyK*ZiF~%+Axj0~QykG5_Nv*9 zY>fIc!`dUtaJP4${3|)ds=yr>5q2A-WPpu5x;{1cre?k6G=H>~b(D7TLA8Qkx=S-} zs!o;)zo3+vaFiPqguzVk{Z=&h+~@B2Nx_JU&yO)rlV&~a^p`UYyAmqR)&k|SBD$Hd z$=4#enQTS$byfraaRYg}3?PeCSvJQ~S)(45k9PC17U(8%{c);m=x7-POx~i7@W9H@ z=}|8<^w~@%CfHx~tXc}xbo8!QxM7`ibhK37{79*}RhW%hbO>E9+IDoiDX265w#EF* zf2xA;M8>Q|d?JpO$kS9^W)qs5twb}%()b?l(BBlK5x*tf^@T>zuKU8eNweoI>3dr- zJZGlz-J^}f;awiHe^h7ZRlzxi0x+qk1n-#6GX$fgkFVlRmkcF#aX-eIi9iyDhi>ZKyHMHbgjC*q#x#IC+yE-+7eT=0Rp1WZfd zywE#Vzg$?A`;Wk7M&@91OBiKTcY*C{E4k6h7uh1ET9=1(BPia$49-5YV$13pM^C7r zCl0tC;a?ptn&9y`sh_|e+IiCps2Da_ZAdnc@MV4KtuTG+ux=nN zyRa_!k{E>*l7fX)b*!0)RCVGlT<1CU{g?U2kPSv@p8BA1)iivV$G^EsN17LfxuP5) zSciF>>UZz`HFO^@ z#c(!Z?Ikv4B*_B#3yNVKkWoa5l%zy>aK-Fe8yo+YK*vkz3rnxmuLJLgoC&^2 zM`zozLDEIv(^Pc#Ad}6r7AwW2cfs@02g&C7=7l4i zmkdTU=Qb4G1Q)lK3Xu(H>w6g&n>Vq*aV4)oS14H{6V^pGA6VF3bHFb_;NG9a`!TW+ zM(DYVk+QoS(#Tc6`Z&mCg{vSlVU-ef zIfAdCk)U0DL&071p2M*j4k!P=E~pd&9^^HIsyjBUYo9wG)OrKv*`8D;OwwN zotMxEB#Z(C-Bl{XQtC06E)$fbH?)weY@d?zGi1H}xQx2taWMVMa+Lg`rr%8nB;? z)0Ewu!~Pg;MY5xJx_jzqG=nq4Zn9;23eoauPCaQVc*~=CVbnr zrl;eot_H}N^F$k3kgtNK1zi8WpeB$HHO7{F2KFVe9sJ55(Z+PT& zR#Y!zMhBj-N;oJ%J3z)8RQwzN%|T&lfA(2(_Wf}b9EA~b=CMhJ@&B}Iwt;kcU>7lh zFP8x9;f+*xLzg=HHp%si#rJUfDayMH!JkzuA#C%hAlmU={|I&1CMHiy?2V_Po3XP< zb5bNZaePQ~Q+bun>}<#7tsx>R`+tc!wALZP;!7{GqA1DjOF3>g6&UWL_@mFbT#B=A zg1S+>i_0V}{2#%39E=+wKhq^@8}gGYvH{q}xQpwsO2Hi;#If}ow2qwvg^Pw~PkLgU zRAj<3qrrw}Z&KKwR4sWoxuTj<%q$>z2TKN;Ce2YZlv)i$8LVqV8)~t4X>^O@q2wHV zKr}4H2_XrKD;Mp|&0QAtisP{r=agV26>c|loJqESv+iEnp{QHn<3)!_%_N;;JpgzA zRmy`g0`N&8YadaxgbfxCD!8D~9PBs*nC4uK-D5@5HCm|R&Vm%w@j+vkncMY$E>IIE zzsu3+S4LG1`;G^(WLXrid4+6JGcG2Wsju1LU@?qpl%nWb9-@^yrJ?#C&6bg|D7x_u zDlIM>#Wz=sq-2?ti`I2q)3YLA6h!}uY@ocLD#0w>>=(B?-$q{k?p;_$0Q%GD(_)i| z*193&B?fvEBB^-+iqnZ_fV)5Yn_LPa;_mYmm&I=x{bOpGqwnd+H#A2hijTqa+@bkV$mNf@pg;Sso)Ln0t zD_suRrgv%Dq4XF!2B8$r{d=Hc21;jtc4pUnk{$&W zs96Du;fZICFIZ#R;h}S#HOLyoW)QUL1uoG@=lXI>W;pe(8vlMXwTBox2UE*dmwo*O z7cFb)Y}=~a(^y*i*ntPI+zl~Wjl*6(W0o@i+whphWER(m=9UOl3#BwJr; zDmmknmdc{<4xzG}WvnH;Ih3sHQEe>@AdZ%~5%=$m!$WiUY$O5sT|a$&Lv|dmf3VYe z(pxPBYHsj4sBzHYe(s?iM#I}2{S26*syRL2GF`zBl#IrBn52fxHO_@AX(5JF@vpIe za7%Xn%@-Ef{6K=e*e9&0bA?GBg+-0{2VG|qFkx2mpmbtJ3N`hKpD?-^@{2=BTKb+} z%FHDC_z;pUGOfJeQI23~qlse013Vq{Ge#Hz>Vp*(dX%aSDwh7`ew0Q9578@p*_2q>}gqM}e<`iW(dm0r)TOUr z1wiOB0Cj6ep*G=D0m5L37KaAalw96^pnC4r#*L@*s}Zirun{8S8t_@f{zfSO&`l>8 z8vaAabM_t>_KL?te;=4JS_i%j83eO_T^+c~zx=x$?V<8~o@jxJhdn|BC#$kny1*HK zf901?4Cy|$fcptQc1j~X^DM4z?|U7WbxeGx^}@GR&q& zLVk0u7dB7aYN%EqNAb^dkc4|pB~EiY;eSeL>}+Up)Y9bx8h;!Ffc$E2%DQ-k;+Y}t zcWP;d4P^ftaL(-g?hbL>Zp6EBO24~l5y#7Udd#=0$MV{zuF|Oz#E-2#KUY#_U<#x@ z+OL5e^R{M9;A3yRW+q>y&moq;K}Y2ruSW3}-rj;`vYIy5M%Sa%v^Zjo4*fs2-ZCi8 zCTJJNHMqOG1$TD{7Tn!}LvXoq*AR4Z2ogNFy9IZ53+^sCo9F$`SEuTnA3a;U`{$~j z?rVBxx~GS!1b222pF#O9{Z{ByJR$hC1pSfYMr+7e_N*Z^IuAR{Q|BZENN%|nUySzB zubVL8{4K>`Vs1mHm@$>5kM*b4xHrFV&qdl`gZLxmC?umn0KUz4tC``HSj5%ek!Vq{^B2C;Zq^E8I z=VRZkjES()T32v6IN3il#d|r7N&0_?L$)~Z2a8$Im;rO*a?zl@E%&6Qk@~$OW`=_q zYUtU7Fu-eOR208m$GGEkA6*|alaA~vRn!SPj@BLbA4d7O8qhLMrn{Atls`%)j#+bvKr(|%`@KT#;>8Mql z-G5LSY3G(JVrsO<_QAaFz^QSQOT0~YPbG4$srw0X24AKgF{ExR=YLFc1Pe?>TNQiC z=?{s$&ZG)6gle-jAe@a%=tELRE7X5F{EgC#BmOZ~WT) zYhH5_=^wL3<1ey8IY%%}z_1CU7uY^q(oYW8I~s3P6_z72SI!t?F1L;KgfFzme^gra zead0~oPED7hu|n#3StZu@X1mC6so_RQcaG3p(#RNo^R;?r?r+mJ<2-09kiHZdhN)H zyNKyr+nfraftAX>XdqTI!n%SRZ24QiI6HK!a@e!%fvzM>lz-C!2s>}M&TfQW*APf> zXkaFl|C@#*Wkmal3h^<1+;b&G#_Tcvtai?ZI{Jd|tk0A9w+j)0Z%A9R6K*Zm|E==%5J{@y82;8+wF*GFPo5 zKbQTNs~4Q2mt9{Nh|z%0C#R2SFm8XJod?qM1x!EuuGHAt3;FBfwAMn^Wm-U7h9`f_VpmZ`NED6aDO6&T@+w(1g!p1)d z;ZKN7dwNm<@1 zT~D0szKGvQ_Qx%+gy!?tJn;T=>9~%r%1$_7{Pza1Fti~m6&^E2@b=0?Q05n-S0A#- zEfrpu;vm79KvdUB5jEz}?5rM!EIa9Df$L&k)h=dbq5r+%a5&7ZLw9(r|4*0jPQx^! z%l~Ga#un$PX0Zd27H7ASF!Oaqi^dk2$T1N|d#%B^T3wtNqSa_5-eebZ4}SnTlZ?`F zYyrIT1vRsSXElF0lBjMT%!W}!pgRm++=AYxk#gokIIfdr|8ENQ&|L7}4Of2i$c7VRQA~h zEZ&6i0w-OGc8|K_g;V_3F!7F^svJ3grqZSpP2oXt11XTRYIXb1AxEplJfpYb9B{y( zTJ5Sf+5RFdJTIOFYVF-5R-1*e7VcA-kqpmG{53k9wuW$Q=?SBzdcpH?do3&dpn zkG<`Nfio8R4`2_NS?zXjB(+z2t!Rw`C7-}YQn$F^l(%jxu(dV7@~qnP8Ml$yr`q%V zBj~dwXOVhOqtJV}l9U}VKdWD|NclPaw}7B;68(#3I64;{|E+PmzEsC{Qx$8*>=yz4 z(kSB;90pQK(3!y9tB5?>lRqw`Wm*zi3*v45-I3}8&}|Y@{RzFmqAr&0PE!#m!?S@?L0R zOKG^wMSi(e4+j<-1Yv^L82~G`3l3es5&x4?T9akkk*Afn^s#T$VA`vx;3)l{(yYlr z-$P{20N=aa#43Sz+h)MW)yv!E+4Yg^-`zr2z|-||xva{O7t>$2Kj#nxj*eZ}pM8vk zNDtsVt}a^&=>xv1_wlAY_YKtZ8H}wvQXFTCXteyoD>?b=6LgiF(G^zMEE(7{g-878RweL79! z9imft|5qVZ;6zEKaNWT>ANjdv@$&U<_F6M~M5a)y^Noss8k|55sB53SE{{ANF=@vd z!Au&TT{vn_6a>6~c>vjDN$&=OBj3{O9-WmzALN~nBI`XPnfDsP!HAOfT?t`cf*dDpt^zGh zBT|hZgEK7i^nFn-PNo$3203bkNxTvz!?ie(;mG?O3F_nW+EdJZ>lfsWgiqAaPx7x9b71;iIOKxwPJnf9acKEhn|Q*Gxv zR9U9~CXxws>G;5WVA3;O={VWem+nX&aaAf|n9>Z%&T=N%F2X4-V@|`v-}8ZYHze&; z6g(Cd-zD>`Cbz@uK;A9rh@&)lDC^Uf6Ns#kH0x?h4LIvbu{W<@3ZcLB_5=hI9ZN1Y zhP^0V;a95(n>7r1X>Nj-!w>qPHH3yRQ(%?OHwo^*cn|A&w}kBds*|`*y8?(h^>}DD zd`PW~f%)P5&Fy#4*Sn`Rxr7^vNET^7(kd^SfFh;MoVu*Q_$u5 zq+e$Yb-TtLA}65!Y4zFLGxGOgxlnO^1i!^9IOm$k!)o>S5mQnnitZGDb?~s(HvsnP z^K84&=~7GqqGKzX;WFX!=a0I%oL64d6EGmKfw<5P6Ou{pvUzQq*F>l^=?c# zS{5@C;zrpasg*Xvu+8xAWOfzI4X7a*_|`r@Z0#KT#I1THTcqZ*eO~)Ss5af(SjC&% z$tU9Nf5q%&VcGQwe`Rl==w9$l0eGBcqiuN6%vWkj|EeXtNw|`Ur3D2N9;Ps|JGJ-@+mItNYxmI+{^vEF+hP3TaSv~ zjNaZV=MN2qXXx!N03-7qQG&cI2;|w8K|Q$fHSAiqIN2s?@@H5WoFc=c zD=(AeF)5`6=}xccEHz5#ffuVxCxRE$yfXCLEa(s^1RQ-t#(ZdP_ls-ZQV{-!^-TEd zU91u(Rsxm~3KV+|+|?iuR`)$7tPWeF&zTb)x&Q2jmY6B(iH`@AcPvw9ztd-hi!m&F^Oz9bJUH8etCZ90UNptEDaKfQ z$jA0)HFa{5OczYFXN26kZ*%5=_Lf`>HPU8346oTAzdxP#hxcqbm# z6;CnZKvEl4e=)t4T#4bxScD+W)zCjO?sdFj!Wp%>*L%S3Q*!X(UV8j6!0)yLPrVn- zZf`(|VUV`9!O|P>v%CBwE3WWI*6U@)phZ$E6t5I)%&)$(Xx&5#I>Z?ulr0pRB+(MA zrk&)Z=5oIpVo#iVqIKV#8>UN};q?eqmn_R^n6o)a?Z(~}?EFW5tON|Tc(GXCD3MvCydXJ4Q3#_H}V!9CB{C#*ypw0wLJ(sdsgKzR(OT(%@9Z_s4xj}L6Al+EmX zKi-*L_jyYd!f%P6P*}=iOZ$uYLG4i!cozLbD{_rpM)C!SJjpisiE)h}jVbu5%$=8{qQX3Db;t0iE6 zK6-gli?-T#5=rd0{heHGxIb_qI=O(oCW8U^Y^L(&jqa*e;Ue8@L&2M6mZ7+4a#gG! z7$%BU)O6!dchSQW=}=EIX9 z;bd66ns*()&x5eUPQdnY72o}56jCS^B_!kLx~tIu!mj(_xG0mFIybkcZKOv56(~f(ueMn+6YOqu%0pI9df>Fz(9-Y>Bsp)eyk-1bGq1ouK7N%}p9AWDh!bI}*t zwVfKS!fT7JuW!6y0dfPdJwonra1RRS%Z;o0$iX-Ee@DBjo2m1#x>q7yI6t){7T20Rfb&+$OZqtrlmzmM?U4c_I!r_?R7kwjsNgmv4wEtbSclB+v@ z^hT;e%djvnP9uUN?Y!{)s6ANq!cfXAbN299cD+CBmwxQp58Up+Mn#wSELL7>&=XZx8KJ$S-vfI8(sAL=i34|TUNlvJzq{9b!`=F44qPhhK zRNN}q;qA-{)kTpKbWEuZ+# zH*?Noka^w6iEh;Rl2lraF2!FM`yC)RSs<5iPmAu#0@?=RuJu9LU z1vf({~*h3Ol@K`+340+tSs~Vw?=B_dNPUN zFnT+ctP5h~6gE`BIh@vPPi)A8y9{csLQinZUPL;MhyB zjW-R24sjbR=A(s(7qeBd10!n-8fk*6`+#f{Ff?tY;{NT!w;p*Y9LX)jx5+NDcRfEy z!42T;-r4={Wa)7NJg7qyCs)>evt@_3&$yWE{qp?${(SGCWVOflvp-$~URWYk>7^T# z!lc>5eC;>2b#0DobBeO*t2iY^wX$VX`i%SVha!)8KiuY7I;@9CL6T>4FZ*MtlO-or zfP}Q#wPewKFxwGLQrzq(&h|$PWvT5`i~UHuE)+zUGY|l9xvqcO6KPS`ly z0I{%ioSyef)o-de-Ecc(pWcQxkFT(*Dm`x0Rf^wITtD@X>BoJa{dBB8!+T}Z9&I*H z(gErDmA)7bq4qaPhgy6IzfO2iG4 zYnsU6gjS2yrigpvw&}osA1*KW*S^QOMJMr%c(Wrx&B|+o17Yiw|H6!6e=!y|RpkEl z*>bC2u-jg?Qpf04&w$mrWOElzAp;8Jvt5OdII{)8rmTkeRlG@xvCal zU$vf|*~2*huz$YRf}tcwQ9FNu>o>%x+CPz1IAyTqyJ=D9CY-|wdNilBs0ZktE-5o`=cscAaAD#;^g6)O zh6)yX<(Hdru&D+*_wY1szI#x#Pe?Qi6Anm)drIP9A(UL7iSy-d5%*dre>k%>jX&2tiPC8PXL=BDT9dp!QUU(&#YB-x3 zj+K}o~=rDq9Xz@49z4vQG##&oIlsU9y;502_mwd!6*09C{QH-%2A9@SC0(Omf#BA^sj9)G#hGi{D zvLl6-+!rpq9IY;nz{Ets$Hv-#R>ACS9M*3JBabZy>8vc}c{#RDfo>;^rEE7676RN@ zv|b%w1sZhB+_ZNL8W5w#C9!DqE16sxS1unKu|TV=hj%q(#hF!uw>#JKn994USfGeaU=q}vH#@`sn<~Lt>gSPA4&MOzrt4P=psCbMxC(23JGk0f9U&`Q zVk>m>4K=WLtb4&Y%|4ORb{S zo6-3u(DH27YJFNkz_(6)8B_@KBl~MgrpJut=!|lX`19|W6OhWoK+hf9xZ~IQw01Eh zA6CCOkTh_}9NlB7e#;8-6x(WFky4}6h%6(s+F~N5JftyLKK>K z2dMO|hXjU>m$j>Z{PfH4#gKo#Y;H!D?f4<$-&RiUF9>(G9;D$XUtv}3c6tg)BT3ysiUc0o`!6p(kELk~|@Zw$O zu)(zlZJA=m#!UhqA9=W>Fjnwm&wjGwBQLUi81%qF9K;=t37ZbAHdePO&6bc1+kCl; z@vea*Jyy*UFw&o~CoNeky$|l^9v=~+HQU(|p!jX;@`aLCQjo?>FH0aA2VOf+f?Y?D z83)+!eqrKMXB0ZG0V^agNDM_QjLQRDDd+sy2!wuyIFEN)f)DJ*R*uDK@Z>Y! zI8l}rQ4tu!=OD4Bmj$rQ>5OS`u< z2T^A#wAp_%(8RDg)k>QTjIu(~peyshs&K(w$*nHRHQc?~DcoIWtY)H^W_+L(Wk?__ z6Wc6-Cn4I@uwnwfy8OZ6VPWlL6<9?RJQOuv_Yb@#N&97J{m>7Qpm`iqZHl&GI%t2BfSn~ZOgrF9sI|OkI(urr8&CQ8nD}Tnjrz*LaQ?`R4 zOH^A_r~VQy98_(pAe8meNzfxQS3r-bKr%>6VHx6OkRao-)95g)Ik~P`2xvFu@BfHO zkA0Rp4{5P>I44v4)%d}f_wsKAhu^Md$6xH@0~ofyJ@k48;TN!TD1HDEY{&V&pCDTT zNgv3P8t-w=Fg8QDSX>kL`ovAWFL$I{(}1*OsQU&#==!-pX}Fc-L% zam+L*62SLWGc=K~1I?nIDqw6cmYEXebLAs7y;ioX+^oIzSkEKmfAt!67 zaoYyq(}UPcDT?5`s|TDaOfsoyDiDo5Q{#ZIL4B|asZfD3#uTUAcGmsvAODmDx%QDOyvCz@zLlR3caLH1t=En z=W2cTlw!34m*w>dBZYv(qB`66agL z8Jn=c9=zG^A3o~Rma(+CKsGzKZGjr!a!}=hNxTnh>_+8tD0AyboTO-EDIYQtNsH@G zqEBxd0`!%~c!%tw@g)byTSW(a^*MKW?Gug%ViWrIRcAuxA}r4L;t)K8Mhk|(4}Qm) zK=e;QY{74llA)96!a+Tl&0~|9pr)y4TEv zcdnMtFfuMR@4rhp$lSi2f1A2u^FnUq;*^E(qCs~_OX|Yd`|7O7!+o_gKphD~YxH}* z+#`w@*H((Pcz!*hEXx(SG{A9Z`@JP9Vt=ilGb7eyW_-0);z|8mN9cuEP2njdOx1~r zI?z9pByG$F|2g%%8fgDEPOR@%ipBNiU?IAa+`eQ0XCq})_uGI|=w$?anSGMP*O-dY z_CRH273V0{@$riJu_uEe)5S5ZR5hxJEV2OOx?jyc9e$Rz#_e08V{1fWu0rYsVzACL zPfTKK*p$w-E%Xrd%a<8F=mQDS)TpRpY2UybZb_-FRB)pSlGIrx$5^gT9SmrgdngwKc1q5BGMHsO(?mlnRg53-X0-AY zE~<2wJ&SbW^0Qi>&u?1%KN4%}`1yZXxO~U{O36q1q$5mpGO&Lamt&r*t`wLB)YiJ5 zp%5D@404#RS!7Cl9HW8_cbORay*?*^y?CV35`cqFhO>h{h5M~0b<6?s`mBjkqH~!# z$giK9(#;U!jlq7|Ogn${J{a=W);R!t?ub^et3V7jg;r8@P(wCtr%zb&@MTb{G8OK) zwtZ!PDfhVg4`jvGZI5gG+cwV>@XIl5PrNYxEhN&UYa$iaeYN-fi^#ns`-AtAu?vxr zX}9z#uWk6&i`3ztfo6d0{$Vp@LI{7O@>do5rS;Wc17GM@GK%+HqBw+iq4!+%I@H&@ zN1)0W_7%r*o+n-NE_j3`uuB+_zT^c_ZzV{afBl90M>Nb%@08I(ozD3l@Evf;1!wUL zNGn0$Id2|-%)Hk>3*e@xi{Q>rg5MyUjPqwc46JrNc|K*vhk&UvbB04j{)Gp9r>Z_h zWo6TIF({L_VYU^Gr`(OE?cAK+E{U|DDP_0ys};sTj__!C#>`|yOR1(6vwKC$B+&hi z-o^n}?^VH_8KBl1@`P#JRayVvdo4!d2Mi_*^j)jw_s)~X_~`(8{Mh6hBAU@%=# z;sS;IC>VyQf6Az#LwEV8IGg*7J6BFTT=RVb>Cvvvw6@*Rdk3Omv{A?f;^gqrj??Vu zk?%bdTcmr{+sJa_d58*KY=Rg9x+NV^6D30xZg}}8!*FeAsp%gifKZ400f9iRWqX)> zNWH+-M=Llh2P@@72b!OT;pYk*R%0r{-N9Si+1EG{$6KJ@T1mkx9FgN-ID<6%B$MQ%uzQrM5(U2<#8H>(h0y7yfS1afQC zz+eNCG7aZEy2d?L;G%nxIb!OR6k%aLR+W3L$FHKCr0~lL1=mY}R7FUTbI8O(9qP#! zK9;xRgZKM*yxiZyDzGP*agSV$`6b+N+5OLxC>s3&FTRAeRWj5iF0vdG<~>!QUVy~| z2dV;#udRyKlxY|jK}vg1<&2G$-kpq`jmAJ;oU7kveOH_dU_KP*s>qcjO}+8wPIVjR z)OD((NVxfXg@s8zNemIv?j=D;%)UiY9ShQizCIY?-2^Z9X@IKF~uapFbM;v=s z$+NCa4Vc$?Mn93f?@??LdB5~0^1gP$T~luW=ZH~>)_@A)-gIAIu(!2@(KEZ9P>$K+ zG`BQUHJt-6GtMBEV<%qO-hElLF9&h`G2t7X+>dLYgrWGFEU*Nidh1M3ppEkHWf=Tg zP8{M-c|=4^1S?V8=yq|wqw9RRBsU;R?@_KEPz=gxzTFzjKpL3d~^(P_;V&2V(|v; zXb>A>q9G3gZ#cRh0TCi=T&w>dBn9+r7w`xM<;-KA6rTW{H8P)x?2K~Ayn}%NVVz7X zf7=}2+1mOr-_ha^lx=}3({?~xrFA&q=Zxs%{~_v>kN=0rua5X1qD}@NzSV~)UVzsy z%qCP=6=U`^r!m4W^(_OV@$U%3~(P=Yg zL0^VNnpZ2&(W@5uzAOPy&12;yCRq0hYR$??`BRKnI_h4L5Bi)}wISo*Dzm3#X%!#p zn2|s)&a08u1JzK? z%M2xc%Q+i2%-?7^ELi)NT7&Yf-*$$VFh9_tZdh>I^#p}C7ug-C65Kfj*&%ehoUqJp z)NGLUd5y-(g!1-yjF##~IEEjk9%)1J4!EvHZ^I?05IJU;Mo(EOZ&Sy?EIWL?MuOmt zYE!paBSH5%i6hMA$Sq#iY-z;t`#;|!l%X5&} zW%MdA$~VMme3Kc&1|xxK8~KXxU4i5165#{S7occ9yOL4TNabr@4{Xh;0Wy+z5RN!g z6V#ri4u+hOlNUWyEhUc-c9N-d;(JRQYSUq2lctsw74?Tg45UQf7@TSB?Niv&&Lifw zWFq4)ho{elW~<|rGF-4tXZEmK+2K3vJiqRpEmo_xMtZM)2qC?cGsMPK_(NwpfLW@6 z5D4E~T=Fpc<$Qn`<;a;)Gold!YdMnZS}hoHiS)5D^kVDGj#32q zRj2u^sg^Ufj=1av*fkScCMJeY^g2y}_y8odX@BIS7AfqB0`kczk!lU=bYzX=t3S#@ zlx}YZ9ktoIhM81UO}vsB3345wQC3I)krX#JyW0{m5A!M;_Es`02%9Kx=jczaAtIt%nW+y)); zlsuygs$a=Wyct@;G7`DOz{M%sPMm_ZhTJAYyXNrYXdpbzXYci^Jebs*JeY;a4tFq( zqmH%+TbDRZ-YzsqeEaAl0o4yIw_Me?o7^sl`(%eS_ZhQ}qgPaB$Ia*xpSxq?(yX0tKj@;W-YK#qg)ofZePgg!E}f+X)O(=f>b$a&Dtks+$~2;!GgIZ4D!nnS{Ska znA{M|~ z3kZ&7Ledt(s6_(Mn<@z^vG=@2{=`Bd?~xW-eYN7_7)F#XI&a1@Q#r+tf2Uy1#qzjzwTr!(rz)gJuy%Tepe z%q<}&#+mP>F92?(Sc2H397L1uZ6wc%tAo=hiSgf;!|b}Y@|PDCPwhR8iS6@}{nYxk z*cd=EH&=g#m3w!>h^*85=KgN`;qME$Hck3zz#4eW(n;IgJ6Dtvz(+@xvT$^=472FV z8vR;9Zdjh~wtG>R6hC1Id2)Kh0QQnbshAG}Tq&^Kp#Btk?kX4rp{?42p-x!X_U@Ft zON2&)%+9qb##;z4or%UOss98L?F2XsjA+3ozHIDH;p=*LcHcZjO{YVropL}(x2F3s zt9L2M{@7_Sve?vhoM>%VoU-NJ@r~~qHnFMRXoPyW?m{tKDBn^3;9g52N399WyKvrm zx{v$rilNI)c^iHUq5dJZwVoR7)Y)TDf0WD=zZ2?1!I0kK!!9)C<>4tm<^i%!5PyD* zjD1Uq*!P2u`6qj@wUj--`&`YWgHs}wv59XRyHmxOesrganWLjS;TjjjF)uZi^qg-7 zJpQq7Uv0~NQ}OiF=0zKu0}W)@@MH1B1CZw|KY9c1pyGK%zOx9ucvv)JmDXgm=^=W; z;qib$dLj`t8cu}&xX}W-1zvPxa5pq&q+$?i{RojGd87E$zVsua^YxqGee#1w@(SV= zPbh}ymTV9ErekWd|KqyYWQ0~~;+s-rmW~TpouXHwP+O)(u<-3Hm$Yy<$|g#A@31wX zfy~H(Pvl&%;OHuzc-`M|FA3(pbcdCa9Vpn-zpUEZjb!co2cG+Qjdy z-41wim;ony*-r3%PSd`!r&W@!kmBrOJ$YD9k4V3Mz<&IcoDT{P#CUwH$r9uIH^yRi zqmL+>kwD=W1Fj=O*49BpBAsSsp`gF!me zbVP0Wr_Hq=#p+Wq#rF6IUB+%8U2LPT7U>SRHlSxOUhwF^+=c_~3|TE9$33yOE@02a z5y$z)xKx_Rc;L$DI;$ln|6&_M&!3_nG!qwL%e=J~EYWml&8JcK4zR(1>gaj_k~zZ<=&o=`E$=^T;B5$5rpWEyaC z5N3J++O=L6&UIFA7_U}6ykE7_yP*!23vt*d-*hnIs*$X!T{dDAN^0mtM z*Na3)YfqIMmDY6awL9;D_d7B_pU1fTW#$b)YKSwMbC+YPf|DaU%&Qz6183yHlR7or zRY(?3$l*)~(Zgn7#zmsDzl#WNWGYKQemgy+l9#3;7oHhSZNMTCpuZmm1)#&=hGi6hG+d zi_gz-we2d>Y!@7tV&M{3DAOSgW%AR|-vlbLx08*Pa;*44YMpRU6amJlZE*RSScK3I z{mYVhkMK^+G9+uMh`qJW&Ii0{7eLDjzaW3!%VMk}p%1HYD#zEoWxiGR!17=!1DF-{3GnDkO-Bg#nvlFdMAvInwTGG7bwvL-7`Pu>^z3ymu( z*bw2{HCQ1xJpN$sR$zP)$oEBuaKg=odPRWV3Yx!wsOEy0TmZ%)5=wIWd)OiyQx&mP zKXun#$UzEGAkw&*+d)psNsioBK;?XkgyJ+445Y*L`29f(roGG_37;RT-GUN1kT*(6 z&DI`?4Zlt;(z4N5%3CikyMEdHi2e~OHJ&3{y)e-RvJjn}`b#4lt?NJGh*hsJ?(H7< z5aZe8Dcac#bUuAG1~(P>=KKo-Q+Y}UmN`qhj=tb!a{ezowcpd#@%i=k^Zfzow`-Ag zA%k^xXlLBzf-Tf;zIPhuQV<{%m~$;gnAF@old6-}!K)ju;&eNEGctDJ+!!XpA-x22- zNvw9G^fC3HxPj0|Ta?m&(+JhO4aCVI`hK){4Y6%@rh4|?j}J#OP;XhD+tQd35_o}Krho49 zC2(-CwSQO@n10WR7bp3$tKiYse0)+=fS znT|u*=}Wy1lZI1+?L4f`v@L0>j>rd+Tw=5!lT8ig9lB* z6R={5_dTrhY{-d8Y=}1K_fJY9VcA?>{0&s zVpl}jGnhMXzE*i>4f>AQbLnn1!H%3An|i^vjdLNsfF@2HnX`EMSR~rg%I@FvYn_N+ z5~Rb`Mqt1+8LBo4(;&EDqQNfS#*&_AL5TeE3z}}I+KZr~33f)_UHS6>)rvb62bz2GZG|@#t1b@m5OBoE7k8hh(!DUiHs{EM$-TagJ(oh zzw$~L6aN_n13RiZ`}`kPAzZ-4nzEa9jbeLZ`K;PR<2=L;)5c{&dgOkmE|L%A{Y#g{x$VBuTIt)jBc0V4rUv8alm@_f_!LLXS%kB{vv1BV zD!OYpS+~1Oo;gXuJSwmo6dX%*sIU5pj5qsy9SB73Q*4o?)~#q4377jz?-Bp435W*> zaOLN^1gO}v#U&IdThV$5>+4<_-lbi$1pgxKZZ5B%CFBO6Z#&`E6>SOezo_Zbxne7N zy9&IrnB;cTdjZN5=D$>sLh#bO(+OW0+M8=jmJ#_y(2_nGLB1cyQp+gpKhk`j_Ce>nEgwe3$x5t(mG0`6J3?rMc&3nv3=Ghjz-K5DHZMZwmldtZ zEi?{K!n||Bc?*@$`6B{z3zC*EYfa2i7nk{2jq3Ii5DeV$#-x9Cukh=5t6+XCZw<4J z0z)G&=%(j;UG`bf1vIVutIpza9u>I?mhK*3d>*kT(I?w|U66%RqCUIZhEKd#a%I52 zg8F4$j3Z+KVX_}PEm2Tpu=QT*Nu;fij}edLQ12A{!s`egT{;stj{j7qGjYY1qS$84 z+0_YTPYf&KsWKE7>`e@zF^$k{AYOMwiIyIPSC)P571Fwo*XI?-iOOkef#hx_xHnF zqJdZ!{pQa*x+%3OzUDh?w2&FKV|>K2Avw8)yR@U=JmYb5aspVm=XphQa>i%NLCONM z*x-C)nMr}$@;H3CVsqFx@T1C)M1Zl=Yg9z6bvRSL@xdtJbhXtL8c$lwS&6?2%p1UE zhUCXb`X+~a8?X)T2ljx1hj$A@DJI&Fj4_2aVmt3ACdy3r2lh|Io!f1nYkWYNfrO}F zL_o$FowNFsKf)jDI+n;Y?IAxxUij{NH;lS~!9T^u#DTwj)Gv3vxd>o!A6do=r+b_r z`G4SE+khzr^EFl|^V1OFBZD{B-5Ma2Y277kaOVf^I~TS0eau<<5~QG9riK~^-pZVE z@-qT0f1i$zx3{jhuSfsF|NniIzN(Hp_I~^jkTU#`R3C_>sUL-M)`+E&*uWaMu#jZV z(_imtj6{-^8e;yE{Q8D{PknprBd!(efH-N}xk^(GGna9bY^U(ZgMZ^2{nvx>K<$$& zG?2##RZHBDG?AA2pqLf~3&{aw{0SQzj4Hg6X;is+E7H>r>pY2k>od~y^6lpxmF0z- zH)o{sxr> zsRxAv6Zq0?m1YbFNeXcOYnoP+@_#o?`*QZLXZO)zOAlXgcFy^HPFIV+eF7}6r7YlT%`K4lJ2K| z-iOHl#<0Su$tI*?r4Q&~9$jZ@)g-&AVZxFP3??_^SvX|D=S)Gb435%99D9$gsUkI1%gWrD1|y-(=iAjUxc+FIPb4VV{FaT)n;Hg*nvm{f z&QctQxc0(nQJrWJinaulTQef9Zh_@j~Lc=_1{vI0mVh zIUW^x5n*_}JE+C0G`NC|%F|?BZ=k?|=keUfJlMKlzQFXn>-bivyJmczceLZ>PTx3} z%*Ol-{U7*3Uw$1yy+o!7vb#ZHnCl?5(?~N_VFPSrOIGEv?>IuEuz!`9lEGcm{0KhV`4JAIz$A8MT7(=L&w3XjNbpD* zN=De+X9fxsrU~W#;EeSq6SG^*^FgtwwwrWz(08{!xQcPslA6&sdbO}?2LL)DrX762&^Nra}>)SXc0Q{pcoC%-UuOPZHWU-Xk2M_5-B7V&pns{3~Ce zN4p4xGY4M{3+j+lDH@EOvx&X|dh4t$_T;TC%8a18=?q8r%J;k_m(I&Jlbw);&L|@3 z$9hp~%ygg$y++uACkE>kz@btxJZV-VV`g?e4maJ3c>Lwomz`%iO=<0f0o5om)WKuz z=s}Zgi=z@pz!aPj-WADO#INU_VzG z?Yk%sLAk}6qW5WoH4V{+LG-pa?5s8p2MTfH;U~D7oR-SJkZHb%kko*sVB>ymmRl{t zEvDs8SV9GhHSNn$)6X_m(t)2+!5#2B7|YCB?u!ZbxFhdx_oJ>Yglt+dhh3Wnf9G4h z7g$#+SF2;nSFO)n%ZVFv|GumJeU|uJ5xMSRcUR$G9`JtOj(;EU_ipuO6L_;p_s}V3 zwaDC;6BtSQTAaS~yB!lKtCl_{N_y5R>clF$kUqZmh?_r99Mr|6ROax}r$5og|8YM>K?h?Db@u+?-C@Q@1Nr|lZUpSBFj>A^}xT#r?+gAleP7G0cu`PHl& z@TJKyH8;0GrMyzT;fLd7ZiC?2;Y(XWyw$EO+fTZIUAh}>aC`3;>*@*Ggb7;kA!+s5 zM6zVi>?5xoCNRY@35^d*5S>qrtShjdE-Q^vh<6$ueC?}i>U~| zUDJC*^Xs$zNj(QpuRp1Gc7Nt7&2Z*Xen-ag@=~=z*YHhCBfnY$@27v+(!r>vol}dB ze@ELZQtq|(uY&5ImD)1XpBYxZ3~2h#IBM9u`Fq#?AkIh_wLYun9bMfYZ?b%8>H6gb z#qGsnciFlE_&9Kt9+k*WzsP#as5pYITNn%O?k>SCxLeTR?oNWcL*q_x2rdck7Tn!E zXmEFThC6wl_g(Az?)^1us;6pp?Q`nv(_Ph7Q~7Ps$Er80DwldQGRoo;bNSpcH-qcL zoZf179qgRPWn6EMXGfoRr5ox1WZoTJxa%f=rl2b4;Y#p;IK2xP0Q~ zyl?V;*_>ZM11K5t1PF2R&O^LpTIlht!%`FlNM^;ZB;SV>xiHWAgq4~cXy<1poYrZ`dQ^_rPo()kr+`EF~aJ@g0=AH>7d0%*l%c zm1|B*@xD-uMpn(rig&y*ws&^6J+(*0lban@(`ez**KY@s-oVB47#kwR8~nbD$BCAvlYX>uHS%HI{L#BmBHA|x(B-*9sji4U#w}AYGR$YA-X5@v2 zveke=`ur@bGq z9A=Vg!1r`L9b;gU4FjmU+M3r_hlerX)LMLuhq)g_PVffIbWQU&x;uqDa@2-e6^}{A z9u?abdC1Z#uhxln1tXoubnRzJj*S5sY~2O%z$S`okIa!;+$NWITCMrU#lxr=%W&;4 zDl%Od*K?_5SX>(0HNlok*ylb+A}FuY9(d(9)p#2(1|u*Lqkq`L9j3TMJ=nzCq_ag` z&BGxh&IM_0F@eA0z@zyQUr`s-*EyOQ+eVDMkZ~i*`AV=JRSPL{k zT&(61Pu-$nM9>M77&5F5yI;`wT-R8W z@ms)CNau7EB`14JG`kM=it)9}9Rt4>Yumx7s=grr=vv3Ue!XgP)=6c+&ELSwzw)FS zO?GVad2ePu9^K)-lHZ6F|1)rAkKHt2!s)asZ$#7--5Ii4PzP!6!ES$&ElMs>_W)sD zUXQq~;Za`9ux5su_bE8oHbh1sK%3l?7@EO(l=l0_Exw^o;+_Ax#oI8%L6Ln=L>qE2 zJO~iiC=3s_o2SRe^0_LYPK~e*?WPe>wKC0QWUb=n8Q&r@5DAop{SfBMI?XzQ(3I78Quz#j6dUt(x+Dh; zkuZg9TrNH@f!CU}z-KEH=9V;eAfnY4^-$G7@l1+|1rZeA3$3oUl-oogeUiW_JH;1$#(-{#bj(r~n_Z0wl zHp6>we62*w{)Z&?kYP(JE$U9#54fE_jI146{tdic);isiGAyH$lFr*X(cv<<6Aqx1va8pp?Gn&^oo#?blmcK!iha+p^ zb!@4*34hIUoY?9n?Ab*n-~NF}P6=qa&!R&z-3tuwt-4_fn%_D_4JBLj3iFPI_&I9Q zody#Xu@%i;7?WkCfD49peI2jIYKbNW)bVHL;jD_}{T%zK^Lbh~T-?B?zoM`swM!4e zX@!do!sYrItTWwy`*aW*U2s$56Vl+KqG6feLT!b3_8lCwwA)augnjGpB2n?3rfagY)zJ1s>PkAM=nm|7OTYu1H%y<1e=}_VF_M zxk*70-z_i2JhO5TOQ>uW0SKJTq_7B7nk%u=B=iid(v)O;LQUntK_Rzxpezr&oZ`YxN|#wY9N^Y zHk5SXb(Idx%zpNcdmAPomEh=&j4Xzoj#V@A@M1A%C=$dYbc#C=*S#QOc_a)*qe5lE zgLuN!DNd`Xzyt_VB&PO^b3m@A(ypRYk;O7oUoyoz_M&!$%In|ea=u@d6Q?Ci`Lgia z9@jso?+cgT>LiVa=KO3S6|m=I;z|Wos0-AW(Hqi2w;oEWX2|5|-|A zn8kpa1++@1#~~%eceLbov=q&<>nDDR`wTd{^)+JQ@DZLdrCs`q1 z-GCd8f=J#>OcI5u1Icia#9v?isO`Tip{8x5;>9l8fhx}IZ>$Cg*81hzRT!@ZD?>(+ z({4&SGK3R!zo=WSwkcS@Y}gd5mK)sEw9GHOy%0yP-f8}=YC3m6YVb%@I@4s9Df!(5 zW1-##T?#}sGb0GC(+jQh3Aq~bjFjDbn-^=e$y0hQoR4tuy_|QcSl%fSCu*oDG1OvS zEXcKcFy`Nkxzv}x8P**w_zR2V8l4r+!kidCw9Y?={Ps8aa}OD=NU=>*UZ-LPN0q9` zSz>O}G|3QD9C3`GiT=H%1%6 zI`FlPof->BqW^rpLmg(oN_8pcB;22T&z-P#ZrRn>>( z!ht*bXL5}Q$qPnD*HQE9HXDexembV>Tl3OVZ;5Qcz(I^IO^?#2c^SuiXwLdGS+jVM z#~ZMCy?^uf!^zA@U1r6Fx;r=Dw}zX@uWS7*P+i5x`Z-2N=n@+sb`BsOT|&Ge(%3P5 z?XGn9jW&)tnF}L9d=&Hft1vanM!qL!{FePbw4B_QzZ< z_F%bB%-7K1b>X8K)B4?xddh2Ywz3f~t&;#DT!L76aBp(?38$P!Tp$)S1wrr*exj2R zv=Ryh$v}jMP8DLuw2~Lgt$5dvOTO$GQI+IE?18fv^;+l~Vuw1}EK=N|($H-&0bLGl zlB3J7W$ILUaWCJdgJ(*}eH1RVeWXl+lF(kLti6NGlT{o<+SOX{$+`iZf4V+#{DegBecws!EAr?CBY z%!)^jzA{QsSd6<)?c}lnMfk;Dr}XjC+$1p0e~HClo#%vmAowEjp`FQ!J@En*0@hTZ z$*bd&nolf3^qcWur$RGLF7=y#%K_-~3yh9X^IYNl2S|(o&p40{eG8%@;48>%%o=oW<0Djjavj;4*FGn8yIcr>6bYNL8W46=z;vvOo(6rwClq>O!T;p`6OcYrBIUX(!z z&0A`eeu|Lu?~l=Y08^fCs4?W&`rBd&tv!kjWJ*pmos#%?25!yi0CQgZiWe?heAh^C zQKGAfG96J}=Q?_-kS{~eDWo-g>?3VE_R(drfF14hUmS63*P)sGY~6sVa0;A?`0q+M zv^m596yNTKobKA186l@aS24jBVh!913Tp_roeSJ6%RO2F`hXFGB_i^xq1#@9V!Ys0 zeI16QcT)@5=Gcqfbi3A!@bQ$hYt<(fR@4-*z-jU<;^C+69sd#3u99g>3t1;-8jFIj z(H9aOOY48t*4FgK)J~=Apk>m!`pt^)c4N#J-{n74o!I`Ho-H+PDA-AgzjJdahtf&0 z-Xw1aKDDK0&{ZBvT15ZXr^yDWCzXQH-wc($)v6CN ziuU#;K1|V5{U)}UnZN9*fuVs2VZxSRG zMG|XuNpF)XP+0u?V8V;^`J~T5+V#mh{}7(gY4F<=IrC4v;D#`HNnO{teO<_{C5;L( zHQ>mI|NG`MspkDsq6yrAWn3+Wohfqk$fO8&`5k=s&1aa@^%5~m2 z_`~$i2a7FqO;TR0^sE6ypFm1ibEDqj29|{+j1`U71^6$D zmXIyog-kn8)1^b>^H}#j9~o*-LPI*)fG9ZyFBWX>C9{@iaG681DyhrQj${7qB-?SN z{Gqjrq*;=oJ*v6gVzcrPJdvFStLYpa4cId<)%Ux$+^Xc3la>S4pMvhIxCe75TIt$Z zepg4IQW>+Nr6AnjMrh)W1$Ov`!rY@dNiy1u1q-=IGDhp*orY5BdTlDy7+nAnxB(p^ z#TK=Onmpa!&dNj^2-wF|nV9}OQROQkWZ$7QGHH4jN!~hg^WKq!heCHTJtpsV(finE z>-GJ1ofW-UU^ILL@n&r{9L0WJP_e#rI|mASzb==iwKE}ua>fEh-j0^y4zCaSuCQNQ zzNuX{>2KFkdqeF%7c`eUl%@kii4s0crLWj7Oi$bAHwQGrkqQwLf|11ANy8!9xsrfy zhjq5m-zr?ZqN{EHOET&}VG2$DD&qBbCkt^sP;=t$&vy9;orh*;e4#1@_n!rSBobQwvIgmP|Ay@x77P0`dCT&13*lEAfNrCv)uK z?jt%w8DsM2$AH9xUbtjIJmI|E+vA;!dlGFHh&SjguKuxJ0{WaW2@&S}Ybx)BHygWa01iTp>J}op3Mu%! zbLgH=L=$=@&w{kKC`@8xdQh!uB^tw}RSZcB8eHKQ+d*U26fGY|kRU%!_I|e5W=)&b zp>`Vh*HpVG#txRJXlde)Zr z1rvR7bVACi6L8QL<}e9X`^+gycDjwt%j`;%Hin0Yhk(go53%NagaHhhW*Hm5p{D zr2=|H0?sEaBP>gmDb_mwTa6w5$wsyq`8@=-VM;SIYCC>fnxY^dj5>Dk#$Jn~J<3$5 zi;X8s7NBR={7i1tKu9@&imaz2B6GL3m;WxC>-ruPCK6;WDRi&iMXUiw&r`3z^`+90 zYY|~8^n9w+0CfZc{S|G3Yygm$=mU`6N#8c`?s#(bipSnN^wz6%t;WV$lV1K#U>4Tu zakgu=!B``jzh%=u7C!tc1XbJPM0AFyDJwvD0kKzF9%=7}>wAG2L;Sg^UVi9&8Ta(#j{y4E+AYyPiQj9OFJgsfYNjPRyyeYy@YFhf5N)7Ld%|ZCh-6-lFTlLA89ETCOHTbW2%2bp8SdT z_ndBw*P}P!$CFqiOD?}x6oq?X#^L>j211{P2SeE6j%7*4gBesqumljdds9z#BXHxL zphF|ObVIy~oa^F5xP&Y$wj91(Tc;XL%@66t@w;t!w*LSX$-waC{5gLA52bOAuUy|G%fg=O^}fXb%#TH*aiIBsp!#!A z)mq#1zLKNf)ZKfrT?{xt?YAj(1@vEg{wU5Ji*Wcat0ts4<@`V3Xv(M&uyAWAHwn`M z)}*e^{zE5DNg|qIecfeo#=R$t^ZrWAj}R}l?}V^+Yf6IS&>VqY(l{pTjx@$#uGt(? zHG{ko-3S2sMjO@hJE())(Uo8Fxh_wg{|j~BWK^}j-Ag9~;)Z|ky3@o^Gd0wUc1Ja} zj&>YvhmAEZ6Yj?F^|Nu#JRGBgq2^ql;7C38Z|MK>S#876k{4S(T%m`zqX3QFrS=>6I)Uud(EO06l}I49f|D zYb!Mg@+od!Gs&_KdXt+Qb@*!4@47)d=MuzWs_k58XS@VD3klfG1**z+VeZ6!QqOcN4)*=aJ;onO5X#e7GQmRrNU|D)-lZZ{7VCF%@6+S)(}@9z8V|?Wawz_L^dntZ z499@eXaOGPb8GW5GWcd^qDH@Y;k0vsQIHEC`>Qit&e(nu*>mpkCXeEwK+r8>xLmW- zw~`P&F4*~WsD&~K(ZAr0Cclwb)qni}qx_yfJ2zTXuWnt-43w;v{d%%?nlooMwcU_B z`zD2{bK0LsmlcYbuAWdMD;|-Y3W8{10{6tV`YVS#Sdf@`WqB7;(?;ybYoA7TU{|KK$5yr6J{f*X@cAus$Dt ze{%O2`g{|h_~s>zo4@WjV&ZOZM*yr>R31)&*K9KDULK%u)x$5)HmDyfz`fjX%^LxG zlYm$ystpdg26Z|O1vl2w9!`8b2=ZD7Q*A#Xhqi&bzaskfDkc@|H!@wz$*IC>;mOmS zqTVY4$mAW%=-7u;tC&!Jzh>2Wo|FTLa2P5R+TR=0T!Y@l4k86o{j}?oCfVa-)C6gB zmrLK~Kr?XILJ4XoC})Sl-X+n2@#;%~@Jfw-yeU%D zu87Cyid~Bag`+CE&0yhPg2JN|ZJvsJwBMQ}-X0dUbz&g%KsdJ>Wwk$_osAiG_HzMFcbd>*)N!Vb}_*;v&v}(f+)BX zP&qfZ`LD4siQBB*98cK%pCwHd!zVPWlzdm&cr6K`Q<{Qp5-5ZBEcbAaaL0weQn-0yGn^Vphmk!Ol z7fi65arXE6tkDo4=LM34^=s0ZLTkW$X`nAXR1{k z@vbV3-MkHTe(%E}Bcz#Pd(u@#7+f=%L4!W9CB(aks6zaIjU*=xh>8G=(INNXK>tjl z)qer!iug88K5kOEB_}E}CY9HGDOo1qtp^~@-y~bEL4S4oKm`XX0?h=Aoa0p}?Lb}9jR*w9WQr-iE>J!S zP*6N38H)@_z4>e6%65LzN4WIR$G8OJ1&xypWgDb3?k<&Xve3d=wP z{m!fbQ|m4F=Ko^sqC)1?;Co9~8G6RFC;@*XWMn=f@&zhf3p%1Y^Bs$11_*F2kV5A^0(#N4f zb#EO2=8;*7{EYdB(SS=1i2f)2BF3D zpR0#;L|*RvX*ZMnTquL3gv%UAMCFSiswreKI$~NNn#JU6U+Z8&!xWf+(+Crw$Q(!& zo!ae4!vr}d#U$33Vuv7e@Bb@jirRhDB4ivg;LGMBE0lF<8i*be7m(P!9z&EyflQiY zm0t;F$CY37+mj z4;A{YSqO@9=iVZRNlavjtGm%uEj79w=CW?OZLD)IF@MA5ik)1BZh8tu+)Ol8KFmJ{ zN#Z}QnKf5k9oGfGXj_Bi1HPOrPFJsM(BBTBL0|^&nTg1rE6GgufkMFZf+C{+fcVzO z`#J3QkY6aqfZ&)2ySwnc1NRIt?D|Q*1U!1Ut8bTBNg(>c z>FBzfAvkuKN`8(IxH6x?#82t<$P^2W3*ytcr3u*U1qQyoq%xWy#2D75L9m80A8o^$ zFhS}iMBDd8rhGX2PzzIKujMEj#6+HTT`i5l)Pt6CX?@$I^M1FHNMo!BUBO~g2wH^R zA)XG|RZt^m{oIQ!C<-YG9`0(QHV~MJ+{TF877&rOH(z=z86m?IbYbf7e@ec$K9{4GxGBIGi z;dm65(g{g--s`*BA~?%aRtCy(OD7h@U(5yPC%mN3$|i4mKEA)Mei9J|Q|YG?WejX~T~m^L&Sw`sdnZpF}oiN+SQ zi9VFGL52NFMT8sF#d5LRy@4Ihe+hR+>=^m3xLA{!VX(aq%>iOL?Kfi9g`%T&ZFRC1 zp^HY?udj2o?n+6if%&XCj|o8VH^O{p(uL{+7ck)=?DOciq(U??W}jGKi1Rt8P);1u z^LOS-MQ<*l>`F>rM#V_X2_vVmHc3(I ze?k;gfE9N(TtCbW(}PZgaKUC_5NQDwmUno0Mm&w1?@nH4kWVt*2;^juOm~G72sJZb zDK0wVAJP#B1qk*tuYr~07OWh%RQj3Db@+$ifZX5@4#;nxHL;%|v&F&UJPj7-X|OmS zIyBeilQmt>j8TeqF7{rf)Q|Ep@NPcc8_szS=p-Jn3M0r8 zb%Q)PbNiQ`mb#WLg{i6%<^9FU@9QUg$$@(pjrQ6z#Jn!N((OtBj{UuAexj$2NFV@; z(@chROPob1^%P==>u{^yC^dQs(hyhprBT0*K7c5z_t-Y$zN-wy z3yOb#=}(fnJSg+@dAv4GyVx-!oW?B7voL?Mvx6%2-q@`{jL|H#vO zIz0Js`98z2PWg3Dt)vhrVuch}QYs%?DHZtzb~b0)=W4Y9JwZ`0UH`0``9Id3_#f+L zf~`CHAL~+0_|C#X)G{M&iKq^<j`yC9DVTVv>Qxui+Qnz3L*~^l==}$UtD_@^f9U z8FJZLVd+aLIlI=c`aK5fUv#Hns5;vQJ{L9`q%vO7#;Xmygd3p<1gpIyX`hFlK;23O zsXXTQuJ_`6DDf~?KGzUA+Swbh4(vQO4L6!XjTa9HS;}&*4uL=VunB1mfw^-1sDuQ8 z37%be_q+#8Hx+g_Y>(d~=pW<`3A%+xUK~cjazPIHzN8sqT-_av^!RXlab6D`Kdy!e zM8w#1kb8x2`U&d5_!Nsf&aX;KfbR=}g}ob>z;kI0xd-B#zTk8R38e6fQ9up+VpY^l)IZEsG&a?5fXPBvrKrlVK;4Z7}!3$t{$yTnBFeKPk%*DW7tr-SE8+)&`r zyOL1G5)ilDTu)Qd?J9XckORE1#D7_$pvC{molbT5BkJ-Dehh5)2VLn<2{~)IqGxPF zlKVYk8m51vU!}XWW;G}ZxY|=S^B8bTnrpvyFk2PudHCazH0>8#V?98a8Nz| zWXn(8s6;_?jjemoyN7g^DmpCSV}1AU=OpW-^1SqUkhY zU|lfqW??(bA>Ir}d#ak&>jt4V)~M1@+W+nG^`X_OKeHbv5x{zbAh<@b^Exd&xJcjl0|60;l88zG`Kbwy2T~mh2zqj17(xq;*N2u$c%IjUOgLFwQduTp^_LK+ z5AJG2v3&Lx-1pCtw#gBx?z_nM**}+~)k~!_?8R5Z;KI;}p4<+-1Goe8VgQwEPf2yMMDRb@b zbPP)`7<6jx+6a;9hqI{ToN|l(KbM7>uPbvm2mUw;OK5C84E$ehvm153nS)YAAo0@b z`5~(jM+#H6Si!84{bMz)CJgFB8W9g9dQ*k~Br_Bc%!VFPjp+o52{OPCneWd6lY9*( zdFI5UwtVv+$((IJ-`ZiHpPoFK`Wh5k0l)Vg!^MhW#ha;HuDLns%p*`|WNzkh`(DPx zuc}tNRbeBy+>Lh|1$~zzenU=puH$hVd)0~1MeS19eS*Raznm=3jp;&o1Ab-vDbGd# zicM}QuE+)=vW=|-4_`(Qb|C;|e+d2d8&OY;=FYjlC$W z{H@eoW};4222Dc^@uPfG#`bVfkZ5xRj_6P_U=nh^2C{k^_9F#kxBiC?ZdWsi9AAh$ zNr*j&&1lnhMD71p%3BPxNA6C-Am4bW0>B&(B09Rpusgs)Kv)y}b6W1EV-d(qC_rx* zf34Q5q$Du$o=h-je3!x&70j7h;_94Sn@0py`0B~nSO@>c)ZW(4v(=rG z!mPR5i<^Jfh=b9*CWx1|Ohz+pqv_@D%=OJvV1p*H!f;PoR}e?mt9i-I=&aYQfM-N5 zJ~M>OBIh9d?x$b{t3+ZXb!kEOFMuJnVZ(T~Y03SCgf_cC*0qSgHCw!hc2pA1fl7Ay z`|lUhFDpCl2Cf2f-rqT9(*2QTRcmXRbQCQ?F|=QBD++lAVQ1#a#i$ND?;Ap$R2Yc17F-f~|ah5^D>!pDJa zD2b+yeCmznk3hVKQgxJ zw6$7al@*VPuFDp0G^Q)CEjIfFDmRHO7^)FV#@Ay!&2|5rC@v8G>%C45Hg41Uwsj7b zEH073K|gu55VLAzD!D@}c>@%on)&-a`4puKqg6)ra3UUN{g+ysC{TVjlR3q1yWt}~ zVXmKCbs+aqP=0ubP^I$`V=tOarSr;9-GLVSmOh>OZ5u#L_7u^ZHRlWQN^M|5B19;v zazOtx|B1QMG96;-BzcCZOzn<8a{eRUewsYZl~g{2jlH9OWlLYAAo_9A6jGs5bZy?f z+s(%jpP%~LR~;X(qyX@5yxq8(b>}qJFulm<>2mSpsIEWGf2q*t{~5-MQ<(Tzpc=p> z)QM8{$J|VQH&8X#*N}dq>gTM9`CdBsd^x*Pob1LrvJ818`tA&tOjs=&5ChedHCq}5144j?i=-AkpDKtNQUhOlMfMZOA6gy}}h7?_s9+tQHKR9Wt65a=_C#RNMuqP)La_z}> zSSD4vKan~CShll3VTD3XHnu<|JAl1DM&4JI1goO6647kj8r2$S4t3~f_`x#c$kGo-tIw{!TohIwtcsXch zSRd%U*4A1b=A;};5}o3KgzmkNEG6U}T5LMJxE+ zi(i9$klA(IE;hB3F1z5yhg+b9yF@PHd}U%2e!^+e3=CUY5j{O(qe`VTW<}4jI<+n9 zdRx6r05ccXF6`G=bX7M@&vmHM{x^rFi%VPnpeGY)&uu%hCf6{u_4}Chd*aD%6gK}@ zOIHniuX6nU(t+hS1z$(rFRp=peTc%3F~Zs@F<7KIA3t-F`*fpSaxnW(D(Ea}OwGU@ zY!)CHzxo9m-KZ4~_7HZ|a-$i0{wAH^wZIR|1aQ$Rcy+RVMxS?Y$5iIr(h3igsVB0- zI{1Bd`1>C7DmXyl_-QAZ#*Eku(yU@XhUAYDUDxE&x3@6q9v8<0E7yY+L0aa$p{2;T z)EK8$&t;UKds4upJJR+FnMY03l#AopLGp=N4nNIg7-oa$LzN`29^^`i6jX+l7UO^(g^9*;h^x zDqSlP<8i4UsH_@H<#G5NyCgr6HZ?tmDwPXinUF~vyh1}K$M|0$&HgOAdX_SrDJb6d zAc`yng1!^rrV!S!)lFNH>S$Z>Y{H#i6ajtmIN?KRn6@EmPIyaq!wg&;RrG&JO;M1m zrLESu9MRNkYi#rtiCMxf~ag5VDQQCjY|?uQ!TC9gpFk%8JtsOaxGe34&EZ+ z51!Cs$kk=puYGfxP~j-GoHkr{!zXV#Zem(Q*uM#Em9t8N?me^t^dCQgQDnEiAdE>hWu?Bv?jop{`~ ztX@F`&@phpx@_sZXmE~prbOLV;7l9+Ro{SU@CgG{EYeiX!xRE`7#>4oP-`C9pMC2n z%Ryt8s3nU>)#fcEkG?m~0-f$D|FU_}r1Rl)EjK*8lg4Cvr@T~i4|OdIk2MJ+nZdVO z>NX_O=O9wu6qq)>#J^u?NY(2E+?zVp-G{OtLU}L13&~Ddh%Zo8=ayn8p!k*T zu0YicCqHR%-zgD_=(%nkq%}musJ2}=ZY}ZEf9rb}uJ(K0$PT|LL&E#+Kbfqd)NUigv zmjgcmG~uTxVQ?Vq@)A}C$FnZJhpt5lIO`O`EK`-g_U4R{rw_oBvO# z|K0zVYW;61G*y=q*^0=;N{bu-_B6BwOJU~|+q<0i{_yo?w6lNx^*zM#D`B8lv{@lG zBN)%fz{E>$nJq_8|J!VImdieA>#3_&%8url_h&y4*1@8(DUKW~W6R&qx4yZoFe2<_ zWtGCHT$PcK$;{XKCJL6(q_d*wec@{Q+duC+YLT_;xb35fZ`S&Pjb`wdttc@fu|+s-zP0zFYBp&_W|D1COZ?@jlD%s}`W4T7^X>F+AFFn6HiMTdsmAYk{*gup` zm@UfS@=o1nCJmS(dPot^T>jYhKWwg6g+>{~UeV7tVVBAw!d3IdHrdD?!UlV-HzIw2 zz#w)RHU1hL@OhsBhdUBEDioJY3ifeQA{yjHranBm!QP-uBao;4H9@R)di!UITHDQZ z0Wf%Y0UZsmVZB5WhPy&6Rygnp3*Mf6i)J(WxE1^1Bly+1!(0sPbql|;d5BQH4|axl zYOOnU>!e@2$A+O0JuI+(hrywJd_D+)ol<7tnl={A2PVvHy0`UD&iaHa{&LWey3|II z3O-DW(0%gsR0SK(1#RUNq{gVOR5itf&3lJQ_oH~h(OE)_Vu50D2RP^(Uy8N zejZEaRn}s<+ii_{X@i@RyaflZ^^MYbM8p$@95C1|T6?+QiX{447XE_Pp7A9nEwne8 z{y-NNy0N%;iY-~8y0w6BVXJ-}^EtYpr)Nz_KTg~w1D7RYFr3}Gj#~INro!TOojL|~ z90h5g#hCh1;|t21Hv^Zb33C2~NzrVkm0I05f2J@;2UDt#q!NPK-jp4&Dy5K!X7F|_ z9MykT-yJ>a?7{xu_`~z^lH4nDFBNz07I^VvH@VD{WB9~m-3`457QRovp|;m9OSZ&j z(dE4(^Hk03*{rAcvo$`s5M;s*1;KfQAmrha3f@jNNA8RTD5VhQv3XAKLolRpq$e^f zgE5-E!$%FFBhka_v(1Cl{|kWhiiEbe;(?a%`p}^T&jIZ}4Sb8b8~_64P(I-ce!X#r zx0mAU?vJ&2Z>5=bo1}HJgwU zIsg0rB+5)T@nW^(eLs1bnEzFGDpGZ;ltWPlx9!sS162y8s9)#cC%i5mDHqr>D6p0P z>_49eObA4O>xW*wB3alQ_51nvs>H-Z1)9`D7(6I@OT;q6a|c$DPtE|}3L#D!!?Ix- zRzd4S@W?l5CSxxG&r5`xzE0g>pzFqG6ra18yO>#{}mx z?Vqk4IO=O{C9Xt|r+Nzy$dx+Rv#84$wy{Taem9VBG{Zz4m zCW@$qS4HY|C#yDrc$CUM0V2h+B*_B5_byp+)-Mr$Ct%8N;&gqGOmq`6(`U4 zRVpAoa;MW{@<(LZahtT+(2)vOY;ZCy6@Sodu8S9eF}GIhW@Wv;liMaC_45urmZ&J)$Qs|Y2g6Iiv%2ib94o_Q9V*wdzh$#wO#hbqQ8<$ShZ2ECv z@5o;68^DwsWdVauI^zx$?F_Pdih@yJ-(DagIAOFQjmg>XDoz;Kn+|gkAY?MORG>F8 zBm`cGM8zOS{jg){WfDy z;l@^ssNR(~$B@0m$+AL>A;|CmnL6|5ZO^T}@*kr4kFG&hJ{;Yj5T67kxwqfU?K9tkoTH?XxTc zy#v_-dkq$(z24UG4%ODeUa}&t9DRxA4^xC4V&pD6em)ewta8_N4ZbB##$TdxO9tZP z4c|tw;ZK;QzH}=`WR^|OPkznUGutjT$b=;4PfJt7@~>gAJ$?=9$B#?EF_OS=gy#FDV$$N`a_z7MTe_N49J3&tBWVmnvc>` z!X44%6(p(o`+oOXm7IOGpzjeUKw;ezL;Q$hCFvG3Qd7EAQ`c|7`ymP|{LbU^XH{Ic zukiDsu$#&q=F!QarX+_^l;2GF4YUEc0Bjk1h>sk|qx8*I+5mfBd=Zc zW`WNyLB3j|9Tr$|jgL$X)r(62&l#}10ZASjN5rX2jg_qC=m2ZVLg9qQy`WYJnJ6F6 z#>6M1hQ+-xD~3A)L-VvMfn%r^fm0aD9*uUGKlO-c@XT)|gTI$YtrC6w`ls|YqLO5X zP`^zt#9gr^1d!qRVHSKnTIh7#qggVSQsYD0 z_xJh!Gkayq&di!;t@W(go6yiGT9y7*o1Wo)9-Ez-cM0v$boHV5 zr1bMP;-B=Uv-`cBANJ3MqKegCB)!$XL_g&GFj(BMkUE;(*>1+{WoC!5I(64!hGF`~ zGc@K|4QEc>*L`yAtZuHVlgxYfMN#+g$)|VUAudML>H0Br2x>ij!~wlGeQ@X)O5nLA zZ^xNur;vkv_Yhfv8Yk8c=$s)56tL?a9LJ{UK1s@cWy#CYe7987kxHz?e%a)c&kN|T zUA{(&Rvu2qCGE0wd!{l?*vvrRjk`^~tIBzzLxVdvsVp7{r0sbqe3g9vS|oSOyAz5u z72FbvJV#Z#3p6u!V^XQELmDzCu8Hc@r3#E&r@XsGb3m&8k?^xC(!Fzu=`KDpJg>~F zi(2^Vi&^!f+|QD?w|*sBYcU#JZEjx-^RJWpV0t>Tj43)Z(=lDC=3s~>-`%?ClnXB& z%wHBiDxsLryI*_8@cOYWK1o~yf&J;Dd->KWM@m)|N5VGVznoO08Qc{GF@FT=ZSImz zKhHmT1>0y`l~jh-sWQMX%d9u@=^k2cdgUj&Xychh=z&+V;q< z?(k~(mi6o*{j9_DkmjR;&1>G4^O^sJVdv0oab)@`FOGN$id+fnUvja(nHjJA0mri84zh@3?eFvRTnILS7 z3=^2vC9>bLG3PiVk((JJm3mh- z4tGC)T07J#Q99^yUa%*LddS6o+4A7DL(J>D&>6Qph4+N6JEc3nHs84G?HR$u947o} zY|r8R!S`j?md@O@D#+2KjyS*333Wx|ra@Samg4xP_Sx}swl(GzvwyuZRY4eL>!oE$T`qrsSax|bVo$Q<)XhBt$7 z6)Sh|!N;M-XSG*SRRj}|Dp^kiyVSX5N7yeV5V-UYUT(I_O0en?S+E;UQkR6LSZ?7( z>!xHLIfMU9E6^&!3T_mmvS`?9}ZZb?h&!O!cJnpo_KHGK%}LQxdENuWgSmnm&mZk+(H|zB zldD^mx2=C#Z_St_Xs}OX=dPCbXB4gI%wqb zzE))C#|!-2iZ#U_3iG;mix|}w)L#s3l|MfHnM>*gV^)IzM^n#??g5k{z+*z}Qtg?jhzTi3p>x!qW|oTt{DMRNf6Mhze3B2;Dit zwflvN_Juo-&(w(MKbVYqw)bg_N>?uI2=qlQWZ1+u3<<7`)qa z_qHxN{GsvXGWYqnke4A#sHw*5$N5`TJs+w~PuGeJy%OxckWk-r&n)hU;nA0sg+-On zPIZkGu7p>WN}5I*GP;-EiXK+v9U4A3%AuuLQ|cCbMD)C0TgjH4>%;njfYo-zBlQ(W zw$4B9yMBwETcM_uHTa@J!VUTNRU)nRR$J!HFI8|x@weh=nC)#&CGF7{Z+82(;f{5@ zniODtrtD>9u-Qe+_Wq18z5CaWie9jDJ*p3#xti3>C8PMdi};xL4#W4}Y-yWgp1jj4 zNmu9NOon^+WSr^XcpH307DbZRnYv5RwZqOU(oERd6ec?BTT4<)olMcy*&WP_vNz`228Jf2^3(+HM9uaccP~HcFQ~qPYsh*^iIV(QT1`)NpqR%V8 zu;wMzi+ril_{f^mCg;p&-#^}T?T(%`M$aum+ZdaSexMu?fN0%8C zo~g(eGiBX=X7fEDewr~O2>&f7%*>3muKLhT&$0Q*U^l0nb5y;$=u70Q)ZGUm@)&uu z1lovRLXqc62wPjx5E+8jYc0^-zCk99L7N+7 zrOg#+6H6dLwG%WDi8O=#IOVk|MF`xS?N0TWLwe3ZTVAM{#;qA>s}Ct@nhhpKOETCz>MR9BxjbRBnKL-&|3_^_eBh6yLmF373$hFTO4M4w;v;!SaR zi|U>YU_%qbIJ-3tYhN!r-^gR;@-hERXLn)N2dG(2qVan9`9`H)PO`o>hghq*#0sBV9!`TI*c2>oH)|S^OtG%mWATtCGeBpsJHn z)j=$h5V8O>5m__V&qn>XQlHZ2XGvZMU!R?2OavuZVGPRabAyE;nEJzj%*^6v!zN(r zLPU5HYv%Abu28yQxl=WqC)ZDI_@jhK{_!sAL@eY?6hiqKG0HL0X7P+V}u z;(dH0@wKs8GApJ=@vys5Vl^w~nWCt>(c>Xj%q_*owJ#P{YZ)f|-kA>NqoB?2P8b^( zgd|S|tM07~L1~A*>xgD*M-Iz^3XcVjM}Fj%`*pT9F8bNKn$&|umcbDRK`CJ@y3=ztaGyHK;h}IdK zi-ugBU0rhVdwnpf&Il=**AjZxv=|R(MD?+4jJ&*?n^8=o^CfbIE3_qZmVX%x-(z9* zIv?4`EZPc{n?h7b#3W&YT@muaU&OIJ=UiA6?;BM%Q9E#4ETBrH=@F;0M<_D18CAAW z`*5@sP^HpP=1;Q?$<(TV32;Ji!{Vk4rpgI%B;EzV2#Kv4RkiL!>(3Shr?PKm_1n`R zK@|fMbs-7mJlm)&_o$Kh)lzlr%{@9^ardGsR)b%cB#LGy{O-yb>O{0?w~WozsNj=o z4Hj1Y_=rtI-M#_x(KBOn)hg(uTAhVeUp_+9kga;(eeYqh`EA4Db(hecR@X{!#nc9^js30hbW?bCT9-+c8ZWPo?jX^mgc(&b;8^bW85bT&B zM+5^#9fjD3+3$+rMSR0RZU}aW200OyibD0F-aM$n&eT~-LSi9H=Oep)?t_VQi@V4D zy7&etMMF(P1-=1l(Nd#xBP#fW+RlYlJ3eB|P`PgaGMayMZb${4P}{n&YRf0ZFdtTN zz~TY_e&i{1=qA@1y~k`m)gzjB;>Ya}(hN_G%wN62P6zOFsqLei6@OxnP-9p%qH3cK z=Gb2tlt#lMfthke?4!S#P8-2<*wJSiGvESVojQm@ToL!Z$jiOC9K|>~FMrGsDe2hz zK7=v8w88RD=C4c3&_~}*8@|-$A&jjHLR8pS$kwNPe-3nebI01zdA8wxTf`BD+eSf6 z)OH-l3o0&4yDoLMmY87nxFcRM2hF^vB@k>v$~Lo^I=q=MFWnHQPX}nAgEm>#cF)@k z3)fXOQd@Gc6i_{;X%Y{z^L=I)&eS1gOr^>&3m&IY2XU|zQl-%_N(4C|G{8@ASH47K z(B9>N1&pFQB9wZlp@iU$;6ZRHE0(N3#=3sVPVJt#{?g)WSqF+Li|A&Ene#ws97;0L zt4^bhlGz^>&nA2O>A0}|WpNE;`~HOVREO32k55whzZ(>4Vm|mG4q$fPMC_$b$;BKA zLP%rqfe0Z?&`kvQg)8}ZXqD7TUh5>1H&-^t_{m%3t#$vc2_16Xi;!u;i&Xl)Ni>?c zF*89XE%{AMuoKZ|2cM)0@h=t(hoIvFzL3P%o}?~p7WR=nNSL(%#3AV7BHK2zZQD*} zpa&1_@?z8EQRt|=LwoA-A{+9SVFWr|T?R~YHulBb!u2reg73Qx@^pIG9bjr+3Wz<$&9awF5jW046cJ)uhytx zF5E@X)3*AaoMhXEVevwUVvu(c%+MH9o(|*ftS`bmr}V)+1;u`jJ1I1QW4_kAv6>Qi z$j2#l3HJzVko48Qo^C^Y%@VA0609?@W#OYAnQkM=g3Q>7)I{IhWL;yQcN&(jLp>l0 z5Hz=fHg~VF&D#%4)!C#jSOkHIzoFF!{}-zN;eiO%-+Tm3v;UJBWx(09uSpI(!$HyuJ>`_Pm_FGDrh|o9UjfI7e z{_BtXv(dXyq@K|s6Qs7()miDfs(t-%jvCB}T6s&8z?QmK4xgt$3nI(xzmL&UJ)< z2?FSBoQI2xr?u}tV{c!1>XN{2gSBCSo|w7@VdgY-=aJa(w*7DB>rVn?tqrI7o&+$a z7Ee_PrA5T+@SVW8`yih1Y)#m1W~0%*I!Lz753M9-LZ8w)wgl}ukHZWFAS^C}1&)tx zh0jN=Orq1zSlX_zF`W=A2YYVX1=c#-FfGip-Eh&f?|!ci<_=++fcb<@JMnBAZ=rz_7g za+0u6f6{{Zv2{CY$<}@n#KjLdb(ZLveR$Gx3i^;wW~v5%Ck}Ju4uajLV*|Mt zpZwqPodM%}9L6_o*!${|(mN-6-#ws>l66Z*JlI2ery~##oDa)+0NdLyoc+_)Pt_;` zTYt5WNV<$+2|y5zuC6+*c=)d_Z~TM`ziMH<_a89%=~sZg;e5BYt#QwL4r8|NBK8`r zE0SsMpsk-cS$?j(NxMtd?deS$rX+{s2Q`p+7p+Br;k54o+Vg?^%PER~d36a%=-6kN z7q@~Qj6Y@22Xr|Hf!NDZMbe)Njk*Pe@QQ=eNFO3xL zc%~sP5qxd;`A9e8cOM0xaO^JH@oGd^S9upzrw)roJ6VVF6Y3lVsWb0j1R@bKmop=?B=g_Y8EbTi=IcKwipbKt znl0$WZj=dE8P|O!Zg>Sd6@VY*U4i#MBh`OITA`y;tOdVPFbcf+1oJN&8&g4MuVDG` z8klp}5khC;pWn>6c{A-2(w+YwJ^KC>c;_#Ho!`9b_^B0Vf$Ao&y+TEPiJ<5oXn0Tz z^W6_2f;n^(;VHW(e|e=(F`%44{sG02?O)dYYF>em($*UD`#hkw*0rTpH_}fmSio4g zO~Hbt!zZ1dcWJJJXSUVyD6|Ki0pIn4MH@!nbKq6q>4I++6kWd)mU?cgt#w| zM$PZDM`^2l`4u6s-XQauauE-JuqAaj5h4iHK4s!o8Tp$k!};0wCsrm(AiTNz8#?3p zsuS93h7R>~41u_z&nH&!4-;bjUl=6TEYpPe#S4c+ZsGgpkhz@3 zj0E6Nc;dy}0ZS^nLLqZm{eLIC4>3(ncX z0P*`8icq5+uMpq>3$qGCuptj$oth#0A;&sS5Gw4`==+QvNRn-&^Z4pt+W@Zy>>jhB z!z*s_>-Np)GI`{89c9DuO}iF%5@jP!|LsQHWMfKlJbt+5L|#m=2$<5q9tMq&pom-P z>Sy4Yzl3M556?Wy@XrZJ{V~@a7?WEFZp!?3!i?nvpe7d?F-O6qA>el)GH&MT+Iq?@ zKu6MQ$~*pb%0m2VaSkb|z+op<{SOX%C>c0xpPvr9_jhY)c)>aV%*9vuFwZI7KKck+ znYoAF!T2q0#fr%y3&If%%MqruQn3?as2v(1{SCZeaTW7nU}3p18$j)-38HG`J%ORW zi4er>i2#QsFsH<{dLoc4b?dVv9COW&K$DTmk68~#xJaz!1sLevK)P!SQjE|9Ho|c@ zD84hefuwMizXZh}c324b089!DphH((TKmxu2)z}bTL+S#BnE{4ySL~CZ{6Kb75L92 z4Gv=WDM9Rak_K~Bz|sDUVB=#GgohdE_?5ew$OG`KL7d5hS<5&aX96^S%^CO_N(}jz zDa-FP0{^l8L%}^XdUG}kji*H|6`+O2<@lEhM)ipK`?1jx6iBM>_<>XCp=oQnjR_wNODW+bM{1F^>pL=4#LZPOZJ75j{C*E`VSsgGpu2$Y@A5)0V>YiNxKzU=jEH!$ zl2Un5D`{m?x~d!3nr=H$3!K2OdHy8%o++vLJ_rh!j$XIfwX8^Z>(m>B-f6bddQi2sF`{ILDAGh*3?7Q)I-|TL)p|r-qZtW zI)B7;Ucq!;#&llAbpDtrYvOBW!_8}@4gny6bT@lXcY~Y1%QnCPGnZ%f9-{N+=I^x) z@WIT@HPbf_(DCpOB)#4H{C%y0utfN)xl1kA8mt@xl02+3eWo&d8_Gx~IDr586BT`9%aI$N4)mB&H&N4nW6&F4AF$G%*=&$B z1HI-4KOPi7m^FUn7x*5nMg47CMW7{(KIy@@%i&Q2R1bF`BQoeMI2R3G}^9+BJ!J<>8e& z{`*Kl2ooKL*m>I4gc`O-yP-VEzmUJmSF~t{{&U-qj}z$UZ}EicMtMzbX<8R{_L9%u zU5*I95L9ChRJF^$H!%9NKgkBeABzwd*}rOyb!dw4mjXS2cU8HjJ$ywM=% z$1;H0X@>OZyZ1XGX2ar6 zySaPxcEd@pF^MUl))j}sPNW>BD-Iz7fkkohummW+xRcmcVASH4u3kD4Ak4FPH@*Nk zQ6oi8u*Nv)4B$G&Xiw>1zyLNfGAsgi_QEq*d?yNv1+e&33>K?kF;pBDTVe641T6N# z;wecWPI~p-FDU0?FV$kppg8f%4_yI9h6N`sOG{B?gg>yLFB3U=IPA#Y`RGo5zuJ4dmX*kI8w=i!wEoGR zrXAsyU;F_9;_1Xx`6Kq|`zK4e{gdi?%=2OZF1p14EP$ertjZU5&1@N17aH^&Kydi? z`f4jrdabDPOf5w>->LW_hL*|W^anK4{3xd90fLJ+Oqyv2z9N=IUVs9Z0vIlDVTh<^ zV6M#&Ao{k?dIe!7)1<1 z7-9+N0{HK5thbUGuNM~%Z-4TlAZhREkd!tL4=yIZvv31AP69O)8v&JYt`QFB8le6E zN%ZMs@vjN0Yk==;@#EGM85Us=v*2&>2!jnIx?mG$LWpFQ09*An{A!i?Pg{fW12g(B z6VrKB=H5|(l3&+`hG6f~7|1{A<=qVIE}^m0Us_dBr4=Lo5Fved1t4SW%^e1&9WTC2 zNIH9WO}JKQ`q#7`thB}|qppSHrtz8?xUD=)#6#dMa0Wf0{f&KMJd4ipI0Km-C6mBo zv^v0gs%rq%r}UT20h>2q#H3&l$1u+@2o?zTANea0hzD_C#O*A2#8ulF7#aT9#4u9p zOvTL7$8hh-C0U<^TQDm!FIii?iI};#cQd?DV^MXlHrynsB zhu77eVwc6#VeeZUAgFJVxs_vuY9C0{Z=KcJI=;S#Z@19ePzG+}8A!3`8I<{CtKiA6DFh}H@S1Sh% zPIA#`fi|4H0gxAGh?rWcOVQ-g%7q3gW+*dxALbI<9%{ev{|a+z^G)+{4XYgq846HUD+N{eYp1=&^I=U7G5-;vo9i5_wjlftBx0~ zZ9M5b&Ft6fx=QVr4bQVs2-k7#ryh=~V@Z#~m%-bzQ)CkO-+u+;Qt5;UJV)Sx^~CX+ zbm;b$$Qh-@ujJq~gQMr{ZYK!g8bn)M*g5S=Wvb)2bDG_3!hTbO2G$D~Yi>K9W!dIb z_B_~pLgK8S*=WJ2I(EJttbu2ksV4|W$e%b-Kd0uWvFbNngq!i& z2siU{S)@!FzD$KlJ?Z?)v1t4?#$3DmTF9P~DQ~t#W7L&4rv-MIqs;jUn(e8lAP$no zqCtCSI_ebo%>}bX=60k;xcSDm?YIc5W7Q3e_I3*L)wj4Mo84@~oTPgmRf)>>7`?@D zXI*GJ?4;KnVLss}jBCJF!<*+MI$qS5{#V13|g{p2``>}_h)($9j`?ww>COQEjj7d!aXWHk}5OkQ{R0KUl zY5A8;gh#}*$vBY%vBDeU>;q!Btv9IUR5FMat1e#o8Jq^YQd=HQ1x?ZWX32ZTfiNE2F$!?pd%;sy&GVRg9jg9K9>Xoyy(Ya<*G&SVZD?lg=-C zwymetBh;6*3?6=_j!yM38ySfA-n$ z;zX+TTr$PN|5v#4P_}k-erd)Z7;G|Sp|Hzx#?WFi6Ts>K##yL+1u<=@;Me~C3%H3Z z?P6~Y{9M``VNm~CF}(0@Ce*j3*}}5QHOKPDG{e9Mi!*4oQOi%kmcr|YtsOawX*;bjJqeUA>Dw5JI%Z-mb5^vfn!Y5nH31ff#dkhp01(K^wrfQqANB=vVmy#zj>^4cz1Zprir52lBCr;`;L&{`zh9!UN+Qc>7)CFPhjL7T;u3 z6f6E!vledCMa48gqfa}PB*u%nmY;Mg9U3pF{sh4$^GB@n znl8%mPVtYk2xn*XljsCngVWH$HU@O4jO(c-crpJl^<3C0F#A&woKOq!0CCZt6eG#m z8xL^gJ`ErgPVu2;JY%qzsDb?{#dEe$)JORUcgr$L0?>2f_)D+`hSop^J z-$%?p1E%5QfhNW=$gcEA^)v3ACO4O`GDDIlcK&={m*{k}r56a0UyH9Ot%z=2Q&MnA znUXUk(28*_8oOQs?gojPG8!s#XPBNW0`c>h=`WvC)j$X9lNm%%F@E4?DHfU)0K!jC zLRCX;nSs%*AIkQZh86$$9t3ONUk3gl8wtzJgFQ}2gdcmzA0J`*p|Aq8i{E3Zb*dhfz@2Rh8IMj!-q{jg|6i!;Bkc~H#~0S0WL4r1 zw)*M$RDv-vI<*<881mUE7tQ2ZHNV6Bty7VDxbFua$sSgpA}mJyIYL0vHuv;IpF=Ni zwtt2fs&M*Vu@uZ)jeAdLb~|howBK;Zm})=W{p?;xR(pc1G3Ner#1V}6WAFw|<#WW| z?NR8xTbTamh&|9?A}V~N-%D(Bs3f_hfsf>1XZdk+%%l^%m^arMdEL6+NL(>mh%;~a zSiEUX%!Hu_o3^V>y_tAfv=DRN@X>gcnwT-ec~)(6n|h^qXX|z+y2hicv%? zESB$tYhS{mHbqS9sOb^rU{@aB>tZJ}7q0lV$@pztMsw3aQ{@bt@`j}!c*k)Ax#g+c zzPeIf9ZTGjjpQP@+=4c5d_9Lu$awdW;9N@t|6&z+W9zBH%f4~{V>Pv*; z&HJcj@no-ahEhyIx@d!+jT1_bJT1R_3zIw1C8c+K%`$)()BHhIoC`jV#&9+gm zD+^iS>KqCF#UFXsPwTv)B#&)=cBCbc=zX ziepDR*NwWPx=k*GsXDm?+I)kQH@o^0=DqV0PKr#C+>#PrB3;V+%DifN{ic`>kIhec zoXxP1y5M%ZYUhrkv%z{Sj=%v5d;$*e=;Y0P-7u0SL+$W zrk<)k>4~xVB}UH)zpye_)#{#t6oDH~&91lDPLpO3j=&8vfLl319N=D_1rbi0Uv-o@ z&q-MiJL|2rcB(J5vK}mNlE>tjO|@o>HmMq#yd$YNb}Dh^euvZT)(qS=| z=D4}p>GZ;~$7`3m<621KY9}YUOS+u{N6-uQ<;dYZW=jIbyjOb2IQ1Iq+|d&?K-ae- zK(Z84$!|t95iGZf$ktvw1zXnMH^!Bg^Dr!^TF)4i*pu{H(ox{uoz=juerx}rDyz) zOCV|8#DcJ!q`#=#KBECaETl{SmJ1WVYriZl6k^8|2S-d49bz}YM?`2_sMj=h`0GPr zQ?(->@LO1ZQ4UIcvt$~kR_~&n*w4v)Hn`|M1A|bNpMv4;G;5<^5iO))lm_;SYYoafG9-}0C zSw$rWMMWh$*AKiZy{j!M>7rE=`C-&fGHq~O`XIa1LbJ=g&m31w18)aMY!KvM8Zvg6 z!Wt@rHRPFQt@Rh(|5eM-->4aM4ivo7qZ1SXEF~D;EE;&T7{FpEvpiq0tUFf{c%_1! zM|8`neHVMdOYQ%x<-b$%5Bds~T`nVU8#rqVGVLG4;TLbPJRj^j5}7ZlUJ_&J66`8e zwZ6R<#PWz2erJNc9CI(Lm*nrvWWO#(uP>f+Wm@=niFK}>`?Gw2htkVN@aaM}3=I>Q zUx7O`51zFJqC46E=2jnIZe{NdRtD8PhP(WAU{Wl|+ET&Y)KkH@U^RICfpE^Y{t%2> z6oF48fEP4sdjWre4*UiG+HvxqZUCoxwHrBC)Os~jO$7M*+o8R>NqExK`Vv+2jd~-W z7Mpqv@v^%@26@9u@jdTix(z)zwWn?BPm25A71GHYR*bKB7t?8&A0?D%IM1QoXH%~! zzIIor?TWI>tgd*2)re@9+eoEHyp*Y8p(&9kXRm3F6_dd(sm@nnVsww3E>*{!Y+8Cg z(4am#X;kX*Nb#f$|iWhWV!PQJP@5@9rCq5W5&OIHS(RYte6UVC><%g252wYwo zxTf+vgG@a(v1}tl*NQqtU?*Kz^l#@s1??gIeg6O4iNp`F#LB~GIij+Js(~ifmS(pf zCjeCm@2XI1=~>!)HvzcW=m-F2phheAwEL_HYnCphn!WX9?Dh%vR%|TTf88N8HRi@0 zz}f7yuX_>L+li1ec`}uTrVP zZiBl>(*l&$EYQJa0Xg&kahN`6V`=;0%xf zsNjqNME@wIDIffVt;jY?J_z@FsmiEBYU^tg{cD7j%e@t43bO_6+mO7fl*`Gg)E*uu^{v>4--RDEq*oLX1o7&^qcg$m4`M}PEcJ#@MIJQdR-``w9OH$yGjGGW z)oQ4)%LWMSkAo}Es`V1VdO5>_en<~!t|}8~G}s^$LhT~-d{)t+R#>>Q`r72d>(UJH zowoS0>+s|TK}|yuM~PsZJDBFRMw15|&zhS}J;W}PxaTR|vO%}kYNy=AE|cl%wUmw; zdMe%&rtdJlFs&6Vi(!Mnw~Ram8{?^Hbr?jX;j8Hfp)YC=*zUoB=)wtb&cmjtE&{g< zKLcUv0b3%a!Ec$Z-|8qJ9jb6HaUmJbI6l6HLGUp1piHxp(%O<>Xz$0oioDX%fnEdd z64VFNKqvF~y(&H9Rn_Ih&)}pAJlR0aWOuDy8${zPlCq{1Vht|Ol2LJ8RM+lz8 zzhle_oP7u=Jsh*LWgjb!fX`~HBDQxnoHmZ@HwL7jstAyRU?-ufoiv?*J?zW@?19}B z_)M`@6FFD2Z!86vSY(#;bbXibF7|6o&hAs&JhAB1{-5oAitS810gzyFN-YA&(*1=stsfL=}^!?#z%zGN1m zXdf|js4_cc=Gy(tgbGeObtuR?)gKT55RF*KT|#R6^4&-SQ5ymi(=&DFyU~iw0n<^E zgy*QhTrTe7ItrTn)lMdbn~f)Szv)+TUK5yC$$Dtb(`?zCoK+Sp>zyAsc=eY!dZDAI ze)&%96q|6j@P%TXB4HoY*{x!VmGv#1*HeK^*LU)n7xxwTZOp&9x^`m#{E`yo=(UPx2XmvGA>DwLRxZce z>KIGa&~N~e9n9LnUc32#FFv3mPVdRT0m{_;oj#?hN22T=HL>^?4O?}Ed79jkW#Eg~ z1O5RFx2vjNB52PIRyG*SxvjMtR8=t&K@E^x)N=wyqBp z_q{C?oi{8JuTmR>F`Vbo?#R2!rrl>Yn-eT6k=@3p!ErivXWcP-z~ zU{WtMI&xCHp`FjOuy*g%QBD7*b~`k`6DW7_=j?SE{WkDh+h4lZ!*|O&zBxu_Ein+7JVWvgRhvXh8gB}AvMvUZ5Fin=5Iqy0X;kcy0LuB0yG)?Xp zcbCDF`$j>oHf44Rlk^h7^?Tae^l=?|#Lfk9a+ZA&<>}%B0iA9EZnL#B!7H#R_+P+xW@+#pOrS81F5j7?IGY| zbB@Js7vm`CM^k%RgYaYsOB*@IERB$is{m`!N0+><;^l`s)L=Wvl;NZ;HP(i zC~g5nmLT9zpKJs8R^J7OKT*IoXxtas`k5Jh&l_!+$Cg>RAKF-b;>)r(yfU)1IwRKZ zH7#xro`0%~F^4&}xunHC@Xj9^v+(DX%QbxqZgU)q$6D>{IFUbNIjskafAxg}y@ zG2kp_0t8U-W@Y{ZeIXX$K+o+54mA0=B`}hkl`)oa)Hj8os!DD_j)p#Ytgd+jYx!hG>!aJc44xx-pHDThFa}?J3 zj&pBWw@W$;Q5)cQ-ej=2RY_{CUCOr3#c_Ay&%W&`8)P(pi&}%)8CJ6c*f;epE+Gh! z&YmKiRWs?t>Yg@g#cq@HSuag1#4HHxaSZ;AGX)9=Q?g7fIurE-NVP(wj%KZOiG`i( zU_7Y<|CG2zb(~AGb};ZvH-D?(H!>-ElaxHZl8(H+b$C5?yfvM0drNfvxAVC+6q$~S z^vAd+JxdUvz2f5~sgCST4{^ud9TKyRcnud|1E?OKluE%S^VFWDTYA?btqOzg`i zM2+IIhmqsn;KyNsi%D8%x>ArrO#lejxk;R#0Cu-!dkAdGaRkB3^exIPDU^5&8$@g{ zs6tI?uY$*zvtqQ}?$lr|LbPBmXBjuozMYO*7%K_1M-ygjEJCr9yxv>W<1`y`ez`!y zzb?y56Cd&D1Ah`2=$}}1HO#6f|8O7yofq@4&cn~L2OAhW4t_Bxu6nb5103_vFUM`4 zV4DQ%Kl}wKN;elMD$^1u%Df5>D=Kh~m$e!n(>AFP%?zos*stV|@o)5V4lr!;$;mrpUGQF{M)Runm$YyDbpcGU zoa8=OLS8AEU-^-s{6|*|_6xY;_OyygBYk&#dBje%(7*?|d03bI2E`CiCUCGt^uSq8 zumQ*0akw8=ChVdq?$-RLSKXkmgp~>ElOCsC)A#Bs$a?#mpM`M<4~4t@lS3A=qTl2w zW<`rx&=786gNa*X&^C09n-%TE-jz-LL>?9;d8u#t3Nt2wCqMfVH8PXCx%Tjw$a{P2 z-jG~ZY@#uHi$A8MuM2NWf}}NZJ^b;cNg#q|qr<%(?}ds9Y^(?l6tk$o7fE%MkV$Xx z*14oZFhHzefK&sO%WO20CN}`56%4Q?jy}Kr8TuAw{#TU3n6)6dmLR|UPYQ;iN=1Qc zd)ieCqnfp8QPJhNQ0?wIkl@5xTENZ#p1>h^0y^-XXTadQ03$RzI8dmH*N+BZ8Q^kC zxDrg)4m7ygg*`W7-)IoUsNfLd{|TU+cDXH8_|MNdCQZ=uKUN;8uUz6zztJ%iqZ44h z==q4@O=zI)^{nUMtD9ucFW>9zX?8KAB70uTUSrkLRw^dKid9rE~lNl9Z8Mr#(iElD1*XcJUH>pQEB!h^m?g)Z^ z1lz31n9ycCo*KQfN{zM+)h`}0?TYfWRc?uk^RX2&H@ag0Y9LwVmZ54@?@ctahmNqr zVxT0jV_}&Y`bM)U=T`|_-meRAc{et?*$C2a z*ySEV5b~Kigkak`58GBM6a*l28n(-1nC%$D3~32wPCwZW9L0aKptrZUVT1htXR0x| z+tCarUV|kOnSDzpYoe>b9rgovSXQq@x5>e;3RyTQ%cFL0>JzWh5Pkwq-$}K>fF!x` z??yUL7x3lCTN%s^fXe>?Z-0dwXOaKlio*|MUA|^O^j-`OCwm9&SzSNKBlhE;eH zfe=R^u#wCc>DvGC)q>?IGL@ypABWuKVG)702c&-JxC#&J7`D>$u$895R(cw?(q!05 zjbS5Q+6e-V6USsXr%q5HoLGW}1kgayaW2p?<`NG4!H`!I_*1r++|WP3N0O(&6WneY?~>IMZ0L!>gPZZlRBDPxEs`22A=7LFL_@mo`$NCgf8+am7fXvAkiyc+>YWnT8(w zv|X+1UBt^Gg;w&01>#lS$Gk9{->YqIUGF4rR2y?%+&5BaCU5vae879w`#JlL?3d&? zUv{|GtM2AL59n(6-me0+H|nbPd0el0`Q_7Ii;EzUeA|Dq)Z?ytirdKH5ZQqScUrTz zaR-=ELd9x%wu3xa?os<2sz{KmGO2*nnD_V&gQ(?48O?>rts|O=uL9xIYCL?@E#e1@ zVX*k>1}t8n)Ox}q2c;H5O(b{}zSuh@qUqnzZs*7|rwE?Sg49)Y#6d^#t8Uct!+#N_ zZ6cW|b)Fpp;OoGs6v_?sqLxL$iTZ`|-KJkSz|nb`51b~OJ^@GeE|MoU2EQf;CQT*= z?hjC0M1MLb1!ELsTTn)A+REwZlQZ}D!uxntci~oGPcQ`1uo)EicM+!uoFw(de|me+ zKBa?{RIVQOeaGtdvj8-@S0{W3K(9+M$8o$?1%6TMhrNLmIpH#r-w3V%~5Y#(L z^u{FXB__1;zH$!NtVvt>4)MO;g_AO#>Ul4ON&Y;<+RAIR49BA3w(`4CpZDC44J~^f zxeJFu_5)>o69baPcx#x}@tQXZzT>ziP+@@o-sV5mcyfj$#l^)QGNqunCpW&Rh>3sF3<1!1eN^FN*Yd)z?Sv+}?m*NftD;as&t><8~bArY(aGu>4XG@UqJ z#2o~0FT`)5f9suboc`eA|sNtBxoG`uTSiGsX zK6?I#xqp_wV(ML7C+F?a?qwf|-sP!|sl*19=9P_uBob+&=UymigQrX+j`Le{1Wv2SCuj zzX1yCnCkyh$8fY0qX!ho4#dZuln;NX6#7R7N(qwMZ&_C*oP{>^@jKBBfQph@>A*$aUnxFJ_^}qy%!K^^ z#vE=^5q><&e$3tC&BVUh0R75G0g2(w(uP?>A`D?Q7{d2p2rI!5E`lLEL4ok^$1MP) zp$yV6i#GzNy#Ecce;&B};`h*>1RwBw%j9i9W79oA=}2D$Ar27#@4TY@-Va=+hXq&7 zC@gh5dZfH40c4d&IP&r!F z?WvguN6Lbs$8K#&n|eL*vM3?>ykWWco|>2q!+92MKAU=7ao;E*sk~v?_$-_HL-7?g zF)N1iyS3G9=udU-VrJxwd~RCUprM$n;&w3K!@;-zOsR((rS$RDuqgEi@@0a+<+kr< z^HPudzR93`;$3kHKfEQrYm!NK(&135UCFnuE-qg}%>B zK{)eup_HIZqtNI-QGXt`k;=QZJO{57ZTyOqr%}3z3>ngIoAfi0;MkZc9BW^A7qFu^!T!;zx z@LjPTJ#IeWP3mT&o8_uUn@^F=t@-}LqvZdOvbTVWt63I>ae@SQ3Bd{O?g4@Xg1bX- zcb{OvA?V;5+#LpY2=49{f)g~@zsYybm3Qy|)_QAA58c(ZtGi_PF7|X)J3aE0b5y@P z9uo=2M*bBYVZ^MpkEK8pcOf*=_lp{&na|71Qd-6B=%A0aC%o(E5A3()lQMWtn|?6q z=2Ta=fHw)(sW`~ylly^r?-h{>a!x^I0k&8tvkZTzJz)c%(6ZLz0b6gi8mTnzl4F5~ zPRt?%sPg);0NWm;*PliDPpFz>cTjWB^jx6TFlU+O#M$3VIc4q}%|~z_g4+H((ID2* zQ9OzIX|_zq!rdnOd_>j6@VR>y!h!{*j9ff>Grnqkcz%PzpR@aXqdD=8>A7Pd zVDQKDY4zJ0W42)wPi#pX3H3EYOcV-+=lqv0&;ihOQ4pnxq2>Ah10xVExk!lzpuEBY zQ0%e7;A0cf-TMPTgFn*bjDgs=Rf(z>{Dff?HYtGAlY2CPu^(jwba|S*5LqL@_$Ovk{3-GQ{*K{-XXkWKpi(Va z)q);pYUT*{>7x`z3ME{r;mOV24sNHiD;|e zNP}Cax~1vjL25sM6H$r(FKwAK`2c$?pTD5*@r&PU7pYcgHn|UixDO(^4-&Y;%4AIC zDXg)y6J|62tNasrY#_&5PE>HqO%@q)<}QKn@&N@0zsRXdm}ImcLI_5y0A zJshr|*7IKV@wuANcdv7(|FwR4(R81^&n$BA+qiOd9^d=;!nksK9G>N0vMFhcwklP- zY16w|_pY8l7sK_|dty8mSQ!zz0C&s+|0$SM4x>+aDd!ZkmMZcdUR|rAnA4}1I^=Zc zBWuvVD!z)svr~JCxx{SPeRp!mq=C4|;OFxab9ozKYFN2#z&opte)tkN*vUA%5*%z>B zpZ<&KRSu(6Yv6!4r-883lqujBWM-CLeI*PnfFh8_iUBY@}1$Dsn9{Eq!{4LqT^lGCsX-i9>$CxA3;D zigqg3(-fek?x**RngKwylqG$XVv^Urkb}<87-g^56)iwBUexI>u|8#6f_~z ze+ngI1d!Im0V5!vjER@(O8_oB5P;hk00bBQrFFp?{Er=^!HR68^!%G^k8(k056#1MjD0g_e6;pp zit1INNg*uvN6N|F|3BV)nMFinHU9_e!T|5x^~gE}N&2GRrSO|LVWdU^aSLo~YR2c& zI5QJ!3U}tc_W)T3Ru}B*o4ojjO?obI_zz0SacZnv6eP@WT26 z6f9n<2`|;b@Ls?WB#puN6xDQK_F2FNxMl$x08Fbl_iYVDHLz>|$f0G@jDR6f;h~Uf zeOSMiIg0VcO4}&yy(UX@XpKjwY8Z~_b@Pl}Up;fu)Zw#DSsy()}MKR<(Hl zwC@L=#(+S}wAD!M(nm2T@#uS__p$|xR92fXIm4oZwIw+q-pTY#MAwGx$`bsa$^Dl4SO&SGP z?0>C9c$L)kt)MBu;CSd)O5UbBA-R14cBEb)^yV$y0C)`^n7@$ z+kpO#tDwq`tLI(?=v8cITSFT#OawDsi{eOapknS$S~LgTtY=|BE<0|BAz^)PB|1*>{E1JND&)<*Aq1+%vjD z2@-w!U##W=@&G0IVl^Z5=|v7D-6_cX^twe3#odX>;`FSi8$m69)PeQs9|;Be?e6qA zJM?ZbT=2K%`?p5N6#Y0f67mQ5Zlt-Ss2m2jtw1x9V%Ys(m7VWq?Zy*jHHmO&%qFJly4_NR1uyzLw zbAUrqA8dZ|CnQ_fQ}5{yqR%7c1?|rGpux8e3efwf=m*$4+Ka)%3sMqK$(&+E*3wVJ z{qpI*XvS1|H8#bADRI8X z3kEQDd-T)cwwA&ZQ(oD|6L9{u9~G6{Q3+ROD~$9 z9QmblQ?s?az5C+8{a61@?LQs3nAVr)(f|4={<}Ja7Sub0x1v>%4jtZtB@#6r9710f zh9rawe&JmD%8)BK;I3a!orq{<26HVzGm)Ct0(R{p90Ay~dEGxI{+E%z%LbTi709y% zsG30M@IrhC_rG)hkMaK;uNMOHTc!jY*V0xukT>ABCIWuzF5tI%9{<({{8l^9 zRh7eCS6zk+hL~w&l}TdPf%x9{LOUH{y9( z=QQGZ$1kMyu2EgnRP$tPV5a}88rCLrByVhw^&h<%!!#KqG#R6SzlwL@^Dm$Ezd5X6 zJ15|c@_)Fde`}!si+@UKeVRC*wf>Lhmmc#u?AsjASg5~ft+7jiB z(oAi%=TT_NoaMnPaJcUEU$i5N>c54@ZxO)FYO9t9t6gFbysgU38b+D?gab|l4%`7p zuS36q2jk~v(Sg6M1M!?d8;4U@KhzI!GIFy3Cu8yxuRqtw`HYtY27IvI*|%I`f0UkO=VLItJ-Q(Yd7uMd7?S9{_Mygc*3#^FRbz%`Tl z#NTu3d%rylK3&~E%_3X5|8x5MaC!B#xOY@&|9pREu)fuCVmHPz{$}Og_IZ8u35XB1 ztsM9J*46vD#}ODyCH>!X6(R#NEY6O!gni;da|=&!shV~F)LK8_oA5K0duG) zYdeKNA}DkC?OO?!9Sdrf0}a0Lw`~b|p;HWe;jC>*d7;z9eBq*?w#2;983Dd<#WrwW z=qw@|M668shf?pacoNC7U)pGtny!=~nB|bfo>v;HLq@%&NrDS+4Y`uPgwDpH5C@ed z*(^|))$jD+iIq}QHbkcG^d>3Amo2bc#o_Bn$+Mdb7s*)J5ONJgG3C(=RezqL5@06a zl8Hf)lE2svP>P3BX*QgpdjA581z=7)0E{Y!dM1t?rK{%s4AD>=Y3`hK(h){ILWO_*OO1dFfPr&%0PCsPfgZu0VBVQzKQup&;@<=Nl?G3K*VFSX9qS^8?(S&@Hy@t1pR|1Dfm3;6Y8ySo zQLW8IGS9}IeyCouSB==bF*7_UiE*m(d5rhZCl(&+j63+`ycNlKrUmMH6lO`jk?dOH zE$h2CcbZ(+uWy{kJ-PYZ#nnOI+0NYA{;so~sk5D-vz?{WZ?KcS^fB4LymS2%pJsb) zF-oW^58+0dc6)F6GD($Jy{6M*>9u1-=tuisB<>rvzCt?>#WM_}0rgt@1aM@8zXqr| z_BDf2n|mpLk;E%(w`^2at zDwnf@R8A*#^yCgNLSOcfEImOL$-qXuYWz0AyhpaB6A35~vbw|j6=t7TYT!#be?NJO zo&L$mHR5%@4gV9T!;gYA@W;7L`lunblG^veqXx@F@uiU)$o&(^x}Q^DBNXt!MJJ0p^wUCtXGP zki=n48Ukhj^BxMI0bH99^8JKwfKAm>G1_G1EYq3f{jAk4Z$DSx+X1%QpObsM{d_Jh zqmGfJF96k9{b-ZAGL<36NN13)8+e;QLz7A`$)xUV)1`*zZvIi%ebyq*+Wf<1+=B+aK#;1sJK!BU zVOPoEy8$-4s)qN`CNqqcKO9ljdAIMLUkwXC#`OWonRae=|X6F^=|~h)OoGx8GejZ-LTs z8T;rCaDAO@QrqqfR9>lR* z9Z&oLmE6%E^m=y*JHkB{KnpG)-+SlAG~p1%b;cXY4P*3)bur!k)3?_jdU45OlE>z= z#tPdpk&1tlesV0DdHcwS@$=7n*sob+LN$iB{(;av<2IR^Cn4)&!dzc&$pg3jGWS3I zrg&!Y(qwn+E0T1z#yn#Pen9a~MEA@<_l!sPOhfksqkCqd-x+>6%R7!i0HLl^`qnTK z+KH$MBss5Ynr)4DxLS*yAO3>;)-_Z%uvZdOGftC8P&YtN>cHvvTJ`E(=?Ig!?8x@R zthP>2!f#%eI=?;OT-|STc+_gRk4gC@4YA&qV&|XDY%yoT(~M{Ey} zy?Tq8wn~)ne9N1H#cg93!a>BeGkCGPKdM3*QQVk_V5~vf+7B_vcphYW5}) zMATtzE6(-jltoEu;XV^hzo&0r)0{~}hmDfdXApMd#Pctw^NBhzQp;f+FC{*anx&F- zEA#4zR6F%1jc%Sk`EY_$y7_5{0Jlj?bz}AX#y@Eu!WTG#;c37z2nRDjtxEj#xs#*8s zw&Iq4*N(WPKed%#lJnB~uHl_9kr@$OhchKyzNYO##PEDZ!NXLqZ15YSC5pquJmO{yehM5}wNN$oUmF51#cXfxW?kzA# zSjFs31=ac~xfiBr1~t>Q4oNf0+S6l2OnJjNBF;%3XDF`RKn!r!k@CCSi`pr}Bb=4I zKXDYZ@8<7s1LAJc!&%?aWBPF#q};N{^vm96S-)g-1`Q;Ru%OYzRIl7dR%ZHb8 zm)A?%^$q+ooYcK4wW&v}2RMHay%ec79+9z$-3K z293Z)%&9;4zD@4M)4TepJS_YwP~M6yQPQ&d2jX-*(;cU#i~8&$QF?-g`IM$aS8i4M zKyGDk@(k|0*`)fIiITeU$Cz3;tpv5%zJjMB6Cs;?8{(<)_-o;;!hy_`oIXUBSn6%fhi+#1C^=#$%Q$Qk%W0uQ zKv8_F=}il?O_`9~An0$cJ7O9~KMLqbZz0G#@Za_d^lz22fDncLTpIcRp2M2Bpy+H6ihPseseWnN zx)AGx&HLK0jote5LE@RtbU~-AKwS`$!gLn7{vp!&(O(3T#dNmv9t-p^Noq^2-&ohj zJ7)m<^s}I$lhW_?ZQk+{%s31kf0UICis0XlxdyCC?`7k3c*Qf4)m1!?vJQlby!&Ms z^hfIr0Z0$iSxFxgFeS|xJ12&7$S_mC8Z=>l^HV3;>Q6imyV6(BljU~)`xQB7WUEJb z9!XnYL?El>y@w#bMuHCy+Jc1#(T$z8;c!oR-fJ-9-KB*D<_{YpkYj*u0&u|OCi2tI zu|}*)opoc9!^*zEG&?^O!Fe)Zp6f8XCE3n6K_-AGzp5T9i2h#rDRWh zB-YLJFUFHrJ&T9xyyEbXBoz}*iH>10R7(=3F2V>2Gu#H%U9#9m7 zKeZs9010UXcDcrJfbO&I8=xWhs0IlHMwXtcbwSt5^pE{+e!vV7gk8pn*Mh_V_=ST2 z83hP$pk4kjtma9MUyljZffgi?wAmE~M=5eSD;Dnx4O|bdK zp@vtIUHLG_msMCHIi7i7Sa-cQo$gMiNhg)V9ES2}K&9&6mFmBh2U}hD#a+TCny#`G z;g$>K(l^% zDLvKaT-#Tc_W8V$rr`9g8cCy}UpV&~;Q0afVJpyglB!>jG%k*{Cqa5>5oTzSchDkC z&>{@bA}r7ybkJn@drJsw)5tyRcb|twDuHkkxlVi8PJ6k|Q`yc_xlS_KPBOX9EZNTU zj6F>f3a{K+F(YH&ex6L~pAD~8LAW{h6fSh)=#oD}B!5yIhT40`J*`RZDd9JN&@&}- zjRnm}A}HhYN$Z)CyT*phNYW_dHvpHJ@sDOcbIci>o~qkZpgb<1Fp*y{j8_R<=mn|31Mz zE|X)M885ypNb7G0X1j(a2D@DYuZe7~f%Bgl9;kyGc3IxJ08{cRhM~2JX#LJ~5!Wy% zw*<`LKN=7UmIGiy3>R?~gL3~gsPJlW9m@U%VPq-Rluq8JKEJON=!haKcID%y_`-(< zls)nwrDtfggis=yaO-76;IC9$DYtIoaV+SPXR_r!;Yg=Zj*#2hv4+&~b&*W%!8l8&!2*C^ zA|Z9}o=K)?9s$7hIJxZ>04RO|JOh9y0D$mvNhb+t$_yHSAOhFW0FdTRk|{G-0Dukv zq*wz{xoMN%FO?ahS$hA;dJo|e#=FwaY~9~;vG!qvy&gN5yWN<()l@oa({AiX{2!lz z9~P(U)8*$~|Jx@}XWK-+NzM87Yr8126(W%)E+9ugOv2h|iI|(CsIM}c zbpwdyehN7^Q}HB?c<(ud*)hi6jO@m(YGR$H3{$sO!>w_E<-AOWT1+Z5f1QXm*YPAZ z0C<-6jGqC#sWnZ=Ny>13Tea#cfah&u2{C5|U-v7!jO#KVld2Sqgsf^hWkR~?OsYLd zI*8ZXPtljmO&k&Ti;t(;wS8p=H22zaN0+Plbqmz0>wMU>!6<*ANw6)PVd`^7e*+0M zPHq_*8J5zMt-){a0lTNUhsHEl$X2i8^Vgo-gR|Og=JnV1WLC)5U0Q|!b2IdAIszu; zbo_Txy-R;5B~$-*Qdm|4y45aAfiII!y#70RqJQvk{=qw_{mjfAa;m#UjFKtDvj>j+ z15N%(0DSAle15FEC19pB1ZTT8wjBbAKw9#9u=6<=q_#L0nk;6qWBe*jW#K3=FFB__ zLSyk5&P%Jvu$3-a9t!Y5F@`krp8zldKopGk2gtkm@&&T^El979D{#qra(wtA-KIJo zbxiMy2|%P?3x8)nTlF$~1VE~?M&q~ulj^VjDxeJYA09A|{_=|T4>tT??EW7HFA9jl z?TBtRuCGLVQPl3?Up&bCU#e=Ae`Nx)(*KL7)(V)yk^qg;(1Xp>5V`tELB*M-JMqA& zF#nY0GYk{ALB>U`@1#A2NCbRy#7$e;=(ury1tOrNu;%|zhGZIc5w7ijYUkJY(OM?Y zZEZfB@+XgG`celKTl>_I+v7j5?sk6@bz=vDadZf{Xq!3vK+W=Hf;82Cn~M`+fUlQCDgF&=SECPUy} z{gPgaz&>K0IFi&@uok$sHu}!3oGpza;BbFOEvdXkqCYaJf;C3y#OdsjLe6stK8=YH zxj`2pYd8c>t`zcK8@X6q92P+r(eGUs-oLYHd7{zj7~C7RX;061Tp7`q_Lkb;=^YslMd6l8u>p&=u6RS&9eYTP7=rtI$US6x+Jx1xMzVqC$&+P6dd)eO|SK9PLe5~#4|x&!Hs*v|b-Y^dpug|CNgdcxs(@AdO~$zW-L zO+l$1%ye95C1<~7x$Vt@=S2jl)3Kj%Pz;ClbMPcjw@{loL6_BfB3EvHAP>I>6SwP! z+qx9e@Nqqw_KV%|(W7mf`+E>b=<)VS?(wQ|__1Y^jHgk}_uX#rcP{P;Bsf*W#b+R<#9|Ewi7j{Jn#37$tmh>>SKZ~xY zM7qq+ne$q&faE`VSo@A1;u$*>YVp&?e@3$Y*(Sw=1BO+Rx!lyr{ruakA(=r>Gu=qH z%C6ECEQ{aj`Av_ee}Awu3DpL-hhm-ZksH-!xGHD*jh>_~qL~4GV)MqA`b=h{mS!Tw zM=AIz>{ytVih4yhxF8;hR|Tt9Ia|~gYp;7L-Fn`5Rf3dE_gRv*$KJa|1ZQp4cxLnZ z{84yi+tGE>F%Jpf;*&8a_OHSE2p7H@y&vv$TgpQXUw;ivmD3#O0Z9w`nTH-JMBnj6og7mpU9(uVI(jt1_)C>$vb>v##vV>7s1|#q~ z^!j;gfh#VJyBc`}P|TAf!xfjW=pJnKtjm}Uix9A3zW zzIRHhb82^3bN3msQx~Ji*m$pXKqa%jXo!(L3n+nwQ~E~ug_-f}Xw13THl?(Y(;o>6 zGgzbPX;C`ZunvY}VS^?$XTGZr88Qj^C*wg?9^0R@E{8X$w6ttP?zns&aF(k+C6M0)nVnn(?^<#A+QWtP?}&ZzoKHyLUENUBHUnKs&zgwz0`HKvE$uHf<5`Z|5@nskFo{^5T{#_j8}BuDXJCc z7>q(VXD~-;+ichb%or57yNWd|U6I49B2TC%wq^5+PV{KT<%3QRS~{F_3xaVl#2$Sv zG=HYTpBKH+v{GC^ks9yUL2W85bDkk8SK)pt?8{gt&gNU}M(Q_(Rw}Ah@5`t8)KojW ztt)2>uibiCzN~<}Uvo&pW03Xh6ZpsA;=<70Bsh`~oedPfsQ*k%Kxvn^XLo?7=aZB^^X{CAxDT2|LOR?L`{#?}lGWEymGam$ArkwrwV_ zIh7qmQnrBvI?r!Sj^8NXCCR@baBi#{_<^#DS%%{SN57 zQ)f2f+d=lULzyL@bYAvj=YvS}og=WP*5#z_>GjdM zIIV9?OaNQf_NDG8*0xR538&7CYP0T0mLpo&xy=fDGMJdfwuGf%l99Q{1~kEw^9Ej5 zP(KQ()P{*6?O9~zAyNSk$@DTELG62!(F8&kkk$jEC5xC8I1suFK|B__lWnPxTzP)?e;p0EwfuiC+@If5j*Wd`} z;`@r%Ms%>?i(s_0KBD=c9*uZNjk|_}4m?Wm`G*P`NgV!O3abVY*Emq!Aje#nDHhrW zem|+3jdWj|SOUi6K!eLC_`_;Se0^&Vn#jGIW^mfj= zuy4y1_$SL5aD*gW(KlLAINMmwdL2nps-Y}6G+m@89Iv4domFBUu-gk!(v*w~moY;Dq~<*c_^F`zc?#h(KwR$~oZ zb+8L(4!&MDB%EBA4Q^{npjUnulwEvoHwpP3tSjEtUxNV3tCpI+Z&No#8I!Z7PyJ{t z+xco)y0+x!>Aa+iTp0Qar>+((t}o)JQ*#ZG0)fN1cGy>N@Y@Va!4u#}&q@D1KVxrJ z5P@a+wBSam4%@oG#^`OVI%Cv!fF<*5p;!4Wy;Zgh@PgXalZM^Uj@cfaSN96nPeqoF zNQKQh_J5=`S1GF#WWU~E=1W9ecz!P1mJ4=0jZa6ZaremgFdyLDe$b*}3a(viFbZH7 zD7$NY5O5o4;+5IIGU%n^bFND4LGV*P0No@d=w_8&Vh^{6;nLdN>Q$@^7UYtl$9U=% zYQ6b9B#*g!MG^h$2ogG#rNuTdF)CR4Jh@mG+tl-3tyfHEGUR(1_7Ah^YS5GP!X1kV zd)@Zb(iMhBKPMaV8=TM_wpRlKczfBZlGbG-&!qAs6oU#|^XEzik*^F(OMhPUV)Vb}ZJg`Y*Np2UN97&+P*USkg;hBjVj| za+vUc-~Hwr*f(y8|Fle{o{2fiDpOeEm{*D{3yZbo!lwoTT_BjK4JBuN1^Inc=2Ua1 zQxO^Ud;A<%trz)5;}skH+bNrp3Id&VD{Z_o#VvCl({4T_-EQ`A@-7dQ&-)j8D_c0yy54oBR(bsyOw^fmQliF4+z?6;svgXkrEfeUPs z(+j^*<_y=oawKwp3kMRiopNWRuJ}bbn|Sh6FNZvw`A;oeq4dF)3FroO0@GeHj~PZw zqauUSk?+ThJq^?_K3acmmO;HF?s3v{w~1o(HC-$)LEdEwzvg{CiRYif>sgrS_$6$| zX57IqI6zN%!rtcX2HF6q!USUSzOg^I6oox|xKH&;P%rCH-|i5fa1KL?tLC`cwy6MK z1dM0H#yIaYVY}D^)0jmZ>F0cGbS$r!3Xd0X(dw-S(o^h))GnHeS-gUFJe43#R=5Lp z(o12&hDe<|^*yuKd|gNBCXk3)r0RW&`|dZ=W_c%hB^UY~gR>AsuOl|WpjXsk^!+TG zD1>EVyaAU4F1S|S-)!i@X4!|;X&_FnaKbhdxo{aZKUD@wAk?qJ=8**yu&C-SsciXSsv$EXqBoht853Os~F{L(nzKBBY>JL}^YpZ=8DKtf8 z!jBi~TA1OWZURsEp=lDODVsd0AbGW7WaCe~r$9nSNtoF$Pl^ugIpPs1q(gBTFU}=7-ec#EKg}p|P?^*) zcb=;s?R+SwHQcxD;@#oRB&!iUSK}P$Hhl+48It*|mr@@r*6Lp2vir2|VtPs$N1q?p zMgHqDy-`sy(VF*)I`+YinY&JVPR}@MZzc{xv$SFU3xtFI9jfNI2Agq9S|V^og<>g; z-75-57BOt)?KwCUAxul8PWz0n`kRy9=|X7QqTK6yU?;Zm`+{kk3)c-_;}k4U9ycOV zkDlIt0W^Ty={0pdU&B!mcfR94_{1dU_q~ z5&z|oN!xc|JP0ZD1@a??mI!UVFW@n@k}&;UP{)t2Tg88F_U{ILZ;w&}tA)wX%gAdG zD}+D<3v-VTn_bSXDjm;-PTK7QTAq$gWF-PUkWph^rB4xEcspe1c9)E+P5p12KgTtUnT?hbqu*4jVwim@rk z=_L}C2*Xo%9TNvm$jV!UJf|l=qJWL0fV|pJV=%m9}aq_HsN2Shu~j2r3e)9UwUc-;GwpLQh=f-U}GV4-{3Xiv=j z{o#&qTH?XKFRphA)7y3EIi>An5h?W}7ap!Er~$ns&G`+P~FJjXJ*NQe$E zi?oBmj~|?+pQ(pyt;g8W%kX=1`u>?dNdn#d{y3y%YrnMr=b73SVi% zyY%+)`)8@b0?(kyWbUW>5l7QhO6;pM^XiMkU1LuU0|jARl(i0!MXT@|t`?RhTD{Lu zeV<@#Q>V%1(YKNIh~gWfHL|t~MbcPnNW~jWV&PAG;k80k40?v5{w!SH7x4A^q;At- z<}7l>z9ogydlI%n;}WIwz7YuDsbU+7y2&vU^!A^O8Zqn)_4xj^Q%N!L8%!V4yRP7% z88&iiS%P9whTtJA5c_KgVWgDV0+QiQf2nb==@i?R+50fNB@oNHNKW3_+k$siZHiFm zoH=x&v5K{Ipj4P~8Um3V?4KR@CmkA79ZQjaMA+o3EKLz&50*tHK`0=r$B?<~-B7zw zd02)vH~bFMqSl-GcD2`#og zRLzx??|UB%VPURPA|2b0s+HXK!9 zzNb#aP3fBd2&$F1e&k@h7atY;3SLG$>Umxn+mipLt|uL!05O-yPNX?&^_ZJz+|o)g z?X6vric*Ck;fc2J=T2);a{Bn)))Wc*9eZwP>32%QqzML19#)8*VLmp3b_%oAge1#? zqzL23Kh*4o62nY9Aj8Lrhw6)o2?-{%Ds<%`cAgObBv7#gC1z5r#cGv=%7=KE+$2KL zHXub@e?dY_D7yeHcmWc{ryA5s4AGWy5VK%BYbSL1*kSv1qAB}OG}MjLH4cuJACn^< zhG+-cHSkOBoW0TR*5GCJ7wknI_R-7=*Z|i&JX3>DCq}I;v0gb97IsAmv45;&rV3tX zKGhA=cY=PWFd3?TPc~?;qmwW)!e-6e6;ib&-yo5TvM^a5O8cUv(`)cRegZb%>NMi9 z7A>uE$InJG9BL5wk}ZeBcBE3LW05*2B8Srj`ik47SSvAcos()ljsmS;9d7YO#Sh&H zc?^Y4B{g3~#i*W^!Iby=@7H*|Ok5;(*VpM&IEV3I`jf!d&b})dV4ga7T}F%Gz%*E_~d_Zzl7@_&PVYXD+fvG{X%TU7Yo7`2@TVjILc({yO6fwQUEr zeKSE*XBK(#$4GdYAja}b6|auV1uEhbN-->eLySOxCSBr_DmGP{Y6b3gZh zwboQbBK?A2L#xbA`13=}S=cQv<15%L4&GW25s#O=bXvA*wi)^x|M+?lZHs+#QVcwk z10*RftnaDtJD=1g4}!TOG7Ge*zGTOn^hm=yFwlL;$)z(ES-q|)q_FW`DwgK!PF8#H zY=|!0d!ydvsaPjk@lA4odD>(;Pfdqe8)n!=lR|T5cU10eEVYY5#yQ_?t8EBlB4xY) zs5Ia+kWho5z6nx)+{;nY@a|`lxJ6iMK5IRiXskkXXqjSg8SI~5E_}b3k%~F&U6=;`Mi`DiyR3PO8DmJ z7bnp{WR`ogrOrk%9fFt*Ps1M7`V~R#pjKTQb-8NkgYF#7E49|!CQKffyxs2ABAmkx z!gUmafpf2#R3RG&XqB=jJAd2Xv&weD=Gau- z>A8ODVzmv&k(PD5f&Vd^ia5Ny3<*O^LUE+x?`RXkS8?aiiPTuHn5PdZ?-=36?&8K< zd^Lz1<_*y`vWhWiov+S^5qD`}9=P;qc(XpTeJ~X8tU+>Vtvi$=x3VSQ_*?TdtkmXY zYxXgYpVMW3pdOpwXeEC1$oXS$4X6XI>qvB&peXqkfA|jAD{H22l7>1GSt>?sX;$|p z)^fE@{E>g-SCIWyW!i*IED_yYD5(T~AjXP?d4%RGypQ!fI)R*WGt%Z2Fvnvgp6Drq zeS~nz`{)ua#$9}o#by0TirnSfmU8b|hx;Cg<@YR_(_2Ke5kr=-C;AZrGWQ!0nIXiqIzC?jnBdQfwQ=mNB9oqp!$Sy0R}*jHm8(K7>JH zWe8?`EvXH(Ei?KOtnbV+!y<@#tb+}ZxF$J{#v>z=cCi`aeX}}YXNx} z(oFbC*p}?tJ_*BDv%&64p&!K=JB{hxjf1Bl`Ehh)(DO`~t~QY4vlDb0%6zeXa6pfT zcq8(2=K=H(|zC<@wb~NXB%pDU&+g!jw8k zXJ{`A7%+9TrmPy0fue$2@E~(!v6L83z{ZeSfhUD{iBMh&%-?Z7K~PZZemN<|1&@#% zZM&YrSsopmOmksO!lrJUHmwR6r?}a-w#HosEM{bw3iP$rvRPSs#-(udr_HVNNj-(Gts*%>TBn^eSP0(9E4N&9$9H~1>1FE4gTsp- z9F8l<`*ht$UER?_Pk1+^g97m?1ZLuK=QRC|Wl%&KOdVB;W+tz%@v#1kROW7Z=<=;B z3Fpg|Yld-$yamD0Gurz#r^jfNNLN#<56Cu#j83hvF1ZF~r6TtpOE*u~We0(n`&Al^ z;C2+clhKO~xT}9`A+Bb_wwPND-&tIH3dZ24O{miD`Wa6%v9FTvA{^vcmDs{eS(h&` zSm2+9e2X{_mpDk5nBTno?ZMWia4dq*g2lM4BrS@8833y9pB^6{?eVxuf0xcUnVNR$ zJ3PMWPt*1Vlio%AC|S|v16dG{n@J*ZQOzA8%6Bj6C8z?QAVeW%6&fD`D=G z1P#U;x?4HwynJn;F$?~j@*`kAeN=2M!WcPZBt(rfCe=rvjJ zz+@mCQ>VlFCMuFCO?MH|54{xA=-`ROkgr1;`X&VVvSi_5!BALdb(26(gCu$t!4t4 z_~?DO|H`%NaQ&M&ZN?p!FD`Sem1Z~LqiF)5pov-vr;1q_)z=HY>TW~4Zm&-!c?WXL z%&v~q8I?EGW+Uq2OD4KFOuD`eogptpz{lJr$y=la97|VSFQ&O`(5ijY5-y6PjYKBG z;9}_Z+W``ml9~l5sIyQ$RY*w0G1D&;xv$QQonE6#YbS!oMjBH&U8e*XGIR38I^OPr zHjKh*`IG3#Dj(uZY?-KfkSHC2W1OOu@F+FOXHupyAw7_LzsTM;r8jxMkIjU7Y(-yD zQ@n9SE5(=}#yYI-#pJ=`r|-Ihi3Z`)cef+UZ(*jtS7EAPR>dHPUy*H>`(Z*eF;O8Aj8H`?34bqA|HFG9qE&&-m3iVzA?r756Qr=JuPP`-()RB&oZlA5Pi;nrtf{Dm3?`ni@>l#a{YtiSru-?{^ z(uphmD#GfB_iRsWO6yaL!)Rb1bfCN>vF>PUYKzzFgaC)t`Mtyo;^dEPeI=DW7K@@iYX1qC3pa^wZ@ z+{MZJqdKN8ri%@2vyl;54l4=pMIYy|J6a>PJf}0Q*O&7CXb|#Lk4t#_?v$6j>>S>ydpAELFQZGk3=)5W0-wgD6lyg}A3TZHmT z{4-H3HFf)jyK+YXkyuANtKngyAWTvYjJ$=wqZQpSn3<;it=u>pq^@Oen@txALp6Ta`$siw*rbkM!>WeDoKMo!yIJ@(sGOY z>Aij-dXc1!3BmgM$WPE4&eAM+Ri^7=)LM4@@#N{ncX{lCSZ~addEu~Q{y)mz0;-N? zX%|LAaCdjt;0__d-JReX++~p9?he7--6cTKph1H}aDu!1nYbd*1C7CO$}Y$ z^*mM8J-d6)p5CMWDr^Y!DTy7k*|8RrU<=OZYu~Z&9z8#VslVBc=@;GDmYOAxXi-;~ z-6U!&lZlmF;-7NA8WcoWO|%<1Wuqo5mfL%MnRiV~p-__5w@>5JsRBvqm7|tAL%Nb+ zZJMyOVgT!=6?bGN-uSlD4e~zkZ4NMG%le+k6d(O0`U(f#t7e`9KX#$d~6v4L^zI4d> zcvVgCyVgjwsw=`8zLk?WAI22jymM<4YPFTL{RH@KxSU>Xot-T&#UCVhWku=1b8rOX z6MD=ky`dP9dEI8MiPKWPGw;&S>!L*=qGhy-FBbC_VMV;LwS;hrR1oV+V|MrilD>XM zJ7$v_F2fr2-RcL7L2(Q@-0&eTWzW+hheCauCk#iov#b5+4RM9!dd4#}S}aOAdQ0%O zBGCKKecI|(8Sd7~9hu(xuw2HEZQa1Ao0I#_3R_G+2d^)eWx~2+*35WE0O>lVQu{UcYu8A>PW{TlR;#*j1x=<|mIyNY&ramI@o?EjH{bAx zb}|fDl0FXkU8NG~F*MQJf0kS$AIgC*u9@YkWSnb<+kD96o-loUa9y_(%{nYgjg$!n z&Xj}$ADVG>BJI#-`z#Q7L z%H!X)KE%iI+CsBJ?h7>}ACM&ubl*6Uva18lyl4_PnKDhKtFUD@?oMky8+48-0b;(4 z`_Z^%UDoTLlYZFIM&;HAET`=F{SwOpe%`V+D?gUH6;-?DW%e$Ip6$8h+#@K86=}?? z+l6!PjQZq8m=xVeak9a% zDM_BHi^+go!}pe{J50A6dT_4ZrFfQODL9;Ca5Z^s)l+`3U){rtLw55QG1oH-fT~(8 z)c>>vbK=3bI!g3&)nmgWIw-EMB}^a%!eEX-N0q*hw(?if(rv=W_Q~Lu%nF0R0S*)f zs(3~@k*~k>o2?+IsYPJ1(2qQdRw#2XvRd%ZaTFm5)NX(1DDZ0{2&HXPqcMdL66297 zg*e4D#^2ysmnbq`9yjGXDk9XD0+d=+@n|e@m0j=9hDRjHa!f6Xetp9T*DRb=(o+w^ zqL!K&`aV}Jn#USEpw)+_iQ?iW!jhc2a+NjlE_G46SG*$uiR~V$&WlP$!{pvN#*XJ; zDQ!+HgfJpI22*O7Rxii8uy7+0o5w#tN&_6B0R722{y9$iJ6G3~3pZ%aI1F|=1U z+KjKc(23ROFFUAh(qO{g72b`Xk?ynf@&{w!}_-K%PB8aKeS6yvlLf3>p=AFBiY;w~#WoCZeuNDj0 zb@8nk=WqP<{`?kSWcsG7PfysoZ+#jMS@|_tdsUL(_PZZnRO|bP*TVq|ucmDR?CITr z&Z9+Vj%UG6;06YQ=(50CUdmJc=9%&Od9e9CW`Ud3zIn5wI!2|PSSh=;Rvz|-ono*n zJ5tU;Wlbo(SF&Rx8Carn_EKgDUZI^cB?QIa#ku&ig-qaW5)aPg6eUJ`nb2_Ci7 z?G9&Gr|+;QQHi18zAiwHR+g*cw^zT|OP=(=JhkTPyy>XmiXKJ2&A8x!!EPJMnV-FX zwYJ~ZYAGOJE;yT|UV5kDnWg1jF3|PyzE>J{<}56!^)4gJB$FVF#$i3}IAfv8ConxZ zRYoI&PN>q*T)?=IJMvi|i}KFkIE>GiQBodmL|)g+Wh1jp4;=9HTW7{A>v;Fg%YK5w zP?61B@$(+|yJD`TvG=fb-KAA1nDQe58SlPYC>Ybo=xIZmyBtBjhul*v4%TIzRG~&e zskltL*fqrK-^#bZtmgI7gSO#B>r;tNB+y#;{8K5v+0eqQ?QIr36zb_Wk027mJOmrB zvIDTxjL`_GWQ|Lp`<&og{#%Rnoq~kC_rfkb$R7@q-~J@Y{}_5jr;-kdeVjm{FmY1j zycH(I6247^__}KIK@Mhxq?~JE(No^PXQKr(?vuRL{7&!M^v$7CZZ012S^;YU#`g_W zCrIq5fs~;4>HN>m%22gQEv>?w@1xQ~0iTzFF-N0pBNgK8lBMD;^BY4ef9$ zP*1BO)?%0)ldVES8?S`|W#Sb~8V=(FHwwf~>AA?a0TqYN1g~oQ&y29GLgc1a zhv@`+UYRXy-+`nkEMc7}Tw>br6wU1InSN0t9)khVaynBfH+x)DMyru0rnCkk@i&wg z%>;G7iZl-t+2MICQI%_wlTMH(so*$LZNf}43q`=*oSBfV^ZS?|s^GOqYsA#h8!2z% z=zVkELa;hDEX(<1I%jS9{Ug06w|Balx@utNb@aa37#T4AlYc#*;;^FvPP)>mBFX3% z$C*QdF#U%rydg9ZTqN-V=gbi4%EE8Rf!fnhJ#fC&W!(q`tf|;rUye5HrBS6fwdixX zP2+DY^9)nT$4E(0Uz?5{nQIb2)RgnkvBHf6le{{V-s@#Q%q5vajzpNPjZ^$VBP^+7 zRlQ63EJF`S3Tyn>(p8>FqI2fSAzDr4`NgCYUd*QKtJ03|HX=c4YFOmr+lQK{lT}&v zWhO)grxiwv(}j9*d49x~cSy%C%RPniVl;pOw=F=!FAK>S+5^i#4d;%@0}VS?y0?;B zZUgPt(OV|tmGP)b4s%$vV0zdk3m09~k9EEX&|z_alHwL4y(b=JE=(5Bgh|Rlz!^>_ zckw2#(WT_Ee_&O&|Gm#`Fksu8V%{PM} z4NRSv=8kU?^Fir_lcj8diEeC`drZMdE1du#sJfL+0ABd*MSXZ+&anmqy8s24^@(O+ zKhS$#!h}^tom8bbML}F6YHy-aD;R(B)+QE>$nN!PmqB zbJW{Ng)QGKad6O)p>jGak0W)&?Fu6b^_}aIj)9)DR^C}8hh2T2Pjxv&iVgQ>bUo=4 zo*)v3xdxr7`bco91P?;wE+Lzh^%f#O>KTwmXj1tGNp_B!e7urv)Yo)YzA22M6LF`ponosoM^f25!NkzJ$uo{NG`%v` zEYPoG-Q}rHQNxXND-FJtv_h(&p%oI-8oamSko)zDiTd6Ck3pGt)Pv&TpA@IYr!i>& zcic;L?;P|PM{D`^3(KC4^sO-P2mwondfZBgQ_Hz~Chgq6_^q@)Msxz=o*a$go^As80>hxve>>Z=!+@tm- z&u2ljvpg7iBj0NwaQ@pnE)g@{rH12;s<3hr+{$;vsNh5romM-&T%q?W&8eW$nMz+*d0OraIl35lO#=LaCN7cT&}2`#r9&hesUNAA~BU-Q#2Egrm)Z zKj(25L5X>_YgEp?$v15}#pX6xD=dHJ%mcW(&kpv+M;h;-AcDZtMFg)tk7FO35Mp?= zX}5%hQ2hfp>n4^N$8YyrewJ1qO$wtUSL@>J4OdP(RbCSZXw6?1-~=mJM2RkLZILc{ z^n5f4GB^VvgWkpH+?P8K_yLP%*CwlkR371A9!t2;n%`xoLQC4bGIxdZWZ3KTLl>`} z1#T-9zFl5ixey;0ahTgb(7n>*UGUuKU|$~L=^mS7eYhEaGxMRz5Fitt+_a143>DYCh%EO@iSDNPmWZRG|x@fkGZ3>wC*COQhe!jW-3-a#{OqNgN zi=skKm6liJf~@U*&dCzNFtwZpUIXBvEAw0om)UPP-sj_P*MJ%0j~jS@9crN8!!|h_ zPP_<3cH31A?;YXy+eiW?kU1;K?B(jR!=Y^P&}4_%od`?Xlq^3Gr9FD<4JkUV0SL>; z?%&T%Z!^#aYR#yKI#SM${Y;Cnu^}3*%+h!pIoOWJ=FRq4raBzIgDgVsQey0$<+TXXSVoz5eD{ zR#LX=myv&GXR*`lz9VXQOTw$sT`sfwct~Vy)e;?h|9a?)bUS$)8`S`cpZk8$~Az>ux9cU6h2}9Lb&*YfmNRE_7U$4&Cnl)ML`kztSJD{)AXTa6mYZi&o^p8XHEW^_ zbSYy@2X)LKyM&zgctEG0*GC+kWFfAeL7gz^M$L0ziFqjcEnVpP@99zopo zy#sKB3a8zeRM4e$8fkfKNrz4L^m z9m7>0^^dcxKF06DDT3jjEbk>%&pdsw)7oIku14@{{4i?{JsC`DA+OXW9eZzDU|E&L zCyM9Qw=~3CE;ebaZ!c+Q=ZYqFXx|1is~#sVkPn*20irqJ38FE`sM@T&`5|dJ8jVkq z2pf+0F%<>KG*PVw*fP><()%>+;1!@-u9qCpq9y!{xG59-``-FvC0^YkSvX@Q^R6nc z>jkXYyQHH?=1KIC884ZhAD5B989jH9UeOM#8wB9_NpA?+e7|V0h(%g7U;RGx>#@h_ zbk6bJN8lY>cGK8Xz!NrSnV6FAdcmc^3O7R}si zqVSI@hvU0^$1}cnFC3jXOa#SAO%=w1o$&=FGXhp(*PAl~ddLq0U_2SBA{ERu;qb z4!VK3xGE6O0*(U3Vx_;*dOB08{51M8+kXKFHm>Vm5nRsFH{F@jEDbhsATfG$G5kcx=;*nRz{vzf8}gfwLr%%O1wVIPPqXe1(G|V zNmm7-6Frd>f(nFym>2-N=r=W`stzJ7n96jjBHKEyP$6v2jkT)fh9=;)B>~)2zwuK=GBf?fRy#g z*WC5?Y7=;7lezcO=fnaZ#9AqLZ~+}Ae}$P4S(e?p5wVInuXDA)y$XBrek z>H^QmufizYP^lJNvVD4NSXY2K%yNHEvdJDY6HN&;+-;KlcGtl`B_p>Ffe!1X7~_zanA?-dXiT8_}3>=cBj!E$AMzE^iUU zuAQ5UYhomhb{E_}mX9UYl(=CuFrBgv&+Gl!cy5!;9S2*=_sb|H+Da{-o2sTpw-4_m zkiWV{WIe+WTWR={M83F^ElxLRXO2RE9r%**RZbN7C=}`})BV^i7k_Ego*L zVUOmxx(EFeBxSUM=EpgJbqNpAM?HRxTJqR6XBNF!G3-HSz!M!u!|#3EwASnaOF9{m z+j?^w$%oqygz|mO4OA6pR9mMM5*(;sYRxEkTPSyqobB1X!`6zcJPg9VvtZ(*dUc`v z3>wisW6U!`lLIC{KaR57?!weBW3{L>z0#$4FoFm7fjgWo9~5i=awO(sKGWG+>|T&w z%V4tRO9$mKq8v;`Q;BkL z>9Ut3Y*H_G4rK-*>&(ig2dY+^bc#+ zcSK$urTz?bKa?E302IFH#->zn@<9fNc1NKfLhmour?FKxV7edhm~UdCn%`FEp~cc5 z6jT(KBzzz&rgndVMQC$L^hF(+h$`_NMWP|>p_R=!-m9-YZX;E4hC(izPXznG7uNmp zV#D|XbY0!bWV7(3Wy9|4>m%6&hI|g1;*K%*K`YCH@<9GCLWl0N zvrO9@ds*ZOnDn39k~x|T|(`6BXC=rxtN%>Z64vqn5|)Lbc>Nj*e~YSz@! z#nWlXkXK6qj!o9UW%ME=`7b4m24#kXLXlLSD)M^2LIt&;sbYFH6^7!UZX&tP^t=WT zR^-izM3NHc`UGa>=j+H9lMphE#i|4lfy)bh>>G%#Jn)6H5gyB#tY@y zy_0O2JrY~=6{<`{>TV^ZCWI5Md`7brZ8^L!#4gd$Z%9FYtB*LEM#KmDV%< zeEpJ5_E5ICdbSSA`WPiDP0;L6 zuup+@%pG__$6uDvV>IC{HIqSWL1b%<4j$rD=!EcUGc@0*w8RHvG|LhG#h%Pv827blst|@Jv7`+(;cP$8&UR8I2IsoSX%^^y z2wj?%LcAIz2p9&W6^90LjjaS%aSx?_WL~aQ5>F-PjKMaInos7O=fCVuG*G}wNSq-x zEjFba-K-He(4Pw?%=(ZwS#^s;ZxHU{qcoBy-a-%pXCK4HwDrXJuTx;#y}4UjV*IX1 znelzTz)}o)7D~66p3Hx~fcD5P8=surMl4^?1M4FGlwFqPi#$giMDa6!PLlQ!n)D5V z==iLhZ*ZA5HI!4CVDD?p6JpffDyoOY+G&g zOH^4=W2l~JZK#&%N>{$isOP$9wT`(CB=xlpRySEZNsjm_ z`l>mUNJt&!r3Tb#z&z*lSGa~_G0#224S|Tn0 zfta+t-6jtid*+w zHYS$WZlvUs!O%6a-^{Yxg{%#;MwdRkbNd9Ylz3RA=@mDu*;kBLdvQoB;g=w5!(E&6S;e0-o zb?zth;MNZ6D?iI-De_QVd!M6iHVoh>h$ooK?{c7!LCy^Y{p0qQm%LaA%~7P1-xQGp z4`p%7UG3;kzh1~xEC^NeZMqr6jRXa$v2dKsGwspo1#z)iE(Jt)fXRqu8e>P`?$s#6 z)I%Ss*D<`NwF2=tVPW)0!B5gGCk)yoavw-6a$nH4j0R0(B|F`6(-F)9l?uS5cFK1+ zVUkxCmy*+bus&2iPV2tH@69lRAU=i1X#~9_?Ad0Mt-$88zzzL}$$kEuoq5&)(}kX^ znv^JYWdzu4?r|g=n5Xlnu7R?JlsH5eLOU*j>(KZ1gvZuy0jF%UXMCgn~5lfii#muK?R6%-NgRQDuS`Lii z0+fMPC!Z!K7eso*hmFO~lYMeLD7xdbnoU{*C{|k-0rl%BLi7%?&*CmDf@%8WC`s9p z#zjsWxe`%|GC`_+{Z>J9PH+s|J8Op@QuKFLsYcvy#fsVSxy^{dsdWW>!PZd*# z<~}l#mdI>|+kUtC#Ipz*-!e5tQeoohV|k9^GU0z+wAA0YeT>xer{t;@orv|WU#I|M z4!;rz$^8+7yH7J~g2hHw*jSUG3+B8j}cimdbedQ5BEypu5`S0d|8E(udImWL^is7A}Y z+9u%lG&LBrz+KUTRN4NL|U~r-}Dr zgyRAJM#hD9e%L(I!JRhaw|I>z%3SaZ)gPrt%5N`Y1iJ>ks4R(A;&y=#2a2th^CmX?eDf9x zK56t8;Q^}_MF*A&)eEpcQh45Nne)5y9!9_7;G{p>3%C>Kuny|c8ID~+QSVnIR%Y47 z<=1+~H0bM|$DP}rj?`kRu%6j(?aO7fubze~@y=VO`h|#+@Lk`A9B`4mn(yMBNRlX& zEWv^fV}mFEUi*FVhj(nyQ8c(410FA179GZ<^FX6PC#Ur)V$ zJX-91NKAV*n5-$$YYEi!bNuWW$`pvb!QiRIZx*kSI28DBD<$4y=vX!@NY+Gwg;%hf zry55k`w5RV)wYOYtQL3kLOgPnto~9Q|4VijF!eZFqRW>T;v?x0k(u!jP60l)-@j0k z(o?@N*%W@7R#m$FSbFSkQ-|^8zys|0Qy9E$JVToE z3CktBPMf;Sj?e!K6Afs+ji_7oywkHP^zrF5+ex#YWvpt9(;zw{Fg`w^f;37H)nacS zNqg8bf_?f_$_?4CGGu=JobBt9y*bkW+4C&rgB3+bjY82oX?TrS9pDO=x68ScLhSyA#t< zNRuLkY{z2zWd2f&hAwJ43EKsB2K?C=YM%Jt`EbpQ5omY$<9k9sH^kn^nfp-Y#vZNx zq$phLYMAMPybQ!y?@m{qD0&+lIy7-F^LfRZrB&3ab9J?XxYOZh1nBX(Onnjiw@}Fd zS#qCx&@l^5HImXmL&I~JS+xM@V~7)uYrX_fQb%PgBV(kG^<{j?fLJ@PNK5Neb1HZA z&ey=DHG(^S3lS+(t_WB2C`Gwew2DVjWrEpv%AuQLUq8zh-2V_KK#DN(Av{6&awV?3 zF1T96@1sd9I|kT%cWFzI!ovHh;nmuy)CZB2T@@Cnv-^&AB;2ayMi%87P7Uy@f>}e3 z)sq_yQaEU{K*_U}O=Wa~-HS}f)7_UWjLz&gc-wyUL*;9Tkv~^fo-ulNa^41wz0Wp+ z)H%%WO>D{Dnh+_;LfNM9B|Y5Rz~;5Lp?@Bw%3g*OTS7A#ecgD*UFn_p2}| z&jyFrJS(oA$Z-T0fs8|HOy0Ja>FaKC5ZrPoFafE65C^JcqNQ^O&dDNWX_~S3I~OkL z)rWJy=l)^8OX%_Ta&EQD%hT~XdMRB!yVL98aYw)F;b1A<-u!9vXsoOX@V+@a4<7FV zZZD3;o_+2-&c}Z}Jp!wpw>RtOU-y%dyL{X!8NF`rj>edQ$IGukr_bZ%CUdsW{mCV9 z*YoLK_``OW&+~Z`GB5=C!OOXWD&XOE@5{J82ym}zRj{kGtHaypF`eD+e3^?_|MB){ z?85DQU;T9b=l7lG=WFL)c~r9#>mGdgzP&E(VPf~1H94jWU~x;Xb3Vp11}0|9>8X_O z#uFy^*V-wePG`XQ^~o)f;Odth&l@k~>|g8W0$!cLf0RPqJ1{p7VA;fL=a61LzT?Oz zx8Q<*l&`ai*U!nld_IjwpWLDf3ia-Y-#q+QqI>!HkISFj!U_uY>`>o4KxJpoj{{T+ zD@C>*mm)CNpl9Fc7(RI?`CA=CR8_v%clrnDjehMq>V;`|if5mT_Ah!$&f%`Mr_{_HfST|BZZ10bf|D%y zLe?Hq`$9mORMTZwM`xdejvK6di;;(xkw)K;%Q1N)B{rUe!6-(`OO?q~il zZ;t{J^~HXLAc=YA5-Pq0FhZg%gsL8M;L8bv9x(tG5SB9x~E@c-iNCAYXvge z6O6qI=M^b~ocvd6JU)N^Zy0RL|AZN^Np^tWA{+!aMy`dl5QZ2;1+-4G_Q4#$76J~1 z@nXOnKD}x$qO&^%tA$zcV|vLVvxufX37^ThWyHRuOvvT zqxx@%E!gzQXLwZSKjv zT}IuimtMBuU$!Xb^UrW8;fpNdLv$98nPze>I&~__IezW1Sa8gqb<93PC?eN3lQ}S* z8PrNXXp!7H?bbT2;0nca^l#82-Twpy{tI=&rOgjyTT^fhCGQIHhlSd$75y)D&vd5n zAAex8j-fzKzTllWQU4|JFXDT#1~H@aFT?(IXKhdJ^B*7o50F3!-~WPHRCxS)@naK6 zI#`$RH5Bo2{Ehj_>80u==9#SHnZG29)0t_1n3X+Sm6iX*Y$@+*`PavzJvrGwj+Y25 zmz4ZTBnTAvzd$u_TMqk^6P2uEmA{0;)0rHZRK@5#OUOUS=m z@;7~nMSPflqd0Ra$^}IMfWr8HLzP@ctzZ5Kl3Vjiu2S-@Qhy2e_T*laprJx5uuS_m z!h#|`%D;pcPDS~D(w2~QobWe_DPTG??r#_#t;$M&!uY>K1q~Hw5VjGBkbjx>Z-jwG zd@stEv3cTD^tazJvW_wS6827K`v2u~YgJZo1%3}sIC)pNzhSKJ$%*_85Je(#)iw|!B2 z;Iuw)YJ(O&uzwnJIIM^c15;j^hV~fUK@i8q@Z%2XaKT`7>sK+q zL^iA}lb>KuIXK>}Id*G&T5QxY`e7B}2}Iggtvg266a(F^{puS`f^#_6yq#!8*1K;8 za(lfhS&lIWI(nPcPg;64R8q!4g}&xwoNF|}WSnrc^Oiq_O}*Y7G$TbrL2R6Bh)q3% zAMiIi1`KecJAVoho+8<-SSjCdoDp~j2#yUgXbeVfb)^_(cG-Xd3z8X0zOdusgbVM{ud)p{h#IzKu^)HX>Co~yq_ zTFnX=*B~;$T^;;xfx>wjsgwEYgK|9goN5mnOw4KHCle$FBh79$m>&%$by_1o#cGe- z1LiGiHPUQTCrz;w0i#e2t6DZ3={|$_zzGd9&UA*D0koP0l2`bBS^+7RD9VV2MfQe8 zB8Tj9hwLGlRP>))nEK>4`{Y0=o-g$t;8+9Z4aCAvJdmItpJ;D3Iwp4=Z;F)hB0XNKN7bVMxJ! zOHbnBAKwLP`10?ps2+=6w5~8hP<>`>WI%uEg0s$?Cj^Wj40_3l(`m`cb zN>PqM>9LVDn8)IjxpD*rM}LP*(G}+|w;JGTGYqfF)^MeQQhCkKS$&}KfUz7&DPkdmn(eM-X$r&%9L!)m89tbd>34w)_VCP zT%W=ERs%$hCU*_!8b5rWfu9CFiZZle=}XH)j1VBRH#8HXMwz=tnZyN-+6Asp&JTwc zl%JOpfEiNKJERY7SYbEo18rDscc$ex&yX?CfRYX>373PaAy@+^?8#vKHv15J2SV|n zBGKQx#uW>SuSa2)8y3ajfrYQxX1GMLmqU9?!22PDMy#5&5QR5{04fBX_%$*$FMvWI zXHCN1-sXM9$@)v$dNu4PlI4;d#QH;Uunx=yRIRTJ38VyQ_nw0{Ad5odUnDH?)({f`jxV=)1i%Dr3$}_K{6iQTAZX! zLhiU>@kbyb9L#{_-Ox#pbp1pL6luh(xPEF#HF)FiMB+#__pzd;wEStnF}4ss^}`#` z8y$$Oo84Uz3 zTTMJQ7Kd6qj4{NXuw1IfPB}wlbdnRvTPnLb%RxLKUliG|LDS$(fDAxFJ_t5t-cRkq8eA2H--}3X}aa6oJdt#uI8{2P9X-@7y?%W6pEPX8+JHj@Kg~hP*`J7 zkH(aH7~z=*dNrIc@3SCPA1~@beOV6#j~@fcn?WcxP{7OY`6S(^qM@8?usWnHQ`gSE zRS_MG)NNr%uLEUzFfUl(`H;A8SfwyWt`DSZ4_d)FeJX5#$YeurSKDue54_?(@~ z!&3y|vSpgDUqT@qjDu|*viyceFI{H;N>kW02G$trC1JTClm!iM)fTYkK||wZ!1(*r zk~xP7t>%&8fl>!*!GX^0$7udAM!L*3Yw9=ldlrKPB$_6pFdLYj!s4VHL7AzpiBN63 z+}2Eo=6p$>uM>$8m0C&pab!(c(=3zKbdTw`J{K{D&Wd{YmtiPFLM{QrW@ZT5KiW}2 z#XtB5^ku~K86UeHi&;=f@a{O(3aKYlp|#zBv=9rEw-N3v>yI%N6a9hiQN)%R5{IW}@Ud1kAYI21Wf1@y>M z4U}v-+Q^>FI;ca+)2#Vbjw)5Rv#6Asl!|u`tVYhzv$=H!GTnoyA6+zAG$z)Gv>-U4 z2l)7|lf{``h2bY<*ij?JAQk0j&?;O{pT-l*%w$_ZxA&2q0-(Qty!J9aS+5S<3om~7 ze2XNZG^gp$L`)F+DmSZ`GOj#1E%=KWY^%dO*=_SX2SltP4h@PqgIJw_zlHjh{&WTP z$}CK2`BxgD`m<6GwG#h+@lums9BEcn5;RH(evG}S_-h0F4}#=smh;)LYIq;>f4}k_ z(L`6X0?&s(gl}#B|7c$jK+qvoIt>#4=a)d0`~Ox6NazSuW&LlpAUxPDF^WpI8t~9E z8EfGUI&}P)X3L7%HaB{uYq|;1vQ%@jxTCl+huV?aVrt9KK2=jDlGAVtIEe?tGzhe= zltSNp$GF7Aa<}KRQrlEn1IjsrihSGDDc`>Ws7SnEe1jcx)6Wh~;XU$ikzPL0G^&5f zxm(b-y(wcMJk|6+Vpi%dDHUGgE(t{QKZ2K9GsiZyYeQDK;}{|?%DDF5Vqo+&(wp%9 z`v&!RKTQNR2gFfB;eQFh@bv01k&4BnN9w_F_{HN|-#+G_V-X;FlT)k{)m66S9;r&d z76gfZ35FHOS#Nj>u6gUHSU&3?;ow68oK#Golhj6_7dj)Gf~yFA>bayyV#yl;>$so`)G; zQJe>BB1llN*5Sm+7@D$@q=Jnax`N!_pu5)pFL9dm{2j`G(=Sm5?6}L<7{cxungZST zp83T_M|cC9OZy*!EoulZu3uNf3z+#l4IZNd>G}bbk{^NKLmYP4uRt9!3QggoNuQb} zqb$rOkXq<#>~W@N_`cEB*2bS_8GI-Y(~1LKR*XEBfB1tGq@_i}%CZCVD+(W0S@2MO zkc~hED2cMSP9YbGJ!V@qHU(?U z?|J+^Xp(}l5Shi^V)`!y1^s_1jH&-MUlQd*YqGIAT=>uY&!XXigmLiBUkB=C@&;a} z-++1&X{tu**bu$yB8ZpS@MYo=(Tcf*PK9|{LHuP-lChR2J8CECe|g*gm)WfRRtC1U z>Axl-j~Fat?{FQ+7wmtxDWqN{+w}eSbSxkNU)%X^;P)I3{H3BqUy2{(v$eNE{s-Y~ z(;znq{J$m@Er64DLzC3Ls)*}2ztkv@1|IYpICW70DSG51c z5nQtV_fqhsS836wt$(fme2|4hokn_Ad^pfaSU zWO?;kf&H}tetUg@$u@{iG!^hq1Vf^y${p= z`J$owh-(_{C!$KIVvk3h>G@ZZcfogvyF6#zXT5R?H4x-GZcN=hvCnNxqRF@tzGo_*GS zM>nrhXvqRXROXuZdHa$vDo={;Na-plXNGTjO@ZGh8V8o$4ACM&oaNin*#4rwr<;r$}5= z*?gUjW&BRn4}Gu~(1Kxb?v{dKaO&oTVQ}oGgDGZ?v2>%O{2&0C^u~Y#66=kD2y|5f zINhrZVXRqJ16)WoRs&SXSr!9WNHrD%a7ZQ$odW>pe@B{Q}EO2SmYBX?o)M_N~ z5fopBR2)K6dx)680$7by-#}Q6WM30ljYQvfuo^bL{jW5vd<$M_Soj9M(s(98pSEQX z>fVQZIm_ZK%S$;B;E{dnN$8~!s(ZoU5vn`EM&PSk!RQIx8lW|_z$g;sRjq_(F%2}q z)i41AMetb+14(c-3<g|6JU8ix%Jy7E>+45%%=7l8XJM;h^UiQeA2ND7v7Mm!!HL>I~yIlO6^V~AFHcFBo zoNdiEDFjyb&c02agXLbLNkZ{J(L%v&#|krqH28c!!!KHo1+zn2@h93J&!arG9JAiA zYA#ea6#1~td;8H-M!^VQ6b zZ7lQi!_ioOrJyJIvt9?4lVK0vEU<3WBNB4~?|ApBQ}*7Opf8z$+nK=p;Ct`X)Q)?8 z*skpZM1M=&46|q7&+kPy;mWLrGesNdn3uE$yeeX1)zn(`ZbV1ad z!lUgB6-ym#Vk>Q3D}1XH{(iE$3%@jhv#IXw-R@a(f5BhAe~`zd8}bmezylP|%+)Dx zLUx6Z;cTmVKMvTcEiy?nPw!T(-iWAsR_w`gU0&jMwMI}PebXyT+0P6lV!(j^cK~q*|2+R+Q8ccCmUUqvSU8)>w;X)MQ&y* z+e6&Bzxo6=fmTB3brW8xyBSab5FY6+8^bK;^~cGG|B;$Clas5;0}AQ z=QerY^M$Sm<}?N02%lLBW~rOgfmX4QKGT|aSW2I=686ui4AtG(d-E{$g+4x@aG+uO z+*ySnSE#aY1lPgv5h!u4HfJ1{mzr+W(P36KhuCk9*a(d`mtS1{EZCmp<=z3Bp89K zF!#tk*JAM#Q<8DLoOkuT288&Y=p8mDlOe5zkJoP`(+eho1y($xvv+hDlf+fUVXEag zTg5Cy6`<0%ME7+=SGdaD{K$4vvC2QPC+tEYF_zu8`Qs1c!&f!38gxKmL&v!!q@x{m zaA6pIz5bjc?JpX<-dF>K-6|{+az+4kgliEoJZfvH23hM!IO(w=pp6*f`L{LB$S4GF z5#j1xxn-3eiY^Tj+uT2A%OptM#lxn4b1Aa!30^N2OZORDn_Rhh#lDk&N{WfU z`VsDg6D5BgSH*(^m2=*4-MtrqD|~FWCpR)FG1m9ZHV|lgKlK-1$M0hs)`o?qM65j# zR-G}$BQdy#tz4QEA%okHNE!LRWUt2KYj{8OCM&Tx{1v`wJ6K`1SN&ktz?DV}8JrkRZzijuv-W2_|r1RkC&gLa4Izj$>nd`PN-9DE*=aOu? zkkS7GTT(7Ds$OTRWxU2)e7dDnGq>O-gL^Ksdfl(Wd+i73S-z+@n7kn|%%D|nd-m(e z#X7ytv+Zu$a+Fm6{4K5&;Z+m9e$L^KjfFb?@K*f?X?nqEnX*Y{Ff?OmVG$n_5I@le+6D0-a9L%+-^GWY_XT?lEk?7 zPdUuS$NKBh^wX!#sjQx1+!X(Zq zZn`LCJ1~ADrx&&`1#x`b0S3=C2*IWVm~-Kv#IS0-Z02i z{tcvE_vbg)nX(KFv(}*7QhE=f%m%1OCgPWYoKXz}gBk}bnqyr4K$JCslpWoWWoIJ; zH0?9GX=^H`KLpx0{RBuE_|7(N28LH2z`ICL!c%T4L>XTPlNbx=%982%Ko*nWLWpoE zkTZQ#2a^=@oyCmP&v!7X$fDnTfiNy`1> Date: Wed, 11 Jun 2025 09:52:04 +0200 Subject: [PATCH 06/13] Added empty check in function "publish_new_state()". Moved code from functions "publish_...()" to function "loop()". --- .../panasonic_heatpump_binary_sensor.cpp | 3 + .../number/panasonic_heatpump_number.cpp | 5 +- .../panasonic_heatpump/panasonic_heatpump.cpp | 114 ++++++------------ .../panasonic_heatpump/panasonic_heatpump.h | 10 +- .../select/panasonic_heatpump_select.cpp | 7 +- .../sensor/panasonic_heatpump_sensor.cpp | 3 + .../switch/panasonic_heatpump_switch.cpp | 3 + .../panasonic_heatpump_text_sensor.cpp | 3 + 8 files changed, 57 insertions(+), 91 deletions(-) diff --git a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp index 2ef6264..7dfa8d8 100644 --- a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp +++ b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp @@ -15,6 +15,8 @@ namespace esphome void PanasonicHeatpumpBinarySensor::publish_new_state(const std::vector& data) { + if (data.empty()) return; + bool new_state; switch (this->id_) { @@ -158,6 +160,7 @@ namespace esphome } default: return; }; + this->publish_state(new_state); } } // namespace panasonic_heatpump diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp index 5b112da..06d762f 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp @@ -195,6 +195,7 @@ namespace esphome this->keep_state_--; return; } + if (data.empty()) return; float new_state; switch (this->id_) @@ -399,16 +400,18 @@ namespace esphome } default: return; }; + this->publish_state(new_state); } bool PanasonicHeatpumpNumber::set_traits(const std::vector& data) { + if (data.empty()) return false; + std::string top76 = PanasonicDecode::getTextState( PanasonicDecode::WaterTempControl, PanasonicDecode::getBit7and8(data[28])); // Heating Mode std::string top81 = PanasonicDecode::getTextState( PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode - switch (this->id_) { case NumberIds::CONF_SET5: diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index 484cdf0..4514969 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -60,37 +60,55 @@ namespace esphome } case LoopState::PUBLISH_SENSOR: { - this->publish_sensor(this->heatpump_message_); + for (auto *entity : this->sensors_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::PUBLISH_BINARY_SENSOR; break; } case LoopState::PUBLISH_BINARY_SENSOR: { - this->publish_binary_sensor(this->heatpump_message_); + for (auto *entity : this->binary_sensors_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::PUBLISH_TEXT_SENSOR; break; } case LoopState::PUBLISH_TEXT_SENSOR: { - this->publish_text_sensor(this->heatpump_message_); + for (auto *entity : this->text_sensors_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::PUBLISH_NUMBER; break; } case LoopState::PUBLISH_NUMBER: { - this->publish_number(this->heatpump_message_); + for (auto *entity : this->numbers_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::PUBLISH_SELECT; break; } case LoopState::PUBLISH_SELECT: { - this->publish_select(this->heatpump_message_); + for (auto *entity : this->selects_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::PUBLISH_SWITCH; break; } case LoopState::PUBLISH_SWITCH: { - this->publish_switch(this->heatpump_message_); + for (auto *entity : this->switches_) + { + entity->publish_new_state(this->heatpump_message_); + } this->loop_state_ = LoopState::SEND_REQUEST; break; } @@ -108,19 +126,19 @@ namespace esphome } default: { - if (this->set_traits_loop_) this->set_traits_total_++; + if (this->traits_changed_) this->traits_update_counter_++; // Perform reboot only if a traits (e.g. min/max value of a number entity) was changed the second time. // The first traits change should happen before controller is connected to home assistant, - // because the default min/max value is 0. - if (this->set_traits_total_ > 1) + // because the initial traits value is 0 or an empty vector. + if (this->traits_update_counter_ > 1) { - ESP_LOGW(TAG, "Min/max values have changed. Rebooting so Home Assistant reconfigures the number component."); + ESP_LOGW(TAG, "Limit values have changed. Rebooting so Home Assistant can reconfigures the entity limits."); delay(100); // NOLINT App.safe_reboot(); } - this->set_traits_loop_ = false; + this->traits_changed_ = false; this->loop_state_ = LoopState::READ_RESPONSE; break; } @@ -396,23 +414,9 @@ namespace esphome this->next_request_ = RequestType::COMMAND; } - void PanasonicHeatpumpComponent::publish_binary_sensor(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->binary_sensors_) - { - entity->publish_new_state(data); - } - } - - void PanasonicHeatpumpComponent::publish_number(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->numbers_) - { - entity->publish_new_state(data); - } - } + // traits can be changed anytime, but entities will only be updated in home assistant, + // if the traits was set before connecting to home assistant. If now a traits must be changed later, + // a reboot of the ESP controller is required to see the changes in home assistant. void PanasonicHeatpumpComponent::set_number_traits(const std::vector& data) { @@ -423,27 +427,9 @@ namespace esphome PanasonicDecode::WaterTempControl, PanasonicDecode::getBit5and6(data[28])); // Cooling Mode // ToDo: Convert top76 and top81 into int and pass them to set_traits(); - // traits can be changed anytime, but entities will only be updated in home assistant, - // if the traits was set before connecting to home assistant. If now a traits must be changed later, - // a reboot of the ESP controller is required to see the changes in home assistant. - - bool change_detected = false; for (auto *entity : this->numbers_) { - change_detected = entity->set_traits(data) ? true : change_detected; - } - if (change_detected) - { - this->set_traits_loop_ = true; - } - } - - void PanasonicHeatpumpComponent::publish_select(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->selects_) - { - entity->publish_new_state(data); + this->traits_changed_ = entity->set_traits(data) ? true : this->traits_changed_; } } @@ -452,41 +438,9 @@ namespace esphome if (data.empty()) return; bool top120 = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); // Heat Cool Control - bool change_detected = false; for (auto *entity : this->selects_) { - change_detected = entity->set_traits(data) ? true : change_detected; - } - if (change_detected) - { - this->set_traits_loop_ = true; - } - } - - void PanasonicHeatpumpComponent::publish_sensor(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->sensors_) - { - entity->publish_new_state(data); - } - } - - void PanasonicHeatpumpComponent::publish_switch(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->switches_) - { - entity->publish_new_state(data); - } - } - - void PanasonicHeatpumpComponent::publish_text_sensor(const std::vector& data) - { - if (data.empty()) return; - for (auto *entity : this->text_sensors_) - { - entity->publish_new_state(data); + this->traits_changed_ = entity->set_traits(data) ? true : this->traits_changed_ ; } } } // namespace panasonic_heatpump diff --git a/components/panasonic_heatpump/panasonic_heatpump.h b/components/panasonic_heatpump/panasonic_heatpump.h index c8e445c..b739ee5 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.h +++ b/components/panasonic_heatpump/panasonic_heatpump.h @@ -55,7 +55,7 @@ namespace esphome class PanasonicHeatpumpComponent : public PollingComponent, public uart::UARTDevice { public: - bool set_traits_loop_ { false }; + bool traits_changed_ { false }; PanasonicHeatpumpComponent() = default; // base class functions @@ -99,7 +99,7 @@ namespace esphome bool request_receiving_ { false }; RequestType next_request_ { RequestType::INITIAL }; LoopState loop_state_ { LoopState::RESTART_LOOP }; - uint8_t set_traits_total_ { 0 }; + uint8_t traits_update_counter_ { 0 }; // entity vectors std::vector binary_sensors_; std::vector numbers_; @@ -114,12 +114,6 @@ namespace esphome void read_request(); bool check_response(const std::vector& data); // entity functions - void publish_binary_sensor(const std::vector& data); - void publish_number(const std::vector& data); - void publish_select(const std::vector& data); - void publish_sensor(const std::vector& data); - void publish_switch(const std::vector& data); - void publish_text_sensor(const std::vector& data); void set_number_traits(const std::vector& data); void set_select_traits(const std::vector& data); }; diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp index aacf1ee..1e88228 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp @@ -69,6 +69,7 @@ namespace esphome this->keep_state_--; return; } + if (data.empty()) return; std::string new_state; switch (this->id_) @@ -117,13 +118,15 @@ namespace esphome } default: return; }; - Select::publish_state(new_state); + + this->publish_state(new_state); } bool PanasonicHeatpumpSelect::set_traits(const std::vector& data) { - bool top120 = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); // Heat Cool Control + if (data.empty()) return false; + bool top120 = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23])); // Heat Cool Control switch (this->id_) { case SelectIds::CONF_SET9: diff --git a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp index c57113a..ae6bcdd 100644 --- a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp +++ b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp @@ -15,6 +15,8 @@ namespace esphome void PanasonicHeatpumpSensor::publish_new_state(const std::vector& data) { + if (data.empty()) return; + float new_state; switch (this->id_) { @@ -590,6 +592,7 @@ namespace esphome } default: return; }; + this->publish_state(new_state); } } // namespace panasonic_heatpump diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp index 651c0be..6b2ef19 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp @@ -16,6 +16,7 @@ namespace esphome void PanasonicHeatpumpSwitch::write_state(bool state) { size_t value = state ? 1 : 0; + switch (this->id_) { case SwitchIds::CONF_SET1: @@ -96,6 +97,7 @@ namespace esphome this->keep_state_--; return; } + if (data.empty()) return; bool new_state; switch (this->id_) @@ -174,6 +176,7 @@ namespace esphome } default: return; }; + this->publish_state(new_state); } } // namespace panasonic_heatpump diff --git a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp index a8c8333..a6d1d33 100644 --- a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp +++ b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp @@ -15,6 +15,8 @@ namespace esphome void PanasonicHeatpumpTextSensor::publish_new_state(const std::vector& data) { + if (data.empty()) return; + std::string new_state; switch (this->id_) { @@ -146,6 +148,7 @@ namespace esphome } default: return; }; + this->publish_state(new_state); } } // namespace panasonic_heatpump From 97aa262c70587bc2c6938e7339e3a11edd8782c5 Mon Sep 17 00:00:00 2001 From: ElVit Date: Wed, 11 Jun 2025 18:10:37 +0200 Subject: [PATCH 07/13] Updated decode excel file --- .../panasonic_heatpump/heishamon_decode.xlsx | Bin 167090 -> 155800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/prototypes/panasonic_heatpump/heishamon_decode.xlsx b/prototypes/panasonic_heatpump/heishamon_decode.xlsx index 98bf309b480be0c0286e39a72d7642791fac6030..41dc857f582630f7cc6535400b7dbebff8ff98af 100644 GIT binary patch literal 155800 zcmeFYgL7r!w=Ehw9ox2T+ji2iZFa}DZQFJ_wrv|7>+SxX`>M{Xd*5Gh?ykyORjYQg z#+u)lV~#o37eyIRFjOE2ASfUpAR-`l87j#tU?3m^SRf!2ASe(W5qmoqQ#%&}RZj;~ zXFYlkTN}axFc8W-AP~U!|L^C2a0Dh(`sEK85kqby-+#o{mN`y0O-p+=R<+WvfaAFG3lKlL$gpV_a{0EjwsdbjBN(5|%W+9GS>?6&LnVL_7 zB~D^+uY9o|#RFThmWcddhfz%-ra}PL?^FEVqPwhS`{_|VT9Jvn5{;?M=jm7=Q7BEm z8Up37%E&z1FxdD{Si$T{0} z(9P%Y46#rM24ppU=EO$=Bq+k5~=$AmfA#U zjxHp{+3KahMO4KO1eN&J?e{UhvBevGK1%eo&sr6UjLJjO;$9t+`sU~gNlosQBJNnV zH-zN2^tkktE+Oqn>DC=fUD;NaFEh47BEE1ZT8}tGuYnDXQj8md&X?}5JuIiSZS+zD zyd)k}Q=MV?R43-+YK6d7{#%=vmdpN#ibK_J+UEHEW?jdFz%4g^^fQA zxfgzwWYj|^D+%-@tqQvFkJwAS85VJev|6Y=$D+)Ty;G)=@D5{#H8$KcCn?bVVj-l& zpc_fda7M_72ehesP#s)d5e(xeB@^wqVJt;j3(?mWVzp#W2Z|f1@mpe$Rv8l-vOodI zp3&cto{9nGu;pnGv{MUYy`WaU=6{2~M`w{Lg7dnf`dwvHrbja(aPg~+rYWkOVsxj& z;jq3l;e{;Kn)iio`Nzx%Y+084+@(nF8))>v&DY#?Cb} zqpj8DAx&o3j@VRqeQQp~$^vW4uaXp6Ah$U~AKIQffH&91kYsb8c(AWTWnhV1l9^LM1d9Dj z=hvocVlC@oWzIS)w;W~M)+&eaj>bdML=0RAfI){E#x2MGn-|cCB0{)D) z#mfaU&`Nkvxaw~ zXzk>1IA8o3(lRokYUkxv?rJ*2E9XlQJlH*6?F-$X7wm%Fxb@Y}RT3aAQ*Fwnp|k|4 zP2aX-7UxnqZbf9-4`hXC(ERtrDbAo*j?yuXdm`iwR0r`=2ZMXO;%y56sg0o$Ur}ytn({)BZftptyXI&eBQfq84I8VAyT-;#5N((W0oJ24<8y+yq2@mq%(>W zZEJw*z8^hD2Yzs$$N*y7tu4pMfY}v40IbK?xqp5m5gRzM)z@=oZLfNrsDXFWx%3V0 z6T-0{rVIUKPy-gzqhP*3Q~!Lh_OaB9&YSk5yZ`Z}e_>(wX6@yQF#nr5kNdD=2W^G= z;cYMX_m==b1^#!PIHE4CQUNH4CNvNbHV_mrKqvmIp8j{W_)0Hw| zHOPo4_8j~bIM)-O9GaNKsnvwqV7q{Tc>f|~GiI?U@zpa>>;`I>5Ii@`NaAziAn`P5 z_Pn(?N1<62C7+%)L<>?atA0jodJ~!&iWWI5l|8m@A-M(}ch&Ojo~cn*{J>zS)r{$h z7EMKyZB4)>p(ae?Xrw*+Mat0Pc(-lK$cJ zr^fcaOZnDjQ37;bkFviviq8mox2voPye;XG>Tqk!YCjyS7mmctc%JhH8IDwMw6ipi zP~5bwKOPIb5pFYwY%Ry~CpJ^DgYZHeBQe$j4w?0%>bNw*N~=OV9?TXYjG3y0-Af$u zJQmVA_B}--lx!nmH&!x)j3tq`^YRQQ?)8mUM$sJ$^Qj~JgbCo<|0-S17N({y&J6!KG5xDy zSxGw98;qzUJCN@`#BUz?+>rOtmzC64Mb7BADv1dw3R;e&q!aBfJ8vX=gk>DDkqQ3X zzh-Y3Z0lxM%zJ{Ax0SIVxA8mXnGv5n(vt}E?C8>l7qV76Ye!%+-@`@d>iK=talyQn zJpru?30E^WtaNC3=NNgHl{txlvR$JJtE(Ouv_Ghl_#ZEqQ+Llkqtq63k<%H{oiK_j zIY8us^QbCbpcCg8VLxbiZbX?S{eZq$<~8 zYVJWrZbQpJq*b^_)( z%oIm|fd<&NAU5HV>b5DNz9}J2mk!~9+e$#EBodn)2i)1vTX>K2P)l>etmh<5+d=YM zst9iIgr2m58r-J@v=mlN=T24x=3Tk^i)5@x7tW}wwQ(w_3o(p3xI}M}hJPNyi3Ndz zW0;?NAwE%#|KtvCoffSfa!A_W7#V9Ex%)3+1rYW7yDHn(9+%54_&XvWp`V_y^ID^M zJsqj;nnTN2r=jS~?oeh|)~rs*%^kgEWsPw37lKyR`LU;b{MP!U58|+E#33EKg5LeM z$Z~7$_sfEUK?*^yPuJJe0>k&?{(?J3VI)TG_uCyq?%;Pfw%mX~Pba2+*UO!KZtuta z$sy}{S&cKt0+h}X#c4dxjhO|Nm4 zd(~%5_;&prPl?w^^p0b>d)FP0nb*kG>Avav?oMguh;Q~i`^YTbjT0Q+9skHIxI0%! zXzvUY?^7u5AgI70CjKMSNKF$?j+0HzD#8f;ddbEBAx{*(YSRNx%u+WT$rGc^2)9k= z-P*=yq{Bo0A0miLWx)?l8sNK&Dr+*1G2|F7ssMw((Z64$?7>BwcUpH-6%7A=;^sac zlqwK>zwiGk&Gq}b-haQVEd4pv`}L_H@O|{GQ2DuV@VUXE(5n^I+wS3bw*h!KT+6P3 z!S1Qb53g>`i`qB&y?*Q99U9)lRW%Q|7koz9_qxzNM(-5}IE9 zg{JDqzb68IAAc8mTlKo}de`O64K2P#+%Wk&#QT-hlnb8{^`|{g(R+FXmv!@ogh- z!Z45?`!938Z8qjZ=bOsqaIM?HDa?RMkjA&zORZ-R$Hflq$c|pu`w>I$$40K->zx2Y zk5(|#U$fW2${>c3DcimJ>mMuX2RkK^7<*1W9mfWt=AElsAJOljLu8VfFvHd`1F zJzekx_30=V+YpJzrcrnGqdNj3A0INnuk473HzTgqhvZrT#2m^&_MrbR#n}g<({{m= z*X9JUJ+Y^$?m&1Z^Vx$2U)ko}A|g1K)^)?9=G@xm0nX!uh2Y_MjJM*S2x` zK!$d=j~#+LWAQzSSv}#KEcpz>do}BqjPg=F`tFk%cG+bqwtOYAoD?sP=>4WTcYoDd{%|4G2}(7b$Q{0(HcvO#k!3p zjl+(S$=bmsGtko6ca>Y5_r7M`W~A!$E?~!NlL6vkwC3<;AerE4Pxxd+@v(=oF32|Z z)27pAHN>zBii2R49i$Bvkzq6W_lw~&$N-;R0+~rBYCon=VxZ6C4vb_=^G|=<)c=5N znV{adr}kbgxdl=gd4@6AgLe;|_sH@Nj<$ut*-+$KE4j_`tFl{P_Ikr@VMCd!tPIf! zR~v5e+~039#eq1hS*Kk?Hw%xq&F|*yjIz-YZ_z8(BB|KMfJmvMlV9{Ui*5|D-JJvk z&jiOe^Y>p{F3u8rl(-%`E#Vd^W0U{7Lb{<{*VnQJNR#M#TXj<%eN%)DRQ8>cTeQn= z5z7WSL*vYWVRqGNwxR*&sN`9dc6*$@f6QO&xvJRHx)^k7Vbjgxa2^*LVb^S~WY@X1 z#oEB$S#E$=yMYCjS#?{QX{ijcJuMJxd+lps3b|7jL=@;kXh^7YrXyV6B$eS*w!3F0 znU@osr-O{PqtndWSOQ>)nY*fxZtWV!@1U}AQF(#M`TkKX#St8B2ZOVv$aMw?jLKMt zrOw6K!`ZT^QiO~3*eW;2zx!Xf;KbM+w>xiy!e%>*EWHo(A$Lr@pRwDYh7hD1F$%D4;l*nxP=>C|Ly(}G#p9fTd3^+ z(1;urWezxtOJ0=NR+r9{>hS0^CF|VV(P8Oy^jGLLuiG6na z%X|(Gsdg>Z?C(QUMDZKv{rAl5hyfk!dtHMSl<){Cd-}W&hF^} zwZ;gUyF~J6hoz6~;wBMc6xd7}4ZRPr11}BxR&%Kpu&)QQt-pwZLR;_if-3kShpsyX zc9_nq2DN+n=zC7XB5+s51(@qJVt4bJG!f=&O~($F6v0`c?e*x=a}C3TEjHnygMEXu zV$*|$(}OZmgROdnwjDOmA9xNEa6q}czOIlyi(NG-TTRDl5|dMo19Xh!JQ(nGSia&z3k-6SKge4J0uQ~ z?OAp9G#=66kwZfvzTx3iV}5J2&-yqS1@x(Ui{OR!8ul0fvK{_}u_(x?!<|gD9@*BI z4mR;*I7z?`UQhkQs8FL|i%nhbo*5#om1kX^9<&9<>SgTwYo2hyO}jY0CJ)8J#d^ox zRHg_PIo%>Lv4%b&-pYIVcVD&(V&QL9cS`$m$K4bhNV~B+lqWtA0_A7dfu3sj_gCoq z5W8?MKInV$D@Od*>sU~44SUQg>jaN**D8zJz#7rcIH{XrJsQD$5YsgC?NT^)tE8H_<lInW9#%>36{lt1N z{)s94hmTbgk4Dpc=AHIL}bKqoqtvN8DQIt568vdm>MS}F?zIN9%K3Ryrf1jAJml9 zD_IT4HbI+u>ly2hj!~)&Y-~qx$&0H9okp>q>K4e!4|mK1Fi46^3hRrEgx_Z=Z3CAU z9pbko-UV$3KkD#nO_$%S|M>baa?I3N<&21Y*`R8j4mi_5@;A2Q63F%$XF6XS(nwss@~a}p?_(ALwU zs7R9{gg{X$Zt{)vz!%b0i;VPa?(vVfCOScDBddU@)o1JQBhq)sQny$i;keQSN#ZWVunXkadVixwBeK!i!dF! zbuKA0>@VZN3yMOWgkoW?h%mrKLuJ|XY7{IqA>aNLH#s@GBqQ`X4UiRadsNeko@Pk+ zZAl^-#0oCb!W7flCK1@VOr^L<(afkQlK4r@zv2~-sxLgd=&ay&b2z)`-N5o{H=%&+ zo#mHTQdq@!r+tn@@4mAW5Kzk%vmf>(7Eof#52d1JV|fgjiQJY&Xn!LzWhw42F`*qb z6PIEi9GW54of#cHjn2cRq@k0Up*%&SD6i)87{;ki$Wc4-~;&u|CyiiNqr&q~sgAdn;ATe>4%bXZ)>3$Az_81>0p zL%2MaC~2J}D;;l4@<`UQjtUEQJY7k78jdO(dL`DR2-TsS((g36K$e1f+|tTAHlB$i zbbOpcxj3<&I{R!qh1WQ4S~N2&ia5KzkiKX=hnC-A105>Mq!ZMRMtomfT++M^DfP)Q z!>izP)qDx9(EWXF15`!aSW}y+g!97ikK~nX_Z~l*PFB$ueNa%04w$)+!ds_drdd&$ zIHa-R5+`+-)xaaC(vjPvSl72lU$mTRWdSywHOi9qnw)j)Ts?I~JVbVknv$GGi|7bp z1wcOV#8i!?*~?ob#vnF*3nQ%32s%VORT_Xf$Tpz=s{(Bz<4{~~c(r1jt`?eDLusfs zu%RpkCPe>7ObasBl*Wf6p14n?n`i(xCo+YgztV{p)UBB!SjGC#h$&p7c&13Z1OX+;6HNK8&n2y zM6uWa{G6P(d}El7Qh>cUGj>OEWgM0Cv?hJ~O;lm&6le+K#Y`(=dLR$SgGLff(|?y2 zZ$DvHGAJFlbmK~y;`38Tl|`BuJ?E_f3P6a%lKSGjYtZ7VYOo_gcoO69cE7)P~~wBY=MwYR{W24x6M zGXuPY=&^*ZhrEfW&P}-0rdP=jY7Ln-Fk zn98vC;0!?|0T_T)=YT<_**N`U2_*W1SEg$1kfF6yh)l2k0By6RMJf`PV`5!_21m|a zJK?_5^W;932^gy_2kp#dQdnPUs)NF1=oj^?W@rmNCKi|o03;M;RF=(w+ZO94PT*=9 zB#t;fChaW=53csyRo*F%v@4X3~Xnm|XOdW&@Apq|#%uT>?BWIVdW@Qj$WRxT_u7 zZVT9={8mKwNXr3^tuTqPc-jte2ZR~n;#dSD#2NK@WvUyAkwA9kLc1w|laSIbI_iJq z&DaXD?TA=@we`_XfC6KVk^YK_mjgp+4j?Sj^a1y2^L5JmXopM(q_J3cn&}RF6!_*P zFgSOIve;e&|7e0(SfD)`R=SLR2gbg?1kQXw7#A+ibtg)AFf`atH!1F-uxLuc_~4DO z8Pf=KJ+$zY?cw^4Z;^|nFtOo?4iFL;KR0$_q*})ybA0pu{O(E)UH+K>v@2IxboHQv z090~adtUrv#=Eb{114Cgv<(U%oW~+3e6%`C+Xl7#MXNbXAy2>AYHgFvN&+&LA6{t| zNzS!3p=a21V=eygBL=DpMv00kBgR{xt!hLLI%o}k*R)`Ep_SPHkNU#G!BT8&I?o^B z11YwymG;BqJgI=>-0&R!-Hbek>Wzp;B`NtvMnn$JPzaVqUKMn%ez^A?H2Bf6gR4|pXnL?zn{OxZ7}i7?t9Im$1&^0~@lp93%gbegByi#KHx`bC9{8ZqCxCgl=bv?lP$DY~wlS($b}Fq! zXJ=kE1*}G5xOlsB)r3ihcqde}oUB^OzDZT?mQ(1PuaTE9x${5|(&1QiBLPInk&{Iuze6=` z0C7DKNvjqc?y67}uW(_|L>qT8mB~*dOahdXJ5fqwF5z}{(Pu) zg`Vb=bSO}hcaGoHgebCZN&*JHX4Qa(E#-8lR9M>MbI854`s80z+x(=t6v?1{(#ip@ zM<|5Wf2hp?mcsdKZmE2+@w}kFPfs=$wpO$4@Q}Q7yVU=*VX+riPEVF@F4&Moda;u# zp4qV#z-*qC#1&P`04P!kE+#U4gnclKywli>Pz?ZnlZK_4B&i14j_atMxIiTH+AE%j z7G@CR&HFHM4(Hk(p1a}I%e6``*vf05meT!Od_>rHgU&8JF@Nos)pFUNu zy1NOMLHDEg*0n?stNR#68~^Lcf-ZXqv|om?Y5sMr+@k>&=2@aV#u09SFh!dzBG(mD zH?!(@Sto_mZZxr{2Ubai{VRY?0XblLR5H!_P^()sAZMiEDV>qq35$LlH#3|zeST& zH(0E}uL-JG9*iI+GxB(gS)QwMi;8?n$tD)0K+MlMpR|&bwy#bmwN*qZr(_m**(pp9 zNEuK}5sHdjO1BxaO}MK$6O<{r_>>bOa^@{mqyYk-Sagb|GKW%Qp47z90$h>{CMy7) z=GV|1{-91}dSa6&|0We2o#3i8LmK8)pd>Ga^tdX712Dn@(3@1{1z0Kz`CYG4yDf1h zp7f-a1fmkLeeJW+zUq3CFn(U!>u+Nr2~u(zx{@WP$A&~>D)#5_&x#H9L|g*&q@I^@ zmQ7S-u-ds&^KVh*kI*a5(nfF$z?rFw^T%Xp>M=ifPtaXg{6f zy^!H&f~{@$m64O3mMeq_Gn>^Bde188r?dl?DX@=xs;qsB)_b(9^<*CKk9?Oa06!6L zw#zWpu~XVg+h)}f8_LK}3;)InwQSZ)#iSC?HQTr8jmrnZ36D3fW#~rLi2<7wy0NfQ z_+NEl&jc6=DzY-EAPQL4Xh|shY!$~bRm;ThU9G6jkm(!V(9ZUAMGdd-Kj@H{PkjMv zG5Xe80_X_n68g4;D)dMA8~g83cYxg?!;Kx=*j|HtWBcT82JfS;JX&*oId$(?aOCcd zYj)m`SGSjNuEVeX`j{QOOxdgVGQhLD#)G5Hl9vBY+tmLTg8Eqad5{&nsKc@r)r{ag)neBK59Hag0Rt!7 z1B7oQ9s1_Tf4KpGj6X-SYUUF3A=^e=RB!fSC3kr{Kp!{e@cQIZB;ILD0-vblB|P!Z z8Ub}o!kra%bbk&n`WG+mR)0OfR&3tY^K~5Dd$>UUrBR*8cu@=YycX?bP2TI z1L*Qg1B>Hou=d)Kn<(n8T*{@;Mt7_xIoaF96eDs0v;bC2RuW_^uxXp%|0wQniF~G< z0mZrg?YuF{=YTQ<;(iS1QHp#$w*K%>@DW{Yz1|je6@_^LrKNKkAxLPuQDI`U*e8qZM?4h1EWw z4Kj@50G{?v0_^U@B%P;MkS~_L+`OnD&y2CAUcz(im-D~Rzw-ggqdm5R6593*>LIS zgK+?B3pFPjcu$UP>XWsc%%NlRg+Lf;8fl_ngawx21DDJ2M^PoD;Ms1$b z+Z?VXMrAsHqba%Dsm2n(I z+tu#R&rKexms;wsIXqn4Ex>}C!`R30aBBX0)T9LPy(!jkU2@cIKrWKC2dJiLi3zns zJ5^H#mQ)L6)msH_Diy0Sn^l-b$GFZ-v4+_J=2s&frzO@+O~1kT^Yn2!Td8;IySOCL zy4wO(H}ObCS;R*=$^h*azhN_9On`v>xA^)HFC|`Q#*gi@Cr&4m8^Fxy$=+mO(f32! z17k|4_MfF~*F@ZsO*}P=aG3}2zil+uivi6H7cCgLwlWw{+WGaS=*?D8-Bw8@1t|yR4COYS1NV&g?zFh1U7C`pCy(=^=zIN)6T4Gq|G#$2 zVY+CHlH9h!rPHP````pC(Z&qZ}rB^wszK&c(JVb%`sY%~ zY?~=>`%20{9=vz0tFw0aw?$tb+%c}wb$d_j;OT4^RVRRUtPCGgU7M#^%WRE8x!5jB z4_u;CoWA<9GZY(l^RE@Rdk}y&d(b7`qcYZeX4KG5bh)3jt{Fj`a`+mR; z6|!QObE64ei*GptW zG72lQ?uj443ZPW6?bo!5Ra#`NBTB0Nm58n?5YHErEy9_Ied9IaS_{We5UL_&vWEA6 z+W#e+uYoO!3j`#c^#8lrhWWoX+bGp${M&4kddb7;o2o4M7x|8S!>RGTg|>4;-TaU7bPbv0 zLQ|zqn}c|S!tn0k?Xz=9C^Ne{$N>r}ddl%gHxtRolMJ=d-%bpar&3EVs71W4 z09KhTe1MTGVhrLrXmWF4)|9IKrRY^ZeE1QO#Ok=Ox7x&dhV_qqKb4u=yW4QH6>xog zvrFlZi1_`rhnBezTdUD`NtEHaxju>jd!LlEYlWnwLvbCw4xrJZXI{B)e_q64iFwxV zOh#5B@h<6KzwOIT`DI-A8wxlyeJE)04109RHztTjdI$D0`ei>6r-jc$BQH4gYhj=% zE*pi#leoSRO$A7>jT-b_@&4*X1a@nZ?8M25V(**GvE zATXiRt=Qh4U*GMYPY)aK?%%J^-=Fun1_T+Q27Vtit-n6wdbimhLJhv&UN1znc>%ju zzQ0~xZ+_wTejnU`-`{?1<+i^mJ;A*c8VQ9%=l@Mug)w?I(xb$~ zY;8@*1Gp@52_i1AiEc&&<(K-=R_|>D|mARnA+(Z5w#Gy3gTXqP4?? zX!$)ZxNJ(O#(ZL2$?4kj{aUS=>sehT+!)yQlviwleg#t} zT{#6|{ca>=KzmvV{%I%l3ob8N$tL`xxW9hXf$t}~M*ssp${FK_jR>sA z`s0dyF7Nc7471eAp3Lgq1UQ?wTc&N2Hg)A*tM(6U=nl1Vgug__ zC>h(tdI!3{K;@<&{GoUG2J3T>DaFsY`fpOPvqkLP)_ zuwUxC>D0EfdUiEs^q`e#O@)e*uH?08seJqd`1XoVZa?RA>MHRN0B^fYk&Q^(lKXHVpyfm($ za+QR0wV)Ts?TEFyCw{{x*Sw(<9_!!Ujc-%eesAc8x+?u764F~z4t@jmH-%pZBC~cb zQ$e9*!{_km(&@pGaVm@SLAA`3?gt7vf9{q#jnT#*d$h|u@f$b3XuHP4FLew7wDVCThWi?B3wz%=6aVKb#s__h^VV9~OdQv;u+&; zwbC}F%d2dqGwO3CPfP2e5RWSXa=E(?{6x0^Bv@LbTktW^H&-%W9Y!bqE-gLNAAsLs zlD_pEWi6ufStiezvoGerat!~C`rv{sn4L~OYygE*<#thdih%WXPRflYA7UtzTMbgZ z3PG*A8}qAUVruE9y8p6uzwdYvHw(SP%+cr++Y+TT)OCEpxz(v&WP~qX8!la&M1)mo zJ{NgfW@UX1Nj%uIq|y~Cc_%Jihs1@XIAKgdncG{WUJN??A8rROZK#MSRRI%^Z0gWl z`6HJ3ed`#v_UIRvQCL7Et|_Aqi#e>9{O9pFp#i)J%%_0#xSp;~9Cg3aqkCH~v# zU+MB}SuFhD$#xK?V^7F&;)x(B2Na8RBMMM>FSgEMxw3mgrR|&m>8HextILw+DC{S^ z#HyeX?lk@ z;%RgA*8#Z55Yxpzz>bw$`v^lg@!~Ofwkg2?8n2DnnOUUOrN7W;7o3d+?~jF>p)`lF zO)%*Jh-N|sjdBZbP>lK9FiEF}cSd%Wz^qMEObsEs8 zHaQ`;5lH&ohV1Dj56>@WPJc4(DHZV*%Z6r98{+t0!j$KWWUn7td0brRttV@qxR(TG z+-fB_+<5v(*#-S^0#4qH*@eQoThq;j^Qv|Q;Y0+`wC|>rbrF~3+D^g%fe-jbMu+; znscWTT*r_G!l#tA`s??EI7b($0}+4jnaL0ifo;J9vvyPwS%AY$xPqu9~0i$utfZ=E^@3eVYf z0tP=L%Lpi~wH2;RQF*EfiTz9$OAc=OxXa?CB?^F(2jLObXg^U5pa=o`f;2AIV1V$g zNPycGEClF3y$yk_*&ReF3LgxOZJn=1jkfh6zhOL~%_~#jQSzm_1yHz^VV0)pw^OVq ziK{z{y}?^B7|XDcvuSoSQ)Xv^$XPyxPy47Q&d5LY^6~HWcVj@k@-CC)enO`##h_KR zqF)gbaBktT;5BRcV(ZcXjYxK5-&gAEX*0Cn2*a~yBJpv6?>y#}$uSy=@9kf)- zR_nltVYk*`y8^HB6r-P}DjeDRlVK@3&=z2P-a$=?n_3zA)ZRWX;S=Il(1%cj|Za1?OLGkvJ%xSp>hD(p^UT_ zgs|aia4A)OA)Ere>Zy4{e_bnAGg{^6Sm_wBvA*JIKx6QYzLrc1ZL8tNl2|-5A?}!& zdJLNk2~j2Ao&`mg1jD~6Id{cO>wD-Sp|FSOBYy-#U>^*j?aNC5 z*QaIVqI=)$`4LX=lnvAFD2e-mStmWT8`uPe`Zok_M2?4yfHT4&^{i~}!4@qaw7Ltr zD!31?)D)l}XGY2DqtUbnrNE%-jW%tFKn?w4uFj>{KKZhbyWyKBBPKhT^zV$L7M=|5Bz&gg&bRqN&#m0)PL zvMvxEK;!WrGvFSPAY2N%hagayaVztfz9#tWT^8ttRD$a!bR=qccSGtWM|O>P^KpdT z`9qbY$27`k2L0mErd%>rR^X0^B?g7C_rbC#VO?-su>`$ORDmU9BkbWK>3S$aQawv> z+k#!7@V*PaGkNZ1=HHZjLw3a$`RH0_1-0!yynr33Jb`;zwJfn0Duo|a7?Vp^*2_oB z^c*T(ijocM;tp;bwn9G-;d$&h1rpfd7<`O7;}7@B15T;Lr;ZZ8GHLc%OdMsx0ykh+lS zUbowkZ=je9wDrNoJ8CSw2W#=Z;V2jJJcA37E^d16qVOqlT7umuXSssIk~(4UKUfzx z9Vmbpi)DMSTjSl)*y1H8eI01dy1i^v5@RS6xzbZORn)wo7&d8J|IUi~Mg4+p#>llF z#=+$;o8z{@azK(9Z;-Y<_%ppWHz9G)t0z7{&0cLH;%P+1)AMHM#I&uT5;-j5bbRog zURQ+=-_v7;aIfXZxr6i{tT`VAUm;e5fP1Jh&N1b@E2Xg#Qg3bxRR;55w(M{s6yjuP z!C>d<=p?FBI|3T(ARRblJ0{7tC4bh}rhQ!PJ?$M?JkyKPKO!9Ju^~29_!y2Y4=r(k%0(>8Q&^Au{2;6a` zVcFpEwjNu<|6YAYF3hr5p;kf;=<#6`&CVFCdR~ z_lZX*(SGMWO^FKJe_iR5$D~FEQF47d9e>an1hxbY_#f|y-%W)p6*k?(Hw~|d1b9uV zt^rb@Dd0{b)eVB{DAupEw4mZXCS0o7{^hurx|}_KB^3kmOf{a%ceNz6G3=`76+hmG z93TCqZ)om{De|RaVO9F3Tw1X92W`dqH>Y@`7FT!(2Z<`nx@%JmD8miwr?Y{5o2o_i z;HUM5M&>GM-o}}gf9+_B@3+1BBTmy)i->Pu^-IYGGn4e}N-Nsro05=aHPL4QLsPUT zJ2ZekmeY03i9T5KI!i}!=W(^;hHh~pL;v_WIeHExFHL}|QHpTl%ra^d>mzXijx%N;lb3GhF<}KWdYo&<8#kI+r*b|_gVo4~-c!(DuKwTr z>*^~Y6|K?K4-Fg)t9QIGJCzCOageECdtkCAeY;_fy(ae;>DX*Wu&#qBcBD+eoIBxsbt7MzRoiA0w@t(v~9W|(ck9Gm{S73FO1KuW{U!jB0 zM?wh&H_%upcU}ig6SbYLR7iET`-TIuc7LT>J{~Rd77qfSr*j4FMVkqD9(4iyM8H<) zgz&ToL3Og}oSCXoAgfHS2>S`e7+;Xy zP`VCy?eQQ(J|cmgomwmSA4$ZR5YVPq^48>RBHq@+ z41z4eQ%%0`8q#k#Uot%M(^@RiU5 zB3v;kbfveTv^0>0rUTgaA~u>=gE>u51oE0X$It*9D@ENm4et--Y{*SnqDC=v=rHjOmXNgVA-=s>X;3pPpT-9Eb8{ggNf)$ zY+ssQ+lKX)5vpjc_0ka_epJ=ZdSnuc9To!V*Qhw1ytQcvFcUByAD{i~ue^YDHe(>c zB2c`YP$wrSf|D73=zj2Dr`j)$E8s;mD|VsyE9$b1fynb zT2O*pQJW^iT~<5qganly*W(l4iTWl4H`KV-PPnf9<8%wU2a#X7s9kr0FM!6i;r+$G zJtuISfo=ta>jdE};9UDB+uCFXXx>_oKZlx}*?GkiepI`8;5^;1UILQHa1o2qP^ixe z{v;_l<&mB)D1@oOdOMdI5*QI6$x=d!fQhlX(WJPD}oR2M(#YxB-!to7Xw5gz|Ea)lWF!E)v&yeEGQ zzU_aHEUFk!s#ZQZ!jMWh0!yrciTg1DjSqT)H0or4T5Pb~oOKKq+8LKf2r6kU7@Ij89e)~~iwH!1le;QyiPo1!CeqBmpPw$ZUWPA100 zwr$(CZQHgd#>D2t6MHtl|DN5a-G{0^r@J4%y7#-Nx`me?nH*Wz6p2<+XVaxTH==*j z)MB&GM4C<{)y04l5CL%XjHgNwK9Cu>O#__9@ApNqS)r~*+eRbWh7a7cHH zzxp$S(3osr&VQtOEV#r^G9BNg>`#gB8J9R%GsE%bjFewE+o~}%Z8rljonz&LBN@yA z=Ss~vKN1t9&dDnXd@TrAwYiI{)H!=08B^{Tpv`1VOxhe$TAK;yg+^b3*|pL*7F4(i zf4erhHiAO;n%pP_pQUJ?Pid4=9Gs7t-d9Pp)5Q7G;x$z$7$FN0NQuZp z>H~kTVplw96KmX;E=BnH1{yFMiOr;va51|FEe`-txFWD5Rd*L+wxScf=fIG0>z+9# zE0~qEH6ITVd>QcO89cB*v{D~$n6xVHY2IZp{}oDg-sG7o85q3=Nl=w0qpjcNqt1{z zW~O{)U8H=U1*HKgoq|{>+1l7)rA1h|XOZCz3$F2vlz5?0(T98V@YX@GV}(e8w0eE^ zHqqfV0TjoO@pop#7uT7dY@}(q`W`{$V3Whw+47uL{t6O>*%FHZWkg2$DK`P(=wpk4 zKKmH_0o(N$W}^4PJv8PAKPv1`i|x9Wi*nBCetz59qs@L_bUpkj)p)(rnI0+%K8an( zDr{pAJXo5x$Stf?)8tT3C~jJAWU+N5>iE2`_c&Knq&k_%%%Wmp@Dv79_Js1Xo-Zp@ z{5l>XemfxdlSy#0OR2^i=p*b&)wnYD90q0kB25U#Ek$GH)4r_kzzS=qI8=G8zsy@& z7^eJ_`@B*=pAy;P!kgUn!W&)Su2;2_#y3l#q>mxRa~8z4&}g?C!&=GRpT9kBk_q84 zWxxJy$L^83FM=DJl_Sc$=Vv~g+?{l=rudW&X6E8_vQ!uHu4$43uocj*Ej@+tkIqCd z+a&)TGOoMJ`-~8sV45xkB?>k^s=i*mAQB>ul-dxF3!XZKnM|`=EnAk0f^Q~nR zd8PZ;udF2!PZHt=p>7w>mr)7axh+@O3Ohk)i(YB79MJjVb3ABRAd`oTk@&h<`6LOI zp2sUh3aV7Dg!~UB%+=X+N&zy@f7G)sd<6rTgjnGJFOJaQ4#=y+}$O z(J8z!8eOf{!cl&T&^XyPA;J#|OHa>Drp>7egmt!w-YvvCNkVQ~tXIo<&8_iXdbIV5ABKmD- zV3)*D=k<{I5v`otsthvl(*G1UJjK7?W>+kme+wyyVz54vV2I>ElWnAJLk%EK}!t{?9 zp-}*2G@wwru8E`kB-w>#Mv*L< zx4OWn-2ha%5w9Y#M5+!I^^B&KYRFk1K>|X;U+y&$u8d} z3RTD4Yc|Ty-rHwv0tqT5Tgf5oEu!=)#oD=Uc54-MfWN>?r$9w0m0c98^gQ#Xky#tx>60f{d($A00VXsaoNC-Inr?t=IgA{t-oi_vLP zbsTj%1zvLS=%@8Rq!CT>E}DK8GjrcT_!@eFd#l{GrQG%yL-I5DkTYBxbmiO2^i`wZ6Rs^FWUch`^h0G>pd3cp=Spt$qMlvdy@f{U0g{y}(}?K-6sXj4 zEdBQ`@d|lrIylI?bFbgR^p3^QwJIy0Oo*fYT<4$X?*x~Uf1XH(0nMwbye+mX_-xw9 zL+fZ#Hy(eJua-fj!*O>OatPo#dj3#Jq5Uvqy~z`}TQaYb0n49=brHa23P4gXH+cgF zu#lXVWg`L!44R5V%GN4sy$@k(IpP}f@WxB=!vcv9Ko0CHRq%Vk2l~MR`I%8P_#_D= z{D6U|tq2-SxavltX;f}ouawuzYf`@gT4Q@Nb|AR@<;WV`5?+B(*k0rkoKEYk2DZ3? zH}attnjA(T#iM)kh_@-S4&^lb1+lDPz_Y1T#z8fejRshTciy^AE!urO8E#xjPZRRS z)MU;L3^eR_88$UzQZ;QH1Z@fSOt2}Nw&HXeq#ea1RoZJ)-kcR{-PVnfUT#vz%{c2k zwZx8e3Jcn(+m=5_HB_w&ZBCc4rl~jx%NVi1?V6k*J$d6{Ey&PM5Cb5<#sXRhzqsmg z+Vczh|62K$udO}4MAP*%$SX3iXFz1=&4&F5L5j8!w0E9`d@}7ZX-yLX%y_A>q3MYH z=PXqB`>wsJ!n3Tps{3OC8*gWaa8Sh34L|>*it4lS=l19LsF5eL{%pRlyZgKM&9$ZA z#q+h`oc(qF6Exqj@V|BUo7+D`Ks|x0-QgRixu(gpZu>sq`*pTErz;$+)Fh07Jq2` zcCiNvY7_h^Zwk1nmj~Q5x}i;>F7_;Iss$R`@*^MPE_(GLA5U85VHW}+XV~D64Xq!- z6^YtvkVHMHT55|G^K7$Dxf9F>PF_uEkh4$K3xPIy3L>6sz<#7-!+RgRso|4XhLrG` zd+|)_%{%P%0J(?wL0Ox!-8I=SiNU5GL=(fCgHxe2p8?jZ>$Fa%{w2|;F}G)t%r*MW zZDdoU8=L0>DXRBW(}eaU+}8%bRxuicVG%UEkao(fC3D^DmW_GnZbhLZ> z4K^QNKVzD=I@f)-;B4Ccv5{!Wv$uby|J#SHJ!gym1J@3?%hxu4zS^9>WBglo_UBFC zYd}S(lXDs0ufHEBpCvZb|4f~e`)Y|N6Q=QBx%;(yZl15Pi1VKO39dh2hQ7YeE&Z$i z**y6izTPtRGxpEqtzD-MuXp6_GX2}(5-bzF@Bd=z{pYno4?Uju?|qk_Nl+z1ne0w| zj_bXpQFY^d*uwGL>)(eFbP$0)M3p4)#uuz3{(U*XA( zFaE{~MB0b(*4%t#AEFy|`Kyc)|bl z^!#^yc(CMC>;nh?{CI0gtfusD@+*3KDb~iiS;wt+XLx4i?(S*$xP0{EYv1m#rDJo5 zWse6BUq1tUe;Xt4Pr9iEWcJFuXzoss-+TQd?~>lWFQ>3Id(t{9^o=?5$xG@T2h~JIPsiic@Be-*1ocwdZ?qlk+?#GYUxHnA zT5`|Z(WWrXP176H+UhQr&Iw9Pr{w|t6*3S>?-I)D-Kjt@r_xn@!5~`cK8wRiAduFTRtnG_Xe#??_ zf$9ZE^YeFSVA1d8Yu;V&w-!4mbP~f?2X}PKKdarNAH;(#|2j&|%x1w#JTXn2+T8lS z&h_>E#i7>`Pkf_Sk}4aLaqx&v7@_YU)&Cjl4}$8#lc+!C>ins`IIw{UBI^OnmYqJS z;*qSm6JO^y0A{DVI`n$9)#wB3kf}NNw6L-A@-r*>-aoBguZ?>t4D_1*%~0<9LhrlQ zGa@KDMJB+&Z4-uXU2E5)^t-eDYXOnGNT=VQ_glW*6ah||WFWk7PsLztk*43st@{!! zs6`ARmq|}31ji4eE7M&~bFQ~XdhXIbLmy10s4*MyKHSr-tN!ivxC>Gll+D*nJzGcS zVN>)&aV0|g#b6H3S5#RuX`D4>``v1dvZmO_;j{5tX=)~BWhyFGGO;^XhJTJiwJ^F~ zen{=AciL9!=Wy@Vfb4~DS&4q`=zA~9vb28g;XPLQTvxfs`PmcO@T&4zl;#BBy?wkr zxf_Q9|Ckor+Jz-}-p(W}J_NKbszioQS#uEiGmG!|6N@COcPH*w{kxkE^fYU=y#)lc z#fo0;<75`q{^mB|a4OYg1Tw&fFV7+@%U9c{{j0{5Q{Cs!%FUN&66Wa!=Ji6niaEvzQdHC^)VEJtI zRlhEMmrNsAYHj3oj{v_ObediZ)8kz& zQM$&f*Dv0VdhDi^zMY&`Yh+8h`&FU^m6Lk@vP#)iAZ4ZK^+jpr)~dC#%#7^BO|;SJ zkYD{Cr2RfDfGltC+%r6H4*@tBTtUsvyO*lUJQIJe(52YF3}Ak=HdtYDP!4)~{CK+F zE^@y;C@*MNu1%*k1g{IJ48^3hY3RFAuw7Jc4B53K;b2r+ZSI?Ifvd9QxZUhTL)ERO zvBfO6?#$PHzk-tL&*hB{UCH}-5!F=!MfgU%HolrGBTaZRfp0c3xLCTx$TQ?dgr!Sz zBOjf+UAactnhTwFCs9;YRcN|u} zahvw4gJ*{wXDv9K;f?z-2%n+cJz!vGVTc6u0&%VaWkkwl@e5Y(^=|Lt+-?4D(>6pj5utqx@$%qb#Gpf{kRs1) zkRkNf`iRNg74nYc1Ox&|NC&Iygh*Ax42}tSAy$D>usH!_+%MAS&;mlFujIP|i61a3 zpp*J}6^18E0%mShILS@WfZC>kDY}eUj$oU|#=%79!H=UJ1FAh#Inxf8>8g`cTMI+Z z7PhRZ-a}4RK6~fBms3{9jT4Vc8-}^Y)3{3&38yOAOG)`h0<3B`G>JbG)pOC^JVfR~ zgM??`XW|qx>%oa509NAKo}*&C?jHo*6Y$3py59`AoMLnfQ~+!Eh4lA?D_XxJc4k1P zHYZShc2I_~CO{o&uQf#VNZ!K3-};no`2@Jfo8QOt?6cn)!q{4NrG!MP_R1liv)lnQ zJWg;YeC@k~K}K}U_XkP5Vqy^St8tTViLmi-4FAKp+N|YaK3?Xr zC^B4+=L$uDvxxAdAo~ga;XFz1{pz2f8rVjXBYdeEvctamxv=CI>?aACexx5W>;?2o z$3~8Mk!Qc`1A^F>0h}946O$9v{@m4ljHhHjQ$Aa<1JufIDAPfO$t4v(fxNQ2m}^q>IYp@L09aGY8t4!ipcO6S zPSv@3*Jn7^j!vT$@-sP$fB$O946`&<4gCC^38-}Q+zX~oqO_ZJuK}@Kuz~@T#(6K%Q07d zOLo~2SW_x8%}CbZWK;*Yy+i5D{g8Rq1!c1r@QeecOhZ8E=~Jho+0?1*W9GViLa#yL z5(Jy$N>~D!#8$Y7awl?VnbS(xf2{;=WvonkWz350L{j@U#Z{;R)Zc>A)?lI)w3SOP z_eLK7wk@-nz>obm)CVs5Mu33f!@$mj75Ls?=Z%5ta8oftMS8RIfrx7GZ`lyy@CWf0 zJW*C4#gyIRe;~%L>N|-x*X9zBH!xWyK)irSBG0rbeJD<#QuqwvJHf_~ z;?W1jrm9*JEVy{nH;Ea-dX7zOFPMeL<3UCuX+tF`w1v=W)zAr$6WJG{U}Zdt9^s0_7T#q4X^41L z@p-T1_D&^-ol=cr`E2KgLI0};OO$)DB25wKS~_>XX#RKDkyYqV3(If3B{C;OyVH7* z5RjR0lAr}kaxwU$PA!P9PW8@j8((W(x(zbejMeXPRzA$fnrL#it)euhKFUfU?*SuA z0RgAt934I%f(UP3KV#g7n1Jh2CBuVN{1mB5fZUG;r1^KAPoB?2((9m2+O&dMv&qS{ zzg+UTEE{j>q|##}zkTsrO7|r*z0%(WYo?jnu<((FuMG}F!HzZ|GS0u-Zd{0oj#|dQ zDq+y0Pxg{Q*?0RtLmB}jXF@lx+Xwy`&RX@Efv;i#odTlrLy#ywO;kvI8F_jC2p;6A zPbTsLN@H52KzbiY*U2McG^{-;sNvKquBaM}nt0Vbe)Tz*%$GAqV0a~ZWn)TcMQXLR zl$ON$sHiL&1tcpL@WyC9ALF8HyyJ*hQVlUHUlmB#&KeG)*HE24nBv7sZDdnuEM?rM zSpH$5rdu*;l$c5i?UmX%5qXYjok92mpS~5!lZ9NO*p?fu(x0Rlc21v(;P0GxsSwP* z_u$8z*kdcs>cKBWK`toXSihW=DY=71rg@W2mefu>%)a1_jxn_fT3DmLBu`^cFQRG7 zMVf+79FT~A-EqyAKJ`YhfoRvf|9rQko-} znVhVM`npD|Qjks$fypTig&YsPz}BHQn=h*yf=Co)6c&1TYK>%hr@>7j^{3H6GRXuM zg3x^kDP1*20=!uBFntVbxp~>^lLC%3Cc_qets|j z$W)|0Wh`z33o>sm0Sat?kP%3zHc&R*??=H=V zAFqdu^0$9iueW|4jZ30G6?o&XlGVN}#e9z_Uns#2GvdfNgV3%W^s;qx)sK8u5XI5G zj+@>N-;VCnFRWH4z!n?n)?=ULkngsE5R;y6P8cD;OMfVd9|e4Z@f9YbE#*?$f~a>t z#l*e_1zO$z)JfMLSGcnd`|lBNB+n3bN6JlNee{$&@Oy>3^sgu5Zl=yQmp7zKbU%Y) zJ_`La`Z?Vg@Ghqo{K%hiw_0tx7~8c@h&@F!w`$7$=M^bd&GEa~i>pP`?Zv#wi5E|4 zstjmd7z{`$yBCZsV80P&`vmW1h$T7pbIRKvO?S_-_sN-x0P*iTz0PZlBVCI3Io$p<%9BA$(&jE)LM+)}!FkAdB$TRT z6$>HeDPB6x20MlMPj4+a(uEaC+(f`G1ZBPL zzKq+*(ct>}Aw;6GT);A{-3wOQlRN^yu=EF~+=u1;XMq*%1`r`dJA(o##dG^%3pte) z%`ejC%1jjhW^%l9btgo@{%>d#BxR~a{WZ(PMi~}3vk(vcZxCg8adLQXPPE_Bfb(Qas0?hQRBv07Ne`q zEVe#VPvTs+*-b+oeq>F;; zvQd!w)X>u(bo;%+2H=Dk}x>?n?q{LMzepz~RSFaS2O{P_ui9+_HXA(;DF7X4-Dq&@y8~L=R21d7^34H4Eff zJu_`yahj~bJF5(tw20;Gnq*{Iuy!-rU7@?@jLBd`70qf^z4nVswy17pB;HkLobv zkksai8&T*!J>AzO_iY;Tz=|L*jJGt%UH`reb|ys;&1;yp{RnT60xVzT^jhk(6oN%e zKk0YWNWddS9EhFVRhs^B2dI?(LnORQqTz3NGt4UhzaOL*~$r}aldGFrY*~IyoS|L|90b?IS z9S`TZ^W61MOdr?PdkzLBikkZ1*f$%RHJrV&i|z3E?V6t7ECVU84Wv+ z)JvqyoQ9p7^fQ#qoC36W|1Ke9(W@7Jkc%OckY0JKmuE2P1gW9_?u#_TaQG@L3@I43 ze5dkv1tvOy`Z%q)vQf8s8V+!1{(Avya@c zEkI8)@(TY^m`*fXAT9SNT(*+kJjK!t=*h?NHLqyR6{#IF`NFYsbu1m_-IWb5SOLNe zWJ1)AnV)0MzbTIk%GHP?H%mT%yoSmwTcHUJWJHiI(}BYvcz}Q==i6vTQd_v;jr__$ zWgo6-HFueqKTDv%*3Pk@;Eb2YFMDa83LK@37gFwbQYCA{)r;%2Zyf# z&f{+O%M3F4l8vEeB$sp&@(0@2-DS7^4*&b?_bnieCi@xWsnO{BEw+wiIaJZfNC2L$ z!nEPAEWW)cmQ-WvA?VJIL0BS4`4D6$FS0F6gj^WnBSbsLDy=7l5cO6y>Y?rARD}@i z1Njo-!{)ZPJiHnzL8_;a{9@Ebi*$$)B-Si^e~TpaUC_-`0F}bPivh zg<#(cxN^8zSS?VY5&Pq2!QUv-6whiTMdXL%)#5fa<&}(3p59*C(fR3#|9#Ip#`}MA zb{*~}*v~Xf)5Lxr?w;tbxU+5??yf)s8at%+qCm%7U@{$;<@P)X8hXoollz^3tR27# zCF?n3P2^paY(sg(w9g|l<6dsEQh50t0kdxt@R>=9c+lgx=x4#F?IAHOUkGn&C9wMN?91WV zb8YC*n|+nvkp4{6pgPc^pwb#9a72xr$sHh-JPInC#Sjol1#eLFS3u(q_o@?uO1lf*AWQNq$+{O_ zf?P!(6#Zi+P%5@o_#KtY=10_uDkMYW^$+V1LZm%cuRaAU%%7JG@Z}Xd4+QZ!IYWCca$}`|rFinhp zPPxM=bZC1}QAzj${rV3gEG?@YWrMndghVqN%%#zs$Yr;XDpV;@Kjp}@5y%o5_c{Y< zh}MUW>Pe!mSO`@rImA*QVdxl7mPw`*0NfZviHneenoiS6kYWo{kYbg>fLV(6~I$O_P zxiZ1X(m#p^B}H)UhxNT>iaCV1AxqnMprusdpyVk`$U9;rfc>R;Fl>jUpnMD7aezzE z67v^A@;(h%rg#zcgkgb@WUQ-zi8r$qT7=AmmZT^d{;GYKE}dDXCd7s#3 zjq8-LJPjee>0D zUDltde;s#I-=8!%|2iVwJcc;9i`0ZJO)3ttL5$q(<{89hbvt#%)DJCNs+NL z;I<06RPE@Z2; z*e9iuWJo~=3*-`zAW9uMa_62yDE*G&L7v)(;fuH@DmDB`Iu3mI5tMAYM;U4W`JYWD zMC$2O(T8~KnjHkXPL~PCC`D;84zny)ur|0qkTsDQhqvLo;p4%=8NwYlyW9z!&f&t4 zG?DiGo&|EiycX4muGJXd!x^fzszuYTC#$~yb{Avnv#2I$47;N4?R(3`<~X^D9=AO5 z%Nv~OMlSAs;^l52b0>anV7Rse5m-|+(=anYO5j&i6%id11mIB=_nV!PyImUn2V}So z#&R$Mu{Q*KrZRNLHZyc@&w`5aWqcs?2!4ub zW}3Wk$L1&oC)HN^Tp#|rjAgNbsG(2EU~O^O&JQaLtp-E2o$&3I$FK5JwzbG@E7}qYqyTn*?k{odnF^IhX^Dt8goM(ogHhTcG6K>n)4=6ufatmbA#&*W zRRGAOc}vuR@Tz8)S_zfj)Wy_ap{@{)-ZpAB0@G7d9BYA=IQG(c{NBOVq=auG7DUN?&W z%TX$U7)Zl18MqDjJ%;5e-6nc(~u2IVxW4&*|FHATxNevGmg#W5PZ|>S80vibnuO_JffZ?Gio23vzRnC zPrr7O8el)Pg^}@F_WPj}G9IKq8MTJsL)K31SX$pO_eYT%1+i|?3O}?x7Q!d@M@J!r z_2n`2jLM>SFeI>1u|{gcIOa{a8%VSw=zIB4U0_2#=PxXy0n%&8-=V6jW#M7p`D}}^ z%wGX{_%{)UHXI(i7<`)z1iQSwJ)ea2_TU=*7Gm$|_x))397Bdm5hxNG8FRQE z5kMMnNaypqN$*T}`r$Qf`--rNI9(VNLPSJr69f@t_st@BH0gQ7?*U1+BvhX8oe@xG ziERg9Dv1|vi#wW*$iHkpm9oG(plY2f4ceof8{xpZg3iSvoD>3N{oF00Dlec_jcV7@ zR~)vzzunbn-evWvkxUSkvlDKujzEDHt>h+4_Y^x%`S%oliNr{G5g zcQJqZULkaY1|o287UdfAoHZcS-B=O;Kp;I#p|*Q8bh>pwrI{~Q43fATsoepAMn<(7 za`i{N)!)v8{zmvI)lOi0)?OJsDbl-VIj;?7Y5L@HTi8!%8u7M3RT0;|0Y+Bt08a za3(#vyI@m-ker!k;?GuL1Z3f}tn0f0L&R+S^!YICp)koyus}_l2eVQfM2O=w;D3<&b|eYLib+uCdhTCV~wS7?)~uiQmG zTgTu9Gsa|~7))=Zmk$eziHdoyLGPw-Qxg42ig}}+e;b+LX0{n*WI9m z>*U(A+d=njg`yF>?^STeCHUSa<^DoOyB>C?^FjU}&tc0}{*2IUb&#Rx4d1sSC5`7n5E+6gLuW#*R7u z-p=)moIj0<0*H5QqfZ|X>dDSvkfYX1@4-(Ww`O(^2R*41C~LdZFuXoTEI;~-H@!VD zKHmwn6WJ@BjTrgxwqhZj^155ozEL9KBAqyK2%>LEgqf3z@iKeA$^K9g9K);d(@C3Y z<1vSYw+35R0Kier#!LPQB4z`YrOE`#Zlr-_QpkL2oU(Cl5Fc49IwfzRbVXExG~Zl| z2jz;D$()bVqv|_L_=qP@hgB(5j?@3ubslt=lT9UyyLWx9b9C&1TF3Mvov3@u(26?L zA?-d#q#kkXgIedfrF8+sWjp9)a@$QYa){O~8^`eE|BlO6l)i^4#mK`qoVNM$P0oii z9wcrxZML1g9URJHrh-@uvY$>|6d&X|u{c)3Np34;R)a0UuDb)Y8c!ZAXlttSJyig2 z=|bFUl*G{wO*b5`D~c= z3P0VH&2P~#EVPx7Po#rEqofGmAj4JlK z%ZtDnrK(guhm7O>BCJH40XoSSA+TW?Oj6(($VcfY(xNMuPVSEvC{cx>V~v8+m3~Ly zpEZiKk73G19gwMuKG3<y9k|bTBIxB-W@Nl>$mF1xk>z09kpyQmW8T9kF97{Fpq05@ za{u(naq5@s*AYfgD{G0Tu{eI^l(P-(Kf87v*7X#KXJF*5RQA!B&wPh@5tY; z|3#>l7|!%^xcl#V9pmP1RY=f}>_(V(6!wDNX-Su;(}bYRAwx9tMB~zyiG*FhYcB+!*Aw6&)0W%-=zF4Ki@d~yWYQ7kug6@A4A<=Q=TLpQ|xk64G@rM?4DBFvV^)CHdfCI=Y=H<1HrMIHr{2x=r_oMMS z%H33xdnugm$7D1Tu;_Sz#~NDRR*P)Jeuq&%8NE49b^@*Oxld=r>3OBkU*_@`?&Glk znxcL}Sv2i&B$`Af@VYvPBj@%k|C*8I>ZaJK)w@N5ko@uTEe_YH?EohM=W!}= zF6e-@o#Aj~LqMf~2#olTj*`y3Bq}q>;DYh*&#>h1BAioDfMrphTf65mT>7`y2_>xU zD2aE-RX1{lK*aSe+{6_!4snp`#RO2=p;K9+8YT@nlRNSxFCS5(sRJ`NnsBMTXPK+X z9HpFCPI9Qyrk}+uj*axQD4io^l0!#aC%47yQ&0yV-qe94DjuYRdz225GGTNC%3cZs zD1}K2EK&<@(2?G5-u%c(&*&>of%Fz7k+6#p*T(ab=)j{ra=PJVYRxD&r}$f#p5l(vs3n=peaGn9j^J1bdWqBQ_lR)@#v87K4Rb zmD0`|ANNapoJial|LAJ+>dKWyElNP3a2IaO!pM)^@g1jqwZNbRTEdxv69|NZ3nB{qP45E@pd=*URBW&t0)$oL^h=h_I{i5Q*89V z-2QLw%J*BhC5(j;ciqPS#k}1wcUk)M#k3a2(pq^`*Hri7?I}jh-Y?ZwZU5cYiBPxd zB+t?;{iIJkMBr=EZuUvOGC3okd_L+t^}#NM)8ieNVc$4FMA=n;p<AdVf{iOY{eL z;dyFwN)EkTym9uOp})clJtA<6E1%u*9($}bzK>Oz4~!7#>?~4I4~#^IC(6BiC}I2# zJcKS{3Bu@)Ey;bMB2X*%@{+qnqci0sxJ1Hlb@JeH(>{#8GX~apG@3_B*PNsQSg2q$ zKrW|rbfND6=ne_GoHoN9>inJZcFMpM826?Bkj6&;?&;H=(pwmh>*PWH1L;nADESSt z^MWl7ZjhS{o$~vKphKtCpMnc(;GKNko&8?@XSq7QNHTi8P5@8H3pN(HtRvqTYvIRh zF$(*Dm&|V&9;rs;f6H)k^FT{60WqG$b7dtJk`U=F=z)T%(C5w+U}}%vW{zs;{mn*i zp3SAB@+S2L{%rfK6bKj+i+)-l`K6GVFH+G1K z-2e7&=!ULUa^;|P+eYNRz`6k3)T!ORp`mw&tWBzQru4{h=Zc3c!Oq1V9k(ld=L~m7 zh#~6V&#~zA%rrDmdBV0j4IO@c8*zv}{>b2m2}`_)J)F#3Z(m%Gd1cE>wZSy{9V z_wfs;sLm~EeNwe4zdg-R`)F+v2_cd2%X$9K`PBj@NrjgrdV*t-^t*Q0+Ifd)kt};D z`lD=sdpN0YJGOH8wvoI4=*J|LcGoVdM>-u1 zRQ^rch;s3KbR%TZN7p+4jqmlM!r!8+u>6@#X8>TYtDrK)j~LWio~~YcZLBk%fg`VR z4t3`CEkJ4AP`h%joTM(sGdHs<_qw~f*>;(4<8_5KoME)5wa#WG%}r{F2xmv=awPRIx~;f`;n`|WY2_B4NV_*xb0T=Ssdi0Abpe+3 ze`&o8_9D=UG72mvjp^Fl^i*=^??qM7&WGK4Iy$lPZ?Dm}F@kn{A4z$(C>(VoS%kg@ zLAi6=_prBsOj`gI1q1S$mzCQWmfKh71^r1ot0b|)4x%it2U9%~gpvXLtqLgVMU=g= zf)fHylD#??_Z$@4l8I_;i3VAc&(BI@xDqkk_=8w(P>i^QBzQP$D4Gr~Y}!k^RJYg8 zdB8>avl#Z*Y)xfA7}6Y~l|x$Yq=KR-P?)T9VcwZ)%{)U@7%@rb)?q_}A@c@$aVj)y zHi_p~92Gp`Hl=$IUgv|{#bdpfe(_Cq*cgsgLSfXWP%pIuF2HadGtM+T%?;O+nPeB; zwaFqZv|x?WOkxwx2O&z=h?~>xV0|cu!rf^Sd1ENx$NKCjOeX+G8-^j>kLEHDmY^+Uvx7^_YIp2`kH{3j zU4XrJY4G>@>C>n@stb}06P8qi`lG2b3`FIv$=&z;nmGD-?glGbh}ch?;khnt^!vn9 zMGO&)^aK^=ir|>}uMu>uKXg)aDJWqOo|b56MF^FP2?6d;W4&x0_|$kZmMY`lPiw>S zeR@CoY|aOAf@0Bg(Go16)Y<@pz_62hG%~8!=N#l3xPu}gpRsuVwVeZfq8f!1^-fED zNj0J(vCB!ZnlM&jI5Tjl{}%w~Kp4MR4;h*e_S3@K1f>Z9V+;g)s$Y#7lduS|8ue-D zEGA(wNyH@7`{4s#Bqm|enCRH8Jm@ZjVPZuFQBwczAz~CPsp$yMVuQ5CyVQ(-Kz`EA zqa2Ph=T!i6#&{ASu!xy_auJdLy$ic1Cd?=rNBEcUffzJqkh*U^9E!%AkvX+x1sW5I zb-lXVAs zDkIZPZFq73=%^*+7@6qCsKOK~xTKB|ZZ%@H^P7|P-l-leq+_mwFnW*eNl`R=ShQO3 zObOzT-u>>7VLOEk>Y$n+Lt`dpOJrc5Oozy@I(0MgY1kb%6y1cnSw`gZz6mM2oA5SA z5#A;|N7>C?Kl>&>mED53Y0G9A-&MxKwa-dQZ^GN;cYz*}(#1A|hGUXE+G75)Q`R=K z5HDP^6i`Mlhjg%|96Dok&yXPBySka*{b4lcxHUB!4P$mvl~9FR@9PGW+F)rEc}pE$ zNWd)8>253G12$0avA_@REsHSP%JW2tSMUa2!JFz8U|h}pS1+Gmp1(RNgKOG7meDZ0 z$1)lQ_E<(>uaiBNk>jDF8^Z9RmW#Wa`L${lMQ5;#(ETWMhu*PR9 z6&iPh1lC{8GIasi$uBJgd*c0oK{Q0G$bBTZw}b%Zza97reXFPpit64BwTSj+FLzJh zdR{;1x+tQ zS;%AdXC&4UGOY9)`pKg$&ey`GE2JE4iTxRxEU=D{VTS_iRMH&WBVpde$^a*vaACaB zNq*hpO@zf~@kXBp`@L3Qren&YNsP>ae>Ok{y#==aGZJ)Jw+g~mlV+EI_i24OulL&S zFrjFdGCDwx)d%5QC+%f)mX^`#;F`(k=DgXojP`ui<>%6&jMl%jpqEO2^`49-blTvz zAZ2vqYoxxU2&Z;ba%%ZO)qQx*VtI)tQ(HFUu@7gM)swPp^X8Bx^9!6mRn zJ+T)L!6cRs{$6H;-(|sH`c|XctZMjSR6GR@3;*r?wZ0Lj+AuN&A(L&nyg$nPcwW`& z+Wp==+3drHPW1Aqy+4+V@$!_tpwYTS=F?Z_yXUi4FV8OF z4BzGP?B&Jz^vTy>Z89e!SU&oUU}dTZC5}Xl)?i1=Z@%jjXo+q7VdvN*1HJMi|~)YDg`h3CnvFVR^%Ip@eB)V zS^!OE#?%ojExeMnw9o=*vd{u_mbYs=va4bbPX!IR7+%V-o_ZrI9;X}oVLjmo$4iy! zofxj&VXF)_NA*U>Ly2bt4bN0IE+81$LmCOLcVe0}WLlT&-5i<0 zBnJ#Ll_UzLSlqW(iR6Q;FNL*VMgjY!Qv$eezd&PL9;*a!Hx&{1;qurKz|kQD^7zHo zZy$RncZ>V`hdXi5OdX>T#)A8;_e^!1t;_vBIh~%JU7SuY55IrDe>@0V2>P(XayY;N z*N4}VRx(mJ;CjO;IlKl3oP7$NtM#k1z!Ov831PwlC#zjb;3fp{5z@Cq+ZQE?d&KXR zHTkIo76fp}W415&HB2)s>`7o&_aRGWYV8qA76+|JpR3a>iu`~`-S!8f}($RK060L z*2c-{D`cjgjwYK=`j_alwf-lvD@_krxLa(4zKMU8d5!-e+j2)SdN+&TFYob0IXWmy zO69mlfPjZOGv>UaI`J$+g?y4ky1EFbP} zB2E2zx0wGUnD!rca@NdV;C^-R;e7qozrOwowyV7nHn6yfaOoV@R;StPYZ<&#)$Tl@ z+1K(zVp+sygN)A1spwHvhAUMFS3br^r&q6#Be#LIbJ-P)PQM6x4%d23U!DA)dbaD@0e;= ztV?xoWLN0J3IkezuC5QSEuj5h>b|u(jvLAL`$WutVCa(^*XvSorMAsjKC~3&$L#EXznLfig?u1UFYeski1kp70#HCzdLM_iwH~plJu3$NQgdZ@1TX%zbPRFC?)@V=ru! zrC*FqV}E=CM`hjhTUd=QfR!wEdz`5P*vMipETANSN2IZ{?_h4}TX;V-^Lk+q66s44 z+2yM)WN_|FBau%oFhG;RZBF}&=d`=)sSFl5?Qo6Dz+>ih>}uq+ljc>;XwKzfG?3HY_{3YRQ!^nCqsir~cMUVC5_u2 zZr*U%buk>au((w2=W`bN7p@%?4~w74e9^Flmq!JJQqDFABZ%M$(g;(M!1)?jGoEx} zq<_wKqvdRaHP2a?&abwQb{@#jOyW(Ss=4mIHN0uFwpToB+g*=%<4*PLM7^d~67?ET~f1zoC-Fy$={~-3eJJz`a z#Rqg#wN8NGv4~yp`sgS?`P*g{hTHWMoyLE6_m8(Bb569W&BVY>8D;In_!>c^_2TZ`&z)NiR$KKCZ2MQf67Ga#z-Gq~w;~J&ib$6yojx1~ zO@`wDe#a9^!%U3(?s}?O3yuTdx8f&^BkXMOa+2m%&7DlFnLC;2;DVQvHFI80+AMO4 zLUUI21`31*BS_%0h4lD*PEq4i?H_hIMevi7Q`9VIPEqKno0ZJhrEey|y zM;k#}P}nF#dvETe>ULo{D)A`Xh=_?Ud^L}sG{B1RWP@I6{BAJoM;?D7D?)qxiSYy3 z!%ygtJN)=BFdlxwzvH6aC?ahyGueRqHk$VL`8?ZLG!}K>OsMDMu_pBmC0|jc8)s;X`qEJ!`IO-&tMWW?c z;4zB(PKTj5jU%ML9Ktou3c(o`j<9ow(<^3Xct)C63*m)Kd#@J43rU-W7m_v$FC@7& ziPL71HXw745OW`1zAGae!@@JCfNz`Sqi>@$g98*C-k&y0kM3=*se5O39$ub*ybIaF zaK-u6hc6#=@aEHqyM}-Mb0_J6W2!y628{ViCmc3kc%65CySjV?Z{54?pC6#ha(nyB z_Q6+T+zPfTfo2h;N!}M}F|k<(I5Y>U3A9-XXg)drZ3m+lxI@*Rg2S`mnkYQ?@8P+B zAD=rqUf%uk#fuMUZ8^VuNST7#l!HuO5L>&A4Zem!+_tN?#iHL-(8Og zn1tAHqP>H7QD>}ghvTI(kMK%Mn?2aK`mUbq*iF=-a|$zezHBG2ZoQx1AlX!(4?5iFVmaqfns9q!^Dv$B}XyQ z7!(stj$)$W6cbILm_UPYTfu1m=H?PZgnrrXygI*yfbKRgOw&ILgcA)APQ;}UuLEVv zNR}dO_>CZ(D7+`$<)b3XSi*_@!{f7~*Jo-5S>bttT^~6n;x?!pe6RtYd4+f@iyRYR zPnFuQ{hm*RCWB+belDemQLsS|4%<(^_Svz?+(xfze&y`I&p%!LuuVt<(GI+NyW8J8 z5YtTU1sRrXgt|6o;*Wp$Zz_&JxwYSj1TzV5#P=1%3}!`v#Lhk}5>19h0)BVc$yp@a z^&C5ygZUs{)L~~k9It|UgjZVFNvI!qAk;DGz2dIu6FRuWPBOQ|PLo&Sj1Dfb)67F3 zh@IelVud=w>=|ethMkF@doA7ECf!8gJ{Uh>6X+(;)RDtBjMUbk&E8P19t!S>!ktIs-tcl=a&`sDA7r|u&-$azf@Hxy5E;en1kK{JMrJ7)w zg^zAN=kj6UjYz*9K?do)T5^I6I=I9ZGPlGQ(k%5d(k!vX%*Y>zEwZ9)SlTSul2n0Oi!xAT z6Qx1WUM9zuK%IdG8G$V?KHYu1cn^`cNT{Kqi#-=d7eS^`*fR@V#*%56=wdHNM;C=e zqp+-r=wgs)*b^7gWdw^xM3;N0&01JZ4|JKLi>V75t-9E6R)Q{s+JmBt_!=d?^db9j zK0?hG))IE0X(eS$+IQD;d=Wvqg8u`$AzZCl9Lf<6XWd@)nw2ja_G>Mr*1!*rK*V)t7MyI&@~-e+>y_rdWcu!5lSp2e4(@?uZL z;YBcoga?*^WD8!#GKHA%VlPLB7lj<8u&jyjVvvK_6BprS1ffNQ7x*4#S6FGZ;IibMNtzeWAG(J>%=+Hk&^6al5NpFK0*;f}IQ9$JfXG z4vV(p;eY?;`tJ7TGFv1!sRvcV_bQBUCTqbk#}$kp9ar!-cU+kiAoS6=7wG5n+wFTF zM#ljxP=KI;0J#OBF51QQPeAwjUc^b*3*>MmC_oA~X2BIwfQ+aWSeP+EBvvc1Q7AqN zgC($(4wi`!#43DxwWMZMs1<162SKS!8QG>c>xWS+aP((0W5R?@-lE1OkS;9iFbb0a zS%;gDauq^k&>~AXM$#`zYBYT~M%Gx4LeXg8cV{u<93$@fkZ)MCNce-;8ck(>oHgf? z#VZX}hBU91Y@TD@%roCN3YkIxPWoTRt=E# zuBZV5KPmD0>s=bJA3AFB`s>{u@%nM*G+sZB8sqiDFGJ(?*OEOqziDophAC(Xc`i)F z@Qpk@VE`=L2gkQSuY%T=1m9l#_~Q;39Nymm&x&ICD@?+%PLQk=`de5xmSn|J%?h`p zt7ZzzN@1Lds+qyEVozLD%|@`SL`??1gt=9-!fFbZzj{irngHlrga~lY$uXi(x`-nU+*<;g zhLhL0>q+Ro_~j6Oakfd$ABI<2fSxw5_PFnh^j__8-xnQR0y>#n_`Yaw5xF0lGp4Ry zj`w+UUk%&f!wFs7^;8Dq2qb+9 zu0a{R5i*$YsO<6VDIB_^c-&(u*)eNoX1Np6yp%GS%q?XwX_hkB8 z2HV3AlEE;1w4cG>T))VqzPApbu!kAt@NaA2XbDFe$N@ZNG zZh;+u=x%=!MS>++K`<^qp>7F}D_1?RQ8-%)TQd<#HU^aRCreQX*_#P!1%A%6Ly5f_ z&AM0E`2g#-Rvx3@J+Fl)xzjr!~`J^>MZU5ePNdj>Ak)WMv205ynmNg*@GJqIW>i4 zO_RK9gTKL^xO9jIE6M1b8h9_~m%PL28wxw$NnW?s$baAxSJL-fO5V&@Mr|k=`h#^# zVX$VFjD7f>IpxJKhrX|H%Hx#=2P0`-?J?KPF>7YVofF!;fbbK*W_|!mlVn4r^4>L%YX9l?WDcuvX{`3fnMO$iccQ zgdEuS(I@0!-8+_Sj*tT`6y^&#DC~r)l#oxKh8%S7M*on5wdd*p!Ylt-gPp+bFM-wY zJxfIGL!PkCkSDkq4x=j6ASY@n5g^9=(o222=4xK{U_zvfh)C2YYJd0Ti82VgwFDM>X;Q z%G_fmJ75R;KRcP3{~Bi|kq7>E{@z6%_+N%b9yBubC~Wy0IvorjErakk*Xc}32>U(& zwy91RC>zi!fuZ4btIqYJY$#0S0Wd0ff_$N{Wfp+m2l+x_Io_|u6g-7Ap|Grp3Z6ll zU{73B@Fpbc;P)`QX>BrT!h~3NeLLCaq zL}LiT-slhn5Zh@80@$w;o+MkANXYNQ`LND#KEUq|@;T>&yPiQlHwGTWi@IP#KOD1$ z9^sW1%lJq)ioO;@BuS9|}8WVdH&pJ`|RtW23_PP*~PPY&19@ z?1_umIEC}!9=K}@t0`yY?vALb8AFrQ1&zi=Tk`nW7}Opq=Yw`o&1Ovz;h5v6U1vBS z;CF{Dob$n5&#{H)p254`yCG3mXx;E7apaEUE8=L796vBlVihYi~XS_@IpBsRCvj2FMT*4))~$R_}ytQob$n5&(Vdmp~j0kbZLj% z2+J6ufshg7gvfyxyFSKwx`1-QBu<)@h;cHvjP)bU5?x5ML>DuEdl!OVEJ?lVa=T6 zfi??tq0ItaLh~H9v5nMS?BR#m#$fmkU4-sJ)+uzC!ZJC!1Udv%t8?g*QC$i%ac~iw z2!$Q9z~w$T5em!E!A0RjC@gCtxEP!W_QXZiWx`1xKZm)&rLdYFY^W1VefomNf=l7e zO2CEi3aH?c)m(B?fds~Hut1HHk_5kN6K-ynB&LLFXCtU~$Tmo9v6soQ zCD0L|O+{c!$?syX8R)xdaGl^KDD0VqF89GpP*{$RE($L}VObN=#o#5dCoZDP1UCh| zrSqdpA6^1eb(x}z%}Tmcc(W38A$$oGUCMr!oMfQ*k|9pmwB!f8_`*K?F8nTBxE{od zI(+e53f!-cS6cW&xD*=BwM}}jI0T%~!6m-fTneUM4t_;H#UlP*CB`O5lZXDCqE#*IxP%Dr}GrLDODZnuN-8 zBXC{?*NyNhh+hu&3yk)yY>J=e~~|ZO-B*v6mK&DDNYdnS2^r6{Hb%<@PZY` zteMw_CCy9DUGxoY=A;y-v{|q>gy!K!weN0j-=ADufBIOtbm7l;VADB;wmteVn;HzC zlpU8uY-FJlnamV;9&xq_^bM$#12Uc7++4Y2A0(*yu)PIJ?VIb5J73>?y8XzQ910uC zaA_l$912@z;L>I+lf&09UZ1KZRtsxUbso42LE}(Z(=<@p7&H#{#3fML^rmr8zlGTi zYQtF^3J{z5DWJLxlKC1W% zexOcw##hJ`+2B&6;5XiODfj!(4s0^C1Mc@u?sN75-<-;QK{Y^!sCZd~r=i^mG6x=i zkw1OSM&Y4aU2`hNnREWH-Bkfkp5afO;ODaWm^CxpJ5i@aQpwbxa!Lk~>_KdhsU$+1 zy*?yD-Bn&Ih^2kHmd`#5L>GdR;HT}K!54xxY%ZUlUu{3?HGN!r&_?QwsOS?mYz{LS zyl{y+0{>vimE_?_P$F5*8T!u6o~NHd?$9L5dE>L3Ju8sojer-9aRO}uT>%;ZJel;) z%THGyTq&SSuC@%iA;I{w5rhSWy|(liBrF)g_(Nw@=zQXSCVZe_FHI_+jlx_|Sl?V! zKAXBg*Jf+`VPc3IS0-@~jeJk#+Kf=zPGlplmJR{93UTf%>HFIKX z*38Uxr*v+qyO2cKJgLrRB}jGPC#9UvW<^PLLPw2MXS3=-suO2UNp<3=kyI!A(w9`H zW#)rtB~m-Xj?IE?Fn)|*!^t?dnZyD4J87x$HY=dU!+b5I#=~Mv8HTydDo>5KS%t$0 zqsH5S^^{QKZ2~a?+9?1A-6weP>F#$9fZ5#YmKP81`c1rREPPVFYl)JAx}fmXER-~; z3qE7?u)uR?uMRIjHa!1SfV5VF&y~i8*FA|GrS?YQHYlunqGD)p8`u*U6~htS2FWKo zyJBea0qBY$lbjuQP7pqeIELFt@w=WGbQLHwd6re@?6HBDxy z3^pzIz=l&9!0#=BBH~s&3n;dBu@3DxobVej?9i1LdwoWlS8HAimNjz<1J=xGXX)IW zcJ_=lGi-hxnkOriO)rHqUd32xH?d(nEA96;*W0r@s5_Fa5nG*KzpvYwftXoXIn9*m zVOGwBn_N(nlP4mTNjq`d*YOB=wFztrXd}X?3)q8?J8l;^B--P8CwMn5CncvZihJAB z!nGE-A#=hQ70|q6fVG&t%E($b3PVES_Gi=ZmL(0(rWijK{2$aNtOuB7lHIJO(z{lb-ZfKteMeR4UH4IX z!^}kK4Wo8Sum5G3(z}!urt*6>yn-zZA5~uXn`^w8wDOkD$i5HIaY?8<7?|2xP-uk$ z06sbYEw7c@N%I_n1-nFHhb#y-*d-MG(!9?Uc+U=>pS?Im3oMvpWu%BX&T67wXwXL3 z8&%W`M@0Lzhe~{_XIBfSkw(nCmeEO9*;P1!2pq6$B!WdM2b73d0W48wy@(mE%(fkM zWfo*$RA$$sm06IwM42UY7ep9H?CryD;kHDJvh;KmoZZ4*AF#J(uE>Mf+F@@yPPNN4 z<0HJ(0$)O0!Sj}nN$=H$IXh2i^MW;h!7E!RQG=9F$pT3iJqhW#upMhvh=j|;OoIePy3)uA3?$(AQdkZi(k zr#?%+(^-S7!kAH5_C#Pc7&GjNi@-V}ODp-(W=GaZgc)`3up(7#%%)E}&_qFz}xh+ewGc8BS|Ezg=BEg8Y?t+dn_}aJ&7uz5QkT;43jQZd&I(g?}&%rcY2aRD64fh<$g?z`Atn zZ}8UPKjGG~=$2ZzxVv?U=z@l%H0$>`>-XIYiB)*s{qn_&517Ppe)*8z0d8CS76RJ0 zuit6>=?nftD0uIS_&j}x-?z7vI31#j&tT`%^~K%Wn;+j^ZO=b`y4_xFukXMR@cQ}D ztG8`;?AuQL`GfY!(IGyIo1xwQW-O=5v%}+WkDjZ?lhW2cevEsI{|%26>v4!fO!qjG zQ%twdUxuI=N-GHq683@O4dLT^^cemdZU_Smj$i!6Z*lu+-~$c5Y^b{RAo2dVVDAqY zCD%Tam!~iAV@i79<##_{eEc^QXPw3wm*Z#ZUYfVvISp^b8$dF%wsoA@6dQvy#@G?m zi;D-W39K;=9p*k_mDW>8y{sox=E!n>$iF`R%3 zW(>S?q*ETcGD8L-zww8~1T4g9F>VmI`m^I=hVusZ%^eq+dwaj#(0E+rWd^$D!;{kX6WXpF7t`_g_-O&83?a5rj*B+&P3%9;{?_ld{<{T?U&Y5LdOZUc{1x6 zkB;`s)m0b=JAaa*6mcbdgbJ*rA}`0%S?y-1Zm_|@3d`~VSP5h|*v#vQgB2n)C$Q2E zRdY+ZyEdZAUd=2T&uIHJQ9VbTyFHE-AA8&5En6p)S+=VRXpJ}Z`q8J9BcU#Y)RW+Il-iyMoV6x6;3dO^9cRGOfOE`8-9DB7nAXo z6AYc7onYFtNB%2@6G`4@Uw&5`hzeh~XAuBx<%D2TwLpnfoV=$y0Vasv1nq>7?t^kd zFz*CT1VrNni;Ry=bG8}Jf04&-dvNbZ3~-GGBl;GAW!~N>1B20oI{}34JNGfwh`Ite zabm?TogJ`^RsxIk0`1bZw@X9pp9-&w!FK7;BMYtz4zA&c61c__d57#4w!+5r09TvD zC=F)Mf-9O$|M-Xha!TR$*SB5+-BIIjhJVX*qN}}FEi<|BMF27d=8kq32z5vNP!$-- zhzVwD&CoO>M2N<94bar!jev2#_*?gx3AluSHHj|5HUS!J<%(OAr z?8)%#B8hB)*vXmD0NLDLI4%sKlA3D-It_-Ig376IZ%_!zjiA|a;qJzzK9%+(fi#x; zgi|VjW^aPGWuwV99WLY5#Kan1A%n>a=}(1)^xQiX)9U0$=JW)Hdz=yYFzNQ2;a&uwFF!uOiE>3 z3N%g5N)d7C#dXHTXpb(iN$@h2cFM#iWM&#eG-x^*?G+`s)uj%hwOWBJd!z)iM#SL2 zlzFhtsPYQ6R?G2BQ0pO(VoQZRtc>V{4IdRq*W^1iBxz3@sTqrbinfCj~QgKH&P&r;4&(0m5D3{o6(LHIcp+| zy`l`VC~QTgt)Gf4247KO>N2uSi1>h4^d699IA>95`#UyUG_oeKB3>qkH(n9SeF%c8 z-3&tzHniFd=Ll-MFsoSL4NAg8JT(w6v*)^-L5C>^L$k}AA0U)zJ9EB(HbcmVL@6ZR z&g;0cc10+ggdGEgvMi?;=buF=C-wAJqMjaIs^VXy}kK(xAXG$ z<_^e9AS*#wr0iLQY+g!7i_MH<%4Q_vnY$8r;SmB^pTlh$TL_z`9sBLgnJS!@*0H}o zHBTFkK!OBdITMck_fS-?@K7?xetY{<;f%{=2WI}}D>Awd-%M*6Q61ndQw-=H;^2&W z2$RwLC(v2i{wwLZAbc*$!8vVjD&~I&8BNW7E~0#No>0OKUebFw zI@{~f-O2WYOrq0ZV^{Ir12ahWU#F z%Or$IXuQ{cPUm=;a5~49@lI#tXMK8k^Xn<_Z1(m&Z?vc?lYL>J?>VX7Ad5H9hp3$T z%{!5%m_T~sG}%Bxje7!>?4?V6%?`WX&{R1Cb7A@!k|yKPohX+cZ6ON=s2934k*%Y#18HRS4j#( z3;2+v8ij2#;RBf{#=uA6uB{LzjVq!s+{B&jnjlvG7x=Z2t zbs3`YL8O+Yk>%^IE8T)n>+KrA4?JIBJs`3}N<H4rT2kJ2bRsgPE!dRUAw}0j$SVgGuS3Rh3H*?OJ9` z4^2a4Re-S*n};QT6aXfZ>Ff<(`RCx%L0KSc;5%?e8vvNcmv=jdzuj$bfhK9EHDC*% zF&8UiWhLilpM*G z;QK3Rm}WpKTnRXQhlZTM__$*2B1MF>D_jY*oueV(ST?&fpxcyG!<39bMH_SWdDWRr zDr!I*^G>8uED!}a;{c+~_1(qJ)7$O#AG%4*-e(ClGUMMK!G@YCDgT8#x1mPM(=QA- zFVyr%nYZt!FVx&u&OClLb3%>zp6gEX!UIbMH^~p@--IHyd*z3_v$krQ^7-N1KfT`` z&zaQ56FVs$idVVBK53ew`Ps}(0;VaF|6MaT3rKC+E@*a1yC$^@`Qf3zZkj@!WUd5p zRcg;!RpAB5DdVuCm-(jc`1jq1+J{U<^>7?vMi$^3Bp?o5dd%&QZWg9-WJ zFtN-{C~Whr61(b=hi%_aPl;XKS047<5_?1*cHw~~65H)UbSI?WgCebarD0dOG;C;a zXY5L(VY@C&TH`28TDSc<-`G)w-IFskvtEI;rtQ*^K-;AwfwoIWLfWo560+%!-f3Pf z(W2zNN0{O}!E0XiOV#c!<6iTwWnyVcM=X^0bR6IO`uyUDA1=2i7uTOYR^I6WQQLyD zEIhwCg0bo(ivj-TSq$V=QJfxjUNLuifCaBDmgRI`z?<(YZ;68cxx2f#{^_GYonh(Q zl}z6*?3U&GsK%ym+jCm3bC^=WoByHo?W&l*Z7-~s?*q)mJ=5b#6&y!@P;=@JBT~5w zZ%2woB$Zo!Eea;}O6hj8Rn;JTN;i+B0u4f@bc>&y%in1bA~OxIO)!a>l>n1S`$7cR zvUU+*%f^?OL{he8AXn(0(;$qpP!nHM49n{)_{~Jlf##ut;J5Rl?d_6^M$C&w-5CXc zT@?Joa-%Dm8*SgCt!`j$^eCry@BC*TGgWCx(1mTD&FNj$MW?r&L)<53s_LB=eScrn zoRWV;R(0Wdrjj2wt1ICvJ{Lvu_sU7GayiM+&}t(hC)st0zHp`u98|G6@rAcz?J+42 znn@u)nY1^&E+E*ENPhA{g!7ViB|n+93t|s?f0BQnw##x&p*>45p3Aip}l{trF-Fv~^ya5Hz-sqwX{^X5|CimMQG;le<=w zS;T9*3I|FI8%a^;{K0_Rw4IF)F>JJ*-RmiB7Z$}c-pi4ev0^89^UJHw2ePJ>sV_M=2(JCA%=a9dI*v6f{L$rDx#iNiAQ!6q9FiD2&l zM2>-NurZF{c6%!~tQf?S65UrOSF(4LPjUxP0&5UnGvqQR9}tre|$t!ve5u2uWK zx>mjJrB#RNsa72ZPPA(OQ(vw6;Nq9PU0(?uuvOx?nHN6HE?mI`UBP1w$!&gy!UKf@ zMr){I)ICrvh@+PcuGX1~$Kf&i@ub$6bx)g13!R4#&h5^O&C9V_PcR%7`ho;*I)xgrXW4@()Xv7k}6 z4Osg?Ry2xRkQNCJ4~|wdN|-=lJ&O0!W<8i{FtA7`>_<~J7>ppD;NSZEMuQQ=6Q#ET z5ehSY7Z?fdvVf4&IMw34#2cZ-w>>jjJjmrvi(ik|;sFh)7EkyysN7Ia2ff%csvLU; zG_Nc*Ib&s7>lg+0_%dZTJ(&>PuPmyxEo z4){cHPP^}7ewZ0SEKz!t{^dg2hYAd`bfXlP}$V1001sEigr z9af=#&H5iBs3$nxsv16y*#&iBK`NO;=~1SFny@+OZ@-k*xv!8C zJ2)j&mDZlv0c`@bP^Rm`q&3n*(9n9g%1L`(7aXK@npdlorXlUkQpDD?b`e`o$5*5^ znO~9Cq+OBLX43KC6ZKk=)-y6DRP{QQ)@v!PZO(+Sn>lO}(mIkRpvK#ss84Thu6ADi zyuG~wYUgwPY+ag5h-}H8U=LwCn2D3 zDmHgPh<+@dj0z$=O|n&r9h3HEDO@J3UARo>__EkBo1cw;#_vxM@`V0bmq}ft%LKza zoGA_~^9(Mh8fZsxyK;m)UCWGwJZUv%U_}?cj{NF}*9NPTY60*!k0K-wN>K%}spHOH z08Wk?JsmNP4ar}lr^D~*>z6MNPai@h;rg?%%jmP9^~$?__8t#^=`-jid>)aA0hQ@A zGGhPc`tJ7TlADAIZxc8?YV>-Q zHY!dIcxv9^NLFl4r-D250haQ7 z&`E)=26Wry<>?E250gH*0@QWQ3Q)%%N(HF3+06>nRS&KT`wi-w`8+3A1(#nlhKUpw zOTt8cy|{b#GYJz}+*f`#O6l2F36`<~15bKTA@mwCki$zl<#f`EUZX~03{|W2^ctMi zXuon@;^~CBN#JxMsW#vz7iuZ01>v<_s3lMC29ZywH10Yh?ndX0L{FGmMhlci^og7Zmy)?}FhWNYH zoYFg`A)8ftx1tWkm;Tz9sQVWEGc3x~efPFXz^K9(mtd58a5C6XeAEhB^`aN4bMzw6 z(AqEsy@=})(TX+0Ba~Dlek?_oPSeem`W!e`m-f9U0t{HY2rwY+8d?#m5e2PiyF@E9 zeSa!irSbPFTA8yC%;zqkRfZS9)BS~g?u}NF$ph_5DOw%g-rn5qoL&3`G_yk2EbO)b zD#_+y->3~#$mTJYV79P91)$PMJxU|a3{+K_W7fW-zChKR-lJ9i&cL3&eW=@~?)V2Z zr!v)txZ|sL=O4E_XNofQzhadDRD~}t1uDWd5|yd+dsZ;27u|@nqo^8{ryJpF4ro+? zZUixmCxQb;h33TG+m5AR6ruj$E;-Ps()NZ^gFt`pFc<`kD(r*Ms3PeIniQxh^y&i!fdf$GRI0*U0;weZNO&zW zk%g9V6D)TVkjlRG0#a!#B=$;>%PW@sn?t3ldmxp$#=c0^n~$UiQt{7dPNcFITQd9o zuUI7@RpE;g*{ON`%;^V)0KyDim^S=F z`2B45ko;BzzuyY|ei)~Z{#T^J&ty2&t4xMd?df4?h7-p3|A^85AN(qwZPCc_Yz^2mEz(HFVI8q@PUg@sXW3Re4$6y z!RKE+?@UC=;5~jN2j9@LC-tHS(3{_VU!b4Us+a(ME2`#1dV95cC}u%0r?`pxkaCK3 zqC!E+j1Xi1Y8I~!NQqq-Qu3bwDFdyEM9MT3TQfNlE|EPMzC+t(_)gls zRFIOkOQbZD`DZjKW{}dHer}}9q{Rn~&E5(?Mq0C~j@Ra zV%}R}BNH-uj7Fxyt@~I}gd)Z5r4f7BD?xfyLq{7dxtBd8x4Fc=lDjv<$1r2!{F2*V ztuDC>f+CgNxDTD=u69hxo%tx4NdwC4jW9T!DBEn<$dX1F%!OS@|B^|}|6RCgI?lImK< zGfBPr_2#?t-@iS-{3Tz0H*uq85NA&IiK1?1vrpt7VbH}G;zWuFv_Amiv^%onwq!@w zqRi!DsT)3pjJB|M%rp%mKUZnJOZ>9$0 z;~w=j&8a?&V0I`x#@!Tz2q%L4P!t`a7cYV{IH)>==SASW27pAI1OYrkk{1DfQh601 zrk(H>aK1vYwx#XOO4PGr?V_F)Y2VvrItCySnP0NehxUv+9@71@L3Gyp`7_kxE6V#M zfHfoUZ3cirtbsU#ZHvpKZ3hj*CNz*5Mx;zY6Aa3GzbC20X9tJYB$ihb6p=4!6YM8y zYZ^$KFiPYXHpdeA8a+bkt(;HfuZkkyW*6u~M-LXZ>2*lL>ti3G#3wbU(6@I&*F5YO zg9v@Xv!H%0irmk9v{VCGDV?p?l|e#wrv|7+qRu_Y&)6z`_IffpXN)Qd+u6itzA{m z_TE+PmAY=48oUjNUIDJjQ%v@Ljr7*;dHfZ5La|?G1D2J=-jGPIgViSE0o&}LAB@K1 z@LsBaI|glu|8{Wk8;(Z+U9H`BOTet%1#2%;6)0H+Sv};XNJ4LvsA%-!>-1)r zK&riJ)PoP!P~bAc$lw23>_W7IeMKQ-hJYZ6Z}oYpNIFO{4z1qA55eoV`O zGPCjFEkTk(C@CmrLX$Pm7gD*CVc1ZOG=l7q@EZ|ylY`#yqzD$2vJ%JJ%(=V{AF{c! zcLNy`CMSz}5?6`*Snc!xoEaLuE_u?v{tmoWN9+v5eG{8?% z-w~=Ynkw~yCGmU&c9KRvX!pokO$rjlG|dSLHVMO;pNfLXxcyiUkLg0SR+WxTLy?MW zZ($H6P2y1?nz5$IOIcRbS-RbbgrgPRAjJ649S};5&BKoLtZ|~*RWYZt5eu-aajIn| zb_@?o0+NH1Sn-6Bs}Nv*oPy&+{j$T0>+N3?he9UQuQ#lHfy9Th!k(SYuNzu%h1VT1| z8Ya3o^o;Q;(tEYig-8Pb#nYUF+7gsoDBzm2!Tt8emY<2A@xS$VVUed28s+HhEc>(Z z4iKA}yOjQ6=Kc4y2uUvx%tlvha8BKZQE$-VnYGjd){Aal6Rp?j?flFjgEi6(p<1UGY`XxiYJyF02bg{s5(1y5N?giIJczk6x9o9B%ff z`b*{A*C&*7_cRt_CC@WCX zAUC=cM_eQB?z;;K)#r+(JW;G5Ck8*}tcnzhZ8o{zmsVa=%d-zkGl z>vWf6OIAhVQqJ2b3THvr6*uYTy9rI zcg*2nWIJu#OPiaIa&Ja~!ISSK$T;yv+xLWD zF$KOoGL?=?gpw?h9A%DwuZ^tSve>qjYaIUqcJa~ywZ;Shx_re+EgM(LVBgJ{E2G3Ux*{k zU!Gj_0mTy!G9BY`9)PW&aHY+WW&!Fl{Y<$#b6x*?*)nqnKW{%hB!V{jZ#&hVP0Dz%-y%NUL7BmbxWQ4;MafHCRji2{1TKHF#9f##*rnx1 zb?fm!6!H4t-D};zxpdkZU-HJRmq{?m<7ZZputs_=qoWU??ay6Jxsym0Zrdq=8iHvQ zR0wX{tAK0SfFz2Mn`Bn;u2N`yAL;=&LoCuEN_c6v9rEX%9yM;^NNha}?MSP0N|3qQ z<29snCytyPJBRpyvHv87zV}Yx7=CjOv`NCa&I5Cw5Y8{`(R?{R5yc4Wl`wuCo!;rI z%y~b*Rz0O27VbRps?XU#pS-_Gz{ktJG;QYF-U$?0=9KK}b4?&4CRI~}3WE_n%a} z%cQmRq54E|p)N~Cyvv|3K~sN50@i;WI~M%LsU0O7oTrM?CbQ zTu2yH=)+)A{K_lb^DW^EYcAL5^yVw4GSA`DlIkVWpcTWdJJ)1!jZEn{5U@pGkjiR4@(T zS5$%qB`r>VEC33Rm^Fj1QRcO2Hhkvl#@}H2P}rES(L)f& zyFhA4wS!l3NWoETA2lhzX#N^y;|Lnd-8oi`=LPz}?~K-JKM@Aq6_Ge<(x_tmmy^IbVZT=9() z!kk;N523^1tUiC~7PdS~M$f>8Jvl>4+DnvZd_>pxl(HTF%5WR5)I&9(aZi~%q?Wj z@I@Q_Wh{uBFb@?ev7h_z-!Zp|lgZrG1?2%dPSk1f{hTZ!vZm$_B@GEwDTx7Pr|sc) zE+q}Q2=a|*wd2Ha>pq19Wy}rET$qaqYN?<{)?pPOqRn}}LHTdp(kH2Rh~E@8KG`|m zfrwHa`50@3othCeP-|VNiU@_esB4wFFg6}ON){oH+<}jWS7b6hMBceGTNEOH$mPCF zisC^P^9t^-G5_dF5s&1*$|o3QsZ9R<`$>DA>HbbUo@O+9J{JKxoyCfsx+t%B%sS$* zklj_$ET(qOEe$be_?)%9kwDcfg{O!$!#>j_dKEV=>y0FBWa@XeFH1M(>N&|7n^f9J zawc_`UfamguaHpIJoHzb{m=XMxgEY zQ4%9)*X#;?>WBC*oNtEwU& zwhsOE)rG<1qJ<#i7DC z>)s}V-kaJ-)u=Sh&op147VyJnu8~*7|Bj%yKrEt(bJ~d)vf1$GW_H{zkrQt~%B=X4 zxo}A|=Le#BHbz&WE9jo<(|~_8xKc7ifj#&!RA=+n9eTFGce8VL<_uh^*OU|gZ;5~a z1sNa&1^@~G19~R~phipeEwTXspz9R@IG}&rteITx9IPBIOii5}nf~`+XLPf%E==6E z%V0(s-lo0)ouh_qKoTpKx42ejS;VihSz{iOIzVS&#w%O@>+5X_3aC{cTCCW|-Q#sR z^~BFqgKWCnp+JgTqZA10L~k5>PFKyq@cMG$Oe2+~Q>v2crBBZ%Pda`*-48j)jxcX6 zQsEXVH3|PKy$C;@u$r7K*49ys$v4_c6XxG-v_Gn)P|qP}x(nGw{D;yI(-H=rCAjx4 z)AXKg+J&-81&G>60(YCDttKNw-@wumA9|$AKkB9lG#Z2}j)n@)WYy-greho__iaPw zB1>~bxklWtEuyi}d+!o97+s}&KWrz6UaO)19!7jRzH^7I`)wJ4r?SEUVp7>D06WLFnB}%Q zSwdJ4XLG!FZPs7s_h%(BpAZQ#&iArX$7d~3ZDj~d!ndNm2ki6;Z7mGiwh#!Z;uUx= zh!~8j7NrhPql_xnTXlOT?03$ppPpI@Zn&&go_Ir|p}U*9IUT%X}fQehteuz4kWE`%@De1@>xUbJ}|ECRR;ByTPk^^O@&x-#bpIq|hV`Sue5$ zZa(-In*!wjN$})EVhe>-D6@LW^|-|b)V)CwAu+GY^n7$_-GAd zTvU|DlZ$Q0SK2(u7S3g3KTgl{-RG$xouOh4k6J#<#tVmc(Q}PV48&- zGWimT>*G5j2IEfJZfn_Mt;2TqUvHC@W8ab^e}qfU+2~Y~}Wr6M$*O@ryFXaV7p1t7|0 z^}KDyBIdhD&7Oc&px$Y7B`V#su+4%kTnRMgUeRUOX&d} zqe-6l74{2&*sots^~KYf;bqHlX{N9DU4ASoL8&wQ3A-k}>hP@dBB}qz{y?@>t+HBn zt1~V0GOLT1uqrcJAoH|ha!IRVQAgM6^eelJ*luib+vlyXg9JUP%3SzfK~8q>T@L%y z+0n|g(Tf8&ivz#=XN|2shn)0X!K&M$1;>@SWBQym2j16W?Q-)Xyb5N28{K`@sl=ep zm^Et#r;GXg%SHdX)-JB*ml){S=yfT~rdW)x@`D(cmZ3DobL_7dw0Y+zT9WG$ww>FXBf_`DK7x7pf`T~$bLD|~TQs+V&n zcW9pPTd-G`sIx`bs{)g6{k?fYwmkgPnO9e31l?GyuZ71!Iq3BfuW3eX z6AiidrxBq)suuT!b!KuoeqN{R0ycQ>S)np8F=EP6k40V9L``>HZ4vNWbA7v-_ztv~uWvdn_>}@d+va~i77N1UWB;y=mG&8x?MjDTo8!)l0n$e$Y zJg*tLQ&UGwr#}CVYwC5FUn2ytKTOs7$+z{?ch`>%8lB7gn>k>&#fWYA2W~H%FH;Cd>?F7aXSmqmLpxZfmtv1K!7vof(qmrR&qCNN^j zt41O1l|9z)mGy^=zYJa+Jmnw3ZOe+O?Nz8O)x>*4ORb>$^1*tM@j;3Ze^l?xl(c_} zfYrcyHTuDODd5yXqQSF^utJnsESUd83z#Vp+Lv6fM7?e7$IGifua}^iTdRmNIG&dX zuzwq($;3NpRxEr-ehAzP1)Bd8A$B+zIWV&sinPLeWnL`Gi(!cuA-?aSK1~MQ*oyY+ zSXq)6lW5Jig#9KQZd$hEHYNoAd-{MFeg3-bgH54Cv^0T#sKB3xr^D7ygGU>eRT}pB zWx@4N^U=DlWA9Fv>EB*2_hK|yNtAu@D0#=m!ek5uVl;UydUQDnZE4e({a#X@|fy>MH=#$rS5&LcXs|=wcBa#gD`TkqI+i`@Zny&+R)K9~AVxk72km=k;gcnKlQaVZI$5-rxrzIEkM8U~X?MN^ z4@4QwP3UOdyeK9Ce!(@Z%aY=140i$2*yTW@|3JcVa#$PXR00)C1a*5bwJL+T+pV&q z?EZH-v#%>d7eTwsscKtu*ZG%zLZWHRyHVpwMl;#j65~nzb}Ph(Zp&PZD9>;t2$yp@ zmk#fiS4Wqp{7*>&1io?xYyt#~2)x>&>Ixvx8wdV1H!FZD6-$tYjv0V^t-j+ z00+?pc$u5j>`0Nc+Y}z@z^Y-Cf+9$k4G8^dQUssQitBfD4H|Te4Zq18joWKwiNDEY zBXhIW67F+cut#^6A()mm!peR^$gZ$-BP7J^2&J=!RR1M2_^#Q|2OmVHlP&@3X%Mp20_kSqF>UMOiX5!@=eua$H z$QN>fQR210GWe%N$!8vQP3E=)!{mPyX`l9JSpbpEOCEA`2^Vohg1OI~KtAYbOtH^x zE_S`q=pT4=jQbyG`9Pp`>$1JpfyBm|UT?i=O_e9gt}*`q=zAy`cC0I9$gU7}!^nvc zz#6!FpvjJCrMmX~fZlO0N$PQ|>mizUUM0yM7KHLYinBx8anEb~Udb%0?;09i>r~M; zKCMRHg4g#C3GWBaiwW$4CjGfpNONC5V+SUYD~lSe!IK)&>IWs(nj!0u3!^&R<&w07 z>r!}6yA2}j_AGkN@t-|_opJ+8mmP{;5I)f^8@UU20bl5qacD}`p+U#FFyQ5LKA=NK z4eMah04U{D2evZ^1*rb zqFdq2xC(FeB;b2=-iliVpo}Xrq^z`EkhRR7swH5sa!XPO0jJBwjh>ISUwbzXw@U}+ z{jo}wYiIE)_tAa)^)w%8(y!SeVc~u*ZhBT$+41s(@4LDUkD^T#1r(?f;P?*&6myv- z0y8s0E;vR%VBc~;ceJ5p)G~wZiWm7F8sdHs{O!cDYTt50N8fwdad8p**Vl??>b6Qm z{9-r#n)TvG(M5T8aQoHf4Rw<()oRdJD7iLZm%!DTPx2Y zTJdmu|B(x{L7I<1&*D0?o|C@(JQgYKMH?CRqVTxM&KOq}wPXc`RUP2|NI_vnd8d-P zA`6C&b!yDVulWO+L5I_Ly_#m1Zp0pW-7_kT;i;Xii4*elFEfUVL4Lkk?J`V?av^Az)Ay-77(e zh3b2RQFt<@LPc~0Y1&0b`<xr{ejx5Qam+Ae&1VZaKwk)DpMxQ3+MWxJcm*KbnLcRz|`it zd>r5HsxZa!8?!wxPTB`9f;YL-CY=x~mQCLR68L7EJQj4g4i@Qz@dNl-MZ^Jo2j&t} ztr|btNkI9&W}v9XlQS!W$~GcYL8>9CaS{&JUgdFZENuhX)5(>I8bXu34qGEj?f z$90C@@v~;laBt|h*U2+f43i9aZR~7los`^pEvrgNto;#23WQ}|HohANg4Wve9}2>p z>am>+To@`CH+3X8gg+u7F=fynpd%c3q}ymh_Kf0y*Hra?-Ut=Wr)D>?wLHH`?#lJ+ zitoaNHq$}trN)p=k^UT#Veqo_opy8H<**a)vzM^ix{71YY$7vsvq^&M&q_k>Z^i$k zVQ)uQxbfykw09P&74<>6t@jgWY9S7`KPoBoq%@AY4FFyofj1`Ci8Wu~X`kQrWS$`ld2CvB$tJ$!8+ zO5jG`p{q>66IaWKp4_&bgs-VZiP6z_Urf^4|N3>a#2~wXg0V4E1c`Y887a4wxXA4q9pvHESOB-{K2O-eXjDjXG*}n$ ztci9sXx(TpC z^iF%klO6cn9-QeMT( z7R?l#h*T=O0ujfVx{j*_?Zt}NrT$2 zZJe%=%#X)P9Nc-TTz=0+p_QnwS9FElrek$yMNPnyN2Ov+Yu50$G6rgCoepO9v9FT6 zjU|zS_Fy^E5rTph0iW8HvGFtWSMOXMkmY*0EJKDK`EOMo9jlOX}ivn*I zUcKW0O%En5ar$RuT*{hBnI_cEt;s}$N?#L#_ULkv4$JcP!BM#*irUkJXAp1PfRMH4 zI1iJ@Q@Je}>S-XYPiRx%LQHf02xRW0Xvq3WHDO&+C*8wiE^gTQckW;g^*i!ll?QwK zan^1D57pz)>mmsZQ`_J^-CCz^b-vGA&<*D@TLW+J$^9jh7hKPvzCO!Ngu5wt*Hm() z0V?5}^G#4X!Z%~|{Cs5CJLj-$Lpc=&Cge9&snI#C+1dP&nuf^f$Z*Y)9{u(yy&WZ+ zg8uU)<7Pf&Gs)!y3=%BfT!6Aji%#~35)EM>4VEuPzdJa2>V=G0gAb*VBaJeOo+!6kV1fv zn80sgt%!zT;0Z=Q253^{0LK2B3+<}rS-n^wLQlrtuTWo`Og!BN2NG<&N5KkVpdX?G zvN$mb&Cz_1$%O$P91msKgP{jeXaKf6Ivy=>u*Q7|60x}=$$IJ_mC5auhyRy$UR!4&(m6{@0@C@&oSm|y>)>t{f?H(4L94e)pYMq zcNM)>{NAbC`kvX}X~0I@56}T=rb&cHsJ`d_(R=w21}ns9mk2n%uQ<1Wg;0=y6`JA+ z0Nhd=5{m*rH(VVUiGq{d)xM{Q;E+5nia-fzY0}5qETgUXg3WM^B-hm<_(GWlGrJSk zRNst}0T+sV$;G|cHyZn2$@l?FmcGIJPu8922nJfzOTcSAc2NZ=`(_z_z!^m^U?^n+ z$lO(r3y>c^ecPX}ur1Q4Vh?^vE7iOtj$fQ&8ETK!E08HzRl0eL*ST2c(C z>rjNty=!pT|KCT&mIuGLHbiqvW5S4lnlCs54-{_8`{825y`+Sud6TnCJ6`fRxM7?_g7~+ zISq7+NgOaz)gQ=3zXo4gRnHBWzCVS7Cm?|%NOK2pu2yjMOh27suUo%ktmS!j4VANn5Tsz;B1aY3yri@w{W+Bas+AbQx z+OArUF%FS@nH`l%R35-dB9c!159rK}r1PJ4@R`SGT&UJtjm%ri8b@R^y#@ERa1j@m zLmp6Cm>ZWV5_%41KP_<4G_&XpfwRA<@IwXAtgjL93D--;l&umGk8OwR3n*)aJ;#l? z&k#69wx6C+t!LzI5^1sV>%lfZQr{G4aQ|6YtZPY)#`(=Uy6T@eKN;Fzj{LNjpJx$GBD&Z=y2qyS=FAA6)To;Mt zaePWZ8-M+O$VJ&E*Zd!HIi9G(6Lc#n2 zx?TMniz)#!?1_w8V3_^;Z*3z2j{!_)=3a_C23~R8M)NRXm%a_*PS8R;ML;Tav*;BK z%46S#d?y8M(|NEh4o%KFA?W<$*gRmnbA2&zajucq;KVnB6oqa42w3k`U$rmdNrJ`L z3q4&MRu2LJ@k~^rsie$Kz_Zzy!xFA%YhfBucDobT1ZG zB9hnx;|1EYSM(qASDa89LS{CIaTK^Solyk8V=l*Fp?lH>;U?l+|59o>iMI(J)tUhmDJUH94b5y%WZ_eD?>bxBmOEs)} zpq$iA#-K8-NggNrE`7myk`eA7YIzlQWaA%5JZ1<<*dRz+<*}mLOi;gYE5NppjfPVw zuElS19>mQ;LF@l~RY~@YJV*P$$UtD+Qxxp zCe%U;9fsmo2$%vuOHR)5Ajb^CG&A5w2||xaAG2?rG&8_l95?sxm>J-{miqNKYyvnH zND71R+SiV=-sw3efE$^;UKy zA|XQJFt0WRhDm{O*LcE_>=~~9-eQggX)~~C5+aa9C<4$CB@=>_!`_}DNP59NlkV*b zTjrJOSpNX4bZe03rahOef!`;~wGrR@Vpg)X~;WCeHgAvtj8G0$Q8hGtW z8Lq>?vI6J~+cHX@`Vxeb!&i8uoS^Gf28Pr*a1Ai)y7Wl`B+El1gv1HX@d#suJ(YTr zO%ypu=!`(R6`vuOj4@kSoMD-J3`#|ufmaJ0e?WBrB&4jbMO6j@7FZQqS7H&#=#2Qh zB-(-8bbGA%WYyIHV5IDO4W+Dbxv}4`cwOK?lT=o~$JSzvFu&H{V2VR- zUK2qc`$5aNcAoUb?*lxH(8I^7B+Ua=#3)3#1wxPUSId24(~czGmk2$cTkf`mZmy>+ z#_+wER!i6GU3TgvX+8z0v+xI5aDF~%^>eYoaw(uu%P@N_0vL-T@_IN0Rd7aI!yL_h zp8jIZ-#1lu?=-#5F6(3Ze+bO0?d*zPmC%ntwU3$!Nc-k&rC;Q$jrbmqT8XcOU)1*t4;-x!|Yz zEYB*kgCWo|H4;feyM*2n%v2b2us+2XJ2Iu%R!TiDxJt30I$qi-g0td%>Zes~z@Gz8 zQKeG;E3dBY75gKRBdf5lcYz#OdhrWf1Ad<+V`%}B6uuouH91fDb};VKUDkY}>gqQ( z!a6M+s^&U&0M$PKi==?&IS?m~UTB45OD6j6yG6lGmhKi@4y|!zkNsM1)U@Zl8deDM z1f}By0^J^|^kB$@eX9#ge^gb1SP6-YfVFmj(8uQac*UXA>L%BTr6l$#q(XwgpLP0> z{oOHq=TzysHV*eEv;5qDnONl=5tk5#hndG4 zkW+4n&nvVss?C!`AAj5(9o2Uwjk(%0dZeWh7|HHkz2WrB<*&KEGn zrMGg5_?o+wi+qVlmtK=`TEuOo2Jv$F?B-OTuXnU~I$c~G!z145`cSl(0ykdnD!J`) ze|a6%CR!k{NJ|ZOtBCopfIbw?Dg%@b(-2NS6$}sHLMw-N^JEP+U4A6}mgkWgsiJ%4 zQKo!oGw8(fbI@qO_1^yB=o|@MUx)Ksw@}%ZLYD=PuxIZq&&NVpN?1vAYZ=k@VeudD zA`kC-o7GZnum2K`;;`zc#V#S&Dn4qzOiSd}Ib!9SG;xHcSHXYB&pp8n{!aR$(uePkf80Mj$ zu6roL8SYc*tNU4vFpNhH8+}lD-Lo#}nX!tOxgukYEQ4Cbs^S#py!OiI$0$ojnGF{v zKfX0o_U6lT3arno9xTs(G0>y^2QR?r*s3{eY16J-POaBl51*2Cto=T>E_ zrZc3%;@s2WyzbmSC@;qbP@cQohoewI#CHFw-1|!RV_`(@?tMMt=Hh+t(8Hq@?U&6W zVpYWVzk?orpMMFJiK3;{F%>PR*%$D9{+QV%w`+ zR=SzkR|JlhYV!t;0z1sx<*|$bDUvwAT%s?eBP(CzgiX_`YrlX$9hj#a#64pl;e%2k zG=xo)s41|bFPSabjGgf|lz4TjLWiDK5Xe3$@2zRWUs;i91xYYD7mBdwyL+?=&=Hl3h}vw_1Udc^#V{*r&A^_??aF7|LouISq6vj9}uuAW@QfAR3wQ!EP;Y3?J%X|;t4_@xDXFv zcz3yS2lt?D^7qjB$z+}h{@_XJ1-_u(CCfx?R&g3-L22yz@&Ut~ReC(CE^Nqut1F_h zJZ6cs6t%b3!_zlc1)A5)j};Uu(8SEX-<}xVU$VjqV=0b+c1j^1?c!EVjA!&P^p!|5 zlZonmYOWh!pVq+T^=Y}=rwnhuV(sv#A!E3l8DknjuF(!GRUC{7%&fwF*?dsQAbX<3 z)zMo-dWsA^Eo^RcNd^?eqUg@bXcD+Wcm2Wjj!^z6_RF21IQ=m&L;N>awM7b>+^&6B zCcj{d8cd>AD^+(n7#ccDyYSu)TdqQ8f$^1?)A^z^XNo^Ig>~;gFuewZga|CX^22#b zn!`#cLX6qVYc(3Zje{zb{_{FD%3!0ZaFMz?>4A|-%&<6{Xotwi!K2q|E{ydBnA}~Q zRq5#m;cqzMcD9-na{pq(2E^>M?X_b(0Tgl@q@*`&q2uU92XU#=mHmT~K&CNH05F;L^7g6B#S=vI^gyh}-E?GX0Z4+|7if6E=bU?RYt`auUE8Rstzd3(1E z1Q2sv!8n_M^P zScay^jEnLu`cbFxzu##2n>~VQ>Kn!Z&zybSlQ!)~<`oUo z5g@js0?^QWCLyxwHFWT6j>gMhm%^F0NPTl#F0r|yz}dUpArH`~VBAXvseWgI$4E?} zS7Gd^u5)dA5`~le%R%ieY*4>_M-sHpGS}mOF<&VF_mc|vh-!v3pehOBQ-iGf3av*U zLjwJ}8T|L=J=8nlHL<+la+Z4JhXYpHE`MCmx<}C=M@E0d+euD}WwG$LO}-Cr-Z$s@ z50CybF!X53@EPeF>SQ35^!O>*x(ao+eM2ru?PdfV_(3GPe~(L-*t=kEs0pW#cO5XC zgy;9`tU_?8XLBu+FU6j%Jv2=Jx(3dcU)yhyAQ0APjA*g9g33pwH?cnR20ex)YP9P>?Pd|hDpSP}__{N6bVdpjpWyid5H~?zmd)|* zn$7yXJ&(?UREpnQkyIyeP@A(!fMr$yA5Bp0!tSy8&K~Wg=0Q(xwxw<`N#MmTctwL(;)so(_$Set@_9mh_%3Rl75w z9^iZ*pzo4_yMsRaw@QY!N3bo8ld<~hXkG^W;0n?wc2WS%mJ)47>9T|fEPg$i7%X4p zT&xJ25bShV(s$stM8Y?j>d)UdujdPa`=6nF0E%YM9>{+k$La7i@L~dTII~tSbPcI> z%HvuWsRC-`{r{XhQcv3k<$siDB$wgl)F>&Y2t43nIZ6F`H3GWp)pJY#x zk|2+O8u}2|A3vBph(uQVwJ z!c&6}`cXG2Oo&YnXXc&1hfmH=vHH6+6{+6Qaciq|;XW6G2`!J%1-4RTsDwY*j^)rX z5BI&wd1YHP*|%cOd?nJ!v&A%NW^ zW#b(5%{Xf3?}^2@u-&vdHWtt54h+FDWnFN@Gk1Dg8G4e%lE@v>m#U1jm(58^sB_aF zKV-;AWfLV#~76`{%i>hJ$iyFX(x0t?ZqpIsUTw z4I4W|SrvU?O{MtyocaLq1AOE=L}ImI+Z3)Z`u%xFhK zM6dJbO8*@%Lh+&Y4otY4r%239pQ2Ko6!=_L@?8pgo9M{5ouU5(S5jKCfdaQAX*lsg z8DlTG!m6dvgM>6rlBBDvlivg@L@p(&FO~G9;jItD6GPL+T^WlekR(!kD;oHZeXslPI(n8YpII(1pbQI|PH>ittz& z*tlWMC!|bhkv|s!?!=2UWAvg7=wv6PY0!7(g`H`2n28?|4!Fkk!NRC=bjs5$gfFtt z)#TzD(hdZvXz;61_P`T}DzAF>)={m8n`bDypkYo>M!n0h5-qN==~g+)ZWVv@XK}Lw zTiX2`stNh=u~~GSMpK!93y{2zeQEsP32ST^)| zVOQXV2IhRYOP)DxRkmD#9v=BkBM2@5z9VlJrFfq|2ITPJErIL_w`eC&a)L)?3+_xI z3N!FS0MBf-S&j6ZO%nB~&iAaR{i*iK)(Kvt^o>Q`1L|=ScW4&{5AnH*3HMR)E$g(M zh-Jbksrc0%sa@&+S|$UnAG(iN^8KpS>r>NkPN53~WK8kl9Cg zeNN$IX*=;FHFW0Ti$Ikncqf;QqOHDGcHNqs%h>V%6cdV8ren{n~LoTbT>+U|A545}d(o%ovc1EXEA8rk9HM1jgl=}I_2mtg)?Y2R#Dx7VHKRVLkPGf;xsiHsd(*x z9R_$%^O`l~f9o}>6j~^SZFVogpw9de`h{SQK`lLAt5^dm(WOi0ShEg$hLSBVee*I4u9e{573+I9pD6?x6UG9I zg;X01;V-{s%QJt&-T4GkHKib29i(vfc$P~w0fl$=b8B-7j9+*)D9w^?X;oQqv5#q!a(7H z1Fbi+p3!HEdc=ehx%^-%SzUAdg)Nr!CFD@nD4sCRG_!StD%1oWi);(qDvk6ng_H6b zb=16W%?dbk56|x#>#G&0ytJgztP0j|yUo}RB^QkCF`U1W^{lUiI^$quzkEeeB0BuF z6$ll7-10$i(_2N=a~(vAR$ovj*FuY1|3*@Tgr;nX#mA=?mhFO?V!D7*VknYrYaI?vT ztqa{B;Rvx=biG;$6be%5mDqv(dz9fbWPFGWJ?qA+kUsvGB#syjS&K?$s~Z0HW8HzB zG@GOG+b?o$nh|=7+gi6T+pZML0xQtDV0nv>Wl<+)!nvA={+9YKGkemMNx4uy<<7ah zkd01q`LKJ;6X3$`GSPu)Z9$|J;cU+ot7<}4(I}9J-%ItEJLaj=4Vrf#R5NTijg*{1 zHEx14)S)S}4H}M|=`nS`r#_KN)7~M$39@)6DC2PYU`p8+7bYjRmD*Dn!7ECw?L zp74BSFe~EGto;7tYp(LnAvNn}FlerEE1|*BW8J!7JwERLj`V*q_ttSyW&i)UG)jkb zhk!H)hyp_+D3TJ=9nvDrAl)S?2ty-EH`3A#igY*949x()JGi^=-S@h?-_L%3pWoy6 z&&-)~p7-2)pZC@0-nr*ye*C2p_iw2@)E4sUG}LtvGDwcgO}pFK;c|43w%Ks|Y!xlA zzQN_#>S1Bl)R?~+CIMY~Cc8_K-b0~bAAJ#NCrCO^d3EFhAl;+$=L-I3s)^oJP%MOQln2b;{!B39@1}-n!8IAp4&S{Vq&fs zr)}ZcgR3I)1Ji`p(J$_WZ};5UVKEO3nZjyr)JedZcq#ja0Xt?b;`3AYTNB9-=le#9#A0LsF?+qTxMlW5bgNd=;Kj z!U51n-vzU&SRQ;Y3Cm@BzuN0MmyfZUH|yyj5PNKV*NG<%f=W>!@vO! zw<@;HrrNU~;pVZW<%KU3;(ZQ!^jRwiD|F07a!iKuL-m99iZO|-($_is@hXz&^mI3E zX)D;ardM*p&WfQ_9e4k*?6Q{35T^SMTFbrmC;^JUHC$5Q1(X$uN)1 zeFfWrA^pasV}v}mk0_>p5zo3VDIOw8fIkKSapC=D5{xI34_Fw@+7TH|73sbVqb%aa13^{V94H%M@9rf@tmdIG{h>?6ZfJueN!ma)u3 z<~va-K$>Pvi+hZ3jT>k{gx>wofuZ*sAExH$yJobmO2h{*{g}=3#4bL~*Hc;e==c(- zT3259$qvzHEU^m=V9NB(-RG5S=eXIiu4w)clEyBL_Cq~Y{C6yQCe|JdXfk~X zM`q1zX`7Ot4!myPkwZdxXd|$Ta=Y=V@;%{_1!9eTISnVD@nvNwd(o}^hZLzd+dKK^ z8Qx8-Y@SNQhlVU-YpJLDe4^P|JnbO88IR!%2HTBolsOMjbtrd-Q@XVB(BivIcpt+m zI^@~W&$vskFe_YNSF(3L9F}}L|Ip>L1qw?xxAK_1^Bk7bH@Qon{%?Lnb{v)^y#(O@xVxY27!%i1&JVk{O^ON_)&1oC6tiClMc&43Fk zDO_6*c^5#||Fd>Ose7ZBH zouPCQ;@isW30)@qoO*9ecSccPar}6!`p2`?5j}7#BjsiCrJg6lPlkesBaB?#qnYH^ z6V+=gbH#z)9;Y)U^3=wys*-r3HWYZSy1R*^7n}C|L$i8TETKc~(DdBQHOQK|4=4J5 zK@}er`)J|TFbXSoS^_t-(<^9-KWsIrmApP=VH|j%nF&9AgL*8DJzAz3^%)+PX0FNQ z^Rxq9*Nte5V^Jg)X2ZY&4f|oT-PX?|T_n8Kc#v9DrG0^)KIB|76T)wadgDeG>0d@R z0za&bE&L(p_F07qXHhV9lb<&x>qJUfr>JB(660c_ym6{nynvyhpJvg|er)-jIe3xHGSR%tyI9eP zr1S%FAkG_Ga`Qffj5Jf!!;SDYM}-$BB-$;*i$I>g_P1X8hOccDZ7U<*_+xjjZ!<*v!QGk7u;1;yuIXEdh&!9 zUxzcr8;m}-9%HY6QT=9r=;_qr18%wpBjUTTiWVJqbRuKps->grd=q=A5OPKRT>RySY1!Fx{%C^%kZEef0a30JPERXW={zgAG- z^7vR%41NXyKWa^_mJAc&#xX0qS6kWx>1r9N5egIG#3*A6FGGf^rS+w3-S2+T@<=KmSGzE5TN8)@+a+ip2 zy>&-!Z%9|qbo%;WZ;qPcWH_cbIwi{&!+sDWO$Nb;yPj!%C{`9Y=gzJn*vc8FHcLo*v%1J>j$8Jtu}Rd&o3oEA#t8!t z>xJ?;CDd+r-95^C@*z|9?Gv{!uQN@9!-#8`rozzrtcdp@oHJN|Ygk@p-+QM-sx?3t;nw>qy zaFAZ#AGTe8hyF%mOi%hXeNqvC}H2mG#$LN5|4oG7+(p-I`Y&-m21S8uQ8&; z06WTKsbFA%<39(4Q^f8KBZVcUFdi$&wqz+PCqN-@lH?gQ&Qc$5WiRPwoX3UUW!CAz zV#yT(?t#*3+I?ZhB|S)BQ4q1mi82fL2wIJoLRwRH zGLgitpdu@uC0{Jl}ttNaddy&l`X#Q=NN2bCT z5=)%d=KdG|^t&in3HfHrXa9$bJ_KRuO_EtL${9m0&Qjckn+u1lk9GA-(b7|1plEWd zp;j8Wp^NDVQfgbw73L<@pP3R~5Y%5bp&`4jSckj!RBX6?Gh{?P5JGJ$v}q`d^3scO z$tG5!kRQ4Eo<4Z+6vt{XzLQ?t=R=ULCaCA2LX;H#_Z-CA0jT_GL6lC0ZAxZM1Q=RO zM!j?59^c6&yC6UHPb}*Zc43q^ZhR>COaFBL+CRlihD^dUZwybg%=44Y`{WC3Tk(Vb zx@^L_J^S~GO4#UGlC!dRW}+92br3@}7tJYTp?x5-zVDaJ&v!^;S4vqQEd{pvMs$TZ zPx`=48s4%8yX;P{Cqocn?Y{oV^v#jPHy2iker z_``F063lNf8gq#0@1fO85sJ`*Rfy7g4C zV)B^xj#OmOo2sdI6tONo?9^2$s^wPPJ4Ug}E0nhzxG)~PAg>&&|X$h_b2&E|L! zPoc!>$X1;ye3rCGn|nKn*pRkRB^y%8$_n;owDs#N;&RuvtXX{~cInr`D?vU^`_8|H zQhGqIRQDMLt5w-P;V{Z638#R4Vzhp}gTNY7pf8oD`;mCO^7iIudemFdLtnA$zE)B7 zJjdth z2BlIDB2wonZTCKX$t(-x6(Thl(={?oc<*~YjyKRMm_bQFOy7ZDK0cNyamk7+B!edQ zP}ISzByn}<^Br!yH`uu4NDSRDhTs;4km!uQu1W)uw}B#02`9W0Oz58#W${uA4PmE3 zU9yY~Mcxm$$vn(s@Mc{H{YN=sb+iiE1R|zF?1|^xW4qn3th}B857!NG%@u8nO|H#c zzK_j#gz6i&-iQ>ufTw~Jzg9EITr?YR3%WS<0$rY( zoo{&c&w|gFsdqkKc_v(*6^sBwhZ|KOtvxR=t6suk!p_y{7Vtr$?9B0MUm1tv)seCS z$E!VMPL5Y8%CpJOzLt-;8&1@gzjeAi(&;5(Ot4uYJ^-ugx-Vyo7MZCi9VP8=_e{Is zs86&w=k3fhkGr9Jx`cIqB>%`dw)gI?Rbye=hSV#aH!~3Po!RV$<4og?3&dGxRhwC2 z(2kWLXonEA?>bQKyQ4hYtW^4{SR74ed5s1D8ypx_(M1J8t-wl)Rmf0G1Sm(k-mJ z?>%qW9)O*PC59_3?nSW@LHop#17xpx|+0k@nx>s`E_yi4F%%aM}hVIER=;Va?0ApD9t zc4M6FiYKK~iI^$gd1y(*`Gf&Ivd0&+)f=1+eUr6OR$`+tTr*p` z)#ZLX{%U2|Xf#EIbM0H`%MAmwl<b6z{M%GX&< zeQ^3c^mrJWc*HTIlT&XWL)L-jIH26e6vm&bGm0v+a`su+o^xjBY#@Uqs@%a!jJ5UqPZDP|8XuhLiHx;3R>Uu)KQQ zNG=0&#pOTiCVnz~z5v_y0jq!L*h4Q#sdTzRj!XeALY{>EmPhR<^tw($6oDfguZ@H^?Wo8-v7OYHXmnIeO$ zq5J2S2Glhn!$G|PV|5t)^lKySg&o!1lD#|Bk1M-fIvc1ST!s#Fq2UFpGA-Vl51HW` zwDSxwWd(gdUeGCKP|n;4V$OQ7?k4p81rqOlJ&Vy(rAD0vino#?b&)}0a55odIKcQ6fa0MbAec{VYp2%m$>VVjQc zQ$)YchnOGOFNbl|hwgjZJh$_PULDLR_th4LuVQCnVZTbDK2+a^G|Nv*SshSbl&RW! zMjj_ai*23HZ#|vQe*P}erma7`K#Bn8oEJ?QGsg?YmTW-8V=-YPMiK zgqCH~NvpDtaKVH)@t}(~mwD7I+ZF0$=o&4Aj(BeQ;2@$kxkMk8P+qntVorj3BUZN@ zAPqba-4QO76cxRpywG^-TLI-*c}LC3x6{)t?VXqg?Uqv;hy(i&ZN-2KJ3{!$Ew3Ll z!|ci&7vnHN#X-2v;c7P2SBweMG-!+q9pSZVrAqEu!V5FK6250`?9COxduw+IUe3>x$!1B9 zN}Np{)a;!4(c)U?_r#hGnxFwUxP1XEV&Ow-PjPB?xi>{rI5Tjwu)2NXxHiYGy!bIw zApSpdJ)HS<53_Oq>8&06rFXGe3obdnRs8qA9P%FL)Vnwrh7PYia8t=!(HU(|k~*uZ zTYu~RRkv>T)vCP0n!J>(LsE<-PBwSnLH2VB#m7%ynr$1p+e@apBoUNw6S-{1e>cF@ z#j|`ds#15M3K$pJvIj3aCPRMd)4f6{O(+ND=go@uN8Y9S7^BR%jz%n*4uMp zBl+d!JL65FcETdDWFPS%OXDhkj2}Rf!r56}3bI>i_(UwzvMc5ngw-;r`S=w-bdCEV z2cuiB2$Pu~@9|vyeKNleD?D;k|EZJtEMDI=YxjHRmi8)~ljPNUAl^pZegj)OyhGjx zPD2a1GlEZq-KHV}h8B+)1#KWTqdRTq?yZhfwiM=fS~Qe1Cnj$%(Cs%K@xLr&mmL+1 zVRd%qo<=!hcU;}!^#Mxl@@*Jl=PDnL*)msm9+zrr-#1)qt33)D)_5L7l0_zsd1q6l zqPoJ@U`JA`)J(fGyq3I#qu4ebiKv>8Is?!BxwyW7_5E236L768eSnAY#gOh z0SA?y)o60VH1=RI-Ol=2>KX}|i^3ewKx>;MtQV8=S#AU3WNSE`^h5D9c^EQOfFLYs zcT?MV;VAJO;Z7Z9yP?VE5j`wk`P|)h%t>K)u;A&g?Q-SgA`xqRq*#a75x9T_bsU^* z*=t`Od{+M`+%?cn;=@H6U9Sjqt1yM3|9BlYXg)XG*hAmu@ zctK@S--B{8)V%9}fILmEyH~YB=dHVusk2>OV5ryu7p|(*EG1V1t z7y&2ZAC5=HN~%%6ReCU@Uv}F|b4CEW76tZ?elLqGhYnF3;IWltP@{AdSsnYHn>`ns z5G`(r0SO&e-cz5Ni3yT&KPF_rH=Dc&r4QS%JKI`ZLrOx?Lzse}CA!21USE<@4KC?3 zW%fc&SqEqwJ-~wuv(*kqg!i#0&QNJpj*AF_bY5O1qr14>B6=pE6}UXXVvfONMeW{iT+J-ZWv4pjV zz9@~??voqL zFcwKDLnJ`dtZ~;z8;_jczY|XBNJ%om2W#%&&Ka%?PjiVc=_HaNhLNFag@I5FmY#y~bM z<~>|?s$oO7eU(=2*q6=k*3>iD_tdv^1XmZ=muv0&3tS1vjr_+9M{Irl)z5NjC{cRJ zYzQUTHVidm1~pF?iVayo`mwdt%>*8q@<~yzr`P#r7>w{OZc9&OAyCz^%pK#zBv0jPl|`n9 zF*fA_xEW483Nx!^G@@iAGV6V0sEDa@zn2k-py}Ilx^?>Y{WkA5HE z$4R_>r9Y&gu-)5hMvR~#<70O1tJc4(nQR0_H8LWU!sSM(tfx(~+eB@BU!v8?Qlo6e zK+rWJDnaNn|D`ucDWH$d4_}3bH&lw{mL|7Ee^C>g%tsIVd%#&!(i&UH*YvGduHTOD z?Ty#(>d3k1SZt3)Dk}}g*1%v2Cs@AAFa>Vu2z`d|*yYn_F0{D9L0s5HfmNS0EINt+ zJ8)avuoW?o98pS+p4qX9_BpPeXyP5y{QdA7k8Zuf9J`HH(j?}`k6>r&>h#%M%maNW z=xL?!+MFq-v0uuw3=^C8jDh%!WXD}cdL33Fb$+RdTyBq_=~vx-^2EK*3ptcQkd%)< z?$OrzO$-*Jc^}tj;TT^R5yS3Rjq|sl?C8+o_L8CWiwm)k3P0r#yn9=pBdnYzS#oN1 zckJG>F(%TzUC97rOidEQ=JL1v0clh&rws)kGuDD(P)oCTB-1B<4xPN{1ukPTwu4T(QaZQik{)4S*o+4aYv!bO zW1$vt1ept$289Ku@^CYF4O|(CK`Kk!>&05R9x-@*9V)m@3p!92 zB*rv+DyV6WpvWAWk!+gSYe6U|ST~jG04^?7%|~Pl^?dL^Bvqcyisexz7~)`Paf39~ zksFyU_SFzs(A%d)r(R7>m=74W!@^nD2dxOXOK#bU=cHn-F4WJz9GM({PZ7~S%(n8z zj)y2+W~%vVQ?~}<{%&1ZD>9<+eLka4X%8l8H#cSkFsK(&xv4ym9okD<`tNUe=Hryr zP29^&$MW5PMIa!D6R1!wny|?gj76$=zqP-`(7|F|gr2g`wQ^GVlKhQz@;;}u$Hpn~ zN9{h1#8zvP{#KaS+1f-3 zIb$nNNPOQi$to00%xE+zvx36J@YQjmy(aIQ;yU zzz97^nTcZ^N61k`-1HlF;0_DHqz8tYXT&{ocO8jXI&M9Qrs(^gH?yU+7dTa1Y+CtQ zeQq9*A=qX>{P!6+1jb18RQe@KV`J*R;*{cLjN-S7L?T4(epg~{oOi&8iuuCGbIwfE zx%Ie^k=clj97GLnIzKX{?o&f&8CU5yqT~T<>jlUVsI`e(+~)taYykF^!Iqt)W)i;a`L)uFN)whI)yNir@Xu7p-%+etai6w`w# zx8Au4Ek-I6oA7v-Kx)(AO>eu{v5PjzRMTKZEo)AVvFyokTs(O98Zm~}nI@`nN-;m9?S#6oMKTXyNsug-{e519SyT*vf zm!2=YoJjO5bpFDCV7UR*jzLlCDMD4jGY_8qdm&DnMs``I1HxpJbdArmJfiu8 zPR1sZ4KSiHN%Zk#)ervFHMdLAr7^M39;R5jaF%jq@LNR z*fZMo8}FEt<*PCmag2|8MAS{E$t^U#3EgeYDhwu{E2gty#mwP4Pi(NXNo;CB&QVnE zBGdIH9Jp)ICDqn&lXYenW8RTm097GT2QyXmWiz4^V>Q_6dwv_LRAjd};LYbMl^ap}vV3bbGl0D@e%h_3*~0mlFq+_8 z{G^pvt=%>6meZ!8U2ak$(^#DGOXa&gA!6+waa=I33^4WH~LIo;MQs!-5IB5K{4f<=PT}6#CQ1W6^32rBGStb!cz|s z-KQI5E+*i?ZBq~g*^OsLANk+k%}{;ICqzCz!Mc0P>a9xCVXmL^tn^U7Pi7N?`$Odi zzKjUEu?l4Yqx4$tMtao|>4a}@FS1%^3ZXy2_tgBXnp-dTyv4QLTDaRQIS!gdtKNOc zDc#(Emf=m{ORP_I$D5!Vra2^Bb-27^&y{@1jRJ!;JKwjyx_^|z_ch_P$`7qvk!~>L zYu5NG5>o)^)eTcTlD%czz-K58HuF zx)XNX_mzV+?>#k)=X=t@@Kk(UlvR0+zsxi-b5#*Ve2}I1t^epk9|sXr-u;3}J0+4g zLmNaiNGYSIu}I|$=J#raFmK*VQ_-(O4z~$wlf4Uum=gO_uUwt($-Nit;pP}*xl?N> zN-Z}htKu1ps!G7lylR$ej*ta8OFrmOmWs`JnQVuk$1KKF^;$?S{aq?G+ap8D*l%U2 z5^klPT{OtdVsC|6@smX+ZCB(%Vy3@GF(2?P!_*S?kcerHhw(Dhd0Isvck#`ItGot1 zsy7DkXCE>PzpubiAxQE(uxZy0ZXuI1q>h~|TUhjUR|5Bopdi(+629IE4`Y{(F5|32 zNqYj}^Tdc!^d#y&)HFJ)>kL07T@%U8C^<$U&cDUxcnkTBbYvOmWpj#c3)Bku%{=*ACg=GU_@1j@7|J5|J*CTpX3dgA z&Ew5rnC>VhFa}>K7SKmoo+IBlJ1~*lnQZ?4IL#yIWuhB?`O|fgx6cmZ8Rdhw*^+iM zS{jWqryzWT{X`0vq+H{j6axB zm$LJXs5F-O+$?J?BdMNW$+MN7wKw+;v#ukkXHm_t>rzw3F>P#vRi0reN1;dcD9U;aN|qGO56Rn zV;=0Z#W+`X-98FfpI#5vnbaza;>l*GL&aB%>APvlNaM}pT-doi)Vt4&(5#p2i_O@| z9yx8F-^vz1p%&8$AUeJG0faSxaHc?)O4h^{lq>@RaNbZI`}{kB1if-mNG5yQ@+-@a z-l`(@i*z7Hnkjvk7rDveK$9sIEzyoO119jfbKiQo+9>}~z8%D&)P%+{5pl+VF0c73 z^I3H#kEbl6?0HQ{tBBK8i6Np{*+AeO#FSM+5-mFElyD!)S`911J|59Y9COJ#%*4rK z3{J-|mODs6>A@^bcmWn5&poymDoPSQFQl;>7${P;P7yFDl8PH0N>dPWQ+s`k1R>Jl zWp`_mY#W*0^wxP}YQGbt2`f15&Bp-M?k6I?eMXR;Xm8L(@S@#%2JFdDqTh;n#Aa7R zFwdlygmQ_+7NBqD2?aTk(SG$F`ub$rX=}&pa_@Y{OBf70T&%i6`|X~GKitTuP-GYVB-3hG{B?Aiy~WRQVOiuDzjvhiMZ0ZMa7orQ?l@{U-yPo2cGF!vH)vv+DyaeFiGxn`(bBX#2V zKw?#bVu<}xeBP&{#;TG7Z#XV=XN=s@QmxAkvA4rvv~qfjCM~sU;%${*^qksbx)^%O zy4Hlw#y3H)HAXcgk~&Y*9!DM)Kr+)p(&Il530oJ zU08P%lFb!s0@2y;O*|^UO5oY4$XQDfm#NB=R~a6@O;(q@|HUcq@;{5RVbkL_MvvpO zH`H%#5h4KRS~e|28!3!Mq|U%s?oj1i@oI@YOk)gtKPP&;~jTBU;%ie z5jNX+b*OiF2+BS4Qn={x(k;C_W-J;#DW?RD`MFQ-+7W4h!aOjT7x3iyq9~`{?;_$j%7r{)^A+BT!N=fcZaz z&m9S$8w@a{yq^i58v;KJSU&tP%-}~1f}g>uCLB6&4Fwod-Y@$j)Obflv+`AF*Gz7y z%|?7oy@JX72s^Voq`SL7OZiA7E?X-U>~Z%+m5t{3xhj$E^ykv!y!@F@*(Sht4X;9b zfbGB=@d@?yvm3{p_SIKJHO%AEOP4)kAs@aSS!-W$2r=8omEo%kv)bP-$5)q1?#P9n zjBdEKYOgxaTj@H8L~^d|Eekayb&Nt!OsQu37i(QTK#|lddy7Kgq>cgTi3t@a#(qE@ zyr+43ecVBIS6RIW>H%63ZQ!k=9kz(16WRxkk8)gWC7=xNk z{fI6^gJm}$D6o6GUz-$=Kv@5xfd-<4IqrUKR`?$`^5@J@K&&U4%>%c1BIuiol0atl89uXh#%Pb|VF4lkK$`f-uIe=HKwszw(c~{g27{jncnl zX+~>mZ0-_`Ke1=_>XrI2>SJx|;?{4!`?8~g^e^faZE$a5jeONHgT8^fdT>W_uI_yk zYDn!6fSx!}&Gs#xyTZ64saN;D3V~BQIH4|@Q36Ypry;N#r?mU@OC6mGQAo+lamjgD zbZ9&niJCY15G{%H%U&m=%(2m!Aw0ks)4VZ&=teYG_8Ni;COfg1%k}|^@U)A|HqA=$q)+Y#r*2@xe`DB$rch^f-XOOv{l!v+OtzG|2ahy`ZXB;BZgd2 za#E3nn+|cJscAvdU>}MxwxX#g*0_TIUeyNf|C9dx3nlwSj{c-(*P2%a+pIsg@(srV zUp1k=Jas3}-$|Nk_r;2@p3o2e`0H2y;#XJL3o1z8;=dFi-vpEc4)yyEfWFBFP=A&=W%{z5d0I zt{%dXwkvyELJi3s$Iuf4Dp3Dot}9F^Qg3Cil*YF6;r{JYgnfx6na;>)2n`x1#%oQ{ zUPNOeuCg0R%W+AR$rp!EPO$+*52D?&8)+!W?4srf5*RekMTZdoff_h#0Ze~V!5`Z8 zZ*lElW#4$*o-xxv+A<`dy zt%M|vMZ)(t4WZM&aCrZ3n`w4f-MMs5IM%l3nJAi`ud|3oW2puEDUBark+cT%1Mu}! z1A5oLQz80F92@|nI7QiiyrkY)6g^ARC_jksr*?@fRelqJQ?ZfJq`B-H%5-`D;2uh`c4dUH&LMBWua`BLWWhA;56L)V`B zjnXv`A&ekv5a`Rl=0h04-tC$G?Z+P*3L5gpe9_+|)d)2I*pN~q*3>b675(jh-1yk} zTx#TQsakYJNd7b90=gHsHGwWx&7Foa=Z}!n=VvLi79|OD_23asJGRsJkjafv&PI{^ zQR;&-ZLh(BH#ld40}2~k2^;@RQzW?G%R4^DyU_a?5*ir^^9MxttNi+rVD_1RHRbI3Pg!2|%%H;_70iy#Nfpd;}t>8y(o!&3I*-9C@a>Z*W|; zHs+>Vucy3tsK3zZEVxYX}(-k~K0C5;A9yJwf27V0tWy7ju$GbO2)zaW?qb zCjsZ@vS`tP_C3}Mpo$q^V;nf{!R~E<3Uwy{P*-{$j0#ZpPQdt>011(;7Gi#X@HIf+ z!kufb5ZQo}{ST!I8o%S}zo_UZ2M*^CWd0Z6uQNb1= zA8)T7J={9pNaofnI=M7D+o-xf0`TT=AqILZvS!wWcJXdC_wW+yOtA5iw9qR8hIq=j z&$=|)X&W_5*C+vwgdv>L?=vk8bm~RPfL0rC3@KnbV&#+FA8h)acCIlI$^D)@A&>I{ zSQ#Ky(M@o%Fo*M64VN3;A5!&uvFn-F0tAhsLCW{WPn(_H03awI4)|kp@)yYov>l=; zbvPjcr0icd&jf8d=e00@x)bY`s@b!u=?mCdH2987Zo+H`RiXQ&$J7PeX&QtP(A{4o z(G~oB=PC^X-GI!Wt#)!o>CrWcgTrB{r|kQ{E8IJ&qd;_C;+J7C6xV~7ml%M?h>kWj z4OX8AC*L2Ir?8mQKw=`pl^s%m5&m9#Gr?e%9l;=Q#v^?=hvje%wc#8V{m{%Gx(8R? zdC_Z8tiFj5KMmL1O}I9j91~z&3+Nz$8eDWs;i4NI2LOWd;Q(Ve0MI?){I{7{;cvfs4ok-e&g;wzH~jYpBw%0{9D&FH<2S=b*J! z*qK@NrQklsQbK1@lpcMf7&sJ$eJZ?>tyy?f}O>2DFE0KJCxI4Pf2zFAVm; zJDcF0|1o<1e^BIEaAR2Gw*gz~bu*viGtEZgmp@G4Z|VzY4+<-vxe^1dj)Gba2cq?8 z8YRL0FtSsueXS+u&YfrwjhE!5AB^-AV;`WGnC2|_7sqjbxG5Sng3m4kA)4@_RXq6j zybTV_Z}2{2CnqqBNULnKQy5MYjDAXPhbq6;9oZZHx$)U1sKzx>|`>)mb(5JdM&ln3;)Ztvdr)#JT-xch*sYXMwc)d7k8 z4EKcB&I1tOpLyE<61st(dyjVl@Xi0^ivM5m9;-R?(1A#i)1wYJTPa{L=UMe%YU?Jr zzsM_K147>@3J!+dI_29ZU#jZdiJGPN61@z9-8|*pCteyFIOP-te7p`4lEmV?)>Lb{ z&B7z34zl}0uOEeg7jkhQ0}KV_01UON%p3%x;@#c>0v8ouM6XLt-BZA{J+gz_zB)L! z`a?hB1vpCqNLX;c(I)?Q-s9S*tjYe#Gh{%Z0l>De|L9VF?r8q5H|58L_?i1r>^y@( zt7fcmW-nnsBAEHiz)B$S`<>VL5%e9eoN_Lib^f#JGW@gZF2G|yJRsBpC|q=o1m_jW z1r^jC6I3z$3zPR-I5-%i1_FMk^O?j6`y18Z zv%<0G$fI-}TnYs??hiGPzt{K!52oJYV@ixIhz zV;t;R@XYxy5iu#n#>Q>4*>g>(7^vqE?bn#(+Lfx~%+i4*!2cN0i9Y^8(tAiX&R+(^ zxC(F`eGlj;KvO!TakdgznK(UeyeJ6*Oq-3YBV0op;7SG9#-ByOze&=6Cl+7+J8$^Q zgy8?o+^u2(5$dn0$?rr~f^p+~M*!Cvpzjj)Ba{Pmo7v?TslWRU4}*Uf&hInH74+_5+DcjHHV*}5S*Y4z=XLNSq=|SFGKp* zm_q(lKJgoq|KI84EltSG`l1@B(IX3Ta|U?t$nv&KJ*jc|RPr0hylMa61|^+qKv2RH^2eZrCN*9lZKjd!S=?EI4Um~hmkejH z@Pwf55t2&z28D!Wh&^c&AENnSm~M`%UZMyDv>I!5v_v5Y(YG<+nF6Uc(DknQf83mM zm0%+T@=-H8cvgW*3>dwC*(7>k+exYo$l{-mV#>ND5~tx33LTAPyVvZFQJ{Bq>ejY? z$Gi&-gZ)%LospXD;4lJ*=q!8q-Egg-#@cpLvv^NEDVt*|WYI?ZZvs4xH5fvKzhT-7 z{cla)sMvgV@W41ISA%(EJ^{7=9!=tYfZ`O|e5`<9hM4Fw7C@e|s{}I{^0SDA3^9#m zW)3oBwTOj&a>I0ZC=~*a*D|Z&k^eQRy39a;b_CE~T1p%O4AsMV-}Hwk5}bqpQ|`cg zzlX9p&P3HK0u=lW=AWla5oi?$f}Nl3GA^IGaki^w8e{sZQ=Fi#YH;5v>k!IMeJuW1 zMB`UBi=1H!oBr_th0dd~wjw9bye68(R|Q^1Z2VoQ{2wN1EQJz7f0w4+|Mpt3y90l| zgYXF;c<2DRWXP&)gjnKti9%4t;Nn*t0&t?=CccVQ0zZ2IAgKlb=vV>35BY=xjNt-Y z3Kw9_9|HU{*e{pjuK|BM&jZ^af1pJ0=N;YE1bH>4zkHECD^fa$yu)^2cEK|^FzHb~ z_y&jQ`F=B;zqJj@D*~eDmZ%uhn$Ydq7c(M=OX?REXc#H8y@G{ae-kAer9;u~6aAM) z+husGV4-JgFsmtZ!4K#i{LB^M4CcWZdFgR zy*Ivqtv%Lk@G?%nIiqF1R|uCj_VOiP|9Fq$AKc9w1+Sc1)L*rbPMsbO*j>C_BJSjj z)}w8d2K&N@PAT`@mvB0%qd~M@(w9C$GlEwrLC$c6)i*3(#PFcqjHfc%A_i z2L7VT_Y-FcFVp=m#do(f^^Ux*ENZ8bFZSSWxCqihE?)Jss2KRSD!tBusDDl_9$hCF zA5pRI*}eDvT|v(u|96?i0rXI>TM5*Y@C>MVR54svLQ1YHA%*aa*2CntO2BnS3$K>^ zqz?L@?Cej4On6P@mwM{YE1lPX>x${`!jeB0M1RSK|2x#qFc2S619^e3z3=Mo(?M&I zpTsN!P#Ez(@6taPpYX4XPanLIuqZ6&{*#Frrndq~ELH|Qf!HIw@VH2D7#`S9-TS{P z9A6Xmb3XpJ0zKLd=m3sL&{|I}&H-+fY7ahp+ym><} z<{Z*J4f9X>2kK5s&C@LY=vUvF&tbh^uPS*j#>VbrfhQko_q_EhT^bQy1$v&;6Lud< zyl0`s&s)FI6%+kzso{F@K|%SC>kofkk&yh?D-t@ttwQ{9VS?Rw%ky-u9-?<7@?`*d z=dcV6m=z$8XjlGI9?@_y*J9c}>cHFhJyHqehJN~wl{qSQc_7vQqc+-#_8k(iy5=O~ zJ{eM&^0R|S#G>$sI18TCtHLWJ!1@Fbdi-B5Cj4*eV0u)=@$xZkN#Fb=Cj|6^H<$4< zx3;`Lmy!UvIz{*dP$mcz+)VrJFaExo32M5os$()^K}56ulc~BOSr$Sx-t$iT=>v6= zJAUwrCgNQ{J89u7DQR#LHQ*!`|B`nBYcYRmS%4S=p27XHWb-rFUnNd|v`~LF&tDd# z{PQmqs67q_6F8~YS6}Q_f%pZ=uJSzkjl62lHijEv7e%(Ss-@V#`&1JsfKRLh3Y>&@ zmTwef^Mt(;;D<9Q^|XnHOTyk>A8Fq_8X5Kc zyB3O^_Ky2z?16cEO8u_g29_T0UYa^2l2Na}3xy9oFrx;BhWhnRUfpFP3k+?Sd6-Ld z-P6?yfXiQ=*#Y3KcU%A%7(%}ul5M^oBKt9PLVi7T766~8tNwcEf$jBHO&?WGKfVNx zw)|zG&2>-8HF$OL8cbS!4eqzT9y0kc^zC}+ZTa=kw$=3z`;VcHA6u2choA|HDcxN~ z^BI&1gNvCdjphNY5s^-pmZb25@p_A?k}TtXzTn)@1A|nyYG;Ns ztxKOCNr&96JXja7oEZy}8QN|CdNNLMjxq^r`vjeRSHI7xuY0Eh>sE2ylZK7>25`|V z%C7XpNzt6{sek}y(oVzbtEWrL6)$1thMYwy1LXS&e5lBJx({W1=XzeOn&W!7Zc$+Q z07IE#y8!GSdPAL41Zs1_X#Y?eQyIKHAAj90hqr~Z;h3O&csu%b=v#rMikCoifBiEK zfYFrhPY42$K79VpZutC~@cHRj;qx2+ZreYCAp)%=Kzj3I+b3|*&*q&5g@l zZlc;rRQD9G64>d+#O8^SL-D9UPY5^y%LzotY1hc&@UNHIW`Zh-)@k}tiP-gj3#z(i@bAW zSOg6iV+GjWybUmX6oT4J>@MXy7h0bow%evVL~~+T1n^&?es8Ud4Hy+p0Xox|%EwsA z4q}M_WM>F~G;Y%cQYdwRWT0PC4Va4V{~_+Z+0_P+|Tp<-an?MrutNM z_f@B^b52!v4F?boq544phESj>bFq?b701bcWid=}UZI7;D zn*7c448f=dCNBWP&&vhZ`DcmR>ckscW~*Cz5OZpKUUgs^JXstjQPZ2M`shB6>5yH4 zsOe%U(MkIi@xxO~jr9+TJ2*VfX41Is+|wWU?I{7+{1xWPdjR)_+e2)N<`I0cxAt2K z_dg&KPa2(s-e&`hJV)z5gtH7LOTs@V1MGyIVKlGw24*v1_H!!Ce!-Py!0a(N6Yx13 zX4PR<3AdgT0BR(bL-7sZcFQyuDx#T z8(73vLm~I5Xg9Gd#Fv$6GH1jW1*VTA^pHhpBG+F2BKL8M{Si4@%q>CgjdI7suQ z@Hm$X7Z|59+Iv@Sy=#{cWS`eZt~R|#OxpMDcdhdJg~s9#2XiT_^Vcu-+{Fnr8Uyv) zlLxi;;s2fX;zj|O06>Ddn4i_V@ODT4#>6G2h59L|zTwjw3I51p4xP0>br)c}v=p>W z;@T??RJI|rv9e~c*TNSSv2m_=#@=KHQ|^V|t=nX_ui*m(zzq6dLWQz7L>{*XuHla# z&i~|P9e|pySjLdM_C8v1vZXC$_%G2U&{>9@U~5ae&*e;Qjo#UbFP!ZDkPu?&ulU9{ z!vn`TKnWbn3x2Wm)nMfYh=Iv9aQwf@#_v$W4=w+Zz44)Idvk+3e5z*9ZEgeVE%PRJ ze2`=BN5N`9y7PZ9#1Fh{H)#jF1RaOGeajlt8@fnQvn#G~?OG*$F<)v1ojo35`v3m4 z6JQ4#q2*sqlN5XN_q$ff#ADdF&O((f%IGyh7R@nEQAvdTcf{bww{K6$BnmvE0-=6p zl06CdHQ#84YM;xM+CIpxum`fTR=|`I3QQTnBVa-gGHWMf+mAoWKwdyWzJ-naMih*n z$0$hMf0yY!JL!oXa7XG$xC4eQFXHam(CS|)tVcJ}r#t7gN2|J~fv-GKOV=&k)Golj zjY}i5#1^dxj5~6Ej`I_r#Bw#<#a*3Aa- za}sgdg`ArLc3k4eEIjfgcF!i|4&t zBHG<$)P7zZHC<|gbro*zWC(BXZRhY$0kC4vP2@~mKqee1@j1%;*f$WzR!f(u*cdI+s1Ew&WHanLfL$rQ3* zsH#^zNE>P)Gcgttth`6ZRc~$NXU5kPRsNL#<&ZNqk%M$>Kz;nAUjD4zA@H!vRNjd% z_Hm8T#Hf!_+0z%0!vqt`Wd97NPdI@8ZnB#Jz^XeA;v#w$LK_L8{SJ)CbuUEKKLYk0 z+2PAOJ@EbaccjrIpHgT+&-`4@`ur>gu!U4VMH5FwB-pfSsieJ8VzW??#O1WhC$lD; zs;(Cda!lmp5#q3HTSgtNQr@!kL3BsGXrHHg5~ZnLA2+d*C~+TqVm)l4F|qVM_SAaJ z#7v^+eR5O~@g5hdN^`$Bx}f?$6_my}|E#aFsjCHvpmB!C1*EoxsLK>4Zt+wpIS1`x zm!-lb?o?RBxRkcOkbfPM9?hu{UI#kFR$HBui0dOgm(8Z|+YC=q~VS4(|r4z!P)KG{O#<6>w0q>J42(owcRkUOuhp@>7JUk1N&&ewuuo?i%*} zW;!!3R67kJqG?~ifcFRtMYOM_I)6%WJBwjl+|jB(hV?(-8b=2PajqyN0Eb%;S1yR_ z_o2PhHNP3jzl88l&Bk%Y?;9}9_P{2VZgKbv`cF^|a-brJX{Umg7yZ5yC;-&Ma+TC& z$^!7{=`T4s?%cOkmx@SSEDS;swW|9UMcQTz`KBd3_irgIvNt72dLGzPUKDKVm)zdZ z;KD$$>$d}4H{1s?>YC46nMN0JE-kUWq)!@|RinZ)k)x?3^}kWh|7X0pHP`MfI7YuE zbQ!rv=L>&)*SlAOI4krEt#sGuSs>wx@7mU_X!4|H<6^QZG42kMytnpXem| z!QV;oKN#kojESmuxffk-PMh^IOnuo02R5`jk`yjmJ+m@^QELes#uH*X&s%;nivfRZ z(p-yw`zO|^njVapWrViLsX1SeB$%p7W<~W!o`16-a6EB?z8p=hbN0&uLw~Q78E!V zK=bBF8Ejo&bZz>LvBw8?MNgozfedXd#9R3Tn+|>?Yd6m4^=$=gvMqgfv8!El95LFi z_Z`~)#24-M=gb%vPchXO5`Qxbzi^kn>#rU3p$w*hZ8xb7uME{K+Obo&>YxwR9OViL z70Lj=2u)H4j9qk94`k0Dj_8Bhsp_x-e_#Rhqj

Xyb(T?pMO!c=eaf$YcxjllQKy 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 S0o5T=4E(@qr#KRr5f}hY`>}HX literal 167090 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