From dad85a7a2665ce8a4537901e9e329764a0568edd Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:36:49 +0000 Subject: [PATCH 01/24] Update addition.cpp --- 01_week/tasks/addition/addition.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/01_week/tasks/addition/addition.cpp b/01_week/tasks/addition/addition.cpp index 92872802..f8fd582d 100644 --- a/01_week/tasks/addition/addition.cpp +++ b/01_week/tasks/addition/addition.cpp @@ -1,7 +1,8 @@ #include #include - int64_t Addition(int a, int b) { - throw std::runtime_error{"Not implemented"}; -} \ No newline at end of file + int64_t a_64 = static_cast(a); + int64_t b_64 = static_cast(b); + return a_64 + b_64; +} From cd838e2aa3e466f0580fd13b566a9b3e6b15ec75 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:37:26 +0000 Subject: [PATCH 02/24] Update char_changer.cpp --- 01_week/tasks/char_changer/char_changer.cpp | 67 ++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/01_week/tasks/char_changer/char_changer.cpp b/01_week/tasks/char_changer/char_changer.cpp index 3a7344d9..e8ce4172 100644 --- a/01_week/tasks/char_changer/char_changer.cpp +++ b/01_week/tasks/char_changer/char_changer.cpp @@ -1,7 +1,72 @@ #include #include +#include +const char a = 'a'; +const char A = 'A'; +const char dif_letters = static_cast(a) - static_cast(A); size_t CharChanger(char array[], size_t size, char delimiter = ' ') { - throw std::runtime_error{"Not implemented"}; + size_t count = 1, last_ind = size - 1; + size_t start_rep_ind, end_rep_ind; + + for (size_t i = 0; i < size; ++i) { + + if (i == size - 1) { + return last_ind; + } + + if (array[i] == array[i + 1]) { + if (count == 1) start_rep_ind = i; + count++; + + if (array[i] == ' ') continue; + } + else if (count != 1) { + end_rep_ind = i + 1; + i = start_rep_ind; + + size_t ind_next_simbol = i + 2; + + last_ind -= count - 2; + + if (array[i] != ' ') { + if (count >= 10) array[++i] = '0'; + else array[++i] = static_cast(static_cast('0') + count); + } + else { + --ind_next_simbol; + --last_ind; + + array[i] = delimiter; + } + + for (size_t j = end_rep_ind; j < size; ++j) { + std::swap(array[ind_next_simbol], array[j]); + ++ind_next_simbol; + } + + size_t reduct_size = end_rep_ind - start_rep_ind; + size -= reduct_size - 2; + + count = 1; + + continue; + } + + if (static_cast(std::isdigit(array[i]))) { + array[i] = '*'; + } + else if (static_cast(std::islower(array[i]))) { + array[i] -= dif_letters; + } + else if (static_cast(std::ispunct(array[i]))) { + array[i] = '_'; + } + else if (static_cast(std::isspace(array[i]))) { + array[i] = delimiter; + } + } + + return last_ind; } From e0756b318a2c6e4d32b37f292668d2bc181dbb6f Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:44:46 +0000 Subject: [PATCH 03/24] Update check_flags.cpp --- 01_week/tasks/check_flags/check_flags.cpp | 43 ++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/01_week/tasks/check_flags/check_flags.cpp b/01_week/tasks/check_flags/check_flags.cpp index 75e7c652..374b3ff7 100644 --- a/01_week/tasks/check_flags/check_flags.cpp +++ b/01_week/tasks/check_flags/check_flags.cpp @@ -1,5 +1,6 @@ #include #include +#include enum class CheckFlags : uint8_t { @@ -14,5 +15,45 @@ enum class CheckFlags : uint8_t { }; void PrintCheckFlags(CheckFlags flags) { - throw std::runtime_error{"Not implemented"}; + if (flags > CheckFlags::ALL) { + std::cout << ""; + return; + } + + bool the_first = true; + std::string str_flags = "["; + + if (static_cast(flags) & + static_cast(CheckFlags::TIME)) { + str_flags += "TIME"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::DATE)) { + the_first ? str_flags += "DATE" : str_flags += ",DATE"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::USER) ) { + the_first ? str_flags += "USER" : str_flags += ",USER"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::CERT)) { + the_first ? str_flags += "CERT" : str_flags += ",CERT"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::KEYS)) { + the_first ? str_flags += "KEYS" : str_flags += ",KEYS"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::DEST)) { + the_first ? str_flags += "DEST" : str_flags += ",DEST"; + the_first = false; + } + + str_flags += "]"; + std::cout << str_flags; } From a2df496decf2b1f6884a01d02f2a9f73c83446d9 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:45:15 +0000 Subject: [PATCH 04/24] Update length_lit.cpp --- 01_week/tasks/length_lit/length_lit.cpp | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/01_week/tasks/length_lit/length_lit.cpp b/01_week/tasks/length_lit/length_lit.cpp index e69de29b..d2cc348d 100644 --- a/01_week/tasks/length_lit/length_lit.cpp +++ b/01_week/tasks/length_lit/length_lit.cpp @@ -0,0 +1,68 @@ +constexpr long double operator""_m_to_in(long double m) { + return m / 0.0254; +} + +constexpr long double operator""_m_to_ft(long double m) { + return m / 0.3048; +} + +constexpr long double operator""_m_to_m(long double m) { + return m; +} + +constexpr long double operator""_m_to_cm(long double m) { + return m * 100; +} + +// foots +constexpr long double operator""_ft_to_in(long double ft) { + return ft * (0.3048 / 0.0254); +} + +constexpr long double operator""_ft_to_ft(long double ft) { + return ft; +} + +constexpr long double operator""_ft_to_m(long double ft) { + return ft * 0.3048; +} + +constexpr long double operator""_ft_to_cm(long double ft) { + return ft * 30.48; +} + + +// inch +constexpr long double operator""_in_to_in(long double in) { + return in; +} + +constexpr long double operator""_in_to_ft(long double in) { + return in * (0.0254 / 0.3048); +} + +constexpr long double operator""_in_to_m(long double in) { + return in * 0.0254; +} + +constexpr long double operator""_in_to_cm(long double in) { + return in * 2.54; +} + + +// cm +constexpr long double operator""_cm_to_in(long double cm) { + return cm / 2.54; +} + +constexpr long double operator""_cm_to_ft(long double cm) { + return cm / 30.48; +} + +constexpr long double operator""_cm_to_m(long double cm) { + return cm / 100; +} + +constexpr long double operator""_cm_to_cm(long double cm) { + return cm; +} From 77d65d3e006727f7de31d3e9b07db4758b709d33 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:45:45 +0000 Subject: [PATCH 05/24] Update print_bits.cpp --- 01_week/tasks/print_bits/print_bits.cpp | 26 +++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/01_week/tasks/print_bits/print_bits.cpp b/01_week/tasks/print_bits/print_bits.cpp index a48a43c1..94c521fd 100644 --- a/01_week/tasks/print_bits/print_bits.cpp +++ b/01_week/tasks/print_bits/print_bits.cpp @@ -1,7 +1,25 @@ -#include -#include - +#include +#include void PrintBits(long long value, size_t bytes) { - throw std::runtime_error{"Not implemented"}; + std::string str_bset = ""; + + auto bits = bytes * 8; + + for (size_t i = 0; i < bits; ++i) { + auto b_i = (value >> i) & 1u; + + if (static_cast(b_i)) str_bset += "1"; + else str_bset += "0"; + + if (i % 4 == 3 && i != bits - 1) { + str_bset += '\''; + } + } + + str_bset += "b0"; + + std::reverse(str_bset.begin(), str_bset.end()); + + std::cout << str_bset << "\n"; } From 13ced127b90fa9ff77b9ebfa198624c53dc5fbf8 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:46:12 +0000 Subject: [PATCH 06/24] Update quadratic.cpp --- 01_week/tasks/quadratic/quadratic.cpp | 91 ++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 3 deletions(-) diff --git a/01_week/tasks/quadratic/quadratic.cpp b/01_week/tasks/quadratic/quadratic.cpp index abf7d632..ce61fff2 100644 --- a/01_week/tasks/quadratic/quadratic.cpp +++ b/01_week/tasks/quadratic/quadratic.cpp @@ -1,6 +1,91 @@ #include - +#include +#include +#include +#include void SolveQuadratic(int a, int b, int c) { - throw std::runtime_error{"Not implemented"}; -} \ No newline at end of file + double x_1, x_2; + bool a_is_Zero = (a == 0 ? true : false); + bool b_is_Zero = (b == 0 ? true : false); + bool c_is_Zero = (c == 0 ? true : false); + + std::cout << std::setprecision(6); + + if (a_is_Zero) { + if (b_is_Zero) { + if (c_is_Zero) { + std::cout << "infinite solutions"; + } + else { + std::cout << "no solutions"; + } + } + else { + if (c_is_Zero){ + std::cout << c; + } + else{ + x_1 = static_cast(-c) / static_cast(b); + std::cout << x_1; + } + } + + return; + } + else { + if (b_is_Zero){ + if (c_is_Zero) { + std::cout << c; + } + else { + if (a * c < 0) { + x_1 = std::sqrt(static_cast(-c) / static_cast(a)); + x_2 = -x_1; + + if (x_1 > x_2) std::swap(x_1, x_2); + + std::cout << x_1 << " " << x_2; + } + else std::cout << "no solutions"; + } + return; + } + else if (c_is_Zero) { + x_1 = static_cast(0); + x_2 = static_cast(-b) / static_cast(a); + + if (x_1 > x_2) std::swap(x_1, x_2); + + std::cout << x_1 << " " << x_2; + + return; + } + } + + double b_d = static_cast(b); + double a_d = static_cast(a); + double c_d = static_cast(c); + + double D_2 = b_d * b_d - 4 * a_d * c_d; + double eps = 1e-14; + + if (D_2 < 0) { + std::cout << "no solutions"; + return; + } + else if (D_2 < eps) { + x_1 = -b_d / (2 * a_d); + std::cout << x_1; + } + else { + double D = static_cast(std::sqrt(D_2)); + + x_1 = (-b_d + D) / (2 * a_d); + x_2 = (-b_d - D) / (2 * a_d); + + if (x_1 > x_2) std::swap(x_1, x_2); + + std::cout << x_1 << " " << x_2; + } +} From e1b93606fe47c81bdc4d06dfe3c600ae79e064d4 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:46:40 +0000 Subject: [PATCH 07/24] Update rms.cpp --- 01_week/tasks/rms/rms.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/01_week/tasks/rms/rms.cpp b/01_week/tasks/rms/rms.cpp index 6882f0a9..78aa8968 100644 --- a/01_week/tasks/rms/rms.cpp +++ b/01_week/tasks/rms/rms.cpp @@ -1,7 +1,17 @@ -#include -#include - +#include +#include double CalculateRMS(double values[], size_t size) { - throw std::runtime_error{"Not implemented"}; -} \ No newline at end of file + + if (values == NULL) return static_cast(0.0); + + if (size == 0) return static_cast(0.0); + + double sum = 0.0; + + for (size_t i = 0; i < size; ++i) { + sum += values[i] * values[i]; + } + + return sqrt(sum / size); +} From ca41a8cf5e25b2abac06aa2ce55d4f6fdc64d9b7 Mon Sep 17 00:00:00 2001 From: Vova22013 Date: Wed, 10 Dec 2025 00:52:48 +0500 Subject: [PATCH 08/24] add (solution): add func_array task, add last_of_us task, add little_big task, add logest task, add pretty_array task --- 02_week/tasks/func_array/func_array.cpp | 10 ++- 02_week/tasks/last_of_us/last_of_us.cpp | 16 +++- 02_week/tasks/little_big/little_big.cpp | 85 ++++++++++++++++++++- 02_week/tasks/longest/longest.cpp | 33 +++++++- 02_week/tasks/pretty_array/pretty_array.cpp | 28 ++++++- 5 files changed, 158 insertions(+), 14 deletions(-) diff --git a/02_week/tasks/func_array/func_array.cpp b/02_week/tasks/func_array/func_array.cpp index b327e68d..e0cbe294 100644 --- a/02_week/tasks/func_array/func_array.cpp +++ b/02_week/tasks/func_array/func_array.cpp @@ -1,6 +1,12 @@ #include -double ApplyOperations(double a, double b /* other arguments */) { - throw std::runtime_error{"Not implemented"}; +double ApplyOperations(double a, double b, + double (**operations)(double, double), size_t countOperations) +{ + double res = 0.0; + for (size_t i = 0; i < countOperations; ++i){ + if (operations[i] != nullptr) res += operations[i](a, b); + } + return res; } \ No newline at end of file diff --git a/02_week/tasks/last_of_us/last_of_us.cpp b/02_week/tasks/last_of_us/last_of_us.cpp index c7bf1a25..7e56cd7f 100644 --- a/02_week/tasks/last_of_us/last_of_us.cpp +++ b/02_week/tasks/last_of_us/last_of_us.cpp @@ -1,6 +1,16 @@ #include - -/* return_type */ FindLastElement(/* ptr_type */ begin, /* ptr_type */ end, /* func_type */ predicate) { - throw std::runtime_error{"Not implemented"}; +int* FindLastElement(const int* begin, const int* end, bool(*predicate)(int)) { + + if (predicate == nullptr || + begin == nullptr || + end == nullptr || + std::distance(begin, end) < 0) + return const_cast(end); + + for(int* it = const_cast(end - 1); it != begin - 1; --it){ + if (predicate(*it)) return it; + } + + return const_cast(end); } \ No newline at end of file diff --git a/02_week/tasks/little_big/little_big.cpp b/02_week/tasks/little_big/little_big.cpp index abe24379..19b767fb 100644 --- a/02_week/tasks/little_big/little_big.cpp +++ b/02_week/tasks/little_big/little_big.cpp @@ -1,10 +1,87 @@ #include +#include +#include +void PrintMemory(int num, bool flag_rvrs = false) { + void* address_num = # + char* num_ptr_char = static_cast(address_num); -void PrintMemory(int /* write arguments here */) { - throw std::runtime_error{"Not implemented"}; + std::string byteset = ""; + int size_int = sizeof(int); + for (int j = 0; j < size_int; ++j) { + unsigned char temp = *(num_ptr_char + j); + size_t count_hex_in_byte = 2; + std::string byte = ""; + + for (size_t i = 0; i < count_hex_in_byte; ++i) { + auto power = static_cast(pow(16, 1 - i)); + size_t remain = static_cast(temp / power); + if (power == temp || remain != 0) { + temp -= remain * power; + } + + char hex_conv; + if (remain < 10) hex_conv = static_cast(remain + '0'); + else hex_conv = static_cast(remain - 10 + 'A'); + + byte.append(1, hex_conv); + } + byteset.append(byte); + } + + if (flag_rvrs) { + for (size_t i = 0; i < byteset.size() / 2; ++i) { + if (i % 2 == 0) { + std::swap(byteset[i], byteset[byteset.size() - 1 - (i + 1)]); + } + else { + std::swap(byteset[i], byteset[byteset.size() - 1 - (i - 1)]); + } + } + } + + byteset.insert(0, static_cast("0x")); + std::cout << byteset << "\n"; } -void PrintMemory(double /* write arguments here */) { - throw std::runtime_error{"Not implemented"}; +void PrintMemory(double num, bool flag_rvrs = false) { + void* address_num = # + char* num_ptr_char = static_cast(address_num); + + std::string byteset = ""; + int size_double = sizeof(double); + for (int j = 0; j < size_double; ++j) { + unsigned char temp = *(num_ptr_char + j); + size_t count_hex_in_byte = 2; + std::string byte = ""; + + for (size_t i = 0; i < count_hex_in_byte; ++i) { + auto power = static_cast(pow(16, 1 - i)); + size_t remain = static_cast(temp / power); + if (power == temp || remain != 0) { + temp -= remain * power; + } + + char hex_conv; + if (remain < 10) hex_conv = static_cast(remain + '0'); + else hex_conv = static_cast(remain - 10 + 'A'); + + byte.append(1, hex_conv); + } + byteset.append(byte); + } + + if (flag_rvrs) { + for (size_t i = 0; i < byteset.size() / 2; ++i) { + if (i % 2 == 0) { + std::swap(byteset[i], byteset[byteset.size() - 1 - (i + 1)]); + } + else { + std::swap(byteset[i], byteset[byteset.size() - 1 - (i - 1)]); + } + } + } + + byteset.insert(0, static_cast("0x")); + std::cout << byteset << "\n"; } \ No newline at end of file diff --git a/02_week/tasks/longest/longest.cpp b/02_week/tasks/longest/longest.cpp index 04b3c354..b23df42d 100644 --- a/02_week/tasks/longest/longest.cpp +++ b/02_week/tasks/longest/longest.cpp @@ -1,6 +1,35 @@ #include +char* FindLongestSubsequence(const char* begin, const char* end, size_t& count) { + + if (begin == nullptr || + end == nullptr || + std::distance(begin, end) <= 0){ + count = 0; + return nullptr; + } + + auto res_ind = const_cast(begin); + auto it = const_cast(begin); + + size_t curr_count = 1; + count = 1; + + for (; it != end - 1; ++it){ + if (*it == *(it + 1)) ++curr_count; + else { + if (count < curr_count) { + count = curr_count; + res_ind = it - (curr_count - 1); + } + curr_count = 1; + } + } + + if (count < curr_count) { + count = curr_count; + res_ind = const_cast(end - curr_count); + } -/* return_type */ FindLongestSubsequence(/* ptr_type */ begin, /* ptr_type */ end, /* type */ count) { - throw std::runtime_error{"Not implemented"}; + return res_ind; } diff --git a/02_week/tasks/pretty_array/pretty_array.cpp b/02_week/tasks/pretty_array/pretty_array.cpp index 48eab341..7fb62f70 100644 --- a/02_week/tasks/pretty_array/pretty_array.cpp +++ b/02_week/tasks/pretty_array/pretty_array.cpp @@ -1,6 +1,28 @@ #include +#include - -void PrintArray(/* write arguments here */) { - throw std::runtime_error{"Not implemented"}; +void PrintArray(const int* begin, const int* end, size_t limit = 0) { + auto _start = const_cast(begin); + auto _end = const_cast(end); + auto inc = 1; + if (std::distance(begin, end) < 0) { + inc = -1; + } + + std::cout << "["; + size_t count = 0; + for (auto it = _start; it != _end; it += inc) { + if (limit != 0 && count == limit) { + std::cout << "...\n "; + count = 1; + } + else ++count; + + std::cout << *it; + if ((inc == 1 && it != _end - 1) || + (inc == -1 && it != _end + 1)){ + std::cout << ", "; + } + } + std::cout << "]\n"; } \ No newline at end of file From 39e864a98690510993aa37e87e87aad2d742d01c Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 10 Dec 2025 01:46:47 +0500 Subject: [PATCH 09/24] add (solution): add swap_ptr task --- 02_week/tasks/swap_ptr/swap_ptr.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/02_week/tasks/swap_ptr/swap_ptr.cpp b/02_week/tasks/swap_ptr/swap_ptr.cpp index 93db625d..2c7cf0bd 100644 --- a/02_week/tasks/swap_ptr/swap_ptr.cpp +++ b/02_week/tasks/swap_ptr/swap_ptr.cpp @@ -1,6 +1,8 @@ #include - -void SwapPtr(/* write arguments here */) { - throw std::runtime_error{"Not implemented"}; +template +void SwapPtr(T*& p1, T*& p2) { + T* temp_p = p1; + p1 = p2; + p2 = temp_p; } \ No newline at end of file From 78eedfd28bfe63c75089460ae7dc0279cdda0ca5 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:24:18 +0500 Subject: [PATCH 10/24] add (solution): add daata_stats task --- 03_week/tasks/data_stats/data_stats.cpp | 30 +++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/03_week/tasks/data_stats/data_stats.cpp b/03_week/tasks/data_stats/data_stats.cpp index b941c211..591ca54e 100644 --- a/03_week/tasks/data_stats/data_stats.cpp +++ b/03_week/tasks/data_stats/data_stats.cpp @@ -1,11 +1,33 @@ #include - +#include +#include struct DataStats { double avg = 0.0; double sd = 0.0; }; -/* return_type */ CalculateDataStats(/* args */) { - throw std::runtime_error{"Not implemented"}; -} + DataStats CalculateDataStats(const std::vector& vec) { + DataStats data; + + size_t v_size = vec.size(); + + if (v_size == 0) return data; + long long sum_sq = 0; + long long mid_memb = 0; + double avg = 0.; + + for (size_t i = 0; i < v_size; ++i) { + sum_sq += static_cast(vec[i]) * + static_cast(vec[i]); + avg += static_cast(vec[i]); + mid_memb += 2 * static_cast(vec[i]); + } + + avg /= v_size; + double num = sum_sq - mid_memb * avg + avg * avg * v_size; + data.sd = std::sqrt(num / v_size); + data.avg = avg; + + return data; + } From abd369537f3d7af65beb8fa41df28bc92f8ff496 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:25:09 +0500 Subject: [PATCH 11/24] add (solution): add easy_compare task --- 03_week/tasks/easy_compare/easy_compare.cpp | 88 ++++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) diff --git a/03_week/tasks/easy_compare/easy_compare.cpp b/03_week/tasks/easy_compare/easy_compare.cpp index dd5cb7f6..8e9d75bd 100644 --- a/03_week/tasks/easy_compare/easy_compare.cpp +++ b/03_week/tasks/easy_compare/easy_compare.cpp @@ -1,5 +1,5 @@ #include - +#include struct Date { unsigned year; @@ -13,4 +13,88 @@ struct StudentInfo { int score; unsigned course; Date birth_date; -}; \ No newline at end of file +}; + +bool operator>(const Date& date1, const Date& date2) { + if (date1.year > date2.year) return true; + else if (date1.year == date2.year){ + if (date1.month > date2.month) return true; + else if (date1.month == date2.month) { + if (date1.day > date2.day) return true; + } + } + return false; +} + +bool operator<(const Date& date1, const Date& date2) { + if (date1.year < date2.year) return true; + else if (date1.year == date2.year){ + if (date1.month < date2.month) return true; + else if (date1.month == date2.month) { + if (date1.day < date2.day) return true; + } + } + return false; +} + +bool operator>=(const Date& date1, const Date& date2) { +if (date1.year > date2.year) return true; + else if (date1.year == date2.year){ + if (date1.month > date2.month) return true; + else if (date1.month == date2.month) { + if (date1.day >= date2.day) return true; + } + } + return false; +} + +bool operator<=(const Date& date1, const Date& date2) { + if (date1.year < date2.year) return true; + else if (date1.year == date2.year){ + if (date1.month < date2.month) return true; + else if (date1.month == date2.month) { + if (date1.day <= date2.day) return true; + } + } + return false; +} + +bool operator==(const Date& date1, const Date& date2) { + return date1.year == date2.year && + date1.month == date2.month && + date1.day == date2.day; +} + +bool operator!=(const Date& date1, const Date& date2) { + return date1.year != date2.year || + date1.month != date2.month || + date1.day != date2.day; +} + +bool operator<(const StudentInfo& s1, const StudentInfo& s2) { + if (std::tie(s1.mark) > std::tie(s2.mark)) return true; + else if (std::tie(s1.mark) == std::tie(s2.mark)) { + if (s1.score < s2.score) return true; + else if (s1.score == s2.score) { + if (s1.course > s2.course) return true; + else if (s1.course == s2.course) { + if (s1.birth_date < s2.birth_date) return true; + } + } + } + return false; +} + +bool operator==(const StudentInfo& s1, const StudentInfo& s2) { + return std::tie(s1.mark, s1.score) == std::tie(s2.mark, s2.score); +} + +bool operator!=(const StudentInfo& s1, const StudentInfo& s2) { + if (std::tie(s1.mark) != std::tie(s2.mark) || + s1.score != s2.score || + s1.course != s2.course || + s1.birth_date != s2.birth_date) + return true; + return false; +} + From bcdbc84f48e11f2a706c091356c790991a8e8ee7 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:25:33 +0500 Subject: [PATCH 12/24] add (solution): add enum_operators task --- .../tasks/enum_operators/enum_operators.cpp | 93 +++++++++++++++++-- 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/03_week/tasks/enum_operators/enum_operators.cpp b/03_week/tasks/enum_operators/enum_operators.cpp index a539be38..ca664296 100644 --- a/03_week/tasks/enum_operators/enum_operators.cpp +++ b/03_week/tasks/enum_operators/enum_operators.cpp @@ -1,5 +1,7 @@ #include +#include #include +#include enum class CheckFlags : uint8_t { NONE = 0, @@ -12,22 +14,93 @@ enum class CheckFlags : uint8_t { ALL = TIME | DATE | USER | CERT | KEYS | DEST }; -/* return_type */ operator|(/* args */) { - throw std::runtime_error{"Not implemented"}; +const size_t max_count_flags = 6; + +CheckFlags operator|(const CheckFlags& f1, const CheckFlags f2) { + uint8_t res = 0; + for (size_t i = 0; i < max_count_flags; ++i) { + uint8_t b_1 = (static_cast(f1) >> i) & 1u; + uint8_t b_2 = (static_cast(f2) >> i) & 1u; + if ((b_1 | b_2) == 1) res |= (1u << i); + } + return static_cast(res); } -/* return_type */ operator&(/* args */) { - throw std::runtime_error{"Not implemented"}; +bool operator&(const CheckFlags& f1, const CheckFlags& f2) { + if (f1 == CheckFlags::NONE || f2 == CheckFlags::NONE) return false; + + bool flag1 = true; + bool flag2 = true; + uint8_t res = 0; + for (size_t i = 0; i < max_count_flags; ++i) { + uint8_t b_1 = (static_cast(f1) >> i) & 1u; + uint8_t b_2 = (static_cast(f2) >> i) & 1u; + res |= ((b_1 & b_2) << i); + if (flag1 && b_1 == 0 && b_2 == 1) flag1 = false; + if (flag2 && b_1 == 1 && b_2 == 0) flag2 = false; + } + if ((static_cast(res) == CheckFlags::NONE) || (!flag1 && !flag2)) { + return false; + } + return true; } -/* return_type */ operator^(/* args */) { - throw std::runtime_error{"Not implemented"}; +CheckFlags operator^(const CheckFlags& f1, const CheckFlags& f2) { + uint8_t res = 0; + for (size_t i = 0; i < max_count_flags; ++i) { + uint8_t b_1 = (static_cast(f1) >> i) & 1u; + uint8_t b_2 = (static_cast(f2) >> i) & 1u; + if ((b_1 & b_2) == 0 && (b_1 | b_2) == 1) res |= (1u << i); + } + return static_cast(res); } -/* return_type */ operator~(/* args */) { - throw std::runtime_error{"Not implemented"}; +CheckFlags operator~(const CheckFlags& f) { + int8_t res = 0; + for (size_t i = 0; i < max_count_flags; ++i) { + uint8_t b = (static_cast(f) >> i) & 1u; + if (b == 0) res |= (1u << i); + } + return static_cast(res); } -/* return_type */ operator<<(/* args */) { - throw std::runtime_error{"Not implemented"}; +std::ostream& operator<<(std::ostream& os, const CheckFlags& flags) { + bool the_first = true; + std::string str_flags = ""; + + if (static_cast(flags) & + static_cast(CheckFlags::TIME)) { + str_flags += "TIME"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::DATE)) { + the_first ? str_flags += "DATE" : str_flags += ", DATE"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::USER) ) { + the_first ? str_flags += "USER" : str_flags += ", USER"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::CERT)) { + the_first ? str_flags += "CERT" : str_flags += ", CERT"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::KEYS)) { + the_first ? str_flags += "KEYS" : str_flags += ", KEYS"; + the_first = false; + } + if (static_cast(flags) & + static_cast(CheckFlags::DEST)) { + the_first ? str_flags += "DEST" : str_flags += ", DEST"; + the_first = false; + } + if (str_flags.length() == 0) str_flags += "NONE"; + + os << str_flags; + + return os; } From cd158cf68f3740b2c60afb030f651e4699bb1573 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:25:50 +0500 Subject: [PATCH 13/24] add (solution): add filter task --- 03_week/tasks/filter/filter.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/03_week/tasks/filter/filter.cpp b/03_week/tasks/filter/filter.cpp index 6648cb39..86ae77a2 100644 --- a/03_week/tasks/filter/filter.cpp +++ b/03_week/tasks/filter/filter.cpp @@ -1,6 +1,17 @@ #include +#include +void Filter(std::vector& vec, bool (*func)(int)) { + if (vec.size() == 0 || func == nullptr) return; -/* return_type */ Filter(/* args */) { - throw std::runtime_error{"Not implemented"}; + auto last_correct_it = vec.begin(); + for(auto it = vec.begin(); it != vec.end(); ++it) { + if (func(*it)) { + auto temp = *it; + *it = *last_correct_it; + *last_correct_it = temp; + ++last_correct_it; + } + } + vec.erase(last_correct_it, vec.end()); } \ No newline at end of file From a2130ad4e72714f61d4e85423fe25f583c977bd1 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:26:06 +0500 Subject: [PATCH 14/24] add (solution): add find_all task --- 03_week/tasks/find_all/find_all.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/03_week/tasks/find_all/find_all.cpp b/03_week/tasks/find_all/find_all.cpp index 74f393b2..528adbcd 100644 --- a/03_week/tasks/find_all/find_all.cpp +++ b/03_week/tasks/find_all/find_all.cpp @@ -1,6 +1,25 @@ #include +#include +std::vector FindAll(const std::vector& vec, bool (*func)(int)) { + if (vec.size() == 0 || func == nullptr) return std::vector(0); -/* return_type */ FindAll(/* args */) { - throw std::runtime_error{"Not implemented"}; + std::vector res(vec.size() / 2); + size_t res_ind = 0; + + for(size_t i = 0; i < vec.size(); ++i) { + if (res.size() == res_ind) + res.resize(res_ind * 2); + + if (func(vec[i])) { + if (res.empty()) res.push_back(i); + else res[res_ind] = i; + ++res_ind; + } + } + + res.erase(res.begin() + res_ind, res.end()); + res.shrink_to_fit(); + + return res; } \ No newline at end of file From 4a8e567c7350ea2988ef952966d25e8cc1d68786 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:26:25 +0500 Subject: [PATCH 15/24] add (solution): add minmax task --- 03_week/tasks/minmax/minmax.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/03_week/tasks/minmax/minmax.cpp b/03_week/tasks/minmax/minmax.cpp index c2869799..f9ca7aa9 100644 --- a/03_week/tasks/minmax/minmax.cpp +++ b/03_week/tasks/minmax/minmax.cpp @@ -1,6 +1,23 @@ #include +#include +typedef std::vector vec_i_t; +typedef std::vector::const_iterator cit_t; -/* return_type */ MinMax(/* args */) { - throw std::runtime_error{"Not implemented"}; +std::pair MinMax(const vec_i_t& vec) { + if (vec.size() == 0) + return std::make_pair(vec.cend(), vec.cend()); + + auto it_min = vec.cbegin(); + auto it_max = vec.cbegin(); + + for(auto it = vec.cbegin(); it != vec.cend(); ++it) { + if (*it_min > *it) { + it_min = it; + } + if (*it_max <= *it) { + it_max = it; + } + } + return std::make_pair(it_min, it_max); } From 8de38a3ed9ee8e0baee720560438869e00e3b59f Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:26:54 +0500 Subject: [PATCH 16/24] add (solution): add os_overload task --- 03_week/tasks/os_overload/os_overload.cpp | 44 +++++++++++++++++++---- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/03_week/tasks/os_overload/os_overload.cpp b/03_week/tasks/os_overload/os_overload.cpp index e473418d..44d5a04d 100644 --- a/03_week/tasks/os_overload/os_overload.cpp +++ b/03_week/tasks/os_overload/os_overload.cpp @@ -1,21 +1,53 @@ #include #include #include - +#include +#include struct Coord2D { - int x; - int y; + int x = 0; + int y = 0; }; struct Circle { Coord2D coord; - unsigned radius; + unsigned radius = 1; }; using CircleRegion = std::pair; using CircleRegionList = std::vector; -/* return_type */ operator<<(/* args */) { - throw std::runtime_error{"Not implemented"}; +std::ostream& operator<<(std::ostream& os, const Coord2D& coords) { + os << "(" + std::to_string(coords.x) + ", " + std::to_string(coords.y) + ")"; + return os; +} + +std::ostream& operator<<(std::ostream& os, const Circle& circle) { + if (circle.radius == 0) os << "circle[]"; + else { + os << "circle[" << circle.coord << ", " + << "r = " << std::to_string(circle.radius) << "]"; + } + return os; +} + +std::ostream& operator<<(std::ostream& os, const CircleRegion& creg) { + if (creg.second) os << "+"; + else os << "-"; + os << creg.first; + return os; +} + +std::ostream& operator<<(std::ostream& os, const CircleRegionList& list) { + if (list.size() == 0) os << "{}"; + else { + os << "{"; + for(size_t i = 0; i < list.size(); ++i) { + os << "\n\t" << list[i]; + if (i != list.size() - 1) os << ","; + } + os << "\n}"; + } + return os; } + From fd46bb9febbe24240bcb4abdab409e0fa0115be8 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:27:10 +0500 Subject: [PATCH 17/24] add (solution): add range task --- 03_week/tasks/range/range.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/03_week/tasks/range/range.cpp b/03_week/tasks/range/range.cpp index d2085495..22f2c218 100644 --- a/03_week/tasks/range/range.cpp +++ b/03_week/tasks/range/range.cpp @@ -1,7 +1,20 @@ #include #include - -std::vector Range(int from, int to, int step) { - throw std::runtime_error{"Not implemented"}; -} +std::vector Range(int from, int to, int step = 1) { + if ((to == from) || + ((to > from) && (step <= 0)) || + ((from > to) && (step >= 0))) + return std::vector(); + + size_t num = std::abs(to - from); + size_t div = std::abs(step); + size_t size = num / div; + if (num % div > 0) ++size; + + std::vector res(size); + for (size_t i = 0; i < size; ++i) { + res[i] = from + step * i; + } + return res; +} \ No newline at end of file From 685908d31de8b5df6e8fc4e3824ab44d1575ef54 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:27:26 +0500 Subject: [PATCH 18/24] add (solution): add unique task --- 03_week/tasks/unique/unique.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/03_week/tasks/unique/unique.cpp b/03_week/tasks/unique/unique.cpp index 9d2545bb..df00f563 100644 --- a/03_week/tasks/unique/unique.cpp +++ b/03_week/tasks/unique/unique.cpp @@ -1,6 +1,27 @@ #include #include -/* return_type */ Unique(/* args */) { - throw std::runtime_error{"Not implemented"}; -} +std::vector Unique(const std::vector& vec) { + if (vec.size() == 0) return std::vector(); + + std::vector unique_vec(vec.size() / 2); + size_t unique_ind = 0; + bool the_first_elem = true; + + for (size_t i = 0; i < vec.size(); ++i) { + if (unique_vec.size() == unique_ind) + unique_vec.resize(unique_vec.size() * 2); + + if (the_first_elem || vec[i] != vec[i - 1]) { + if (unique_vec.empty()) unique_vec.push_back(vec[i]); + else unique_vec[unique_ind] = vec[i]; + ++unique_ind; + the_first_elem = false; + } + } + + unique_vec.erase(unique_vec.begin() + unique_ind, unique_vec.end()); + unique_vec.shrink_to_fit(); + + return unique_vec; +} \ No newline at end of file From 099cfcf6673bb6578680e3f6a92556cada4525d2 Mon Sep 17 00:00:00 2001 From: vova22013 <104551154+vova22013@users.noreply.github.com> Date: Wed, 17 Dec 2025 21:30:35 +0500 Subject: [PATCH 19/24] Delete 04_week directory --- 04_week/04_class.md | 902 ----------------------------------------- 04_week/04_class.pdf | Bin 251118 -> 0 bytes 04_week/CMakeLists.txt | 15 - 3 files changed, 917 deletions(-) delete mode 100644 04_week/04_class.md delete mode 100644 04_week/04_class.pdf delete mode 100644 04_week/CMakeLists.txt diff --git a/04_week/04_class.md b/04_week/04_class.md deleted file mode 100644 index 46e00076..00000000 --- a/04_week/04_class.md +++ /dev/null @@ -1,902 +0,0 @@ -# Лекция 4. ООП. Класс - -1. [ООП](#oop) - - [Инкапсуляция](#encapsulation) - - [Наследование](#inheritance) - - [Полиморфизм](#polymorphism) - - [Абстракция](#abstraction) -1. [Класс](#class) - - [Спецификаторы доступа](#access_specifiers) - - [Отличие класса и структуры](#class_struct_diff) - - [Пустой класс](#class_empty) - - [Поля класса](#class_fields) - - [Инициализация полей значением по умолчанию](#field_default_init) - - [Конструктор](#ctor) - - [Список инициализации полей класса](#member_initializer_list) - - [Параметризованный конструктор](#parameterized_ctor) - - [Конструктор по умолчанию](#default_ctor) - - [Конструктор копирования](#copy_ctor) - - [Указатель на себя `this`](#this_ptr) - - [Копирующий оператор присваивания](#copy_assignment) - - [Деструктор](#dtor) - - [Конструктор преобразования](#converting_ctor) - - [Ключевое слово `explicit`](#explicit) - - [Конструктор от `std::initializer_list`(_C++11_)](#ctor_std_initializer_list) - - [Делегирующий конструктор (_C++11_)](#delegating_ctor) - - [Ключевое слово `default` (_С++11_)](#keyword_default) - - [Ключевое слово `delete` (_С++11_)](#keyword_delete) - - [Методы](#methods) - - [Определение методов вне класса](#methods_definition_outside) - - [CV-квалификация методов ](#cv_for_methods) - - [Оператор преобразования](#conversion_operator) - - [Перегрузка операторов внутри класса](#class_operator_overloading_inside) - - [Перегрузка операторов вне класса](#class_operator_overloading_outside) - - [Ключевое слово `friend`](#keyword_friend) - - [Ключевое слово `mutable`](#keyword_mutable) - - -## ООП - -Объектно-ориентированное программирование - парадигма программирования, которая -основывается на представление в коде программы различных объектов, взаимодействующих -друг с другом. - -Класс - пользовательский тип данных, шаблон (макет) для создания объектов и описания -их характеристик, функций. - -Объект - экземпляр класса. Объект включает данные (поля) и методы (функции). -Что позволяет хранить характеристики объекта, изменять их и взаимодействовать с -другими объектами. - -Основные принципы ООП: - -- Инкапсуляция -- Наследование -- Полиморфизм -- Абстракция - -### Инкапсуляция - -Инкапсуляция - объединение данных и методов для работы с данными внутри класса. -Сокрытие деталей реализации класса. - -```c++ -class Budget { -public: - void increase_balance(double value) { - budget_ += value; - } -private: - double budget_; -}; -``` - -### Наследование - -Наследование - механизм создания новых классов на основе существующих. Позволяет -строить иерархию классов и переиспользовать код классов родителей внутри -классов наследников. - -```c++ -class Animal { /* common data */}; -class Cat : public Animal {}; -class Dog : public Animal {}; -``` - -### Полиморфизм - -Полиморфизм - возможность различного поведения сущностей C++. - -Виды полиморфизма: - -- статический (на этапе компиляции, шаблоны, перегрузка функций) -- динамический (во время выполнения программы, виртуальные методы) - -```c++ -class Shape { -public: - virtual void draw() = 0; -}; -class Circle : public Shape { - void draw() override { /* рисуем круг */ } -}; -``` - -### Абстракция - -Абстракция - упрощение сложных вещей через выделение основных характеристик. - -## Класс - -Класс - пользовательский тип данных, который объединяет в себе данные (поля класса) -и функции для работы с данными (методы класса), представляет собой макет для -создания объектов (экземпляров) данного типа. - -Синтаксис: `class {};` - -- `` - имя класса, пользовательского типа данных -- `` - тело класса, включающее поля, методы, конструкторы и деструктор - -### Спецификаторы доступа - -Для ограничения видимости полей и методов внутри класса используются -спецификаторы доступа, весь код после спецификатора имеет соответствующий тип -доступа: - -- `public` - публичный доступ, поле или метод класса доступны извне -- `protected` - защищенный доступ, поля и методы доступны наследникам класса - и внутри класса -- `private` - приватный доступ, поля и методы доступны только внутри класса. - -Синтаксис внутри класса или структуры: `:` - -Указывать спецификаторы доступа можно произвольное число раз. - -```c++ -class User { -public: - /* some data and functions for everyone */ -protected: - /* some data and functions for children classes */ -private: - /* some data and functions inside class */ -}; -``` - -Приватные поля и методы будут недоступны снаружи, то есть **НЕЛЬЗЯ** к ним -обратится или вызвать через экземляр класс, используя операторы `.`, `->`. - -Всё содержимое класса по умолчанию имеет спецификатор доступа `private`, -несмотря на это часто принято явно указывать данный спецификатор, даже при -определении полей класса в самом начале тела класса. - -### Отличие класса и структуры - -Структура `struct` и класс `class` имеют одинаковые возможности в C++. - -Отличие заключается, что содержимое структуры по умолчанию имеет публичный -доступ `public`, а содержимое класса приватный `private` - -Структура нужна для взаимодействия с `legacy` кодом на языке C, а также для -публичных классов. - -Несмотря на одинаковые возможности, принято разделять структуру и класс -семантически. Так, структуру используют только с публичными полями, а класс -с приватными. Создавать классы и структуры со смешанным типом полей не -рекомендуется, так как это может быть не очевидно и не понятно программистам, -читающим код. - -### Пустой класс - -Пустой класс имеет размер 1 байт, поскольку объект такого класса можно создать -и необходимо иметь адресс данного объекта, чтобы иметь адресс, необходимо что-то -положить в память по определенному адресу. - -Чаще используется пустая структура. Такая структура может понадобитсья в качестве -именнованного тега. Пока будем просто считать, что иногда надо. - -### Поля класса - -Поля класса представляют собой внутренние переменные произвольного типа. -К полям класса внутри класса можно обращаться по имени. В качестве поля можно -использовать указатели и ссылки. - -В случае ссылок необходимо их инициализировоать при создании объекта. Например, -можно проинициализирвоать адресом объекта из глобальной области видимости. А еще -это можно сделать в списке инициализации при конструировании объекта. - -Существуют разные стили кода к именованию полей класса. Часто встречается: - -- `m_` - добавляют `m_` в качестве префикса к перименной (`m` - `member`) -- `_` - добавляют `_` в качестве постфикса к переменной. - -```c++ -// inside class -int m_value; -int value_; -``` - -Поля класса хранятся в классе и инициализируются в порядке их объявления. - -Поля уникальны для каждого экземпляра класса. - -### Инициализация полей значением по умолчанию - -Аналогично структурам рекомендуется всегда инициализировать поля внутри класса. - -```c++ -class Time { -private: - int hour_ = 0; - int minute_{0}; // uniform -}; -``` - -Иначе в полях класса также может лежать мусор. - -### Конструктор - -Конструктор это особый метод класса, который используется для конструирования -объекта. - -Синтаксис: `() {}` - -- `` - имя конструктора должно совпадать с именем класса -- `` - аргументы конструктора. -- `` - тело конструктора. - -В зависимости от аргументов конструктора выделяют различные типы конструктора. -Основные способы конструирования объекта: - -- Параметризованный конструктор -- Конструктор по умолчанию -- Конструктор копирования -- Копирующий оператор присваивания -- Конструктор перемещения -- Перемещающий оператор присваивания - -Важно понимать, что если конструкторы не определены, то компилятор самостоятельно -сгенерирует конструкторы. Но если определен, хотя бы один конструктор, то -компилятор скорее всего этого не сделает. - -Важно понимать, что при входе в тело конструктора все поля уже проинициализированы -и в теле может происходить только присваивание новых значений полям класса. -Следовательно, в теле уже нельзя изменить константное поле или инициализировать -ссылку. - -Проинициализировать константу и ссылку можно не только значением по -умолчанию или значением (адресом) переменной из глобальной области видимости. -Для этого в синтаксисе конструктора предусмотрен список инициализации. - -### Список инициализации полей класса - -Список инициализации полей (_member initializer list_) позволяет инициализировать -поля в момент создания объекта. В списке инициализации доступны аргументы -конструктора и имена полей класса. Список инициализации указывается между сигнатурой -и телом конструктора, и выглядит как перечисление после символа `:` через запятую -полей класса и внутри `()` или `{}` их инициализирующих значений. - -Синтаксис: `() : {}` - -- `` - список инициализации = `(), {}` - -```c++ -class InitList { -public: - InitList(int val) : a_(val), b_(val), c_(val) {} -public: - int a_; int b_; int c_; -}; -``` - -Причем имена полей класса и имена параметров могут полностью совпадать, конфликта -имен не будет, поскольку компилятор понимает, что нужно инициализировать поля. - -```c++ -class InitSameName { -public: - InitSameName(int a, int b, int c) : a(a), b(b), c(c) {} -public: - int a; int b; int c; -}; -``` - -Также, следует отметить, что в качестве инициализирующего значения, может использоваться -не только переменная или константа, но также выражение (_expression_) и результат -вызова функции. - -**ВАЖНО**, что инициализация происходит в порядке полей класса, и не зависит от -порядка в списке инициализации. Поэтому важно самостоятельно отслеживать -правильный порядок инициализации. - -```c++ -class BadOrderInit { -public: - BadOrderInit(int val) : c(val), b(c + 1), a(10) {} -public: - int a; int b; int c; -}; -``` -- `c` используется неинициализированной при инициализации `b` (**UB**) - -Если поля класса объявлены со значением по умолчанию, то они будут проигнорированы -для полей в списке инициализации. - -```c++ -class BadOrderInit { -public: - BadOrderInit(int val) : c(val), b(c + 1), a(10) {} -public: - int a = 7; int b = 7; int c = 7; -}; -``` -- значение `7` будет проигнорированно, по-прежнему **UB** - -Списки инициализации могут быть неполными. Тогда недостающие поля будут -сконструированы со значениями по умолчанию, а при их отсутствии инициализируются -мусором. - -```c++ -class BadOrderInitNoAB { -public: - BadOrderInitNoAB(int val) : c(val) {} -public: - int a; int b = 7; int c = 7; -}; -``` -- в поле `b` будет значение `7`, в `a` будет мусор - -Список инициализации позволяет сконструировать константное поле и поле ссылку извне: - -```c++ -class RefConst { -public: - RefConst(int value, int& ref, const double& cref) - : id_(value), ref_(ref), const_ref_(cref) {} -private: - const int id_; - int& ref_; - const double& const_ref_; -}; -``` - -### Параметризованный конструктор - -Конструктор, который имеет параметры (аргументы) называют параметризованным -конструктором (конструктором с параметрами). Аргументов может быть несколько -и они могут иметь значения по умолчанию, Таким образом, конструктор может -быть перегружен. - -```c++ -class Time { -public: - Time(int hour, int minute, int second) - : hour_(hour), minute_(minute), second_(second) {} -private: - int hour_, minute_, second_; -}; -``` - -Если конструктор имеет у всех аргументов значение по умолчанию, то такой -конструктор перегружает конструктор по умолчанию. - -```c++ -class Time { -public: - Time(int hour = 0, int minute = 0, int second = 0) - : hour_(hour), minute_(minute), second_(second) {} -private: - int hour_, minute_, second_; -}; -``` - -Для создания объекта класса необходим вызов конструктора. Синтаксис вызова констуктора: - -```c++ -Time t1(1, 1, 1); -Time t2{1, 1, 1}; -Time t3 = {1, 1, 1} -Time t4 = Time{1, 1, 1}; -Time t5 = Time(1, 1, 1); -``` - -Аналогично для всех его вариантов перегрузки. - -### Конструктор по умолчанию - -Конструктор по умолчанию представляет собой конструктор без аргументов. -Часто для простых класов конструктор имеет пустое тело. Удобно использовать -значение по умолчанию для инициализации. - -Синтаксис: `() {}` - -Часто имеет пустое тело для тривиальных случаев. - -Если не определен ни один конструктор, то компилятор самостоятельно сгенерирует -данный конструктор. - -```c++ -class DefaultCtor { -public: - DefaultCtor() {} -private: - int value = 0; -}; -``` - -Вызов конструктора: - -```c++ -DefaultCtor obj; -DefaultCtor obj2{}; -DefaultCtor obj3 = {}; -DefaultCtor obj4 = DefaultCtor{}; -DefaultCtor obj5 = DefaultCtor(); -``` -- во всех этих случаях вызовется только конструктор по умолчанию один раз - -### Конструктор копирования - -Конструктор копирования необходим для создания копии объекта из объекта того -же типа. Представляет собой конструктор, принимающий в качестве аргументов -константную ссылку того же типа, что и сам класс. - -Синтаксис: `(const & ) {}` - -```c++ -class Time { -public: - Time(const Time& other) - : hour_(other.hour_), minute_(other.minute_), second_(other.second_) {} -private: - int hour_, minute_, second_; -}; -``` - -Поля другого объекта того же класса доступны внутри методов класса даже если они -приватные. - -Вызывается конструктор копирования: - -- при передаче в функцию по значению -- при возврате объекта соответствующего значения по значению -- при конструировании одного объекта из другого - -```c++ -Time t; -Time t1 = t; // copy ctor -Time t2(t); // copy ctor -Time t3{t}; // copy ctor -``` - -### Указатель на себя `this` - -Внутри класса, в методах, в том числе конструкторах, можно получить указатель на -себя (объект класса, который вызывает данный метод) с помощью ключевого слова `this`. - -Можно использовать `this`, как в качестве значения по умолчанию, так и в списке -инициализации. - -```c++ -class Self { -public: - Self() : self(this) {}; - Self* GetPtr() { return self; } - Self& GetRef() { return *this; } -private: - Self* self = this; -}; -``` - -Можно считать что указатель на себя передается первым неявным аргументом в конструкторы, -методы и операторы класса. - -Через указатель можно явно обращаться к полям класса, но как правило, так не делают - -```c++ -// inside methods -this->self; -``` - -### Копирующий оператор присваивания - -Оператор присвания необходим при присваивании одного созданного объекта другому. -Если один из объектов не создан, то он не будет вызываться, а будет вызываться -конструктор копирования, даже если в инструкции есть `=`. - -Как правило, оператор возвращает ссылку на себя (экземпляр текущего класса), что -позволяет испоьзовать цепочку из операторов `=`. Для этого необходимо вернуть из -оператора разыменованный указатель на себя `return *this;`. - -Синтаксис: `& operator=(const & ) {}` - -Поскольку язык не запрещает присвоить объект самому себе, как правило, в копирующем -операторе присваивания выполняют проверку на самоприсваивание. Особенно это -критично для классов владеющих ресурсами (выделяющих память), что может привести -к **UB** - -```c++ -class Time { -public: - Time& operator=(const Time& other) { - if (this == &other) { - return *this; - } - hour_ = other.hour_; - minute_ = other.minute_; - second_ = other.second_; - return *this; - } -private: - int hour_, minute_, second_; -}; -``` - -Вызов оператора: - -```c++ -Time t1, t2, t3; -t1 = t2; // copy assignment -t1 = t1; // copy assignment -t1 = t2 = t3; // copy assignment -auto t4 = t1; // copy ctor (not a copy assignment!) -``` - -### Деструктор - -Особый метод, вызываемый перед разрушением объекта, когда заканчивается время -жизни объекта. - -Синтаксис: `~() {}` - -Если в конструкторе выполнялось ручное выделение ресурсов, то в деструкторе -необходимо обязательно освободить ресурсы. Иначе деструктор остается тривиальным -и генерируется компилятором по умолчанию. - -Деструкторы вызываются в обратном порядке по отношению к конструируемым объектам -при выходе из области видимости. Последний сконструированный объект, будет разрушен -первым. - -### Конструктор преобразования - -Конструктором преобразования называется конструктор, принимающий один аргумент -другого произвольного типа. Данный конструктор разрешает неявное преобразование -из указанного типа в тип класса. - -```c++ -class Integer { -private: - int value; -public: - Integer(int v) : value(v) {} - Integer(char c) : value(static_cast(c)) {} -}; -``` - -Таким образом, если функция принимает пользовательский класс, а класс имеет -конструктор преобразования от другого типа, то в функцию можно передать -непосредственно этот другой тип, произойдет неявное преобразование с помощью -соответствующего конструктора: - -```c++ -int DoSomething(Integer i) {} - -int main() { - Integer i{3}; - int value = 5; - char c = 'I'; - DoSomething(i); // OK - DoSomething(value); // OK - DoSomething(5); // OK - DoSomething(c); // OK - DoSomething('i'); // OK -} -``` - -**ВАЖНО** понимать, что при наличии конструктора присваивания из другого типа, -компилятор **НЕ** будет генеировать оператор присваивания из данного типа, его -необходимо определять самостоятельно. - -### Ключевое слово `explicit` - -Ключевое слово `explicit` используется как спецификатор перед именем конструктора -и позволяет запретить неявное преобразование и сообщает компилятору, что данный -конструктор можно вызывать только явно. - -```c++ -class Integer { -private: - int value; -public: - Integer(int v) : value(v) {} - Integer(char c) : value(static_cast(c)) {} - explicit Integer(double d) : value(static_cast(d)) {} -}; -``` - -Неявно такой конструктор вызвать нельзя: - -```c++ -//Integer i2 = 3.14; // compile error -Integer i3 = Integer{3.14}; // OK - -int DoSomething(Integer i) {} - -int main() { - double d = 3.14; - //DoSomething(d); // compile error - //DoSomething(3.14); // compile error - DoSomething(Integer{3.14}); // OK - DoSomething(Integer(3.14)); // OK -} -``` - -Также спецификатор `explicit` можно использовать с оператором преобразования, об этом -после знакомства с методами. - -### Конструктор от `std::initializer_list`(_C++11_) - -В C++11 появился контейнер список инициализации `std::initializer_list`, который -позволяет инициализировать класс набором элементов. Что вызывает неоднозначность -при наличии параметризированных конструкторов какой конструктор вызывать. - -Конструктор по умолчанию имеет приоритет перед конструктором от списка инициализации. - -Список инициализации имеет приоритет перед параметризированными конструкторами при -использовании `{}`. - -```c++ -class Vector { -public: - Vector() {}; - Vector(size_t count); - Vector(int a, int b); - Vector(std::initializer_list list); -private: - std::vector data; -}; -``` - -Вызов конструкторов: - -```c++ -Vector v = {1, 2, 3, 4, 5}; // ctor std::initializer_list -Vector v2{1, 2, 3}; // ctor std::initializer_list -Vector v3(10); // ctor Vector(size_t) -Vector v4{10}; // ctor std::initializer_list -Vector v5 = {10}; // ctor std::initializer_list -Vector v6(10, 20); // ctor Vector(int a, int b) -Vector v7{10, 20}; // ctor std::initializer_list -Vector v8 = {10, 20}; // ctor std::initializer_list -Vector v9 = 10; // ctor Vector(size_t) implicit cast -Vector v10; // default ctor -Vector v11{}; // default ctor -Vector v12 = {}; // default ctor -``` - -### Делегирующий конструктор (_C++11_) - -Делегирующий конструктор - конструктор, который на месте списка инициализации -использует другой конструктор данного класса. В таком случае можно указать только -один целевой конструктор, дополнительно списки инициализации указать нельзя. - -```c++ -class Time { -public: - Time(int hour, int minute, int second) - : hour_(hour), minute_(minute), second_(second) {} - Time(int hour) : Time(hour, 0, 0) {} -private: - int hour_, minute_, second_; -}; -``` - -Делегирующий конструктор **НЕ** может быть рекурсивным. - -### Ключевое слово `default` (_С++11_) - -С помощью ключевого слова `default` можно явно попросить компилятор сгенерировать -конструктор (деструктор), указав после сигнатуры `= default`. Это более выразительно, -чем писать `{}` для конструктора по умолчанию. Рекомендуется к использованию. - -```c++ -class Value { -public: - Value(int x) : x_(x) {} - Value() = default; - Value(const Value& other) = default; - Value(Value&& other) = default; - Value& operator=(const Value& other) = default; - Value& operator=(Value&& other) = default; - ~Value() = default; -private: - int x = 0; -}; -``` - -### Ключевое слово `delete` (_С++11_) - -С помощью ключевого слова `delete` можно явно попросить компилятор удалить функцию -(запретить её использование), указав после сигнатуры `= delete`. Это более выразительно, -чем прятать конструкторы в приватную область класса. Рекомендуется к использованию. - -Можно использовать не только для конструкторов, деструкторов, но и для любых методов, -операторов, шаблонных функций, функций вне классов. - -```c++ -class Value { -public: - Value(int x) : x_(x) {} - Value() = delete; - Value(const Value&) = delete; - Value& operator=(const Value&) = delete; -private: - int x = 0; -}; -``` - -Например, если класс не подразумевает сравнения на равенство или других операторов -можно явно указать для них `delete`. - -### Методы - -Внутри класса можно определять функции, которые могут работать с полями класса, в том -числе закрытыми. Данные функции называются методы. - -Синтаксис аналогичен определению обычным функциям. - -Публичный метод можно вызвать через операторы `.` для экземпляра и `->` для указателяю. - -Приватные методы, можно вызывать внутри класса. - -Можно вызывать методы в списках инициализации. Например, метод, который будет -контролировать допустимость значения или выполнять дополнительные преобразования. - -### Определение методов вне класса - -Методы можно объявить внутри класса, а определить снаружи класса. Содержимое -класса имеет свою область видимости. Для определения снаружи класса перед именем -конструктора, метода, оператора используется имя класса и оператор разрешения области -видимости `::` - -```c++ -class Time { -public: - Time(); - Time(int hours, int minutes, int seconds = 0); - int GetHours(); - void SetHours(int hours); -private: - int hours_ = 0; - int minutes_ = 0; - int seconds_ = 0; -}; - -Time::Time() = default; -Time::Time(int hours, int minutes, int seconds) - : hours_(hours), minutes_(minutes), seconds_(seconds) {} - -int Time::GetHours() { return hours; } -void Time::SetHours(int hours) { hours_ += hours; } -``` - -Аргументы методов, имеющие значения по умолчанию указываются только при объявлении, -при определении нельзя указать значения по умолчанию - -### CV-квалификация методов - -Методы могут иметь CV-квалификацию. Методы, которые не изменяют полей класса, а только -предоставляют информацию о них следует помечать квалификатором `const` после сигнатуры -и перед телом метода: - -```c++ -class Size { -public: - size_t GetSize() const { return size; }; - void AddSize(size_t size) { size_ += size; }; -private: - size_t size_ = 0; -}; -``` - -Методы помеченные квалификатором `const` можно вызывать у константных объектов класса. -Компилятор отслеживает, что в данном методе нет измененеий полей класса. - -Методы можно перегрузить только по квалификатору `const`. - -Не изменяет поля класса и может быть вызван для константного объекта: - -```c++ -int Class::foo() const; -``` - -Может изменять поля класса и может быть вызван для `volatile` объекта: - -```c++ -int Class::foo() volatile; -``` - -Может быть вызван как для `const`, так и для `volatile` объекта, так и для -`const volatile` объекта: - -```c++ -int Class::foo() const volatile; -``` - -### Оператор преобразования - -В классе возможно определить оператор преобразования, который позволяет преобразовывать -пользовательский класс в другой тип. - -Синтаксис: ` operator () const {}` - -- `` - можно запретить неявное преобразование -- `` - тип к которому выполняется приведение - -Рекомендуется помечать `const` поскольку данный оператор не должен менять полей класса -и вызываться от констант данного класса. - -Как правило рекомендуется запрещать неявное преобразование к типу (использовать -`explicit`), поскольку можно обнаружить много неожиданных мест в коде, где неявно -произведено преобразование. - -Исключением обычно является оператор `bool` для удобства использования в условиях. - -### Перегрузка операторов внутри класса - -Поскольку первым аргументом неявно передается ключевое слово `this`, то перегрузка -бинарных операторов внутри класса имеет один аргумент: - -```c++ -Class& operator+=(const Class& other); -Class& operator-=(const Class& other); -Class& operator*=(const Class& other); -Class& operator/=(const Class& other); -``` - -Операторы арифмесстических операций часто переопределяют на основе работы присваивающих -операторов: - -```c++ -Class operator+(const Class& other) const { - Class result = *this; // copy ctor - result += other; // operator += - return result; -} -``` - -Операторы префиксного и постфиксного инкремента/декремента переопределяются -следующим образом: - -```c++ -Class& operator++(); // ++obj -Class operator++(int); // obj++ -Class& operator--(); // --obj -Class operator--(int); // obj-- -``` -- постфиксный оператор возвращает копию, поэтому у возвращаемого значения нет `&` - -### Перегрузка операторов вне класса - -Операторы можно перегрузить вне класса, тогда сигнатура перегружаемого оператора -пишется в привычной манере. Но для реализации таких операторов у класса должны быть -методы задающие и считывающие значение полей (геттеры и сеттеры). Бывает, что их нет, -тогда перегрузить класс не получится или получится на основе определенных операторов -составного присваивания внутри класса. - -Перегрузка инкремента и декремента вне класса: - -```c++ -Class& operator++(const Class& obj); // ++obj -Class operator++(const Class& obj, int); // obj++ -Class& operator--(const Class& obj); // --obj -Class operator--(const Class& obj, int); // obj-- -``` - -### Ключевое слово `friend` - -Внутри класса с помощью ключевого слова `friend` (_friend declaration_) можно -объявить дружественную функцию, класс или дружественный метод другого класса. - -Сущности объявленные дружественными будут иметь доступ к `private` и `protected` -полям класса. - -Дружественность работает в одностороннем порядке. - -```c++ -friend void SomeMethod(int); -friend struct SomeStruct; -friend class SomeClass; -friend OtherClass; // C++11 -friend int OtherClass::Method(); -``` - -### Ключевое слово `mutable` - -Спецификатор типа `mutable` разрешает изменять поле класса, объявленное с ним, -даже в константных методах и для константных объектов. - -Например, это может быть поле представляющее собой счетчик операций и необходимо его -изменять даже в константном методе. - -Также может использоваться в лямбда-выражениях \ No newline at end of file diff --git a/04_week/04_class.pdf b/04_week/04_class.pdf deleted file mode 100644 index 50a488d9fcab3609ae8817ce4684647091ae75d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251118 zcmb@u1yodR*FG+dgauMcOT#cTOn{U$Qc}_lLpMX02q@j9beE)bNp}g-B2toqfJnpt z==;2ne($%|x7P3fJ}z(1oHJ+6ea+t2zV^QNIU|#zxFi<@1S4P?-`ZFtfY5>I?2If4 z1O&KMEzs5|I#w`D-`LvF$%&1CTg(wO7+U{62>|`uknZ*;Zvcm6B7P64tqOmcN;rLdvgmXn?HcS{z;4coF0jU(?I}6AfaF|7(xf20YP~H!u$=y z(8vkxXlVQ&o`L_@IDV590pkI|VQ?^vj*l0_%Lh1yj}8HcgJ3|!{pQFoDfz<^i2oYF zAKZW>SW8stBT28;wj zk#K+@fG2=R{uw?92p7`0ud! zmsJ4oSeyLe9_W9sslUkrheH8P116>8;Q{yx1Pg)=jsWD92mFVm{eqxxf-*I9wnpn) z*jk`}n+5t$N-P}U2%xqAcYhiN3a|wTA0V87NCGJI+dn}1{R6>2sjP4a9GDjl=B0!3 zfLIQ?mqe^O%snFoQ9U_er!K;8jE zeufYL5X1+>)o)DphK`0dC^Vq=9w-xiqphVd^`05zz}vJOm$ghK(92kK=WAluRLARr(>KmOq8&rk(& zu*v_SYdrs?)bj8E2mo1y0B%A8R0YJIjt3~85J2_zyHqkkS)A%<5Kj!_7 z1qlXL6hF1({{_o`FR;+x^ZtPaP?VoF_5Tx=e^O(4AW%T;e^x3`1RMkhI7A0f7=+~g zGnB1R?ykVv?cW8$@5~G=cmLbv-*35x0;@hG-%qx{fyEEN5eOX*7y&}Sf&IT#- zAQ%3DZ4`>y@!N1GczYzTN%g>q(SdQx3IirC_!=HxvCx!Q?+#-N70QpC00K_*4 zkeNR-vWvbcpfvx>KCpjMcYl@yynv4Yxmvi>9BV1LN7q=hw5u+wo%0?i_nILg@01Vz9thq5(8o6|vffcBD* z5FM~6Mj6@=xTUOm&qZ({BUU|qx_oFdCK{CQj8bF_Gi}x1!~KFKpbH`zBd$8T^24}$ zdnv1+YUFX_k8YQ{iq4g4+loOs40WtZaiN8gS0B%Z7B0Kmu59=kCT)c;&-WL&=}Dz3 zK9>3#b6zGGeFc%G+r2wq8@M{ruf6g(*-cz;$WQXT_qFdz``+>18u^sv0P=j{>UeAD z`MdM)`(?iJwdt2@OkLW$8){;85yPNt^3Lc6LTt{gAg zaW6)3eN=9G>U*}hmgsx1ajEn8|ATE4Ar+dI8KQf=RLKhBrsm|2SvImv(8d-73hE93lInx@{eozBT= z$9=NC+?so2ZEGIHVN+HH-;-onB_Uth3zN1Wt7N@33;os$`DIc)M)oZ=w{i=oo(No9 zQw%lniSjxR;rQ9qOvzU64QjyB|}}~;#2iC{RPOb90?Sr zSY1>F=fC;RNZtG9*i;p9w5_{!X@8!-c1ZtrAnB7|x^m?cWMXe^@>Xuo9x2x4{mTIFySV!Zyv)Rb7z58>gd=rZfPCee?F%Yh4JH)cKy@KzB;D5*N!E+ zy2PL<1&LY`9l2Mc`e_@wcBx*97Y7mCJps?%)U^srSc3(9(~L@Gke|9@Hrs<0jHk}#03dv&>Ao9OF%a%2~3 zWqWm4^8Sfjj_=Xi`U4vVw!>{pu9F|kNL!Kmqg`$$6uIS%4YlX4A5>&&)AeOoK@)cv zGVBO!KwlKF0?B?9RDC;Y?2~}hOSiCAuzuSbXDe2qXUBYmr9Fy&=$*NVEle`JzA!K1R&WgVIB}RwnA=R;fhPg)x zIr&x65tqE@!WiOHZB_UYm(7~D?1J0E81hr?cVKtk<6kdJj<~#+y=A3#W%WGu>)2`C z%%xKNJo0#Ntf$ve+!jx{EzPMwh-Ta&u3{~{br+xd8t=8;jM%W4gRi$wu0d42VdVLKA97$z@tIusomf#lCA#$Ft*-| zTx|2f=X=iu8+XJaw=GsL1=)!|PN*m?J!W?e_&D;VfK@MIb891f369|q&|@Ncm9-Yu zdpFJ2&2E3wxU>lMwMa|olf!paE?RvtuX?Rdd_`&zNB1vOIeKa-^uMYhY>V!04)LD(L$1G5l>4CbH&WR%W+ZbiyYR$0w!$>yOzg8^nicwy}=IW&;PLG zKysQx7TFyiv;3a$YqZw=i=p)>ErB{UA&Btac`~Y*Blv*u3PQi$Ituh_=fbFw^$YK<*EFi)y2TvGVU(-T^BHl9FFyE|jU`>op|_3w*$Fg~)PwQ%1o3>AjZ ztPtOFZfjgBA;-bW3D4ZO=vq6>s#hb|&bKd~;b-?5tU`@wgD_iWb?6{$1lv-qg!@vH($LbEe3552 zANx4Y%1J3o$6QUn7;G!+q`m{+;|jZ7}E?F_Rh5Xqs{K-b-$&y@ZO z1XI_tteuSA%01?t7Inz&n#AzNsyh2D^I75$X<EjDi zpQsBx;CdXi=wDc+e)^?a2J3Nw>ePb|(aq~?<1NWhmohfvqZd#YJ7B}#Kkc6zCaBRr z-4Ox(VZdg5GXeUebv~o?*DEN3%{cNkv|l2Vbu1`~(ko?@W+Q2o@%E!2(h&AI**Jy| za&asVZcK2Z?WnNL7ps0sL0pBiETuNBD4v(r7AIOWFH!3r5q>Nlg?6F^#j4?7eNf_$>xBJA7*Z!>VPWDMRbiT>Pb6zu zML%IGB{gvuXt}@b#J4bhXkLs-ouid>~4p{nDy(EG4 z8?92B2yqhSW>L}y&w#8Iy(P3#L@P^7S&Jb+T)#<)c#!g)`Fk5FGSt!-NwAa6cf`HN zOp-1-h8(nj&Fmahr+XTGxxd^t9CFYk&%`Er=)5yZSiRe)t%u?U>R*&7ZM*< zrjr;}&WKNeRK@UgbMnbHNm!ZaPb*Jb{F6w(mGqaa1`WiTX#x;*TKb?++=?67j{UP?4o zxAmte9!2aXoS7(|TrIb^A@pVjzYO1}d82Q&yZC$4Rif)%)!{F4sZ+amZnxVJfKr%L zBsZB6`!|TfKaTU~QP|32U98SP09Dtuo*swzy%ubRxOD)1xYW1Us_{F3`M8`=>ti*C+_V(P9h#zTUmH6n#`s6-dk*3Zd48JbR0x4`=^ilN&a1n!f zRT|O6(s|V%%oDK{&NIP~#_i4m2bCFZWc-EcOz?Z>88(z}(zq28Za_)=iIcxjsullW zQvPwi;o#{|B?&9$CrmqK!FbEXA%aQy;EH{V$1W-hm%$A!qW2A?kZwC=rRF0G<4ETI zzKHV^-7M#u4GepSxr&AiS zh1LuM;{>|bJ0gfa2bQw$~ zU&1@lD0Y(@$g*GrkJ!%Pe!2@?ogi)hkss!@u=$8{NSPs zn9{uW>w?)QB-B50iiG8{(mF(JN?lKlr74Ng`7_UR0ia&8~s_uO3MavuqOhjN3cWdk`33XwOb(k9AV3N4ZZ?B`bwW z>R4p2Rb0@V<{I1-B8XXI4rH$(EqbV|@A{RmP?=DKVpNR`EA5vL~ zHr0OZ%SwMeSu&+drYB|k*{rwtW)c%VPQq}=)56AM1&1^aUQ2b03@c@a8E&L0tuvff z;ozlIsxPgd)>cmwy|||G8)mf1?Ak%S;>X0?`8?!ObBj+H&S93OB6kALp%Jj*C;QM> znW2z?<2+mOYg5TtFdl*9T*(Rn4G9EA4DY(4c87xfps)lvq)f{&p5A z{k<%KOs4$TVNK0!x?n6szug$LeD|C30yzTg|mQV;JF8I z@qFr^N9an?ydVoQm;vPtV8;uasKP`u3QdJ;Gh0EYgx!P-d`6|3knmwxhGrB6M|y&n z5!r|2;?x0DKyUq(pZPX{U3Lq-ofPS@d|T7?>V5XfWXlz53aWZD9|PmWxJI(lZ+h{h zWHZ-rD9eLgKfer;q;H%w3eke?x2+BbI~D2U`;$)h@|WM;0THo!`fe?c$EMj|*1CSA z`sR_aG;Wp1RQDN+?B;oQ^?>)%%*$S!5gCU1UI>+A8^sy)Tn(yL*jd^u5z)iKf34nt zQ<7by)gSVsP9mC6vJcPl5s0F=<0L53V30WqP?S(V-4zBY!4pFAd~ScqyeXB)dS<&W=st>a`4G8IPtb(`CGD-WxCJJ0`q^9;Im z`r+9?QtAZ?JrBHY*mwq!1yShsNkm+h=cio=0+w|7p)QE|A_x8#z~Vz$imsT;9VM( zXUV?V6!A4gz3BasoR+lZ9XT!gz{0Hkn8BQ`#WfNV6YZCukGRuT-pCHEew=)&`(jcP z_-1cJhUW*Vz%|2EU{f<<3SD4m1LN&m+_2K(2CU?W=Jh*H_DbhLFa{btT9%f_51EDJ zuy5JD%nH#b%?-LDT@B8cfQLRw!^Kz-{QBjke7ye1#Oa~VP!Y)3xGaElK$^>C_#fN#&`1$fNyRb$+(*yjtdk11u&IiHIF^W;W* zCeZbQJZcK>l#=dh72FRudPmBsTmZa9ORvM-$Fy06KSh!_@fmGC!HpA2S`-bC6Mrg3 zmgz@1zEq0otcPBJ*uN|doc|3r_D*daM|iAY+>$>$l&&H5$ewZ0o7e1dZBlXecDmg> zM`F+kk0Ia8VnK(-FoTvGbH4!AD(@J57hLI9B>UnMzu0C0&k_TAXGjs2)wLidd!U>AnIjmy~KUe#)nW z_LD_c3hfe$(qlp8h06|GCUI!F<5&1}ayKOI4ztMIwq@-nAq%!7YvCitY(mch)ja#K zR;=c_(V+e0Yv3Z11DaMQk-wS--}#&b2n6>JsfPi6!BID zZ~<_#5>RTscT`iNXyUf$(d_!G$O+~v=9IjvuUn9U&L?ZYRwL96L^6njO!C#LKKW-x zpMlVUW3N&(>??Bu=P^l5TA2Z>Gf;6#W}2601^%1CvoJ%OlS*&{!7~2ho zd)Y9vPI<<#y*reCbH;l zqWdHaO~!)2P_Gm)bR!82z5R%SGK4)$E{*{hETq>bI87|6u%)MdmEHlIF-#`Wob=1$ zRIyBYMv#E8iufpqDa#0jd^3)KL|6qpIuw%J+qEv!+dn-ncqt<4(h8*tp*LA$#AFk7 zae1-+g3-YRDEnsQ()<`cbFn5wQ5Wgnsc-#@i(+$b1H5ZBjcN~b+AmMnz=2jwOF=Y^ z1MYm`XKy^$l{IffwQSOWR&OQWm(-oU>AO5LimpkR+z;^r9VQOde^MI${w2ht!EVo* znAT^9>NV}qC$E;pt4bf@W1t%hsmycRnm*>(Uy%+w5va-%--SAt;`ek6;rVEb(oSw* z$)-7xPz-#Ka$(E%;%s+_F)O=&8`{n0V`IQXlB*ro8PCGNU7NZ1xm^_^t_LX!TuR}r0lth%yL<6qEgGl6R-0tr5_JH z*+;Qamm(99Sxa6kD>Cb(cM}N{rvisn9Jp%U0zF{$P|bkOgUkw*phvN@m+K4?il?c@oQPJ@6Si%#n26Do-SbGnT_K`Ht7Zv^5F4f z#t9YOe9JKh*#W-){inUZR~Xf~J9yZJt=NxHz!eYF$3Z>eyWYWMBPM|1h{)a-Fx-im5G zCHZl=?zz5g&$FrPIA6&sPw|bn+D`T+gofEzC(h3M&dz7f_A8uDWZu8Tj)R5_y$lm5 zdoXa&zY}*&NTlOiQ_R;vZ9bW`Ek~{}sx%*@0ggVq*6yRIy7)MYbWtTsz)%n6D)Wp2yDo)d_+~MCmUy0p@GA0e&Pd;=Ai%%pPMF6jg>&-$MkM zuaV+%6BUr@m6!*o{VI}{Ue(U(5~r?VS{8xIg&&46?TW4G;(xK%DNQu*dyG${# zXc?B>`qvT>zn+Rbx}S@+LhB7k@$-!EI%yWeHCQRtDvI$O@8x{7tW9%}?bY6(elx-opx`zc^lR0+COMLAWn))T~{qy5HRXYk# z3_gH2W;tU^ZF+Kw1qJ;QqqpjEUZK0jNj^(bB98GX4aO)bgT^cbv zYj5s+!v_D=ywhVy<&CA=f1qkkUq5>%e=uiES3&28$|y3h`?E6DQ@4s=o*J1tz{q5} zrG5vu9*QD2D$DT*ERcT2wf$bIw~Nh@YqIofJipm&w?m6SFV4T-c-cE~5?G=dud^IV z=`CBN9`qc0w4Da-IR7$rZ$_){&`dx$v&!8^l+S&llA2M_iyznB+Xutl$p=G>gWqUy z7#36Zf*Mj&$=J=wZxq*uV@q#pJ+x;W7P})|!6?Zm82OBvc-u(ITF6Ao-l4(R+~lF{ zVco`3rg1F6vum+1Rwb6^Yq@e{nElCK5{2&2dypV7T?Nnzk#G_BiR-jOS}zr(EPUwb z&x7KhSbw3U)OIxno6g+M1}3*gNrh>;bguVD^rlaK=pnyfPK4{}<>vvkLanE7qp4nO z?;K+SD{$x^~2-XIyAY`xhSggl}mdOCRs>M34i(aJdT#jRHJY>0;X-jTn;+&LLBlcv}8gY^D2t8LOf<|Es~Wr)|M%>fWc9slWdnK6Ctq_5XLjqWuge> z?nmU>Yp9f2(*lNVtSq6yz#1&I7Rxv6eeMRX^M4gd;@vh^sXdKLk`rDC*!3m~ zth`j2y#nt0G9?`Mm`m3y?d(I$nh8DUkf4=kdNFoae3lPbNE5p+uxGgLgRU++`eL^B z>!Cl}3%}~#o}{pM4E#z$2YbE7SsJBY)wiTtNalmyrbIN=+!_hv?>5EN31WQ7J|7hN zl%~*;KCNCYES1ffK2=jQY-pu1YWSQhWI63lH+Q4}cX!138;VjEDB|FxUc3cq?7JJHQO8$Zk}U&ZrPUa&~_#9_41g(*g4ZSIwQevY-eDb0Ge zE~QsStxMi18%`|;%PqP0r5{AVn#CO%UQ*POKAwIHxx=El%WYK2}p%O2D`kZ zT`&K1zUeP-Us?TViW-JTdKG6QKJ%su9AT~}i(0wF^|W^XylZ5iX#cEdenYdMfqx?C z@=KE<5w5kz`h>G`eP+G8zL2|q%+bkV@9iP#&W3x1Y1VAuYs{XoM7aGtqK&+4yvvu`X+7 ze#!wgA^QQJvt9=hJn_GVO8dn=1#(X>GUFEtiOXRuLwT}r>jqVRU+v8Z`9#YZbYX&g zVuSH`t`Zm?LNR z)F}=9j>u!b1e`D$?2FyMVb42%iT}on;zQF7>lX$(1)b_&zI5qVP$j}PU^_q5<<^!d z40wvAwE44cP5@%=+63m$N9FK%N`Y1Q`rch(=?T(<4N2Fi& z#XO>4g;u3u(6YXK^5%Z+vpXkE{S~srALPUN9X<(u75z#i+vbS2VW4%PHZhp?$YJQ9 zNO~6=4NY!*p{jQCMH{ja-ya=<*+Cib!cVvwi@Wy&Lz7H~o!dqp>ho$7ky~@eLUZ(R zVs^^LG11g!#K;6~b+m%k6AxPIRL_l~qs4)}h1)EF9C{Cz^EoS2PaL~7y3X!nu!NPR z#YO~b9P2cGls-AS#WQm0IAnw#At2K)rEc^kRLEk-S6uz$Ry!k1ped)?&U6c`y@OSd~J}+keLSMb3CGY>Z z^_mogWF@QuXIG%E{s-dT#$!CBi|>t{5!&Q@%hMng%dSC{YNNG6tr@N}MCF0%P?~-J zv}syVbZWlkj{uc!#6U~_6qPKRg+W%&tBd%7gxK;cAr>W^>&)LRJYH$I zBidJ_PLO)1;8!>;;oL9Mi)>4nQL3uy{j2K0>zx=mD3giCzAQdFT4&7J zY*YF!@=iN-jX_5ClqXN|R|YNCIeIm_hiZlk z)=^oco_w;E7hbXmiHOiWbrt+#`W?gAW0#s*MQz^KNsb$-D|5yYyn!`9%FEjBiVWzL zvWYLy7bG4zQbq3H@LD)RqFh{zKjojTg>Gk_ISKfHE6YUEx%I?!7(HK1_NGDZ%}g0Y zlABqFZ&SXF7RxXlxjn=!=0VS;I=A1&x`pa&h0`{vav=_Gent z-owkytciiC{D7$p^!tWDO{n#o|9XVo->?_`E&hXu?> zrESc*!RDnkPD7d-b$VNG4Z>$jRdhNn&oL;@EPM1bi7nQ4>$JXVaKwKReV3rR+LkGM zS7pQK`xLY!sC~jRa`hvd)A!{_H2b!y0?`yf1uNu*6_dMVa-?U&o#HM|h)!D-1xT;U z_l0I;z(uqU>sg4{Y z^YPgbcs1rN^_^Hrp@VLBj@QZ!xHFa+cxI9_WhEGfCoP;kXtsDh?b*Qlj=;wF-bt~4 z;s-loo4veHEU(}z(o8P$5cBXNs>Qb2orl#?6W1gtBzb`QJ6^j=Y03^S=X=b)ZHQ{G z3tbG4BH+}sd8PyoJl&b3m4_cB2Xh(cKG>KfH-uZOEJ)N8CNJ@Zm3VScyak5tks6V; zWX;T0uNp{(lPO&KLttd=vD`yuhZKCe+q5C<6`8COqS8ufov-r~5_^9@@vzH`;KFi6 z40Ec$C5zaody{nEmIli?-|wDe{}?v2$s1NW;XuJtVUwk6J&+taIgNM^He;ZkyP+Y8 zH8V{{i@_LXZOxJT0wSBd$qO`z342w0l!^k6ie4}I{kp4V{GKZj_p)>y(Ic#cPCmFh zpI4AQM{12uZVI;@=M7*Kr=IT~HuPf&vo)@L&y{XqmaY9ss6w)~VrD&IYb9x@KMa%{ zZ)GiIe{arR691~pEZ_qrW3_e;BDG=-7GlJp zD1B)58pc|B%F!);SKT*H&mU6s?ztL7i?}1lONzquXPFkR)yi0xI9mB@5;uNv zk*KZTSXc955tEpW6>%2edrCboLyJlZ;e=)=SyG;6(YQ;9hwno(+gGbe#(TH;xZGO0 zXv1w!R4I2u2=p%t0NZ$@&ph%>Bd@MLcD{3J3-4Y1Xk_9#C1r50J5A!wHgN@_$fvVn z2jsf@-u)`|xt1>oXRpq!B}2`FcHz3EAPZ(KV&&{hhMH~2m8wWd+5Fx9Wt~dCI{*A_ z%g>S2L{9?y71iXMuohf{^4;#%Q>C}$hni=e?YT-;#W{=1&Tvld-$rd2aow8*O*-;j z!E_s5r6geql$LA0 ztQmqx%dHDFW1Dqz!Ny&ty*qM4yKS;v+&(;vNVe&y4tnl zt$8_qWi;gV#%~0=VTWWYd!SXJkmfrh#I?ZF0^{b+^N9`w4}t!{+QpIFXz}vL8;R)^ z*W7bmhP1r+@^0Vhp=XEh%y($}GI8uQ`RBuLaSJv3jB*@iG%Me9Nvp==8JX=cO^bIO z!SQX%ol2g|=G%#acz&eMHchLRvi<0K-twJyKENx;LtsAGtIz{G@k6Z3V@IWy=WmHm zblTspG_t40?3SVRT0XGmd5ufZ?{AQI1;_Hjo9c1~NIyGw8u=ut)ITUiRyRB-HMybW(gJB#aL}CsJz7=`Jv%Zxnt?O zj$oD1QkHs+Qk2kBRjY1|p1G67;hPt2|5JaC=Bb=j%zqcaOEOM@qQNqyGCE|<`+=d^43SO>jp}StDOoz) z8;Z6(wOt1ujFlPe!+S&@i+Hxg{7#WQO-?+FK1{;;%S*xNp{hqOhQKwIl-)$h7MbOP zj8Bvr^anv^-PTZ8wiOg+%#mt1h&vrtip~o!OxU|Q_6jQ@T9GJ~kGA4|K4z+)h=v@r z>dsAE7f54@h~c-Qs8t?==T(rWLSK)Yyz;O^`v1w*eb^&Z$hz6Ly-LN~{Rk!xyr zZw7QdX#Tvs(1;Uw1+D>xX(F~3LKc&#gajNmbDctR>N-U?k#S!m6NV(Qao=8fp57f^ z14<&7$BzUtag%iKJX7e1n&-OyjNvmASQb+Ts8(l~Fu=cz8pfo8=5hqdt*A&zMGTB^ z^Eu%p=-v7m+h5Jas>`L!2whYB=yx%hK>ODm;|Dh)#Fj_@UAAI4?io_hN5ojtk?)ap z!IbAR{#}b=tx#EbS;(~qX*fR!*z3RZ{d(Jscat|^DZ~8BmwS)>bY$iZA|lL|4ePmL zWtQD^_)0hrNyeg1Qq9K`#(0;&6?zt~6&R-EDQQjiNRaL$Il| zIx+v)Q-3DiL;F#|@OF%Ex7*2bc-q->#@mGz1q|7<@abXs?ccu5sZ?{k ze`u2tlrY_YQ;a=NVqUe?cyN$dXjKhkEmw(M0vJnaTIZ`KXjEH)xi`ZRoy);eNz3(^cI&e|2G4 zOtrjB3~1dKReKM|BC1P2%LHA2j|_CQRqE|2N&udf0v_xsb#{Pv_EJ`{svm*A-;o~p zyBFAn$F59Sc)*~($Y-@g{Ct${TIQAg74XoHYIdgtRoCVt_RVcwu}Gjz_-oDV9iS5) z`HWVICtIi5EK!?7_wX+biHs^vTxYP0Q*?CxR1%qbe!w|<0W5sZ-K z;?t6^UU!g!6LzKJ`YAs8`Mko@l+n;|5|0W8QSM~kOtX6|VNaIsuzYXQ7TcLAr9ToV zs8@FU6nI^54!l@tI%(Mc3molq zb>E^>SRzWX{)ZL52;Oy)ry`<5Z8$|rFR^wr#@fZ6W5>z1W5f~uYn5~}nnPkLG(T^J zDzL?!nC$cc#dn&WPuY=C*9!!CvD>cwTg4-z2!R7QzYj>3HjWPO@TIH_t$#gXuSwGi79i|Laq!_!8G!oCbn>U$!%OA~Zu&0}zD=H<^%pKjW-l({A z51F+`MP?Vs)1F)?!?T@?Se=K-k|y8}&Em-}b3ZJuOHD-O7RayNUCb>YHnvi_*KMto zJPc1u%tBmD2j+*&f=y*>pbZJuf+0O)$43R09lnN7llMY31#xDRoYhM6C7w>=p29h5 zA6=E*;g%WIB*ayPT6I6$G$iS0t?GG6RH<)eiklzBfpj^ zrZJh9o*(8TG%)+EFz3+Ngws{N+fknfOsU0kPVu(yTC>|gcSx=En`7#G9G@yHmbmV5 z`1EuiKU#_pzkAc#+6&fNHXyNgWyUB?I-G9-azV>}rSRJ!loAmM914;N_#U(wK%E&A zC?)T7ZQ=FL;x8n0)pVbmQu~0L^6g1ts+9(p38%Vj_pvyhY`0^zNtmogi3#TvHRZrW z4CK=@evkze@tKcwMUoN*-2Ko4DxDWVrBlwDMr5ND(1fX?|E;u&nv&!%O^b}Kh zD?V^h-m`fRxH5gj*YM&TaAg7YY#n<;@ynsH-O&rokwLg7Iqe%n%e9R+=?hZfH;#4LtS-*=dOwVq4Ni{i=Dt2X2}?CG?$_DO^YP&x z0uEajrjJCGq>rp?38zB}(-&ml6=-a{4(Z!9DFED9@U0Jeo)Zd{lOUxWWvwFeejm}q zkR{>%N^xO-HW;;Xn1U;?uoS6W5p!jDc;KmdBjiYG=v+xN>ZU)pdbP-#&L3A8qD*US zKmVJczka&(*MArU{QCIsAA|m1KYW4#zw7_=cTYn)^S1Y!qnp$7*SB!mNsBck?%}nOyz=P<-!tPGLSLW8^OKueEf>3i_Ivc>cbfGTCobOx-5HP!NMpWD>UsI2M_Ks% z+{OLW@#G+!oO>YASI^6Nf&1a>n@wIP4kv`8@qV_K!in5hPJ4YAc#k)y6R)%`G0}vN zrmkJXMt7XPtEYQF9xL@JMIVomTsedHhMwJ{sgY|fdR`a%G2U#jv$XVQr6Z5j_2o2% zuH78s9E~0bg48uBoe-hVh|uz@*hHX36Z?wbqPF*$Pkt;}nmJODFut2O$Ue}<%hi2! zXD#|QrRCMri@rxwPlkMod>0G?)V-VawnpU3?p~{_K5*iX7}{K^5lY0GsW6*q@F;2X z&yNXtI0|$z{g*pmjcx6GLz1SFsmnOW?iTM@%w<;oOx2$;6^G+2piExVKrT zd{y3T#-U#--nT9~fH~w6ybcjiji2r3vWw*_QwNJ`@pIM^S-M%uLHMy>6DSSLJ)xv` zbWPB0tkP^y`*7H&N<0;MAYfuHB#1G;R50NAkW@^EAN>I50`#Sf1vNf0b^DqF+XyOd zl43BIt2#xt#S&sEZb`GHafjNv-xK%l1yPHxiB8ChfE(E*!*32E^->=|O^Vn%Qew|&DU-aGaz`4&TFX-|~w8ucxG}O#kk*o7j z1W&VCNWGS;I-lf1|DMyP>FIin`MXped>!$M%;r1@Q#pxHKt)Mn$@-+%p zWPR-s_k0gyhVp2!xmty`SlG9P>>0JW^D8HF?UuGbIV%(Jt7|tJYDR zW;V8o`G{N6cioV`&tB!Y?^quXW&hYO$vU{nP{iO)kn0D_%lNLTZ+7V%*KKQ71Yd2+ z>}(*j3_id6yjJ}rN1K(MxHiFnkL)bVOyVUp;?kV%Vy*9a`FdxJi=@4Nm(UuOxGshV zc4S9|mEd!QP?lNAGLikytbRcYUuHae}_cMwl09-4$kg6l$LwV9^2;SxZ(wSHi@exK_6&)&CQ(fZRaf`pNo*{GgZN$pbA3I zL59568ZGs>Lq6qi?v39Cg1*Fi4hopu8{|3CFM8$#ABWEj2zm@lCi^qL+Wq#W3fpX8 zg(lW+#2fM8yLreDVzTu5t9GXJDHvW3>w8*pIc+h?aYWMCM3G`ES`mezLUfs?m`27t zzuf=og+G_Nl}We#m`8)AFcEq9n0~&0bNw3Adwx!ccpqNr*$U%v9dS9{8Xuj*LpHL! zDdIGY(mS@mQ=aNX9p*__p@<2|_snKasX40d?0=?cd2=YR9kwW3Ihy1o!!0ROt~NVjyq zI~pn1S+>mOi8Ja+ro#=pv^w|}$`ps^=|H_vaJ{S%-+}6SBi6Eo>$4>{y|OvM`35|F zP2$GF;koEJ*!?X%6ET9r+gp?+S8-&?7f<|rd3-aePA6$~CFC_lj2`iN1P?UbYIoqXqh>)s3Y)2?k(v8o`E;rQni zw}0G9QKqIHnN7attb8NhKwv#xFchwf4eMx|_H*k=5s97J<6c*s;Xhf+dW*%1@^8-}*3_7q%kE

58u$y1+*dB57gVo`7%jLHvf>VAE?0>)izbZIWM$uwfP-K*WGCnL-t6RB29 z-qv;#>Q@l4O-*eTI-D@?8Vpi-E9TYgMwS% zw$Q4HTlBQ8QJJwlaH3&3eU#ZX z#af@5)jo-ld^Tnz7@c$b8LvCnV`14+tnc`b$F?@>1ruUav0k$6#C)L8AFnZ$j+4WS z?#ffvieQ>(SZ7ka5eB6sPmY0F${iAi%B9|zlb6>PmcNKhN>ZSF&!daNw4t(Jc|e2W zF6q12)prvLP+4sj=o;QzJKXsg(!mpPBDreJf(&vYTs!Qx{`g7!O2WL~0ZX2b=8;MS z-e}x1J#00HO(HFWEuUanh01AcM93zCjiniMa{aXqu=kf-=gln6#-wG@*J9X-E5D>(fe zJ+&SSKymrX4AxDBLbNwgov;^?#&{Xvm5X!goqZ21h2g^KX%k*T1r*s@WVLP8pONlN z+BGi$t?{%UyGRSW)x0=&xCR`F1Tko=^{iJxp{> z($ZlEL<;Z|yn)p=pxBp5P?2xm%D-i{upgVLj1H<`au$j1GEY2+(@bFxkg2Sdi__q@ zC(o+g9IxbBYoTz5k{(|9dr@}Y7}j+XZ!kJHgE`ihQ6*-U=_i^t#~T;N`k-lJci16c z82LG{yj1WhSxR29yMM87Dd1nNVm~`LX^PF?>w5x7lCE;agTQAC_kZtf2mWiOPE%^t zWB`4n9`F_^cJEyb-JwmZ#L#s2hLak0)|~x@NR^VZ%6P@5Tcg`J9^j@++bm*kvIQoI zj9Fvtf%g&E-jyBwD2ju6c}2XRn2iYNKhU!{%ueF-LoJ6Inj zmfMgoFrVQ)`5iB`1qhV_^K|_z^P0U7bK#2y^9^|1g&o3pFes}<7^}!XbMiET(od1R z?{v@3=7s&--+_*Syc+nLpK}tcd$OUTnk>jS%~lkf)@w?wBe>Kt*x!L_j9B|%KI4A! zga-zSvLaFBUHWn4^ZFg+W)~&o-|&bFB;2me1@rLVk&%N1|MMOLxW!KTMmX>@85>9o zU%DhXiwz40A*+@tfLo*GOt#bPAM3c$Le>$5Wq zMPexy@7(04H5kHc1e%09;{4Y|yR$B!wFM=VO^u(GTIIM~J-dX)pAKBUPE+v~dkp1n z!Ka$Vi zq;hhbyGz_n$r@Li=!g#;<_z}B>gBf1@>J6f>tC7F70k!OlH){?lU{-(k`>jdEY6=6 zULwlEyz|MkS#Z`lEYs_j&ott0FRTG#$u6#*5mn8o_8ExfXa``=Zb%7 z54EQ)&Nr-3>ZVlGTK1n}OJet`1;uF*q;vCmWr!olc5Ccmq%iOy#{BipDGa0$Z|gP} zkbRf&L(7;|Tm&CCbZSbAc?XHu?$rp+ISo+dji?MV8ht!R=)`~bM(1ZieX&9#=C)5@ z=N=ij)`1@A(8e|&`~H%?xrATX{~Lxn!n3UWBEz=5R?&jvgv>lO!I2Ts7?Oks!Pg2H z2+*6)>s9_F)VR7+ZcD0l^3%AKkhe9=u%64SFss9ely%kH>9q=SQL4{tWkGA6svif) z1{etOmj^Hqr1wrf`ZX5$M1kvH5XiiN&&4aJz6<#c(kUZjty6dnp~{QNcTpl~53Cfm z#-_qgr7@j~TK4|Fr-&9-bxrVfpw}9>C}jD}3ue~A+S`kXpjVhLH}vy~KA>dx)&p}n z8!%n79d~u>W0-6@Gk2~e*YbRj znSPmISdnJQ9Wok|i{e^|=uxbv;wk z$1P6$WoQr}G%$MoAJ^Kscg?8-pYnYde?#x4* zXj@NqNOvv0+q1MK>Ru7QDgU>!o&PjKk`OA zDC3@V#1K5F4wJFJw!hRb3PvD+q~SGUOF9F$Wm4$f_ddq2r&@Y+*%Ucx{hsQL8B!zD&~6G?4{8$3QoM zEt?kfdomz)0VW|Fky+E$1BrvD9_p}_ zpyYl=RcElu7~WC_%hBD%;IROA%xZP@sJ_9?Cq1v6qW!^tjf>i_Yw)UT7IG#vcSmU* z6H+wBCKFr6Cg2)$BnZ+bZ5=e}tsVAv5I=GZ2*y+BfUQt#jFoFDma}@xu`akU1{Qo4YVPR)u{NH;vTiTj6L@iO? zH@fmO&_Z!y=U^bvuG5Ym?0$Zqz72H&L-xL|KfJYgP6dVM|Ew`1n0M1KRFVcW)N;hc ztpOT7T~-Hhd>GDi!g>oGxqfMAUWV9hfnE!~V0N$k{x;Ze&);qE()j$u9O$O_==K_6 z`Z~lv5BID`_&^Eu1tM{?S}905p7Q=YAJifGd>q}M;NHC+`OrXszy6Im-2~jcnh}6n zt0}~4AW`2tvE{`%+HcXN+3{}wd^?6ijn47zZYAjEd{qv0{CvDPqD9G>-DlS9bdP8u zwWQYQRF7EM@WJ8zdLj0;Uw-oq;r4#7IiN+Uk$nof`HUUPXmEW^)-u0JF;m5K{x?e6+n~?9VN@|x|Ky^02@46f4FT2DPAV8z16!o|~hj-EJec!{bDGB%0i@y8K!j84)D} zo1ZLxtYgjw%S_=8o#B!pLDAXv-(2ryS~UmN$JYmyf^Ki^tE;i#=bMytiY;OGQ#AtK>~fO#Mdw{lc!uqx>aeB_L~5%0>%K!A5&q^Qw1J?mRdGx~Oxw z$g1d8DEgDWsR?Xecw;*A=8AHc=~c@Zs{1UE#AGWCR>8%VUKO|HHg@l9kfG*sk z{up9`8XCHn{5*=u1z$F`2>dQ`eWi}r(}S?W*Nt0M3s^o0ta-EGfZJrZjvfq3Hc)b* z^_*_#BnK^$Z)OJ!6oJ45>7~@%UL!V?!M`wVw_J|Po@^cJf5(&CbS?bvaN5^0DE_>& z?E2%{sg)TaQp`4KzdM)arjvj+t_UUNNb*6&)F>1O6(zuv-9~(1O+>3?>6+cwm@4SC z;h>Z|&}OA&l!2Td5qcOnw8a{v##R_Byb7Ay=2xI|) zD1C4UPd=&9Bvk~R3=W2Y+(=fwB0Y?}L}ap?Yos}1+!?KQHF>Ak;4US?o5B6yZgy&@ zH~(PK_74@uax`WDef{mx7>QV9FqaXveI!tQd3(BrLA>mEo-!I@3yj7RJw4*lk$ysI zsy18Wnt?&yynH3b5dP3|91K?*zlWnk>hkfSX2Hi89A-hn2um2r4Nku-VP2Uz27`2t zwPO%nnKwr0l*B?T_3)+P$J_nP#0=`e-@92K2f5Wy>-8L1QN>pSu{}wUeL9mv56Zep zh1z7BWd!vL!8hI9*C~w~iY*PvF%7$;?4INg(;Eae$!(1pA5qIMMYos?rxlc=>qE+G zBB)sDc>!DD@!{V+KRSW(t1y26o^vs*YZ53Po*>)W8Dii#|8eR~pCcQnJ@4f_ZtU4bv}aU=Y~gz2y@MxiHu4^DJM*V8!v zF&Eu7+wqp31v9~%Pa3@rJz&uGi^d*e6c*RQdqc%_%gM==GYUKmK8?HDaf8RS-ri$B z=frnNvueGSQMFhJ#3RUd(?bYmV}t2j&T^~4SVne4{K~dI)smzB@hZ~>lv+30UCd5s zrh=(e{(nbIk!Py13Mg}g7$+n_K3uePBck~r6qX(z#zjmuLd1#$MHd+^NMxCqTmu`z$Y7|DF&rDDJWvt-D=~%jHX#SKFwSL47Gus8G%I1Ek;d+1 zNLMCR6Fe1KPX88VvH#x~8TNm03ZO@h)#bElW`S_$)_jmiijp9IIoc6g88z2r-ATSi#V?B(;*F z(6z2NE5T8)e6c;B8z?N3k15HsrdMBDq!@NkV?x0Cnb(l zP?I<+%l*(12jpr#iGK0grl(yfM+N|xCKBzN!b%r~)pk$A2LTVwd$nCgBtCp2T#e&xX{OUyK50Zya|c>`9)|;pdhuNZA*6iR|zw_#3P<- zKFfZN0i3gL$P)9f_VQ)I-Pp*XDgT(B3}30T02r4@sGz-3COBUvved8x(V#vA7d5(c80paH&+acl}XswV#XBJzodqL#%=j2K?~De(j+3I37IToPHr8RgCqf&vazT+(& z6pIk26pDtz6+Ho>k2)r*mDGjNq4_hnRy{&#V5adCc+Do!1^YfcD9g*ZAEaVzjD zwkzRB13F^esMFd%W>O7%jaA*PW&QFhLxkF4)^Q9i=a$lJZB6$Y0oL2)DlIxrSri$D zUJ{bb$W_FKCwkNk$xP*zddG153yWk7Ig{?o1P^fS$zOe|(e`0iXl}EuuP6oW<1Lh6;Ds4+uLSTkwh+m=w>Y z(@KfwR%K?(YpV9LkmUqMs$t=U+D;V56vP#$n^S(ICItqI?8AnuhMkk&#{LEG(5Cb_ z+!I$NXffGG!RjhLCpGVRDg+(EVk54PL<54Zvq*TNX_XN2N4|z^#t?8ox#Q9f%}j(rhxIq zG5VHBi46mFT2J0t9inqLIkRcu|FwDUO~iM``iRCWG|ZGE7uypA7Jm~Yoj0jw(nl#$ z%8U0hP4n*(Sr#g=%}7v6Re(MhbCKA;gEz&ejk*zF4C^6eL?(_&Bu1-j_Zl3hM7Ym4 z^xw%%xfRB5$bB(XneZb8WCsu~l2+hJCCoP?q?tECRVN;>C)!twkjI(F&&!{iXh?sP z4bUmi3k^6*A;cgLxI?;GS$FRf<7~ma2aIdGdyLm9&5VO`#*8a>P>q)*EslS6crTKj zxhoBbn|uE0u)$#Fr~uqRqmlovN$Kgfwd}vEd9l$0$T)O%9)y<0$Lev$h+~8u{pVgY z>uLzB&$I?V56HE1o5pMWc@;Uh$w7zW00n-hK`H59*&F9awLs8Ff_FC}uX27Q1kTTr z=*AD`%e-k%%BAaCJyC=w?WJ$AOJJX=1G~m&vVIDZ&&YGTk&Yc|7O&^u$9A&sAf^M& zW~PmN?_301)Fq{q&36y({FvaUxWs0k2p9zeTK;F7(KUdq!n{2a-9InZcgJQOjmcYc zkwuI)B~Sawp~e5aaKqA|L{o)+o0|`^)eVmGe22G*9*i3Y4B$(@Gs4)S9)4svwVs2h zdQ90*82y^Y_$+6Rmc+iH%3NkCg90Y0iwi%Vw$_T|afsTZVJuOi+5$yA)K(c{><_O5 zgy{012Z3Jg+3);j1G6q7{$;qq-rQzeHzau5@<#QKG_2-8Cm4B>lZb)cbTXWwX~-R2 z^gxGS^MwVW^P<(vqynmB6ptv_cZKs`^>u_DpxTcgI7PIY8M0?I?Kcgz-F*KT<)A?d z&(eq_iEpC)fk6aTPGqU&j5^%G5Xb~H8T;wuXsR5nCz=ioc!jHR1$Nz#FE}{NWPt5N zW*&`T+XV-|gqFY3X@_Sm**HaNy8?MqSv=7PyxKt1tBsk2D`dZOkC3 zunC$Em~{=ZnjiSf#75;_FRgMga~bvPQY}7S1EfS2Z|%W@U?0N=JgFF9@0{0tIRR+j zy*J;dS9v>Mb5w!wnH_v^pU)MoZY1NXBbg6%MbpaQF&}2_e~DtZkas6^lf}4?pPqLB zFmz#vurhIPw6VHMSbTWJ$ny@90Pm0Fl8lB1tsFrqas37zJ_lmeZq8kRsHR(TD+1p+ zbo}bw)SKQp^N?W)sOexKw*@E>Flu|B?v@8;!$E>$uPdG^{7945?l1A=_T06BiN?Jt z!hLpcjdLHvM?BqL85ATUjB!{!LCLBFCF_2!-%a0&+g9>5ZFla{SK4FAx2cBB=+z^% zm_v=|y(?ZE+Gro!yRvrv-PWES#aD(8?~J*F%;{zQJU;J$cw;GcN#YKN9c1|-?qmUe zE$&g>ILD+17>w0V{Y&C{aE~gIm~L$Pl`e_wEbV1JdSh+ip~fze>BT0I-xI&`pDsmy zPS7^15y!>JiaIv3rIUyq6?tBDZL{bGZdicB1%j4jNPS*P4_6ea;i$M(s&0uKbN);R zmW>t_E?$D+c3i|E8I@^n`6~+QSr&(D!`9eH3(HP&QX7_sQrav0^w!$oLyc7;(}PVS z+16CYjrP@XDVPJezp?G#Z)_X+jcusEvCZ-~w)OnRHnLNSg#%+U)tJi0rO}W!1;*ma z4KJ6Y#Rysla-nJ})D=&KD?#-iZ5H?hF2&}HWbQ#EMf{|Eoi#x!=DbNK8yzQ|=f9Fy zq2~1*+>Jw10_97C^&xDxR76MZcdeKBV9-G%lFt()2IO}1RWxg~9ic@?!%FJ)x-IY% z(|egQ&#bn>MGj*g!$mT}ayp5=W0C{LIX32G5OJ)JKuOkR>sF^COkq^C=uNNq)7A( zsw^%3(WkNVHcB(D3QkU;&Y(U6cDuKco#^@B=WIvcGc6U}k4B{%N5o4BTC&rkUO4-!ZEZmy1NgKeEm!1Y0+aaRLjMy z!Bs;UV6@ixGn42=?>RgQ?pOo~mG7yy^(ZggJ>1C0pV+bq0_rw|_eSS6OP|fpA9>** zj_*XI)~=YEzk@wn(3FQ4elF#gHk}N_o#h1@lb8!7=9EO%yQEx_o2F0?WWR*wYQR7N zmgR@{jt!B&gEGh%RixvKHxCOE=ZqKX2=+fsBQSp6^PLx6Q}-S1HR3 zt^gatxw&a(9{ulS`D}r&GoD&v2URkbNhs;D#8heyfIkQfM838!-XRPGkZhk~CXaIO zM8~Vq93+&$W**)k43s|=)jvk0Lt*SV`>5|rAX;T;^LIYM(vbC2TJ}H~ND~OrkB_%~ zprrp+1&g~9mLbrf8c6zK6k^BOgzFM{< zBC0Ip*bH@qb$K=_T&Guh< zWTO{orev?*4|Y6%-~}zprlp=i@S6wjH{Ih$DdjG%r<2cKg|>y7am^gS4Rz#k<5620 z-qr!}Jk1vB9~hQYM&24b@toL=Wv@c9%upt1cE6B%`tO%4|n zP$#JxiM=Qqsl6x`|7(f8!jGhuK^dW)h9`rR=ovY1NhT|=SrS>+Pt9!3D-U>vR7OI= zzoLmq`8ki3D9%=u%Bl-i#mBI3oDFxw#!AtY3{4zyRR8np_UqLxe0m@}EvQ+~B+oik zy>tSMFpnBDGO*de1fM1~&3q}HPXE|l&<(gU)$Lr!1FaG>5@}=IRDWbr0@)p@H$08> z=-fWY@?I&8lG)H3jj;gw*OOx+$z)`-aXK9%2bAQ!l9=T^5;kxgIz6fZZ1S(D3{nk((lcI}`J`-?Y00!H=9L<4nu!r#E2U73u%;@m_2LJOV_EnqC)<~b z91(`VDxWKvYZkG0s4MX}s>M7M8EnRLAVP?4^H2 zHY*>xwMZtYwfI*`WP&=2W#-1@OO$9p7$%Z}Ck1A&7uM&zS=twI)>;>`HwNWsctDm7 z^Ug$K(u#$+TZ6lo@T`*O44cwwqs~J1jU9Q+J3rs&%Vi5?+5#B$tUi``98HEzuN;rA z+io0NOw=N;}t#^S@rU z{<<2_Pz-1C8*cvR8Vuv$KiBzK1@!vEt=L=yjfj(IEdio|&4=ni&4&M(`Wp?#Q&A?- z76Q=^oNq@L!yIaUt@*1eu$Z#2IP&Fkz`5p9QHib&*P#poT=Xgy#h)NXQhEHtV$epB zt^C6fmg&l7n(4^ej+|zZHo#GHS$@N2F0*JC;*RfzI3H`Am)V!$L*J)V~E?xcSBx`e(-#^^$weluzr0ViMoSS$so~-vg znkTI442QbOf^>Z@a!_e~aPED`uv`wKjUH8`O6Ba+CKXeRH>R>>6wbU=-XU98qRCuQ zro7oC_um0%zO>cSxJWDJbJ;?=4F|SbI#y&zJA?8l-DZhJx~*8VD8>rYdD6Kr`ilQb zyh`}$-&x@^&+DSjCWyjywv5G%prrd}Vb$|CQxCwX2_d&b1o_6RH=U*y?QXP38q0xB@ntKjD^MemR9Z8EZt>Mb7L?iYmgA-_vlx8380?X~hAo3@Wl4U=T_e9hl zOl^SfR@gn=YTu2X<{MR}-%cJBGn5{uldVEEhH7nAd&y){Iz4Z+Hz4LasM;)TZ?HF@ zo^&dMxnwF38@q*w*M1ri>HHt6-a_nmpv&15bIa~TbItC=Fw1VFTs+-abjLQLjy@bXL2p|9+EQw;#%Mx#RzR?DJ${O zVu9i&$Fo^xMbLtFeWc*B z#N$J7^Tx;2_m~wkX??*ijgnP4Tjd_CjmWki&uA88mc@#zFqo(CuChFx?sPd@A2|>B z>rz#xYHUQ8#SKt}Y#yN%!F+S^n9O1s?!n;WCAmTDCl$rtK%}+^?HcZGTwqrX4O2|5 zeal_viAYJ0XEd3MmYb!a2&aUl5*Dd!c}wDFCb^pEP<-SqkyD*K;Zap z`;f8on?xN$ExfY+{B<(XLxXRmYOsBHgVwNvw|p(|Z2obCo6_?$@;vi#=bTw(1wn44dMTOZ<7CHsHF{9@KcEeK)%$%1dJx9qP7_8yg6%R!OalLj8**LX zo++p2mlJ=0mRGy`zkKWD7P)3yUL7D>UMn^}Nd1rJha*~??5+^aTe~Zq>f4-+mY+60 zC*lK%&*!V2<{sBpuzc1OMRTWl+uc3)Cp(XOJL+wZTe}CGYF3M!jEKJG9-g;D?v{?{ zyBEgpiK_-^Zb1M>fUo@aSPh_!g)2{ymEZlRY{D86_MNMa7A6jEH|Dwg*QW{@D&!RR zKULIGHLP$gr3oN*%+yh(tTj{y&x3RS_?jPt>MgStjadhd1+FfzF7!67A6bH@tMw!q zd**gEjG}RDX2c3mt9R5`=XF>WZUjw4gtM!0vcp44Na1E?CgTnn>b;|17f(^QehFey z_F&6XB?%tt2JSk0Fz|CtczU+s&zKJB^%EzVVY^`a^Diwm9V0q$xFUBI#JW?#?B`S# zx67L78oSGu8jt5?wsh$+QG!D>F$JI&{=`>QZKP>!m_=^BjxSWvsEM%BCob7d(9yAQ zVHww|{&D0zD#=Ta`&Jbu6d4+7w{)uWSJw1=d#+3f8*5s22?W_@qCE_Vtv()jWVe zjAzCMYL4NR0le_+_}KH&I1PhB0}R3$vMtZO*QTzmv~hn8!OXmN4JQvDS`Qr)qvfE^IC(Y>bW=eEc&iBOqu%D! z2tUBGKkrccv7pF~!7W8@Gx=offa&#$JnK;V0$H>CGk(Mge?hK2Y#T3)6rphr%-XzB zgp=vrIG829G=T}DB7(l%I@!9C58bFz7~TAGymnJ97ivVU97^8m{o|;ImRCm$z<269 zOwSHa;&ZV%R;47VTynsie|R?^W(L_GV7j1Ajb@u3N#=!_?*({OxV(RL=vj1iD5m`V zD^#N>Cr{;!D8y{4+A%Q&4?V;5iD<1B!{O=Ga+rbs?Oa^7S3nSkt!`FjvE1(wj>=-G zHCF{xxau0YslBCiX#l>-olUR`C#H1i;8*1mtb!F?Jhv07f;D56%80!FPZM3-&w*$P z_Ff3zE4?iiW&Xq1Opnhf$;{G#!7R~WW7r)mXmJ{x00j|z0>%;Ph-6g!i4-B$9;rd} zPlUPvW_{i)%GvC3;*T|xJgGU83aX*w2Gxd|AH%3x1jGDll73qqAM$kVCO%Kyfoy+8 zINh2X2BnVM&A|tKMG3qK#$@{Ji-fOE!X=qr;EKGnaA(Es2h6VJ2Nw)N#U;GRp>8r> z%aUM;Wo*QZ$puGt0!Z7Rr}ygy8H&e&%IsmQ4~#^GSlnZqW0QP~?H`NVopqZV>J9m* zZu=#}p%$)pG)n1er=Qi~uczBIQo?=59`aDRo zF{qej9en9bQ?eYydB+~q{4BBK0C!>7L#n4pc`JGx#QbwSWnR7BUDEizciU=m6W#q9 zj-|0xqu~k#nZ<9Z)2R8|bcieS(h_mU@SP0(*rK=CQp)~#xxxE<3URvs z@iY4w=iK5F2+bfQU;QN1X%U|fY}KqfppJJ}Oent2Ishou`k3|q!G zO{%o!pXru>NR7Yf+*^a?hE(iJt*WWl8q|Md>I?u-4MU5T-!N5T{*uF721F4av356R z;<}4A60~OKonRfZB2*izYDiP3O$V#Hs^&f?9}p(Mx&+6qelP7b{x!G)uXJ50ys_W? zrmUI#69|l70|^x6+bjy6tVDJqcfetmcPUim>|LbDmU$@vb;PNlwxZP)xSGI?%t%HrIxs9zmW-9S zcd)grsWK+lAcJ2Urw2o&?}=Z#sY}yrJS^wI*mX2GSBlL{8m4*m=x_|NLPKa89eCyc zFFAFso@C*fz$!T?tr_25-&YbskjNueJN`NKMsWWI z$R@|(u~&Z1PKPlBGu!kAWoflB4Bb5$D8sGV90EI7}^`$bh8G+K;5{8%ng+*gu^(f*5@CSh- zVBc!Kubx#L6{JW382BF{4BOo+SL(Pg7S4ub*uSAnLV-?Y)VP2Dnsb5(A!t;C@)hbk z8$t!7=S`L;sZ;vnEh?=TAgx!fmv+~WsD;+gt;XxO z)^Q|7)=lH{*6q*ubwX?fG4=}jO18w|^4C({fO0A&dxBpv`FVAS8_UH=Qpckx*$13r zz7I*$HPFC~i{L(X zO&%6a1ag?3I+)#}EMh}o0M#|u5qkSseIod=%mg8_&PHr*Jv`C%;3i?oSbLo{qpguc z?|Oq^-N-ZWw9QU+<~{t>Wt-(OY{zcT_~#q(V@xd-0pVjlURqR4s0MSK!9;9;UzCxX zD4#UMX4y|@{prwn4By^Wj@l(Q)IQKQI7)2rAyOxB&ygk2=#LDB)Er)vmL3bipR(G( zyR3c#pEfFK`s5JnGx|v2P~*p3Q{)M$0k&neWu)P^k^1jkQQ~A(?np)C31y=ByNDzJ z1WDP>Z*pp)g}i8Fas)Tt5P}={0q#X$Pxm%7(79ldxJJwj0v zbb->#zJWQ*^CTBl;^B#vXZ3VLy}YE4c>)OAmrnp8j0Bs9NASSh`dp9KQ#j=~LA>F9 zjB~gsE8yO`BA*>8beH9CnvS)}DZEP4KSze6S)K@|$D;k$hx{zG7O!KZ?6OF{d;Dl#&RQ`defPd4G(z0AI&-3pW2z+pWkE(vGUJ9q~$+| z$lrlmPJj}GXhDnQ9Kt#XRDw)l8T9L9{Z{PACeCci6R_M#b}|kW7g~|>mJL>h0OPoZ zWaFZS^1%ngk4h}VLLneSiM-&23APF>&S3L74zaTO7STSR_#*%cHV|7wog{!4?z6Jp zy*klAYnNBfFzuL^mSz0wH;xV2+tX20H#Cm1F($b3sWA@=v6o!%zU! zv)5{cVS9gkDU9xc_v6UYp|kj*%=7nV(I)}o*MUqp(Vk-|R0c*CHWezNC28SB0qfWC znKD7UDwD3oh|Iud!(GeML9Wp?4bh=^x_1kDL1Mw>@aAkZR7cYeoN87J5eLj{^-^ha zJpefy=5dgalSsMA+$nC{<$Os=5PJ!o4xyDXxUqsn^fBBBy(iU#Z8S|L!K|A*w9teu zd)pv3SIPIKgV;326&#EK7%iujW2YIwX_4ONLzDJK%L@6l%42B%BJe0-YI<|)5vh6xY46A2Nc)P zfUyyf1i!I-MV;j#vJc|D2Wv3}Z)qbh9k=fvZHz_`9Dr^hZ&`$3`?5#?X8f-O;lsA0iyJ69 zkAf>)x?YX%uy~UM|K5qzt)gvcDQE+iA-FKR=irKF-M=Qw%%}nC@EUsYvGOZC7A82D zI~$ok<=Zj3ebT#VDKU;mVz2zxOO5EReSie2 zUE=3iR_zuQg_gqZO1ThU8iMm|-*YROwAZ<(slMj$gi-3RJfQx71L0B{tw`B0+-Ptc zb2($hc`s9D-aLQ$;!fJRj3uLhy^`&cf~>?!cuvqT?o+Q5?GYgt0R~>~#qFC$IiJ2! z>8zHk3Ks~P3s_gL`4G5sBXLTSH5RLF_)+WYa@ZV+!5E2C;CdzLn-^9dr(w3hhyr?F zeTKcLdUrb*m#>TfTs-6Mc(7b8G~KcvR99)MA!$W(1^Tch3r%Pnm)Fygyj*%on^w}U zUT~r{egi^UB{5I;M}4!>@=djI}X=d$s<G+uwl(A*N~&)8>Ry`2$&EcSbJDmf6FCbqQpdTf9c2ZUuy*%`M=zhq z)`F9m%wX|8mfEyHoSMR?+l;mMH`bHsa&GpjSTV{gX04@$vJ|z&#o9L5_+JkatSw`5 zD1ILej#48=z=t6BXqO}*qKjmahweuWuDVu4zxvNC>{U~*u(P13vj4`$4vs|K=+ZGZ zpC*2hGep!x*6se%=MWd!<{F60@r%D!rX1QeXKIXKnEh3?ygK^G{(4$YW(9ChqbuLf z_1mtUh7$<5Zds0-JBP7Q7%c3{&9=e7RrOxWj z(_{I&*BYrjI^(mT8+9mx2=7GJ1T8}Mb&+my_I1nVlikdH0q(*(GvI4`$ngDfx8+N^ zBHYBXrdL~*uPivJz1Rg0qZfS^kn$^_WD<&z%V!() zxWws9K^kwYo0yw6H&aDh2jiABsiB(sO4#SPEQ&+Atc!MdT#x6Q1%JJd{J zDxk)1y_lmV-;wfcJ0Ch~Tn75y8=!gE+h}j5mp!TygksE@8@ZWXscW7+rOVb zC74Y$>%SZn>6#tt)jcnx&2s##w#GNfx)m~*_K2+qsA>oK!QgO&#nHx;CnqSZS#w!T zj!2JO0sw@CTbUNbA#8!zuaDXo#i=Zux$8c}s)`I=Z_#Al_H3-5{VM~QL%^+9yugLK zCif8|9@ixjab1U5Io%pJ1oS^V%4`pN5hu5B18q71u-r&-4-cQm4eaO4LduES1^QK?*r}_ z4wW12zMIfIz48W*#8X2GqnIer43c4<57$qNrfT8M9YJU5u*?tYbKzkW&NTLraN@;G z#T(n=Sx~%xCsD$)!6N#NyagI2Mg@T!q6L-hC#cBu;-5k9eNzKCg0OycKxgMS6;7qMoh^w=HoReNFw!KEzz~!o+sgW5(RfU}$&p z1xK-K;sbRF~V3j4FyZ6^`vlsa z*P%%mIyOcQLKiY_mJ%(pB&oL0LvfwOS6b=uImNZ|{gV;l%Dr+V2mKQO-9Dyss4mDmH2euLoa{3UeEgTIEW`!bGB-YIflDH&6LfR{BZQC z4h=zv&~yUryT4)bGq?>Wq%FqlnA5455?7P(o9Xq=j4$YZ+8lQQczz5d&>3-0>xUJp z0dzJa)c;1rXyW=!#XhUyklmDY?1NpPq|5R_8f}kvj?wQOiy}g@_6M2nZu$eXIqKBw zx$>8kaA^}#EFhQ{{2TjgGwn$TQ};FZ10>G8E!8>h26J}CdXwGkAOi0g8y)uqW&h+n zGSTt;2ppp^T4Bu~`=aDbHWW{nml5&R2=x5PMG+7C98MW;aG+*j*>>}{uo2zMJOlJ| z2CHvw{xti>QsY0>EFuQy%;?P@Db^NQ= zAuz5nwKOlw$V~a))JYfrc9l)iPh5Wt;I#h()bPLl3;%zE8d%xsnEyXeLxd5#gZGTC zeKt(R615|sVQO{t`iVB!C-C|;Es3O*BkBL`;m`LpKjf-qwxvNjP`ey_~CEC ztHg-U$HWqi_s7xm*~vzZ?y1As``Zoc%Bv%4i%6d??~nV3DrR;C4DEI>s^!4LM2|M_ z&kMECfkBub``a5YP50SYaLNn|7iwFdsG_HR_G2(AW_Ez*S^ZtL(d#s17g{*v87)6X zQ!;M>%uJ5Pjgdh;vIj2AVbc~vkAu-TOMVJV`lednh=MJ3VO1AtTyUhRXSmVpPs#UJ z$#a(F7thZpGrH-D@h4IvGrV!*p0LQwK--Gq!8nScYFbz(?-M=G#6r~Z5hTGtz94=H zP4K?88nd%5<;`NwzW=tB8C1tpG*Exz!NK&Tvs?FGlTycwx62Qz6)8Gb!Mt@Oxoe9a{msTnt|2fi)gK_$NLd>>hg6@;Xfj zz^^Vo&ueTF%l_cHZ1)LXYC+hc+fWz010;pr&4)I#zUH!0r*41KeG2u!z$O`XoDWsM6SpN&Ha4E^(l@#zgrw%1FC>nhe#|z`5T&c;Mz-W3o>`o`ExY3jCWY@_u$(UGmDSFgJN?Ud8I%C z*gNx6_ZI?)21Idz+WTQe9sl=|Z40!%^X#}1@;nndxWQ732@e<%f&0+L9I)A9s~(oK z9xf-Ev+5^h%W1p~5|Q)#Fv8m$fHIg1bx<9tc3}60H31omJMqW2Me8+vEX-ab@Cg^f zae_-%H&eCdj?RnN7e(u4G->K-&6B3LV7mW@v2TpdBYN+jidA zn%H_{+fF7n=j1!<{N=gM;n&TE}ju^9(XEgwU_y~Zg@ek(}~tGj<~rq++~hk)_q z=OB82v%!2bV=>ZoE5l*BDiXKe1EQaYo)++e{k$z`S`4HcAAgW$>^Ju;o(IgZmxA*BRjqnxM=Xksx#VcNS~srC1abS<&y>o7>~tpSxx?^p1_Ae6)mQvJ*%RmN6dFJtmKL@@}qh z%b!_KI7{|M5V{$)zb%>$OyXA>m2o({^ufrl%=mbK?|3LnaE5%ICv4e^_1tr$uZ>u6 z^>tMTW5ea$HKrAKjHPeG5WTjw#fHeHg4v&tB;CfBK@-Deghd9r+WCh z#*gZN27xZ`@}Du>bBYgveV|(w^lwSjN4jv&M%QKBgP7U#bF%E@WxF$rXXBF-;1on- za+ckh$3M+CTi?9ty0*s|TJSA1A}b7@Uv4iq7bjFC>nXNjyGYUgp>c_^o*c@0F#UKk zJ2ub^*HUi#jPqvrXyh9@yB@uJ-AOtG9=GG9EbMjftRr|W2>Uyvb@V1lxy1|jnpfHu z+}3r9#gTIN9!6TS=j`wjNzOrzjmEyVbK)gMzD~=`LU|*N$lupr-4B(_2=2(xbLhP= z+M5&pXSU#0_fYsw_Q7cTN6&uRl$5uQ&*(x{W=VePp=k zUX19Mm_e*ZRz^(2UDHfwIPnZY&CK-RzTOy4*DmpU1*V4u#a>?j>R%lb(%Ue^h0MO2 zH!ZQKZd)5X&A_Clvtg=vLB$Fq{Sh9IEyN)c9os}L1}K$cX1p`AsxVcs_RnC?5DrdM zT3`}P%-Yts_b4M3?MZ{jGZ~DQ9%X3h)EYI8V8FXzGzn?TAEP|Xc!u+F)YZ{to5MJ; z?QMuouuQ~C`)LCx#nm2Frk9~-XPpprl&NfK{BsyagE_~jZ*Kv8uhyKgMy7@J5SPXU z9mT=Rt@T$sQ{Trh!tyqYVroyHn%+oXr{T=pajkIVY)jwnpX>Yk)E|_A(0@)EToJ`G zg*prjpp%~V<-?X-n5GRJSx}TzKAnEan^XXyW-d zrbTTJ&M4T~j(yU*o1baECtdscZ)@XKd=g}SE#^r(+j&URLn+E==k~4Ic!g2F*2MNg zne+JFyFZN_UscICJIc)@I_p}0gfAUukXhI_$fkHx_)Y}(T0?!=p_J3k%o@gA5d)0k z(9N{@yJMLBchcrRht3zWOf=kb!cghSLZQVNk5@fkiy@w20t)yVd^vfymc5Marx;Gx z+y8+32dr#-jYSUl3!=E&_dbx$t!;L&P;a>G_2NSz@7woo8nqi$-o8Czdb`MqFbNF1 zFvn5~TCq9t?U^VWO)pwzUcV2>pJed;b~dT53A~nBKFYwI@=n4mj^1vUh-P>w>z1bu zmylfs<}R-(yytSG>SyLqk?mNJn+1~dS+An-w2UOZ%H@xBZX0FOnEsq6y1g=Hm}oOG zs--q09eU-?yGpzAU@WBQM4-#c5p}@8iRi*%NPyCerC8iI7Ah1wpf<@@^qAwi69`eA zoYTk?0;eI{RMfGt`gGFnL7a5!PE!MGlC}2le?hUjke58pw8zPG+LfK|sqOOWiMzB+ zjp8gcJCiIO<#qUA1Fqpo)`F_3Mx21MT7Y-I*3R02RoZ=l(HZeYw-)CXq{i+Qu*Vq| zZ_xx>?1`eE!it)lveM{0)E0*MNa~tWDgT@vq$L^|TU)ww~BrRE5Lq&`x z_4$LX0OLU{|82_X|O6T&u=DY)K(ILtO=qZ((97N~vhIiB7pGko4* z=>RiDE$!TJ9G#Mnc0^8e_A>+5s)-g+x2N6-*JM3CdAfJ^Jl(AT4HgmT%JmHPD~jZ9 z$^<62uLY|mXx+Uq$*;-XJeg$3%l&bg)Ko?;{sogrgt>lb)Fv%(SmiYk{vmw8EgV5` z^2rA-<8eCIhzf^agonW4F(Ez88)53}@iKd7!bwoFfiW^5FX@FuLJrWdQTwTg2~CNQ zbCd@UibT~`GCn|a{d*mS*@PvQ5*Rg5Jm16~ol)^njYL)Attc@Zi<3xHL8>#5yRcO- ze3mxL`N9~}_|AR9QXI&FXb4`ydI0~+afBFy6M}B`JFuXDC(f^E5tG;#-l#~Q9jx6l zE0Sa3GIANI^GFpxQ>)ympf#qea;ZvTkvHsgFLN5Yel&pqlNBP-daYgjHimUn3bsB;+-1xHky$8_5-NFFW2$|(}m~b z$(V#ue8S-dq4OHC-AGb$=_p{d2zGaGhX9 z-vh|x_i0?krluaN>N3^oenm{AmZ)&0`%e<(wHF$Rber^_sar5g9C$0r0d1`3&Niw#8kaw#`t;tyn*e3L!EOilagC0qcPSQujFu<;(a8qGP*W50NO!O zsCGe6v>+nNSczk2EN-(gRp?q7D8Y~Pm9*9d{`NJ3pm-!ekU2NS%~-@^=R@rMEVxN& zSD4(2Rq#!pY1QRz2RuvE4Do^(MPj$*^)OE5cWW#`00nWjay3vZkAA zfo`!v0@-%vsaZ9F&8*`yizY|!nSQ2Pag8Loky?P<-+q9r-+qO$Wd2WvvUeA4tYy`) z7I!$E3v4Y&G7D?K0E(VORoTQU1-8`MfrS#@D9wd?QG&g=c_Zbsr2Uy~LTW$2xuj3`+55_ERHQRtr zK}SNA2FA`@2GP!|1}%L*SD(=#U;5E;ykg+6_$R*at*VX#{D?#Eo#7vz3FVNE66~xm zdtvRhZYX`p{7(BtMw`p4^dYnH4Ibr>wKdY=nP&ds{G(ii3Wfo6di7E#0#q}{-0l(c zD%Zpb^$MX~YT4zFX}wxmZ)$Igu@)Sb@D}+MiUl19kJ_0IW>BJ9*;&P#_Qt<&I@{G% z@S`o%`M9*YQMHBOjfOw|SaTI|&bkf`>75txxC9Am-Dc>#(QOXa2s~F}+bm*L?q zX2Sa6S1zjPz)S1oF~a(p^kS*Izsf2?ZlHZosW7;vLino(2!$D#=l-CfT~$nmz(sUZ zVH~HoGkFc(X#6;kXfB>3(aLd)Yvmq^|%h%+#R$b^mFMXzL$x)*fLrVI`$nrTD?{}GwD&*^40XBW&o0U1bS1N^7)(I|)rx$LDAb-P5Q1DSi z6=()>zqQ6j;zoWg>RhNe?I0pKey7L{AAH2L^g23Sp`YfJI4w&iB_c)tIf~1sz(Lx9 zfMXURBDya9N2DdDFDwfWw4R!y*`$-85EapIyW)uj?{8R3m?c|3w*=GDI6OAH1LCpZ z5xCuaDa;kbJk;og7U*+MC0^WzFs#46Y?a-{!I3-J`vF&p0b;bjLo1OqS6hrf;Ikyt z-t1#x1IM5K)|(G$q7aT)rx&P75jW7^LY=rIvy~p4e^23>ege*C6BER40R>%4fsMxe zNQK%Zx4Kv?3p1r-T>SV4{o5;>!r={Zpi40VS20I6@8~!rgu!M^vZ90VA z?m@|xq!&|csZO^;@4?`XD=xf*=axQq81SqBn z;R^>~0eap`w& z_n{ug8ZbBU*VCWkR6E4|sCK;rb3@b#hL(8^D086>k_>EKdIV_oiI%;EQMPe?tZe8L z@lM^mjTV~|dTFoQrj?pk1h&c1rNLVfc;;P)jD! z_;M<5RV|v(@^cHx&dxC|G$E)U!}%+RdzS9y!4B{D~HL3SCEg&%4_6A5Sa>}gDW{3^k{v$C`$*;8Zi zWvqqtJTyf-p@^On!aUYq4G63llTt96cF=e(n@$ zYp%aqbzT_VeNiawA3YW**B!wyT(0s2qd2jSTFQglkyYg!kKz^L+(?1kDM9rwqZnv! zozt^5l}CFxM_VTc0tjl4J~~dJxMt*GFcF&L0D`6@Sv@_SMOd|8zUoSpMvZ3y)gl`| zt7ehLq&Nr?R4wpKFtm1JRYATZeA-kC2H3)?@78`+>42G}_F`aK(!v$g3x;a(u!Ncb z1A{mZRSol`#QO`R0p%z?+s16l3N!|Gh!XwWnYy@s%uYW+;6nHB-)le)pn7tO3tA6$)~>h0&}MS z`K48ByO09i`F?2yK01q4?JHOYU_jJ#TZikpf2z5z-NDwBf~dK6JziQ1SD$-GZ@i_! zDm$cDab!wCR-Y@$ZoULm-rI{+CPxTilm?WUhF zFo2l1;@qY%ia0S8+II2{Br@ni-rBIi;Q|wSOe2B~kmD^i&lA&=60zYS%57YEDoaWW zlyMzMC|eI~88qsFPZEe>KuOw$#4(u&DA5nh5`^KXyku+>v5!bS40sz_6M;Wjb{`l* zHE${{+b&p3;MHn`&-+mP!>KUg3nc(i!w|c0FG=#-$xTQF?$h_4GSn*tOH&o=&J>?A zFqTM=+yTX0Vv%rjm2dhXC~og@iAW`k>F`I>`9C6xmi@Q(li8)w;u~=lc z)vxdx!r>s}&p|p5w?|&>n}H;;-8p?6#baZvWX*FloxUDo7r&6qmf-z@&v*{jwS~Z^ z1uxvi?y^eDGP=ETfk`f$qUK^`tk9lbn%h{u4EOQog?|n&2}s3$K2aqDm4t~!rh9^P z9*%vED8p^!a^nvMO!=>*PMFuSd@SnB%cTe@u$aQi(f$8uH(w8VpVI zX^}RZaA*fc5S%S71jhGSn#CHF<~c87s@pjP4H&qcIH0J7Ng5Ty)|8P1_9~qh1eBTQ z;lMdv2}I#!kTl9R-IUG{Uo@96@m}1%kuq&skW$RBiRV48HZ_G5EalT^*=$$~dI|~N zpcWiWa}BzRg(P*kLYtC8p>1h_$cD6V=%3UemKtid<5Kiy|3XaWe8`PJxjx{rLm%!* zeZO6xaQzK6+)W5I%L5JugV&0JXisr1OUmn&l0uYN4SI?Zf;2VN@G7UR`6bTqSgI4G z)nbSX{*w^%dN-Ft3KNm0Sp#i!F_wfG&6gquU^Wl=( z^t7GRrO6;!2mV?_M1Gcl{#CwVFkf)+kU4D5M*jXieAk2?Yn1lPi7ps0G!hgPE*%r2 zrge($%cMJ!RA!brqpqqDNS9h*5LCzlej8{gV~gjS`K_SK4SP!@Yxb~TOO26O;W^pj z>_w-4$9suV&v9WQ9sNE4;ZET{GjuMe#D!ic{AP4Dqyz%iqlAv&qJnd0AiSFGT0n1)C@aOhAJKN`U~zBKF2#cj*s zy4rb3&4&=w;6QS7KCTkXztycnRGe(y8-h{SZ} znIp+3@+lh5k!#LCD;Un_Z_Lzt_O1O|(s%9?mb zQ4Oc^1F1w~Qz)v!?iX|FWhrqK0^@ReScqE}+fdUt9||P(of|ySD;%qZ)N_JS5gIj% z(Q2Ym(S0s)q1`nC^CfP+zFpk9ZA|*QFpW=0io%O~^&7YHItm)4)|>!A>aABaQvCOT zp*;$YL}R3$s3j=bu3!4LAW*_xh?r;zroazR9r^{NTZKh_mNPCDNVigFFsIpS`FGQ| zrS-J8uxa@SVjw^(eE3+xjA{jSv4!xZ&fb#T=?@G=Q&pkz>WNjPt=^JY6%0jUDQc6q z291lClDlH(CX z-SOXq>jhsBBtnZkBty%_V1}zv ztjhn_FfhPo4%#umUf{qUDM1VSK~&J&&jh$+im{|bFh0*~Fkb&gRTQ3M_dr~H%@(Sg50afXJCb?*xg56I7VMyh{dtJt zQZ7?3@QdM$U;7$?SOc0au^88aBWuyc=g!vW;hV+ZRm*86h zF_h^7AIR8Daw|}vpn)Mh;e|PyI&uHgK5b&N#-W%(yZ6WlNv|U6!E)c5*fV zK?z<_#p-q$Fe*omH1nkaBca3R4*1*iiT6Vgq<;*+i}Kg>ORVVwfcmw6h1c8ikec7T zr;K|Ikqb4$>nxzaZkqz4nZbB>+R|$0E z%(maRH@Sqb5AqOV`3pf$OPC-N9^11Q;V7$96$#~LF#1AiQRr<{U%kL+Sht$662ReJ!xi~R%FqLm5yZ52^ z?L=TRLY(*q7G`{5`F}ggIsQM>ns9P3vHYKo@~t?NcH5r1GOiU+I_VOz-vK`i0A(91 z9GGL^GW+a7df?k#f+z`Z#U;wD>|14{k)YQqO)g}&*J$KQWe5go{|KJyM~PzISUs7j z3H1FtKktuqm>~8n{((Vw{~WT>ssDQU?6v!MYd@&7^J=os?VhtAy z%xQ*V_z?MXr}yi1HL~~H;eC*Q`|{{-2Lru^An9@iLilXYNh|vKI3xLb^Iq3B)4Tcg zf{G+L%IM$OK9I?a5|?1Z`L>Vn_al5AJ6Nj0fPcP7`VLi7WojMbmMlayM=l0L< z<8Fu3yjU0kC$nAu>;5Hq7|U-zx}}vrH-n<4n;o->{BP_A%8bb^B%OfZI7;Y~CLxJ+ zP8%K7W5Q%8QNkQhr;C-Dd+BQUSx$$E!AwfgSNj+}_I}(rr_Yd8lwt}o z6Te6Zi@+RiX_SLl9=toi#pZB6kK%GcRbPz{J?2Qc>RRcAFuHa$>FN-TAPRljH1EaO!(RGu?>m zhq+_Ti&ue zv3NI~Uq^!`0$ZX56F3pt;zRt_iJ&k`JeL+76x8a&92{8MN=S;rVD-%&t(5H(P8<8D z%rNTH+WU2X&ONmi8w}OB$3l3*GVDY-{{~a|7jUi#f{aZp-oooa4QiGt!R}`N7qt+b zUJ10B2p(>19dq2b9ps5WYiYBGI^MG|7HS@s?IVIeMK1_cu>U6dn&--JHPV1OdyV?t z*?384Rlymy5a3Z4-cfI(v<-g_-($p*d~d%i1}DQ(HWpfdc6p;z#fA_IKSgcp1*F%h#$FPy6uo-TvE1)g*e zz)Y{Q*;ihTX1yTTc1m@@>(hDbfsE82^kYwsbF9R^sEn?&Y_*c-#)(UHhBJ}Av?jtx zJG^c#M{+0lUsJ$^pKw@MX%}{Jr{hT@;BmzZBh63h*| zM#CjDits^dn~$zZiVAO(C<0(MGO-2xzXBoWE3VzN@1X1TZH^DSt{v6CDfeJN4IK<7 zI1MuH%ZZuW?2Y!BTQsb43`P3zgS5YwoHmG+aMfxxLnV`+%WG_KY^M~-3kWcM+~4B? z@UNfT{PEq>r^>vf%s}uJd@PnLe)ko{E{{NucrH|5`#S3{HX)iwQogy2i(l+hfHAGz z--g01p4P4k@UyhA78A#K5_Luh?vW;SSvMYJAL0*nJwC|}xxp?jn>l)K%DHV{yh!Kl zK>+vBn_H4sfrbEV8lhM@G^~9q|AoDArx1Q7xAZUh8^5l2TYpNI`f9Fo z@;JWRM=v(<|Bk7kV1+~`h)h2ch}Gc6))EQq6gFIYcoG#}o0mOtxLzN;k@M${^4*~b zE3l_&#u&0KRZA4r-q)5X60P-nnFr%y^W^@tY}Do;s&^p632_YC}oV(7XsHwh?*FZRKONuH{}psMt(F*FDT zy}4Oa8X@;4=_y{c{RxuaK4_Hy#B5>DMq!M4XmZGW8Fk9xq1?8c+k2*p=P5*zvfe#* zx=RtviM{b{Cme~8&n3d#%QPkjdSwTSOo z4Su^}Y4%q8^YrufTgI*Jxs?$jy_LP0=9&8$C7uHc-=a+chhZxPeU-#L!r6WKm&yFC> zqBuvkK6U&7DcZ50#f5#)G6|@|%L=T=*Z@Ly1f*2C z2-B1)k*II0s}}n-)7E?5uWant`*-4mM}&Vd4)#gdq*|Rh_-QEyAp`LFZwHJHmA_MK z5ZVfAJz|QmnATuNtH{qVjzz&=wHQxg3a(a|koI}u(>or3n~$R`1iuHiNh)8Ul2;Y0 zo9n;Y_8}TwjT81R#izur;N1|ColGhLs5pEA9*uZxTE!61ge`1L8fGCVdz>VV;)WLc zW=Ro^0e21tA$QQLvzOT-gDikX%7~`dATOB-W>I2TuAtH@EwW?~&kV}629#V^mw?n) z=u8CUEMRyYX8;S-J$%p)qo>UXcfsve?i4>RZqtVi7kg?mIeD2Vp zxa}bo6R=3o!tvi?(7)?hr&z+sI#bJAKrL6YKu}X9ofIE0WZPs~xw@~Ixx=9Not!55 zmlHS8(Xipe&B%lU$%Y++!gRIRU=df>>m!*8Z`Z`>FG9k&oTreHOUX;-pZ)K5@1H1k+DG}AP@;(BE0EqL`C zs@!hwg|q6vjx_#8sj^OiQ%8U$yQvhh-jJM6cs%y`FQlxF|Ynu~uF` z(@t83&N%(MhTU|lwOpY`4PEirY8@%rhK@X=65i8Y4bMhY*=JAkfjC5|RXDK}EuKxP zDOU~DVN4J-S1b_auvu-I;4^-j1tnuz(!WhABkS#oW;HKrNVAY7A0<%@Zwn-LN1m$m zK*7$tEK23-0c{Hy)~^y!5D+JEaeBU*F^A1#r-P~nMP$rRag%C9v>~QJa|Z> zZKOgusVTzW&c)Fkgf`Q>q_!9l$j7-g?{^$b?p@H5>G3<~l6dhe+0Lf^+=A>d6Vkn)%-@ZuB@cD~xI_vMjXykqzU-!{q_v_VOWaFmz zd9WFky5a|{Zg7bJH-Onid>C>8`@q2{0|gh?ZH=kM$P9~QAtU(rri=;7(>G0bCEjGM zkO&>zF=c)E=OaM7aS;dGCA{zB!tsc$5k^)vVd2KXfIWEl zmr5g)MPFs=fLyLA@u?L!)i2!?II1U*qk{|E#-L@F#`NVQ6K&&%aik4C%4k~z*=2r@ ze7?d+%ezdHsbgKSC-$4^8yq+=<``K@xUQ*p(e?BXMe+8xzsQG1o`lW}txwUWwpRD)%)lO5($!E`6%7cy;we9D5>!oQ_ZL589&JE<8iCFewTGmp1jOxN(fgJN$-@#Ne=QF{L&awR?1OKa(az++@++Ok zm=I57FLS~~K}ju>YNWMUJ~#Gv}u$|EP<@Q1QYqYyY= z`(d)|2qp#mvJUp>Im<|q5YJAE&2*ucV3{oBuR=6OD3Yy~mCQEEZsl0-FW~srCoiF7 zP1X&=99oQ3>4(rvO98;%e|_30A~YD{f#pje0=_-kLMUYKEyo_)&RZS@Z9Put2Hl44 zbEZL@L3(iTr=|75dT_L-r3NIPT0)F-NM4a{v(he5|6Mc(>lLxiN;d}+F7TX|{t3|g z=k`bQTI{tLSI*NeKjZFZI$!{7xKbpR0X>vK*8?s*B?H4i)pa*=-be8a!E2m#!4s_e zF!PKl{y5XRw}6m{y0$#sL9#ojOdUlLWvm6afM_I+Z|*TT2bm4fxC+`n zW_quuO+$c;blyIKgQCx?#&*BZ~qIm{g+?q#%+;4ip^7@y;=Fe8G= zz>KnC9pbB=4VvXKT7?{-XEE+f!Kn9OL(S!@0*av&C6>#IV;bbOGi!_#a6GU=okAE` zE?J%+_Bt^4BO8^JkFr4+I_g0-`_dYRPl{@~x3x=^9!du)K$=_r@+yV zCn^PRwgcP1e~v(cFx%Y{EF8bYQNIH??p!x8zL+j=!p{)?Q;eSYOZ$vA^Y?tWZwIz! zkmwll>#c2Y%Zn1oxa0r~ejiFHbB98wpi;x|aw()rIU7*+C>g2_sHy~)PdSd3GQSaB z@0Xu5)50dFq z_!rdeXR`3JuT|zWn2GQDy44=SSO--z5nG~Vd_U{Y3#$mqb1B(Odr=lCnhTFOI`)=l zkHh04*88f+uY7U45Kzh?Gjb!J)m{XAm%=c>)hXsZ_koB)krcszgm-fh9(%?)XC#>4hZMn1oWGF1oU$45F{Gp5yRt>J^$vH8{YH0FE!FaD zg*v}Nx`7(+6-yLbQ@gFsN=xfbSKf1KMGJWc+H=`~rR}9f6#2!}ES6HcquX}}I`{nn zlh?!c6#A06-nvi)ANIP<3LzpX44bjiIC>1N&XUxLRJgqQbU3>2bdX042_;`?`hRqQ zoS7={uH$K5KhF}ad!B*MJ#HvCVz7$p=ZCUxj~g?5Qe%n`}c15 zh2Gt!3bwBMPy}2Yy?5gQ9K|tYz=NW@pDJZzEp>_^qaXo}?CIGVkm?MiWaJotmh*ZV zK8mGIL@A(54f~KT(Kl1}v##xKrP^y^<@rjs-S3)u)yH3@AF8o3wYrn@$|Xv2RoI1U zE>#);#k{Hz(V7Hx*hH=VI#kZzmJT?cRAKcxItv}eYBqG0rAj0k0*;~kOd-n(crq6X z*~{2kc!t>}9LpmyjpzL>9RDbYF3H8C*0aN!Q#UY5Ep}`wtp$8!r*P$UntwcbwYaau ze>(89rhhKIwWCPNHo0EPs=t@|`k%q8(5<$m!g@O(YE4M?t08}i2)QdEf7Tkin*kd5 z|BPQ|0^PvDi86+cG0q8`>_B6y5UR$l)l~a1o@UcAIkx_cC3R9E{5vuly zY*-yvp>|6eqsq2qz z2t$ZUsL^9w)~_Sbb2oZS3mboG`wUoyU&z{ty)7bw{IE5Xu@3!;1qZayf(EagjvfV4 zU;x+=Ea#22M6-#_0URn;xQ1Gyb$~yO@F`IkuVX;J?us-}tIw`;=CM$4eimii=~!;4 zp8h^>m0{_GY@}Vb72zu}u}YSzJ6I?0qSk6B1gFt~z%-9OKP=%him_5eiH_Rt0CrjW z4n(S_Uq=fUvYI0H<#d4OGMlQnoG4Qc+P}^!%j=$sZZ&_@2xpIq`AR1gUsIA^9C|9T zj|z2tr;_1kKaZZ$NBx3MUq*`sRfag-j;yI^Z#C`i)ltQm(sUA}XJzi4*0NEtxDG&b zUJ#G=+4R4hWe&&$4$0cK=g6*s$76V7jr<@ZUel964pA!$kTKl&p-&A`aL%C3Es0=4 z_Eh`Ad&HptN3V>=KphKPlwD^58u|D$p+lnQKFfWS?r}2rJ>KA`WieuTPOId#3z?Lv z)NtI;LmtcJg+c_1HuzWH{ghV)@={UeUzrFJGU2G=g{kU4&=c8#7qYN!d_3q(Vc3=P z$v9G%O@tlST{UWhPp?Gw?_0D2WXvGgNN75A;dywDA6KfL##WolH!cZnEk$RCg!1}g zJ2M z4x^oqbyoJJt!r%OuBhX!K&pGxoORXsf4v(+NmY#X%A$N0M%S&NJNgF&tM5LUh&SFU z+3ycu8*5{swFA%VrFs@~^ATH&XgK*bOPoX%4SBUjq5A$xc8T)UI>%H2NA4SduR3RR zPex78nZIWbJLjY*z*saZp`WrR5-eXJYL(g1AkFR0+52mIY6mN&8M7KR|+K#sw*Q(4DeS~IOOkJ!& zFCgHfBNlVv-hFcY{@r*VOyZpDdaIu#(`n`XoRk zkdT$}`&3nEX|yrssHBD+;RwI}2vl#eo8ewZH|RCLfF4@cM9uA0b%b>=M7pzduU`no ziw?A!rEWRG+EVqCS2u@=w}SD4Cf-WzG%9dMakyJNP~JUvM=h9l>Q#2Qv5sIShL}(Q z$!~*kUNFZ_srMI==mbxqcB9;3Yc*Os|HV-A8$i%CP0ntHhuL=O8#6qK8%=UD+TW7}UB)~0^CzfuWSD5-pvl3y5JV;X1U;Q z)#8AbyiU1ub;Dja-eeB0d;jg`l{!dQDr3Qb!YtG>pI6$EjChGujCI^tXy4hSn@Vao?VNbZ{^kp) zpyfDGj|N9m47g^E83_D>Pa4+@aVbP4JG!5v5qbc8yc|@5b;v*_iE4hnb%@#^`Q05` zuauf3>Vx<4Y`98?m-wmacal7gj2AW+ow=e=t`)j!b}$VN{4NqA;_$t;LEe{(xqG)P zjTb^sRqI&9RG@asiW7n zLCX2tDlWTPTsH{@9!%H}Yi!QF44grK3ICl+Vbrb$%Ll9ezBG?sXkGEO6K5sB5qjf- zrS`+xg?HIcXM}w{Ki`qyyNjw~ZWdT-jmzVw{!G*9{sHg`H90sLHnx;GJ$^9Cw591> zh0_E|r&;?nQ0;XLr^LfpRo@a@?Xm_1%@7rbCsKX=QvF3>S>dS3=D4LqQ3l~LL)4RK z9{V+VUwx3tJ@eLE+?XcyKX`uGelq>EH?o4`<751PE|KP9W&Ynizf-vzab#_YVb>Sb zcV3_iWWkbs8bS*THP(1wA0SQE^qBPE%RPeiFnRlwO&w*(lMN6S01BGqaIQodzj38B zr`PM*aDlIq-TZOQ)cM=XwvAr95f6-N!MB}dFW-b%O`N)|+jsw+uP>reLHmClnyIe! z3}s4rA5}Xql*ztqQ3#Ix9XgL~`SEXi&-(WMUzu_G|E`~o(l_$+KMV(MCj{*PtyB0W z@hD9K|MBl)$?Bg8#_NAQr=>nIl$;{_e%$Gg>a+3V%Eo_hC1m4;tv^dzC}ic;77oBC zfU%0Sc;kvmc-;U>^&U1woEb#Iou%xgA{4~sC$W}?(K4sNrKsxTuYSmf7uOVnV7Rq> zhOx)%vbx#rp+=`<6DXdx3Hl%u{T$Iy@Kxu2!f@<;h3 z&&4;pJS|(lQT-9AcFR(?*7M^iRp|Ffix72`g@nzQNmEhF@8>E4-&dBm{a9p|MyWZN z_hifSe{g10%T|EXZ$=2H+?7A&F_C6&_fGDQ^H&^I;aP4!Vma~{P_R5gI5_hK)jI(R zxRwtOvpg0f?xYm!u3G+?F=&%k1nJF{Jm{pB>CI32%}*sQ&zC!eU)O}qPiofodYqll zilx;jL63v8o|jEHc2~`CUL0nRtL(2WCD^JC(tViMXuB|-75~}k>#OqwQjY!(TWe~;xl3^FOS8C zn+LD9Ce=qX>ep>-!`!TtkB7Ks+wYc2aOXwW@d+>a>S~!`^Ghp z9GX%ct1V`0uipZP_+tG*r7I(aX|GR&?+Qat=^Ja_R`u;tSt>p~+gXD3I`#6P5_PAZw z{TNR#>M@*})8a@eUccgd$x1`8vTKujjy1#-?k7K!abcV6ZyTHRgFHEkgDzOBLR5qn zH`lT9W!}XhCSAcbpNdSJZ}0cc^%sk3OQD=o;a9EQ`8Z>EdtjX$>Gp2$axiinGcwfm z_C!*!e+S;m2<{POFKWCm&G;jlz|)q17@Dp8P$8vJ+vHLh;GR1FPkG~%v_K;FWV%3d z7T>iVN#U}tw(%706S>V`Isof@xhFkuK*9a~q=SVCI5`m+FPr?HgE*xjxY8haqzskT z-aLL{Y3$r<8ul;6q(g1;6T(>Y((h+!`aqsgWPCzmHk^g-SnMm%la0n21v}Is!rO(^ zu8ME)*_Mj3>KL7aA|Kh_VGRH6aCl}r#4a7U`?k*XcN+(uB%_Xo=wdhgLpA zb~s^C$7C)Rt7{@3J#D>o;+2dG8S_&4&tf`xp0i8ETPW#pfp;i>R$Hf5q@DOXhr(Fs z>GFkNevCl;+!0=9&UfzOq#5_J?rXnaOg?*|2pI>Kn(e&cai)=ku)p$n9)8+kB6wfl9ix$6whNSxk;2hfh#;%JA7X zP4mwXY`;9(zA`HHWdEx?5f?wa&yo^ge$;FXyj5&B%}X-ryR*u~>-{JwljzTIN~@s9 zMWC41e-r0>*1+2G2LHD-YPg_6N25*T?{jmO81waS&^d; zXMHfx&xYgRSTk)b$KKBw^|UhUwWHv3_t7>y zNz2!lNupHB%ky5+_yxIlgwp!SWF)&vMxNs4r8&_FjblE=5W;%8wL^<@YZo<5S=CZm zS~}-7H_bW136ZDAt3vZMKu!)?aDBwoai2}Yw!{%qCBUy|Je5vi``G1IpyEjZ+YyK= zmS%gcnl2uWYn)WJ4xT2jvdQ!Y$QA<&QWK!LvY^~~KYNlmijF0{1~L^(bF6lGD^|IL zdejHu9z$_@6Q2gFK9_n?eumQ#vRy$(0*H1pkTr~08oOURkL76dwM~cS}uTe;k+<$S zYpha;;$`r>y2v~gI$IS;fxoO#YAd(*9SLqAyIWsB@*PxxR4C9J^;J*d^iBK{UGt6V;UdQrI3+2y07r zSQB!)-L*}yyf}j4e(O0I@TQg5;$3;x8ga0SIPDW`?@7LS*0&b7tf9R4FUGzpI6Wd>G8#A$O+qP}nwmHGXwr~Dtowe?|csLK$yLMIgu726odslV;su>5g z>7=e(k($D#6eX)>W2YfE<#c+8LPd=SSozQd&R{9q{F`v7+3%pKxzo*fokDSQNibmz zR`-|?G7ITFVS*1n|JSvAp4Fu-5$g%RdClr1}qKFNvPi$)nS!;FK_w7VtPzzDd}HxzI9_sUFBuk5)?Vjmd#Q4twhi{%J3Fdr+YubdwRLTo|r$p zW;{%o-Wsv*MgO40)5srCP;TSyBzBg^RMtYrY`FLG zv>(n*cty0A4&;rd+m>!d@WYDVZCNZXsVJYqk^|J@uaJWam$TJUav zp{DAQt2Gw;n%8Ng%Q{kp?5bGMO(-ut$1|PH(X$uX8fzkIIq>D?VC3@bRyC--$5y$> ziNhm!Q@xxoih3DQSCp2YY>ta|3&d2P{q%w-8#&$^5`)PDC#pbwludU1NPRFojxyba zG|phrF@*NsjK}2Bs}*YUuGBM?w$>itEC6(&BQqiqi!Vy%4Etg+JmtyjkMJrEWe_F! z97JJaj1Pi-8b4$P-sZ-8n11i>qix0c!U`8y+jY}dO>@!pOmdruKQO$PMGJr*;ppaQ z*Y~2Pqpfn-qYYr63!-W0?D?B-KdfO?K8a&?y7ex?rI-Y@4dRfA!*=Lw;^^tJE6NY4 zWwMFXo#8^ys*qrsLaJvG&{CYF?yM^%EOAGWZFa;gyW{R1j}L~qm-G{BbaII+NeRi_ zGF6EgEiID3cAQf0aiO*%8b{^~CTTD60sXhgA(u&KlSo5))_iAxupv^r5v!W)>jk?P zo(lQ+h_aY+v=-+QW>V2@u9u}6kn1OR@gp=w!GnW5xR3M0pE*h3V2mQ=)(!6FKaB}N z9KA=HIedg1OKysaAWJ#Ca`4c)7x?QCdz*CL5ZXHB4>`}s4B^XE&pHmgE>-T(&n*={ zyIGZBRI>4*(Noh%jU*R=Yt+mS!0Z%SLALS|h6^?Cr-2AD@mPO~Na#je1F|v)|&zl}aJ&pQ>;H z)`bO5N?vnGU4H}VBdX6yIzV_s54&j0EKaTNo%Ggy74wfSwDdfHP9yRl4Q4%JKgIQ$ z2U*g|UM<<+RU`7&?>DMENk=|{&PJPfovC6xH;h8k$DX{Htx1ELN04;#W}jAz7SN4j zbQXo{uIeIishfG7ft*8iBS^)0tB$x#m>FX z>D*N!;w0C*Tz-__>C}8??eVM4Pq>0U z-;Pmn+ZXR=B(fUjsCM9pze!73DxOAjALq#SN=#0)`Q^bmvru_c@k zCt?@=Wl#8fnmC-SWi9{adMJSl+>>Acau}1CAB?Karp2w~Zp4BL3i7JtlX^&rCQ09l z?%%T_{ySUi#7!v|{+InUhcleC%UU2{%UFtwZ^w#;@9YSrjn|GS$b=422SA5afTRg| z#vAtIBoI4C?V@~m+p9WceoFuN@Mz%oknlM8g$R1qF;cRk)WuTXjSj-0xcB>Gh1rbg z^%GC|`TCP}%ubj@`IS}kjN-eIPI5s9nbw>j3CqQg(3W7GE1A<&^2Z3mIihrE%us^H*d@>7-#j#yy&2bcvA}jK{;agDe_*YJYe3M#qt5xZf)vjb;=sH<} z@EKzffsk_@CY$>ej1RF3>Wb*qkJv&pP#^5K^ekI}fHBg-159@|mn?c>U1%omNVVAZ z8!R_lH1){sGsv#U2$}pIB_arbdq0US+Z;?jibd5#O>$IFoZCnlu>Llk?GJIHghJ-S zy~R%~S1Rc{Q>FqIB7_V<7Sx?zdu9Tr&;gZWW}rIg096_`^Ey{I?p}b#Z)J&cV(x7( z2+2ZLTK3B+3Q^D1QDtKH2(bBOu=w#~>(wHQdK{uN>Zk!rOI}wj(P4xA^1u zMAZi69zE0GyRKds9>P6()-%mLy1Ol;yZcH$-kg$zd`fP~RVb=}d<_hmfP70ZY;MV} z&9}^@z=X^_eA*Vn-F?Uw>G(uv;g5*Cfxa8GJB^Euf3~*|RF}b+V0(fp|DQ1ur%N4s zloKlq3TfoBQ_XwF%XkN^5grneBHWIt1RmmWoz>)Rgq-18_5Sxp8-t?)&HJ7>7?bh` z<1Md=;p4?6!gL2BZA|C~4=injtYy?)IOL}Hb5BIyC^=2nW!tQjTl@8@?8X^+H!hvJ zC@cIXx{`(bPk2Jx>)S>KA1t%2PIo4Sq6+OKtP(7D8b)JAhlToRoq}C@bq=??Kb2aS zFJwkra%VVa&YH9n3c;~25iY~;G8GhKugjE!PrMG!DiAS{s`6JCT?YMR_QfY z2nSir|0P(ZFa>53A$T19SDWoD(D?^);sJjC7TvxVeQC6)S$)Q{etsfa{1%l!tm{6_HFrlo^2%=q+o$Ow@GOh3MX8s<;6Sq|r|0`i@9^X#PqPdmc8Hlf~OyWmO zlMrh$?!>ajTZwXoP3xp|%lDWuma&)($<6DnYrtnwpNZjh6~g{+2iBFJ+sKj_z++Sn z>uR*}4K;B}c7ek5UCvDD#Fm$CvXS?zAO66uGWEn(fVwVAz?55bx4af##gy9?XmSB$ zS(pvnGbzjRF{K&MSFG$8x=Rb@VRG&74{k~o6I-RB2Z^+R5Y1ymOTjt~vEfiUPk(l0 z+<(_koKRsvh}H-hn+`_CYjYe)g&ZAy$kx``eF;wC-daVVTR8Ez)xV&#EQM}fJW+Pz zI{yI=|I7cw%wS&zs3ylj4%sx`-(Q^zslLjD)rc9P1j#&DNH>{uuqz$OFpYL9?(BJk z+NPW-IS$b?@Y*L{RJA)bPiyC?3^Eu>1)ndu2p1PZ;Y)lm?5~em@YuRDKvKWGo|iRe zA%vn(9AG0Ga?bqWH!~XQ3Rjos4tK-b|2{1*+Gw=C|KbA1=WWKm=(8u06kF||L%wP&U z8sH^!=nQg&BCo9PqSezl-cGAAo*P&Dc9Cj;QLX3Sxf^iT9oI>8JOq~-g%f|X>1aKF zer-KVeTI4#*+9FoN82QV4H7LvTko3VFa;Js3*ZUq`AOqzg1XnyA~T840(N5u2z_Od z8j{M2Y6Pf#jFselO<*1&)S>u*K3tm#CT4>G2p8^ehSqqjp2Zl)pP%4ztp34PJ~@j- zI+-E%X9Pq&LJ*g6M2LTqKW!v@pNW{;t~QXR^{+Wu>)A0pC;L6Fkp3|=smU>_Asj11 zABPM$Gq=pD(Tn};d@w$`C&v7&)D2xbM&HO;FKN5T^ z+TV++aiZ%BVi&1J8NE_?PC)8a2>qg{^c8w$Q1vxq5LF~t|0LUrW4&?|X+f>Q!h$Ko zm$`-|vricHBA1V(Kq5aCsoz?4Qq+%LnHkH*r!xZ@9J09Vzc^fyM%y;_362C77uNIM zr%HduAo08JD4lM0T%G)osi_g9FAA4sc(x$=>!$8ij=Z%4t(RO?0@oz@f@LkogsPEc z1lYs4{%Pb}(*D?&a+o)`N5|8mh7Desp`-ZO%}JW|#?0%I@nx_XtyXC<_bT>W4~(#i z{8MzG94bd#qL3a?rv6`@LTsflWCvxru%E&;cia|mgp=L5Y%Itrv@m0oN$Vxm{U zL2*VbS6VK;!zx04AHe;Phw#gSjA6j0y|S(rH3e1u1WgT6^F+#qeo>xa9MfzoV&dA- z@nll0J|ZngX?Y`L;@b4}C*SzOESvvR+p$36rRCw>uLslso}A$~USsiZuS>?0_s)d7 z3r6zxqkfzk@aktXu*7BnL1q#4$6)(lR<&(Sr+ zorR)V>dAJHL`2|FlOZa8oQmL5IEFh4aAKa9qcG;9lNgD(_0Q&}LpGxZ%n}T=SuVq_ z!LDV+5+u`)B1KG(%8fd5N5+}Zej8?~ADI6(z7~F7Te-lhk8HV$m>!kRYa!-*inWX4 zDCAs=<_O>>;hDE~)M^hn52ay3Id;S*qrnQ8s2Yv_kAL-sS%Yo+k~t##8*H=Hc`@TM z!@v9tsyuRC<8L`oisXZkq{eKTiGrXtyZbCh4YGtA0qezGse+5q>SL-vZk)y%BnbLOjdX$Djk)*4i{}8B zrtFki=%VsO6lkS+CoD_L3@3akw0r#sCLG#GPffmM&vpJ~^8|pHvXl-=&ulU3>Fi_N zkHUmlUI9F^Ip1Y5F|-GvOE8{DR_J2fms<7u;%UR3bnd=e`$Jn4YTz%}3e21Y_HY|1 zy}^jOmA$KcLRfeOBluiST5VEUIxoVkj&Duq{CPv|Rv~^{+&KilW9yQBw4Ko!>JoSxlksm!r_CNf)pf#jQ?ediC^PBc z1$pp^{hZ0hcAcgtklK4Ry8nd0Cmt+@b)EM8tzzEGWn@eHJeiN-X}X5v8SN*x%Q7(z zPuW{sf9_dJC%qD2LbjvcbGFOkBXZ4^tS5tQeL)3DrCo~bx-|#bbr(nW1qtp3qy5zg zCS#{Y*gKMI(wi8<3t~oS8u8G*+Goc8aL4p|w-iVRDLbK1SZGC_zF@82? z+;DNTG39yS%`iRGiI*n&fEo@!*Qs{fG{@(LPrc3aWd@dtQ!Tb#=y%w=M(WZxpi&y# zu6peNa{m1~P*yq?-!7)$+H|aYhspJ_g{pBleM?nS@67Fd@Enz<(^cPg=Ob5tuSZ2o zUA1Z_yQg!cY`)x;NNDC_$$?8-&Rsj2^rSN8LA7xHXIS)sG(}0A?cQ+pF6PW?a}}M& z7@e16O6B@IwalJ;QKk9 z9@z=|bh{A$?i1MXC3m^NYdH*wZ{e2g<3EF!%+*f)`R6{d{$)ulA0EF*26kP*v4j@S zKx%7d$0NiC9iln+p~HN<07RNs9=`;~iNNydyg%SuB#$zZp~F=0-t_RMK=$8Jy|y*$L;{a%$#L^Qh; zI`kHY-oTSy;oejX3di~oK!zafp8ARpqY+cyN$iuM|$mK;M!6Hw5GPds@3kUhZ{ooAV zURoA>6H}8Boy^iEGe`S7pfMGO&hm%aLe5pY5fkMECXC8&A zT>G)V9PRk5KMwBr@P52dZhC+8{OHGQM9SbW1vh<@CWW*im!$mX^JOu?@BQ^~|9)|Q z#PVA|5ox1EPmUtOs+l!!VWVY7&S&nq{LAd^v4>Ka1`2$=x46aTYx6VzX6k@eOe11W zbD=tO0t2Yab97E1ysdkOQ2{f{!&u$Q4b{1DAY>Ns60SOomW${@N8AigV)=V8DYjbV z5S+WjsK>UO9cvkW8Jl2klkA@s-hQuph>P|&VlAyMBt$_+qK!`%Y2>n-g=*U_b?lXJ zcE&iXEBq%Cb4U=Efk~_77Y~9kO6S$IV{rwImGp4#RxUOj1^jj%XeYh2!Pg_bN6%K| zMu#`T(1TvK8_hBZ{KWe@!ZKAsR8mAHF%jT#kTvX4enCs50)rB%Y}Nfzxt4H8{_aAU3dL1&0EbIPSn|+- zEk4!AP-;Hst8Sn(rj-^*=}JxOWwkMy0Ef?Vs7r5Xverjy6mmAndj@~6Yp_G9JFkO; z1_LKp&?mUYM(7GD29QbU!C=-$U^}QdIku5P2(T`C=8Fw$=$Z@vn@I zdW5W>sFl#vX(CZfoQ+e5#jK0bw1kCX=Ar&+6K33!v1RnQZH@B0Gp1f1-NpMiPiiD? z*3#3ESkcF>+LFc&@td6HN5v{B18pZ2tGcM1cqak-w(h)$6LBn@bEuig?uf2bwYvqK z6^-2N=ZB_wBI3?LSV59Zt9}uU8FoKtoFVT-hH%TU)?#6kZ3LQH1a+5M9Nl#BFSUoO zM&(8?tvd3h)U+8QaGP*V@(h=CWFDpx8r#U!dXKHDfdf(boWWm> zyn2JlRHnBygZ#w4x)b2m%B+`>&Ok++z=!Jw>?RqnT)gFrXe~9dt9_cka*#RE6-w5& zM%G!R;9uRiIN=Nv{WLplGY|2UYWSd z{SV9ZCqK12sbF5SN9yAMNJ6jaetf8umrdTe355zr>u`mSgTV4&tCK(?rA<$vHa8O+ zXLXGXej*RHm29-JJBORl`1Eu9&-V5y{Xf$mpdrt5bZ_KQTBT zh&+#_!c9sV2&F&u5{s7poJC#2DV$h*AdlC{&V=aYNz4h?Ll+&{pIJI`r`)iq1p?`d{DRHfg?L;RZ9(h))U-p&Yz!VRB~mW3a#2?hTCp`{JetkPlSBUH ziQYs1bM`Mi{$#j5Q&fygJisfmG-PTQdzs3txLWk-G={WWVH*iUwO+v-_6~oh`hlK| zHH&|RFg5}yt7yi#Jy>obMN4Pdjby{Ci=o9RK}%=XrSHhH!ph~ZyUlfFO_)#A7_QV7;n|s{)zDpi$s6^OdJW9=4#`$ClZoB&>+I2{)u46NAd1O_`5MczlM#`(w;DP}D ze7ooC#eDl;PlFS0WhDk7CV%5pNGg+bV>t{?L9X~mYnFF_ zWrxq(LKvH^=$BlrB2O&*ru{cWBK;d2X?ZFY1zqMyZ^aQV$s@Zed5DJNyY}{}vc=mu zhljHB3h>lIZvy$fk*8`^4`W}8NT>9 zfE~%no|gwkMk|q0!82RS>`%+(YZOr{Xg9j0PPu$!4l6>0%Q#78m@j1I*3FOlZ~Ve> zPW;7fR%y|wV2sME)CHz)thSvA; zBPR@mVBQ1*I4ZIJs8zswv$Y!;a?yqIVh~0NlRKKR%RZ~%Ho@)VuaANKV+tx03@k@o z9;Gv19}FHO7+s`!=m!L$Y3B}c5kB+mBZNW)N@fV6K*eCUf;S&1r?LcR>`vM_XT|-# zD;CC}$a!Wj%X$JuYz0^h4RJJ@FXbP-H9=KDYj?>X==N%V-vpY*?dLk2R7XQ(Km_V& zM5-zwjT&l2K}3L{0(ZwW)b%TxHExb7QYAOXh23)Q{7!5UeN%+~k}O-bnWiRn*Z+`& zdb1eoHa>-2*M5i$Sb<+?>$dI(P!8?vwd8n9j1ccpd>sh1lRbtw&X=LH3lEfube_rh zp#b{VKX(kB1tK!Q1Ujg#Iwxkprv@JdVsg?Tl;k-2!gU*)#jMWW=JaQ6#zlN(1-;JA z#Vf5Vv)8aMlBQn*6RFvuTq@4%t5;DH7v3e!mMvukt->{buzDXmt{&t}+K5}bNALtM z)Bf>}PG_;HfRGvAp1UzSHE3;TU2-SfOX3quChAk12b?jfN=^;izo!mQGfMDE2>RFSHBn zlPjFm!>K;qIhqWapIZ%we9|)&KYOzMo{}D9x};|v+^MZ*K08$1lV+P%&S1-qbX`~j z?r#e-rj88UAWW4ego0t|aKeQsas%pOB@-P}=#0Sto$#8NfUse+6!dh9j&Bv2+-DS( zF2DooqVhP%zr-C0X&8|@ydKSY~8V{ zBg|j!sxm=LdL4r+GB%2k1eFL9`0>0Jd&ywBvQplcyg$swFL6*Yy66m%0NZt6L1l&{ zbC1J$$$I;^f(#P!9MgI`*{OE>k152$LLQ>>!-*q3{8o;hc(yUVsr*_y9g6s&L}i6B zk|#x2_sr(w@wucOK&P60cyK{9BkjjYYOck?93@Q4^ZfEl*9wZ2m25KlY%8DLT^E zi>$x!6j)~J6sF{*mPU}GakYcl?#REX%65}v!KxqU9*HJEGl2{J31UUQN3;D_#ghm* zkQbBTzR>X*?-IS_AY()tvL>vkJ3)M8SLSHFs58CG>-*dd^%|aZ_el(UuNN7#F!2m$ zgc>WnyzH|cjmRStZaA)n4}nZ4<}pq-yVLJ|xd`fPj5a#h6>)AwJ|I0F%rEzc`aO&C z#v**Z^2P$)B+J}!)^vwwX1}0xfR33H!~uN{lbXBiqd?=-z41c_^RgWjJAiDefMtl2i(?xnp8f)x>z*8 zj-Yu4!8c>Tsr`D<*3|?9fS9CnvCZa~V&^#<~kDGTw zsrYpvF}7i22%CeMutpo)_9D|bkB;BK8xQY;u;5}vg&#=nMh@RNL_^_Dufn34ohyg2 zjQ1gypUH5SQ>H9{_I6)KqdSB0RFw&lM(J35zl}7GND#9yn;}fx3*+Iv5Q@hH2ux(D zy;qgopn%(e(|2}1Uu;^*U-)a1XolxT8L-?TrWFR%Q{{$pQ?Ej;Sx4_MtE4Y*puAvO z=bOof5nk&Bbwd$gmHn7+2N89m;lvY7A^H(nN9$5k=@YysL92#lcAU*rg!m|_M%mjtBCLhf4Hbly%{ z@AKlIoBCWr!If;A!v1q9 zTp#*zrWe9!UK!OcefmPIB-EZt%?r|XRf#NcRiq6+_r`Z&H0wb!jC%aRX184MBozBL z=fQ05mR>*4FXBF5>_zA96PN>Y|Cy{Vp8J$@jqSHh^cMiurFY5>)`bP(T<3;Y0zUYGbcKC{_uP3 zd)@0_U|mF_?*B1k4%U?;;z8xUH5n7R{dNrRe$|OL=W%oqxy=)t zBX+-Cbl@p=l{G@(KGTTPWwuV(Dn$u{2hg;2<)s-C1=%bq7=NZHiK=(3XqWLPNx@s+*Y~ImgUWT z;(H}+Gy9hN@ZWd8W42kG+{IHR5xbDr(eJZ;5RbjO z}`cQp5 z?#S=A_K+n!-VyAj61P0!zRT3Js@}BFv-#ni-J}Sc+)mSZy_cZ$9f5t}TQ2^Cmpm$l zPxiJ0Jv<4~i4jYV5?zcP!dJ4~g5{Rjv2Vq-PjRP7!G%}D!+743vwvMXSM zt*zzC&gQjkfK{~&&8NvR=NA)xH=tVA(9a9jehYsU#NA{3I8J$9tIVmthUt+=_N6aM#{e@Y{4f~jJ(du@w z5g*iNk9sspBh-mio7gdD4`*CL)pwD=e(;<*r8(F{~g%Kxmc>&c!^;+h; zCC!&N@)EhX`>@;F&t|`%f1b86;XIvTy?;?_SMw7lTc_!s7( zFlIS*Eo(Us|2;J%tEuO@P2HQEe9vGzfe&sLusWvN1zGkYl|Bz8VEVcQOOBryz1kB8qKt(#-=~`h1{~3r}h7dpK<=r;%96etQ`MW{Opf$Ta{N$&FTzv zC~0^hg8+*Drt_48Kh!NKUm7f!i|^!%&#rH~qN2*iZ#6elUyBqCEi7G81?i1pgYo}@ z1s9l5fX_I%|xWjOw!oh*-eoe43FFw%*glZ_`2b$>8;Ha~)u zIdU7vEUwWyP;5*=Q3yRMav9Cd9yH3vZS~~He{p}<1AMl^2nCd2z>g48sL1msR|DCyH8{1T zw>9H)jOpKQ`MIocXr?r!=QN?0*P*R0u);K#Zx_sG`ZSZ-wb#*7b|jDWq_k|b3g7Zp z@q{C~>H<~6a_JxAVPn@$>Yg$w)%@=ZhA0`ojzUD+4~&3y*b@V0RyQ&)Bv?^DH2$L3 zp4s+7QK6MHWKX+A&da)u{|u=2E(;ll$QL9Mkl#I#{v^f0G}_OCPd1~|*bu9A4IbCo zN4sTl^{$+V_x!_R|G-o4TD>=cCTInk&Rq>plv&gNrKk=<8)vka7j=_(nwb+UBEqfF z$`pt)Ns52DBgoX3uS@SR!so)xZ3CX=KnAP50GGidQ!c9!&YbSsahaVSY?AyU2-ZNi z#=7hf_F=)C|1R5Vj%#+4c4tf&NS{$T6b&)-2OZg_kAu7<0dsJ%gpY zuW?OvVfqowiF?T}+dEx(FCZ=HQ?mFDlSuTEFWl+2ZX|DrWqRnLsqUu{BlgCY#*Z*9 z*UZ&|0lzxC{aG@0q%+s}CD(hI@{LE?+HDWEZKXFMQtNB(+7z2!CL=l8 z+j6E}9DC+kJri*T)n%ItHc){62HesMekc5(C-9C_5QO-S6R&OY zm7p>Bv8ue*khgP&BL;x;u&{5bHsfs8nF+3W44vK4xqTZnNL>| zcq(Du8A^6Zz;Gr8tFm1vD&`qfLCW|zd;!|V7-L~fl;ngI>|3e2Eu193)Z4AlQ_c^h zHr)&X8<6Dxx`|tN*G{PUsk+iD47HDYxugGDRz)Z;XjZ>;YmK<*L>lA3km4$h;wr_2 zpO#g0`PyearYpy9c{QC9q$8@ASt;}A5V-+%bUNb(TVl&x@j7@vQ@;5jc>y$*CY$+G zw)nk$CxnO}Rl?;EJRz6P;>C|$aZ6$Korexjr24anCYEn*aArw!2 ztzLs%X{ZUI=yB?l#OLJY+dmffq_seAxBb@_%~kARjWqQ zo(p~{o*@1N-&H|lYdyuK62s|KyP*H{c?Mv(_asJb8i7!giv_4Tp5~XY?AWh7jessw z#uRN|JZryX&0q#~OA*AG!V)w(=)k2EiuK)VHBjU~tTmS`Bqd3{lNFcJs3LgUx1u$X z<#6CGY@+hnH7=%&O4a)aTXU`QiL6mkPl?PvQZe*SQdZ7<@L1iBr16+EILsiLdIdyb zOw3%7R^+Eho}>yYr5n6Tc?>Hn8TlMBHKKjJ=)g?L?VRvGmtQAVT{14mS?Ck@z1vOY z>Dl?>e|u!=>h=_#L&7X#s!B_S_RAK(8nJnkg!1BBN>mjW!*7(!W2Bt2?c?f?mmFx# z#z)#R*RnI|ik&z$R))O( zCer*C#3$0)JT-cbG{+Nf{~5sc$;lBWBD*ur_H*g1&S(u3f(+y#&4)CpscAjlG~0) zd06mI13J?$^UF70IEn=Jx-BZwmvY#&wkynX;g_c6G2SX@xH^76(U>7HpG+N_{T97c zwZl&8Y$@?-b3Hjg;aM>X$TT2JJS2l7NsI*5(KU&W^_-@iJv^jp7b=H^Y45ZjGeq!{ zF860(w6m9?Y0R7_{6v}d8M#u!PsMJdGqCf72n>7@+}(+dLt*sh;x?ix zFUrb@bcyLUrPTQqlvUvvd52^gLyfbR?FEAY)r9vn%y9H2K&f4!inV0LD4>HOdm<(I z*iOCaoQbtRV-7_6>_skb$z;(}F@khdg-q=XFwOEv1gB|FBh4oz+CG6n^bjbuJ#bU5 zndstt$i~Rfw)LI4^T0bldY;kh6PzA?cZ#PvAZPnrwul@fH%|6!pM_u@JeIYU327LE zkdq`7NgyR7LdvX@QzR2(0>vI8!;iJ24sxs&5i@iHo+?q#_c7o?(6XAD-0{N9P#*ol zC0|^`%5$gI3n{CUA1;!yGHL}0?qXd|uoIkyu}g1;CpQCDwkj1;1aGz~hV<%E&`9t2 zj$l*RvErj-rUP%6MTGF+W1Rkt6@a2-5aCm-nE@qEu%oIXwvRO*d=J}!S(=3MqE3JY9QQ7O>3!%MmOF6J9iVcQU3jm6=BSKGIW$@kXF z@t7e|^E?GzRQz6ooMb|wQff`IcB4=Z z8;I?oFCT{}!TqnhX%ZVX(y1b-NcFm9qY*OPJz0t0Z9Jh>=2xXBg($QpjhJb)scng} zuK7*6mil-_bIO(|xRQxVU|8w$or$=CGz%(4P|Zz~y$^6gFRV#8fw_}~Px%N^Q6(}p zGcsxBM*=tvdn##ODdF}p47`UDQqu!}%efQPoQv45x;(-_sWkS5gj5VcdO4ftyi#C^ zZ=u4fjdDX`8nsFU4dZy)>xMPA@xDoLj(~{@FyL@trR7;Y=yWZvW z-300KYY^)`@;0t~hy{zTYbJ^I>s(yqtWt&G&te=zor*Q&3ZUm7_J_;8fs6zk9naQO z=lBQy&Xn>OZQiuP5uWp^;YKkqy9l}r?PsPAFo!OJiF%evPFJ=TH4gRoskX>s_kKZj&Qkq8IEgQI0b&r=et)Md-DfSlVWym+DM26ol4N1E^3{G6A^z)jEGubNIIxXeQCr+LgPgNX*+Io`m z0?L=7rl>z$w_g0Ywpy|CCM_nf82%;xQJ-3g`$u5d6%mH?sY_dL`GcUU``tI}Q8h=U z>AFpz@DoGu_h8&eSRc#qeunSLUG=D$zg_k_3F}(EeO{e)Jyog%iER<2+ogsk^lh|* z%b0pb{;v~yh})ol_(z1WqoC-xpn?|k)Gob34`6&h*A_Ko9>xR^pxxr=;6{Pwah=M@ z5aOqFhD8)>An{oDkpb%k_@PH`vC4E1`QhmKpYe!62VIx`QNrU);=I^t=m{+gjiZ6S zFp}~)2;xXDtjf$%P)d`W^CW11Xy(>jQE{kMu0f4a<4S9Hg$i)S(x`C79QlP7!Pa7< z)1TP!Typ!6`%FD=`srz#Ibp6c_^vh*zg< zZ14u1VGU12?FPSO)TFAm-Z=j*(7V_o}84bD?-E+!2ZH*53Qn z9I=uUFflRP;Vd19dp^y8y*Of5V4w1yLKA$*pwsiL$4HRHL)@}SS@(9)?e5UMx$xUo zqSe*uDul!*4DWz(kZI+wa3!NSj!7TN8aYzCCspAiT#|x0LR>R<=j`$~J#u@7wl4h* zYF_>uqVJ})7ZP5l-ak&H_&8o1eKn;t7%b92~`YG>Js~exs2-VVce!XqaDZtf4#8#8~!|O zsohl$k@tkXO>qr*|GE7=OGd#@G@IC-LAcwL)^C3qI?a7{tnl8@!54D%rmRpQ#tdl-&z6c1X? z!{7=Cj^k?7?=&WB$Gp;(g3{1@daZS!#)alWwHgGx>)Z8DqH@q#wQdcw{ z0~ zgShlLWd2xl{>y;V(5+6ttpL3;{5Ur17Q^Kqdxfo}ZtCes6M;TysD)%yNe z!PDmN61!slP_>>G@CVz&-V1%baCh7gP&O@>??1<_VmvOwR&F zI`j4KrxHb?w?bN0qtZ9syflq=GsVfgB*(>64lV9QRVUMvAIpl825052$jkVGS{PW% zmqd6h2SJ!sT_>vY{X{)WEbH%nH_ZCK4`7KCsA+|YQE>9rpg)7KJ-ZJ9wV*zM_bN08*5X?0io|j*1kQVqrS#IqU7nP}Q;gX8m(8_+k^2d^C599R0cgmF-kq(MduuM7oz4xci}l|&BCEg~Upb&vd@ zLFGd0-@hMz>>Af0i`8EUY+-_Jw%{_-rXU;Dqn19oXi_Q5 zYlLjpuu!^KSTW`0Tq2we%J(XYu(_r6pq4^v3Y3P6)akp5hzIffDb=iYRrGM-thTeQ zi|PkX8Ql8LmVCC$@xWnt`KT+g0!&Ep^*X{l4Z~Ig8h=IbduKfH2t>BayG5og2#CA zA-P!?%DiSmLCpTUf%3YVi1Y1eKBNL4TREgMns(EQ2K?gP?Zih6?GUIqZ^y49cG-$T zim;R*5PZ9Lth|UkuB}X6Ch3HifPQ0;>SCg*I}7iQ+Uv&G@$ZCp z8~8641NhvIZ}R-zU}V0KJ`p_XmcH35`(7Om)Z@#}x@>vZm&5P6uvLsHe*_(x+j6`4 z_SE8EJU?kHCLsTTajoiI#dx1SEDhLgIV|lda(=@@wiz^X#=gAIc{n-u{BdETjrA=Pr4Z zacSB|jI~3QPa@YH>|kXW9RAvP|JTCLb+?l4U*Yujcy_3V<$KO_@cW%3@Vo_E$|2Tk z-TQ6i@an7X_u^o@rlTb(qUP4HO6z1wKkk_BVMFL(}ZunhG`?py8i7V0$1Wxmvc)>Dtk$(VHGLXqL>M2S!x^_p-}lnxVJd z5#9P>dChT#et#*7>fm(e(3Erk7%sx3b9v}8nnUU(L|UVN@A6t!EF=>}@@ZK{dM0N5 zHt(fjIGviwDGtsYi>)*T#*Vzosw%N{J!>kt6;nfQrL8osMugyjK_F>=pdlcW)YEvO zYiS&(m;nQWK+~4v-#>#j(w4PC)q{)D7&Zfs+MqR)Oya$XNDs8AWH?Kccp3nxO4^mF z=E9SbyoCTe6cSaPWhm6HzL}_NHI&wj*qRuXS$bP0e003K*+UtupJnE8!FTD&hHPZD z#w?{{j-_bu!hj?pf*hf%@H zicSA@Khue-CSx{ChK{5e)@Ew?9%WF~8A1BGy>{1kNA3Q3V`NkP$I3{^3zNcp&9aXHPG`MsR;YOsE0Nc6yAQ)7) zxt>JC*w)@HB_*XgrT<)-!&0GM?^7V{5?&8`q+jS|>O$O8>1W`FuQK8d`SpIu2TYo! zq;{T+b^Z`eUfB#?I#Yl2&oe-v%)a4{91wEKYE8^_-=1He;vI<`>%N^v@Agm#sH9(k zZy|o&D1C46RZlHB{mk8iy@f-IMsFhutT{|(pKM7wxUktqJr0aGx4g&@X7)k7tRnJi z`{??Gtt7<*gyA@C&i$;LKy5cUL3ZNFiU}E0)MP{+Ct~2YwIVxixeH`npK486&0t~X zly*Rob4539<7+sxI#spJA8OqLrUNw0fEbSCXKXG9&xq2QmfIaJuI7Xd1NVW}m+=PU1?MsaB&zv~BefmjOazv@7EA3(??M{aXvn7eUu=`(7G~|DW6Yb@lyvy`UX$)q~L4 z&C{Dxm26hX@=CdCoeQ#V5rCpQ7{Okyvj1`yr-TYn{f~(oKmQ#nO%KGRchMe2AJ#*X z30(G3(HN814@$yabrKow!gzMt&Ujh%l6a$jlju)jZ@mIoQ!)?BY5Qf*Sb$N5vo(!| zyRFmpkBeKmQ$XXYLO#ykY+U3akK&W;7&=MK1J5_fm`oUjvPBIKx8b$}hW6P?+{`G~ zMFpv$$%9Mv-0f3jMBva{Ko)5Pp;&tCrrcUj{>aVR#omf%Pjtv~8UGuEn>0!+aGENl zmORoEAdP8kLcGb5KrJFXqU0lt-@nU5{R_@8U!rkBd zXEQu_dOFi>Q~^ecP__$#vj||qta=lv2-*(rKqjVitIXy%0*s-0ZB1+-HO71 zCuZaHPGM%WHf6KLo}*%a+bo!)1klGapj8VUE1lv_{FVqm5`ZRnF&EXH7jrM_KS<$| zqt?@!EKmCu+dgLIZf9o!xt=T4W)^Mm`sLTM}GaANFp_ zRP1*CsnVWvy#0w!r*{T z*o5NeH@Uo=JtS+?Lq;w#)aIb_k^GiwNXI zFYI1tD&Emga7^xrK;8)e)Uq@)MN*JIgjviJJISJzX-QO9)iQSHXone=!5jRI_KY#$}v9o5I1~%W%x-b%oRmxN2enJfUHw zB+I$|nw?6+&)i+2`;OreO=GTK;Pd6JIRr%xl;(Xopmk)Qn}S4RlE?aOAHUlE(Ps62 z0fvO#@Lf5o?UEQanH|?0X`XL#2yEPMb3S(B&!6V8V2!mR7Mj;j;sqZbjGuoECC+pD z$Gfq;0Zu%?6(*3-L-Z-9;Oa2TvNheW3TWN<$+2Nq5 zo`zj7YMwoOMCa51yB6*MA1bPE*>l-9yKXM&bNKh=+u(T2GmabLMFBUT$w}%>Q@4W$ zvwJVx7mZe zjhOX%M6IF|EaQw*l#1N+0bWaTyX!L+T338um_kcC10>OwkiI2+xu zrTZ`33H1YEjEO_X=jx~50CqK`ZMraxqH=I97u7p7!X7#V!rqy0a~24nb4N~W zQIP>1by-d39Wk!p%PkhYiJTj41~vbB7kaQ&d)v=XlS8j#8V>&rcE0k7+!|}G&BBR= zSBPEp%EylO?a^ZGWF%GGNeK}85xBV;VE=27hzS*XvQ~=6eP97J1pg7GAU2w@g!&Do zFw1sR%s0^8^SJeY_8DaLR>N3CKK9f|^(A!NmoK#C7ppi(Q)DgI5{PjqO+o0YAn z$Oe-Zx6|1(H*HyZr47ovp+gOXF*eTa*19ke!k`<;TtbP zpqr;OM(gUPRHj}pF%=R7ND?DH*k2K^WhL6k2t$)Lf!%-GKY8OXoBF0KI^3b0?l?>9 zChG!SD_?HWbYH2ew#J51`|&r-$R#m;>6&){s6#GD%~^;_!RaMO0g7O}NxL3@$wq=e zU}~t~2p%cz4-N*`eX0wn_6BVacV=m+-ObnP-=QpS?0#PKuT+xoffX&>HV^6e)oT(P zW+nnN6^lC12>jx2v*$sh=woHz2X$$#fCws58`f{F9H({+mtalJ?)n(ZT9eh((fGc3 zUm2jz{ZCp~0S!nl*VA+uj^~oQ6r1K8*qA;%|9p+L2C{>S>39*y5Y0VcF+<-{o>Zna z@FF^vYeR!pVONbzI1(l?1aqFf*tG7YtvW|LeA|X6GcBCMZI~O&ldS_mAgHhv^j5H< z?7hCB9$e(D)rrNApDd0COfavW3segeCa1hnhg|6aRRIt4+NM3n?R!|sTns6%XN07 zdi?G8v$$4-vL^@9*4T!#w8WstsvI4PWQnS6T@#D{FO)7|rlu|sv9?q_j$u#VOm33b z3&Pq*tJFWMa!3ZKi=^!cQkHvXK`R$IyHsUIXo5D}Q%;OVoS0kXk_gC|Q67}la^)M7g{j8r)MvQet_5(?6T!Wm>%_^Q zh2n@8Rr6(@wz{I@6Gc^xClegjbY$R82YEDPDK|f6etXyW-1!!mSos?ZVtlh~O8#r# z$fihZQ?T+N+5!hG{Gn|%G5)hUWBeE0VfB)1NjvpZPR=P_^Y zp4o=;2b7jez4K27G{7SGt?3M})MmrVIA3!oFjf#8Fmu9euSI5mq~CC6FZYl*SAA5> z9Vmu*SQn{Jkq_S3xUZ&$6Y@ugc4DIKDbxcK^$fusSW5sUcktMtDH2G+`l3Rq6QO;r zj+h?<%{&h+*m?@BUH{Zs##I)Cl+<1iJ=j{BMuMSs4K><;?cyLUa9cF2vm2WMQ8AQ0^X-&r@U7hUYd3gDZry+kJSRHw7Yo(P-Y`4E7Pc(48;0 z4zYbo9>LZK{@h+2x@PyEf-~(27OS=IcDE*QBK%6z4#t)Aa41toNU}>)y`jD=i>k_x zb-|csFzSf0k6Mj}B=|>DFtHG1?OT$y`-Em5)W?xxnfjBVK?c!~;psUgs4zIGvHyiNTQU~itj2fl!2F)_ zTI9Xh)|M%Ro>g;nSA zZQ|Xka;;k0CD6hrFwrT_!pgclMVOS;i|WX2z3|}kPeWDQGIE$aU6ABB2)lsFF1Se1Z*aLQH!N*Ioo$}8{e?Y)A0f~!j%_sdQ836vjk{*c78=_Qh5{#XH2p`zgHsmpM=v2f9N>oyug-P5@ zT}kp<fT z0OP;Rwj0=dsJz6|>Y3ZCzSl_kHMY=>=)g_0SdN`ct9K+Gb#xxRr}xbHM({hsCaapJ zFlhxLK(s_Y<|;_yjx57YOL@fY1>|(EnD`5Rd}y=y%Mn3$Y4I>-83~05TCg0cN5uAL zSWi#%-u3q=6E^N@A#TG#l@{DEcD075YBF@vT+gJyqZKo>FYj9VnWgzu z;DkD;LOA7mSTHCKuBVLpfn=j`jZL-bBvK!0El(Z_`%~l)8XI2eO2j}9?QG4254cfG zZ$znzg!jxKHElfqeT$TSBxSV`e42i$qoK|0pm^YXM{yB;v@kPy$3LD=zHy_`&U2By zQlBkh&ibT0p1b6bbaD2bh}{hCY0ZDs4*XP0?BPlCuS)Du1SWBVNOd0*w6;!lAux64 ztuwy}riz9}tj@#e<&&06;oT!>4sV|jK)4dY3pia0{qc|3_}~Tsv^gYz@EjGArQjZ~ zNe{_AA%PbFz+O3*Wd&nhSa(%RF(tAP9v0aHv%{{VinFw=Ic#(T5OU98z|gEO13fa1 zqf0m@fM`D^s9iSr17zXg_>-sw&}U6dSnEbOk{*hWUsfIj0@4{5+6(4+YAf~^fj*AT zGL4^q{PYG15u`Y1<1a`vz8HjiJTVAQwHSoID#LtUcjZFr)&2qACMLp>u{5V6~}= zL4IqVL0{gC!;{Qut(E4Co4WME1H0~tl`dp-=96{~e&eaMLTA-|fUOeRvcU7OHH;y4 zDqnS_9?1g+{Z$-Wn0lH?NF}(x6q4bXNzUmrB3Llj1-9aFdbnG!>+npUO4229jQS}x z&+(iIXJM^A>LMe@WygiLPm8AH23nuT0Y9JGdF8tz z;SGdVX1tRNgF&isA)K9@*xp>I<>^2kCvK61Z%i^c!Ub#3%P*Wk%N|S3kS40>@Gv0_nomer!2e zCLE%5y4!RYgRp0B2zzjT5BBkZvrpcQ9)kA*OAIz`XU3W3R$}i zj97U(OC91=ok{4Y^IH1?sGDwl1>$Mm%w%uC$%htH1;jcZER@CZDh51>hg4ZrYe|QY z&c8yUKN9yK+=+*fuD=6=WG)xUsRZ9I=RXQ~B)d`Z+ zEg-e1+PLG&0aK05_LUNiEXKma%LTCe&CXSS>y@lYN~%J!=QsA>cH^t+sn{Ys*BXgs zm!FODK1o{hn(B9F#s79D-09@|1B<`AX9@slg9D3y`)vx)cRc5N ztfzQ%W>+;Hqf*6u7OQ+e`KT=JRHmGbS|aq!W*n0_|0a zy5F0ko9_MzvTFYsxNhG0<+@lmMXY|`Trs!bs@AML2kVYT8dz)OTC_R=Rp?Wnmji~e z0Mee7PfZ3Qm>a#L`H87&w()*pKH&Bh;KVF%^J|Dj;V^uH_EF*7kR|G#%l zmNYeN3|nBmb9C&op%ssWRq)9XHkjO`>-c?oo5kc@p^3kK_yx4e9E>{?B8@j_Yo8ga zh{6xa!U@k91}T0vbOWwpM7}U+(lAbnNv72-(yBKTeI>J1( z@=fW4>F#8ubqgL0MnL-4g@X9?j+85-ISg?H3!n{{TQ0NcMq!^1E0UO}w46vS(Sedw zmlhJ(%_#{6RErifBA!lApN$Tp;eCQsRVGG(#a%#U+y#K-IyRwdqo4_xiR+76#ox; zI(t(PTH7op2)61$%Q`eHDEu-!`;wQRY39Kp&NX_N?yQ=A$uL z#mJfBwWdTJ_Y7Q!JyzAer^=6LV;K{0%j#_Gt$HC3}coZLM7Fst~>;74BS`? zg}>c0sT~(s0Dgl!1OK=K@f~b7!$KEiS+q2P-Y-93FNquTGFg4MJSO=l4hU)6;4URD zpdrM#>0M(QWt^(lyJtRS#Lo878ao;+Dio+muYZm)a=yW>p0QLPHaEJam!DtHS`c(;2{k2>giM%y!ZSz!DKB)kjh}cf4 z26cCY;f1E`;FeTT19aoT^&GwbMQ{f=)rd7h)`Q_9 z`zVJ)$cEDZKgI|(PSHMiz+zBk<~p$oF>wJK@HF({nSOF`Obp0Gl6o^;-P=QQre(`` zu;4O(4xn|Kv!Oww1U}$}8;_fARsWNmPpdbFIq1tUEs-WvsNvEp+QDAD37{cc#|87D zl)tsyy4Cmmo-uWLe4&`M{_nu~rQzR|(?46^UK&ph6_zO5pe=&v`y?~sT{U#Jf%E)F zwju~rgg)9xD&H_3Qqqo`yXH+)fZwj?=LCS=`(_DA#nY%+Zx;^hmncdMw*$Ry#E!Uk z3;$Ng|Jy8{0Y*uz>e?{O~f;7l=rlx&3DR9!qWUKAT0 z)f3!vm&~gqmzND5{$l5lOY4ShzWgw6X9(}yF0$HiO56;!k7u-P8^5dW43Vhk1A(#> z_q4$B=w$wV=ZPohZi411Z_JnO{nQHwRDfUN>o_J#fxb??a$7SpL7bPm%EpN-6@(@-ZWIT{bO;JWp z!JNyLNmcPCb)+oa=xVh4c|&Z^Qa&K7C@_6Q`M2?0Bc(*9FFS{>w2JMiMk<3_jO&Mq zT+X<M}k zYg`{s#I{;g^3DMQzlWF&(|U+bqh@LXcTJL{un(|xxQ_v?5-_`{y~5a{HzF>`$O=lc z4=8p@s3<`hJF#+8;OMqcdjO9M0U~04SN{?IL?E&7}zY#ijdjK#@G;EFT9q|=TaC;}G##11d})Fl$4RuRTs=Hg5QnZ!l1*4Xe;mL23>ZEFZ|LLan zeh6OnMxX=Qg2_%co6kkam}{|7 zyM^rOX7j|O5Mbc@N zL#wH&FQn(TWrRlFzpSCA$~3IBmDp;NbBP2d+y~=ypKE$5wi0n|fQ!c<- zbA(GLI)NZ&`5b@B^Mr4RvODq_4dq(+)ZcbaDOl9ulrAxLNlc{Lyflc6M-Mif$Dzn z(J4)IJ}{wXhVA)$04UM9EeqiMQ+3}~MZ_LsY!K|o;@y4osbCN6Xxdko6Y!5y+Btx0Fw8js#sb|y zrKX}T-xqQh(OYt1=Aqg#ZV|;wM?m+ol|cA1|N2eu()Qd&N9VyqXHlzP@o;x4PT>$% z;Zp9@9-|Gu9hQWazH)DS7BLq~NjMppjfFweW-goARr`%6Mkrjc&BdfG146-v)yU%j zSte&Omrc*4nn|AK$HFpKP&?pC-8@6yDu>66b5UN?N!rU*OeOP*QwSzl#t(l2yt(^v z8or5a7cN|J>ttQ5qxnkhC6PiEGWnz7ErQ9_uwxahGiLBd;9KyEx=qT`M#PYcftr60 z?nMxP@@S2qx%?879ko#g)-+r(v|T0lH_x%U3sIuRBOqA?qSb-^-xtV-osU5d8~p($ z#4R;G@VSKYZq$6P1u}wnI0qi^IicF2(C4$B(jZDt7;Q>%9eKTbcBNF!CSj}~|D+>S2;h-`hkeF`lb8uf zcq(a3aC#r*>>n7w{uz) z|7+z7g|lhaA!V1oCz5mTHrmMRDh2-w-p*>`t-6(^vW}0$b0<9AhIng?%Vn4+sq?KM zfB&`)dQR5p`Asd1tfXhcOlAB*Zu@JxNNL_$g7>l>+0bPIDNY3a!rGhvWGwm7R_Unu zQuHtAP<7r|LCvYL5C2riE1;x!5Ard1+GpKij_j@(EQMII-xIMs!n=mebjn2>(ZvgN zDEMy@tEsz6+SQ-F6-Z^dnlvPA&a79uKXP`=FmTdM8OlY38UYGYtRGYC?nyyMl$)>! z$t*%~>#o%gh5-aowMW6!8^c^4%oYM42*hh0mBG&0>^v1RP1drL|U_S{t*XX5&z?0A|7Q1 z1hDQDR}$?4eiD>dvbnhdPDBYNmFPr~wT<hT>^N`kso!d9j7On496!j;QmIhz|;hvd+WJ zL=)<;#+`SC6I<4TA6(j>n1JZ9h_>OE^!5YPVxZyhj-^FL%r{+DRB zEX>UG|8It53U|$#nC-f&CqElKlrWytPZw}wA?pML_z>8btwGfli10N7jmP{Hyu{ZXUD=>o&o}4y2N2yPp^n9!P-VJ6Udq~aYM)>5 zzzx1+K53t9S>dbM!Pw)ApWhn}{H*RZj)!haw|&(2CpCO@8oN3=GJM~X6DvPi5a{>- zn%uqqksaWWT95Z{IukPK)46A#rDr%SS$t+yVheBiXOZc&pSXp7+vTT@g|pznpFuzqiLAFp zlMWOP98&0uj^5(zNSFExvjE|#dS16frkpts{X=uHKti?}Tnn|b2x>a<*bp4E4Niy2WDteAElO=@Iw;Dl)9c{uCUDe`lw4zRO zC^+c3No)`VFwmvp>dd~j2mdtF)Z$&HDR-0pk-gpe?`u1dD>xqO6<}&nm8WTjQ;jMk z1lVgZxsuC|;Sg0&b2+TjvNfbz`8Sm_hUm4dlFDw94`>aqAr@?6l`osObEB|%wh0&I zQ&2kf5jJb_xs+Wn4$q6bT;y9h&$U>hsw9~d6^M?%%3Vp;E3|WW77o^MChy0}QAGsk zykgX3XJSUO+B}2&#kvrAR9vl0YB^BP=3huyd30QUd<AI4JEXf{jmp@q0%fDi0LYbVKeNyf zm3Mr(U+-fVuJB76Q*{emx+fovOu1VMu+pFP*T!<=9-ket+^vSyZ=Xf$!g$GvKn!N^I!5YJ?quO! z*Lj|Hj=TpdM~7=;X%<1(s1-sygeIj=iIxwQFLGS?-!vA33zO&}{)$U+ORbQ>U+Aw0 zS+WIMRjOdcW54?3d{hJTRR3`x1y~D2Aj+C7hm2PvE;T33)xMZ66lz6{aNEUJ`Sx0!0)H0Ku%J*pd*bh%l&&#L0lA*6hVKGBu7Z6L!!7l$Wx_8 zOp$dA72V;sTF<7W*(5=41$B1{fHONl`Yl8d-%slRZRWslUi1Y?!C{R`cYU zCbpq^2uK5}>DuB6j^z8t0(qr<4`!~bphgVyjFabtBX0E7y+fad+5#F?E8;?p6a45O zRuS~Iy%&!7)YO)n_qnnu|FCs<$dLiT5nW|z(<606Cjy}6n7j$(;U)Lv|6VhcK_|`3 zln6+TH^^t5XDU5hhW417B}(8vwjr^cdYkm>k|n7G2rE^?Ew7N!W0)r`>&`1xZ+-V< zemlH>75avvy(RFBfT=pPXwxAi)~Q=yI0JwbxZ;hCir$G;gXohk4oDK)=60Ag#i;b; zS?r`vEZJmNdmn7`4!@sk?!*t1F0Qin)h8W;CK&g@3V4&(iLT{cy`#_<{;9p9M0qH) zbrNY$mTv8|DFDDm;&6Ub<`pv30LjdssliF(s6As zTvLk>Qk-i@+lY$B7{3XkQX7AlCL4uFxG#>kvjwtz}x zt~)Vi*Kqa1U~UD~%pW~wY2fU*=gGi4yMIgLBl`gY^#|F4Tw23W{ZbONoR=0()y%M| zaOD1zfXp0^4_4n380Stb-pwK|%`jUyDn_5=Cn<&O3va~D^@1NbRC`QQuF611MjDdF z+aSoDb2u={%h86$Kvn-DEnQ0ItGA>R)|CG|)B;(Kk=m8J3jhr4PEK99sm~XZu2sED z1uV5lF5F9xK2~_Ar49o(cL&ri8u6f6KgvLrHE{p-#(XN~rE0F2;Uvpf7bu{%VGllJ zohU|ypot+_TxUsNGrZM@5kw9)VWp2<*(uig5$Iy|M-PxGdjps99uu_Ok+Vz#%m%I# zwsydTZAzN^$GgLzIz57sNmjZye^o?a?X_54LxRu}F8oF;__^TGfaW_bD|5kM2SHsw z7mekdgINZ_jH^!r+PC7cul!w)1C$WHabsSS$JPhS6nd1Q%4vsS#zm+bK!dP3$uB7V z6lD`e?3;k0d;C#H3^Vb;OOLp{l5)e`HXVnx4Mf6xb}5-VuC0J;0&}`H;g7h4!#HMC zh3bQT#ieGoP$DW1OpwC`Taqi5BD8;aGHXK@kCED$9X%8&c9#OPGSM^Ap(%=$ew~%~ zWxv{8hz82T@aN@7V!80uVlOFQcX?Jl5Gkk7TNXp0735xUrK!;kE3n7bW<8aUW%Z{2 z7Ae6>bG@|pRYcH+se7~g$YHQxvw~gHKp-uYio>o)&}{pA>)iz&xg)^{p-_ebDBBg2 z#Z97Cxyr?%$(rj!@oI%hOOB5G*aBFK=L8-s(h2AM9xrIMDT0JPhyn--GK@VCs6s7D zZLj#QWGW$5^!Y4)&U?U-i2}kg^sIfPa3V0Pf-i|Z+4!7RI{NEkPL7mcE>*ANAN+)T z5pYmdI2uFwK**;x$4UH*1@uHe=p>sIIx?9$Pw(Ryif$T!nIof=Je!}csgXwM+<{2^yj$0| zF=3e6OfITw{yh*PFbhph%)y$`Dme$9q9@b4txC%N?O@q>+%a6JgS|@0Id2CGX1-XF z@w{jto+<+cSZ+FWWAuapB#6PC*T}&N*uWN=Uoyv2+BD;H5NP+FeA@JbIR(*TQJng1 z0&*^nPzd*Vl72)9iY~aVl%7;H2bYKZVqUfl>9G)KuGRc8xU2=(3n=w977Sh1WaR;X z1el#-n3FdDuRXVck+9!eXZ~Ov+&+x0 zQ3b~4D_tzJ9PEUdJSw!!K01i?W3bX=%S+=)e339gyjCLUjlIV;*6N0X!_jmN{4Oa) zN!`=x)wtb;sTJ;z#m99P*;naAoIpOZ+1RGSCHqE|aD^SIK0YBWl!eSI*y=pJyO6@Tuo8=Ds<5L=i7KO5-wSulD_fKuprZ7- zsAlomCNnN}D+_|s(Ll5L0DeKo)AYNw94v*TGFL@_A{S}jxa1CVlEIIxdpOAa7?ue` zcfQ@tqqX1yXEb)_#+JBl<38Fss__@Q6m;+4yR+}0tuLxuK{+<=k>LTix3FxRg&qGr zb5tmX(sXk4UrD9}P19Udz=uhYJ_?gZC!lQ$f>2fx$>A{g$C%U3ajiiW>H}?QH;s!^ zV1Wk+2$3U^S_4N^qH@jQZo+d9NPM{L0d*iA`gTt0^3Uu*oa4vMEPm&lKTXKYIC$O2 zj_1+qkXXTvC~nkxr=6`lx#LqM7HVOs2j5%1G66)vZpTFd>+}}K(!JSOBWGmSz^a^4 zHI?668vrMH!D2C+K%O-BT1;Ut@`#b;A>smIRA}1phD~VEM=m^-A7;kx*bS*9|G*IV+lFEkRa!)_q4N^iJ_zaXPlse6N~ z>2(jDnRTVyRSumq72<7X@#?htlXs_xqZRWlkT=fN9bPr$EJXO}OX zPd*M#Qk_pR4Cm^G51|!=88WDub)&~^iw%_Z43;IM$9c^4WBY)>3KJRB%=EVZ2^#0e z?m>Yaa+=AV{u2!EO2thHjS91V%SKp!x{=p2@S|C+E7tcC&5rBKYUER6v*;U!i6PKV z$VG|O+b*qAL}>ay)#E4^5nmWfrFTaTDjP2*yG7bY`e``}DiKFO8I zSc#W;0Cg=cG%J?PMUj_%`2)_&V>J{?u{4W+AQK`auNRU?wU0Ha{p2^x$|7%8Qav4NhWphsw4!ry#cQJ{O`MS|cHe4ST!C0Sp4`Ygh+gQyQY;a=aZePTkSb$)+vOcT_vact zUmqMBmn1RFHu9574x(cGql1Wtzr-aIZ1-S}hf}1xN^PlMw$&JY?KgK~cA}=-m#af7 zaRZO)w!_;8{$8L6R}H$@4b+Ey(4>Jv&?-DMo&j5HWHxDCAVlNf0z=P$N5vWyy}M-4 zx(PklPHF)fjNYVg+#opOWZTd$y2y&m#iEz>Sn^sGjZw1XWC*B+#5w~Y7|r(&gubpQ zpkl!Y4-tZts@|;%TtA8CCW6 zj%Ky#(<-lV_IjxMCCd>e%4kuPz^9=jw(bLFEf4JI~>V3l3H+F$l@43}2^?JSQ_c9vJ`dRh%Z`KDc2XX24bTEJea-@oom$K|J8QI@Rp6JHUe9Gx z=3CV7=QeB+tj8D)t@+#|X~HEZx(&6*t_`(29e;%?oFE!nKL*#X@@0Nv#nN0iCC63O z13~gt49Kl>sA&YfR{vt}%~n4)UX{%=49`KfS>w387?Q+$dd*dpnEW`y${6A#2a^fn z4gWrFR$yfUx2v$Tkt#PsNYj}@Ele+hOF$-H1fP>*Kq_5CpPv!-<$Hc{=(tI8myAta z#e3bujBI4Zc0G5DZVdHw&0WRu#0M1KsehN?Z=6Xi8xAh zxk+~0_b32ceifNh=)q#sjPzSHq(!~Gjv?o>w~4(K9-v5-EZm4aEos=<^CNkCWjvHm zWl|JQbOkamxnew45=mHFq4Dc<82B_r3=->#1{IAx)c*9pW|@g4Sle4I`?wA$v_G*l zp}ho?9jYu?{FAY86&OLE0QL+spl8 zWkdL&-fyE`q_E4`Y}iA1Zg7o`AWF7F$A2hVz7?`bhaWq=+-mDO&A8*{NI;6{`+0C=bh^Y9U;Mc@(V~sa{v2x4$01gH((j)!wq`uv-jy2(7f3n z`<~uz!p)AN#}81j8TS9Xd38fOYvm4|ZD=(3EDl$`PCH}A`nRu{ z=nU&iU7SC0Zv306(gt(y#EXA`$I=?6|A#y*$N#QVjg_9||CfjT4_ZQlBl_k${GqeglsK*( zFaWe2sUyc^w%3#2xdT079AM$UOzi(*>>Pt^3A#1icAvIw+r8ViZQHiZbK16TpT=q1 zwrzX*n;R2xCuV-!A5~E+vm!Ef?j5^UWv=&mQOOjKS4>N#z}!K@q|(MHE|+4wVqmA>YtkhOa4~ZyuAh487M#4X5je#*(3k`5r3)w)7M4C?nRsa zj^p1P<{!8x%+9CKLtYw_`Slu~+e&it{DT<$#A@08x(4%eR?yi>aL%M?>dB!sejA?F z_I>$mogZf??a}*pwD&Y#OQ8pINK^m-TyQ zXk(*;U%i7I`qZozEIR$xzrnk02O^Jp2k6J=*HD1duNX2IaelaIv*qt%V!0thv6%=4 zbow~NJJ@4=xe}A;%rD6gE+GH!%LA!mdVBqKmZ8hXgD4i#sfphPj3r&|d$EnbP(Wvs zeq%zQGr`2@e+c=e8=!y$_a!BP^khmUx%Yt$G_->ZkzoV@>C%P*@~(}mgbUp6>?8-t zfFW?8Bs8MMfrB0+0eQga`d}ATv6(a?QqXr-M^Z_p3={-756L;QKs5c&nelxZO-v_K zP?)_XShex98urRF#-xN0K&9nG22WV#|9oYJwA0c>1ZeT2%_xA4k%nBSP*_uOlVW_b z23EdeKHSh>d*aMdd;(?NQKRY=HbR(_-t4$9#NVJ0cULy}IWS>T%$GP1L zShmJ0v*Ty6XqV(^DPB24)-mL_EoD)vbuG<=*DGvt4ZA z4Ccn!mn4I6R1;eee#x*DGFfK`$5zk#;1H*km?bW;MrLXZ$9y}z<<8eq>;oCh^N*_G z22AoCP41fD>qeR+uZm!66RHC&nY3~As^AUi^r{BsmyD`@y4cMr?c*u9lISx2k&!dOsIB8!g-p4wk$l5R|EG=+NmtJK>_H zgfZD zIp^Xu^nU?b{t9loPI5wG9ho1My4vjl*==EE#>-HaGwmj}A#DvH6G3e3yKIr-7^_H3 zU&3PhD6t&v4N@=>2|)KgtG$uD~e=PE~7`UJOnS$D^?{kDyPWF0&}?IXbQ zAT`U&?XkF0U}U10NUL!=i;c^B!PZ-t?yGTDyG72a8d=+vYK&a_AC0A>IlXocBa zLaBOJ3tSFeE41%c-9aOTRq&}?QO5!4FsZahdmmE?vhG&Bu*L))Y?bQTYUb#)PkvjI zFu1K|W+-rNYGNE&UQa~{dZ_z5=d7Ow9R%e2c$JN$fbR7pV(FBh8I};Z!&gui7I0!U zD8VIiDJ^o244Cvi{UFWr;Es9(L(46Lh9lJ~d!#ZG)VJ%(piH_u_Qsp<z zb8l+rJ7~%6W#858$^B1$lqn1Z+~{)@ex4z66bKY`c_X1 zpx-}+@HISE{U)_8mG7TQSS&qUq+lPVtZPAhA2`aq^oMRRdmjkngQ}~!;=3;h0I|sl zFxStb^A&W&_Bl!}0j~7kg{_s63z$T^4b{zis_~#pQRnt_7q*bsmzzcR^eZ;k;{`{| zE=FTV-NXO}U5Q}XI>Dves6Syst^-%#W&@kx6V8B+pK3e@%8&#jr2u6GkX%y*0RhgT zv!t((iKvib1|qex>gm;s*+FK5mlM6x2}Q_kD%6{%aH6sKgJ1qe=?_Jv1eG?OP*-4% zSa{8ztZ~$E289w-ACagxBaV zTLs;hz9ST3RqEPCC87l~+DxQg?8muq@S{r=QsDfjxZ4;~4nj8%gTIYZK#V4XOQ{$= z0u?tB$FUUJzl{LD5&Nz)qW1kTk^tcsmDW`E>jFKM$B3_QK$qu4>|-yH*46d!c~(G% zd%`KuUc(^@#$r^!r|O}ycM?>PeYZt^=$JVajDNJ_NL8RTH0mQZEyIH{&S?5wgQ#{S z_wZSx0~Gssj%W)Eb+`Pl-_)lmY2vh1wO)-dD3Wu^cC%oU8Ae<*uL_1cFqNqBg;R*m zyt8T8`Fv-*^K`%*hCuwYf;sYBSI= zYPxeDP5|SuqW5)c6CF82HuRnp+mdc}1p3nTpcBq0qr7kqDpI4&HFEQDBC*bS` z!LsRw%$v^55IO5Mr>6EFLm%Vz11fd|jO3>i@(Q{5tVvfue#y>EGqc3~J5S()`lMgS zmZ7}kKuH-u6|NCmOW7|3TTV>Bji73kW;GdpxejuRw4pcec&C#?2f?xd)Fv5vSeCHp zFWSco`AvloS5)6;-@<9^A(7dgYx8}hiK~SsZt+C@#>N4^X8I;i4pEeN5_J>dNOBg{ zP9NF3#+-}Au6I9NTu|o;aVXXS7S}^eIfNx>u!->*)E}~<#on!k%@<4_H1=JGTP9APfElPNMNJ&uw4|H$lnxK)fGD5R1 zVFp3*K&W9bOxKobO0SJ;<$Bd7-jx%{RIG&q%3VusGQgtX=aWu(GE3CWuUWB@X-m>+ zlroPzFzj2QqQ`WCQUjQ=hN*db5hiFEuV2n}85-gHgg_XI0S-7K? zvw={%K|Rq`Qu-wWxnxg^vrteS0)pBP(cBvyJQLX5*{!W~Ya)j=a)fNPs^J0x25X`f zC_T~J?4IrF7_1d7CP)urN4RaLF9#jP(=+EBO@uhn|y({Noe03c= zZQ-xk7_?%JT6{nN^1p?`$*pCF(vs)^T+Brt!aOiVww{J?Y=^}xGQ#7EW>hFjMH4zE z5a(YylF0@pWtB6HrR-I(4=-MGR&#obZws9Z9i=nYyqCg@*qf1aYqgkp=2GSmX)HmtkD179#uD3q7v-aph;a~pi<`>>z@;@m9gKkJo5uVCb$6NS&vvXM06ES9ll>C^xj7G@IFw(D z`VQeS(6zD9nf|-y!_sCUjl`>3AC@LUl!vmKh!oS^X4TcvY#y?!@Zy>&&Y}EwmLBc) zV>KSuzBxYjKAG|{$oc0oUMU$M=5iH%=04|`;d2<9k z(zO(lIneq_N|WtO66y~Bls#D^fL#Q;{TszDACNbf6;{8c3A_~@%Y?umtoKr*C8y`c z79Rnd5%)Xc1SATKMT-spK-0j-dT&t+sh$hwX8Gxql~UVU5@G33Lm9>|B%eyi6@J!- zu%{jy6%?N>SADSOA1l0kJZ^lu@rx5| zo29_=G=9XzqyqMwyDqIja4%D+stY$&V(&I~uEQlMD9FNip$%8Lhp5x4RIf%~Xq8=* zFw!?cF`{CBnY0Kw^Qe!NoPWs>{*=T?ge~}12U_HlNR~2)zOxaH`*7*C|H|@8VK8sx zD*MOXQ+3wpZhw9+zR6NOji~=~)o8HT4eh+#RRgXF z*2vZMLbUxU2i>~7dq!Y$$Ar@3-C%3SYuj&0ZGeQ)QB^t?fT{iY_o@6pz&h?%y7mV zs)TvtNxx$i)d?9H31!fr;F89JRJzeeHHtu#!9hTS2g^YM1C=(4nTOzxxEYhR$O+X6 zZ-P|_ZyIX^35MA{4CvCR5uu#Q1OzC*6assDjln^L0)>A@dj1)kM~#pWl}Ck;(Lw*ex`N$* zTF=p-pvWY^LHOm+pgvWr<^M`od&B%)n&(rgp3SDL{)__lDseG8oiK^6Ts1e8``Ce@pR0M|#o!d>CReOXCJ-ZZw(DhR&Bd0gd8b^?# zgwV+uLy*ejgdWiIodH(96%3bahOBU8;Kh^>I}OC2qU6N{B@l%O7Jx@lJLw4SYg)$2 zkW~|ffFFW-GQrwQ#0ge-upsk|% z2rJ5C%VpHToR8Mgry74IW?z1Z9b#IURoS@^2@qsljG76Rpx%LtiPsp&o!mRI|Ta_Bbm+KORA8XHiFN zl+7vi7ZW~*7M@->W;vvu9gN0MB=&%aMzJusV%3O7@X&0!1sQbsxd}O{;kb$qw6Cq! z43BC|3QpvaIg0`nj2hRPe(m*UC_s1_aKdo73q{}A*p6!c_;6!+5mkdRe zWT$mh?juY~@asm~{><bRH+e&#KKRo8f-(AA)pz>R1d_ zvkLiL^#S*FpikzbOB(i{>&~2C$}BP4nab%SsTRkljBKEwcqhxFxVY-h=K}~W)?Kbq zQ0t-F+}R=fP7c{#|J>r+rW6ew*pefCC_E>vh_)qb67;}kBJ0-{>60~Q@s-kjBe>a? zBWEpnMBC(EUCB=m49rXANU4|3i;NQ!rsUjy@(C<2>cplUSIU9&#zt+#861Fls}FIF ziae$a822W(5;=6A0IlPgoo5QncPax3w6M^Tb+2|!38;&kwScRe zG{==?L7)j~(u0H8o+X@*Nhw4i%#ucaqjs=mEek7Rvm#mB%T9MFOd`_lt5+R!0lOQw zlD!aho{|nCNZJ8o1*&>*IqEXdDQc?KMseP67f;##(*#w}YwSEI9*b%3dmRJ@UG8bu z&GCOpTO0XHqI4JZtZ!wBf_}2&3b9DERqxB|yMYFerwJ_t_?YNRxpI=Bfqisv$)`m@ zdvhHc=~H|n=ft(wjzWZKULn&(?jbcw-NOmGNl?7XXofdITdps^oP0JQE`VQpWhxRCw2MN z|CALv6-ylV%Vg+8^%aE%<@iLIGfH-%%J2Shqk@QDsvb#{pGDfJeVxhqhq=scU4aKa zxZ<5#yz~@h_tjo)>u^}p{P_Znk9UcWxf;f>u#SI)Pl=Adyh{VQ5eLRs+~}lTMq5>| zrUkZI*IPQGozzSz6vXz@nn{%BEfEi;no^>ru4w$Px}!+m;lnIL|+M=Qf+iD4eI zqe(y2dlSPoX9LZrm%w=yHDjy|5YF)JJvVLSHwzkBQbhWs&~MmVXG^zwI%swrmh5?_ zRMXQb<#`D-u-s5&V8rW}B4MNx#p|~sVWgK+l(@nP)G^-gtgmJPIpEg+vyGsOwf~io z#DCs3ZNEIh*Qa`kxtft=-d6D{C3z*K-u(QnqRz&jujIx|`YKg^5x&aG)f}v7NLSc2 zIf{T$FIPfZ%V2bP>9s{O8qcV#gjyQ$5dax~W)z`?z4iUvx9@J)ZZ3~O&3}?f+vOqb z{bUR_eRlyFM&b1YI;s`zWHN6ROdO`}X!)1d63qd06m+-U@kSulwwm{kGh{|P|JbD> z>sR|`&dIG};@w@>Y&_&a0NiR+qPwow$a3NSmQQVgU7F-mlIr_ zDy@0km|+qK>th4)n{LLh`=sj09~MQm&86Icn-7gTS$fu=R@r=pCL2 z4P#~g>0F=Q|118|{->)KjUZ5J>Gr7SEt(&Z5nY^bte3u2CiC-N-hU;oSKq(=;|ihe z^R5RYgiayKP@2ew@cv8H5SN+2;Lqs4F8b4-+s+1Sdvy3deO@}y(rpa5Pfnu{4O|*c8rEPc)#c4 zIj%h7y~1@TBAL_s_!iZ>VDXWI+wXZG?wQ0`#+7^ekT|g*c=}~&9cB8#MqcSNCPj^( znD9%e=u0Dhzu1}_J)Fme8bN58`@OYCS&uCrpp7y?tmY}(@D9+o^Xb zwSoPq?)_~8^yl$yXFgu&rEdp{UhK{-nm_s@vIx2{^-rU2AlycAh_1w-Q+>3gQy}v$ zF*$QlP2ae_8J&g>Wz6pW@?BRAsBWBOTWjLwMOwF|iO-h}<=4S2RnvJc^*gnZ>P!?i z0*hGH^chQcJ=PF)I&PImT%UBNjGn~hcK&FL&hgu|V{Ml>Jqkzr#rX`I>OVqNm;+J1 zT=3B<1fX^}KnmO3;a`(sF>6$O+5x+hTSPF*VZ(4u=#v@;Q;Kf|Tv7dtF@BjZG!)Yb z<@aw-T0TK#hoiryn_EmfIeTNO7DmWj2(|^&u`a%<2ZX7n^Wl*)E`Eb5sgLuhVu#gb z$>id?3aVwf;f$rC2)xCC#&{M9@eL>{=#qBKby5Oo8*+DD=DZannj%D8J4qO^PQDZf zo}a7-$^8vq$ImtiN^j)tYzXn6niv_>&|StlTu#$7GAL~hX<|L=n(NhsS zApiblPK((as?&Nybc`254mqfmdcnCH9N)ZGQ>FJ|OY*7!Wnm*Au!7KJrf z)h)8hnj|c1kL|Iij!Qn0>12}@zF$rWX#!6HUOP)KI( z6nclq+Yye8&Dd+Zka71S0)=jVgpO$X(3y7dZUD|sJo&%KGh12TnW;7hOUV~M0Cy?7 z9iWfLRM;2ds)9P-%jJOead02Egz*s=;8HbUAIHAv0~iH%!O(n)D0nfZ!^`NH!xai6 zaPRsZ#avl3B|8CfS{#X_bdYBXVOmiLC?|fg$z_Q;~ds+|#tlTXS73Y{p-Bk9rcFY+**aR^hpoXSN^&9zomzarn1tekF~ zH1SIaCH7ikq;`0!?@>6>k(XYFwV<;RLR-OUgv8+tiGcDuwqpZ=)kJ>zc)KVhk0?Ud zIR%Ui3b_J@X^YUOQo=IQk|Be&4mla2rTTq3X$}a8gX&7YHjieZ#=r3fX@Ejl5~xZr`atg!3;iM_?q5_tKMC(7Mv^gl!?WfjxmL zH~Qa|inSTQ6j$DjZb@FuWd;#_@_(gXkFuTae{FX3w~BjrzsjA#JmB1A6R%2ES1@^U z#16bGDRsA=!pyg6aZXN-i^im}UjjqFavw#fPath;AV^vDAnxGNLl-cxKF#%r?4j2XqByT%kG zU>-fiZlH4RZyf!pC^65%CYq}oj#2g&v4IG2JWG$5Tws*VMs-XhD=F_GW`!MMy>tvQ zJ5N)kd7|jlHNl5b*<)kN$5owedFH@W*Qduc>h$|_UfxAwLuqHYeB;Xq%>33Q7fn>T zYtSj8(!3}mBQ6%Oi7nez55XCm6DtOSilPp|#zpOrCS2T=VGNAWznVr`XJ`oEK=Ltu zPL=MI)BMAMP^!cB%xpznu$%g-eA;55Y5lZlN2_6~PZvWb@I)^R^PjJkOQpYAfi2u> zj~3MFWXWMy_1B^kJ=~-qosF>v1X{{Mjp#${?cN1m(+zBx>%2}dXGV%HX_6gFnXrM5YI z%jsGW0?2TkGL4dDXDW*VgxAU#R$4h)Tf7fE!$!yn{FqfaGh8NL;OXv|@;{USF#bo} zA^P^)Ks1c+^25D7!w!uns%h`zcb? zIguDRLDvL}f><8#4rnubj8trFDf_UKfl#hAzPOftn@tiHx(O*Laj=4fD@wxTiuOp(Vg$|cnrziDA7)Uq#_ zGrgGIECQT;Kw(bK8vZ`Q<)zHZKOlI7gMDPw`=qdw9tMHd=aWPqk3Z1l26WQSmtI|{Hq+ZtxB%28)(=ORgH((QVgt^ zqchCMD)%$X#duRvJu;pC8J54$6i*fBkLRw_B1hl@o7LT|lV)y;72}A-c<=A5VO+QI z-+yVQmrN%_g=^02MG>7AlW4e#fV70alRXIYD{AHCg`}~#rP&P)VI`p8&=|%=EUyrS z>+Y~w>$Wl&^I*i#kX8CLNXz)Upw=yNw^=xahT1 z?2a|mLLy+`F~0D!4soTB1GP}123A$?Qd}2)t9c_!1V3nr;zhZ-K`dZSi-i&YvF2C^ z2a_xeuK>rP^C;)u>eSs}FElm0=*};~DzuiIGSEWEi8Ztx3PJcZzrB3Q!rH#mU`}i) z?=G!AAUDnFV>W-1yU^-2ayea5zOjN`!D(N?i`-K0mE-&B4EX#m49E^50Kd@qR}+92 z&5vGZOdk&7cEPl))f1|?ok|o=j>Fzqt%PPlOI6WYYeQN_jB7sIa=M} z*|=y!@#C9ljkup`?l@;copW6bufBEZWRV#=gY-lZdOErZ^JCe}UUqxNTc}w2B27SO zh9+^nSgYjA1W6Dc&lnGJ!Ke&d#6Me4Dt0Q5_LcBNM!|m+04tb$2rV;Ukn>fo#wF5D z6}ZYlsQ@-e9%#Zky}xWtQU#bk-c8D?0c_B`ScG*swd`HU4)l>6;|jo5$UMtrbCmiN zu9wxnW6Vn#Cz)hl*QV^pmYvJRGANY9?&yFg=+m2+-z}9EFL=j+8)YdPC&F@U@H)R8 z!7mP8uRxwA6YekFU#dO3>t(Vv)8-hX%#+IVP1L<@tE)fYlgryVEs{Nh@4UwrB2TtW z&p5^xBKIhjDT;K{xrx-W?Z)+?1zECNl*sF7OwU4gHA;TwO@^-bKf%}k2~sfFO|1g0 zU{=)#QQp)_M*e#piJQ+@~wloe6rtVlBk{;xO-MoNq zHBfIFj}+OU_T!fkOx=2yq!_+>MrJ{s!aLaTc#%c z-O{;{bm^4&mwUMW_P^kvbx7rd)ri%8J13P@8V2ksX~>)0czqdI!W`$I#D8fN_*OvT zya|RLKby2FU%<^LIPjm(SR#9ur@*X;46x`CsXQF)ni=HssAOqrChRR>;97qs6jY#F)h&UL87K-<(-xpM(@HrmOo3^@ zmL-X0%LYt#L8nMBEyBW~!L>*a&@&P{?F__Z9JegY?YAo2$Zscr6_;$WI z?fzbWjMhP*>1}ePWZ^kChOWa&=AsL(=l6{S!A+?kA?by~nvdcT#vEJ`Bms^p7m=0) zmg2@&AA{APWyB(fmT8kr$<+BItYHvD`45ua;jUTU5{peT$2XflR>Drx+DdUdNHxf+ z0v(3*#LPBd?VlA0MhAJ-&|CvytbyC^PaI4qt{fYW)1R0UT1iN%G|M40m!n%$9^Wpp zmF53uu3Lp>3a?c3j^b;a{u?cV8vF( zz%4%YAZ(BslolsZ@GE!4Am})$U@_fCYTzq2Ss;rJMOxi)3juT5uZQPc3zbC5L|#75XYk~C4lxoLP{ zb)EG$qQK~j;JpRJWJ9GRLK3$O7mbD1WG@s_v=lkh`#Xd1bQ1?V%_)Nh&6nR{k=ud^ zA{O5^CKr$;J3`Q;i+?cB=bQyn+oUf!{8cYDe;(}>EAZFygi0BeTbLmi(nApkP zJdsDuzCQ6bzpkx&Q${-1Q!GbnQwqP6FGT9)8K*+qoZgc5}SieXsl2CkR7r z!ZV!NX}4AhT!<5df2#$YBT4R`LRVo_#HecoSlx}k#e*!cra!WQuV~p;>uU*EkylOs zLQo61FxKnR1%3i89%4av;PtlBIRR-i?4+6EN^$#iV&ZEDs@moYYvAinUm5~6j%0Vj z99g04C$u9;5G2LvgmYTs9R9sEB$6%7?t#4_b2-^zW202}Q;5SQqJ=x4yC$jy!y~4J z3xZEf2W}NMF(VL2muYq~DEPs)opZS=0(?b62af-9TocoU#!5sB@1R?r9wJ-DivOgD zL_aCw=}(GS{F5R|{G^Cr|5u85B$vIxtnGE@dhr$hY=X(<~3oO;S^sv;3$W44iHZexYWoN>ysFq^%*Tv_7&>F-hhAp3cpn>5TYEXvR zDBYBc~t3m8U_s{f(IWdrFmE0p01fm_K$#m za|{!y9`68ch$TzML+MRBl8lUZYpwiYc%iw-KqhJM-3Aj{*fxm(IV?LmEGoQDXPy zH1d$i@yy8-M#$3zjYyyPa%@VSY=_kSkdVR@scPJ2tDv%nFzX@m^fi5Gt$`lluHtB@ z2YqXVH6QG*1pc64L7rs~;c+Q!bjQ77UP)ByRqykq0PYN5JZ#q^Uhzgr%jT81V+A#4 zih~~}TMj$XnwHtmGuMw>w9LP!21Y$4oAQGuH;z{;@&hp@uGp34@tF2&#+JN;?oqEM zvNc8ccnRIzQ1b5|lq2l;7i-MF$E16&>U!^8w3HW)r6T>rJQ&uOlfTR7j8Gqhiv~}Q zIgkJdRP>i3mmH(;LmN{N{9+EISrd@pZb3H^Y3uw*mJvRS%-PhuB9E=acfm#Bm|}os z?TG9!RBs;Yi+fu7@EyD8-p%OLYlsW7?@8v^q>X1M0(lxaReRvuidF|BM2jO24@8Sw zPXR=WFn=4ww*B$_U;)6crS}+EAgoYndk#4iD@xX}cSWx77dy!IrFsNI(o>TE%oEVm zzQ*a|rz1nM5w90)s zEOYAv5+;WY*JDMf^5JfT0z^XuKLQb=UvUVX*F1m26}#EqqqaJ60?W4FH;Haa`15nF z1Y2Uo9mP_zc%SdRGsuoh=Dkt}u$4EmeQqQrb^jJI-M5!JJ$(+(*m+61BTsor8`nU# zVZt_}7vZPBrO8UU&D}dqHfCCeFF=Z%<(1YvR{@x+iLjvjV~q(AB`TPTc#r>SdzDN#1>jlm5lwDaSZ5`z|vT_x^++ z@jqeGx;c~#MHJ9EB&^JG6wpr-%$BI*9Fkr7Tw?>N?o!rmNXaX2#b>2c{$AT+@$ zS$bz~B__~1BU^rp;aE3MoXdpd(Jn$~mZyvfy-yB#I+T_M$)FRqDdMGRD7v`R9h2-5 zD2~l?;^DJE-TsPt&f^U(UAUrCQZD*33rjFMC_6$S+>8^ZX*Z82BSrc~!+5$6-g(Xi z!3rMfaqA5JU|NUr7t*DoS%>m^;Y8aCG1ledRB4MuGkVFn#KvV<^x{P4t-Rfz1bHPt zkLaZIhl93wAs>>fPJRI2v4?2g)zRmO0Zx*f%hC*p*qQr={_i;>?=ep`+2F;#6v_Xz7j{Mk5lnG5fWlMeR1^f}hjUz(&- z!o43&wap?Tp5UcSg8+#HsO8sxV@QFiYIba*p7dFjO= zey|**zsmYtq08m>!f9H_zwN!k65pzZI)3t=g_3Jqz4K`NXs=BJMPOBZ=1`G(o{3;8?Q!I1~93=pgXDG!PHwPHkq35yg5=eH1t> z>%2-u@BF2>t~$fs&-J*ODy!l8=#)zo+1CE(-en#2vE-G#^S2?RI{E+X5&jRk)oiRR zod11~aFS=e2B-bc^;?vm9wA(`Y8P-H$iA^<4hrT7qz6l*1}@~t!FOO@R4cJIcS3ba zJ!lMFYKF_2<{X=ac%PNF8*QnpVzU^-A2!(m2Up&0ezeA z`}yhcTP|Q|J+1e3(oX-&{5^W`UbI`1Tqp_#mo8`eqq!NKE~jxYy3wQFS2AK~uW2!J zaNIolm~QTLd%-UC3j6h{d{k zh~Xkmw$C6U?*{O;p@~&++*W9n))6dojXH}og?1B#qOD~5^zcC>A$-vsAQl)cKeQZlQOoGL}vr=E#5n*6pgmsZcH ze)OIJCbEH?8-+k4M5xb1Syh)A-BmL2kJ)L16tB{yjEc-p`IQZ*j_?kjIu$*G0yLp=4{^xqj0XGROAqHwf zkGYLdI|RmW}CM(iA(r}o8M699POd&+j5`$0(NeOg=id1ibLs%M1r5LEmcNJYNvWK z0Hcr`*j3h}l=N1mR@QP{~sJc~C3coB__#@eR`jKp<%(bzts_dVe_zOcMma}`x zifw`cczT!TzjOQmSONn-^W1F=X+tHt7C`QP)@3RPie77FGo+$ZS!_W^W__yk^>lZA z)Pz5!sliLOpls(2PhsI~V6z7BI=)M|5DBL8b~C2ApE7Y=0P?mlAFjPcY6`kq+rB8iB~r?&BXt6JP7qSUX7$GHPDFR@ zDG-{Rz&G)*NF6g@XW2*XAYxT9xNwVwZ3^a#h5P3a$Vg<^0cvn|gbf)g;9R%@rzneC zqbS5fG)qEtt1F@czbm&SypX2vzR7w3*-Rc&#D?fK#Fo^U2+and`$sCTRui%O5DcZY zfZ?@&VEIJ4BwrNKS6YhPQdA!~O|nRFF1R|12SQIpg$Uv(KrQj9YN@o_a+X&D7DP)P zP@`1{P}O=zgKR2xF|*7(vsrv970Hurj+Vx8#jtq>8a5F<$PghRUa2ly|<7JxRnOK_Xx%=%uQT}$)sa%~qSpKFl247S?Bi`d& z0cV`guHjk%XJ_g73<4L!rIM=l85%FRKt0tR+DFH9Z5I(p7kVwXIJ`3Nd#HjnAvTkP zR(e*L1W^I`BNJ^0sOAd0SMWi$2-wIi9*>xv4Vxi?wf(eEuzxW+Ja`%tdb;=(kW)NS zwkhQ_dJtr_B{jZKWxb@6J>4`an^Jc6NJ?>C4`Nka$~F6;mvZxN*x0W%YnF={U_OLc zvwTHX9Fdd%f=gv~to-@?)=nx~BEjXdOIE)2NER(Bs{M&puC5@Ib5;7U*(+b-4GmbD zkE>idkxO3k8w9qc%GO>h;nr{dq{6aLzTBG=+XP?d?PdD;JT_9K9qtuNTF;wtY#Q3! zBJQ8mlYWm8#NX8#E##8LjySa{s`LnER3?d2N?It@C83VxWb;5HO|tcdS8Ou ztgcep^^sbAhL0W9`Pt%^t??60v2!XC6IpZA~^rE zGRHxsoZQ?P>uW4AatruyYaFv-h;GaD0k`;#&kj9>_k9ViZc^kTxu<{Fj+ork&V zwY`B(Q|csvW83tYO60Uegnk)EIG8r7xAYAqr~-Kek0DsJH=7umwTT^w<0|7Ua<{Vq zw`;WHY#PDfab73I?54z=|6T~+CI!N{znc46p>d9L<;Z9|gvjY!RPB0ll&{}Zb<0NV z^ifJ=d+iKn4lr36xmhw;n}Y)dEM}<&Vqf4+Y}rd6=qlH8NYfW0u#u=Uls5Hn?8mW( zd=Bh12Q<>Y@pL3_?5{Ul)6_e5e^ZCLqfX3jT7RqEYldpeLRw~rsn+kNg=Yc=iR=FI z{b6aH)nKDiSJP?#a*vhdb!}coGoQ^vrSmI_WJ4bRJ4C7j>ppBPbImi2mvImy-$?dK zBV@x87Vi?{S#mh*aXUydzbx!4e@=KDAB%s!X%EK|)Q;`2E%-W=_LsxXvSc%}v4=PE zZIh#a;f21UK5huoV}$0s{r21jG)F``Y~`9!ZqlJiCS}np8?ub3M#fS<`Zzps)X!Bc zI<=f>4Np7baxhvvYc_si12`y4c)j(B%V9HFU;NLr4p=Nuao+f91YE3XpjKkL29#?r zt%^bQC$o-Jh|V4?Un)0~u&D!`N*RTnhhVxBY>klhXZo&EDOg}BGsdU_mE{{uatFKq zxz2ahaj}|@IcNM~V5I|9ny{syC)ET*F1tgE-C&H)!P7lE?Hru2197o`?Zl@eofV35273 za&fRHQ_9)nghfrLbG|pabc`*K3%b#PBik3}Xh!q}4~%A#pq8YnWC7(+k>KU7~2e=jaP}E`_qHQu;;5xWgT=?$)L;u5uwHes0j(E8MKC zs8>$y>&K^_Y*uNk=erxV{Z+)5k)nP|f;`fBOe4xzW3NtnXo`CiWjlfn{yyJWmKPqw)j69I_15UI} ztLYRfXMKo2^*|g|KguzAByBw;h0J+ znwMBMlzzdZ0s+fHD6Ioz6i3A;$ON8{nUEmWx-27g1|75p=S{XIIf2OomXuKSZ!n~c zz|qE-N~jpm5TYjosew+1KA6UQTrR zf`h=`<{G^2_E&36!PP1j?Ga>za!_3qpig?gOAUnjXln8YO5NeX&2fMy z_q-$^m^gvCLgkL6>LJr$JW+4qXlw(T;qMxoHj6^K;n`F)MkLx<1+L2mlv>)G^l$;8 zECq`r6-d`c>R?w7p{n=S{0~ALUYjw_C+z#Lp9r3WKHzcagVMG30{ z(M@U)Km7Y#^18R1YDoQjvnN$1wJ!*zXdSvY^?+@)*RQi=Bh=AiDmW|b0P$0_;G_to(R5O zj>UkVB}_fmU?1hGH}FSpX8-s#rLP!nxsGKmUv?P6%y)PWJW!=7iz7MWfNB%QfdJMI zfAn*z?`>8`-dTY4!U)hoMrB>BH7WYo8R%i37&<+{7Oq~n;`27!$$k7jc^BqhIG=|J zP8V?pEUx+0aF6M=Rf;=&vYT)e7uI%gOI4gqYpMtK>9&z#bf3Rpz>kk-(1V~=K85*F zX2-d3LzxxBD>$dvMoH-i|QOKz)FpaBt`J+Z!~|WU~5y^FBZIV#2&d9 zBL8#hcVws9S!2pzbH3z2xJ{u=OZ|CG`lDjc=0E+8elk~XI;1y7;$cX#TDHd;{Akso zh@WeZB}0-G@Ol=8TauPO_l9ys@8yxWW3T;K1m#;J?}p1*`qFX@gP)FW=70W9NM>vi zs$WjF@6#bVR-b>>b@2?3yI*+S9tIxT&LrDWJ}>GGhaPo40Eg@1MVL%xPr%=MW(tQu z6ytjdN9U0S?8p}8fW9akJSFHs8i3yB&@n>&VSqw*Rqov717Hnip>^` zFlgqq;RAUwzIgedb%_Yc#;WC4)7GahNfm`*p)S;U+l_eXJKbP`bLVjW9PXF(`p*&N zb7LCQH%AJ3VcnC86wFWCGgk_la7tuh3DrEEhh4TLB*FM|i+|bLe3vVQNFbtK=I4s= z=b_;8rMbattPm?^e?Qm1(lRKFZn+W$g;J#h;T);NIWH@PW$avk9*4wNv8OeTV_M z>KF>V4f*J8D}7wWh|n@84~`(A9{Ah}U{)HYp?KODGTwRlK&Ee^GhzvZ+jEXS z{4q448X)=kjZFk`-A~4Y*3pgO11}2pVTc(zqz3OnVOg0lyYP8xk&F=TuCsROqdnIyj+nNH0=z%t;x5H5`1 zP9HDz6B-@q8jmrjg87yU)oXtCLVUAaduSPP-a4U3RsvN(bNxsN!6ww9#GJ*`IQ`XNI={|@3&Ro~7=0I%1ok_o zAPMapDb-4!{WXI6)dG#?+8?-#bXOZ&Zvk_)6^zoKoVG*W9oGZ(2i~1-a398hzZxC= zi$zg>=fr7>4HlcbOJ59lqvs|!$(=b0nWFIuLXXErBUX&I3)}1Pu4(VSu}F1xB(Kcr zlZI}tDTXANL+(-xs&v9j@6_vrwRPminI%rO%<7%sw7G>s9p!iXi@Z@tTBO*(n-%6FN z0nwRTsb@E3xi>vNe>Hn;kB_O+wI;IyYIwtUpc(@eg4Mh6&>$TC+yQRI%+Cj~zL!}N z$9z3+_T0Szv0VY{70Md>qF*p;`DEd|!LLhhQ~ZB;VOjtGIGNa4SpSE5;Fj)IElx*l z?{!)EIk;G&$S24ENP{oeDm2^yaQ6fanmLHc(`O(!r4mt9r|&x7a$E!KMe(#UX(T@p ze`2*2dcoqit>66yz1(M0$%)oR?}yv#Drv}t)O6N|eav5bBx`rV_vX*9=c%19-gTee*Nyp_-{%hOFzwRGhMMpi z(d;{7A?tNdsb}U_o&Wae$WI+UpWcsunQaQKbKmVD1GZ}x-3gOVuWeKKygqPvwF5)a zcMh`O9ll?AumRBx2OwELKHAkMaYXt&o^BLGdV0Lt-G6Tj-iShF;Z_a`_da_t!Dm8N zlHdOhrTi`E$^b09`#U_{0ncBPL(i;_k7xhh$V*Ybys@RdpjpfUgh2AFEv%R6x5%%@ zjMe3pW6uYiYHG{i49D&?tWUy6{7lF?P2x_XE?a<%UzSJpB1d7|y9j&umKf63E3_UKIkdm!BF}OMDB9j%J zRa2$3k#ZeewiS2fTr#0)yoqt0XCHhxcGRYh*Z*l5C86G$_~@OfK%sm~GPzczs#OTZZ9e_p<2)Al_*|8yi=3vg@0)Oq z*f=LeckrOYPTo~I)ux*O#|PwluHNSd%Kr&__8mx^cNZ3~ysll9a$nISqa|N+nxI=s zpk5Rz31^PV2m0m6Zr0hbiWidV``3w*L)StE6!F1jAarDQX?H(WdW72^NKo^d6I+t7tz$@&OKhCif-TVU5p((XqfnmpO(g?+y>Pq`(5KLy$b0)ELy56P^ z`{=*h+kt?xzUbeAK@|aLwy+b!Sjp-o#bBX0$KHGQ0#w__C%y>V=H0b>!FaNf$q5uH zthlo=X?hI;BVl|unOp{sCvIi9j@jNAl;M?*7%Tn+D0dQ@Ig~h@UI3%$$bkyZHNheq z#P97#-R5@mju)53_!}XgzF4!}Go-V3C!vA&n^R!V1DJ2J8$aUYGzszFGu?caeHRHw zQQNHC`m$aJS0R(+xcGSe%%GEZ+3ea{ye# zJ3L_cB&vFfr&-{XPN3%pNJ~R+9YlU5tWI@wt&hd-F(igj>O`bFoEk55I1`9gau^mH z4Tq+eHqCa}6PxTVr@Rw}6 zH+VEfkE~g2P2oNAS}`!CH&!xLwF_wEwX5n2X1o}y*#jiR>`~D2w-u!UUe}Rw4|u3s zGoLyvaE2)_NbYi1i+;=mb@*IcWvFkNKc zG1s+&1OJll)ggD=`Bx>~9$=`I#xqn%0oJYHX^1%beB=MT<2icK!1em8dEAbP({W~F z!9<|qLk{&wY5X+|lZ4FFA-xia0Cd-kL@4)sU`Le7n!C2MZsZ=xlC34^a^Tfi()46j zePFsEKUDXMg?~-0fB&p^VAOX|bK=g3evSQ}p`!kBLRSXQbI+)~9#SD2B5n1Oq2HAD z{ri1M?O&3l3;biq^=@))R)t5^@;|hHw}ZYMb#0FlxyU^?8b^9lDwvit-Yn{c%^)C_ z{L5z9X*ek&uza%fNA_SNNr6`vg172I_m!V*~?8pKaTUMzJ&3k7`Et}Mg?aGKN(VhZL22*p0QWEl1hOLSlsL-Pn=750O< zfSeMddFjjz^u@ERg)tr`dwaH@e0$XEeVp>$Y#x>KP- zNN2=~xQOK$Fzr0|Iw><#$v?7)Y%~EpQY*CbBAhLNJ4NrBdbit*L9PELh=Sh$Mq@IV z7qhzq-8iOK9aEUu@K#K_@=au#9q9AT&=NM%A6^907!u{-huBn)sO%%g%7N|VIArxR z=|p7l>TMR8qI*`Xb|&Z!^{lvdSWV)qy*rRy3}ryf{Q zcCWT5gyUI0$Qm+?&qihv?8u1r6IlrS6vLR z<;zl0GfyhrI*1y$-9OuRAH|ytTlfM(z!)wH--Wq4)sdD3L<_iw~$n}5XkaS0K`-wD*mpDj4E(6m$LaX0T`5%mGZW+ zEt8dmh*ppz&?xUiNZ=rZhQPEY{legj8D+-(ATWxNbH@!K3bk%_66<<(oOZbzsE{et ziQ5iO%o9b!gtQ>^lQLM0H;~e7O*|$3fF;%kvQUD_x;e)*8Id>%W}>8u_(=$p^-Ew? zC{-cn5Xe#y6?WkSx<=0doqs$UUDXiRW-u~hCI;p76d-}j@vZ(L(bma~FOOe?!g z>0of07+hrl;!|xA? z-&?(?1tv0DqXhRS+3QiJjO}`|?l*`~<~1wFVNJ>)12IOg9&_Q&K_hD?HLsWK9dxeV zJ;N;762wvk#>z4RN9&QPr}H5!EEki_j@?33c7Z}mBC`mV?W$ah^S8svX1th|hCJD3 z|2j|!*rQoCi*qbb;*5#-F@7(G?TcB>>EekY;{Q(RzSn?9PZMe z;Hp#?d)BGeAoq}qIy-;o{>Cz@L}-Tt)K@$21*XVUPRt|2*OI|vPEsUqI=g@3w2i?f zZR}e+c`K;P3A7?Db*l_y!C3;P8r_JMNbjavMKcM&{%$L%hZ(;ClQ112`3I5&lI^MI zuVCvTR)Dw0+;ZB$P$UzX@ca zYm;;P6$4$0(t#v!z7PUmEScjjiB*wg{W}NgVB-|wIlG;|m+aa6>afOS^nljfEH7)Z z+WEq02*KWM=IH@OjPHU!2Iub_Mx=baiOW#$)Ja_d#PDN*?!zfWEN`=+fO3L$ z{Nb_1dojA`?*#sKe0NIR3K$?g5W!}>iO?R;aAS7nfeTAw=l~(rJh{m3y`v$}$kmWK_wXb0Afcw^D!I9s2Vw--;My#uS(t91yw)x>#(Dj{% zyKc4e#n}&Q*OvKvtA-ZTFWl=7Y2$_^h?1AD{)e4=r;{mN+`dPcqqgvCB#`iH0I+^z zIR@_o>sHVz^()R`fFom^Y7X%IPDr=O%35sQRC~#=@cjp*gX+R1X5EZH@~Q-#$ouJ$ z>Z(AttVnj+a46+;$pYu-afnbN1`*`DR3j}gbqe4c@PuB!(eONS%(MSb6dJqg_b0JgbV*VaAg65)z1JTx*TGN4N{ zp?Ld8g+6>I0@)gW@y+^+);(yo=a4=vX_AE~liq1q#_KyU2<_>@wZbwkB9*-#8H8o+ zx}R#uB`m0B-j`lw7Dhdd4tsWN*?t-KuzoqW+C36}mDf}qarvL~<^Ae$UAD14@7?KM zB2#BZq90gW#N-BlavHjKeCt0xI`W3Fo7@r_`KHV&w~Exq9I?H^t*m75 zR^Tw7K`gtR^g;>Gx6tfvab7@bLe%g0Gd1;!N0b|MiQ4h(TYl&lSN?Q|3WF#4`PMz8 zDh+knFcsqz=hecNSKgi{p>!bE%uM(qNaUc4zUetns#l)Au>y{-4=DeBft}CC9FLpc z&A@Kzho9y(J9d;+%O#p0KT@_8|C$T)_L^7RYrylv>5zB^H~r+{69kBzA9&qK_Q zvp9ky?V}qzhrn?#iSa6Nc_4e#B}Kbg=Rq-H2PSz3 z=Uww0iCgD1%~?n1);|cV9^1SzxZlIQ?OynKIEU_&p46gYgnT$EUh8JXQ25ta(_O-} zqpzPY*5tk3kHmp4V{1F!3~~dHJu^k35hXIP&}FwpiIID!6>Ez)w5x91vXTrt)&5C| zm}|`B99xd=o`J@0+6Lhxmb2RUKcs$h?&p7YaGo`5xq~*E98!1KG>1ndUI}xvy6X)J zOLFd$ipgR*$UTJ65OOkivWA+Ri(ig{39496Ed^r`bZ+x=e)Gm$Bi!k6ACE9Xx%MVJ zrK;T^Ia?h?$|*X`&rW5CRv+v~G4fAd+=QqhWIc8Fi;*`ESpUi#7i#e% zJiYCC)@CKGxY!a~>(R;zMb(lT^`^zWp3iwK0WttP47|d9C8>Qqs1U11Sv1sHp1dH^qWb4x`H|>a#ckzO`sVbA!GBfyZSE;A!FeUodXRFAIRfPtiO4PM4 zG)xb)@@fJWzOB6sQT0bfYo>N-AlYG^p#a-RY0F+{s_NY~(d9YI%j48owo#=lt*N;i zt#{gx(W9R9)bIUCAJrRWF3YWTgIrw0qqiLI)2M&e^O2Y1@uB_9+W=A5gXPskF8;cv zvu1iz7HwOf?ZIv=Lg=RK07@xAeT~UsOvNnLxHdmK?5}I|eC9*9)9o(Ay1MnY{So5| z&|i&dj=`8T^;ucCYD`zD=eVBS)LGS_w=kDluQTXVotp0ZMilCtuF<}4qmQl*N>{hb z&4c5uNaz@D&$;=?SIZAN!=0?7448osMsC@We&s()0(oW_V|wRAcg|0kq!jI(MzS78 zL7l->o1(WU%tIIAyKGUc16e(n(EeW`StLL9d+_=>q(=weDqO0=pOvM1qu%w0FqoJ8 zR_;-3P1aS+Aamk|)kbDh<8!!NME~8$So_as{N z{9HLk_PMtfdOJ>V?U1D57Srb*(&YNicebN?B7O_dLDLlJ^4RLbJ@Xb^hoS~ak;RR5z+u4?HjB|Z@XzGk4{8uOK7IAn&;7#k& zO%_S+s_>sg8JR~_f$iGF$7jpfPKgR)jile8k+Q5_lH``CiWwfjWx1S1R#k-O601?o)BU;wYI!YD{DxVss zuoxgTp0$iFas14MQnYK-;OYN#M`8;#E1@|`mX(x}?OzEk z+eFQ}lZl9}v9+CTY@?KI%U~?y^+elWC>p{h!!UxG*-YeB?F3b0H>xU!tJ5;{EThT4 z3lr|BSwzKB=$%U_grsRgR+Ru0LU5i>RMnb@0C0}H#tLT9{?#|&yxhllD23vFk=4#- z5inhqy{;0hB8Y5PZ05)6n{v@vsRSdjMTphTgy!LUtBMz5e$px-B^+L)(r(n>jm*8G zwW+yMZlo#YFp`WZdlUl&A`F&I3C$9n3B`DNAo_o3mQN08NNYpsP3a*J-R_i8lB_-$ zd-kn!|9FqB_TT!EUL=!=oH}YV=l%`15SPnNoh0wwE7f~jJ@dE^hB;UD`&{$fQMPa_ zrLohV@YY8gyFfmsNe;PA!`P0kVT5o(R>7Q_gY(vgxz|qe+c93|xiGZ9AH%CUvVYWI z^}lEkTE}}Lx_qIPyhf}?xAb0%ZpPk8dibwG#~2Jf*wbE1V2{LnzmymN$!4ZvAhTL7 znCqX=P~SxDXe1FjJh`YJmIs}rbp#dHf`Xcg`fJCs@iO3R!-y8Qk9Gwq_|kwL5Le%3 zIMo;0Be6cDSB%R~yTb72Ao%C5(pynHCD`TY72HeF#i3r>nfmBM($QXrYQ`Kqg^UfH zZH%K062?u_(TrCv=b*+!_)WTD7&E<@cPrQlsK!s0N;~M*r;tASG%HJ^&ts@3BYE(@ zi`xQ_{NgH!-E=%EfW8E@?XWcewUxgG)WZg$-qh|s|3g)w-e<=#0NIgbIB{2k2UA0o zXXqf)tXHlv`?uI~5o%2C9z|lrz~BKh-M^c8yP7V3oh+m5>@@PEJdzoG-m3;1O#Nlk za#2B$#zVDOGP)>0Ijt@MUykz{w8|H~RZDK49PnO~V_k z7x95z*8RT>8kGAJ3>p>t+6MJr7nBSyttr`1!K+~LzDLiW2^?*&Y*9?vd6>x0N?^$Q zke{?9R}Ghhj$?VH+k!^LxP*@Jhd_~ut>MEG+yXyK(SebPZ4o0A-9m;XwuFE30mC^$ zL;W&2MnOR;67%KKVt|()+yb+!oVgcz@VW$ zBh-=ynf&f_{m3Z~e1{m!0t1aEU+y=0ya7wIP68KxbV4)Gh0W_%V=T9%fq{=no7bad z?F#6gwIm2R^Rm#Tg#z)@H~HWi*5cZ|-YDB-p@Rrv!0c=22_a;8OxY3zv}^G4q~w!j zoH0#hM5)5+LomE@ug%H>M|&gigQ3-V%7u+s@8W|;uf~`U8I{D4{~Y4%14qsp%KG;< z)SQTD)R6u3Ks%)n_(KW3aP#<4TghGoIr82>JIZ7)!GiC<5w~gsf&U*-R`&nTC@Tju z=l|I2!n^Tbl=b=(^|4z3C2|QB3N7Mt(Nm5=fUmzRV`NVzVETs-k3dwixH5jreAAZ< zG)C7fjjme~MX~|MVE-Gz|79QXC&Vh|(1Q0Lq1`#MkP{|=@e4xYOMqe~^kDz?{D&Co z3xABC{<|~4norm!ymy9^W}UljsFWgKJWWF$RPxa z8HY3k)MC?LhX?Votq)t~&ewDs;HI0Th zoKM?9KzHB9=kf&=-6*#FSBI1ImF-O3kbeIY7Oq-3Fe<88-9)})4jBAMAgK;gCksCB zr#mZ-^nj>zlAu3P-Py4>)W4MR$K%j+m*k$N&sEmd1E)^&i?lhO=K-p51ZU`|SEi1% zyk63l0rAB3>v`T_SZu{!QFp-}dEmJR|L9y2)n^&(%FNb;h`$$ED_L_iCB~IVxRJA4 zLU($l=9c|2YY#c41D#(L)bj~2zc`7mI})`>Oac@7e&3d|+t8(zrhH-X_72DW?!*q_ z1Vv<;J6n@kRInx)Y_sDqYzc8ARtl+lR6sI>ijxP96^&(gTp(im0sa3^C{3NH{ zBHyj!*B2`1sdD>Z%2npnqbEce^M;q_GDUah7AmKEL9#Y8aH2(pD2#6q0Up(ft6R#D z?j2qlSZD$4(9*^u6iO$y)`-POV}fCLy^AURVPrtjwftOG(<&DYm^da5DElio4I&c1 z1njY@B%B9^!-E41(vy|+-~|Tc`Q{a=s>iE$`j_-U5valJSkhfpA58khnQ>@TD;rW@ zU?#zUu|P1?0M%-VV@wOzBc{AuxSk{N+=N8KjuK7SF$hqqj^Yd@rb81I-N0tZ++sQS zwHoco&YqT!TROLwGiLj+ryIohmTe9_8}5bSBjv!z7VHjPD}+`k3xevfJ7fr@+3%<= zdJFR7&~qHg0%6$^ZmL6iPvS|`3E=6|tL8xAsh*cGSL;7&SHpORt672}Q|l)Os9}ci zsM&_Z36D6jk+hvrY&Jwu+vsS0J>K!B`RnKi3=4lto)1BDRJVAASfn-r?JDWVct|?; zPT-vkEx&8@$mey-pZFI0`#DGf9ad>Rea->;9KQ=YS8SM77AfzeWvwpvbSNDzG73e+2iUTl%W3& zdE@(2NWHS;?M(0E{M;S1X0)h+HS|bWd2dlO!S#HSpxYw$uTg%duLg+VH#L4=%rQ>< zDlAaFi&_{#oet2r(Iy5&x81K8cGSQ})VTa=960!HG~}2T34>-c5D~TZTfLK5V|7^w zFTD_GF{({4v1nF-vvs=q-s<1UXb`}FH^lyP%Sl`}Ae0}31NRPJQ*u3N2XFB#T^~44 zd!_Q-qi~ym>H;L^;#M#tCEI;5_P{Chbc>DFeV7c8Aq@~8m>rx8_UW|&rV17X=nxiW$WyH-3V+sS4UUvI#x5vHHpm)){L%ohmWxn3rxZAEP$ApboPh1GX zCpE(9H8XtG3U|}}%K8v!>bC}TU92vdMo)+gU)kg|4 z)`eU1y}nef+{Fawe}r!=*!f~r%WFw_Z1;Z{f^oJCcK9H_>pZl{+W+)Er@0koJ(dDx z_+YddcaUD>Kq?G70)2j1X4A9RDV~5G51k&%$#)x0JctdX^Jusm`Q=Xx(d8R#F|6{_ z7f8@)@<-qHyYilW5vb5iy1y<7RU`E0ZuyT_v?jkTPAoI5U@`@TL-wCgtGGLH@(n~5 z@yb4Lgz3UD1|Y&%PB&&EuHHRL`GY$FmDIYO|54ljhxujv3s7es%5g~4+o{z#i^ z&f4s0jvh_7<~#Jl+N6%HMkk_rE{`WaSQgtO*dM5vSsiF9FeULfuyYZGFm;lkuxhbK z)-5ZqnKWy>a6W!Asu3UARV(HRZp7@kaCNWxnGjxl!A~2e$LFbM?}uSxHd+7Wn)6>v z&?%rSbc-`<>;9ElXd7v0*x4rSXkl#F_ze)M&%iwtvpAdjt2eN9>d2aPl708LHWAnk zb9~h%7GS4qtLM!)QGXfOz%H3%LjA)a5S)o5IOcT}ZI1=|tf9_&*^pml(7mTjnH?1K zn)QcW=PQ?RZ=j^+8J}I`iiwsOZfEV-3M!b>d-mXv3Z%$H;{1kG5~h^34At*NP$IQ4z~`;Xxq7TY@Eer! z&rpJY-J(L-hxwxT6^;b1(5mmq{^=ODzr3&DuEi^PhW zQfKJ$!)|1j5?dvel%D=<>a4Q#Xhq4PHYX*SNyucKI?zwlpB+3~ecXIjUWPxUHeen~ zR4%cf^U|Bg6)^i!cn_=l70M+8DvNBf6)|5Nyb=p9YK$>UGX!^HM?XVif#bS0y04qd?r{G&8{;d+1fXvc@a+^xR+q+KFR3 zIqTqn&p5jBBy3@v>Ae<(~X4(FZg#HKAMcpK-S22EHau*Zb2n0vf1b4jf!DGgl~T?=O}yP8nIvP_40T}By9<`KbU zUDtV*b_*#wX4$(=UXmCTl0YEH1JQW*z3;+f`!HD!x>P9_6v{GW2;c3FS?tKcACZ^? ziihs$_2BI2MqO|9Ux^$!{iCX@_XfCE?(BT=1(8ORAI^DcY);R}6&<#=g|fVPcb6P| zV@~lRqlCBf>bh+B5?*Mhby@ot+Z3;%DPhzY{XXa5Ems~V;-SPiCT^r)F0BYiK|JUZ ztt1FSG>M_{ALhrCsgRNg$WLCI?62wA4LIs2u}{&)42YP!uy==8W$`zf@y@e*D~4?n zZtc=JPU;W^qt)NMzCFcB|JlHB=^L%S#51Z!Tz}8CPkpkNj)#gHJW0<@BpJ@`1d*h`+Q zw|9(aUQrCY>12V7%j7N;{>TlczEvCfW$w8Gtrlb2Jkr^2l1=0ld%F9^p@?Wu+%?yv zCX*^Tz#RLY*v?-yX}ku#6hvxutVk>$AZt% zY>CNfVSy>`{!EO!RD|wkyS(@1%&YtGr$e!L?$%GbfE^e<**96d!TICf?4{NnDuzM= z#wdry7ai+Aae|D;ZGvZh&}TWp5AHvbfSmZ0S{x%D6sX`TH+$T;{k?VFAv=nSeV%+B z;`!_2b*JVrt{7Z-JxMm4QkHU#akP!j*OvwKT3@`5D{y1IF0bDH!qTmf~V=OuwtedZh&L)Z#hvY0kMdA zzH)YGXw7z}9RL~2U#jmX+Si)eo1y7aM)0OJ&GC1tC|6AEVNx=|{$dp^3=SzdPC=Ly zMMnlIEOB(nwb53Y?#Jed9t6~(zcaT7IjrgRi+1W8je0VO zDy2+NC4q&aIqflN*J_AQJB6N&8$(RIuz{fs^rYCC{BIf1;2A^J#URIlD(78u!x%dcqv*k zmVasWi6(2syQ&0EEVS2%B+kFh6fda>K@U*yiBVoTX%H*O^POEi#Pm%0ky5?qPJw_F zjq4y#pNAT3;R{Th6Z41VA8_toxK0#7!^gkgJOV(O9zLYzd?Mfh`+^zX%z@@EVggZC z1-R_Pqrmk#ODNDB$`KHBU^wP?p{^3WdE3E-h`^NL&{MBG~Zz2M=gl>2brQ`zxlAKD)UayZ8{Aq~UTa>(y1(NI?tLcKBSk4D?V}#F% zbYcIg^dSefqZ2q_i)T?dI*7GcPB^+2s~JwXT9JBfCJ6Dbg_-Q4i@~kz{g@%c*~cE0 zEQoz`Q^6R$=8}fdMYf6bj837EhBkhEaik{PZOHI zr$(mMv%8_6Tm_`SaarN1I%@}mU1T(^e$0CJKpWj6b+4hkbyH5L-XQ7qyl^U4!V1tq3FM7Aix6(%SY%SsnoCEaUM2MLRM1}7_yI;MYm@Q+vgxRKlL@TEwR+6!-b`(DylDCgZb*J z5{&`~kL9-y5w`93^=rPfsa$OS{(d$I)YiW7O{N!5?>75c{h`Kx1rU&ER=^#4sJErp9xz<@2 zT9qCko2z@^30ecASeWB@K8Z9SCh8rfVVpi#W#kT8I8#SK1H&HMj`w}XSM2q&L4D_DHM8b`p6DR3ah`%L_+VgT=mC?vFxU%-iP7~wU<{des+8Byj?>y z{>f;(+>X#PvgC3O1v~j-^skmopRTl1OD3~*R?UD-Oop|!nxZ7k2Cq6V< zIT9%53}M=Zlw?XYddNwB3jj(cW5uO6s6UHH_umvau2S+bfpgSYE)tbq!h)d)=#ddz zh7wS;ZC+OJN}w|d9Ymrxq?MXZJ;(xqfGUhutt4@!p%AhiZ~h;TIy5ca5dl?^BaRw~ zG${ez619b8zjl=-d)6+b^2t4+rsX{XvoQE58H|>z=B)hH=)zm8?(_x-O`pX@O&q=7 z`bqUjJd(elFLwN;1t+^|@F^ucH=y=})gdOhZxcrRQA<`r)^$Nshe9D7I55B&^!Dao~bz-j0S^!kWL*aldmYafW@B=Xk*K`6Sh_sKz+I_ z7Kbd*VQ8mZ$F4@a(+xGk|E~V{XM(c>eh;}}6@!P*Qzw)Q^6|!n)O6@A$RpmkdH%tt zt3V#2@h&vot1v=<-)u6$>2YT_(K%svI;{NFgP#H;Gw|4q#au31)v;XN;Rh}rj0<6W)o?7#)YZ@r~O;sfYpg?!0(rA|fEYs)3r_u685 z@mcC@f$&}JY$16XI9IF1@3Nb@&26%)xyoy{n*sKVceOTrKJ+|a!8(vUU%}Z8UZExZ zjo)O)D>(YtX?pWo?rIJHR_kib=KavAx-nL(?c9A_tzGp_UZd?Cuw%TH84T&M-Pt1X z^1nMHc%GUR8L#<&KijQV+uhsAe^FfbDh}f`zB6G_5k#EzfYw1pcpX%nby#^f!r-`H z5&puQJ&-u)a`_F)t#(EIwD47}Cf>lig)fNk*y|h!Nbq@F5q_RnJS8Waw^?A0%t-_Y zHyeZZlwlN0d5nAX!bQi#pn#YHRv*_IGkJk9Lr@U6TeEq^Fn0hI7XfRU8bCKU|Lb-$ zEG|=|&NVMKXww2z9qc?M^pOXftv0*xmQds1W^ORsfLC8>v0QXcRhxwtT5Lp@Wf?kE zdo4&DZ0jd!4HTgbLE$YF!Q;iMw_L>FwItUxwD81fT6N&ASwQQ1SnFb-0JxYbDq5@; zbSnNC#I39h3|FkmBjPLGrBavV!{7renWz*JFlcL=M=x< zeP;l}28gkea2POxU<0`SKA!1r0{Kx2 zwnMva6MyhibtL?_Y*!58?-4;V==Ylbg1>yGxpGMlvZuZj=V$}B%Ih1-@8r}ssoo%o z;_6#`&O~u>zd(h?s#}DYUi}_72=@fA|-7(>Et~ z@7zzckKLsm_P*Z8c6|R!QLGrpvaXakr4ss<`)3#weP1=n9n|J}-*ENd*Q&Ws_s@3< z*-)&X!m5RD_xbvm!8Sz4J)I44f=ebVyq!}f3v!d+ez1P=ST?f^(fO~8cbF}La##*d z>5T9iZYkUbPAMFB$vU%(b2@SiZs`XBg0kNVf-(d}_~wOV$JJ8$gGM#s{@_^=v z7W4U3>$!U6THhjhAlr^7xTc@Pb-2#F)G3Y0vQ!El79h%UNh3;?8I)npGAeiziH4VB9Ivtg1PiuLBU)$`m+yR$ zNJXElwVM|LYk+=Vyalh;_}0efsAQ(lSur zm{_M$C(q}1cI<-~@*Xet>8GZZ8F5cy$St+#NRV?rsSV!6CT2J3)eb@Zjza z!Qt+Zn)TJJuV&4X$*vXXJS^UL<8>-ti0U#TUij+n zW0=C*JudtL;pMQfiT+``)Mh7r^1Q{;*@AChU7=>B_Lv6aru0V(s?DDGg1DP1&*H7IUMk2_<2N&Y!Mlap5}lXbSDDe5UNk!J3cc8FGgFzt zA(YqX`fOo$m&v^7$Kz6>&e}#-D0IhM^S#}^cWR`kTFUQ`^!;g%94@9n6S7S^%@#?7 zEND>jJQFjFqJ4*G?7Ce8axQbeGKfoe{;v0!*r!+X(@r1ujg|%X!(Kn!b(IQuopqAc zFo+*r8Sc{(i(QbMm7s*r_MML)7cm&!&AMmMNPU>z5y3p2jOpjVtaZ%^eYMtju{EN5 zxsc!XQ1j7hl{}}h&CV7prO2VAP?ONb9@Wyzb>C0Q@L~+SU z7?#_H)eGFJc(KiDucZysu=ysx&;~QxTw$%#lx2~ z!~DH#)D{7*$%W-%P5PU(hUrk|tSwoM{y`QyOlm*r!>+<-i(CU;P$C)gh&s5h4NGHy zuRci#(RHTGOIhK8Sb2ZtaD;DLpMY4)`qB7 z;Nk52(rfO)2J{TSx=(_Zck!yE<%+`lV`c^acw6o|8pr+7lIOzrHUUq8`|IiQ`v-x% zWsV@^&bZV$-l1Fd0HF#VoMFZRshhbn^_Hu(%klBc@iYdTv*DRakH>>`>gV&_Ww&s1 zmuY#QXO4#+Zol7uen*c-JFLFN(d6+MalpWyBHyz1Oi&PP`ba~gW$kS(6lE`hz-LOkgl4{Uec|oH@9xDbs0wx#Vgpq1uaFZIY(Xz{ z^J>))I@Oy)dPQW5kd`@96A&P!iIWs9e~fFXGBYVz+G2xzFD_(8I4_8G@wz?wV{;0d z=4ejc4)ePhRAkOX;fkq3o{#s8pO*}X zoRI5No90TrB&=KsttP;yUoz+h_>o`V7a%QXIf)HDyn#cz*d3WwHJf|wpJS}y2yA~h z=pE9{9UX0hZtxNCLa)mwUjF3O;zzI~xYUn2c8SIW8{#L9&adbP0SDfkzkVhO4Ucq1CP?NVM5e%Ova2VN6W^dXKV z1?Zih#-yidZ3x*IqJ67tu$F~-AF~LCmu5&M@HIKmLGc2LN70LDchSNR+qUZaA}MV9 zdjdv|FMup~swVX-h9Vl6RocgNEHd}!n#kCsV+tQ zDuoc0QSvBbW+{hfKvTL`6E2=%0U2jHBefII-@fIQu1DQrO;EqAri-nPp>()uG}hA+ zeL*)x9LrQJlB+{{lc>poa$S5r^zP%3ZcWi-`lRj|b>~nkeu9{;IarRsdX}nv?h5<) z@%$Eqk#+6{jokw2*=WkVa?MpO-_GO^1mk>V3qKpHHVeWBYM%DNt{HQ`MY&IV?jmM| zD%>$7do4!H%QIm+(&uA<_hUvzpr0lAKI7{sL6eGF9ziup?O4(}Iew{TM=c-Ay;x$j z4VBv4{??%Bg7MY6^A>yx;&eIo51~yY(hE*b1f-u^?;F&c6SiNYD3|S$INN3WJ1{LK z$0mtj4o~vc8w*Hh=ZWcBUSv#y=_9_gLSCoE$!rzC*_pY8F}m}yFEdC<^)B-9LTH7i zeMhGul^_g(De?BXQa|;}&#VDeL@mf!ukioS?E{ktMB4rIgbNzQ&e~$pLH7US_*SNbnaf zklupG)k)-%^X7_Y+j@;Q{FO(N^T9Uh6H=ddj|Co!fj*>kOweG&WZx~d2-6$FfH#!n zzR8ifl%v=gDtXd^YZe~m@=WRPIc0g$B~=PaX3$14UYgQOL9@QB@Azh{O6{xhIfdND zc!avZMC5~WJ8uIVX`z^@i$%S0I}zyT?8fV3g`^4-+-$uiHDxDaW+rRe)7!*(kKFf; z%=Dm_XL|Kv?R(QjBp+-V1EgxFa=n{s z>%i)CkvdPi6uWb2h%re`ctvwDs`Sl+3yFb$8VIdb6k%$!Y+h+#RWDTV4U=8FuN)YXp1^(jQNneUaxZyL4 ztJ|I`h2QWD=p84*Jfvg9L$%A2X~kQ%1`s`E#U zCGe%Xnj&2)nQGjr#DiA*HJi8J!oCh6MKMUGu3Plo+#24;Cw)bi*ktq9sFG%6RrFV_4o!e=hJB?6 zYT$^Ji8NCUBiA&i;0U%HJ6?b>82d0`mz z5=GY6JTqC&u85RDRhXJ-*hH47Wn=pj|0cRG-JsfQf!>-t83OY|x3}M$c`S7hk0ir& zKP{m6j*)9XDG_4&`VN8P?9Swn;2Z>L>8#&)Z}c;9`ZU}yM}IvIOl@HU?Xibr(FFm4 z&tbj3pH2f&G>j``;`9!Jj04#eKvgw^loDS=OwoG)vah}@xD38{u3_j2{S6}2B1sn5 zVfc$vX4n}bR;uEiwKZ z40$`M@3r%o$c86lF1?-AfMF>V2ApkL<%bzpqQvmuD7dF)w8opZz{tB_)#~VddWq@Z zkm8M+YX_l+7W};!D}_B5tAeR1T1+)NZYD4U>%gZ*$yc1XgjQI*MA2_i?GaDE`V%{h zV`^)}JGhiGss?&S>O9nr<5sX(BgMr%oJwy=+bkYWGhfhqqa+GI*db@pd&7j3;C zQzzioqJW*fgTf_=IEe*A-zs2U5U8+2#l;wQ&yWLhu*cZ_x@sZEqf9!#py5?>bgoZDLO1&3Tjl7t)@EuAjpidYnlDdv5VS1r8x!w}S;PhQh%vuavc$_$4%YdPP zc?5NY224(DTiot|dDn}z^|=^-7MQ-FemfjsjJ&??$2Ui;RKDx}lc%T#Zi>c$iI-L4 z*fCJVALx5s)H4c4%gA4HUj%$jc=^24S(t~)ZTf@Lsk#RR;)u5NcvT5Tevdhs2;VIw z{jS4nOu4KVw?*P^3T$j1&I6?=j@+litupQy3T#$tJBnvzipDfvZftd0d#0tXO7DkD zlX%`P7B!eAs+r<*t2LwaH+&FQ)19(C6tyYwYqBj})t%mxh_y4Z&+Bi{DZ|n!i#I%* z{A%9py5(wfbt-Oi_{`Fz{=r3vZ#JgPe6;? zAz*{*7BoJYxL9wliV3NUe0#AoOF`kWb^e7%rj+vN zL=sjqFQL}ghFa1UgO_tOY<*61@+gZF(Gko=)NQ78<#tOZxT%Hil*Xd+V1Wpt*MKC` zEh}*|njSWJnY>IjDLzSwAgWwnj6*d|EiRqh!dE85rLA=zzGT%%yDfM`pv|^u=3LaC zRi}AGZ99hx<{0%Q=YXp~yvB5g`OL$!sYZMvB-Ku>Zv$ZOAzl>wp4>NMjAc#__o(ZrTFeXJn;4K zO>6m}Vj&IP4RT z)Hq@m)!X%1%v~K*8wnmgtLc+(KC*Ao90>5=s)divXBXI_N|+cy`GsT)OnWL^cl&H{ z7pOah6ltbU>yet+@^Nt(DfaoxX_!gB@pHS<_KdkETF#Wb8djyHC##!5o+6(N3 z97M?{s1NIYfxE7DLodX21o)iam&0M0*%cZIlso%K+7*_8V==N$Y$|B;4bU=LN+V6e zhCvj8e&dijsS5LjeWiSTLj^JmJ2IgEI!&I7 zkS|Fby+G8gyFmfBt!|lL5GTdiuw7*}3NOV@{k97y4lb&sf?6C~!QGfxxh!{NYEPm< z6T)`$JQPhuHTyOVX;!m_ELD&m@1$>6bUNV$AWBeN1kWDtTd9^phQ)n^fP8tUZfwWZYn z-?G%KzXhv(>7G}^0Y<4A;?t|u!%nFo;dxXy!r|6vA-U2(n}?3Me#4nzYYbHO;=8}t z<#2WvUwfssgU>rBV0kZx0^Hx#ACt^lA3>(o*-%&wY1>BUCzHG9m{mdF@rF~^eGe@v zZKEDRcH-nGm$60pPBI9EaZM?cZA{iSS`$EPL-R4a_&IJ(oiD^4r%ReIJd^P@q7eEd z`{}u@@LH6P2XfjD7*k6z_S!X$Q$pN<9cu!D@i|N}y6+NJe&+1Jvv6{W(~zDw!(-EL zKOnlw4vUedpS6-w4>%zQ2M&)_A-&rIjH=3i2;-5&lfml#BG34mo`ZDnl85E|O{&#d zA$JHHj3yRqshcEe!TqfSKdgfto)G9WfzG^ruE;a!qfv@Fcf-|9);Ovm}c{dlum@@+Qu}&t~bD7Wi zz?Dz^ssoB@tpYn2jJGIx$mpOEnpp17C50=2n^3_z)hNMCaW`p^i;h zfp5dtgLh1qx?(lBGejMaC8{x{0ar8h4#$!u`kc!ZXlMJJbBK*@TNmEq2?vuOTwJ&u zlFxj`@~dcKYdl+c1vX?|%9=0W@#&+*xAV`eBgiw?+m7gy^u=QMDP;n@vkeafsE;wP zl(ICA3uRl2fG-AAW3*hqmQ|Wl)r@3s&mLKP`@o^c*Mo7%YCh~A>y1)vMiRQ9vwWu0 zq_m4IYB<)MX7Qp4cVl}pbmB#5^1J)sgrt324jQrU7<6tHW~UfV_NoS2IO~w=WYL51 zkFUG@6~8XdL-jhA-dOkWdGiaFBRt+e6M(6br?| z0$nX@FNa3-6*#W#i=^0yb@Xtq>HC)1bl1Fbf6wv&hpRk%6*}UVYQr|`mSRIzfMU~a zgvUFIs~k+3r7?M=JIq-ZRv?NR?3 z2X@K@v3{GZ6TOD(=tc4Bnwk?m|Nic9Km>WI!V(b|s<| z3LeCw2+jc-e#lADID0;DZ|&As8E6BH)|qX_0*s(&#Eb~UjOH;@;WNo{!?J;9g9SODg?K5m zPT>$XBBd03V0Gql>uRV3rV(#GXI3fanzBNQNBP+C6eq$ka{C#5`rc4@{;J$y;o=(? zGxY2Fk$iQ%(C)EzfTmS0%4(9_6-!VH)`zjLmsaXs3Z9c)n=s=!nEzV6nG&NrTZ^vt({6wS@@WQN4S zb`!;meWQZ96Y;RG;^TXoQcv{*hciv6QWH(bQg;v{BD#^p;PbmFO19G-yTdKm)7HEE!1$k#@ENp;yPrh6JEamaG+ZP1*n zaXNyQPQ8?0?v;AVSA3R9vt-;7i9&GxO4QvCyVjI0qrW-bdJ_XKH&1T@7B1wH~T~orH8^@x>L_yl=8J3nUjO^ znU?}#bIAS*rHOmu{>n!P6wm#1I;&g3O1W=U4;A<=k+&Nz^;$29DZBhM9^JeS<4I55 zYwg4|HiCn9OH_NrZW^kJ1ExP?+@h+wiIUn?+FhxUpH+2;o?My*yU(<5EXzmSbeV4R zoe$or_}}I}X7&e-jfaMFWRsidd zd!RdPfFGNR{ZQ^0Q~p~+>d*l0M1`mT!0_(0uag%oVP#&6J22|XMj2*=q4ya zK+na*#RU>(Wv1uk1Zf~-X=!C|2T*7F@mvnT#Psv@qo|;7Px=6uo>TxZJ>?HzddeKY z^prDz=_y+P(^H-R=AS6cKT()}qA>qNVg8B2{1b)wCkpdV6y~2O%s)|Bexk7aL}B@f z!txV^iNg95h4m*2>rWKcClpZeML;|QEkOjZ{vuc2 z-qu0iUPjmU=`JGzgMzM}9e_a|0aV#P?g6--U_smhEe)*nOc7XrsPN+gR9pYATE*Wi zfRzIPI)2&(D<=SS{JQ1>us(6~!{Ik`u{|f~EaFYMC zt?u9MAlRPD;>!M|(Je{>^%W|kAc@#ORV+cx``BSEIWnt=R? zS#+`?HCE72UCP7&v?~3S4DhtXDhGI4Gz6WVMgsu0rw$MB zv?L)1V1IHP0QRSr09x1my;%En`){?#^~3)Eg?!nc>;&*MACLn)jcP%srwJ^82Z29Vs{v2tmIH7- zDXaN+eEgl)w6e1PO*n&!su}>aUeCnHMbE;?$jAty6{L){mAQ+Bm94e0iJb*N{a3C0 zmgV9E1r+`eHL)}X+M3wwTIvJ;Ns@(;lm16!0fY#&)YrAPb1>JnH?gw(CqXt&CJ^S6 zpuV}T9mpPjnZWNn*_hcu`aKEg>VpC>cG`B{>~P(q;GGltN%08 zKVh;nGyleX%2XR93W^A58<-dxf)w~!KYu8|!TOKFKnrVomwyst=47V-VWFTB|HK4o zX#T^#{{+Xx$ny7mKS^mD01b5=%I^$Aep#+D{HN5t7`$Y2i2r2&_G-NDTAL)4Def;gM;li z1HTphOF1UyAC>-xedt?RyZi?H*`9s_vVtO0zv|Q;WN6yf_MlSzYKXsOI9R!Um+A=! zWE&<%mKHz4Gk+Fk2I=?9h76wc|J9g(L$NZl{VuJ(m8B!l*51U@=$B@H5@iB$&HlF{ z0G+MPP4s`%$uGz78EWZue0B8<00yUmLRQ{7F2N%VE03Z zC)KSiwXGcN?Mw`Qr2OgfeyhU*YJ|TS{*~&VMA-gT2|r1;12uPTD{G*w?o*xo^qzm% z6dUW`^Q`ZvZ3trVZ`eQG@bB!|LALPAUVgT%->}+NpxQLI(lz+Oj)~>dIU;qVrOlx>mq8UuV7*i(hKDIfKP*hU$IWEALak0#2cWck-ae!fSHSv z1vGvVH!%nK2>^pQ$d>~}f%;Ykpvd@78BkD}k%jReewpUs=C06n0eW?CgOj$?5oi}W z9c>qH$ydGPk^T~;>)^qWsAxllO!zL)V(-Z_FJ#fgx&VRHHEIgwUp-?#XrQvyQdi`R zDwT}-UdYl=Pb!tC!UV1jvSr!B^n&Huow-eBy!mer`S>83xbsk zQy%0WmXBYSGXzB=-dyyp0MB zPGj2kz_;9^62;pE2Fz=&wz>rp_2HTK3(z(XNQmDW)0VX$P^H1G&A_~&AsKa`*ok1V zPzCXP9Ar?Gy}_Q%0EkP$bc`x4+Q1x?13%Sw)qh-n25ka0 zq}v=Ze<^&EWa#ph=@{R*&&sIUFlrCBF1(K`*2T1~enJNRRf81R0HKZ+43YOE6EV1; z_Gk?`CPu6e=@9fQ<|(OCYj+xvh;|JcOdMfN2}SRFs7l5n zVZ|6R@hIbBq~7Um*rC_s&hI<(KJ-OaU%2n=+uSOlt}uf(&;f5_IWAh~>!6%TXf|pC ziy%KzrSzRz=Y!1>db@ZQiLBb^2Hwl7@hoJ8S_O(6>U9Bm8h@|}vW5g{vn^pT!!`#-lTc} zp)eNW*_^QG3Fo%LaeP;|%yi6(+{UvVAnp7d)>wsd~!OvrT?Te!sj5N8E`4F_j4cQm9@v+Fgp`o#KJ43<0FRWA=#H!(yc!fe z!o`@Vk%1*9*qfK89w~2TGXi#qBRB^}&-Z>;a-X+$b0$!KKVBl_{#s(17?>2H^ANT9 zLMozI;B@8r!?+*#;}Wv;cQ1Fq+~b%}-vbJT*XZ$dpE;zv%rW>GcqP&`c9Jy)V8$8) z${Hh|6Jf@gI9yJ`O+w)@AnbO7&c=2J_rNxq2wZcHlwi0mu#57L(ej@>~Xi__{vdE1o->`*o7Nw=W8rw~q^=3uP z9~+XPkfB@4+%1YCo{izqnkB|brrvrQspK|yH++1C+ZjS~|r;Ej}`4x^> z`X*0X9^4X}j-u~}oK~)Q3XgQ+CJnExiib{}CJe9V%&PA6zl}}@n&W@3TbZ*+t7R&& zz_I9Dypp~6&YqRyy5lf@Kdp#;GtN}fjxTA3`oi3=t^1x1q_~P*#^(n10j~|<_`R}% z(JjO0eZxoKZUFV&6V0hM_301@E-N zIAs(G2{p7UQF1WCA;H;rF;LIBM}Nk)F#YuI^mfCxK~;<1t}=yTx>st0=vst}K4jz6 z_Bwcw9=aHO-~L5JOTD4l{d`JFVvAn0WiI)YR_V%XIy?Gng)NO-cp5h2`u)@HlHf~; zBefR1-0+kF%wdZOy%$+5HP?3dY_aq9ps(gH>Kb)Tt6Q>K*1A((>bSu+fHhQat*=+t z#gM*K^`m5MYH7*Jf<#mNX7`OG$bECYT3^}?xmy0q_wSCrZ;Z*jBHbZO!rA>Ws#^R2 zWBnY_?`}kG;Yko?78m(vcym(fvkS)QKhu7jkrAk~l(rb!SH&J_Hts$*nN*C$lxI*F z$b0jNwW7G%pyO)Q2Krk6%vQq42x#apBIK1MU(u%&(npCa>a(Q+L&A}+Tl`v|1@g6n zR6X@PGamzoOzf0eV!S$LX}F0`oVOC;czyBl`3@`1d?vIWI9-t#V)e7Wa1&E0L3L-W z+@v-ISf(+o1gMx-=quje4S}4aA@M^d&tR)3V^@p?Z+#a>GA}i-JjxXUv)XmEEWK^T z>X8&oCI{4-iu7V#8tNwvis6)L88y>LdWmZ#jDOQHMZj|{-gT|8*r`Qx3FjW*M5>1sjFy)&y=qe?EDd*XQVxQgT&OsVTXf!1T=Axx zZ<#bdv@H4n&6;m9QJ%x`5TeLma?_e`7*eCB$~t?o+nAW7KfDo!7o$pOY%wIY`g+;f42r9! z0J7AA==R+TYeojA&G~N2uz?gN0gW0JdF2}8RAo?274?1bw@A9EXTUkErSbWCN7;pB zY`z(K9Ri7$mII$XHHv^2FIH$jx9xY~ym}f?roL8*;g-%yKsiKVU)Z5ou|85c#aeP! zD5zD+&PPE4cM+DPhMWI&B5plY(SoiQq+HDx)=;|A?3jX$pgC614&uxEXtjk{BNo|; z(UYu30WcLVeQIi+n3~Eyg@-CYUua<(-nPoTB*8^UEp*J7zCODQ|36@hWuu9?L;I$hDhLK5%qe1%< z#H%`BC0b`O2#K$;u!-c7jP_p5)pD&1k z2;26uW+#`aNoRg9@o5Cmk8V?#@F|l#QUXaIbKIldm=WBiA+#F^6OCl%p6l~$ z_gvw5GVW;o8^3M?r8jx12DIbBqp*0Lh#h0rW`go&_>xP#$D^{+$S{Ow>l%}3C#(kL zr?zZx!^Onz0KWpot*b!fQuZ)@6n<%eB4_bJ&QS}vk(9Z&!9g)lLi)@`#)6_Mbh7RW z*pbkLrIzrp=03Y$d=D233k{g+;+~VP;GQ*g+Tl~k?k75g)!kZ>Sj_5@4;QB;#W%(J z6sULB+YT#XDi605pOE1T>Hs~~*kKYs%uH-gJ=5UIJIMj_er<;vEydg?;?0Zt+97NX z2eRw3B^$#2t6aF@=$18}eDD;Qf#URBnf6s};u-1I$8!KK@t`_`v0F}AO@KTloI3MEeQDxaKF zW7fKHCvX5Sjl~bzD65fRMi6V8% z3+i{s*OI66HOB@28uL_3AOT zZ06WO@_@m=Kkk(Jb&V3$y?ZUX%x6IaUEdUeoWoixSb z&tJsd%_O7 zmBY%CMCD^m;tJX)3>rJ_g9_#*EN(hy`*=U(BA;1oUeW^N@;CD0hT?{%(l6xpfjLO=`U@s`X^dzn^@k`i{RpGLvR=H*w-*6jik_dpN&`$CMH{ZjJXx?t$Y@ zxp-jU%R>`VR=MYM(ikrXINF5`$Cr1~6}0H&5sHR`Mr!;X1>||LuNF{OoH|?XEc5e5 z;@et8`VaZ=wP!x|qQ6GJ+RAXE@q$-*ocrG3nDDWA3c1D8sO4RH+%44MHS#y5QbO}b zI)+ZhXMaA9AF+Z*;6?7F9=OWUKg*}!2((u*#vS>^zD&EtIou$IggoJbr$6DkZZ$~F z{@kB>b@=&( zFX+MCE1I^*GjVs4C1~2BCYt<^0oVUyFPIgWbp^!6UHXx0gG|{9CNzg$>;gLOm4W0bNetO%=*|0l=KRBCXANsC^cLH z%*MuZHxtj7(OH5oxxk;_u#|$urlZkzr=!{Ej$Og~1`B=1ZSm6KV!qs@cicS%l8zu#&{R^yUPPI@H{xMN61!0(MVj`Fm=?yP#@^14XDL7T+ylA zV8dK4Q>J6XDnY1r&pKa1gkfdtQeR92EUJWpbaf%|_A*S~{AGS`404Q8LV3QvjSB72 zWpaw1Im?dFUgFo1%hNO}Z=((nNM&|;FefnP1$W2;bJ)cuB;gOT6{h5njTysGz6Q0`Zfqa1fN)Q$g3zBG$>DvtT}A$4R_CJIIM5cs1~j9=%Z-!_A~XSd^z1 zW)=WLhEW1Kn;(9ggXM41^orL#Mu36Yg<1>lISDGVEm!nPD0V%ha_Yu(eg0rgc5RyO z27Xm^O<(Q{duJWb-LoG_z)wseWderQ0|RN8H?m_E-Y@+*#^zMI&LwcX@1!}4tG{YK zc$3m-3H1w`(Ec+$byR(!Vx&yGFAz8AaH~6uf-cC}QDpErCf8g;%IsrvBxY&fO*O!| z8<_H;AX5gYg0oOVDm#S8R5%x9MJo||&Xo6HR~co7=L4R-b}G5Mw!2waYLc8TKm5M8 zckbuP;ke*M!9RK_(Yn__$MI;NZHIVhRXUm0tPt~Y7q)F}XEB9n*JNR~WU z9z9sOqg9o~Wm=WUrDOgKGPK{G*<+9>kfY++3%F4NOakbg8Bq*G(XXe;W#)~oyuvlz zCik(p*2fUo$liK>IwV^wJ$jrk>r))3f^wCAt zcoWMngLF#5*Gk!sXOGuwsgV)yDA2RK1lZ#E^I=0mnqs6=0m8x~ufIaPI6N}B$?A(BD z)~vEF7K4r5)#5xFQs#CNuQk8gRio8B86wr9veQMta6={c8GGq+RUKn%9!4u~LV4^% z{P>+agRNGIb#R=;g^$e4X2(L?LLqd1EY`-nbG7zPgSRAj~_M0|f zLu$DrH&beHDa^8_=g5F8Mkg@Itl~5!)^3JQLl22t z54qSOeYZ^-ww9}W#0Q^1Wx35;KYt!w{Dlb42IO*A`l`JILJu~LP#4T#+BwSkG?UwX z1o4vp?9G`pfe+008+n1-w4o7!p{Y-<8b{Mh&@Z=YuXpTWKCPlF&-wf6- zhBC2iCd=xnfFH;ZQANnGW4H;IjCJ<_V8#xpB%W2uU))13={yf~zb=KFB|p*3voxJ| z>~s9C#Vi%G8q^?d$!;J7RjN3^QduQ728^{+RdTH866@G*%m)ZgG|u#|t476^c+$ME zQEFOXr7*2?IV1T@p7b2*GF-2is+*izTVYMEW$w*Ec`9WwOBgI}hK!QU*p)3UeLq4F z6q6l-IKl!ww;sBN5<5YEKQbcnSbzPiDGb_fH{$WdrL%~TU89l6^GlB)Ew8gOeFTWC z<}8V=utrxOSrsfzJ4Mam>i6MMRYQMZlpyo2)r#t0Ht~n$8Kr>D#fJGC~T7o29{uZYP0!O}%#ehP?>s zK~eCbgz?L2heO``AlFOZ>$sc|c1RJffi*)v!sc>?l4Bf;4|4{3s$IP|Ul(#4^LdQr za|bM|Pc1p%e6#4OXWFtmDc>*hAgEN&X|V?z1lbT9|N z!PB@=T>*=V1-ndtz}6%lMbTOInvC`*x^FpJA_$s`Cm9I+`dD(*qk$3GLvSy0KQR4i z((Cw+#y`gGT&jV{64@C57c(Jldh`P$2ZMgg9FRlrtOee8dmLireS3Q`wV*~ zaEsBibE$(;I$>paiW~F5sl|3&<|7b!L^Z*%q1M1`y}~e2-?trE{9(Zow7tw+77j2- z5u%kHp*4utxej)Yk8{LNX0N?~i1u735H^(vgZC;H7RA{*0@iDz{eWnGyB#DK1k1B+ zFfDsWiel(8dMGsP7jnaQRRR0B-JV+A@s78C%8!P(e$Wq*Pvxln^*2Gv$u=95!?R_2 z6jO|AAClhPYeo>51<@BIA`KB)eX2}oqGvJ+!+z)>6mE;pe*8t~w|vf#oA+P+1oC(t zoUKU@D4ip@UN<##`lS+?pXtz%8D#-Qik;6cjFNUq*c-1kDAoh3meqM9H-+31iQmge zv3?=ap=?Un9filSM{Qb$%fuY3TV7qAmt@$16Wp%B*>_AG$nbtmy_AJ<_3oP#L z(r6vlzLh;A2~E>zF%seZbZUA4VF31JjVkR6y&(C$p?=e1|I#}T3~Yr0-S})36>(Id zINHp?W1>2-_hNL#h|iiyur>}z$3qa9^hDFd(FX3{&_vr-?fG4j&Gn7LwHw zwS1JKkX~?K9ow;ZK~Y72kACm(Wnd@!C!!8GoeGzoLhI)v&Qi}Qj+WhWI zF&SI=3xDN+a(@3wj3wNDIHosnL3$MV0;1N+{s{s8_8!5Ks7^tVh$}W7U9G59bpG`u z{$?UGxEEdZm*`<104fr*lVJe_2@E`arL~}TZ3dW zHd6hY!co!TNc3MoONb1Hqt*tn`zPQD<87dR*vahe^Av5OZL$z|e90jU#xskwF46zu zIhtVxe->JMHdJ11k?tPRqeKc zcTo?gwOF7%8uOCt^mAITHbx6PbM3ygWr=D>gb{Cg_CKOl>IA6aR~wdpV!frL@{`h^ zmBroP-cO&@t6`P6pURmcqG_6U{eo9lsZ_Ka!)L6|N0c@)NpN8UV3k1Rd}hs58aCHP zxZxZQ30pHiO+l+~3!6D3byh&kxt*T&eN^f_?nv)&cGGBPF#)agyuXOv=2hq`-LFepSXq+KMa5uA`(QFp5MOmHa%zm5dG0ML2N*yXfl#X~&|5Oau}gD7 zNE2)I<<@#t*8TF!X*SWz#Trd-Um+y^ME~vJQlTdipa9kx!v{nqRzBZN$ z$}srIF}y}G{PUx6SkL^=J$wTt{Ik-es#N`aA8oO6LQguI1Hy$1cB^pduwoSBhRD(P zY}G==+fDU^g2hOf1h(`r^yaH}TM`%>eB!?DPii8E6mfG#4-4X4Myu(41|zoORJ9h1*0iUJ9;D-jTLQ24g;m!PBymtEWdxwR17N#{JwLz#{*>POH^AeQmKEBE{1V22EA$xYd%_{*i(WSg4k zAoX$m<~(^+eXI@LAqvu7IZdq13cGcn$b8tBXM8bEX03#Auuo?(aHQpVX0b4!#p9y# zsBkomvhx^DJ2~n+@+!2>X6p&xgB42Iuk}K$I)R4>4^v}?wz>qW*Q#BG3e{JXoXBB zDPh<2V>Qs5+N3@&<#`7+DXp!gBWQz=8IrF-+ zRjJp9blF<96$f2`U(b9$Kx5_bzLqDBw>F%H$3b7rLWIoprl1lRQ@;0R7hFfe2H4j5 zYO>$9_jz6hdH+B$Vn3|%K|RFFcHscRoU*S18~s{*HNG^EFvYGkm+wlS^^&ILgfAB> ziB(iYzsyuc6{`w!;2u;#XB+r18uEc!RTa`I|NSZbtAh>Ft^LjD5R$=QA^wUiJ1ES` z&-!^pr7GTLuv$Ehx93ytn?_25i|5{_Jv{} z)`DiY8fGJr4hnZA<;8PU{jxZx68b6<_Y=k@W~RhSl!$wYSSu@G-x5?*3^(SFz^tZF zTC<0*a9U4?w)^Y52RgjP`(M1hWl&sg^RJ5r3+`^g-CcvbySsa^;2H?7!4rZ6cL{^L z1PJc#?rvx0(Y*WJ`(OK<4~K#(=3ck<>eV$f^}D)fCl4v6YX$OSi=J_l(@WO#>@m9! z#h6WTYKwC(6_( z-9~7*cmy_NdT?)fvO~_D%GBEh35s&6;qU2vi8TufW1oCEhjJEs%rFI4`Q9baee6TG zKYO~Sza|EYq`o_a0COtAs+~)scf%ntD2Yq^iUD~if79K z&@q>U&56Uj@g{9>BPfu~DUOQCzg5a!u3)Dsww2R-o!c0uN#m|c$m(A%SSdYupV!%b z5~ouI)+YF!u4?3#uHS#OU3&i^fD&>P!K@0F692%R2N#`OOI%x|gJU8Z*Wu7(C=WpAwCZmqu_4uk;9>rsX6UU9zODS=Nx?hy0T ztgJ!p_+B;8h#bm7>n?{Pug3a8vq>bB*Ta_0`R$~RG^f_h=o43pR|`cyrZ(89Jl1sY zxy$MEBZ%_Szabe(J-8KiBfN&UiW4iRq#cB4A}K*T* zkGP-G))aUPRBH-w4YIdvGVUmC2AwuCJ}7OQo{{%I;Ug4`%0h}m#4(<}g}|tU%*f2r zkWNq*Y2zeT3U>yCaKedn3ZPv}&r-(wByR_c8NlVBGfBf*Uo_k&TecxTBcG_3EB1yc z61O}3Y;cmPjB3$dDe*5p$?r{WiT+{9T5N&c|Iz}1wSOraI{b)_5~7C_t5|%78Y=OX z$qdha6cPkCn*fK6QPabroc3^$D1eTkRfrgNxhQF#Mk-{?n)Z#W0*s z=Jz+mbx@~6i6Ez^ZwWbqAxv)`DEZ&Ii{Azn4CdGxS+i8rqHPTG+MM!#` zzWyN!&4lYx&{MX0Mp~%NSum3PS|Cg1o6!d%r8Nvax5vyH`iKptx6+o%lYY=b`7pNb zV_*4#C7t@6Q*tK*@nRC*=hU~Q5Lp(fE9Jw2doM#{Wd2kfu%fx-}(#PpS5G((-!P(ZOt%!zrftiCU*2$r@5}zywbkk zwRW}Cr1W_kIO|Q$-42;-Q!r+RraiZJ)=!qP&B42$EAe%gwLiCraUVnfee>*|`1v|R z0=z}$Q_~SUUtt<)2Gn-`TSMQAhQOy!ttT-Ve8=;n<-$zH)=!k>QBLfpBRx~zlyib$ zZ*NGDDeh=hpF-%;FtrQm29$$H$Ljh*!LbWQlHPpBttJ}n8k+OT9EP+O@Y8Di*jh#a zj%Xv2F76aCXB77ad{&u!*hF59b0=eHxHOp~!@hJ_AH8las(RDJcXQYbdA?Xlfv-Kk7&{Afkg%`1HjB;($FvzMnagq>^&_$b=9q zrimI%CP5E7+3aF9`&dX!T}mplTfKLpF_N6Xg@=laOqY2|JV8GNI{3IEeuAE8f1L3r#^nP$erudswYnQ0*h-qR$&qH(sAo)Nl`JZi&`HJ@5xDIJGx=)tm(wb2S)$t$%+rO$Gjp zyyE}0`@icx@ca_S|A*xFS5_!M-)rh(?F8ti0nsh+S^-e#lQ4<=@k1wP4M_a|fGJds z9b6ei9qr73UUtToK!PJ6*ORO1pBaoe7+Ja4*nyT`ll^L9U}a$eGDER514>?1H*-tu3wGNI1E<7kYt2`4VZTj*_FG=)&o&L`e|Js1$46I zH^3`3M@eZhd1EIaIhPq=5oWnS z#{&GZ{nmj8U^H~OSXdd^nSlvN{^<+kt^#!B%-q1O;RHncf8H73CNutlWplDHGqQ28 z{91~cg^`n!8Q3ECKU@5Fd9J_DLGsVge=jlvGqW->a{;#(*cmsFiwt0n{_4jANYwv5 z7m$X9i;)EkonKKfs=Bx@c?f5ziaz&Eo=D@cf;@f4}D+j2aA@&Q^&<8MW4on5!8a@?lr#RXP=@vG|X$PtCqym1^KBhJFyok|K&rLduJJotICdBF3UZMBbAig-(;3*-wHA zogfG^{!PJ3e*c)4s5qO_K=}i6-m%nvrKXhh072qej8&}2SKco%o8%pp3-REkYLukJ z9A;etK9{PYprV4ybhza#cfl@Nl`!UQ9jr)-+n%(H@Y+_iT z?Y>}wYJY(W$o{@!NW_2Apc(_=v;!G8b+Lf0=d6E_NE?2?`rBt}Fx+ z35EJooKMUcKO#v0_gEuJahX6L5x;lxl}Z@yYnAc{(k{;It0&3gjAXbK(RP#T=HjOf zqU)!%Dbwm0fm#35E0r?=utX4s(lNLm3_qAZGBKpE|9-|Z+BSM>C>3WQ`D<=4mvQyJ zY_=9Wc379I$BHQLs0j44Dy((^m}jJR^;3O0R;Bhv)-CW=X=w=l_71FiBorw37ZDsp zab_&qRl9FtX_+4{Tm%`z5nR7EiaOA0=E$Yjjs)y}R#q4>jTz*S#H>*sP*kJ=DKHcc z9vKF~*5EV{OjJp(9lH^dBA3g}z;UmRyJdB9Q_IeL7cuqh4_tK92P>f4=^|@{+U{Vr z3f-!NO=&mzgj80E!)sI!aUx|JtOQ|dL?0EX!VSY~#P}n)=ch#soG2-jqAVS^usz<7 zVCYj~C!X5Q>KBW{H(F2#M)7m5m_LF!VMQ}|sxgC@u~UTkN(0QdzlByV>V5pqJil3m z(<{mXwWg;90l*r1NEalqQU;}Trv+-`(8SlAfo>xL9pM!`zk=)boeIPWt-howa zyjdjjL?z<1z3Dt!5xJ(B%`Ptsk9N9fBk-VE1Z(Kh*u@R84U{#8euQ-wW_o-LCTaBA zAY^E~g}B|ekSdgT!`6w)E_i5FVHPp9qXlf!<{Y~*Q7*V=Q(zu?ri-Bxnsb9p%T{Nq zj2nNu{mL4`6@XKCLan$;gL697e|kamcu>5+pP%)uy=sJ>?py*)d;VU8Cp+~KA!@@9 zx%v$0@C*1YE3{c27 zuO_~1RzxK`LHd9#tXa=OJdD5v0@;+ckPx|9p7cZUJV^p}KEDEoUDZbEg12gCBkjEx zd5ekyvAtulS$i})6U+C2dOyZ{h4U(Qt>KIf!oNs>{B&pj1UhC?0&+N9lZbL~ttdPL zxk8}%g4yxmv8K7bFlX{rlA_W>9w*)DS;u^PYcLEFk)Tvva8>nua9wNrj3EW2;TkbM z(vZdS zL4x12nOfh1g58z_k8Js765iQXIUYUNneE#TH!ysUURKL^ZP$vbxx~y_+5DCDC+a9N zy*58-Wn(>iTySfcF^gd^&R0YT`BysYcY)iUeyi*ARe^Ig`w%rYeXkZN%3l##Lu!iR zGZtDEqVL{ax_BdQATf*)esOu2cx3^whoF8u=(cxEm-03soO%kiZ8D^c3MyT4@}O}jBX}nKY+5M) z^?H*&TY=>(@Z5JivdeGqk1 z=sTaJ;N{(Rb8|D2l$5-8Y32Ex#rIw#x5^k`5w6aPunnA^lP)M{vUGLXikkKb%3Rjx z&_{}?gNs%okm^GLCPfLgslX zctwa&VwO%2az?4JFjrhup}{TOC9Nz3la4tU3Q$)SKklI|vWB?u&-0wfFlgyv)Ad*! zf;qg8Zm`{FYUOC@+x0nZ-!*z?*HwbKYuit)+2|UB?^=c|c&y=~kCn!;+0eS9R`wrO z^F~kB*6*F&_ohofD^V+JF>8B-P^IZB*(Xef+UT=OzrtpjUYlMm4{AML@Xm6QmYrP2 za{GYLZ7_lb%t`!lwVvb!TGp<3}$E8a(dH-Y@zzbcT`b%d7jM(?t#;38%1 zAs0cKuD=xHyH)96e+qd^N*Sj6o})3Zk|fV#nyX-5q_O)2$4Y!GL_tSO(XgOzq1~I8 zO#pI2xARM95X}TW=p7^LcLu#0sTl|RDL$sL;Ih=}P&mGKeJhV&oEl^iQ?Mz1REcCs zP&P2Y@B6eeR%!=R?dl0;j32S%$F$|Qww`+&=(X;{r-TP@iAO2OHx^Jlojf4;dhbwl zbV9T+rmKYDMmKTNXnnOU+ruoGQ`b{NFSoWIt1=&ZjXN6(?l#~G%c|hyOeO1 z@lHQ3n*L($;GJTiW_ny=B=0elhk+2K(b#%M^ML~S7!UhWh$z@O?o;V{+)<~3@1;mv5doa4rUkn~8d0{2P|4X3cJd-5 ziI|U*nWB`7yNdB+cOM)gw1T3$714RIo%em-XqC9eJ551lecUza&i#m5$e33t=UhSw zRDwrN8@t~PzTY((ZkFD2F7-uI&Ms1YryrKyp3YmZHgoqjLJ1xo;lqe{&>q5pPj_dC zPU>E6{O1vIdfo`NnKWujSz^_DBU4WUZd3!D$vRJR5Emtp>Y%mpCsxIZsi;Jq;1G4K z&u^^;qXJ){7Z~7QA!C*MmCq4bO=pb@@JtXM)`t|zomg~tSqFVi>^CF)1aE6u>^Ff` ziAY#(j|h|1F+Ul0yqs@s$Hr7@B-WX@(9|`7Pxa|*p`2~=v_B>&1)*Ry30FN78U(9$ z1i!I=ua8%rEm(3!LnZ8V71i4Zo3Ni!++7~u*wlJfL=s?O0@ua*#uiFDSUG+A7N_dd z#*?BoSe6BoCE1VbMFS{w%Yjvt?dt@Lk+deIRxeUS*dIq*Dgrtd>@cqH8EEthBiM|w znd7ZB3~H^EiONA`8zISGL%pevF_x+B{na8D(idh+o z+)(JHkx>M25|{aLFs=^ypD;P(xyT=@aG0J8U0SrWr7%rM2{#GPk*?Cs{R*7$3Y{BV z9rNMaf($!^yqm}}88R8{&^RL=tq0l9iV{C=z1nL%p=NrW{DoC5Y*6X$CC}&L#hJ$; z%OT4?%YMoDh-D~sn#q2v-erNOexTlafowr#0bV!tXiKe%?^SZL#rL`AWPZt34L|ke zlg7m}N%LBlm~-+iwjG=u^^t=tP}cj*3htL5V(u> za_jrBLcN>>?7_1d5swb_|K&L7awOXt8Wx;+YKo=GC_F{qF z+Vq!&O>%wr>N^(5X&vw&)E`JC8rpvD_6xPlACo%XxCw%kuu?#^(-_p|`5Za1UkH|* zT#Qg7FG@*MXzL?KQaq7NI6}2QNR{n-nU)pHf3xc<&>c*=_|WV3wf(m9b{yxTq~(_K z6#7if>`opJPuFwtwHr2<5$#%rO*Ybk1UWLixGTL zxE|HE*Ladu2!dd65>~W*!J!RW_U(=t_JQv$bw5+%5!QmCR!E|Bndh&m91aR??DIqu z+kxDMc}glC0+iFE9|qLMkuV_A;gdE{v!(5NeWfB%P$Sb*3Z$YL+*8AvYtHZ&+sqM2 z-ajBz1S1EC)?4HQ(1quTT|lnYzC|xqpN#3UrNLu+GyEImco#n=C8rZgeka&fi%!Wz z5vE?0la^7f%{62q#OkvQFz(P32s$wiWJ}U+iyfXA_#kNTRH}BEWI6BFL9J5iloTS6 ziPV-Xxtv>uQ{Wkd!6}JBZG6V*-t}ng9cQ(nJnQ#uTDca&{O?87F747-F)QpDZ)e%@ zF~3CxRajNtF6Of^ahz=RVDFhfTobNTIud`K3X5L+eiN%sx^yX7o-2F#5M5Kbkoc>;44^ApyZmKNV*j7=3?ms7~mxz4OCUW>*5D(V7*B zmFrHUYdShm+`}bsU4nNkI&)ou>criZ|HMY&H0gqiiaYf?ShDgI^j0gGs|Pz%bo#J} zu6lG)`FT~(?ph})2ZowJ(5G;2#+*8t!Nm;;@`vqK=GNze7i_50e*3J2Z1&dW+U42c z9lJ;47U#AqI6ilWj)j~jiWPIaHundoQB_a3ISL7NN&j==R~`ZrouLD7AK{-Ja9+9A zy6pcLsg_bnN!-3owo9^huU|kMhU0?4Dip8jW;meNrGH?6VZh?6(>iqj!ei_K^E8_@ zt?tf7Wka=)h5DJ76wA#LLC>>WN@YJp2`-f(Mr8k?lRIXR_%sSJgOSx>{>65q4(8OQ z^d6@#^Pzio#Yr;S5LYtVZ-XLA?{@P7ux6GWe|EvDBUOcvQP5L?G`JV4j2 zE0+7g3RQeSZRc~8FY7+5LwuELuRE@;S=3NJx9nSq{2g`NY8IHkL1{&BaY}ceh2c?{i{I$KQY{%RRzeY&T+>PY zSmIJ8fW6@2til*G)MLcx?Q)i(x0v&>t-q&iJ7DYkY{EyjAK)W;n=Z~BmKGk0jOARQ zjqS&HixsZ#w=r{dHYiINV;DWU!!$H5dWedxU+4#3Fq&j@O}? z#02Lfb9+oZ&bINj7(pycat=*2p?PWBfYy794=xL_Ysmbl9cYP_Pr6N}6HR?Pgfmtv z*FCb?e1gFzyasO5!(NvBtNCsGO=z&Sl*nf%K;_0YWp|HVU)cBQu$+ zi&@+9oLNe1;K4COtX8St#i&A5A1a`3Z-`j^&XygcQi;0FJ(u5euURtTy>OpnZwQTD zPjU4pY6`M@6HS~2#X8{`JXD@tN>ZByp0%Epoq23<&_l5r!IgdPgkt!1+H3>~uICVH zt3VCU6dAJ}BITv|Gg^d;6?){bqGLXz%HEhmtusQwVl-$GySFO1m*TzDlV<-FZcA^p zC#20KR|V1jOTfv!6;tuk30U<_{&ymG6QinY{5J%sMP|l=ur*b?O*)-4XxS8NQgE@- zw_zcpQl1qd4Kj@?qT}>yYH%MZ)ZXYh33vLU?W2_^Gf#by@)YaD@GA_-ps?ctvBN>4 z5pjYzWgEN2G}5KwoF0wgZe$x3Iu&Y|7>(oSs#fxE2MFfe$p7LbOxgx$2)!G z`P_3@%>EwJTG$oFcC}4oF+Z3uUGXxlI$Uc$7m?f0p!&s&JQWo2@c1d`!DoWfg5nL> zGej!_J+tx7yA6U_3chN$XXTmu7cYYaNMY7mE$gF#)NCOEBH z+BnMi+A~VIZ|F(LAJH+L1yZx6*MkuGd4u?p1f`MM>%+k+V+b=w7oNR^)1{U2C2tZ- z674cUx!IwUp|6Rj28x=qo3AK_`Zu@F>ssq1ocm7SiW#z%vY1)314;pbg-XzYOl1w! zf^20z)CPr?9T|-M!sN9Sv8=3m>K?JMm(A#FUMEx2k9Vkd`5S|@Rc?BIo*^VLE}=5j z&Bau78m!B7A(ET1@O(~c17iI6;xK34)u*j6^?tVvZS{uVO{$LOSQ>3kbXWN3sMz-w z>*s=$YTi#TzDHv!YyMI{SF>?!F96{&U2HyKQN(?orr-O?vt{;JZ_;l#D8ur}(>sW~ z$Nnms!H$qohA6kf6}yx9Q^i!kp)*46Zi;oxN*bXe6hEDStpE&vX5WU}t5EkZshzoPnQJv%k$-d>ppy9fY+yB_a6r@-zy&0h))(_p)4qoox8pxbiivX6=HrX zs2jT0CO8Y}krp_E8lGS8dM9{zX$(Tv^})F@u0lq>edTt_jx{eWXB;l0H>t)^F~G+4 zxI1I`1TFM3%9IT{>$_RG_E@J@C{<;nzs zRU5xyx8CqYQDVS?%X|DV=oK+Ttmv8L-m^|cz7Cg=zhi1HSU%Ku?eluml$98H+tg67 zfWD{NoQ86uzR4$Gh8^?;^=qfL0Y_;JKIRbl@~l`?zP5)^n1|`ySQ`HfIe#RD%aD4C?KY{K*qJaV=S^xj(%*c+QaX z?||JLGIuHa5uL*%L@i{!?v?gbY&HwP92mo0v9q0ED`W^4*L>ojrdU5v3x2y--~K< z<%w}*qwP#@HM7^%cpuIA#o@Zp5d2Nh#^cVuoOK|~0-0yvd4E2qJHsr8jN&Cqfji^W zoE1K;T(%9{p*re`#kyj~h2~gGH;60iYe?rte!MW(U5w<@O~zQ=fID5;>pJjlTnx7t z%-rsxC62jRlOk^Nk@C5XMi#nQTM+c=2p14s-0$kxutdVkF^@5fOFupS4Cmp$6VkDv ze6xl{Tz<1w{39%LtxI}4`}O_LjkhD=l0Ke4!%uEcv0MFZA8&&N?KQj~+gAhQA-i5# zArZY@$JJTwYK#KM&_gJ2w>T=Nd1WG1aMm|yo)dy zQ-j4P;g<@(!Is&Dg#|w9YLmHeI}{o!mxRzK>Xb>Evc!6+%xD=qt~o**Ld73o_Ez$Une-`@y99a?WNWsk3hoapQSVjLp=jzPI1Xg z3DI+hHu23)SqahFYAPA%B$%?gZ}tlky3gphH)(cw_2Y=eug8*1_TIqEzGjr=W;HX-+pMJ|~u2J)ap@1l`=+z|#Q|gAiw#kOUYOc?HGU zShp|+i$SK+-a$RT*UB7XWz;SnCx<)+<2A>fbYxSTS%uNMy%HAc4txHX{$})VEbC3! z!p69v+Ibx zV|03}hi~ty1?&8MF}H_oVaYvK^DH--_k%ozjco1*5>f|{tl6Cb8-$|?giCT^H(OPp#y;MyNU@ro!G7?k?19V=yFynXM)31tciv(bxNT4e>_%evZ2(P4O&$N7 zO~c%`WN!f^@v}h|$tP*-w=->h+RvHXHvFC4R+Er+5lqqp(82tY0 z!>0Q?lRY*zJ2!2&x{o~Wt#fUKYvZ;8cOCC6qiy`s1$`f3-x0lc7*e-{sP;(wE(zF7 zM9&q3(PNF8mD`6%1cf~RE&OPZK3oT8QXvC9hK!HZe;Kj<>$HQNuh#OXooSc?mB8i1aggt z&bepA(9T?tFsR5{{HDT&@g0^<6BnNE#}*{po)>a@^;}L;J+sCxZ#Wt6d7qE21elu7 zJ3o%b-9(x8DsP-f2x+W^E}-VLZaPg0DA-UX{XCYnh ziw6vCG~_{TmukT*^*FNCv#JP=MBW0T+<8r=6z2IG=U=&BtJX2&-t3nQmGAD~ukJ{^ z8~t*8O$ih>q3ML#u=LX{T2rl}?XWz@1+%Y^oqaeXh6%^_T}?sOsQWPHB$gt}1%7Gnbn8|6gh>tP#--{I@0iA+fw<};7NbnM@p zxJ2XzC@7?qab~D~Hi$*vfGb>IKTHtFj%(&LKHZC-o}85)#H-H5=?p~gCR8!49rUDQ zmF*HTJ%a38@mqya#fl{@InDz`llNkJT>3i@kv`ixGcgJZ@|493s*)eb9lU`!o%jw9 z+f_4f7D%h%4)$>2!#MK+Rfc+s_RC-01qEcM$5LpN09?RFVQ%)vYar+J)G!zqXlT~f2wcas zMSu1r)X16^O?=@WbimEn$#iN`DPS(J;4iPG{8acVrk^;}_y@7L>6}-{yHvS1$2bDc zVR3srJB`sy20hbG6Az>16~%nEa*76Ljm6kGzHKy7WfgdajiUp59mq#mZ%NPAN~*R` z^X19U8YEiT+*z{C`D?sA+hY9dXQP=D7iKp}dBZ^{5~2;9!`VAG7Us@sXAk+PZenkU z&&Omg4mm-<2Z2LyK516neaO?^7KUYarkz}aiqV}&Djx-u^$4u;tb@&6W29gL7XmX8 zb7@rBFUTW}l_5i)hncPD%<|%R$OdKlLS-3>@cYgR?rQk;I4D$o3X0wZT7aFo+2Jd@f-Se(PaPZMiCS;6C2tRm@9ViP28U0Jwj5vf>NW=g0)&R14M1j8$b zTpe|;EARQ1tmStG^T$&yP|YHaRYek61|kKt5maj8wSDL&Sf9e+#z&~o-(ACvF4+)` zTbP;f=FsX}ExM$*FJrRF!iS0XX~rUB$2IIaZ1|Y26kKdFTC?!}4C3fBP*@N>uGoG# zRxa7%Q=5t~syS^YnayM$T1d;cyfPmfq`yR2N5Py53;MoUBqqd(=n}%_?1nSUFV&xw ztk1bTOs_+sawD;!y{3HmPS$ zvUUL^mX#N^v<4Y$b8^E_Izg(gS@A#?D>!b}q#Rbr;@mr{2r9S3x7D~F>qL3*8e~-@ zI$lg1*gRJstoEwib}tkM2Z>Pf51BO9h`qg|jO}QKPOnUvHZ;RBN~9>+(il_0CP=z= z==7jJD3ytO1%3`lsnwKjkbZU={DeCV*&n5eu*2IkMfy=gEeiywGrxCh#ovNtyjEL z%#TUzGZcHHp)N{rWKa-)8^_8<6+{_tcq(L9BQs)Z54!P=Q$KACRdwe6uBYg5!lN6R zEWATm=aqV6F?_0~u`cGww@zpETaj03omT2nktNJpp@Fm^wEPtBg-}Whufw#J_2Yck zMb3n&2b%Nc!W?|Kvj!29&CL5GidfX;whqQ4#*%!uR0lw7{RDli#_OsAIdYh{NBlw- zT?vK6eRT6&80U}fgR$BTb~lNV{=Pjo6>X8vs|A>;t{<5|E+hFH1M2!hT5=LNIk;{9 z*SUKV5dQAsSDo6sy~cTV(-cD8Fi{`5802umqZI}H?(#i++vXpp!`pnH)^|89+Uj?P zfj72Cu5iqJ`L?~H4z1s*XlvI(b{Mcw%W~E0=~#KGV>P0vN(~U?b!)+8-SIdSX?Qi( z!Ua48oE{O&gBZ@w27VM85g~P|gSnw=g41ReA?|25@6~cIF_y@gPsqY6i5B(H<#B3I zdUD^*CGSgzBNS7ALWPR)ayknZ5Wrsc(x1^O@6__~M_r3;iE`Y|@;W*4bhP0*E7JFm z$I2yf!ODn+v`HmSsggIKNHoEfR+12x;Hf*q95A3d>+i(DQ)I?Z^P=cp+$<=_tW+!# z=1zLnod~|UT@H{MDK|Hd&jI{M|F|lEksc_tgyYE!(&pdGZBpM?c_VEkDR$mSI7F}g5IpHwp;zv z_f+xp8ODL?Zz{AFmQ_9oW~PiBY|LM^GS|u!4{J}VPHI%Qzsc39#?K$+PSN(DYltTu zps!mKxTrc5_7WB(cDOL*e~CIF6sK*wyMAE8M~E`uf4;xcWNbS_9QT{qeqTSn#D!xX z=5n^kgPm^z*BVj+M%PG+Utry%ks+TKNyVp&TIBd?N8FF7Hqx_ykeH*&BECO=`#tc%e+}rPJx~*QZ{si?%MT}e6MD; z5>oTj5?YE&tG1@op!FOsa|h7!Cc*=g-ssnA@r z&buR4p0@%$1d|2#_jph`%M4p?7Lyyww7r(1Jq!~4j^7ZOj|3`*5##!^Klc*}K3!|J zvA?8tCONiW@4Fqn7cNS@nYYtO-ig z{!ni|SSgH|R4JQa!nr}TQFbgpnmX1UF(}8kXju$$N}19-Vvuup&6+LPtkm?iPWA46 zYdMb`gLy%)Q&}wgZ%Ho;^M92L`6aylmq7TFNcfY&5dGg#7(j>rF8~HRP`3b(sIvjA z#s5nHg9DJC^RROO<+B;s0Kq>iD=Sb%5&$q*08#oc+5iys0u%=`JJ)~k7k`R`|3fwW zUo}hqlr#V5`2n8ekD@}q%bNcWcKAmJ{r@+8!3^LKe^k3>Ci!0|4A$Q%4EA5;GXUHD zviiRrf9vtj;NPwSb+rFQHGl%<|AHKV2phQg_k;k)!3}KVZ;C_z7sl}m-S~~p07}g2 z0>}eEF8tOC5ETG$!TJXt@o(Q>Q~!fsZ~)~+I9Pc8C}i?~MQr>#&p-PCfQo;hh=1UT zU#kG?1FXp(PzFGB0QF=5vg9vf(r(p%$>lbkWINq-luyOuPI{ZU7{A(#-PVT>a zl%0e7Pxb-0%FW2Z!}bSY@%Ml1Y+Q^0aPc=E@dttQ3&3Fg%Od~S9w@-g@)tVtPa6Q* zFaxNK?yn{O0B!zg03Z}@;4b{J**_WpSmw9gvoZr<%`X;(oB8iW{^<_DEdbW>=kYoI z>Bs?C?l0KnS5@_Y_VJr}{^B|SK;?H;{;!G+e-TdqlMJ7Yo$GfIzJ9`}0|0jPo_IwP z%)AYKOMUPrWHOA*d6qc(3Y;1zj2!}gFR&q}5~MLt8t-Rlvg3N#j-hS*o+%iaYnsA) z?z-NYJ62QkYqQae?ibOy%epqyqbntOGG=iN#+tq_l}FSGVuP#bAiryec*Ssw=2Z!( zlX8)n1qHz@`R}MAURedi1V6pu$mGp~%V2-la2cVv>hLPIaZ5f@dIJVlBzMj~sv1~-=TR<-1ggFA*xGGUFo!@9ZAyszP-`;y2}z8U z*<6lAIWOW8VT{p08b4R+C@n@VN!;>%?rGXyw-^t3HIi}?Tc{YHc<3TQpZ_!Qm5Mi5 z*Snt?U`g0&{p<13-;!&`4q>zwt8i*?s-!{>=uO7rJl9Y8sg%2hvGBFqya^-T6Caeg zS_upzUO61;IGzdWOmLSeAKXJ*Jyt6HckutOnj3!xz<=V{fAJjuhrsuLiE^+o|5=~u zca{U7_>h-3JoOvV0XIqE z%>@a}THHOQrb6@w#uZYJ;nj+ikZAQ)@?h`1Wbk0&&I{(Q;J=ZcjaM^=N>A7sCpwuY zkR%i|N?WG8b+wOh*4Xc1Ir`PlVeLEc&SixK%s;%r@87g65Ex(dIQAHM8u`AH{Xhg8 zfcBbg%e(e`Z@lfB>KE96e=ou$&euOMiP?ijkU4G>jzJbN0FUMmG0!Z^*W8u>SS2Kl3r zAcA2bI>__e8Fn#1G?Ibc*yA2YyP}@s2Xuqc&*AxdhWH2h6So(FZQ7reJt25Z2|>Wh zf}aNCrg*^HcqAYVs5`rFfyHX}yqZ&V$Fk$Zbxd&q%dU9j_|zuSoU{RTQ}=e~ z<(fFgv69Q@^?(IhOVRTU^4tY>EPYYq{b5}pJg2Td(kDUhQ`-8>PEe5abZeviejfsE-?D(AXdVx| zU}Q9^Wb|X|K*dDFt-NH?>rN4dz~k1fkCuBR1k}aL^$L#|+!KN~OlM}{TqUwbDUovK`U71$(vSK_GG+}|7v7Nk!g4&H2&X0*}R zNv4eA`LRbr7)@C%ci=$mb2SahH@Hn$xmOLUr58|{$LHi`tM><+*_HzhNN|WJS+}b; zTco{wV6furBJ^TkX-6d^mNZ&FFCvK~*k8!X$Rb2r6(t)9Zjbg-i~Hu|7S}Fo%K-A8 zblH04QeA`mMe8cRmUt)|y1^lt4|O40OIwhEh1r7XcEk(DkDs|!uR${_cO?90s-||N z9@aO(g-D0<9PWl>ce@Q)eJef(ax)W(Ia)7$^Q0F_rMt$2l$GzFA&|D;1%-NYSGZDl zY&VaX@*EEybjk~o9k)L=JAi{KY?(u%cl+GC(1?#gSDC zS7-kD(a-K}&K`Le@}2AVO`dwjOH(jp6NL5IXUtXxoKCPXxgmwiugI+Ta--a4mnJym zvw=qiGbCtn%Fzb&oUVG2=34N$B`i_KuZrY2EqCP?XU~I=uli4W3TXg>L z*M3lOe9~Z!tAWi|WXtzHwCA$tSlQi%tKj?*6P{q<;K!)PPqv4M^F(rUu332@B*!8^E zc_^vH_z2%K^Fn0l1t-*ruoi0*AkBwmcPH|)A$7}5Ipy36#Xd+U^m52ro>$1%+S?*svk=n5dO|1vl325P9P`|G z)8(K|^0^Ev-q8Qnc+*f9^$xRooawj~4)JIUnBRDX2_^U=7NA5xTQYix5g92qoaQ+X5eg$s(vIm^EHyL*X+Wyws5@dKub zZV3&F2~SL@_h?mZVs_W6@`V-(XVOhME=dYw2uT$@b8ZQI*ZjWO8Q#yG7kb04@}tg@ z{&EEhdfXj##Kb})Qv}3Q0s_Jv^CS^cm;~eS;p?Hiq&-#@^r(s*j)6zp~EI zpjr~4B{xJ+lPCojG+C=rDg7!l|5KS_se&PK`l?n&V4iiaet!Ie)a?hQA<6pFybq46 zGpD+@`pw)EY3dKWJash=p#|>V#dQ~idGd+*8f6MPWmD2r94^usV~u$dv^GQJ3MR4K zHbl8>P7F)b)r9NxQj-ZBT(Xn;WB8h^2(mN5{y*fsbC4z7zwWuqwr$(C ztu7l~wrzCTW|wW-wv8^ks*7E`^_~;I-+9j*+?j~EcP3^c@{heUGIp+9xpro*C%>QP zSy;Et9!3`(XsppLp;k%Q;&!2xRL|qGB#jyj(jzA=A>4bw248^8^l)NVA<-LvIkF># zWw<5B58h)#9%MvjM1~?UjC%-;XN1KJU19uzq4z6fZ|ZJ_iL7(`Arxc#L7e!j-eegk zR0wupG^|1g!R4VnrxagvV{2(`&i9(ns(;7YO1CORD{!h}v3R%xr@OA+cj$UYwZ+E5F2C0als`Q|7pw+H#WNDqQ3X<($d;9DPjX!{6IaS#m6=RkH6$;oE@VXoHCtoaiF5 zi1@PGi5Gn6q`wub%f92QV3bcvIYc76biDJgO-6jD2`hb^HK0bdx_y;wuO%!6eT8}B zFNA>(lCGV-2B}gLpD%2WPlHy+(@H-wpfNS1x`rBhHJ2#Cw{&RRQtGLRPNAeLh7w9l z&3gQFvvi*uq)=hL=a0GrBaS1;-8PnnTp?17Gew{lmK~Px|jPiU@M|vx(SY(lM z2C-F{26fIDIR|yUh*VKzgfhv`G}*bID#$Y?`fL07>)VtrgWzN1=Dz1z>S^1{ZSo~q z5{VG|Nl%K~3x%!ft(((axiJjPL0UnJ{nQt(4a^r~rK=}TZ5H(^GgIHKo#lk9ZpEoE zj8n=qWjum46B<(54w;57pF%nwP|_q8fp3Ln@zmPx9DR9+9W+K6lLLCOtQM4=y!}3(agdVNk?r9-z`Ey+g+Tb ze6i?Ylm|WUD$Ku(&eR<#(X7UbdRvp^-(i8*PVXJpT&VpIe>5{5N94)>DOZ%f-ViNH ztB4)1ldHdSRAG~r;w?XUS6X(B2%^t%O`k$y^ZH(ef2G!+&G!=FP0R&SfWrH8W|p#@ zMnXgkp~=I#e!A_M5{(z0+S4Q&8o#J502<%&VYPH=KQ9G$9J{4WXgM6FVcYqZRhKsG zMfvdwIx1L+*Zq`O9?T68saPTivpe_eC2NSb<)Wk(F|WHnXSbO?23 zjM8z~ z!axx_@lnl1O*^12ENyt1j5I2X+JrK&d`p$%GBF*dV`&s{xrp*hG~h`RPF2x}aGLCc zKwa`IqOp74rQ|zFBYY(%tQaxd;F$Z9k_bgvog>U>@yzsRpP%DGWRv_fL~XHbRB zE(826RPo=A{9k3oe>?s!DdVpm`gcwz|HW+cpVQO--7*`?Uq&W>)5yNmwl6v8pX%6u zw6Zz&W@G;Q>mEVw2`EZl`KJ=o zQCtf{25SgD?w_>lkxB1w%`MAop!a;9TZVys+$au@GK-LWG0RAL0d?G$<=^$ zwzw&>v^d?-b#C_ za*&M%smpmX>{Y297azE}R)VDwM;q+xI9WmSn8`Tti&0GEdA1qFNTAt&R%+PG3GP!P zhJ4TzS=5-~(T+1c=`XH+^-MAa3ZUZn(e5N)UsdIX9off3-XoK=e?z8KKX|ViAUW6- zDgONmgy`)j@*n>>|HbI}=OFmMU8DGGhyUJh;$KhWztbrGX5RA;je?o&OIQ2vMGDR@ z-R+yqYCPz2H>C;$!=k{VG` z>sBhi6cbG`U|AxBT3<}GZI1GXqHtM38qpAIglHf5(*d$Jx{A_`Ce_+M+y&d$T?F#`800csgqFCzXZD75;)_A2u9 z8ptekhKjRn<^v3X0mH0pQ&zRr4Vz&8`#=Wf3;D~3;w7)({&)3&P2FOA%jhpC6n20gecS>7zCl?W zQ#3u}{<9lSBbREP_F*tN&tx*Ii?=|*&#R63iS`WVITQJt!_DgYT9>Wg>33fak6h|a z7?AU+vS2!dJzXu}V#^v6;8W)If;~wA4;%yhP^|% zxdq+bM(74NkY06_V~Hz~Dmn-0O`ZpB^$(x}#K8a=_y+-C!@MbjPNT9NnDodKZ&`%I zjl@|{((lrxCPOBZOq7pZr!}25xpj$HQo@-N)1*xunbY4y^iSWa9h)D!A>2zB3Qbw{ zyP%l|TvdgLWsY=f!S(`zs-o!XAsYxBgR* z2MN6&Sflhw2kI^l33#?tgOi8CsFo@_<%6^xn%^{~i#+mbtrbiOf&q-Su>GdnN`e{v>Y^U7(c#o?0~5 zK63YmPC`s3;2%SZK`8UrMU+7>Z|?ZxyAT37Fov`N*tigeRRksnKz%hmwxZ(O5nFt% zT@XJZ3PPjf8@&$eq#D=~##8z>N2OF!zO!0pOcRm_d{z;5&c=vmz zJj37@{!>so^0^mZ`ng0xfXn3?JTB31oG+2D_o*+S@FFlGu!39lTzRxWT>57s_fzMt z1iJJO3F-Uw`*TnRLfmrar?J)@z1&Mk%bOk2yV&;igP6V#`jd0)(O%NiYp8+Szh2VOj$iYx6}ozciJ-iF)Fc1i7@Te(=8Sd~2oomWz7h5Q>* z>|hFF1zfMdW-2SRe9EnHq7ZcJSZj(*d{un1typ}|Bvk82YZ4rSzN@OR<^(E)8jmzo z-p+%)E(8h!)2lACQUO;4`Za$qj@{4`gU=TiEMLQHzpV%tt7Wp4x{#KMmc-_bIuE%G z?0Q!?*BY+IP}w$@$0`}yA`bDyk7$nF@pFk6ZEfO@6pd=Xv0t|zLvwQp$#%2G&jSocuG{mgp+yx94tzQ#7=#) zPfk#&>Ka#dfo_ow$Y@V*%KlNY&#~!>lLTM=Eu!2id2rXgXkJ6NVpOZBs$H!P;p$${ zqO+)}=z)R=j!`vWS+TT8tm5Y~bkWN_cBqzc-dsy#b1>uL3yL{ZQ=^fL3{7KWb8}c!atgY+#n)N`NMX#t6vYfbf|6xLb2S-A;RY=&6_v)uNlOchzLb=dd*^LU!d!s{ zdOdBHDo;yQ>+yp~`pQlN<)J@wzr(*59goFB3E=zLO5L{B8H>l#(qhKvx=q(^W_=N* zc{}IGmw{83>{xKTBg{#J2VkhONi?h!gyJ}bj%7cI1sD{sY%{BG1z!I!;P;MrPD#vOvpF*`6&OEVrDXcnR!t_uVEPB9~k2$dffI zv;PiV(*R4mC>o{>ob9oN*K*Z3kR>`gPszrvqf;>(>h7xtL3e%9DupC6Zf}v#{5Brj z^~dAzE{WH|s113(RZadfv*h=EQfV!hE7j~R+LwnCzknxsF;VoM)aetGVolCsKmgu$p$W!K`J*lT}sT+Z&ASjjjBL6p2QB@TdFzj{RqCfV6xl$ z0*Mke>gn?ICg`zn@Cy;FcChib=PO$Aq*;F9W5ie1rLo6kN0p2l6`NT<7eyeA!F%_l*tU=4z#h8nz^L& z_K>F-6Ljm|2QZSjagFj?39A>tQ8QS|91H~wozUcQmi+wt4=hEvFFXexV;47$yT5(` z4KKimN>L~8mMV1|<wlHn}prYoR1Kc-m;R7d^F3oyyUZZp9-LlY+5gq>O~~^P!u=XhpC~0(lW;XwBkf*H_XV6(dK7vzFC~lvm@`sHn?V zeF1Vs?5QBsb&gsVzIqe^^YT#YsxITLa{IC&+~Q4VwHl4Z;KZy!`qY%{$Dy zYirQ9P*0vdqsxvmzLAX?hV8Q;7A45{JlLd9gz?GGu!&9QQ|Z*1)|qFc?lghe+(GqQ zm_H$J%Dz;ei*70USfSX#0}-Ycl=Rg7IGu9*;-B^l?FPLpnF*UjIw zsOc_KwoQ6R$qc2pfZQl1Qfx?|FN?G=C3b)v>azU&|Hwc=yjKZ0T4abWVkY1 zmaMf&K+y3)U=U&u=opcPOuY58Sg1krOqBR0N77wMM2E-@Lx~*(UZ$@FUicde zVmg?EAPfY`cZ&*3GmA)exV=Fq5TKD-GQuT)REDjAhYN2Z&Ui8f)}a`p9e%hn(_T3I zAiY1h8gUh9e#f!_?sy5{K092wWt;4U^?q*xvDA21^a@OO{~=2>CD_LhDTsx>m;Nm7 zjV1*|EG+asA6Fe6A2K~B^d$R+j9{}43W^DErQU$&T{SG`9gZ*{N-~BM#2W5Z2{R{Z z*hi17{ucJDHw`3~r*4O!;{HTUP4}Ah(zVb(#1${xE~MRR{2+)K z2@-2Gt8k2vrei~kIeSc)(fB-5_fS~oMOaw!6q7MLSd6Q1^+cu`R;wnQCY(l$8l`;( zb@pGaGwTg|K!gfMd_111v4-1WK1?HIg*rB-=Zt%b zUmLIr*nl_HAUC^7Vg?7W7&mKpF!SK=-$KT|O&^5)hCD8$dCv48zA@kRD5!q)N9(96 z)o@5e+o)W%9tuV?R)f`8$f&8gR(-F0c~Pt>Q<*8`Q&ohGNWer7GSV=?_H6C)8Vm0_ zXwE@z?lQwkcQq2z5{{|8j0;yeG}aq!)V4`)rX^tWkOKzW7PEg49Xjxt= zk6Z|?r&bhdfPl~grANjNAnQ1&5Xa&TLVqA{P1BK!)^x+phW)4pIlocQsi!_1s0Wzv z6XJL8&AtsGX%9c7+Asn&Kc{E6vpa-e%$>W8F@7gp51IRZDxcv;Gd-dyoi{n_53PY1 zU9l>+84`=S*CeqXXB%hgXDeqiX$Yl0EeTyeY#=~n13y~Aw;(4LQQ zJV7BRCGo#&rHv5^5mly?K!hS3d$h=53YG0nn?#7iKdKEucmWgs9;o=m%OE@$8fX(9 zomMtQ9&x0h(>O4zfy=uk)>;O+f^Mjd#ExN@4{0o>QA+Zf&QUb%e4|0leeVu2M73pl zU&Srw>MD74qGU|W>G`diHF!UaD^Lu-<>Ys8MsoEXe4LxDHbUuiah! z;=ah1a1*Nyacp3)>v!!Ix9fi!!BSq;P|ciGdx$zvYR^rF4KnD~fmcgS-1jI+HhsCk zs%zb8>Teo;2#9oOyLbewOg1@$wUXe%WM#{oOxa!`j^I#@q|36Rb9lU&iO&_q+Y9-e zOhT6PZKu^?u_uL^dzrM37KA8RK!#1La!{;?lx#{gzwfQyk|1;^J~Y~_^|RTSjBbQw z&^K&$z`UP`BE4_;npSiisK+%|rKZEeV}hnmD3y%f1_5Z%^$NRXV?ekejU3Jiotc8b zvB3IJB4J!fqKBe$MEEZr_s9vV9}F`QGJVo+3@5`v_;oy+>DbOK6cVem4Tl#HL<7r? zp?+K$zTDlMw0mtS*y1?r2eltQk0tu`J-I?z*|mSr!}n}A`KgKdA~WK!%muFT^*p-r z{*JtK0}41DE0{DeWlrk_L37L*O%Diyt?5IL#JN~Ri&U8*XQ+NK%EZX*O1m+dj12iQ zZP_>u+Nn>t6jgVv9Tjp>cRFWg2~v1_xa--Y_v8CpZHE}+^Jtt# zmV1&;)WNTH9qVZ^KYDVfTSb?q+w@DVj!!1;!f{2>HV66J#kxn;#k&~T$T26j=iu=14v?C20X zczT`FkyU!u_rJa|q~_HdgCyLu zO%D)Gx0|4!=eN$*vB>kz*7}v_g-%YT7Qfy|dIn}a-m4)JJ@19cp4$(?mpX|~N8OC> z*w)zk*veQlKWyalLomIIE0>8h446*ymG~~6lB>*ynQelZb>f*-idS%29++-3(eW~6 z+eN!%ORhh0h6Q|k`H)7d>2l1&+ymw$UJR7ucy-@nO4Z!_CfDf;=Vtth$j7zpRLs)s zes#k$6?iqThj!WdEs{59*+Ag5?g{^q zz`bUVP(!373S1g($bls)APmARQ_aF_Q3h$%e7fK~--SXAevrg{6c;X~s5iUf=Q7j< zmV%9ScxIFwB4i_)v0mMFDKE9UJP_mhelVqbHbvreMx5!XH<()?XQBf#Ee^Gm=zGNL zQuU(#(C1-M<-X=x+t0~0Ar0v$UH}BgF7*0BR7W^M#D=Y@iy{UVZy$g;{Gz8?Xfn60 z!)u8gjUB1oj5Vsivoro+Qh!;3ooZu*&r=s@+va#U*1l*x$*}5bFD#31+l&S2z?s$A zXVAn+N8hq5&eDX`AUP=7=}$-`9~rbV?dAEQT|+gfl%*`e{XQS*3+WI#ln+(P6_yjZ zriffb=S6dVq~m!b_K88oIs4a1k z_j%83exGRv`?!ivOJnQbl;mi1{09+^KqbE&(RzLcBk}1tnYGjHGF2sL$Od>vQ2_>aCxV>#j*%+G za_OqgUPPZb#VSgjq&SaXLa1GiSO|Oy5{^xkdOCHlHk4{oJ*tx^6(Y;JFe#f!2pcg3 z)@K?!WOLPk5>@1>>NGt&->~ImLWJ(INgv~8R%9ejd)oU!+oHhf4kpq*$wRXU1Rv<01E)b(MSzWCrpB{2;l_VJY$EBT?1Ni8CqNC%(jm@D!j6RcjK?uwWAPq4E$U{ zMrkSKH3y4h&tT#NoDVM`sp|CjLTcMWZlxnjVl7YJ`4E&lZ0-Pz+>E40$(pNpv==R` zbY5vQrbI(Z=TQ~9HU5^70mZ&!7Wkhcj*dhaa;zIh&1uFCeZN}b3c={m8T@&U!xI3wSwK+H$CH8TEW}`GSf=Ye;GRjh>oHPH?@%d1Q({2FBzJ;BQyt}%g=T_ zt^39jZX39LkoR0!s*q*q$$jGH{2e2P+Q;^3;{lnyv()#Dm!Tn&O3CSRFY;FBAzd}d z3-ztvK#5F{@f@pz{8G#jGfR{;T>i|Jtz%=;YO8Ursuijg?Jdgu1eA+5x&Gb0DR zT}2gx@woScSrf@A1^p9cnD(@U#McveKGzSL4Vm0>T-c$na)zv z$zh5y_PlJE8&Q}{`CFKb$bCOd$6Ki&bX0W~BrH=`zMnMxbnU2uxXKg7S)$WDL+5i} zz#B8U<{Is@=)nMkURc7~1bqY?2qKNz_jD4%l6iQn@vBr%dC?TXjLO(LE7OPRrf-qtl@z&X-E+!rI;U; zFjY>s9?u-HUh1mh>8uRqCbt*`Ri$ujf|s{coI_)+kNy z)8Cq@QDo}P`rT=;N&;%1tzP0y*dt-+$!tqMQ6S=(T%3GE5lS(3Hc-`L%Lsg0um9|L z?r`3Wd-d%2-R5+B`MG&1-qAIMr`Oa3AbT(xY6b;JpxD)Gfzqr~Mv_Mj$=QO)Nz`_a zKG4}_J6h8YJ+)tX?=DWrhMO*`BsO*_ZlohsgXTRklM(iFdN5XeKXeWH$_>>lQ{CBm zPg1nBcPb0{rlUx(Tzu}vQ#o}2jS;<6@~erbY>qg_{R_v`)lIx^ZT5jv$*1q`@vo(L z+UvV;c-jnoD$I$?tT~o(I&^|FZJ07W#DebCC^Pqy7^Fu+`K1+)s2LSbN=*F2m5ERp zr3p(Db&?khJJKqiDVsQW0E{XuM_2#TZY0hAX2bq)K0MJkiY}&*(vAgdN8vTbE^i;Fw*8Q9dtQx_gU|{cUF(^>oMU zZ*vI;yK&bem$+^x86l?4%#;wsp;}2tgzk?=eixyYkMoq4?Hgvi9kGn-P4_2LI`p#s zAt$pb#VRdxK)yuofCUyqJPj)p*tklnR|wB3`T8TrP}gABaMxVd)_Xb6DSJk#c1ozK zci0X1PX)&tanB+CJHZ#-ghYq-MK;}QOXVK7=25N37H*HEt#Mg!B=7-Lt^+_#aswu; zI0?jJE?sLA4+l)mcUALZ^vF3<%&o!*^3z=TU_7%e{W@)d z*WD=r%$@7A7s4Nz0s@_8f2u0fb-V`f)JyE@o>8>i)kk(;&vKUptkgAo{Px-2)$htq zY=JnwO$Y!>Z&hwsvxn104vI4KqUtE3Vd$6_(_>)6HkY>wF_sK?^_&ZyxP>!37Ne2C zL{l18b6U!BQc4Fgl3le)GA|zM53k#8`=TXRE7WNFo-XmV>f;544UAUr*gFzjjWEzx z=c*$3k11e=@Q&a^kQ|JBhLPLI`nocy^W3pX$de(`l2Q z8q=e-8Q$O(=@Pw5URQ;&y^^L}mCGOIIL?f*{^>SBOOr*lS^`eXC)YGhchp{l=^>?Km0nBzcu)uMB!I9 z)ISKtuPy!qaQLSK`;-E3S0s$G+e~MDX2?-2RaxM8nz! zDM%_NLWh(5d0s$305Munl+*4d&CIOm8Bn3!4YPo2USuO<*M46Z-Z?U^o!5d!+DJ!L zz)s#d91O|!eUo;`wPz_g`Ux>z>RO*-nyZP!q{j`Et^iNRO{x>iw!uK4+lK$8+=za4 z`(|xkr@{gPtN|_tt&}?m9nAf|u!T2(5}QcysPnD*uCw1zB~Ien%SOPD%F6rH zz8pYch(!DMd1vl|11vs#5Xj^@njYM~JG9EW(~6QJ*C@s*e`}PW3QwR|w7n*CIVlnr zT8~FP73EH#FJz&PR#cKyCfyV|GE3r)cT_$qVoXttFsgdL{+#Ds*f$k6AFp$b^BhY` zfn-BxfhA;_EG0c0jnSB-is4lxfuP1O0~yb?qAvc{S!tt0@-gxX^P6+&#g+~;tOZhG zKG)E0*I};M;djH^9ZXhn!+#PO^|$iJzn6agFDu^rmy6W@p?L3KM#|rd_n7|1egC6) zkBOO)^RJk{|0XSpll`yMGQzKXyzhoK(C%4V9v<$fs_jo+XM82)Pt|A6B@M3a3(oy1 zg^7s5tMkEZ7ZE{*JHW)4f&YTh z>8%71Q~;7mFWzG!PO0~NF0#P05P(7r0HPp-uon+usrL+eyC8xFBrznR2-^u@wM!HT z92K!q;WdmAOHlj$4gn}G!krgj)85v-HI4mYGev77o~HLX{EConrtzvD1e*Q0yMQCd zmA#UAz5!`9`v9g$b-tO&9$(@QR4c0nC#Zv`{suULVh8k5o+(Ly1$-pb-`<6y3j;Q9 zTFsAL>*c74Q%!-}W_^WxULr`DBY*>PY(08*Cm1#fS}S_rhe;KrXY@DQzmIhh3}189 z*srv-#4_a7SaYZh1J(UW@l1pRZdE~UUSZk?a)ZbV zP4i`)$nb7Af_LwC9DBVJh8z049 zvGLji?0AC`T(*95JKO(J;7wy_ubHHMu>I`uRnbV z>ARt8wZNNk5KjZl8qgEFL}@S$d61rgIKK^%CIi0N4-mQo@Bti~K2|kF>svY+?#(v}t|>C%}7ZqL3fHpC%~;X3d&+A^8D+%|z#jZo}gTT5i-5x-R?vG-xG zgH|j);Pr$APG93~mwi3Ahy7XT5#ImJ^TvPa`tqreE5AL!+bN#83u+Vi>*i_DW(A}X z3O;OQd6t|KdZyxyJ@~NRpIyi)P5(jD(EZ(9b-NL2dY1f|l=mro*oQA`uDj{LqBP87 zeUjS{4YDQ1lM~2HaCUhqk;Mdr3)aklBX}3KGT{0LkV3q*M!}q-AfG)rwL!<@1oRtl z%6`QSepcvREp87XmpkTk+*7Xzy&#|U^C{gb0B0AJU66_007!~ZtTyrj%-^V#BGNEf z5%!^fOA*M<3fT*1xsQ7lw!?s_vr4Hslou|ySBNr1ZIxOlbj%(Ren9FB2tFmoEzYzR zz9Lx5(4P@OdXMy5FZ-(avLFj>ksxgE9Y`5*SCD&7Ws%+sq+TdAkUcrAe?z5aqe#d>2($yf zrjVJXMBRAq4P>^IuQKk z6#~7--3b@z0BJJ7`@>A#fR2lD9jGw5Hi@kw&RLR@C76@4kXJUN~dIJzHhLefl&6frD8;PY7l$87i2${qLfE?7EtEXKA0z(+zSXWwQ zxSnQtS2_i`4htpwYm}?GY7lWG6W7jUH&)^%EcyBUf%%bd#EzQj`N1Cj0JGB04!UunCTw3l6=qF6 z*}d&60sVRCxb6ZbCU@kQ8Ll?^FS3|V7f=RY>?!)~UWI~NVX}{)eF|Iw{%Zq*FZcf5 zSnAtr0`AovE?*5>69Vp=pyX#?eQSD-`lD|5n0>En>{Tz^9X11$5jW19tWEr$INs#N8Y|$&XE;Pd>W2=V^?0w{?HzLLpa>e zmowJK6_V!_ zz+AQL@yB?1g?A|5DB!v| zzLAV%;LTMQBf7l_neyb{A~1h!`)_dZcT7#@9JWqHEorN0vW--gX{a*&P*pWLWRcJy z8!>B^HJ-ukGm}0^De<4!(L~`0dIt2h5AA&#tQ8XA;yZ6|K~v+1^KRJ3|Z{2@)7lVRa^r7 za2nlb?U*5S@2GteT!N!k@APoGmS4X;fdgVsm{I6?#8cPpE&TZhZ-ruHIO+9R1L&#; z#l&>i@}V>q(Fk^189^}YI|V?FcY0rAc6no*xX>N5ST=@^?6csQGcWr!am^gF`W#+N zNHT5vEJ8RR;If$4MvGS+>X9fMXlwVoa48($+N1SlYM(S`! z;!xQ`_fJST%V}aJV~t1}nEYy^4<+_~{8X|A9oY-Av34hd$H5*7#q0a2#A#9+4L3I2 z=K+mlJ<#_cOqf^V5mZU5(AVh+1nkL8XU+fF~KA;X3Q0`O2HTUfEBWa>s7L7*WFxFS(}5jszTP1 z@OW}%%*W}vB2j#I z0TYfyNFgH`!uN{gG3ar;`UWl8NlP)SunSsKkcPC``L9=6QZtj_tSgDVLYDIdQcYFX zmIvmu63ieHKBQ+RNt_X+A>p{`cuFS|H{j5uAy7W?{*#i>fl-AysMT~7d>@~GdOxjz zKNtjVEx|Z))#v|MV-QNl-IRw$0*LEYknprg6eX>AF=QeB=-lYc68v;W&6T*FEJ4(Y zsQWqNUS#rTuOn>G_Dr7ZGWA5t6|G%_y%RO9YBX@_j5S>jy=2W=`jo2h(H=M;YEnRZPny{T^a{B}Y{4n1q5Hn`vA!3cPteyEfm$_nt9zRG0pg0#2v5 z0&-Nz`a_(dbf@$FZl#_G7Bl7i99UA#u6fDg0eWe9yZR7!6ru|C>x*v*OBHUW;)M(G z(w*V?1Nc;$KL+sA)8}}+2*=Pn3(2{l#;W5BEHg*sIXibnKK=~P!+w@wKvZEZ+a1no z%Dg=0a34mSbtqh7ohR2dR#ANk^ImC5ZzFza-fFDYkW4*IdlmgiIAQ8n(T?2-7n#h( zJ7*1l{4%s$sK+f_G6LeXKJe%EZi5B`#2TV$aN8TaA`AfMiy7Lp2KFfQi)_EwEfvHwk_~X=JBo!6o}h3`{T07y!a}BUJBRO$lb$;8#BliPG|Jme7Z#;2 zJ-h%jqAbIhb z_Q(M=8c#y@xwGG-&ha9ByKQ;iWOxTD%X!|1n`nN!@2rv}7Q)!YbF3-k#ZngStUeh; zQ)w`5r0SzXIvEp=LpoIIsTDJ92iPNhoXql=W|(GKKrExMhM|U`4iFcFJi&OaL01Mm zgLw1sTk!Aj1MvI&s}he;ul596Bah*)g+A>*FFv6@!v%S+k}*d?2q&IMOg^4eeUye)1s(+tz|@%*#p)QG_&Kb2v&uA-g5s-tu8rpq=>kq`He4v0 zJF+)+2DfH8DE*r}LU~y*Azf%`^gEGBTP;W98)W!6HEwg8$vBS86%X4vFOxj=#e$Bu zwpT(SymzJL=D3_k(2n#>>)T5DNDADGPLZ3)D_O==wXixS{s}meD!fRUZ%doBETzkJ zOvP`th@}|5En*VD=p&XVYQ5d ziHd7NjG4vL>_PfWsGb{KfCSqmv*oU)X6xz0=T0xT>$NwaYNI*X*6(FZ3hqw*jqQ`9 zpWQ(CcbVD8qlL~iN!yT;u7uWDU{j;&*T`t73p8D2np8e0&+bQFdZktG9Y zE(^jusT{NK!PAJ@Uq(W#qAXGjK4h^sA4n{cyFO$tAScDdRSOIR!IU~3{%bbJtJx2> z9qqmQ=WMZT!RB1U`^3tdC#fycjv_=tbxgHUKcA`+>zAP*VZ8J$lWKx8wOze>dI+_K zU3H43?g?;7Bqp+uynPw9Ev%QLjD}X{T*`jz4JU5|HH!V}o|%zKk&BwSjn##N-3&wc zB!kcA=vbW!!i?wDA<4{ElMSX-^`XLqn(tu+Vb7UsPj-B_pV<^pE&^l{@T~PREU^h# ze!7AnkWbPauNv5SJkd{5BxF)9RO`h+A1$leh0Vq5!a>N`AouVRRDJW;Gd`h}l%WiY zZH+0<((E0!ue**0o#$7!AUK4#5_zdKdW8;^YO}Pu%Wr(Yq%s+|)Pl%~ayKp`l)3K@ zq|b+n#)|v;A(!$6O4p8#Z=yjf@Hsx&trc1>s|oEU4`+CDZM~V4(03~~zNVKiQ!_Ul z>H_auJaRjHUG0t#$8>a^J|k%fXtBwa)Ot$9S(WRpb?xQW1Iu2#5bAj5mfW>xc_Vkj zF&x_T+0|TfrUEa|`?36L^;%8&s$UIdj4q&`Wr)Kh5>`FXH*qSnNYqKDR2xzyS9>KE zC4~z2Or@gY?xP6P3jAqM%R>3rjjkjA;8}_y0N#t#Qmc{5lK*G_SE*<5=&qD3@|9+n z$K4slN=-*vhs9)FqD50A|J#xNC*eKM2h=CGU!0E_uL@DWj6z zBRImp%U_PLtH=x#0(4d%CX!=P%0J;|SmiAcK-4NMazFoV7n!(kOmqQ(PdU^QX z(FFSxdPF>KiP`09(4(^Lz;2;jtaI2(r9gNjc(ClIo8ta z#e4$~5}v7eMxrXS-RtXaP5N@)Ds8tU$ux!0vf3|*OQ zLGY+2*!DkEUmg^{qxF@iG7cosx0&?F!Gnod+Lm%PTLSaD*@?;jc29NN(O0S!E);FUtwqM1 z5KRwN|3J=$0q3%+EpElQpTb|y8*$7Ezgr?He*!wTSEAu`Ii=dv^zE+g@M|0{PUBJ{ z{;a7tN-mh!!UMx9-Zl!QqmkY(SQvUMMEPW4u|{f%b{J^4Svp@o6X_A{ny>BKij4EZu+(#tYn8lZ$vl|sk|34 z@>ZoD`?+I+i#Y;YV;Mq$t^Q))9;Br7orUy^6K5=l6*`KN$Ixj=3j4rl_3@>7hP( zmL$JTkTv8_pBt3W-7m=e7AI=5OGGbp{1SbXjGOe|2LrSDb0lY5wNE zRKIw!E)&@Yxn-b~*C7;$*+Ml=Eu@?D&Gas*J$5+N#iCYKB3%kKx*1b+0g(d@52RzF zs+^jI`z*I{IAvMU3bQ5&H&aXQ1?2Vvv}fb`mSR~Dt_;Z%mTfpYo^3j#G~*-#bE2^p zSruYtT&+{n@OUwcf+nnA=YF|Df)zgW}rO zb??R{xVr^+cXxNU;O-VIxVyW%ySuw2xDzxGEV#q%wbpm`%0Bz-ea~OF>I15)=o-~M z$LM!-&H2pd{XO+s2RF@kGEIU_fyldkgkj;#$MsVc49==LxJJ3rkeRmbNm6LWA;Xi^ z{ZUads_NI|Vi241MH5p;a*zpA4iVW&r@yGvHQRm85^*{B+ugpb7w62*cwJ9Un!{GA zoSXzV-3xGUd!O&c21#7de=mJ(eX;hr+JZT-y3Xzk2NDh>B8hS4K$%LEubHr=3uDDn z@^wq>6~T(9!FTJh+MDZHs9N8_aVQWb=TaXw) z38!H*f?T1i8vL$HPpxg0aT3NDzuz(iMzOqHs*ah{{<4_q-0FDp)NCyyvs|MWD>v|+ zFz^8Noa{9$kdpLS-_HBJFm{$L_q{AJ2UHslAuKT8pEOL=h;lJCGTv2`mL+kyV3Gu9 zYVneCX#7bM`D)L`DXm4Et;Qv+LX1tU{WfClQqh*5mQbQ}A9yyX92);E;A?TA*M}JN zO}2=Y5ZE=2hsdowKqpXPLkkE@qqWy@ocXl+Kc@iY=k&U} zAiPu%=0(HQNnLaP;j=k$tRnS^1R4LB$MI?&DMhb}yfeq2vKwOYJ#Zoka=sCgB#d#c z3Nw1}w1UveZbe|FVoAQD*&`W2xtUe&10w6)*8nJu)TQN8f!-Siub_^WcwxQ85{*eO)VN-A=^LsTVq&d~~0ZnCEs6G6Dj?Q~N1TH+;srg5IG>;P@F7JHkH_Otdt zQ@eSq*H@-eU9}=w(mY0haYNyCis6Z@cc%6p_hn>bOxN5_)y~CE*3QOG*Ur195?sat zh6Y)t2t_ZvXGqbgDy+&uT~tj}V@P#KeMoIcqpiy%10&^Q;kYgNRbn+~Q|Lg=5D;pq z^Wwc!clnw#i=Cc(z2Th0)n52xHyK$Z^C7rJB4}}&mhP>}Ho5NUC(5m~`OIl9&uPl= z+^%oq%HHRel@uQBsy*L&P3~)tMFWWHSw`V&C%SFaNgG8oWhG7fMg*ZuV}m4&Up^D} zc9k&p_V3WZZZFS@s+aQ82?k%^*UHJ|+P&b|Eqi|7p2yeNmg~=tzL$|Ndl4(j zl*A)^f01I4?m{=T7o;nT`wf+KX5?C+u0gBgpo6i&qQRQ>C%6>lGE#h8wTr zMf%EYXwHf3)`6nyaalu2hv_Cr#U*}L9Am6x3QKp*M!BfB$CI$*SYJT)3FRzYq|*)j zAeU^AxwnMGTY~59E{HP=@tye=-Cp6#e9(*?pog!k-+=2@MgfXe)o@h zirV9l^M_3dd-*LnXM~cHEjGgi$yzeA=ZQ^;uC0)&Dy~H7IS847Lp9%xA0VLCfU=lZ z5E3FjBvV6fnk9eXn3JDy+=cpiL=)_jv-NZqk5g4dV1w97wApVT2rJp+_Q)4|#bHS-_?MIfnoWYf&UIxjewd@{tGa4I3q~HvA{pA{;c`b+sqA`VB1C;j%F@us*NF7a42&<-cP1hdO?cQH|xFMs~gNO^nebKi{l$m^ROV5!N#iRY@_6 zy>48-67Hv1{4_@6qGf&B^*%I<=8fqb%&-%$aD25{GfC62&0|VFvK8^%H?2il5{l8g z$}FqmVtLbsSh;E%g)Wj!ZEj`#(f(?HOi9x*5kI&aqOq%n}o52eXu~ECVH<96?T*n5Yxa{wd(X3jo_2Lpu$;=$W zE_$>J9-m_QOsiG&?}o)jIjgKLXhwFLmBOSP;Ntov+4Px(UvUR*HsUj5irNA{_OeU~ zyHU3ftC)D3zZG3B1bQak!zvUSPH0_DwRbMi6yKSh-I;Y5^8Q8`U-t#~4pDVQ)X~u2-we0N}u}B5p+hw>c!ZDFBiZ!O4!CBYiZDm_-j2h3G4*Hd)NKoC7A3lPT-%b?<7YO4-J z%l|os4TzEYI}?EgXyE!|5O9=~i=mCBv5=j)jVaL|ZWUlqgRro@JCP3E-)wn077kV* zEuV>l8ECBHpy%LVVPyrv)qro$!pz9R^v{_He_CPw$s6+YR+YbvX`|qwFJ>|(i z3}ju;G~TiZ@wWO>q(Mo-@timLbKZdd4`S3K%rnHkpXzZ@%Aumncu%msH1^e$()*n+ zk4su0XFK~Xpsrn9>3)5<2{fes?rHIgzq1w-ZAwxb@x<2=(dI+h`@R)%^Z-}+uEAbx%^~aOIO(1OOZ2HGW zAY%A875Kk}(=+`EE(8{es=b<>rLnz6dgQR=*N)aYHUW}LlrMuM`jZ!2jCeq zA=U}ZVvQ_a014b9Ev7rnY662jpdgAKlk%hgVKZ&XeYMrV){L8wWM_Cjo?%0QX#K1= z4(T-Kws}>`FOa?c+S9xJ{L1HI5(r51#{v&p=15lC;9#W&*~bU$+?~biJHzb(Jn;H5 z?mD0MJ7-#C{QN;&44f}g&hEv0Y{1Oi03|FsB;WMWh@twP0aZFJXIovn8^sDB+F)_< zH8YYD=l%mienB7`bBl}ER1TR0;A2hzGQIWZ^Y&wK4^T>aP+IGj+a`&Yx5eyR!M8@g z}K8g(*0a4@lgyr&qz3auzHQNv7rd^V3uKckd|BLo&Yy z006{HaYay>3Yy687qz7*3%4P7FuG|Q7}7a%j1ag#pvVWRC})qU7XZ#!ouv!)>AXI6 zb+q+BUl__v&zh)f!dB4Ud*HpWHMK=6#TRn8f2`Xi2dqMa z1EOO2!<4K>L^@JExL}Q)*v^3PgQx^Ggl@4)>P`GtzLH5K#KbR*fDn7!t~8m`r$#Y% zY#=LiRq#5Bq?k1{0?@sL_(6m1QSdtoeuxHzJ%#?fv=cR)lh3IDh+}$w?q_T}q>We> zqtXYy{r=JvAeIyn#n?fo<%k z_((CU`t-RjZz%gs*R33* zq>#Az*RwMNqX$vN0ig8;X+SrSY8x3|mlQVSPE$oLP_6oao-;+Bg=TfylXgXb8 zjS0M)q#2-Ey5Aikjhhq3OKf@n93Sr9mX*!%Jt*zvuVYBgsA&EgHa7*D@pa&H?AYwS z_mNz2hfsIU|cG&(=ZZ~B(>eadMp|j8O-{j!vhxan-?x`5pV12hRK#p1cv7J(2&#F0}YBBuEEBaYyfoxnCsljs&xNp@5uW zA-LTYOflA*MB%Jqsna1UykW*1!PEOS+hHW1AeI$Bwj&WJkHi~engq@m31o`whp@Eq z>7huP2l$-PdnP~Mez7jUAN6STQTn*CFA-gSubcrq^@Iw0@_75oPawN40&ZV9f_$p_ zKN+J{1KyNAdnDKh(ws}=&NLUG^5xPv0RkWR&%2)>6EAR{RNnmq6cqMA^mqd7HcZ`- zQxtxb@b{5i@}bH0gj@#%6#{PTA#W5sGOdEEZ$^`RMtUDZ>L5hI;y6IKDXTywQ7;om z9bh_#Q-f3GK4oY1al?IgbNLRQGl;!|FxAIbj`)jn?X5|T{Vq~3jp{AxB7dPW(d!pr zYk-M2P)S#}8Jw#KHi%ZtuWE|7GCU$ZZj8D>I6$-qfk7(-pasgX{85~i=%JdwmI5P- z6hl$=$Xi>Zc=oG#a+)B~@ij3?MfCoF`To8+cy9d0Z7$Ly>XqRu?=hHd&W+AAS+m?} zdR|KSEvhZ57lph$*45S*^BR|9Te*fVxrNr|)w$Xcw&RzF;mdkQA^iKTf@o{8IWFZW z^r09)I}FWOv=!s83k~HtbWg5dK4-lUZ_S|o+qyk?ZL&xYu5_Rm#AMygMzoCLL46Dw z(EgvGsm8Ck>$`G1vrF_TLiIn^_B7~nzqjsF+!iZ8=w7t1a0$tUBz8*?r+4IqBm|>p z92{4amLIq*9*55h%ctEkcf>|Bj|2fj-YAZaVB7-EABnN~Mq<7-6!J-w9~?auhQ`F; zqhE_7wv*l}#>fpCo)~t>^6C1fH4I`R^tx!q(i5i0G+p4+#`k#Di9XHrqm;i9d2|)4 zd)gFVO+wS8Bcm|whgMXa#6J`Y^$1# zEpR=pWrAHoTNKy6D$_Jud??1Hh6RHp0Uv@T{`wIqQjx3*(=&)Kz>ri_b1!%#6~|*% zp2HKvvg(~hTZc1&>h7+) z-X$D@PcjipN$yPrY|bWUmuwPCU%74To3s;)wX2mo)GCwYtxRMyzgozCY@{)Ruo*(B zQ`ZDdA`%2L|CLQG8&B)QFl5qAyNgE~mYL0@v}Dy%_)=gZzk)Rokg{iDNhX}iuyVBP zx=N{3)W@X%j+b(A|JK=wei zifXLN8KqGPKjKd8*{z*ZGQ*GNr_-@Xt_+0~noM*{Gsc=2OT6Vcjedl}7Is6{T# z>&~1-l8oNh>B3I!!l46U>!w)I!tWkBg-U!~k?V#PF_uR#y46aUx*JjqbZa=#;!;Ua zVd8~fROrR3eNUgX-KJOGda-8BCEQH@`WsDU_bJ)x$R|UCW949DU#R`m>L$0DTV2zw zcD?*ip;4|zqe1)r)KDygv8~)**Ja~B%6Cy&JcDvz7OKiRZ`M3TIW{@Xlovf})2tYoT%ra!G#w{? z^>9|J!cxX{EkX0(KyyZglKI&qnuJ11Mno}w)gT%rVHG`FzjEHFd8RujL9v(L!ikq#SW&oT5HA^kRIDFGEv!(p~ixp#HEVf4| zKEhT=Xd*Sc#|8q1HFSvwcIIhmUP`-gR7m^bK$4ldpS6)nhUIBqhe1H$n-4|Q&WOnbkbpF7V$TkS(2DP-ghkdhZk><*)67H z6BZL{oH~-Htic`>M|3qsjb75cIUG8F)FMgB^>$v8cb?#A%<=_p=PnA9=KAD^^xfzn+cAneZ85Ps z#@2$nQM`@7*)U0vRokV_r#P76H}^VYmc)TO1oBXhNukcba$<23VzL$N-F5l;hQ~d( zFU~7!7ZN(UJO6VtQJxFpYn!@}ihSU63i!{v)T zxlpsG_E}jH=O>~pskYk|Cl83~jVCgu3C*ufea+=YVy>4V*nXYuS7t|;?bCiV{8YV( z>{PVls6x(tAZujikl~?XU8)+OVpcFeRW`3t8R^at`B0J?C|!!8++k9(1ohZ?d3U5Y z!zyy&VOE_{yH{hGGCKXe%sR)+ohALS;nTXVTjh*GV{@)bZI1G!W25pi+K>KZSwY61 zy3>8Fbsa-y%NL+NdFXTnW9nKmguoPDwMWBq?U6vrN}gS56^C{^y=APIkXQYjN+j2! zn)bClc|}zUH0G~yisOPRGQXDqYkYd5be9E8DuL={TI)rOM4r*dGb+u?l-U#UBt>kX$I$$+vF;`0Tm|G^qEl z+V++{^Nk3cDFn|W#qPZ^BuPBJTfe@M{FO&b4YW|XL{*tOh|EKs)y1zsv;J7~(D|X`*s{G$*1%K!Qe=h~_a{iCS`X|-uKQGBY zw1)rJ;uTPf_&cgokBAxAvif(#PUz9ip|0JW)zu=WZpp_i07*DQt5r;=4(^L~ zLm%@mgp3*8LI$g`V}cMe?*-cOqWi*-@*GK;+NIygF~KuTOZ5w*$Cf$w=G#2W86|l>mSY>s3U0dUQ9x_I+Usws?G^Qyj;&*Yuo=J5qM)mlG>i>>VpcOP zXgCO`*5B`p{ctQIy=(c&mN+k(tHy>aoed*5-1A2w^&*29-DjtN-CDmb;NKeySoW?) zEz`#b9U3<@g-yHaNNuil561AN`5O0XS zPRddPHyfF!WxrpbHkL{|3B}czOz;LwBi`S3SH-}5yrw`kPe5dN0TAkx)zw5;o(dZ0 zLJG8gun;&E1`tD}B_e)-1|>`POz4anzC28Q%0xV%T|0MA>aAtZrEK%l$fjm>>ycCf zzN|)H;awUsPzkrJ#@bZ2^|uE^vt0oOl5XbqTYc<801`P>5Ze6elKZ&YHUODyb9^!l z?0b#L-c{ojk|07#rQNaFIvvERH2X^NlFZqMC{(!VjWg&rAnWr6u;+sQm=+pLIk2a> zwFXNBMDxwTthCx>4tn$~qIwI9vZ!fXl4HlV8# zlhQa$_o!@8;}TKFQP{J@Mf~v*NT|zMj)WUrXS~n#zI=Dwg{Rzs=bXWHNZ`n8d*xc? zH;?MRif&%q#@g<~Ra{;&zxDvb@c>(DnmuT)#r@D1P!6fn1}}(T(%OpMg|)E7ULd`F z$Nt4Q%eRmYDG=ez79Ae|H)t~@fk4pDEGvqDVF*JYNQ{w>6l=haVGMJa{)OR1QV8ei zBWf_^P=I~+N%wQh{rR(qQW!~9pV8DH-qf(N`#1RZBfInD2-TwgNG(ke24*HinR;OF z2v%c!Am~j1W?>z4yQDv+NFCCLo#CKPFFGc##`>Y8E5|8u0%e2u7}fSP>j}0|-D9zs z_Fl|u+31KmxW+o9>$ndLSBhbv`)ST@;ErqFca7%AqWpeDOH`G48`DBrLza|>9Yj3S z>~$YGqxmdGEUWr4r{sH0U+YJjE=+R5=F9rzucu+3peK(gXLjUthnSzjOur&$nf-_x zqbCl7f9DMTSqDNp9tg}J*6BOWX&ch zjI0WxxTHA3p+-|=KisqZR@R|pC?y=6F{}Q|h6NM%iAv#@O$*_&YO5*6mtZ3@Tx^>8KBBq*H}z#QIkQ%ZV>5<@=4ws+1g#7{RP?uko=lyWG+%#EbBn>PF!ftTlCm z6IO>Frju|?MPS!?C_}uO@G~26L>QJS^lgH&9P1fc;s!inT+?n3G`TTIBHpxkG(uA# zgkiz`h(>PC0-5a-uoPihQ!Q3C$Yzrg2q$lGw@S|{&o!gw6C4>P?S(}@NG1K|EbmeGQP++vb0ySqrKeLhHz#L1yKzOI4!+TN+|x{Tf-s zmf%xn9ziHyWKLSGFJGCXPo*y9=}A^Cn^#JT&T}j!r6B34JJ(Q*P){3>0)Y*R`JfC% z$2XGNW+4T<<8zZ%L?RU&NggpEt*!c1jy6LQV$&kO2*M|W!7?ZJaI1i;If=otrHEIm zy%9yUrbz4SP!;$@d=lNUk`zm6NO-z@M!dxQcAllm;1DZ^9DE^F0(qxpLXiaND-pl? zOP>OwOa`T8K+z?QWmZw>#!X%klxBmw;M|Hf&V00ZYy@)Q^L$x8Jri|^xY=-6e1bTf zYdEq8D=&>WTy1d`77qIYS;%c^etHMi&w_j*GNii8DPm+2mC~ua0KaHN7*3!q3l6uu0wTc1wQmH9$Hu5G5E4p@C~ov3)rC+7<9@S1C;`%~5F~;5Mm9cP;{Gli z^*$#5E#Zl*Q%peW*tpEzD(i?RWKMZcG=sD^hw3HaiL_HJms2{raBJM|8&8O`jS@+5 zN`jYIgb4>36#CwZeg?g#m@JQs0!) zNjy2lJQBoI$vrkQevu~X6iQl<%*oO7skD(E(`p^17m0~N%TZLrcS4tnh>9wT;=0W^ zbUJX4t%m5e4U!L>p%Iw)i)8uY70*S39ySF zNC;;3!(#1EfWfIJnxvsJ=X<{(1vat%+LpzS{^ad!N|sCG7HA+;T6owET{fjRSY;GF z@U8RBy9}}EI{!L^AUNnY7KW3263zoW2L;% z%>d5YkK_XZ8CWvuH1!M5o}&$3KXuiZc4$LJfk9!$X{nVt&t4XC`A>&&+qLEU}I`_W~LD`sC@a9sgeK z*SYj{-{*wtP2TI3rkAzx;?nbzU9~v^nhZUcbIJR9y4lllubYROHB|iNnxkcomFANm zn78SWl2M)7U*i?HhDUx2g1S@N=}H)eG}o$P3&R&-!INwxBl#7MgFIGp#J#;-3sBu6 z8t~aSQBkT(t&@6|>BK2A%SlBudL5n#H>?%9pBmiuMw-b^bZTza;@_7>m*sz`6@v## zUwmfJwc&m5hcJB%8o!cz)OalCWdjCtT$T?yG~B}8Um6V+d?uPv!ts$6u{^CWW1gF^ zaaBdfJa!VqCn#lGe1_M-DHtm`S&Kd?=ckal5?+owijBA{@&=PQ$9+wNY0%O);U5{b z_jOn}#O~!(_9F6HkBiFTTkW2j-Z-Go zhcS*vOZ4tywcHcP1OE)tRryn#^a*k|XasKwCpp?ok9D71bz&)^fwa%@C+e1YXJow7Eh#9B=hey0yc4}q&)`zzjzHCkMmNSV$#f67o)A(O@ktDX0LG%aRL{>MrADT4F- zv)l0+feIW6mGdOKEj7({Q~AqUDu+P3+cmjf$1l6R;mGI<{S~V1c;A%N1Fn=Q?t1VP zBh7Mo{sF?nVe-&y0 zU~`oZO>e}Po*KHPY8rbFm1YguEK=W(0`b1d_VPv?YlHZGE8c#!JHuZu6^WFagOFW3 zXSB?D4C^bYtLV?Xzl=eXX=Dojn8o@mZq-*RWSnsxoa%9_TGYTwr-n$>7h(nS1#hI@ zagB46EwCA)%Xft=qZa#NzYL5m6tT3c$82Tq)j~`<_I|c0Yi|`ZS99@^V6YQMr`91E zvydhQ0(1vq7#m}gs^3b5_Ub znti{>WrcH+nCs`6pCxRIp&23?(FV>G8x~g~$mx3D4u?6+c1e3F9W=`#r z*kunLD@PXNbNXZ_@70yl`h9%SvcHsh?oR9;*T!rq5_p;$O}}tS5c)Ws!CNnV5a{`} zw7|!^rzkz~5N<3^!L{dBv!Rliq?($O!(-}7IJ|0kU6K37j0|TDutT5yi1G!LN!~Cz z59jDKsCmQ=zL5&A;?T*5hdej~axwJ9wtpi`e0w*!X1`I->2S)_{*#YaFLKh*^_8fY z%&kfz`vq6EiALS?x_yH?|1}R@WkVw>Lg1%Dbae93jCI;``yZM`IVG)J@0&73ljGk5 z3JC3Zz1wDcMiEX;z2FnD(NxqowwgI8E*cCcdHpbd*_5T>AIX2ybs)>28Yq)g%5Sg` zoK}UV2%?rW42Ts@5wnIBYZd$M_8c}#o6-D=oGW+yBCQc@DBfr3AFMS#(XQwn!5lap zCfiugnv!(SJ!v%fDK%1HZ*>}R-hX}3V8l1PE6Du)^~Ca%K~b1G9d#_Z9TRnb`T(W2 zlBOmr*6BBP9+nEm&S9&1F`eoZ+0I}VyJ498rq(1Sb+*ZTwndKRlai*uny12EjjfCL zZ6l6-g*v9igxNza0&^PLieN3;icMp}zUQ^lD~Z!3Y?}}{sfKz|T$x5Deie)cgF?88 z!Dw2_53_aWRW!49k8NaQF_Zlhl4Roa209=wP?mQwxBsd_F##h+{~`7Ktwa5-YW^

9>|3AEle`;F)By#=6>H2%-f6e#r`4j!MLjR=d{+o69hjjPZnjzwDujFBkgh?2?1|S*tc4&g4A=FGqBlT`B`@K?N?TV1vj&O_#5 zg^gbJ;n5X+{_(IuD@@>;(h=V{Fzkk+XD&`kW*nuaxa6v*0UrHypF>eWxUcaeAafZ# zDQYv4x@?!KVvnjp1M}U~j*K&w{Vi^Vwt=@^x9B?+*;E1bx$-YAh)6Wq2c}*OnPZVz z!3gr9MBhK4nt~0{TD?{1k8c z+GMvkXb4RJadH4gAJ5~3;I!}`07)9ai_OzsWVVJC8H?Woz2Eojb_exi6T@=|fFUuU zi`n{TK`@a&I6&L?y2?Yw+{X_>3=jcNw57;wY~?sH5I+wX8w7kUEHW8U9ppEp1{^~G zvZbXl1s*Rm9i2f|umD&4T@dr7IXMmu001gTUcSrE#1CT9P=LNx!1pYHW*2c?uNeWr zFBL$8`%ZvZB+tws5Uy0o_vv9JD!6-_ixvc{2Oe-|oA!$M3NvR&A4cQ{ z>S_QmKn;V1qa-?#7#(GV5xjVP4FpIQ^TPPCZ`T~v)ra^VvxwOvmw>bPKAc@jkUZ;$ zngqUmS7^;}zR}$}%2RH`RxMP^Xsss8-alQ!xd31^m zOe~>jfrJeP=@xtJ4Pw+}sS$pCyQ*CWZ;s5|n0T8s&50XkDh~2Il+bU?jGlL`?b- zTwEG);NTzv6;9SS*ZsEePKa1Hj<&voi6d^4x;NS9pLU0<)4Y#jo!Rp;Sqd}?on8Xf zQ%Bh#fSh+DY_QI-qEt%(?JZQi0hb+2&-MsMPE7_e_cZMzi;j?*{AwG7N)y7ctKK9N zCan!pA8M{*l;b#;dB*Wy&V%cok0TF7m!C&!_s^X^x6AgJbf-f%8 z^^@8bmn$_Ax^wDMd=Ki`=`cgy9CYm}&E8TmNBR)H(*d19hY*6z2vsuRt_iwlKs^;I z#)yN_=dB6YGlb-Yj5KKRxd1103A8za@u&k}^le;ppL9L9T%SJ&8i3FS75~DT3ei#o zjqHcfGvF>dHumWMu=+j7vJNdP4yw_Ri8f#uIKr=75mv7s=8=)GM1;d(KrjvJx(~+q zBBoigHxne%g^Dl~TM=$k@XcR!K3_D|I%R7fM&>vf$-UJ4CSq1F=4z=A7hsZLNxD=Cf|pj4vTs zQ8-($G<`MGME6mzidM)pRDI|shYs?+H30)RAP0aORM&w9b&>%_^I*WcKl!o7yY2&6 z`{kj9QL6&%!=f(Ya_Xet4@G|lke7v2KV>dHK+yJ!IN-?ld1wZFiqqu<$nCSXjX^;7 zbzJlWz}F$f7=k4kg2|JP7ooYuX@KOxftr9+Ax#hwMFm@NmRlc@Rs}cLA-nZ~a+b@q zMA-Pv8Zf8|NwN0f;m}$TFfUfUh9qP>p06SJo~{Ww!MhKy30sK}3s37D?K2XGI90yO=& z7@;r(v2_Tk6%lXa`j?EO6*1-@$1$Gz)eXtZgRFKSvw|Qvu{;N4C5QKMEX3E~(>paMjzfp`@DcQ;qaGz3ei;0NHWAQhl>r`Z^&TN@H{8&dGO>^_ABtWG%9fVbZrgsx9qJRJSf@QXxSUl zbzj1b&J#|YvW_B}+8jQBjH)P9o~n|(5#uO0dG|tQQu9@X1EWV3Xh%PD^$cFx#*DU# z)``cAauOW42kq_LlDn;h*r(U;Ob1r^?`4LUzpzD;HL)5VxUuYL><^Dhm&R%h?{y_QcS^|r$glbC3Clbqf{{h!9#lJ~B4 zNLH@#T15>u5ACXA_73edb@<{Imkg$zp|s#fe*iz`9|*h72QKrC1TE!A9FNE1F#jU<*W31IHZQw^2 zso$dZsACk$Jxlrcy+A696FZ zTpcS>k%;qR>bm=-v5wwJd%`gv4r7f!SULDuVzT?{zMA(&$ zVd2DZ&f=f$FLBO-gv~tcE60oEK`!je$dO}9UmfJcSwNwz$xFf10J)- z^(G;V_l!u$Kjer91jZ5S#u#(*8w@^k#gJp$u#PH0IhtVN#S>17-weG7sizP|4u%dj z?BIpMH#8UybGk^<;(8*54()yyQfF_YK$uWjC89xqh4$%+&dibP5i4GHTdv z#A4};$jl|$2%CKh8hXvVlbZSjCs>co(c0qa3qi`vCBHFi=WL**uzku%{fE&RJe7~% zP_svQMe0;YJGe?j#T(FK=*=OW=_Je{$zw%BGk|eRiJau*L-nFDFnM)BoKZipMwwEK zWnBm&u_M0S!C_>Fx@8WWVq2&%!lGfAid1HdR^h27^e^zLl6*`rC_tIhD;l06`N+gv z#3K_lMQhd+Lc zK3|YI?JF(}Wt0gKr6g#P`>kif+xslYdo9ERA%WByeSOgKSCkeoBvMKKqERtG{K_3N zm=2lZm<{iI2E;`A5=-?Kj zU36S{3}t8WdqN;7d#U@;$kq4-eb(*F!u61<;znh0PtP0Y@sh9B8Q5g*IPQ&4%Ed&c zSSTjqOCpbxmV%Dwk(4;WLJ2ev@pYkkZ^VqKhMXOy&puq zjfw-0+j>=7Gy7z*G}T&qw$W&QokEwa!%;sI4hYQztmmJ@2o6wMuMf}twN;i0;eAJuk&f@(xZLW6pcwZ4IGF}nuLhB@M zg$OX^kIJM>@uFm2Ne0%|zZxLp7sPt|RciSG&%?*KZ$|xgu_}n_IonWOk~*zj625Mz~BC5%O9Ty;pMHh_8by~7jT2V1PVG_d3nZ@uger{>mK_;J;qX!7 z@=~J4MlrjC3npCyinSYXX`-eq;zaqh3{BD-q#m2pbV8?kQUj}(Hjo_PK3SK=3;W(L zz|$X7?(Zp&SDC-$FSy%#6s zyurDCJ+@Y=+j@s@e}Dfj5{!D5n_T_=$Zbe|(d+P7ILx!{^JVix%aO`@hCGP>M2rk; zq+THB(P3O7~@k#Wu+P&*)11*x5P0{?-S_=Y z`0(tXcjk7yQa94^aAs6p4{G&MER0q9h{aqAVc1$Npt@h3jiV~3MZI=(RYXl$&yGzx zl`Oiq>zYVutB&C@hRZ}S zPfvP|mq^i<&EebgejkZv3_}Q%_?brYzjQOLxNE?_OsOqqR35(ByX1E`>$*$@%Eew! zcEvwP%_V7!@M^w~UGCX;^I3?mQJBcAj(saiq5Z0wFu%8OS0OS;`LGzid&aZWcd2 z;HCcL_J4igA?0w7+Q0g&Df4=UetYXu%>GjgP;s_`HS{#SmY2lI_@N^*BXB%mYLfW) zw5Cx`*tssPIcRUt9nb;%mc&+n?!*B{BNY`Q2W5f<9Zw_!>G!K!9*TlQgH9BSH=7`F z|0wJLz3Nd}s}v1`%gsYf#rk4Q0jqo`Isp#*nw=)ZJ`$%H#WaMYB85|eGZ)1tNq@(9 z!>mnGEJ>w2BCL#cz>JdmQ$0Mh?EG>_7+hFtU&yC0=9565_8R;^YwMiWkMGM^t|zF| zAp=VD(8X_};n1Q;WK0UEUbX(=qA02vWaZzJFZwu0?d>$zfI(|iUPfVu0m{ZfnpAR< z$(~ZEK}Lo#O`@9Q2l2K;IoJjF>Pg4}qcG`1yOTC*lOG3qxzCw{8ps_#%FmZj0?7DYbKTgGu! zz+bN3RBm;%-ArjNwQp(NZo{_erP3vSB+Ypb?(GMAVIYm!zc%g4dP!1^Yc9%44a_qw zIzrhjDJ0q?l(9*)OsmPD@F zLYIy%3wA}PqOM8587lqiUHJ&a9=C{ruiE|`deb)kStwboFd-obb&rrq$?ja7RZ30I^5&8>#QrKzpyf1)uV|u# zz>0X?4)JE_5rKdGTK1x`A89=(rz?ckx4zC7&-!IQJPRHg>_Q_?yU|H+g(J>zIiKZy za+{%_R#O&VqG7-gm2@>J`+PJ>F4k1~ymnPTs#b_ZNO}zK~L?AaPLmWlHg6^SJTeIUxjonSR@Q)@8sZgc>IdZjNWIcO}JP}%~WOybSXWv;{ zw68%{%hDDln@+RX$cghDxj5?9fNvB zLkD$^J(-&8x4NYv@pw&aiv+PdLkhHuKUXSitcou_MBz&w?Q~^E(k8LrYS=WIkG%d! zZJE~2pWT+&1lyWs)yZv{ui<5Fk|f8_v z`{dJy*N^hH8XZDHQ$LqWpNR~GX()x*oKc1A-kaLz8>syy>r*-45pH@V1iE0((fg4s z8WMOKMJ#vD4(JqWlVI_lDs#l}VH(@-?rmxP>owHN{xLqAvm_5O&qJE{2gi}&GZ3vC zdA;@5tq|}%%1xezc3#}4Vm5=~UYpAgqkUWcuR9Av{D0WGlU;QS)n~z_B^h9CZq(3q zQVM>}3FeMqLKia1HfM%ed(EQ1zj@7$hV?iVNFvEyp2KcX5z9k^b}XWC=)K%_W9fL9 z4*gzCNvYJ(Fl=NzA*enZkt6ht$SEs62DN)V+4!1$`zx=LWLi`k+)Xls=tDI^oLB>U zIePXjLK96Wc2G@>O>}{*AifN99u%A z=CvyG==>6uDKdmlGnS^*JI-e93oB>YkXQ?Ojh^^%Yh74<`BQ7YGB{&J*VlhXO^?Ti zvpMX-wXN4Vdo^KZHDYPJ%+e%|J=rpVh@KW!8%yPVonrmb4}K1Y_-=OCZQE+{9~#YNNe&8n#pN{t^>@h3xGpae zSU2UTI@T)VOioXTA{vQ?D6zsdTe+2G8Eva?3Rqh@R}v|ywPsdd$rf4le{jXsRKbEa zxY4~%P4xFXBK7yIS!_May=l)b^%PmYipg1f15ONQ!Nns2>^?XL_!&9Irw5djRwNvg zBO`23W0J|Dol33_mkhTRqxPK?OGVww8OB;Vq2e2hSvm8PZ=*@M5c9=;PX7M(g$n!X z88^cPj2knH3RVb=LsDL`5RCZ3ia{4zCC?Uu)jo-=W8^@4MbdS|g@r8O!h!Thje%Lz zzQ4MDK(z~g^Shm|wus#m$OQxb0dN7L3r2lT>2pm&^d+heWRM6)pO4;;)-*ll5j<%G~Y}9hyC`1t*?%6X6F)T z?6Sb5O!p*>7g_C3>-%y2`G6B3CJvO!hU%?+Jqr>IsaejLPqN=VI#m>3H!XA*Yts!{2H;i-KKaS_RA4=yd zp9m`jVx6ofkY4PTZFctD!RVD$ie^iD1+&;(nAMLT^&Mv~u|nHPxTms z_w;Hv49iJIt}PS4vBAyz-tpZ?xBI-*m^^Oem~krmG6eC}`}ZED_dcI_vz(1KHy4~V zyL~+^E7jn01olq#9{BH5kjJ0x0>A}FaRD7sse#Z4&qbnRA^FDDKYn_sCW;}!svpW0 z^;mRmEO{OI!l~=`N&tmYR-j}LmV5n_X+W#}4IzM4{JhA-7#5>6T(%^P3~jVsEd#5! zXrc8%^Y(ak^|(~=Gw!MH$L8hR^Pk80rjvIR8f9)PO3Tx>FR~YSj#1=xZR37ABUh{= zDbH;pZaud^iwGH)tZmBUK)o7u^)2hy^FyLA=u05zY$8KsOEQt3@a2s+sMhXsv!?a; z+44y~(iix{Par(>s~-ayLBnC*mNw4^AnU_)4BpS*k^AXnIh;b)k$YWVeg)gPi^%`F54xrOnb_qx6y56#6sQJR=+h6N9K9XU zPA5Ws3Y3n;ejEc&QpzW!R-bq(lC{>^7N2Tho3Xw*^yU{wGf%wm8BZoFrO&Nc?uYdb zB&fFAeoV5$ac74TTP*fZ&mx_n5~!=^&cJ1}eq<9y6l$$kOeLJmyF#>-19P_$`d#0* z5&C7K@%LYvi0f&HKA($`WnnTpy}0NsK{r@fYQPLgog+px3KM`cX__>EMM`%Q5&}&a z1VnfO_bZVz(?JN{8ATK~g<{?w`j5mvxu7@s_KK|!W6lUtq3{OfUtBkS$M&T6i-si< z+1`uum5UBS*rjQ04gJ7~VxK2wL|GIVB+VzpF{2|eN~9_hA1=cr!6HQ$$@ocVb(`^1 z*0?X5f&~bUvR^6br%mGbu$fQ!4AM~_f#gEVGj9&D8(%3AEEthzcZK1?ans@wQ%Q0u zVP5h%&Qwd;_nY@RT@CmS6TqAax zgozNew&a@pi4}zdG$$J(D%D1mh)0PH^1Us0n{|d3g7p#m3qRXwJ8e`S;ZbY*KG)V( zD3~;d(J!+ppGc&V9sGFW#L_HdHm8mas>o!-QiV2Y z-t(8Yq}=-KsENWwJM74<38pwuIsF*%f-nfzf9Od2FuD}xBrUWTK9(N=T>TJ`1EHGy zX}qOVO;7>UF4&kxg#t)yKA6U!sJF0hJCv6u;GojCLb$}%e&k(7b8~6#X3J*hW;5)Y zkN7JSjGz*jK@+e}M#&R3N<+AN9U)j36QOE9gZnEUk58KPekxf1p1tb@ z*j=%g{ChK-=_@bye~BaHFCx$1LT$`{qwoBqBjhh^&;JKD(EmzD2+Kb@LjLAh_$NmQ z3)8>SsS+o?93hBePd;E1rbtHn653-8$;eu_g$RpN5S)x|3EyHEwVtnNFey?x04@y9 zVMYOwj~mz*RBsNA=Y8{Eju68PdwJmQ{xUczE;a2}xgjn2ZZg@XV>>-w*=j6vWwqo6 z1K~2@cuz-`|VdK%IK8>HN&pQ zvt8nj-iX>o;6tTS&F|T0v@K~nUM#@niKJ5BwAtk57eHfPTl0uq@ebUtgk4^B=c%O{ z8sMpqmC)o=hq%6+A?9o8rQTs9fmZkfbI2?|5)LhIO>}Rkcnhdzcnenv(+a2xGtexJ zUBO0v-+D`GN>65x=o9J_f4#eQz@FWJXt`X-y0(fAZ;x;>3Gz5wxL7rDJl=tM)&)av zU=qCYaQ=OtvHo{LrT=ly{96F<|F3D}uUPB9CjXfKO052U3;gY@{;O%^E7tcvNdB>W z0pR}b897w<_DEjL_{_O_%E_3NWp14e(S?+S1QB9J>?b1!PY-dRSu9jNsQCIeEnYHc z++4*{r3+w`KN!HIo~B$`wQjB_TMFKIK0ZWm#zdxNO9fL^_QPC>ig3_lE{6fAvU<94 zy3zmMv*kGFD*K7=*mwKxt$X_^$DRvj;B3 z=}RmOukgii&nf~^fyp;ZRbgjG8zVUYVL(cHT1sl0?%2^lNCaB7x*EzE&gb!15&9tM zNdU`;prvI9;{HxWoY+}SI22aS8`MI8XP$$QFoaQ4Pis9SV^{AAs3E<^SisiJ>Ao-i z>IVgX=x~gi|MNyLgb9Jef&S18rOB?Yg2dz0&HRV}N&_D?L;)10ECHz@adW>O zbTeL{giSfjP?wmWcx6Ji1_S}D1HVpN-?mBGe78*sm@_XDcdrDe$Tyh0 z`B{w5{#%W}$%bgqOay042%(zM)Ekk|RbpUAMWAPjp($Y(BILt{ybbYj(5i+H7{

zg}$wOr3Jt#D*>*Wk!X}6Y(A1ANa9%S%<+LY*G63Iec?V;qHGn4-(4w%h{hA(3CvCC zq8P#X4~*cJ`og{K4l9_ekX5lL3521dn82493aEuM04vi=?YYoT`3G zqy7vxR?Wu^9nMs{5?sy81~Hhuhp#udV*J&f^;i>lv-in9BKMh9?_Vu<)t8}Tf;sZt zx_2d#Q5q=ZCcOn|jSgzx6*t`cIdsVJCd316K8k&IsGKYZZPEN2u-y|+wZY=r?(PIam~H1G~h;$C?dx77)bz9CZwrq zSfn0Y=Y}B6S>O)f3>>+}bTcBL{<5a1Q@HKH!W+`m7{<9FMLPg$_abtE!Ms253t^V) zl-6tImZa;^BoL#rWeef;%I1iw6ge3>n`T$SK`g=RaHkq%E+ZF2+{Wl%kRE{~*+b>< zohvxa7A`y;6=UWv`>Bk?;CjZ$eBw)o%=y&((=m|d`ph&#lNu%tghsQY;>%TSX40^f zQFcrDsu)n-9A^)h7>->REU7qy%!8R61Un_R$gbvi6r;>paeT{qIk+5y_{s+4p`Ql4YFpnkzzzwUjXtLrT>|$GGK2Rt9o5_jk_E zFVBBPxc+E+r>aS2#_Lv-{q3v4mU*$vP|NZiIAo=k-no11J0>g~x9pV18omkmCi$Sw z#jjtNlXe@VLJQ&0TkVJ0fcWY)$>`ucFw(mfXnPt(Y>BPGJjw}Uf<@I~oR|zG= zOpnE{Ei0IjU67VnQI3S!)hm^erYFB7Q-;Nfb<6jR?Q1bh<%Q3l79_A2<)DWxy>AkG zmPy4LVks>w?A*;sPo(|RtqGf2H3-VNRa>~BEdNkGB*fSC5yX67vu4ikG5ry1Y9!CD zm6Ow*(+$1{)4lmi1|%PA%p4GRdV$yX%cO$jHt!_HD?>vTA6CN3!8mBZn&pKq@@qJk z+^aIAP9<3NUfE%KE88QQf71|k_y`%{Dzyn4f)7+uHT})j zd4G!CG1*hTjeE=4l5yC52|NyymMkWdwk&QQmsLYL<0<^E9G%hv61)jM{2Vm#daXJU9#f4Lv;V<>%Q9y@IzE1AlXG;kn17vw|0c zufe71Yzuj)7#9)J4W1~t9rs93)l!yne3>qjv%kHD1UQLi&k(r_k-N+7@FGRJlXB`# z!P6$UHU>agKWK4GoC1`F^MRnXOa|%X9g(2(oU!S?7(mkos`YL+@2^2r9QvAi1h7lB ze!IiTk6;hWS*;XgHvV5CZO}{&3jtdVjM~-5wJeBVi7oP08cynX*U$cFaYc{%F%JSX zO5^Waa2%AnVVA645SfBT9QWyI0_jwD@5JEE`4M3RsO+Xe{of86G4++|g8OYw$Oj~_ zJM1Rs(`RF_kaWw+Pz5T@YWGT`_%ga?htHbd57yXUBKIi5@2xd3#;w;qY?J&R#vwgj ziE60R^q&<*0<9&m=@T_62a$bRVssYb~rtoKuT7l|gZXAAy15LrsaV#nL<;sz_;5k|x zfBSdZ2->II&2h7j$W8j5(h!Lp({0_}S=496GecDPZ`<4W@K4;S$K^HC&OK|0wDIM& z=QZ*_hFJ#qy5qq@-BZ&VX#Pv14wMQXs`YHi6gu9|(kd~$`OgYNKJDqBmKM=j0!r`o z(0;@Iiat^|SDPEP&wDU#FUI5sb$1feodo<9R6SKy>`L8px8Y;o$Z?=f>k#?NMyo5g-+x%|h(;&xA&A(cw%D*~H z!Ep-5^WI=Yg%k8jKXgTPxv`tZv)(o^J)_505^T$btsrBnpRQuUE z-arkFpb@C}xHQV}SG27TT~RMl`HiG7^s>Zlt8d&xa`;uM+o`^*(^-dK+oM^ZzvB#r zqY)_U8sO0_^R)5PBEC24<4ye*@k+^36Y|a33yw;OLbE;|ixRJ)Q%JHtuIK%3jjCbc zl(IK2oBH4&h9iR}gBpz%or;hk7B#V(JP}@}=$Nqw67|H;F!pw#t363(?{Gt$rF*_h zjDtZ!{VKoK|X0gG}R6jfGO6#ZpRM zl5`Rc;hB(37&^iPTdGsnMFl6nafvB89>VNbk6 zS}oDwE;TSFbH;MIlVtn%K&Y{)rl4N~zb_~P=E)la4q%QyIdLiNE5vCK?&q;)zY-`` zrw;7VD3E-y(n+)sd%{T+la0uvfQBS8w@s~fL2Lj+CEXCxQ&UmhHGFS_@z5u!+5dtwyeae6S-jQ}kxeLO()o>ay{T_e~HUJApNb|!`$Z74jz&kgZArF98Rar@O$h@%?u!PWOa4Y%!Zd|?_X$B7@ zIk}+%4J|rl5d+AKKOjvVRZT+(fiEDx$8jigts#cl4H~i?{F-7yCi>l^@-`Z%1+;JQ z_I9o?UPPLzj~uA2wyW@{9;(%~7GR9r*HTqZOGW)WAH)^F4A^;yDjcbBA@acvmR}$yX2_Z_qV0Z;PWKkWR%`2qQ6Ud03?%VeKgX4s!WTnG?;L#Pq=4fOx>*#QV!sPG^lnuD zl^A=kO&9@x%)mZ(XH%oPFIZ<6?)l!%kWuIk)X&lL0j#=U5)XHEO|}8ay~6hJNH_zxTKqJ|VpW&DKiHRs z^-a>y{%oh4TUjleC|!%U0||1Z!rsBkn=0J>3)@E>*5``EzyL>&)F@g*Wi$AeNh)qz{@30|K}~HObg1T_Gu9W@6^M zF#4=)hRu1u`<4w_!D)f4$8PTvVmsn>Cevt!1ak%@ZGb`D&0tj_aMTM~X_Qc!Sq@6E z7NJ#F0r{3485YF1k-jE_o(~8$S^4L)&r-O7-4VTt=Cy_S0>n>&xjXq&a~5w~@?7gx z&G3IUC@$>cG=<=oz}TR~9mdU}vC`xpYKF2DDp*J~@}p06Fso0bS*v2iD0n6_SX{If zHl9VFvMf;1XNzW`GdU<~5gtW)YNxao$Yo`Po9CdFo}y#d=_Q;4@h6oOV7b0quY`63 z_7tJ=6PfFvQ_4`}L_*w}21qi?#L98T!DTc`^5v*ZzFVr>?Xgl*A!JYvP&%SztqA4d z%`6vb--G$PD=O0Kc(kuT1mT->^kv`$#I7RLBhKbKkmhkN=Ru#fe>nf4B2i8I?N(mn z6dU+03g1JcaD0{(>q+{Ij+0M)pFJEX{~0WJ6xFH zf@7gro~EoA&ulZj!I_RVNW{dm{xQtcT~2rSE912dgP+Q$)z}=L<&V=D#0Nyn)Hg0f zEJw~?-5!?*SJ@eV2FQ36#Kbj;WerzqCwHOtuvI7T$h75*cEp2oX?R0&Q7UfQ70vDH zLor3h@>L=ef+%4SSVS{i*w5O}Kbl$_-{ym;BCbpNz4$1(kWg2MyQn4y@9o&s(H!wp zsTN!or%+63Xzs>izpd_?nKdj<9BDMZyzg0$M0+2YtFNp0yf-J}tJ82i1r#76+-ZNX z_9GrQ?t_7>ljzSRDPfHvp)fP6TEG%xjxJG4nkc9Lc4}MDTuj+jPN8>GmG@UVs;B>G znzTk>zNmtUd07>!P{bBgL@fH@BC>{)UGLNtd_ zVhCeVR1ia6vuMM3fI>x^Go)<$)VG)y-7`&-5BiBa-pMOp`D&RbwHlrFte<08#3|fV z{DZjt)5{-PM#E&$g)LPN3lkG_$FV`f>k!K_f#XK|gVM#}#U_XbHVFPie~AU`hF9Jm z??hq#c9URNj)@XJ^{2;0ACR`g8?pOr4(zQAib1+ z+@I``I2fhPVf-f4FznJEqIFyzwtjcP(fIHPS)IgxewM7>^%%tO=9#!G(B`zK#6XZ+ zl!QBJ92{6dG*E=aAr)k(1mscSWbCKl$%x6rI_HB8;;xkWCXq&bpE1X=AuRdUrItl! z3C7eooTdNbkUHwfg7RBv5|Se#ln8E6n9Uztjt0~mao)O1ejW*XnvKf}SuBZhTUbhY zF2@Ty-bH7wn)S6SiNCT`!JeOpKjr?E$?tAh*zpdkqdj4}jbDC4Q;5NN?{j`=&GV@MS@)-YlZU~a z_w0R5u|Q49MB+zL5`8xc8U1FVd*O*O%pak-E3$6ipF~@!E{S(Wh?Hy0)sp3`mPD~I-B&tr)19W#EzF;w^Cf=h z%`yBwg_9~J?WR99t(3}+chQ}*PSj6vsiKm_ZJeL}zTn%W;v&Pn)~t$qQCx)MsZpxq zLidB7;L2qlNlL)FK+rjsllD~c>(eFrqk54PUi!5>Pyc4VH?w>|{FC@J;C{0pjjWsW zG|zT{{*;0tb4X$CM2zK+M=!M>uELwz>nwlVvl8FM-3$WRMaq3pG2gUAB%hzx2ZZ{K z59*&j>FH4AtYQltxjikZYVx&i8maTtCYne$_Tz{gx`kWWQp<$<$=Dxz8S-A{B-=O1 zI_H|wJU;JMQrl@wf2dklwxkr=%iCw^GM!JxN*Hg7b29r+BE?%h`W3#ftInR3*izf3 zG>OfbOKqW7F_y4d@}U+Ba$1z459Sn%jR+70CQhQqIZv5SlAW z#7}7I8Kzv)vGfi2`Gj7}q&&r>Z(H<@z<}b^NJ=e{dKo=p99>%niD3y{QH-}bp^5vu zx|DW?_+hK17)6Q{b;?1Ssxq&3vLtnw8fsh#vD5^aug+Y9n2~WtM(V587*3OiQo5#1 zshCldqH;k_57{Y^)OJiP^0sV|y(D#fli=L)nN?3Q#09IuobC~lGnsF7((S(0uX9Nz ziX?M|*2vX_`@R^-n}A}id0XSuJo8@>s4P5I;-rUit&v@_nYoowr|g;diaz`x(^K^k zx+zW|&_3X~`z+D8Fo&QkOnHHCC0L=;vOR$H6P9Z$@!)jxVk@AdyO$SLDV1~y*>A) zWpU+(5&A?Dsxd_RMDDR9PGOJp11QR$CMeYvlDI;VLTz-sMqN6jlGyf;82g(py@_O( zX{ZcT@^hRp?E}uC-r$=S1)5SObm&a#i4&(tHC|3$ma_cc)t!edrHV+0L?t4>xLtKo zCzRM!RMN`D#Sz!KNK8rnc=$-UGVq;hoV=#3bC8-tkUXmkx<*OG%yEj&W8dl_E2WnT zHnb+ijq2mgDBaCf${2CRc$0aOW(j2rOraUKh3r`4nKX4Wcx9E#h;&1wnL|_}QtlI7 zCP`cpLvkd?kX@otkC3F%nKZ%f5UU1(Cwt2y$=?6KzE=ai3ye^{V->#^iT-#S+pWly7+U^~ zbUTP8S40uqXwMe51UCvz6cVqfs-`9t_Uql-pIB}A?25hkHwIKF;)|4BGE`wAB}GNV zxaf#;p-Sq>OJc{y`>nv!2qP&nh7+-^I#R-r(k88B(^Qw4H-abwQGT=)5LL*<+tRMD zgx_t}H=bTk&FJHQ-#%>r9d+)1nni=hiHHQBB~f~SL{TC7mjOV)$U;C! z%#w^4Kq%y1KSKcfqG3Xl9^JgA#w3_bP(=~2;t||Cx(7krvwe*6f)Ly(-qWYxfoFP+ zOWyX?txLWO^6rb}Dy83+KdyeG5CRN?l?5q142`|aZ!9Qkf#c}_j8^hDRb)`58)rZ# z>VP)J<1w?#mT#-Tee@tRF`hC<7z#ykxnP7Bfa|q)Et#|cSZ2V;y9X;jyG5Bg?mf2zUkpY{X4b=i+Q;{BZ}oa{;tkOmF7Q^ehaq0g-c844%f9 zi9lC)sX#WHKnI$D{CvR0Z(va10JD4i6R5Z#P*l}2Ag}-ha%=~~0K?>(X+!D&{?}Mx zz=1ImLZ5bx{fX0c7|)1d#;l0ND~8<}+jYXVkOrX=)1{ANHQBMaudfKjF5EZ(fY*rQ z+=zb5>+m&H$r>OjTsN#>gx?G@!#EZKU6c$ov#y@QXfI0i+&2{_1;0zUeqij>0~lSc zX?)$}FpFd<2K8!R>|V&yXj^_V?0Ne`B~{*i+2&H&;LRYrVy$=j=j2sg25)$c1TYQ2!7PghJ)MC7?>EGR_hdxJ z4~S%h!Ve6s1I-Olqm4Fe{ICJw42Crr>FITd3c8=bffzEvc3wnk)j{S4q_pzx&gY$Q ze?iI5FaKJ;?ItCx1nr~A5++?yuPzOWTkOzVK9MWN6 zjL>C+4jGZmf11>xUWR{RG-$)57%_4Ke$@4~xrvY$3!&c!>uSPA@6N90x^DZd`QE)4 z)nTUgNqYc)@jEDk%)s@I1rbbYU`GRJ9R_SPq3lLO!RlaB`X$`;IX&RneLeYk= z)6Bz9qGM{1?ud%#9Ur6h?hej?!b z>w@7JlCXZUF$_VDl0=nZJ4ep|iokvim`gLr*Yn}|$gz#+08aQbBR-ojy*kWTob;3g zj2(qKg7E^7mO1ux=(k-u&i+Kf0J=7CtI*22u%+3bF8IjEYPXlTs@Ckc0O z?SJqYVVsBK0T^-IuGM?gN+IkItKXT=fdf3o7`RLkxU6PuIk-f<=5HJl(+fcHhfkk5 zbBWHjw)%ZdZQ>Ja6x)yIHR8X%~Dc$$*YFy@PH6X^Yfmc(n4g7;+q0Fbdl#rDCQ zi~!zFMSOS(rnL?6&jav=-Oa9bly^DxgPA=7p_wzk4-zRtk=fwdgysO^fun&8nal@- zHDSqoR1ovwe-ozI_fu;l7lV%#1{*=-NQ@UG>WA*vVTOwcq(j`iBUh2UkwFA>VW-}z zZyo>wI6zJ8gVC<7+hq47;XMOT6HCYD57eYBfqYNVJ;GaN*;%)N5q5^N>Ij}1R}f|4 zep+xly!i*B=JvZ^!zjC3MJ~{~jx`?I-V&fD87nuW1dqFyu+BrzL#qUHP3YQenSF?d z*GcrdZH0dF)wNyq>$SnS?|!0ST4GsZnfFOgNKa^gy%G>{Tbs1C>HN6`Wg?xoQ?Yz3 zaUF%x2pxr~8211`lEg9gJS#wv=1pq*Jh&}D$XT;3mv3&U1i#7DHQ^*_cfd%E;-Mrb zhkeLRl7ZO;iE(VlFbBS~v%Jop6o@0-$RSaJy44H^^qm3Mn(b{P>>*U%yj7yTdk1b4 zm}}I^?rP9nf1~Q0OPH*c{Yk^Wln~?pMxXO}f$f(T>yPH4wPV11lL*3~ZuHh#QC>XN!Ln2eil665Ridut#qk9`F8EgylLu4)1 z&cAhP{0YXV2=NJR@3Uc7pXZ~pZ#lFUvZ>Zm#NxiU@lqtenxYRDkdF}&|$y~?Mv&sM!^HFMY+ z)J|^T_jo~92Xv)A?`S1xPn#LI{|#Y}=6DP5)uE304m!a)?R6el&vjQ??-#D)$=Iwt zO#^<&zy^B1*I}oGv5NBPHcFV*Uw;2k-$#DnJ1_^NF2nVzE4IJ-4maGVlwn4nMU(Ew zq^K@U-944=-Tk*7@tyffM_1qvUBgH?4JcirYpKAAG_B`b2i;4G9iFLFEr(U3mW5au z-*c$II2c`GhZ_@=mpy8qsx}^f8)9_#5iwwbsliZS3{&G-wrqdIW2kJJI>nvrRVbg> zzSaEORVYpw!@xcX&|lfu!xn1};zaWP1f_Ct`}4S*Y_O$}lkPjFfk~hrwCtImv?v7V zoJu<)zy!MAQ9${3`fh-)D9Ydc0{7wfRxUZo8KUA&!#xMic^RN3;v)8nz+$n@kBguk z4=-7FLl_JQ0YkWr00BEU>E^0L{P7;S{xGS} z>+30p-_kIA)I3i@8hDEts*1tPC1X^XILrX{F6H*P!kmowd9Mng5ZBMDLaM+MQQl4L zQ30azN7bMut>Q)>X+=h&HR_>jdBPjIYZ-Oy>cJR+JKza%Mb9v*@4(?+{K)AFvWo(j z54bZl{LT(IX``IiimgM1$&r@avYl7Ru&b|a#S))_5nUA@=Q|T{5tulXi`bFVvSf@) z$?d4F3%BZ}tXOyyQvNL@#9Fhi9Y$G#YRzFGHvTU)xJAN?ep_^W{McQgwbd$fyT*Jv zNuJ7~!D{oS*GPMT#`KxO33UN<@)?_`FGxg*q^fE%m^5jM3~)P00{o5#9F^3e3jkS> zOG-@fD-*xlAy<6-nGO6|i}Wl&d()?#e=-~xn_Jz8{>SvP6vmp!wJKEBg03#BS&-kF zC`${5%9O5nYSb&(S=WrNE~U9|7{^zDNg?aQ#?t3QAuiC#H#YA?0K0-?Yqt0O*Rj3T z@q2J1t;tn^7oK&XyA}*C-OQ$4x|4Qoqkv!G*{!M44Kr9X@oOj83oCCnyG zmst++67a|e62JSz=B?X2eo zhUpBW0)-MQ4MjcE3&s=O#5;;Z6Cz3QDS2R-#c%mkbaRxIt|>HIh+0Zza!AQg8zX8) z)dw<&rP#dfc2X4M1Aad7eEoOr7zT+NaMq;dhQdLMWaNXIKP==wPG)Cs#rqM>?<8J04^Pea}EL z&fWNH7c-O!Vbtn?&F^wS@1wXobFsA?cxvz0wZ=C^=FRj*H$ANkQ+tfyU%4p3YoD@y z{vW_E-5+jKcHChP2WdjVH$D0lY_RD=q%7m8?_|rgy{srYDSGwkv!qs%@xm^gFf3v^ zWSv5((-6%T9ZsyBG6tO@S5`|r=QY`|#$*i|cb2?lDfj!@sYhmfL+s2966bo~SbnF2_ z`A8-ibiCj`!r&2cl3+`zU!+q-WM&jr_lTZ4u$p9P?`-GE@d+OBE>bVo;7~ayk%Sr`5-n3irxb(Q4d4Os!cOSXR#=3V4~jBaKqa}~ z*iC7JNx70FiP&8I6eiq&h-?A(GIKbH3tlTyQeFHl-5kX@#0NySfq+vwc|f42UV9aR zJ=nrcL0w=1Xg<^^?AYSiTDDL_1cU}VD1G;U&Zj;sXbo^(LKoU({JFCsThXFVFzh1v z5D6Kfhh(}}MK_lrZQ5!9O#p|~{^}NOj^Lm;c*OEp2!iBx-{>71+J zkeh!JlZVMb{Y7jlrAVV@l4`R{>R0i3&&(Bn;wHuFyj)`A6^T~HPdr zl&ahA=+uw-Ed%DyZY>MRmE``9YFAfR3CT6z$_fI_KhYaT1dqRLygPTU8ww0gpY6`M zr(bU-X7I#cyaYv?=XLGYY^zg|CpJ6xEBMruzuzt5Cm;pHo`jgP0dDe{^&F{J26MFf%(n+N$OInA^7`xytvsN{LMwm zOWtJO)7xt2)5Us+tm zZ58&^lq&2Z=0WRJ-sAg4GH0YkK4w&PV*?3gg|?(F2v91qwrDJ8!L*?zk_?kg$udU4 zc`~e;*HjGbUL-C<#-d7~3Xn()@#1mLKV_H)Vh>5mXMUt zMd>DVRQVuDHjAyMqmE1puB2P7xrfHraBcmfc2~jtt~1`VDFzYN;uqt>?Ev3|MN8j- z28C*NH6uA$(GoB(87!u6`FtuG)mdHB*J}|YaGB6j842_j*f%aknct?z&)4G~di;-B z9pzaQh)Dg`e!Yz>$Z^kY_>g`scAew%Nup^9++t zmGd+lius;J%jFXV@|L}^i0_UZuQ92qxQJ7;OTr0Qj#Q#+MCYugw!G5B8jcRcP~y8* zrLR=fa7MfVnmw8nLy1=XE*;j$jy7z>j>hQ1g&OHPwEV&Uieh45kslQJq67k zmqhV~w~eF}tVq0hgvqK6z4yKTID}{dU>JG6j(ZO!xy@S)bYGVU&1v~>J3Mg+xJ{Qg zTw=LpTLhmq577$?3U^`lv|6{tJlx#{kAHeg0JGE0tLj_O$T4>hg!)maUC8kYsH=1HynkU}%crU`|AZ7e~rs;kWmJmD+_L7>I zbvozDVw3)bXw8TamSi4T~`C%y&6AfvF^0l3cs7 zRo_>5(p7NpAbpCt6hX^@oizXMZ?j9wV}T$b+mwGU!k0fE`8?h3CI{w^@Fp1qm^oMF z8u1O7-N(jSy<*OEJ3Frv+}-hQV*K6Aw)sDjlf&`HH>$4gH*4-_4V(lq2Zh2I$j6QQ zqa0L18_Bzf+`L&=E{Y0i6H!^1^)D=^Ct<;n!ssozxUdGVgN1A&V^j6!Q;4~SPG=kH zz72F(t+~!YFu6(I&rzkLq2FV-32sv`@UhinwP(s4&lxHH)zvi0%l>#*J;s+?5HFBt3GPC#P!2l|)m&wQ~^@4Q?jKx61w&l}yO+t0v6BdZ}7CUKPVdNtK6w z)wu~*??~j{aVuX}y+jWl8fyX}+yD6CeP9SCvn29tkJZuO7gacwn2Qkj_1U;hnpV17l-jUU?i=eoB$ljhLs&SM z3j#jo0`7P*^Fuu0e2vPl(^K-Hq^tyQx4a%L+8<`W{+L#4?qgIJA6ME-#%4ksPnW|M zo5&n`e4c^34qBQcoSs=4NH>uYu@8kj-bP5OhzXmDajI|3$0Kenbl+?xTgKBCk#_P~ z-FJVJaE@^Q9SSogB&MdraC+aN(m{fIFJaA@zSXa-;f5}+*X#C&ftsUA>#Fzup=}ez zVj14sQKYtdXlmPMzN?ISQ^8r@=k+ua#h;h%0~Il_ZRNE|pXZ6X(n6jBBtjOI*>G+F zgHW_nGuW-$M~NKgxBb4VC0y!-xiA@~37eD=$$#PQD}y3i(l()i#-VYS#@#90-QC^Y z-D%vdad&rjZQR}6Y22OV-idFgXXo45UmLNpRZ&0AsmiQ6Z)Ki{%*SwAaWTzVi#r6O z)t$_4O!*WeFURQMsqVXb2Nx4x-Z~zr-p4M5D*wdAW)E ze+-J&u!*+9vP;5KZ&TAlDh&fGPi1$}W`fYGkmcjf8?QQBDyE+5K`~F; zk}TsVivn1J1s7DQiWSyG_ps&ZzOcxjdrk{hwqIdgjn9>McY$=3w`)&3+7Fr^vske+ zTL34kiGxxSy%0$H9=MMplpm7O$Mg=Q+`e*L>d`GR>{P<+gkTqs>ex4SB5N^PjTBjR zJ!L!+vPqPBzu!hFL_R(o{@|^_EvZ91`r370Ah_HoB^mUnD(0+Cv9|PW6}@64JCO20 zVz=R?Z*Wj(9gnd$&pBe8T`A`eTQ zau`(pCZZVjL2-H`bS43?q1Zc^h|EOpqGK^j-|Yl;f{Ehw$tm{>b^n zKRo*j53@Gs?%(EZRw}jo>xy{HxEu=ae$I0I8r<3JXS0jTN92MMpWScblhlW=L+nE{ zeA=;o_WP;@>z@hJQ%gq*q8pw z&qWBq3pCDI5%*j_Mc<(kA93lyR~9=9j2OP!Ihb*9ZU)IaGbG(FDcRCfr;MUgcJD)I zXp~sZ6c-K8AmB3_9I+`iY7bbYlnTB8{%H_w-(KKKcT8AmW#PPurUp$4ee?tY< zR0jMCSbGd0BaCz6XJZ?~-k<1`L%}S&1eh|f@A~JQg4D!O%Oqm23p>JN?yvHzDQQk~ zwXYk2$~Fbm<(S@2bSt$o+e#I=udS#=Yee(Na@aWy-?9u^uFbt){dx|(f#+&JS*9Eb z(RsT$hA%ufW_y{P!A)m%ju=F(Gq^kV$CVLqzE3AF_#|i9-J~XcFhfGb1Jea|fg((; zq8aUqvo81xVENatBoc zif9Kc+Jc-DD}hbEO$9GJWG+HS({;JozyBgn_5*`EEz_2)m~NmXX$HekSTIoxei?f6 zJK@lf%P%A}HNGu9&og)GZ)Au+m(-PkoQv-wt6MFV!{)GsrBKlb<~5zG%PMVAZp9TU z02a-o#&rj!2+Gwd6niA&3+Oo|+sa&{HI(<9t053vobZ{q=#C@9H6KKsEHY&gObuOH zlL`9C&-vmgQZ*tPxfR2WdzbI(nTaM@`pmyueiA7x3;Ru!WM%poZ_m}sIkXmVv3N;b z`Ok`kf~O9#GL(iQQ~QX#(&@fFS}~?AKX#*P<}19R11T(9((!fD!fDkKP|}1ksgwi@ zmmflXA#}r!r2D;sAWm~j=$F=v#dKbE6vF05fpNSB=H`iBc z8Rz(EuB9?t+s&uG@I;W-L3-(?gya6>$mGltkJ6XU^nRbLQrG$-j>y{nyOL(DUwj*p zbSy&#NKSkgef)J=2oY>B0%}8E2bV${;b9k_?tbnV%|`RgjjWo;)AvvcaiYi_IdQ;Q z-wOrdF=uN!_b@eyV!Wwi4H+(V|B#%xi{$qD{twoeyInSW9wV58VTFA1>%3-P>KN1^ z$}93td3Ex^b-Qm<8@v-f--QwEq{lXvx}gNw%@7ngL}u0+^h2!W?mi^nC@F#9V!0XT z3<#%TTl2j)HrB9a?i6&n@SWm7yxlQ)Aa0Gol(e*1a_yD;rfvK12CBc%_2_1)eG&Vv znM*kSOg}`f#pNYVV~c?$#kBs2!B-SH2}2Vqu_oj@l-)RNzKV=AP004v4r>x_+Lh&b z_Fxd*T~v;LNq*m~4gJ|~vr*DkYR&!D$8Gy4*zl>vJ{QEvz&Nxxwhg{zbtdVtlW4W0{k?m|C=G0+V(>@?H!Nu zlpBxNt~>RcJW-rOMh(06cbgJ%I)u-lF5x0^x|wD;vj&PE?;k^#cmmUGeg6)N(=-0z z9`R3Z#s812lD{nz{?zOIVUO_7EB|j;C4c)W{J*W&VP#|ekAj^)lqLU(R>H`__%F1Q zxN&QLx^DrW3Ey~W0s%cFppf5*^F^_r^JX}Keh>?p!`Oc&e0S=T^2o#EdyPhP)LF_Z zwvE7Pf6cPCw79OtvphWF)Yg=^<{j(_ql;Ugdd9kH<6`~^5oWHUGnpx!a3&IKB>z>% z5qn}oYk#y53%>qaPw?*{*n2Xad!deRd|oMqI_$A`@}ZnbIClhO8>z<~Y_Tv)jpgjM z-j|E}oyA#U7rzA=^x>wZIGi0bQxi1}qKOy^;zx{>6OB@!YuCFja)QpLns_49_NS>- z#4qd%{f6_iRi+ZfM6wa<^~0FSz$%hq;^`@!dJXHpeuglJ^IFJ4t@t)(`5L>#C# zy$d)+-$YbBS@$oF9XAh&lzj6N@=SyJ4v7SVFK8D`5SNF9^4$WofX@)5?S~#%8~KI8 zHbGP64!Y17S*YxP*g|9yrs{~@;ebC~|$Bd+`{Z2Mn`D}QU&{+K*Wf6!_Ei@3tX_J7KwVPs!W{n7i8 zChHD4FW9miIyZ0LuGo0AA%GBy!S#+`1I;>>veMgu$S{4|5>=2@a-i^lcBp|E6M1BJ z**EoJK<0pX#c0daw$g){nn^|_gveZL0SjA>+0*ZU(io1 zrsR+WyrT`IF#4$wlB%MR=9L7Y>-^LN<%k6aLGhA*)J4vhQ6{0KDJT1YhTs4dDk1YI z_VcLR0C_@oHxxGKGM%e0-~pF{3rZ;&IgMXptbv3q#k8ASnJJx53kc&|BIrhdXLo}d zxuOTiZd{GHO7>EqXY=;aBm;G7EOpEBO^sf9sKOkrY|?z8Qyv24J$o^~sm}0t7bn%u zk~@dKJ>_~(m)nC?i7}l4!-Kise=YbhzhUm-D%8YBUS71|`mh=oqNxl;mZP1ZfE=MP zN~o2Xgm>S&pN2V;jjde8t>MN{8^Xn1kaLHC&4Qk{`9(9weT9s^CAk3xaVRQtkt-Sc z1-Yz8l0->v?xMCf+tL{FH95l4Uu#9EtcE{b1Io_%(NeVZKIgTH^%W1bK_(rqp+W4d zPpJW(W1ibm?nSonKF3UP;gT`$hmt&~yq0>>PKv_JewSD5?@0b8mOBoCBx6S>JwBC3 zcNJY%*B%1qOz1XOO*A)2ty0pbz6&JpBdLrw-B?Qefw6RYbLWE@jE%V#Xf!AC%qdgh zoYga_3^swJz;@@FqHr#UMCX>oq_#$Ljh_xp<^?U+v2IRS=m=4Fg=>I!`5#aUn(_LZp?_C@>sR$RUkeg1=OaGnCtt|Lq`a$v=9UyD zsg?5;SJaLNOn+ zc{OSQnJ}3Ab}x2$kG*6N^pk4jyzO>Wm6g)(JbA_6a@@Z1@wyCDo1x}xBX`ZpN2xT( zzwfnFOH334om7M7RYUh}b3hY{d249u@O^im7r!?W`quJvQ3G@4So&T&!ESxJh~)kT z`(;-nbUJ8v+Vd^SfRGyvm7Sut27wC*wZs}*1Zm|qLF$%#VH!BSmp;9R{aJBu${QQ4 zXbaT@p*!*8nxAXQZ?OctVNM`iFt@nd`ij9<9aQjB{nG$J=8_FbI>!w}dI_4@J-ZYs zo<2pmO4hjBv=samMz_cwH@pV^#ZJ&kfI$CO@X?@>r7U|qRssXl7DVb)m~sumTe0$Y zs+h-^mjtn;NH0^6Y8b1vNe%%|Tb_p-qtmZ3x)A861BQ0uhgQ+7_zdxGti)8s{TYt5 zZ!r@gQs%YK_!%NUzo>`3*u}lTIx}JXoHisw`u!O)PyxGN#92&(g2QT4jg>T=RIIed z>IdL5(9N<3pWJoJ(TD`pA6w0eT1?sceXT)QMIpCVHj%?kl`Y!{%W#G3b}9yy6;o@* zODNtShz)~t>>iDrE1!$1{?3qqHC-4V`jv@X#qLW26UZ`|z!#lflA1|f@Cc{kgZC*U zD6sunHR{84eDqjXpwem(I*6CD-d|WKC}zPj;EdTBaG7w0BCBhF=+y%n6?#RfD*?Pw zV}oBwSyjxEpn^wW3f!ol;8xWRn-CH2Jio=P-!Z{#BGm*uY$%KyVt`cN;he@3Lpi#? zq25(=!Qr?Z^+a{zlJQ~X6`VY%=j*+KqmcUyvan}p4y>7XL8k8(^wN~jwmv@ zP$Gc^$BIzfjP#i~M-$dc=N zI`ZW$A|mKAXLeUt(M{e>UegyYYb+Bt1}p1e4Z#r2r&`s^!esVa;o#Qug>Gv9H=LZ0 z18H8VgHiP0)i)&iiN3E+S-931x~w&NZkrf958-LJ6n}n* zk!?_ajtR@o2;{MQ89~SJz8T#Oqz!#hOWQMy#ke)grF~aBeMzPv+{5&2HgfW5Yw7f2 zSR8InWKNv=PbXYo)K^n{boO)=TC*hknLq{BQ*-;7fZw(01hXv679#;-1Qwv4l%@<^ z>m;<=YF86swK`O*buJeZ3kyMwXVGZ)@l`ymhh9AzWLK?uldso10at^yg-k5mjTV!A zDDw^Ecy!wlg}m|i#8IkuBnZvvB|an?zFu0 zr;l&ZXbg?p_~!6AKNM*n2!UCie<~XEE}`aC@U0r#K&q%$vw0@f^odDF*g;7kemX~+ zhQmj1>_rPN#|7uv&*ZJcHBtY9#CG-!Z~Ue~n()ISm~=hknImV|L5I`TaHHcTT*tNG zC2&>4#Lg#ptx{-20?qHbcGRgiY5H!h&VvgVf(ghR@X+T=<%8{kEI*W2tKLn$Bq_;{ zA|}dYF3{80nEnk5q^AqJX-Xv-`OG=QaN9aNsZxuzAi2`W?nBEz`kDx+iu|s(#$^z3 z0*@5i^eZIz$(@UWpJ4rl@OLO8OZJ6Z0Ad9`LeB1G2bzgPr$|5^98vEUFeIfXzTWg% ziW4;w0dH@yfq!KmyYijej0v)r@FO&_nAqZpspyPK+*hyLLF?z*sLtkRBA@Ta;Q}Y~ zl!2aiVy)^`+8D{*Dp1E^IylL^K98J{A9SKwMbkdwtyIU1cv`iy7ir|Kb^vfNk5Lm6T(L>WAZXH%4npSO7Hx7*-$uiN-u-$YE(jyH+l zlxJ)vSRYy9CRmT&jGym3;NBbZA22IkGyOLz@?7jox~50oS{&79N_5m7SyN7328A6FQ&Z)|Pv#%;tqmPc*GI4aK265*J^9`?m)C*9h_dD9%r<|V){ zm#{>*!#O)d=lg>vUiMhCt5)G2-CzD7cI>Wl_Au?rUrZ&Ril5~9d26n~-Ni0iRUdT2 zE%u?#?;&xdLr_c^#!lQp^|pAF^|ufyw^(2%oF{S%&Fgj+!d)*qQb#n03*heE^m(Vw zTi1RT5t|fy1{a%b9K5O{o_j}%T-`k)#eC}sTp@aE{v=gVl`y9}pQVqr5uK$=QcFFp z%}9<bT#o3tLMxH}Ch;BM3eI6ux85xr(K(AK0Q_(hZ?p5ki7LuI{lsGHY4EpvbSfb8QU%PNkd@)5;Gli1u^@{OikQ+|dKQzs}A z9e4ICchdSL#!q$FOmT%*ct&TSYLv*%5OAzhAJd5OghcP+JswGmK@+ckKfY&I$2aTD zI1p=K)t7aTrR=?(?p`E@2mj>Fn3;BL z%uO#I?VGnxsQb@+tiU82?0hVuHz}xn@sS!7TWLtCQS{N-1Np}M5^WBdgm~tp!u;rc zatCroFDeu9>t(1VQu02F!-$%A?!=jPXX)^Q;RE!{HK~m`)BBZSELnbQg-?@vVFh!t zHDjllJKRj7V|ND_or|1MaT=NUc!FbgF(iUvB!%wG6ejMtIAUTUVf#3urqR)Jc6&E+ zI~q1Cu+#W>d^1f??C77!@R7T_rsespVl{CCzmPAJ)sS~D?InTPPBA&!4HwBUF-2C% zN0hte;w*bd8^6pD5USP10(!L!1<^%><@X?55VldHAo4;G&U^dDu&r}0eJ?K*`o@q^ z*)^6+mE!ub`%uLW&>74O;|;%Q14Q*XV&g`cM8hs?<0QUdLeugQB77rG!|c!h-~szs z1b(HJ`0@_AjdOh?Mxe^z)v3C6D_2d7eLjRA; zkUs5k0dx#Bbj+V2vY$(RK^1(uKUepENX`D!eh~xnzwQ^s^nA*YV1hpPi*Qy2YBF#e z1?b`(e_*df8hHT?D$DojV-2$Hodsu5`Qs2hPCpPH7b!Vdm51{3_$g2eA4Sdsld^yZ zPHpQ_ZG)NS?G)OpRfmdhh5KqNB2E*8jc~J@S}BkHFcwEM6hZ zIXiu0i83XmBLFo$g{-ii+1wA|tvj1Dt)Kq2e_Oo5vtw}uA++GxA(%Q?sSNcrDvY3_*LYO zd5;489PvTv$!}&!g0iIftFefVNg#=!h^FKa5d1o|j_n2ro%zVjoI4^PJ z1(K(OfZHan5MNFN&sqYV+6C&(_)YLup7e&BO$+4cw84yT#kzj{Rgw#6wV~B#ytN|s zqTtIgi0{)}s%Smla`l&Hi0&HWGp;h8jjIjX9}&mA*DIOlqDg1GE4aSBKnM4?jv{dq zuHd}TK*;yySW9!4NmSrlg|B*(QWh`lgmpgb4yfJMAeSSpLxtY&A+|u>i$M8zu}s3#c6h1(mmkI z)KZ0Xb3;uc)G+XxcGc6o6fCGA5CPB^(VODj4k#HA{@Pp*RX{vCOO=HFi0c#}@ZBlA zy^y%T>o&INj*w;3;odO1NPt28uf%@Z<^2P!#P?TwlXuFmv=$G$n@7g%1A+_Yp11(+ z&0X!S%1iHew$G>E6cM(lCpRiLzzd#EO1_)ogGc?NEB{JvY%gzU_lG)nnEP9jQm(h3 zOckNe^^zkDnCIMM#eQB*lOy}AnQu2m%{BXah!@LMJ7{;rzPsY}v)1*O4e1C-g&g7m z7%^88`UBah_g~2(kSB-+z%9wK=xKBy-Tb%uD6KUJ2r$`bUaHZ`g4MWk@wo^fA-dG= z)1gK|icH@Lb6^0Lj6sMo@EsQPRB z*I}$5`32AjFnsxBq6+Yw_XrD=f`i1+;bf2jq#2>>=%EpPX=w? ze6V`1+R%zF8KQRSy!{Y3Loc@IIRmto!unkG_~lt85ViX)TyeYMZNGWgp30aZH!5IC z@3I1RK%?~0eS&&E6wjSc`&{gxD67AL9Oe4tpEcv;xdKP)hqPXK)XD-sU1E6qFJ4kP zZy&mX+iWo__J;TUyqm5%f;}B{u?4^1C0_gC&z|5F^}P}A_p(g$nQDm57TpT)tAEWN zhWZcZwP;|2g(&OWx7gUWYVb+@n+Bwa5A`M7moCxwXCi0xwZW-y*j}}zu1w4q?ETjw zQQQxpDtl{eFkM9^%PdtZ>n&@OO@q@g?V1NY*!%DN9}v}CYf?ZB@?2ifc)PgoT<2Uj z^;h&%12k)4H0>ctc42L>W|1~0v^2RK;9 z{S!+06hi@};+z(ufk@V^p^DAhg;-m8Po{Zpm&cwkaX0~+7;lKRyR6GSbjD-5?dEyG z(`ANVd#rAQLsT@5#!%S318oB>B{~U?DO<6V&)?U0*55d~7T4(;ts<5O6C<1=&Tu%m zNkY2b4NG5kqhGCGMDo4&CLKRc+Be@$o?IrfI3`ODy&T>S-w7Jx|#Qn3?CT!5hwW={GWBKKLKj(m z^c>6b>gS6!97~^-8ca19m$b@coU8(P6uxXi#?&{fUTL7VLBB2tv4yMl(X>_{ zg$woWhLd^d>6Lu4#xnPOJhxp?Ye{?p+oow-uwEV3SY8gBqhF5Gea0rgzQwC0PA7`r z14L3fA`w;~_MBJC&T#InoHwjhP9;vg?mO-s?vvLwtu~GE>KweXiL-ko5l!Q9G1OL0 z?f{Xg2GmliY}NdETB$`!7xM@Esb)z*jr){-go5zF&gaYisqG{c<;=x_H~doSDi*Q| zcRjimvJQKZhPfojI3aLr$MabI;FrQ3+6Js!%t6RPiY75Va~e!1k(1y%0Y|>v;qG}L zA#kp{JnYPv^CjBoJJTGid3$%cTw z989EeNu;Q$GkB@T7Rk~KxtMS$;M~U>P8&BQOMRK7=MT-7Yu4W7lrQBWSR9QFnn5h# zZY!#+&)2>WW+o>vd#@fq8-|7bDi&obuR0S(kcyll2xnm~IHUX#n~#~KSS21OpzaIy zj9Q!Dp+qW?SKrP?Cb5#q&PHUGg|RC%kW9-!GVEke#?w_V$WT60k#NHNp~WR|x7|8} zh>2j;U~kn_Q4dN8s8Oy&k&wuiN_r77bw|Mf0d#o3L--S`Z7T0_-o?^TPhpo=IqV+> zi%VcOAh%5D<}ApTq?j|;<;b7ROAT6^4Qs`&`eC9$CM3ex-3bW5 zo0Vu+s8-H~vG~MksmpIxBn&y-rK&8h%-K6-6lGC5*k2JTPNXv>5Wk> zGTi12m@}J09{e8PPkP(V`QAnK6x=HiJH50;p=LiMKqw|A@OGysCV*coXUKH_woWtt zF&=XO@i6r&yL0rONJ8D=CM0Ws+ck$Y%^E%6R=WS{R{1(t#_;1K0(M-pEX6V4=Ee!# zIl5F;Njx6jP^y>?v)hjWv}1`N>;aX=(Yk{XLW%XXB4MJkT0%)`lc!Qo_zZ+5HgDTTOi4~nFd*ZVDlmuUk2HY@LT;W&0 z=VeD%n0O>z^kh=chTGOKDS=y_nal09;HtC9V{YgWuwN1C`%fn47y}tj!@e z4p+)A5`sv~)zuZ$8G2iCt4# z+58K?Jb!?CZQj}HcjJD~Pcc!Fr0HP(9L$b{#5t3PAt`sYlBCvK-etrS45;8+LxI8p zPRyGaVS5xN5|zkrjKpSumNsFeeasB)irKPV$Dh(Hqs*8_GkA&c=H-CwSX^LAzo%M( zpZ1%!ux#A3TqxIxi7;&5T2MhLHQ}D*UFiMAysFe$#KuOG)i*OtSa!<2U4zf`;d(=@Sx(53cR0Cgb76KP z3@4B&cV0rJR%~+iIeee3x?C%5M`>zYPj%5f+zy^g*oB`+-7r0Oss56Aqqw0yKezF` zML@ULPjkKBtG1Vm?oxa_+e|e)P{5jTd`#}#)}Of69XZe`8-Dj=oulvE$peL!)PBNo zNrA!AOdb`!P7N+#EX5X#-!^*%8YhCuP{~;3rPOO~x{^@-_^uFBHvc$#EK}$?B}I&e zES01vMy)b8%n{Fo;iZ(U3_lR#Fe?pE)E=Vcdi~gOsNMdsifBTkOAF<8KU$lZxXe!fY5>m(G3jML{YHI8;Si3$hqZ75(^rA86deNc5 zTO6si=iNsu48WW_Rzn@IgKO*0{FxSy3(b#NeYB4`qS?T1d4V70rHv6Duh$F)lql zb)Y~hEi*ASHV!7kG)N69U<}R>oPX#QK18OL7P!%NoKpwexJ5I%-^@sf3O9&-tDZLM zmQO5s#{R@U^DYo3=c?p0Z+hysqd0A4b)8955r zW~97dKM=F(N0#e`3;|#A2`FP_%>u88Qk4-VDf~iLpLF*oC4w-0oE{?`;E_147f6?b zAI}~*ALD}Gm9*P$wrwr$qNEPr-(gE}-Cn>uv;<%^a9!WUV&2b4Un*=-Q)HEf%?OP3 zht-Cc4;-h7*uQ*7*pk$A7&5D69Px!~M!>bJqf`)Us%F5&`ZauPA6S(e_B2vE28EJ* zy2m&hI$I>ollkJRtUQ}IL~Ybkz*uIHaeQ%TPwTZl)KPEX;G<(S!yFunJ!kH_5{Ok5%LY3 zIW`ol9ZP<82U2yLQK2=O(50uu@2a1N`>qqexNA15s0VyDLK@=b> zcZt`nSl!1Xr>VyE*%gr4w|%!~On8Hu&gPd$01gy`V%zNlk2i@|7y%z4?mtzsmPJPn z?p@H7KWgX4Bg-dOEP^5H8)1aHkPTT3O+vm`fr2Hg=g(1tLZJW+q#?hpb} zYH-ALwOY@hy`idIoPLF*`xDy4tpSE{&@j2B-^Xob6L)8XPzOz>7KuQ%(r#+~h&P~cIL9=b$$#$&*HF;zFo?#jFY9dQN ze~W%;%nz9F-$rcniB`1$7T5{3=9{2IKWVDP3DYA8-$Id&P4sN6q&QmcA{-Y>0^TYn zg@Wj3pEy-U|!ZY22lke%@C`AB9AFkmE~eI2fp^CCB>|2Ne$v;^aYc zh=OA>nqOmWr}EpKKk4U;i_MDTQNLhMD9iLc)wZUy;NHebUs<|bj|aP6-_hW?Iy`M} zQeReVbSF1?-Y2VsXgb{zQ918!7R^r1uVnDhxmA6(kbL_$FuM}6#%YD&3iFhysYb@q zFK7eVBcPc*vPHtbg z8{YQ1jEK3C#%>~I)+WbDZnZB#u(OrTEg3~XU`zM2hjcK(ym0u+3M)@MafZfiod6lzp z!m`JqHv7I`9OADE01stuk=g{$mu-(-_;zWu!7kUQs*<-eJKFsz_<`T5kP;X= ze3RNOj{Af7Z(ZSQq_3W;$23a%e!APN(=bb41xryh`lVwj(Zo<8%?LvC=!+YVxL{v| zFqsNVQ(G##_z+D(sicTP=3ZJv50R)u4o`ygV$adcc=Ino?Swr16^KY?h-0}KLi|hX zoYeZ>cD!R@L+Zuz+3iY(c4i`>v3Bh7LL5nQa*qmIgPOPGW6cHa!vghNhUjA{co2Ee zmca?$=yI0w;#sJWN;J!n)P9J9PJd@02`xoOg%3CRb+dCJSXb;5oE|%y&7+jWRgts8 z8kWFF{{xKQFJp`joWB*CWJ77ErgrA{`czGg!R|ohh6UK5g`<1u)rpYE;gOa{`u_S< zPMxC*@dnL4)JWA3i$W(GdAOJR{)Gdp$bEulBh4X}=JdIZ=Ud(Sqss%y$Ns9|~XQKNwZdY(LvQoyUr)Q#JU}j;Z zXM~~^(6bdaGBYuC{OpB=hK-f=F9))JbkApPVrhg=P5&1}@CkJB^V_)MYfu9KOf+>UxVduuQ@t=1{Rjjaxl;_YJFA}AHass%nYERXJ+_xhGU_} zXJPpBm=Ry&kB_qe@LAaKKdbs#Ll!m`eAdriSs58==swXpdM$ibdVE&KKU%Xg<7+Vf z@ixn!o&5vd`^^3Ov+944{{JJs$NDdHU9H%0^8mVUz87v`Z0ER%f+{X;_`LuE*CY6b z7ogM#fUH5t)z&H+l0{B1Xs6*pnqJU#X>q+h@8%hqx#JW$HMR7vB^ZBr#|%*zAH_D{ zx(OXqfUGLaJp~&s;aoV*2|h0UItdu#sSTNUtO}9b|30??|1C!T zpOPH@^Jo^bHn1`LYw-QgF-tA_UsKyq?{jv2j&KKj4SJ@(H4gtu-Ddh*zVPRt|A+43 zzaT&WBg_8*0%ZD}=l=o$s=}%&E~a=-zD=a~1f}R1qrV4X4DiY6>OML^oDlV^3oyOU zhX8|tVk3V0!X&PmJCOh0ue%b!WNiV_5VQjL4iGbww3?YI5@RXZhqPW{HcL!!Z1Xa9 zJFQ%mI<{Rt)E2g|d^o;2t@C*RI$V3nc*(eUnfOeGTi|ni{l>#aQmcdu4R750tNHyYU0dA^C+=pc~?#&iR8$yUTeG!H!_Dbn``fq5kQ_I zWeDj+L7LGi*-{&@{pU6NRThM&A!cD@fKsgMdlJxVCrXl zWO)=JP_PpDg>c0M78>%}!u6Qd{>bXF>*F!r<#=`V`whSy1)aKg_nGhLd)Hh5p8f8^kj799fCrS=aGriM;WtYm0BSL>wb)QQxiBg zD4!gCEZZkF7VIL6l%?dq&Kam}z^xq6XR6CRG*%>zRcW?E!ldh)W{L>w3R-l8!=5c( zDf%|UAhQ5{e$#B1YTzne zh@wlvug+m+Q~lp*c7l_CwI!pX^?zp*V2SJ(#>% z78qk2B>t=BY2Z~d*ri{{48t9TvLEGEfjANPa>vhE)W8_{Oq)K^&XIgCPzQKQzpU3> zvuX|sJ31PJ^C%=5uESD@`zb%#LN-p@ zR21i0kaK-5LfUkIv}2A?g6lUy?l9T=&?c_M%?HiJt(MAd^^c^DN92|1AGnUWU>pd1 zES#zVI74zO)V#o9TYMnyitE%z!f372p(Jy8uq~Im%+7k?*V{c6rb3jQOSW1nN$!gQ zH1k<6(*eSJeYQW9IKIi9t&~jMW^2!1$WaE1RN%mx3PC$}`wQ3S!QPdQ(NUa1yJRID zud%t`VSBj*butQ6wYQ76+ec|@3(vtLqHvuo^h_*+V0$;ohgEwF~?(z zNWW4rp54E|@;nryCz?Gvy{{dcU#;ccu5o)mTP*K5GH1ZuR2j{Zr*vZGe+TE{Xcp(B zoUO}q*xhF1ejKaNw?*M{pv-s`mrZX^>O{<^9lc#-bkq;ZOgxqVxR1zy&^+f#>ckw| zr9_R+Z5krHdEGA2x4Djq4dOP07&yDn@r$Ib@0i9!B_CbpIP6qQ2E#3c2^=0xaeH6h zc-vJc!Ua7YzTFP>h3>>6yR*i^!AuD-oY~Zdyz#9xv51{o-7?#Ez-_MKf+ykp;2xg_^C^6n1bE~VR z5Gmiw86kR&2sNde3B@F8n5hM-QT;60LCq_so23?}fF};W28N<$4wGdFyuT_CR>wRr zDxi^57A|lD$erZI=_iqu?`6qD882;N}#6o#|f%4jA+CEe$tQRqXNwC$TiY>qD_|M z3We5Jht;Ar3*LXZrnQCiL811QqOy&hlvX=-jzuA=DpGY#`Uwu$CNCUgY8#Ryc1hK0 zHX0Fa3Xi}qSS6=s7Rz5Iml}rUl98$jnXd)L%B9kwV&s}mvb6F;D2}`erJOpAJ z8PXOO8>5ah9zrE5BPJ_nH2fi@>KAXiL4f!&1d~Q*lLM-iD{A|5IGIe+nt>z^7?3lY z8bA~4c!O)s{56L;R{2VHl9`{D>FZ2H?WKg~kyym1n>i~UejFlbi)H-zlIXh0T8GIj0o5fs6}htE4-`b zv9?2;CQNNN-cC~LeH;is#d(hN~uB75+VIRxA$s*Tn%!L`+qskTNuRcs(K-WVArAt$+qi-*;DsbN|T+bi$c ziC1N~oBmEc_ZlPhk+pBVdOXDdLM@~e&c1ZG4C|^4XsnN$}BL>^Zh&B~4hU*uHOZ3f*ciD_ca z7bIjykE-;Ar=S_lC8FehY;`2DE;oDJJl0cf85&2sED2C=z1eB8cz;%5pI`6uJ9;zC zwZjZw$2*HU<~m4NB>3}HFteimWO5zdhY>5 z2GGHMwGrKPKT28^7`_n$c;|L+?fiklh$dkI)?lyCsT-!n?2zP!cM*tV)=YTH$cA_- zvV9~|Ej%Rv8Qn5RSHO`@x1W|_CM_l1N{kvgFtF1TrtZyLv84c3c;$D@-wSpFHW zCW*m|*~Q*UmZw`SkR;pYrEjab_mWZL38W-a4KBb5D|t^aC9a3q8BBnplrmQ(Z$XyK zFk`dMO||SaH+y9mUBGXJ4Ig-OfSvnu4ny-s^))RCXz`WG`RD` zP^ei*>RVkCjT(ACAy$Q-Wu?bU#}Q@8T^mq#^HkIj0>4*F@eV$hXe`=HVce~e_gJQ& zheww1MGPQkAqR`ME4SUC9$Xq5)qz}l%&fq|cEt`3=;&R@ukYb?eq2@#XHllI0KEcT z2%%;|&^j(7-f4zMFhwrtg}ENtu3RC9qb~e%RB=1071U}mR?}~pH%TeRq_-@^q_=MM z73HbN!fWSK`FuJ(`+%g0NN`J@GyZYj^@r{bCO2A=d|8b zq2>ci+m0qi22pernj&S_js0=sn<5XC=kA20kIjOAFwthiKL$b_&BfZ5v2X}iGkUPaQv~V3hQuF=JL7>YX1QKmst?A zW?stAx;)H2+s_o5##akB@pm=qmoukCy)p314vNvefHPx`W7z6hPfo;JX>^>#Q2GW$ z8Ldd^2(`mw>rBeA(;!}=n+~v-#W~z@XX4?cWS`;Xbrh}sdLovGh5hA6P2L(cLkI`baTqQ=QT8H3Qz?n*&Q5+t z)l0604631q;>^@F+t5U!Pe)pz>4^pe zbX*-Joh}U9M@CQ>N6=VEw#?a|-Zhfs(sx~tUb%<=mig{}r{HS78a?lNM@(Z;>HS`Q z6Xb?CvzLOv*TBZUatzI#PM^f>Q+mW~&q*gQ!?Y+k3kNK!KFS)hOT8r_y8q!dJ-Ot4 zwd{c}PFf8&y3P+xRXq(Ms*8b!QYxj&(||M$jY`0lrJZ8Rji0u=gDYRs>h7x7I< z4{8=XFBvVCdslsMekt&Xy+MgFM}L7NDO!{U#8s^7 zB0EvHaM4=TO8T2XoDzH7mg=bBPiu3zdA#^_1d0y@Ln7b+R{IB;g~CyMhu|sz>K;XALBBcq7cL8fA^4C;0Qv=hSu_CA z!XN;Ah=c;rFBA$#1Gp><%m)H)n1Ev8vcGcvkAOt~)pZ$%NYfu70J!Y0!T?8$WBija z{y(C!Xy`vBJRB{u@Q;8f8gUc^(+z)T)67ENx+)Y9_9fLnqhnM`G2;oh66McyV=v#c zN#y3NLGQ&rc%N{6_L3kaxuk*0if>HWQVwr_#dN^Hw^3u+KE6ngRmTn%V~jRSZwl=# z%=!QZnpE=PXAe?B^SJT${n9o4^{1wC=E-d6ebz73m9PmV8CM$A)(C8c(v0Hy55UbB z>0|lpJeE06KJTn3kYte6s5BkfGxjW`WWAl#W7(f?Z(k=mId(>qv{EUR73yWe9%zqW(C5vzPY!)oy$4pqt~`!X6Uv+c zv(YJWvlB`co3#t1r?AIH_!C3AY)#lN`p{+D**<%9FAR~PnCbFH@_g`?`KysPFRHxp zgd?K<1|LNpsUC3@_5Vvh4vBzbiyAl@A8H&6|37Kfe~OO&(rK&&iC+)?Xo3X%NRrRL z(NP!#ak$FNt(=SW#IgN_ufiFA_l0FY-I@C zUiCPSOOxbAXodoUHHcp1NKTTg6s$$1dA=8#q-v07lb z;gn6hs*IPV85hEGmGR1nL~bm?%Rk(=Twe37BLS6m=FO|{bA{|%91k(Xy-;juLh z5y_O;7$EC<;aF)~M(||T_Zoq(A3c3t9ZTAm=T=Gnsd2;%Dnap@`OgCe*VsmleM(M}ICb%<-!G`GjG+!SCh)om+S1CyKB! zYr|fJ_V2H>$PZc+WWF|CT3v^F`T@5r)bZ6+5-Mv`(|WMg)hP$RC6Dj9w5PogW)9xF zzjYuuyDtKi@w#Ly{tQ~*DELIH&x>nat$Qk3BKxC+5Mg#P|=5PTs3U< zQi?MuqwQQwB8Z~T7=7^`LZ+IyCbZ&a=DJ2U7e%0++Kki#dn>Vng+yP7P5`xzzeL;fHnOC=r92nmP_M(2p|*3$bcCE2{`6s47H3LeoQ=l=$# zE6=&XOPfZ{kt2S&HZF*e>kY^)Ja8wDia+aFkg5@;Q^82poucz}6R5>I^M#U%hBKyw zr;e*++5ZY+BNq!G4ZaYaDU zNc4@UQG+;DucVbEjqiwAguEu*a-frRwr5Z%9?|e6M3`6csPV=!ez|HWDCDk%@j{%5du{$r-B`e=IRiymV*_ivqUZAE5hw@>biYmTW*JrfKG~hES7^7s&ZAH`V zuZ#)#=Lix*%^?z5aZFq{X%h0mu(*=vRD%)@CCk$uIuSjyESux2|itO#LWBU z;kv80pYmY}Z`s}~9`f`#F)2tNv30>6)Y4$a?1mJhG^xkIjCbzYW_9h` z)W>&wh3-bqF(eeN%7qWXx3a#LOV+>Ql+YU(FXNWq%=j98Zyy}{EN?mk8e0Q*tz*1e z1Ji$E95^SFz+Y(B6}-0-sIt=UnHs))b+5N@#{0XGq(y$)=p-5XK_7!=jEI& zyt3eNq&4&Y<>%J7%cT?Nl(kJelnXpxG>(scjx8vwf}2(R*vXiq2@QF${>dK0J0&#I zi_tH-{S=eXKx(fX)ZkRg@hHsv`iuK*+hmxVFrViwCYZpB4xP;-p6wmP7wx+4i*5TR zZrPHz?`@3Je|!g9?c2?rtJ})xs$>1&SShn2H9x_(&mJR}z%an3u23+plbdD`xY$y3qZr{>oN zRqY+}0`sQbx}+P%si!;7*=R1#lOk;gbqd`h=R&*29n$9@NT2*_m31Q5`f<>+Axnf# z8;9_VSdIkY7p8k6`wC^<9T&~?^4vq`(nj4hquM3T1bnnKu@+WPtDnj!os+)IXOeB!=FH3dGWT6?F0v;(*7TphJOsMWYGAWsh zPEdav5_vT#>D=_}yY zIF^#O-^EB3@Gv&5b7pnypp#I1QkS#VYS+vip3gn7mx8diIJRYXR2MKNxBA;lDLrkr z-?2F#+hTu)jovA4$Nf>ns)=`t$a{l1!eoB^Gk1n9~dpg61VBX|{)J z?%mBWsSwmJh2K0W1WCJC_QT%oHCuBZ>TNi8v)1``*%;qIzo0X6iHi<0CJ<=)EFwYd z-PbM!43sg~;bC$%L$$-Jxzm_F*loECVYvS8jJxzDV$0`Aaa^31KWg#U2KpF2rifBH z&3B1l@Dui+y_pRrL^=`S-QEd{3FZl$nR8uI^AI=(OYV;BS`|BoNLX-(om6R{)QYE6 zuT!3H)%v2e?Ah4F!uk&!0y7-o@JC*Cj+a{=L!Wm8lommD)|gXg&W&5O3esPk&_%pV8B90Dd_Dk32|+*RU)By_6c0Wk$iVh27Xlg{{)5kwy^ z<`L9?{Tufaek23?&k6aD=XKQm6#F~(^MB}h!hZ+z{0}@&IN+Yb(NN@JNDvan2M2?J z2p1$63Am#`AQIqt0*>!tFbw#(=lScree3{!Bt!Yn%zw}K&-_`yza*q|)JOO)gg3iW@Q2uN#z3yvtHQpdR zbcXTUX0!a_9pY2ox01KN+YjhzJDl3S`8})ohD%O-k$t7SXwvHk zw5V~GN0r0e)Q0eOX>KC3tD05}y}~?NC)3|7m_3+~bM|Ph;dpQ{=_xhIWeyESdi5fK z+Qn0TbR((dw>mO6?35=aTZb;3e$mv130MV=L7nVP)?J9L@;V5uf#JxdEy< z?Y2^{a0N2Ox^~%UZYKdc0qgIce6cGDp3sARkW~zQxYDVdxVM{(Q*6y2#nfhh5PJ4H z_2aG&K+8ZZwuTm@K&;kLCHd=F9}DbKqfTwASEr>-brH)2R6t5(-xx8pD{3OGp2W!)5JSv70-;;XXM(v$gwtzJArCC@ky-UT642Uvbxrdi%-9 z$uY9`V|dgAH4#P?uq^z0c&|eVfSX>I1C`$q^furvz1}Qgs@dn-siMizA<($Jd@HN< zV~Y@;DIUsYX}o4H{aRZW-XPI?v1YN3Mj%$U0iO&1H#A;<6uD+|;-uy< z`I(dW?OrE8nUHtqk>C$*Kod{%puOw&8}?H_!O7D;EBSsc^~2BG>kgl3VE$mD?@IX? z6SC{pr|xXzwI`FDD5USRFWO;QF(>L;*7VlfuhTO-=Rpu057;N})8(B$t6R-zr}%Df zoKX{MR7kNVw<&hZ_dBN&-q2I4LhT21CC^lc+0`u0oi|#KBPo_yFSZb4C!woNley=f z6?7G1fR7CsS8BO}DiTtJC3e<9I8xtxZ z8XoyK^C!#YwKLuQRsFdhg|*B}MVg&*dq&ca@_xBYhMb(+5V)Gtah?Q)DS6?Sl+af` zI!lhyRb5iI#f(b^PNo%=WyKrZyOY2icOJpVrQ^#b^;6M*;K!vrmSOsJ?2@au{YLt9-+h zCO1r5$tw~}2j|r@B}_g7~L)a}ghSD&EyjwdHl%z%aBv& z2&D_Be;rf{Z(%cd<3t)E{-&0+G%wG1vQ zp`RK|2^}-NjwzsjExky%NI1^BeDmC9!n*OLLJ5u)JO@*U$X2WE5cfGM(=_$H-o1-& z5I<9O|9g~E7K$xJwTx7A<8k0(21mN3vbF{dP& zl$o6yP(nXq*Wa+u>hS*w4*i)+(WfMx^CsObpf1ps?B^QG^`=Rq$VVRbd`9Hic4;Zg z&5e_HcGsH(>`PY3DD390x3YT&5er|7@oHxQ2Oi*^j=G9^o}ik~)Wo}F-^%An@Y-wG z@8{DDb$kS?RaNQNw+nBJbA^0O*H}FWsme%JOoZ#&iGoyVXON!~?TQZ`dd-=B?;0-x z8;d`{kJ2li@1C`f*_&p{q1K15_Bld-7BdJp2DW@99k2;fA`415ow*TE9_^$eno5x& z<|m3|5wSdz2`8bq7ZR7-4oY~Pa|ZL0R8fmC?VflpK4$K7y1=It1*V|ufm{V5P~MwS zF?3c`2_2za)npZtGIG1U{>u_&C24{AEd7b=r>Hj=7B2F?@1twC_mdQ6-J_9CW=rDO z^SZZXt?E9%Y%*K0$UTc$G?@*Z8%jSI#_)rCe!#v3z`*^tCMjdk&kA`Vq;?S#z5-@OFfEuQHvQe1EbT+J5PQnedGt zkG_5WT5@wSdf48+%$5W3K;bRCLL|nmxR#zGAvr zbVc825;d(@@11-T?b)6_?$Mq;%o%m6!rIWua8lexbm=*ZmtkX5@!si)z7IK!KS`G- zqm_F_e`cD2*KiduMH`s|0-ck@!RKX8`}pu1<`$W2c-p zLFeG6WZmuDjK>T9t&elWMOCcMrlp@437}2Yra!lNs<(35=@aeeCsx6rYo$$egKR@Q z6koy#;ZyvZUb(AxlHZTjX)G@4<@dV`IhVO@-9jd&eU4ln;;Knb;T{)L{XsNX_Ncxl z+}6`1y||=Ksk)?2anZt7<@#hHSGD|St4biFGn91Hyd+8O1w&q%eCbW5&`mBj@l$By z$4QY61rQ0!3H~AO$8~S&G4=2GMwd4>ZGPtL74K1ablX^$td<=F>e3TB-|rn@?>WoV zVe`bTPFHzQN1v{8(`weqw}!1Xf6HbnhJdk$SKCN4&0}UuRyM_1iq1Bq#m!KvHkeA% zPzM?1#NNszQ#xQ4n%$~AQ&UHnYG33!PF6G|_*~juc}CB+^UFq-Qj}=t$?)^C?rm~z z+|gU^2Giu%W&^^jYEC1#zWLgVAu(q&m2SmXe_}%JxG?Noek)`0_Ox`S(pSAp0T3xm4k0l@%!mxcei)#*K{5N`1fn^;=$) zQk2e2gXcM5(FYlF%GqWzwzA4Q;)%5CJDSRqW}nmAU~`q`_OV^7%9z3sn}O3*tLM8P zP+NOnG?tO^*RsoLSrx0ufaMU%>|OtQZd4;iEuT}_;Hs!)8F|Hyq$XdLSjUYIeGFvf z9enEJt6x6NY9*c*eV_3uhNUtg>T^(!0ObqKNoc&7GUa#9TI2hpcfMuO(?!@f@UuOD z#1}ba#}1iW*RB*+TJF}rKfPsc&AI~DsQEGX*-4j2O2HbRvQWFdI}zDG zs}pM9py)A;UBWTCT3JoGh=De_{7ypG`Hw-J98{I`nz5JddWYL+tb8uy}V9N zf-2fI1c44yhIcsjj`c-tP5QiApW5 zw;Yw2;r=HhPd}ZW)YUD6Aiz_@*maKmx1^6!r=?CXGOjy~N^@kZw0yZ`{p$_00r5!I|mWhMZlX zhO>1qBl7U{I7U3j|2x`YQ)amj#MqK_gK>BG|vuya03osKW?kj~$J} z_z!RHfWVJuY8|h{IP>6{zk%F^_S7+rL1H^A4k%BBJ#ce}_b@Nh5=&#?cNt+}>mL=B zmrv}G$Wzc8K-7qJCTPz#1(lU#d`t;_Ox3B&+Y1zkUoI{>6Z=8_Nk1HKuVo}3ykzG# zVAH~ux_ZM1&R_J&*ZStdg^O4*G{1Uvb4!CO!knsN{RP^5~ z)PIZ`{R*qWLXEJl(r|MyHX#ME0LhZ1puavW2sj)HXE9;KF|H2BM3wX>cSIn}&p=K>)kQ`l8?nAf)Ix4Gn@p0l@lb zJK%TdVf9HY8VtyM#HJy@KsX3iJLF;78Ws%&m=-J=U|w+gg29J@9>@EFA!s131B(U& zqNK2Ca9sYtNDvM$VAS7?0bGBA{e2KH1g9?qav1({oEHcTcMJ&pu+%PAI|LGkX9x-~ zGuZ9Whncp=`$9pu@`FOaIQ&7O2wWOaCl=@X5V+3>ibUbILj%QTv3LQ}ka75ffzi0_ zpofXS$L9e%++wh42nev$u-XCJ4i4>aV^@hZjDZnrYjHOo)5U{kc z)(ixMLIbP$7=I8j6pF1cK*BEsyDtcg!jUPU&7i~AA4lg4^hANM#sEQ}P%suRKwseX z%<;Z})xe@fh*+566tMQO);SmoC<4~pAb?uo@P|U8vE>K!g&)2hIXX8GP`(#i z|A2OA2==&uHbb$-1=JJ*#c2naA>4L2_6n#l0Kw+vQ0;NXfBSjX zN8{+}VX*`po`Ie5&_g)-EWrpc0(Urib zBn*Y42S_*!=eZ#fxI6>F%xG-c13M_TZ3lK$2+o>D!BM#F&~R)U1_rLc!_jdx2zdR5 zH4nga0)ENyxuM};oM(iF!*FaJ8c-o@y+;EN1WQ)HTW%D#9sv6SpfbnD1!z!gIRi8_ z7>hq(|G=?f01fc6u)hxlN8|8<#@XM1Qwbb<{T`lF&{%T=_9zhcxelPgactA!W`^At z0*0e-X@IrE;u!*g;mj8TED)^q2JCN;!}114*8)I;;qIXb;K^aN18g0RoB_LbSTX(B z_W?&AF!mUL9m3WF2o!K=vGf_BA+gVOfH4JOpPvC59D5xBi~v)?;sthS@o{KKY<&jy z6dc_J1ckyG7X}<-v3Z6efp^b;#&B{l0LrvD9KKXnHos^5%O~Mivb6;Y$^boCfMAPX g^-%x~`&Cok(aFHU>6iNgu!@2rNr5{qZcCE>A6>55!~g&Q diff --git a/04_week/CMakeLists.txt b/04_week/CMakeLists.txt deleted file mode 100644 index 0531237e..00000000 --- a/04_week/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 3.14) # Минимальная требуемая версия CMake -project(04_week) # Необходим для инициализации cmake - -set(CMAKE_CXX_STANDARD 20) # Версия стандарта C++ -set(CMAKE_CXX_STANDARD_REQUIRED ON) # Гарантирует использование указанной версии стандарта - -set(EXAMPLES_DIR examples) # Определим переменную с именем директории -set(TASKS_DIR tasks) - -add_subdirectory(tasks) - -# Создать исполняемый файл для каждого примера -if (BUILD_EXAMPLES_04_WEEK) -# add_example(struct_examples ${EXAMPLES_DIR}/struct_examples.cpp) -endif() \ No newline at end of file From b88738dcf1fe0bf586fb221b02e15addb2d64d53 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Wed, 17 Dec 2025 21:35:23 +0500 Subject: [PATCH 20/24] add (fix): add easy_compare task --- 03_week/tasks/easy_compare/easy_compare.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/03_week/tasks/easy_compare/easy_compare.cpp b/03_week/tasks/easy_compare/easy_compare.cpp index 8e9d75bd..aa1b435f 100644 --- a/03_week/tasks/easy_compare/easy_compare.cpp +++ b/03_week/tasks/easy_compare/easy_compare.cpp @@ -2,9 +2,9 @@ #include struct Date { - unsigned year; - unsigned month; - unsigned day; + unsigned year = 0u; + unsigned month = 0u; + unsigned day = 0u; }; struct StudentInfo { From c0bf6d8abca91b73b001f8f42b924e358e1b33b8 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Fri, 26 Dec 2025 23:27:06 +0500 Subject: [PATCH 21/24] add (solution): add phasor task --- 04_week/tasks/phasor/phasor.cpp | 263 +++++++++++++++++++++++++++++++- 1 file changed, 262 insertions(+), 1 deletion(-) diff --git a/04_week/tasks/phasor/phasor.cpp b/04_week/tasks/phasor/phasor.cpp index 3ec1b9ad..dd785440 100644 --- a/04_week/tasks/phasor/phasor.cpp +++ b/04_week/tasks/phasor/phasor.cpp @@ -1,10 +1,271 @@ +#include +#include +#include +#include +constexpr double eps_ = 1e-12; +constexpr double pi_ = std::numbers::pi; struct ExpTag {}; struct DegTag {}; struct AlgTag {}; - class Phasor { +public: + Phasor() = default; + Phasor(double A, double phi); + Phasor(double A, double phi, struct ExpTag); + Phasor(double A, double phi_deg, struct DegTag); + Phasor(double real, double imag, struct AlgTag); + Phasor(const Phasor& p); + Phasor(double real); + +public: + void SetPolar(double r, double phi); + void SetCartesian(double x, double y); + + double Magnitude() const; + double Phase() const; + double PhaseDeg() const; + + double Abs() const; + double Angle() const; + double AngleDeg() const; + + double Real() const; + double Imag() const; + + Phasor Conj() const; + Phasor Inv() const; + + Phasor operator+(const Phasor& other) const; + Phasor operator-(const Phasor& other) const; + Phasor operator*(const Phasor& other) const; + Phasor operator/(const Phasor& other) const; + + Phasor operator-() const; + + Phasor& operator+=(const Phasor& other); + Phasor& operator-=(const Phasor& other); + Phasor& operator*=(const Phasor& other); + Phasor& operator/=(const Phasor& other); + + bool operator==(const Phasor& other) const; + bool operator!=(const Phasor& other) const; + + Phasor& operator=(const Phasor& other); + + friend std::ostream& operator<<(std::ostream& os, const Phasor& p); + + friend Phasor const operator+(const double& real, const Phasor& p); + friend Phasor const operator-(const double& real, const Phasor& p); + friend Phasor const operator*(const double& real, const Phasor& p); + friend Phasor const operator/(const double& real, const Phasor& p); + +private: + double m_A = 0.; + double m_phi = 0.; +}; +Phasor::Phasor(double A, double phi) + : m_A(A), m_phi(phi) { + if (m_A < eps_) { + m_A = -m_A; + if (m_phi <= eps_) m_phi += pi_; + else m_phi -= pi_; + } + if (m_phi > pi_ || m_phi < -pi_) { + while(m_phi > pi_) { + m_phi -= 2 * pi_; + } + while (m_phi < -pi_) { + m_phi += 2 * pi_; + } + } + if (std::abs(m_phi + pi_) < eps_) m_phi *= -1; }; + +Phasor::Phasor(double A, double phi, struct ExpTag) + : Phasor(A, phi) {}; + +Phasor::Phasor(double A, double phi_deg, struct DegTag) + : Phasor(A, phi_deg * (pi_ / 180)) {}; + +Phasor::Phasor(double real, double imag, struct AlgTag) { + m_A = std::sqrt(real * real + imag * imag); + m_phi = std::atan(imag / real); + if (real < 0 && imag < 0) m_phi -= pi_; + else if (real < 0 && imag > 0) m_phi += pi_; +}; + +Phasor::Phasor(double real) : m_A(real) { + if (m_A < eps_) m_A = -m_A; +}; + +Phasor::Phasor(const Phasor& p) { + m_A = p.m_A; + m_phi = p.m_phi; +} + +Phasor Phasor::operator+(const Phasor& other) const { + double real = this->Real() + other.Real(); + double imag = this->Imag() + other.Imag(); + return Phasor(real, imag, AlgTag()); +} + +Phasor Phasor::operator-(const Phasor& other) const { + double real = this->Real() - other.Real(); + double imag = this->Imag() - other.Imag(); + return Phasor(real, imag, AlgTag()); +} + +Phasor Phasor::operator*(const Phasor& other) const { + Phasor res = *this; + res.m_A *= other.m_A; + res.m_phi += other.m_phi; + return res; +} + +Phasor Phasor::operator/(const Phasor& other) const { + Phasor res = *this; + res.m_A /= other.m_A; + res.m_phi -= other.m_phi; + return res; +} + +Phasor Phasor::operator-() const { + if (m_phi > 0) return Phasor(m_A, m_phi - std::numbers::pi, ExpTag()); + else return Phasor(m_A, m_phi + std::numbers::pi, ExpTag()); +} + +Phasor& Phasor::operator+=(const Phasor& other) { + double real = this->Real() + other.Real(); + double imag = this->Imag() + other.Imag(); + this->SetCartesian(real, imag); + return *this; +} + +Phasor& Phasor::operator-=(const Phasor& other) { + double real = this->Real() - other.Real(); + double imag = this->Imag() - other.Imag(); + this->SetCartesian(real, imag); + return *this; +} + +Phasor& Phasor::operator*=(const Phasor& other) { + m_A *= other.m_A; + m_phi += other.m_phi; + return *this; +} + +Phasor& Phasor::operator/=(const Phasor& other) { + m_A /= other.m_A; + m_phi -= other.m_phi; + return *this; +} + +bool Phasor::operator==(const Phasor& other) const { + if (std::abs(m_A - other.m_A) < eps_ && + std::abs(m_phi - other.m_phi) < eps_) return true; + return false; +} + +bool Phasor::operator!=(const Phasor& other) const { + if (std::abs(m_A - other.m_A) > eps_ || + std::abs(m_phi - other.m_phi) > eps_) return true; + return false; +} + +Phasor& Phasor::operator=(const Phasor& other) { + if (this == &other) return *this; + + m_A = other.m_A; + m_phi = other.m_phi; + return *this; +} + +void Phasor::SetPolar(double r, double phi) { + m_A = r; + m_phi = phi; +} + +void Phasor::SetCartesian(double x, double y) { + m_A = std::sqrt(x * x + y * y); + m_phi = std::atan(y / x); +} + +double Phasor::Magnitude() const { + return m_A; +} + +double Phasor::Phase() const { + return m_phi; +} + +double Phasor::PhaseDeg() const { + return m_phi * (180 / pi_); +} + +double Phasor::Abs() const { + return Magnitude(); +} + +double Phasor::Angle() const { + return Phase(); +} + +double Phasor::AngleDeg() const { + return PhaseDeg(); +} + +double Phasor::Real() const { + return m_A * cos(m_phi); +} + +double Phasor::Imag() const { + return m_A * sin(m_phi); +} + +Phasor Phasor::Conj() const { + double real = this->Real(); + double imag = -this->Imag(); + return Phasor(real, imag, AlgTag()); +} + +Phasor Phasor::Inv() const { + return Phasor(1 / m_A, -m_phi, ExpTag()); +} + +Phasor MakePhasorCartesian(double x, double y) { + return Phasor(x, y, AlgTag()); +} + +Phasor MakePhasorPolar(double r, double phi) { + return Phasor(r, phi, ExpTag()); +} + +Phasor MakePhasorPolarDeg(double r, double phi_deg) { + return Phasor(r, phi_deg, DegTag()); +} + +Phasor const operator+(const double& real, const Phasor& p) { + return Phasor(p.Real() + real, p.Imag(), AlgTag()); +} + +Phasor const operator-(const double& real, const Phasor& p) { + return Phasor(real - p.Real(), -p.Imag(), AlgTag()); +} + +Phasor const operator*(const double& real, const Phasor& p) { + return Phasor(p.m_A * real, p.m_phi, ExpTag()); +} + +Phasor const operator/(const double& real, const Phasor& p) { + return Phasor(real / p.m_A, -p.m_phi, ExpTag()); +} + +std::ostream& operator<<(std::ostream& os, const Phasor& p) { + os << std::showpoint << std::setprecision(5) << p.Magnitude() << "*e(j*" << p.PhaseDeg() << ") [" + << p.Real() << " + j*" << p.Imag() << "]"; + return os; +} From 4bedb7e195268df34eebb2e1294c7698453a98f5 Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Fri, 26 Dec 2025 23:27:33 +0500 Subject: [PATCH 22/24] add (solution): add queue task --- 04_week/tasks/queue/queue.cpp | 205 ++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) diff --git a/04_week/tasks/queue/queue.cpp b/04_week/tasks/queue/queue.cpp index 2a9f8493..41da26ff 100644 --- a/04_week/tasks/queue/queue.cpp +++ b/04_week/tasks/queue/queue.cpp @@ -1,6 +1,211 @@ #include +#include +#include class Queue { +public: + Queue(); + Queue(const std::vector& input_vec); + Queue(const std::initializer_list& input_list); + Queue(std::stack input_stack); + Queue(const int sizeQueue); +public: + void Push(const int& num); + bool Pop(); + + int& Front(); + int& Back(); + int Front() const; + int Back() const; + + int Size() const; + void Clear(); + bool Empty() const; + + void Swap(Queue& other); + + bool operator==(const Queue& other) const; + bool operator!=(const Queue& other) const; + +private: + void UpdateOutVecQueue(); + friend void SwapVecs(std::vector& v1, std::vector& v2, size_t min_size); + + std::vector m_in_vec = {}; + std::vector m_out_vec = {}; +}; + +Queue::Queue() = default; + +Queue::Queue(const std::vector& input_vec) : m_in_vec(input_vec) {}; + +Queue::Queue(const std::initializer_list& input_list) + : m_in_vec(static_cast>(input_list)) { }; + +Queue::Queue(std::stack input_stack) { + m_in_vec.resize(input_stack.size()); + for (size_t i = m_in_vec.size(); i >= 1; --i) { + m_in_vec[i - 1] = input_stack.top(); + input_stack.pop(); + } +}; + +Queue::Queue(const int sizeQueue) { + m_in_vec.reserve(sizeQueue); +} + +void Queue::UpdateOutVecQueue() { + size_t size = m_in_vec.size(); + if (size == 0) return; + for (size_t i = 0; i < size; ++i) { + m_out_vec.push_back(m_in_vec[m_in_vec.size() - 1]); + m_in_vec.pop_back(); + } + m_in_vec.shrink_to_fit(); +} + +void Queue::Push(const int& num) { + m_in_vec.push_back(num); +} + +bool Queue::Pop() { + if (m_out_vec.size() != 0) { + m_out_vec.pop_back(); + return true; + } + else { + UpdateOutVecQueue(); + if (m_out_vec.size() == 0) return false; + m_out_vec.pop_back(); + return true; + } +} + +int& Queue::Front() { + if (m_out_vec.size() != 0) return m_out_vec[m_out_vec.size() - 1]; + else if (m_in_vec.size() != 0) return m_in_vec[0]; + else { + int trash = std::rand(); + int& ref_trash = trash; + return ref_trash; + } +} + +int Queue::Front() const { + if (m_out_vec.size() != 0) return m_out_vec[m_out_vec.size() - 1]; + else if (m_in_vec.size() != 0) return m_in_vec[0]; + return 0; +} + +int& Queue::Back() { + if (m_in_vec.size() != 0) return m_in_vec[m_in_vec.size() - 1]; + else if (m_out_vec.size() != 0) return m_out_vec[0]; + else { + int trash = std::rand(); + int& ref_trash = trash; + return ref_trash; + } +} + +int Queue::Back() const { + if (m_in_vec.size() != 0) return m_in_vec[m_in_vec.size() - 1]; + else if (m_out_vec.size() != 0) return m_out_vec[0]; + return 0; +} + +int Queue::Size() const { + return m_in_vec.size() + m_out_vec.size(); +} + +void SwapVecs(std::vector& v1, std::vector& v2, size_t min_size) { + v2.resize(v1.size()); + for (size_t i = 0; i < v1.size(); ++i) { + std::swap(v1[i], v2[i]); + } + v1.resize(min_size); + v1.shrink_to_fit(); +} + +void Queue::Swap(Queue& other) { + if (this == &other) return; + + size_t min_size_in = m_in_vec.size(); + size_t min_size_out = m_out_vec.size(); + + if (min_size_in >= other.m_in_vec.size()) { + min_size_in = other.m_in_vec.size(); + SwapVecs(m_in_vec, other.m_in_vec, min_size_in); + } + else { + SwapVecs(other.m_in_vec, m_in_vec, min_size_in);; + } + + if (min_size_out >= other.m_out_vec.size()) { + min_size_out = other.m_out_vec.size(); + SwapVecs(m_out_vec, other.m_out_vec, min_size_out); + } + else { + SwapVecs(other.m_out_vec, m_out_vec, min_size_out);; + } +} + +void Queue::Clear() { + m_in_vec.resize(0); + m_out_vec.resize(0); +} + +bool Queue::Empty() const { + return (m_in_vec.size() == 0 && + m_out_vec.size() == 0); +} + +bool Queue::operator==(const Queue& other) const { + if (this == &other) return true; + + std::vector queue_this(m_in_vec.size() + m_out_vec.size()); + std::vector queue_other(other.m_in_vec.size() + other.m_out_vec.size()); + + if (queue_this.size() != queue_other.size()) return false; + + for (size_t i = 0; i < queue_this.size(); ++i) { + if (i < m_out_vec.size()) + queue_this[i] = m_out_vec[m_out_vec.size() - 1 - i]; + if (i < m_in_vec.size()) + queue_this[i + m_out_vec.size()] = m_in_vec[i]; + + if (i < other.m_out_vec.size()) + queue_other[i] = other.m_out_vec[other.m_out_vec.size() - 1 - i]; + if (i < other.m_in_vec.size()) + queue_other[i + other.m_out_vec.size()] = other.m_in_vec[i]; + + if (queue_this[i] != queue_other[i]) return false; + } + return true; +} + +bool Queue::operator!=(const Queue& other) const { + if (this == &other) return false; + + std::vector queue_this(m_in_vec.size() + m_out_vec.size()); + std::vector queue_other(other.m_in_vec.size() + other.m_out_vec.size()); + + if (queue_this.size() != queue_other.size()) return true; + + for (size_t i = 0; i < queue_this.size(); ++i) { + if (i < m_out_vec.size()) + queue_this[i] = m_out_vec[m_out_vec.size() - 1 - i]; + if (i < m_in_vec.size()) + queue_this[i + m_out_vec.size()] = m_in_vec[i]; + + if (i < other.m_out_vec.size()) + queue_other[i] = other.m_out_vec[other.m_out_vec.size() - 1 - i]; + if (i < other.m_in_vec.size()) + queue_other[i + other.m_out_vec.size()] = other.m_in_vec[i]; + + if (queue_this[i] != queue_other[i]) return true; + } + return false; +} \ No newline at end of file From 8392551610edd037c7cd088b82699e1564c410af Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Fri, 26 Dec 2025 23:27:59 +0500 Subject: [PATCH 23/24] add (solution): add ring_buffer task --- 04_week/tasks/ring_buffer/ring_buffer.cpp | 256 +++++++++++++++++++++- 1 file changed, 255 insertions(+), 1 deletion(-) diff --git a/04_week/tasks/ring_buffer/ring_buffer.cpp b/04_week/tasks/ring_buffer/ring_buffer.cpp index e2b57ba2..1cfbd7e1 100644 --- a/04_week/tasks/ring_buffer/ring_buffer.cpp +++ b/04_week/tasks/ring_buffer/ring_buffer.cpp @@ -1,6 +1,260 @@ #include - +#include class RingBuffer { +public: + RingBuffer(); + RingBuffer(const int& capacity); + RingBuffer(const int& capacity, const int& num); + RingBuffer(const std::initializer_list& init_list); + RingBuffer(const RingBuffer& buf); + +public: + void Push(const int& num); + bool TryPush(const int& num); + + void Pop(); + bool TryPop(int& num); + + int Size() const; + int Capacity() const; + + int& Front(); + int& Back(); + int Front() const; + int Back() const; + + bool Empty() const; + bool Full() const; + + void Clear(); + void Resize(int new_capacity); + + std::vector Vector() const; + + int& operator[](const size_t& ind); + int operator[](const size_t& ind) const; + + RingBuffer& operator=(const RingBuffer& other); +private: + size_t m_size = 0; + std::vector m_buffer; + std::vector::iterator m_first_ind = m_buffer.begin(); + std::vector::iterator m_last_ind = m_buffer.begin(); }; + +RingBuffer::RingBuffer() = default; + +RingBuffer::RingBuffer(const int& capacity) { + if (capacity <= 0) m_buffer.reserve(1); + else m_buffer.reserve(capacity); + m_first_ind = m_buffer.begin(); + m_last_ind = m_buffer.begin(); +} + +RingBuffer::RingBuffer(const int& capacity, const int& num) { + if (capacity <= 0) m_buffer.resize(1, num); + else m_buffer.resize(capacity, num); + m_size = m_buffer.size(); + m_first_ind = m_buffer.begin(); + m_last_ind = m_buffer.end() - 1; +} + +RingBuffer::RingBuffer(const std::initializer_list& init_list) + : m_size(init_list.size()), m_buffer(init_list) { + if (m_size == 0) { + m_buffer.reserve(1); + m_last_ind = m_buffer.begin(); + } + else m_last_ind = m_buffer.end() - 1; + m_first_ind = m_buffer.begin(); +}; + +RingBuffer::RingBuffer(const RingBuffer& buf) + : m_size(buf.m_size) { + m_buffer.reserve(buf.m_buffer.capacity()); + m_buffer = buf.m_buffer; + size_t d2last = static_cast(buf.m_last_ind - buf.m_buffer.begin()); + size_t d2first = static_cast(buf.m_first_ind - buf.m_buffer.begin()); + m_first_ind = m_buffer.begin() + d2first; + m_last_ind = m_buffer.begin() + d2last; +}; + +int& RingBuffer::operator[](const size_t& ind) { + if (m_size == 0 || ind >= m_size || ind >= m_buffer.size()) { + int* n = nullptr; + return *n; + } + + if (m_first_ind < m_last_ind) return *(m_first_ind + ind); + + size_t dist = std::distance(m_first_ind, m_buffer.end()); + if (ind >= dist) return m_buffer[ind - dist]; + else return *(m_first_ind + ind); +} + +int RingBuffer::operator[](const size_t& ind) const { + if (m_size == 0 || ind >= m_size || ind >= m_buffer.size()) { + int* n = nullptr; + return *n; + } + + size_t dist = 0; + if (m_first_ind < m_last_ind) return *(m_first_ind + ind); + else dist = static_cast(m_buffer.end() - m_first_ind); + + if (ind >= dist) return m_buffer[ind - dist]; + return *(m_first_ind + ind); +} + +RingBuffer& RingBuffer::operator=(const RingBuffer& other) { + if (&other == this) return *this; + + m_buffer = other.m_buffer; + m_buffer.reserve(other.m_buffer.capacity()); + m_first_ind = other.m_first_ind; + m_last_ind = other.m_last_ind; + m_size = other.m_size; + return *this; +} + +void RingBuffer::Push(const int& num) { + if (m_size == 0) { + ++m_size; + if (m_buffer.size() == 0) m_buffer.push_back(num); + m_first_ind = m_buffer.begin(); + *m_last_ind = num; + } + else { + if (m_size < m_buffer.capacity()) { + if (m_last_ind + 1 == m_buffer.end()) { + if (m_buffer.size() != m_buffer.capacity()) { + m_buffer.push_back(num); + ++m_last_ind; + } + else { + m_last_ind = m_buffer.begin(); + *m_last_ind = num; + } + } + else *(++m_last_ind) = num; + ++m_size; + } + else { + *m_first_ind = num; + m_last_ind = m_first_ind; + ++m_first_ind; + if (m_first_ind == m_buffer.end()) m_first_ind = m_buffer.begin(); + } + } +} + +bool RingBuffer::TryPush(const int& num) { + if (m_size == m_buffer.capacity()) return false; + this->Push(num); + return true; +} + +void RingBuffer::Pop() { + if (m_size != 0) { + --m_size; + ++m_first_ind; + if (m_first_ind == m_buffer.end()) m_first_ind = m_buffer.begin(); + } +} + +bool RingBuffer::TryPop(int& num) { + if (m_size == 0) return false; + num = this->Back(); + this->Pop(); + return true; +} + +void RingBuffer::Resize(int new_capacity) { + if (new_capacity <= 0) new_capacity = 1; + std::vector new_buf; + + if (m_size <= static_cast(new_capacity)) { + new_buf.reserve(m_size); + for (size_t i = 0; i < m_size; ++i) { + new_buf.push_back((*this)[i]); + } + } + else { + size_t off = m_size - new_capacity; + new_buf.reserve(new_capacity); + for (size_t i = 0; i < static_cast(new_capacity); ++i) { + new_buf.push_back((*this)[i + off]); + } + m_size = static_cast(new_capacity); + } + + m_buffer.clear(); + m_buffer.shrink_to_fit(); + m_buffer.reserve(new_capacity); + m_buffer = new_buf; + m_first_ind = m_buffer.begin(); + m_last_ind = m_first_ind + (m_size - 1); +} + +void RingBuffer::Clear() { + m_size = 0; + m_first_ind = m_buffer.begin(); + m_last_ind = m_buffer.begin(); +} + +int& RingBuffer::Front() { + if (m_size != 0) return *m_last_ind; + int* n = nullptr; + return *n; +} + +int& RingBuffer::Back() { + if (m_size != 0) return *m_first_ind; + int* n = nullptr; + return *n; +} + +int RingBuffer::Front() const { + if (m_size != 0) return *m_last_ind; + int* n = nullptr; + return *n; +} + +int RingBuffer::Back() const { + if (m_size != 0) return *m_first_ind; + int* n = nullptr; + return *n; +} + +bool RingBuffer::Full() const { + return m_size == m_buffer.capacity(); +} + +bool RingBuffer::Empty() const { + return m_size == 0; +} + +int RingBuffer::Size() const { + return m_size; +} + +int RingBuffer::Capacity() const{ + return m_buffer.capacity(); +} + +std::vector RingBuffer::Vector() const { + std::vector res; + res.reserve(m_buffer.size()); + auto it = m_first_ind; + size_t d2first = static_cast(m_first_ind - m_buffer.begin()); + for (size_t i = 0, j = 0; j < m_size; ++i, ++j) { + if ((it + i) == m_buffer.end()) { + it -= d2first; + i = 0; + } + res.push_back(*(it + i)); + } + return res; +} \ No newline at end of file From 96da6a791fc2e2de554ffcd86555ae5c147ea88c Mon Sep 17 00:00:00 2001 From: "vova_shtin@mail.ru" Date: Fri, 26 Dec 2025 23:28:22 +0500 Subject: [PATCH 24/24] add (solution): add stack task --- 04_week/tasks/stack/stack.cpp | 110 +++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/04_week/tasks/stack/stack.cpp b/04_week/tasks/stack/stack.cpp index 222e4ffc..6f378395 100644 --- a/04_week/tasks/stack/stack.cpp +++ b/04_week/tasks/stack/stack.cpp @@ -1,6 +1,114 @@ #include - +#include class Stack { +public: + void Push(const int& num); + bool Pop(); + + int& Top(); + int Top() const; + + int Size() const; + void Clear(); + bool Empty() const; + + void Swap(Stack& other); + + bool operator==(const Stack& other) const; + bool operator!=(const Stack& other) const; +private: + friend void SwapVecs(std::vector& v1, std::vector& v2, size_t min_size); + + std::vector stack; }; + +void Stack::Push(const int& num) { + stack.push_back(num); +} + +bool Stack::Pop() { + if (stack.size() != 0) { + stack.pop_back(); + return true; + } + return false; +} + +int& Stack::Top() { + if (stack.size() != 0) return stack[stack.size() - 1]; + else { + int trash = std::rand(); + int& ref_trash = trash; + return ref_trash; + } +} + +int Stack::Top() const { + if (stack.size() != 0) return stack[stack.size() - 1]; + else { + int trash = std::rand(); + int& ref_trash = trash; + return ref_trash; + } +} + +void Stack::Clear() { + stack.resize(0); + stack.shrink_to_fit(); +} + +int Stack::Size() const { + return stack.size(); +} + +void SwapVecs(std::vector& v1, std::vector& v2, size_t min_size) { + v2.resize(v1.size()); + for (size_t i = 0; i < v1.size(); ++i) { + std::swap(v1[i], v2[i]); + } + v1.resize(min_size); + v1.shrink_to_fit(); +} + +void Stack::Swap(Stack& other) { + if (this == &other) return; + + size_t min_size = stack.size(); + + if (min_size >= other.stack.size()) { + min_size = other.stack.size(); + SwapVecs(stack, other.stack, min_size); + } + else { + SwapVecs(other.stack, stack, min_size); + } +} + +bool Stack::Empty() const { + return stack.size() == 0; +} + +bool Stack::operator==(const Stack& other) const { + if (this == &other) return true; + + if (stack.size() != other.stack.size()) return false; + for (size_t i = 0; i < stack.size(); ++i) { + if (stack[i] != other.stack[i]) return false; + } + return true; +} + +bool Stack::operator!=(const Stack& other) const { + if (this == &other) return false; + + if (stack.size() != other.stack.size()) return true; + for (size_t i = 0; i < stack.size(); ++i) { + if (stack[i] != other.stack[i]) return true; + } + return false; +} + + +