From a4ac5e7e8f96a73eaa217e393a6f5e33644c579f Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Mon, 11 Oct 2021 13:24:35 +0800 Subject: [PATCH] fix(mgb/gopt): fix profiler cache when build without opr type info name GitOrigin-RevId: 0eba678f2b310a9e6968916d4427e30a46b2a7a9 --- .../impl/utils/infile_persistent_cache.cpp | 38 +++---- .../megbrain/utils/infile_persistent_cache.h | 9 +- .../include/megbrain/utils/persistent_cache.h | 2 +- .../global_layout_transform/opr_safe_dump.cpp | 45 ++++---- .../global_layout_transform/opr_safe_dump.h | 14 ++- .../profiler_cache.cpp | 42 ++++---- .../global_layout_transform/profiler_impl.cpp | 53 ++++----- src/gopt/include/megbrain/gopt/profiler.h | 102 +++++++++--------- src/gopt/test/cache_data.h | Bin 570073 -> 962432 bytes src/gopt/test/embed_cache.py | 16 +-- src/gopt/test/layout_transform_pass.cpp | 80 +++++++------- 11 files changed, 203 insertions(+), 198 deletions(-) diff --git a/src/core/impl/utils/infile_persistent_cache.cpp b/src/core/impl/utils/infile_persistent_cache.cpp index 5171ff789..bd5df4806 100644 --- a/src/core/impl/utils/infile_persistent_cache.cpp +++ b/src/core/impl/utils/infile_persistent_cache.cpp @@ -13,7 +13,7 @@ #if defined(_WIN32) #include -#define F_OK 0 +#define F_OK 0 #define access(a, b) _access(a, b) #elif __linux__ || __unix__ || __APPLE__ #include @@ -32,8 +32,9 @@ public: template void read(T& val) { - static_assert(std::is_trivially_copyable::value, - "only support trivially copyable type"); + static_assert( + std::is_trivially_copyable::value, + "only support trivially copyable type"); mgb_assert(m_offset + sizeof(T) <= m_size); memcpy(&val, m_ptr, sizeof(T)); m_offset += sizeof(T); @@ -42,8 +43,9 @@ public: template void read(T* buf, size_t size) { - static_assert(std::is_trivially_copyable::value && sizeof(T) == 1, - "only support read bytes"); + static_assert( + std::is_trivially_copyable::value && sizeof(T) == 1, + "only support read bytes"); mgb_assert(m_offset + size <= m_size); memcpy(buf, m_ptr, size); m_offset += size; @@ -67,20 +69,21 @@ public: template void read(T& val) { - static_assert(std::is_trivially_copyable::value, - "only support trivially copyable type"); + static_assert( + std::is_trivially_copyable::value, + "only support trivially copyable type"); auto ret = fread(&val, sizeof(T), 1, m_fp); mgb_assert(ret == 1); } template void read(T* buf, size_t size) { - static_assert(std::is_trivially_copyable::value && sizeof(T) == 1, - "only support read bytes"); + static_assert( + std::is_trivially_copyable::value && sizeof(T) == 1, + "only support read bytes"); auto ret = fread(buf, size, 1, m_fp); mgb_assert(ret == 1); } - }; //////////////////////// InFilePersistentCache::OutputFile /////////////// @@ -114,8 +117,8 @@ public: //////////////////////// InFilePersistentCache::BlobStorage /////////////// template -InFilePersistentCache::BlobStorage& -InFilePersistentCache::BlobStorage::init_from_input(Input& inp) { +InFilePersistentCache::BlobStorage& InFilePersistentCache::BlobStorage::init_from_input( + Input& inp) { uint32_t data_size; inp.read(data_size); size = data_size; @@ -125,15 +128,14 @@ InFilePersistentCache::BlobStorage::init_from_input(Input& inp) { return *this; } -void InFilePersistentCache::BlobStorage::write_to_file( - OutputFile& out_file) const { +void InFilePersistentCache::BlobStorage::write_to_file(OutputFile& out_file) const { uint32_t u_size = size; out_file.write(u_size); out_file.write(data_refhold.get(), u_size); } -InFilePersistentCache::BlobStorage& -InFilePersistentCache::BlobStorage::init_data_ref(const Blob& b) { +InFilePersistentCache::BlobStorage& InFilePersistentCache::BlobStorage::init_data_ref( + const Blob& b) { data_refhold = std::make_unique(b.size + 1); memcpy(data_refhold.get(), b.ptr, b.size); data_refhold.get()[b.size] = 0; // for C-string safety @@ -227,8 +229,8 @@ Maybe InFilePersistentCache::get( return iter1->second; } -void InFilePersistentCache::put(const std::string& category, const Blob& key, - const Blob& value) { +void InFilePersistentCache::put( + const std::string& category, const Blob& key, const Blob& value) { BlobStorage key_storage; key_storage.init_data_ref(key).init_hash(); diff --git a/src/core/include/megbrain/utils/infile_persistent_cache.h b/src/core/include/megbrain/utils/infile_persistent_cache.h index 28b28bef0..58f069d4d 100644 --- a/src/core/include/megbrain/utils/infile_persistent_cache.h +++ b/src/core/include/megbrain/utils/infile_persistent_cache.h @@ -49,13 +49,15 @@ class InFilePersistentCache final : public PersistentCache { size_t operator()(const BlobStorage& b) const { return b.hash; } }; }; - std::unordered_map> + std::unordered_map< + std::string, + std::unordered_map> m_cache; MGB_MUTEX m_mtx; template void read_cache(Input& inp); + public: InFilePersistentCache() = default; InFilePersistentCache(const char* path); @@ -68,8 +70,7 @@ public: void dump_cache(const char* path); Maybe get(const std::string& category, const Blob& key) override; - void put(const std::string& category, const Blob& key, - const Blob& value) override; + void put(const std::string& category, const Blob& key, const Blob& value) override; bool support_dump_cache() override { return true; } }; } // namespace mgb diff --git a/src/core/include/megbrain/utils/persistent_cache.h b/src/core/include/megbrain/utils/persistent_cache.h index 8c881aea7..01dc093be 100644 --- a/src/core/include/megbrain/utils/persistent_cache.h +++ b/src/core/include/megbrain/utils/persistent_cache.h @@ -40,7 +40,7 @@ public: const std::string& category, const Blob& key, const Blob& value) = 0; virtual bool support_dump_cache() { return false; } - + //! set an implementation; return the original implementation static std::shared_ptr set_impl( std::shared_ptr impl); diff --git a/src/gopt/impl/global_layout_transform/opr_safe_dump.cpp b/src/gopt/impl/global_layout_transform/opr_safe_dump.cpp index 28c187918..5cf07b3c4 100644 --- a/src/gopt/impl/global_layout_transform/opr_safe_dump.cpp +++ b/src/gopt/impl/global_layout_transform/opr_safe_dump.cpp @@ -18,6 +18,7 @@ #include "megbrain/opr/nn_int.h" #include "megbrain/opr/tensor_manip.h" +#include "megbrain/utils/hash_ct.h" #include "midout.h" MIDOUT_DECL(megbrain_opr_safe_dump) #define MIDOUT_B(...) MIDOUT_BEGIN(megbrain_opr_safe_dump, __VA_ARGS__) { @@ -38,24 +39,34 @@ template <> void write_param(std::string& /* data */, const DType& /* dtype */) {} template -struct OprDumpImpl { - static std::string dump(const cg::OperatorNodeBase* opr_) { - MIDOUT_B(Opr) - auto&& opr = opr_->cast_final_safe(); - std::string data; - write_param(data, opr.param()); - return data; - MIDOUT_E - } -}; +struct OprDumpImpl; -#define INST(_Opr) \ +#define cb(_Opr) \ + template <> \ + struct OprDumpImpl<_Opr> { \ + static std::string dump(const cg::OperatorNodeBase* opr_) { \ + MIDOUT_B(_Opr) \ + auto&& opr = opr_->cast_final_safe<_Opr>(); \ + std::string data; \ + auto opr_hash = MGB_HASH_STR(#_Opr); \ + write_param(data, opr_hash); \ + write_param(data, opr.param()); \ + return data; \ + MIDOUT_E \ + } \ + }; +FOREACH_SUPPORTED_OPR_WITHOUT_EXECUTION_POLICY(cb) +#undef cb + +#define cb(_Opr) \ template <> \ struct OprDumpImpl<_Opr> { \ static std::string dump(const cg::OperatorNodeBase* opr_) { \ MIDOUT_B(_Opr) \ auto&& opr = opr_->cast_final_safe<_Opr>(); \ std::string data; \ + auto opr_hash = MGB_HASH_STR(#_Opr); \ + write_param(data, opr_hash); \ write_param(data, opr.param()); \ using ExecutionPolicy = megdnn::param::ExecutionPolicy; \ ExecutionPolicy policy{ \ @@ -66,11 +77,8 @@ struct OprDumpImpl { MIDOUT_E \ } \ }; -INST(Convolution); -INST(ConvBiasForward); -INST(ConvolutionBackwardData); -INST(PoolingForward); -#undef INST +FOREACH_SUPPORTED_OPR_WITH_EXECUTION_POLICY(cb) +#undef cb } // namespace namespace mgb { @@ -83,8 +91,9 @@ std::string opr_safe_dump(const cg::OperatorNodeBase* opr) { return OprDumpImpl<_Opr>::dump(opr); \ } else FOREACH_SUPPORTED_OPR(cb) { - mgb_throw(InternalError, "unsupported operator(got:%s)", - opr->dyn_typeinfo()->name); + mgb_throw( + InternalError, "unsupported operator(got:%s)", + opr->dyn_typeinfo()->name); } #undef cb } diff --git a/src/gopt/impl/global_layout_transform/opr_safe_dump.h b/src/gopt/impl/global_layout_transform/opr_safe_dump.h index d25be51d2..5a178de8b 100644 --- a/src/gopt/impl/global_layout_transform/opr_safe_dump.h +++ b/src/gopt/impl/global_layout_transform/opr_safe_dump.h @@ -16,10 +16,16 @@ namespace mgb { namespace gopt { namespace intl { -#define FOREACH_SUPPORTED_OPR(cb) \ - cb(Convolution) cb(ConvBiasForward) cb(ConvolutionBackwardData) \ - cb(PoolingForward) cb(WarpPerspective) cb(Resize) cb(Elemwise) \ - cb(ElemwiseMultiType) cb(Concat) cb(PowC) cb(TypeCvt) +#define FOREACH_SUPPORTED_OPR_WITHOUT_EXECUTION_POLICY(cb) \ + cb(WarpPerspective) cb(Resize) cb(Elemwise) cb(ElemwiseMultiType) cb(Concat) \ + cb(PowC) cb(TypeCvt) + +#define FOREACH_SUPPORTED_OPR_WITH_EXECUTION_POLICY(cb) \ + cb(Convolution) cb(ConvBiasForward) cb(ConvolutionBackwardData) cb(PoolingForward) + +#define FOREACH_SUPPORTED_OPR(cb) \ + FOREACH_SUPPORTED_OPR_WITHOUT_EXECUTION_POLICY(cb) \ + FOREACH_SUPPORTED_OPR_WITH_EXECUTION_POLICY(cb) std::string opr_safe_dump(const cg::OperatorNodeBase* opr); diff --git a/src/gopt/impl/global_layout_transform/profiler_cache.cpp b/src/gopt/impl/global_layout_transform/profiler_cache.cpp index cfa703400..b606c99db 100644 --- a/src/gopt/impl/global_layout_transform/profiler_cache.cpp +++ b/src/gopt/impl/global_layout_transform/profiler_cache.cpp @@ -11,8 +11,8 @@ */ #include "./opr_safe_dump.h" -#include "megbrain/gopt/profiler.h" #include "megbrain/comp_node_env.h" +#include "megbrain/gopt/profiler.h" using namespace mgb; using namespace gopt; @@ -21,9 +21,6 @@ using ReformatKey = ReformatManager::ReformatKey; // =================== ProfilerCache ====================== void ProfilerCache::Key::build_blob_from_opr() { auto&& opr = m_key_impl.opr_key.opr; - // process opr type - auto type = opr->dyn_typeinfo()->name; - size_t type_size = strlen(type); // process opr param auto data = intl::opr_safe_dump(opr); @@ -32,11 +29,7 @@ void ProfilerCache::Key::build_blob_from_opr() { size_t nr_inputs = opr->input().size(); size_t nr_outputs = opr->usable_output().size(); size_t nr_layouts = nr_inputs + nr_outputs; - m_blob_storage.reserve(sizeof(TensorLayout) * 3 * nr_layouts + type_size + - param_size); - - // serialize opr type - m_blob_storage.append(type, type_size); + m_blob_storage.reserve(sizeof(TensorLayout) * 3 * nr_layouts + param_size); // serialize param const char* data_ptr = reinterpret_cast(data.data()); @@ -70,12 +63,12 @@ void ProfilerCache::Key::build_blob_from_opr() { } // serialize opr_format - m_blob_storage.append(std::to_string( - static_cast(m_key_impl.opr_key.opr_format))); + m_blob_storage.append( + std::to_string(static_cast(m_key_impl.opr_key.opr_format))); // serialize extra_attribute - m_blob_storage.append(std::to_string( - static_cast(m_key_impl.opr_key.extra_attribute))); + m_blob_storage.append( + std::to_string(static_cast(m_key_impl.opr_key.extra_attribute))); } void ProfilerCache::Key::build_category(CompNode cn) { @@ -85,8 +78,8 @@ void ProfilerCache::Key::build_category(CompNode cn) { #if MGB_CUDA case CompNode::DeviceType::CUDA: { auto&& prop = env.cuda_env().device_prop; - m_category += ssprintf("plat=cuda;dev=%s;cap=%d.%d", prop.name, - prop.major, prop.minor); + m_category += ssprintf( + "plat=cuda;dev=%s;cap=%d.%d", prop.name, prop.major, prop.minor); break; } #endif @@ -94,9 +87,10 @@ void ProfilerCache::Key::build_category(CompNode cn) { m_category += "plat=cpu"; break; default: - mgb_throw(MegBrainError, - "unsupported comp node for global layout transform " - "profiler cache category"); + mgb_throw( + MegBrainError, + "unsupported comp node for global layout transform " + "profiler cache category"); } } @@ -151,9 +145,10 @@ ProfilerCache& ProfilerCache::set_impl(std::unique_ptr impl) { } void ProfilerCache::dump_cache(const char* path) { - mgb_assert(m_impl->support_dump_cache(), - "current impl of ProfilerCache does not support dump cache to " - "file."); + mgb_assert( + m_impl->support_dump_cache(), + "current impl of ProfilerCache does not support dump cache to " + "file."); auto cache = static_cast(m_impl.get()); cache->dump_cache(path); } @@ -165,8 +160,9 @@ Maybe ProfilerCache::get(const Key& key) { // data type of cost is float auto buf = static_cast(raw_buf->ptr); auto size = raw_buf->size; - mgb_assert(buf && size == sizeof(float), - "ProfileCache invalid value: ptr=%p, size=%zu", buf, size); + mgb_assert( + buf && size == sizeof(float), + "ProfileCache invalid value: ptr=%p, size=%zu", buf, size); auto read_f32 = [&]() { auto ret = *reinterpret_cast(buf); return ret; diff --git a/src/gopt/impl/global_layout_transform/profiler_impl.cpp b/src/gopt/impl/global_layout_transform/profiler_impl.cpp index 99a585070..0ea951e90 100644 --- a/src/gopt/impl/global_layout_transform/profiler_impl.cpp +++ b/src/gopt/impl/global_layout_transform/profiler_impl.cpp @@ -154,33 +154,30 @@ void MarkInputContiguous::init_output_static_infer_desc() { } // namespace /* ================== ProfilerImpl =================*/ -ProfilerImpl::ProfilerImpl(int runs, float opr_threshold, - float var_node_threshold) +ProfilerImpl::ProfilerImpl(int runs, float opr_threshold, float var_node_threshold) : m_opr_threshold{opr_threshold}, m_var_node_threshold{var_node_threshold}, m_runs{runs} { - m_opr_filter = [this](const OperatorNodeBase* opr, - OperatorNodeBase* new_opr) { + m_opr_filter = [this](const OperatorNodeBase* opr, OperatorNodeBase* new_opr) { /// \note: for the considerations of performance, we skip nchw(naive) /// kernels for conv bias on CUDA platform. to remove this later if (auto conv = try_cast_as_op(new_opr)) { if (conv->output(0)->comp_node().device_type() == CompNode::DeviceType::CUDA && - conv->input(0)->dtype().category() == - DTypeCategory::QUANTIZED && + conv->input(0)->dtype().category() == DTypeCategory::QUANTIZED && conv->param().format == OprFormat::NCHW) { return false; } } - float comp1 = m_opr_footprint.get_computation( - const_cast(opr)); + float comp1 = + m_opr_footprint.get_computation(const_cast(opr)); float comp2 = m_opr_footprint.get_computation(new_opr); if (comp2 > m_opr_threshold * comp1) return false; return true; }; - m_var_node_filter = [this](const VarNode* var, TensorShape from, - TensorShape to, ReformatKey key) { + m_var_node_filter = [this](const VarNode* var, TensorShape from, TensorShape to, + ReformatKey key) { /// \note: due to the alignment requirement of low-bit tensor, we skip /// some layout transform for low-bit tensors. The skipped layout /// transforms do not have corresponding dnn kernel and cannot be @@ -202,8 +199,7 @@ ProfilerImpl::ProfilerImpl(int runs, float opr_threshold, TensorLayout orig_ly = {var->shape(), var->dtype()}, from_ly = {from, var->dtype()}, to_ly = {to, var->dtype()}; float orig_memory = orig_ly.span().dist_byte() * 2.f; - float reformat_memory = - from_ly.span().dist_byte() + to_ly.span().dist_byte(); + float reformat_memory = from_ly.span().dist_byte() + to_ly.span().dist_byte(); if (reformat_memory > orig_memory * m_var_node_threshold) return false; return true; @@ -537,23 +533,20 @@ std::unique_ptr ProfilerBase::make_profiler() { return std::make_unique(); } -std::unique_ptr ProfilerBase::make_cached_profiler( - const char* path) { +std::unique_ptr ProfilerBase::make_cached_profiler(const char* path) { return std::make_unique(path); } /* ================== CachedProfiler =================*/ -CachedProfiler::CachedProfiler(const char* path, int runs, float opr_threshold, - float var_node_threshold) +CachedProfiler::CachedProfiler( + const char* path, int runs, float opr_threshold, float var_node_threshold) : ProfilerImpl(runs, opr_threshold, var_node_threshold), m_path{path} { if (m_path != nullptr) { // file cache - ProfilerCache::inst().set_impl( - std::make_unique(m_path)); + ProfilerCache::inst().set_impl(std::make_unique(m_path)); } } -CachedProfiler::ProfilingResult CachedProfiler::profile( - const Problem& problem) const { +CachedProfiler::ProfilingResult CachedProfiler::profile(const Problem& problem) const { auto ret = ProfilerImpl::profile(problem); if (m_path != nullptr) ProfilerCache::inst().dump_cache(m_path); @@ -563,35 +556,33 @@ CachedProfiler::ProfilingResult CachedProfiler::profile( float CachedProfiler::profile_operator( const OperatorNodeBase* opr, TensorFormats base_format, TensorFormats tensor_format, ReformatAttribute extra_attribute) const { - ProfilerCache::Key key{opr, tensor_formats_to_opr_format(tensor_format), - extra_attribute}; + ProfilerCache::Key key{ + opr, tensor_formats_to_opr_format(tensor_format), extra_attribute}; auto ret = ProfilerCache::inst().get(key); if (ret.valid()) return ret.val(); - auto rst = ProfilerImpl::profile_operator(opr, base_format, tensor_format, - extra_attribute); + auto rst = ProfilerImpl::profile_operator( + opr, base_format, tensor_format, extra_attribute); ProfilerCache::inst().put(key, rst); return rst; } float CachedProfiler::profile_operator( - const OperatorNodeBase* opr, - const OprTensorFormatsConfiguration& base_config, + const OperatorNodeBase* opr, const OprTensorFormatsConfiguration& base_config, const OprTensorFormatsConfiguration& config, ReformatAttribute extra_attribute) const { ProfilerCache::Key key{opr, config.opr_format, extra_attribute}; auto ret = ProfilerCache::inst().get(key); if (ret.valid()) return ret.val(); - auto rst = ProfilerImpl::profile_operator(opr, base_config, config, - extra_attribute); + auto rst = + ProfilerImpl::profile_operator(opr, base_config, config, extra_attribute); ProfilerCache::inst().put(key, rst); return rst; } -float CachedProfiler::profile_var_node(const VarNode* var, - TensorFormats base_format, - const ReformatKey& key) const { +float CachedProfiler::profile_var_node( + const VarNode* var, TensorFormats base_format, const ReformatKey& key) const { ProfilerCache::Key pf_key{var, key}; auto ret = ProfilerCache::inst().get(pf_key); if (ret.valid()) diff --git a/src/gopt/include/megbrain/gopt/profiler.h b/src/gopt/include/megbrain/gopt/profiler.h index 299312c34..27a6663f3 100644 --- a/src/gopt/include/megbrain/gopt/profiler.h +++ b/src/gopt/include/megbrain/gopt/profiler.h @@ -78,7 +78,7 @@ public: const VarNode*, TensorShape, TensorShape, ReformatManager::ReformatKey)>; ProfilerBase() = default; - + virtual ~ProfilerBase() = default; virtual ProfilingResult profile(const Problem& problem) const = 0; @@ -102,13 +102,12 @@ protected: VarNodeFilter m_var_node_filter; }; - /*! \brief A default profiler impl */ class ProfilerImpl : public ProfilerBase { public: - ProfilerImpl(int runs = 10, float opr_threshold = 2.f, - float var_node_threshold = 2.f); + ProfilerImpl( + int runs = 10, float opr_threshold = 2.f, float var_node_threshold = 2.f); ~ProfilerImpl() = default; ProfilingResult profile(const Problem& problem) const override; @@ -128,22 +127,22 @@ protected: OperatorNodeRecord profile_operator( const OperatorNodeBase* opr, TensorFormats base_format, const SmallVector& available_tensor_formats, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const; + ReformatAttribute extra_attribute = ReformatAttribute::DEFAULT) const; /*! - * \brief prfile opr format agnostic operators (like elemwise, elemwise multi type, typecvt etc.) + * \brief prfile opr format agnostic operators (like elemwise, elemwise multi type, + * typecvt etc.) * * \param opr pointer to the operator to be profiled * \param base_format the original tensor format of the operator node. * \param tensor_format the tensor format to be profiled - * \param extra_attribute identify whether to use image object for OpenCL or automatically padding nhwc layout - * \return elapsed time of operator in the given tensor format configuration + * \param extra_attribute identify whether to use image object for OpenCL or + * automatically padding nhwc layout \return elapsed time of operator in the given + * tensor format configuration */ virtual float profile_operator( const OperatorNodeBase* opr, TensorFormats base_format, TensorFormats tensor_format, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const; + ReformatAttribute extra_attribute = ReformatAttribute::DEFAULT) const; /*! * \brief profile opr format aware operators (like conv, deconv, conv_bias, * etc.) @@ -157,28 +156,29 @@ protected: const OperatorNodeBase* opr, const OprTensorFormatsConfiguration& base_config, const SmallVector& available_configs, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const; + ReformatAttribute extra_attribute = ReformatAttribute::DEFAULT) const; /*! - * \brief prfile opr format aware operators (like conv, deconv, conv_bias, resize, warp etc.) + * \brief prfile opr format aware operators (like conv, deconv, conv_bias, resize, + * warp etc.) * * \param opr pointer to the operator to be profiled - * \param base_config the original opr format configuration of the operator node, + * \param base_config the original opr format configuration of the operator node, * \param config the opr format configuration to be profiled - * \param extra_attribute identify whether to use image object for OpenCL or automatically padding nhwc layout - * \return elapsed time of operator in the given opr format configuration + * \param extra_attribute identify whether to use image object for OpenCL or + * automatically padding nhwc layout \return elapsed time of operator in the given + * opr format configuration */ - virtual float profile_operator(const OperatorNodeBase* opr, - const OprTensorFormatsConfiguration& base_config, - const OprTensorFormatsConfiguration& config, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const; + virtual float profile_operator( + const OperatorNodeBase* opr, + const OprTensorFormatsConfiguration& base_config, + const OprTensorFormatsConfiguration& config, + ReformatAttribute extra_attribute = ReformatAttribute::DEFAULT) const; /*! * \brief profile layout transform of the var node * * \param var pointer to the var node to be profiled * \param base_format the original tensor formats in which the var node is - * stored + * stored * \param available_tensor_formats the available tensor formats * \param extra_attribute the extra attributes (options) of the problem * \return the var node record @@ -186,27 +186,26 @@ protected: VarNodeRecord profile_var_node( const VarNode* var, TensorFormats base_format, const SmallVector& available_tensor_formats, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const; + ReformatAttribute extra_attribute = ReformatAttribute::DEFAULT) const; /*! * \brief profile layout transform of the var node * * \param var pointer to the var node to be profiled * \param base_format the original tensor formats in which the var node is * stored - * \param key type of ReformatKey, identify the information/attributes of the layout transoform - * \return elapsed time of the layout transform + * \param key type of ReformatKey, identify the information/attributes of the layout + * transoform \return elapsed time of the layout transform */ - virtual float profile_var_node(const VarNode* var, - TensorFormats base_format, - const ReformatKey& key) const; + virtual float profile_var_node( + const VarNode* var, TensorFormats base_format, + const ReformatKey& key) const; OprFootprint m_opr_footprint; - float m_opr_threshold; /// a threshold, when the computation of the newly - /// created operator that is built in some opr - /// format configuration is as greater as - /// m_opr_threshold times of the original operator, - /// the opr format configuration will be skipped - /// (i.e. the cost is infinite) + float m_opr_threshold; /// a threshold, when the computation of the newly + /// created operator that is built in some opr + /// format configuration is as greater as + /// m_opr_threshold times of the original operator, + /// the opr format configuration will be skipped + /// (i.e. the cost is infinite) float m_var_node_threshold; /// a threshold, when the memory footprint of /// the layout transform of the var node is as /// larger as m_var_node_threshold as the var @@ -298,23 +297,26 @@ private: class CachedProfiler final : public ProfilerImpl { public: - CachedProfiler(const char* path = nullptr, int runs = 10, - float opr_threshold = 2.f, float var_node_threshold = 2.f); + CachedProfiler( + const char* path = nullptr, int runs = 10, float opr_threshold = 2.f, + float var_node_threshold = 2.f); ProfilingResult profile(const Problem& problem) const override; private: - float profile_operator(const OperatorNodeBase* opr, - TensorFormats base_format, - TensorFormats tensor_format, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const override; - float profile_operator(const OperatorNodeBase* opr, - const OprTensorFormatsConfiguration& base_config, - const OprTensorFormatsConfiguration& config, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const override; - float profile_var_node(const VarNode* var, TensorFormats base_format, - const ReformatKey& key) const override; + float profile_operator( + const OperatorNodeBase* opr, TensorFormats base_format, + TensorFormats tensor_format, + ReformatAttribute extra_attribute = + ReformatAttribute::DEFAULT) const override; + float profile_operator( + const OperatorNodeBase* opr, + const OprTensorFormatsConfiguration& base_config, + const OprTensorFormatsConfiguration& config, + ReformatAttribute extra_attribute = + ReformatAttribute::DEFAULT) const override; + float profile_var_node( + const VarNode* var, TensorFormats base_format, + const ReformatKey& key) const override; const char* m_path; }; diff --git a/src/gopt/test/cache_data.h b/src/gopt/test/cache_data.h index f049589e93605153451273ca3e70c0c71be857e3..696bdc5fe26dbef266a657d5ef8ecf19307b11a9 100644 GIT binary patch literal 962432 zcmeFaPwynjjU{;3r}zPT9n7RhX62vWo<7ZC4|7>;-vzByGb3PIT1ce<8iW1rOFnaZ zq|s>RW*(7QSyB~HiHP{QKckV4k2G@+kN@hXs_9furoynFCW`RnoS3(v$K^fTb% zxOX^1Mm^pghWmqjAV=x(W|5lkQD^c+5aq9G);k#$_Wpp+^sNHPUj+dNe{!(+(*0sa1XcjCI8kQ+D}GSd zebBRic&`WRpB2^pgE_x5RQvPsLC$`tVIS4l#}D%I_@cA?BqQTEb<5ia{p$~E%m@AF z2mP?T`oUoFsU1|#Q4E_KW>MUv-iNQw`N#|kfSz$YJ{az7@Y9xsQ9rBA8d^H{99YH! z2jS*Jol)Yf5&x_%h52gH87Xy_dck?vIrsP|e=ptyQ$YET;%1$f`$t**cIcE3^~&)@ z-hV;_6&ry$zBn%+4gur#TlyeF%|6pPJL55M_t`dTX8#y9JzDAixc;Z-5RI)ozCoo^ z(276_ft5nUy`a)CqtyMDWyl!euEDB0-Jq_H2iV3HgvF=s?|L{>W_>(0UPO(sC2iWd zHU@aF7oC8>;2)(z5y#USgMGpYs&P&J5)}mdpb7gxjZ&fdsBb^2LI?UiG`kNK_2VIb zI#hzoY0Adq(-(8XD;B*@b$;N$3MPEhTA%akyLaOo{kadd{7eWr7cjPak{L(L2xqozk+%PkbS zVK-38B zC8{$*Y=~*OnZ8e;njQA)Oy306j97cE%TD9#;zFs`%%r<)^v&i6z65s2zP>`&>kQx3^KJ998WJ^#``X9(G6r)`U<*-WO{PFy=G ztszXXn)O1kNr@-yS0h;4ya${6w7=NCpuK5Jt??V=y_cOn;SF|C_sR~V@?e(mgpGw? zBQneTn_jq1e76};#&=myYeCMex&N%YDuKEoqT#Isn6PldjEonvme5Loxywu3u-kh) zWHSN#KiCt(Kj!OC$`KF%lfkP`x>tc$zNvYylf{Y0LnIHi0ocvqa-tqrMzIcBUo}I~ z+B%M0O27a-$40@Ri?xWj^o!g5Uc@k;@?65Ic`@WEHMHNqqy}LvA=Y&2f*QnaDZ=TT zvam}H!iJFFpay9ttRQUQAxN8HFA{>dLoeJS1Yt|=CWO%ZD0{Py_oDaM$b-vfgdl7$ z8IpHMi%H=c6N0$orJ3TQPHYf@u)So|R4(Obsug2hxR?G(>WcH8-w4an-VyhZi>Pl8 zy=aR|X1D5s1-W%?2|e-!d&t^AY;`BK9uU?-9rAchx~(=K(1bNZEp{7(I$^6xgnd>8 zuFK>t6_9Wt9ZUMtTFdaXDr`0kgnda>Fi#K{_XkvhcoC>!kjoIP=Pxbl7p=qJb$z%+ z4aV%}t`B2su>Y5uKy#b6FKCA(5zko@jVWxfY@>A`?9p5Ww~Ud(BB^bevZxt`i<@p* zjI5{tx7iwI4B~Mwzftp$L0H zJw47?SDQ-0-YT-_Hqru3+~I`+V^_wE(qnuOuN;rsRLV^{gtf|pR~Z-Jb-nEAE_mRx zazDh1mpMuRj9GQUQPCam8guSF`6Wu>uY_p0DMl$kq{eE z8M6!5J814|t8ea%IrPe)MeH*_X>FFK!LnbXlxNhy^1x>*o$zG7R%TR&6W0pba>7pZ zldw*wTN#}df~q^}0I|LGB z!$w#*d^Kz}Fyddd|5}i6Zk1KSu0>)JCtvG`3fGo);2|4FdoILbtsM2aTB(PDbKM{ zES3viK+Tln2#Y(>hxbDJFxLv2DI{!gsAtm2DL>0y-ouswB&f+xACy|IuHCQdz0V0- z1j|KCym@h{@}nGrF9;P}&ZC-rX96_#X5Y-LYIht63t}`?!;4eMjjUg2 za)_|-Oa_~!#r4#P`wg!@eAXO+Fyd}e^cZ^kel1uv-TElg+I_Z86N9*o&-=Y3GCB(Y zK63@jUpmtnTY%D0RB%EWvolQTWFBTMzHHNW2&1Jzv;9{+T*_9xOMtj`J7CxU$(emv zY8q72vtQx z*fkd7QNos};Zv+(Ow9D~)m!iC?ipd54$b7#lflHbkO4O2h8XPPEiuTN>0M{q!V$LU zVUi3FRoCMoN>IL&rwWRU7$gH`YOw0U;^4fRxNibnc4P*7FJ_5=HEA{uR1%b-(`#sHZMiCl#8yUT znugC@XnC-WQX@pz!EA)CxBxzCb4Jl1Zm8=c&0G9BF=1nYQ9DZ7VY2%6QesT&2y05d zu%#QsHoR?!yJ?SFrYfZUNMZ=hUC}%Z-%#uh{Ze@u=Hq)yG;l}1S{xHC%rSi{Hn%qy znzgRGmAK`L9r%iew*Eo3Y6b~GRLhGmG$6e$V#P$*%SCNnU?pI)OjCxgR@r3Q z!U%~e{*m0IwbyH9IY)-Zh1EH%D-aqnM}lkz=~8IL=Q?Fych)Y7$%#|(p~BJ$w$>U1 zS3JLdHzi>&Ia6=JLZ0U}$HFI*P&S6eH2Fs9NAyrxS#I z9lcN|zB+D7FYVUh8tokmy=I#Vl{Bv3FD%+wM-97JEfsV_4dXdviC+@1VX0^|iLj<2 zcA`^@Q42j%ed3lzR-G6!^P$fzcxb1nIagflubkF1np`zlO~seFn6NC$+%>Bia_!+h zlL!k#8^52%Tgk`SS<{vTfw)hX;4kX?hu$Le*>z+2jbsv#CKlb>uUUfYhK;sB5(-TM zdZBlG^)AKCE=*r~oUm!4*_N~tu&n75YFIYa>!*apIcbg!s*9+gWZ&Rx2?jeWP*VtT zmL{N2PokEGap^6F$9pjkS0vD&`J;Pc)RtL1+5KzpGc!8UBEyA^t(VY@D=FQddA z?MYrN(h5ahkK2*!lxDM6n+2?Li$rU;79=|GX_oAS9p-#rRaEh0RO6y$eT}5SUhhyY zM6$MB2CHr=gXybK&@&3mra@TrVS`%Q%{q;g-Ya$J^D7TYOX8wO!d*7=NM(WR_aF#c zbm5*5%$nyA5to@~yK>fv;C3XwOZRbaQ{#DslLeA;M>lMJ*<_Tr=S731Cs$^Xw^h^e zgK!@8*muRW77WM&T?(`BjZgQ?Qj@UrnA1v{l{d9yD=p zwl@R8AncPh!MABD7{m>nal=q*;He>R3(L-f30v8Gdh)sm%$eqJrO3UGX(QZ>X{jiw zT=q;OY+Pd~t|OkdlBUd;Oe3sqIcD2ZNs>C3^+Y4=Fvb?mS+SA1_;%$QwrtMZ@4-#W(rkD$I^30oI#erpWsWgg$E81cGj(kQ>XWSPRI}| zj}L8LesIPhrnEK?Xn}G@hPDUMZ~7Q)yFfyW`@`3k6jDeGw_W_n~DsG>K;#O=X zDJeF#&j<9nzSqqeSOeQ5&lc<(ZhYpMC z_BgcrMN797r<2|iAi|bvq=UJVyBQ~zrmKs;i&s4of1ABZq&}vn`9l^ok#d4h+^@7o z(>wjqi9Phv*sV~BcTrZHb6*lFdXYW=Y)Ps6kt!0V5hAWhUWktkX!$ydlznHFxYkK+ zCKWQP{&Reh1k%S)5Eoy`EZ;ZVOe>3(M3>C}ViB#E$DPb*W zNjkDliH(|&mt6#5*AACy7Wu0|g8G$vDs{YvHf$0h!eZmlBoeREb!$*MjV~AnFIGYk zcDkC~+5vzH5VtJO>iq#vU6zuRBJ7+BmRa1btVt#QN)`&lUAUPQas3Lo84n&GqyXZE zoI_)bo83iPY3`f{2yzMc(zYgHSE<{t7rORDh9@l2DsCv!nQ&*jgOEC({xmk!?_J$CZk3r4cVULfb;wbXCae`-i(9%- zS?a9`yU=|tmR)dyxHiRo0@%4{l!0D7SFNlxB~X~Y`M?)|3;8i8@Y_|!!X~;WM`Bp>#)+_D0X1x#E;9O@ z8)4yvOW8-5l|vFP#LdN5?XJR1*!i^$bIf9D8*buUol?Aflaa(X2{?nOA;rVnZH^Fk zLC9;VQXh(QvtOyID`djDZhP9gg)Hxz1dV9A4HCI&8KJM%=t6TZS)+58Bu^H2ZI@7d zjFL zJa|He(Zt;S4hZh-I9iMOXEDnf4;cD2V>Vb-&|1sYs`K?W;H9Nr*ko|9wH>T2ib&2P zVlYGmfUwBl8px&q$Z*?B3Bsn)(ysr|>&l0|LZG@fQF_HD!|;}{afOj@*e`1_al^ON zHu}UY2!zdKw2wvC@27R!#SCFDjWP<4Iy)O`ma`UWTD!Axa9!%Z2CQ39h73Pcs?Te8 zdJ#Yq0}G#UT+c0WgoAZ8UA_7h)~T!9GM@CIrEf7$%ifeY2|MhJrhF52w|CKM->;`? z^?otzDJ?{`2)~z|CAoI10;31PIor=ZYH_vJC4vOf$REHF)I+>dIVzvwEqb$aSA(!y zS!Qc@RF$5+gf(T{UO{J@yu{sC#_m_dZNtD&`Q%>xdTzNB0(&kNOuPyc9&}lRh40Hb zdV0y;jcp~VcVZ4U%f<7A1FBMHblFy;;Mqzbk>HYMwqY*n|2$c5Z00C$vy$RA+C9$<;uL*DBQDi z$0g#SJ9Y2XQ}*k#p!J*&4LxXV`ScZif=s~QIqL7a&|=xIk*uq{j2_Lki<3cjZgGUL zD?+ou5#lahX|laqaiX*bBi=lV>ouk}5{KO7L|i;CMsKA*cc_$68?2Jt)%{~giHI;^ ziwdy{f19fXfgo9k+rmV1|mG ztxToXOmP$!A!!(MepdP$CEhhvoEso9lBTa%s1Vi^2k~tw<1QOT4but2#SQUBu*3E6 zB58=bwP!KX86(X-+)L6B7E2r72B+Mqx^hJt!j`Kh_jW&$ydW-8t^6~*W!=;wr+{5q zBCJymo--ucaLH58AnYP{u*zRZ8sdHzf^+$}7MeTQIcxMswPvvcCT=FG*1uVIGcG3# zwrB)lhw&Y1L|9cd0EC4M1qr)J5Sb)lORd+ce{*wJeNcN0qN3->);*U`8pMlxl zTKDL}D!YrYk0-5d9Da@+JRL$5i-q= z?bQfti85pPNdlvHh)5;6gY|)Qjn^e~r`M`-y z7Wz?K`YGac^OLx?ZZLmbx5%-5s^=0`BNcNK59xh8gctT>?`zxq1`7tLe3TT_w{u~g zk(sdE?H9|0x*;uB@4BhcF<2#yW#k1mrZ%A&Ve2?P7i<(`!EEYst|p|fkqd`sQO%TD z`czsw&-=b{IcGJ9Dq-()R6`;YX`(^cjnq7u=c2(puF)WDGuXM&gc$}QuP2HVlnJ9r z8t!PLqbB4S!`8dv3K^{5$ux}BxDOV!G&eRvit7Tsxg$&1XRb>A18@OUN;cCZDeZs+)L(Rd!E!ZUf=sT&yWI6Yt2wg{rh4;*qiIp zSLn^MRxHFAP;T>_bO6SmvpyJh zQZ8ujFY)rPHY4SiT)zmRa7W0XxQHvL2t8BigtBKt=hhXRh{|)Th$&-|PNS-Z+8j8e z(KLHi>ry2!yyOl>BPmNRfA)&^EK}#%Lt3m*TGJr zB4nJHh=9mZzpWM>fa8dp9lsj0uE`|oYhuQ}i?|EL*Vb8=jRj%*a6VHl64+ntE>pH2 zvDP}!3$dYCssrNx!M)YQNJL*nc z+i}F{&$bTRxNBNLSX>A?TZp=+d0#9D>)OuI)sRdL;{Mbb6ob_dW`){10biyEbTL?M zI$h7aFv_ISB<%1)P$}&r$BZIK-0*woYn#mHR#bn5h_EH>%7t<{f-8rGiq;2{ura3e z91{B?m^`>(^h^ zol);5=_>+gEFbjhv=-@G5)?8;y`6_~Ao7GY1u)^|TBEL@L>t>IP3@L25%wlTrq5E! z35#pI4^1R^qFZ$JNtfkd*&6>jclLK8SVfsm_#VErZ)`Fw`xwyN za=}37J)C2f5bm);>NG?_9(qF9c|y!|@FZ=KMUc=v^m>%vrY4g;ZSRAnyIRpM7&1aN;5*o>B)-6~aDqvq_(&FM;idVyMZt zmhP{C2#cgHY)Wdv<&r_yv0`(LO$%EasakF|2<59SI?aok%Y#)`i2F1X+8GfyyApx1 z+T&|~E}7=G&}1^rDu}3)6mL#Rvsr!QqT{+}Q)p)dcd&Moo7RphNE_nQs2JO>l_D%! zv!-^0`hV_)SW_`%Mo)!%)gaR}+G}5u>T_IImy#yK4m+tX32v9*|8zB|_&B(B%7 z%BWBWZwX*IqY-=SYY1I@7;neMU7 zCtUveef0ZH3Q9nha_S5moKUjW?S_P$y2xBs22i0dBMg}vjOS#TJLRinoaW5tvqE-g zM|-btW6i(wm@E{ey(Mg*<s?9LR$e_}jlU3L6RHHtP#d8%H#xoTh&t{jjif zu+nP5X3*62V@lX`5lkLfOw(GY$2H1ESUVBS zha_A!o@avf#~G~NAy6Eto?DIC;N~2{es3{j7tnMLG&hYI&oS4hF|#h{OmxCFk@N*E zQ>-x@m^6mYKssIJ_p>$CI!ztW-t#ya`9Ia6Gt%g|HV&N+PU`GG0$Q4)hm|&!_)k zn;`!yt@UxN5zQjF_G5_#i)rq(GSdhW_rkf1%8GN{lQPfUJFyqChfyLuroC>{Q_<&IQXH@ihn<5;oD z?Ezph0-Tj-Yxrue>Z|x%4O;8gIGc2mf}{#)qlj^YEkPZ)N(5TC$6cAC*HagLb=*`K zl+Xy;6AY@trtYX4g{y^lCZgIt+ElMNxq0O^8Noi?$?)4R_8p z&M3c(G{m(VL#O0fT^MiU>WpevP+#@cgs`(4<|Ph_7Bp!_8p1B_+OOstac9>CjXM&x zX{kW$C6Ne=!!7VBFW0F;*wvnHjVUjNJ&8h8Tafj1;T=VlQ8+jdqj^i%8C@h|T(e!L zm?WF)7p}K{oyJ@?5;WJAe4*@Rjl?BST390(0)D?75jOie$yb71)0Oj@xN*r{lxp}P zDXN7S0<(23m^`5q7WQ*((X>%_mL%kq8Vha82`4qBWm0dhX_OqtgKd;bAUc6=skatM z2!^*_m^(&fA?^akDl_D2C1E{5Vl%u?4Z@b`f^$vwuSNfLK!ZF2cj?gsm0!Ukp%H*36&p+9%f&J9>vTk4tex5o2)WtF40 z7blVX6^Z=eynleOtF3}Lra}m>`)`>WZnCN|jE&UQrjn?ZzON8=?jPEuN&8@+p|0ml!b2#2;TG6lkJe5*#1|0)WEb?xzWQ5(3_ zmdu1TsakMpNQg3ux~GPyg|#@3VsT!IxrzZ{^H4~4hTjlAbTb57quSw=)bT@SLZa8sEBXDrL2SHr0!Ktk}Ht7jdURWYqm3G;cy<|AR<((N+sQ&+SpLfmje)3_DY*@rx~?5(jUtm(bG+Hr5o;qOfu z?(aX+yC4Hx{F41g;=bq_$4M2!!qTu40LE--L~Z5>n}|kPdEOHX;=7oC2nN!V_vC@rk@{f-$t$HeNI9>mT1 zroN`^Q^7D+!#-Pr(Oi>+^6F|OCVsYJ(l5b?i|*4xdn;|vh4T7!slXD<2qUMF^!Mmu zQ;6R{gz=^P_ftF@Yav!#4nMTRKje-+dcpk=Ystapq|myDx4lji_Ghf@3oib(vN!V2 zsAYMJOEr&&^nch(0a>%}m-XB*SjD~ELGgJzyBn0S=O(Ry*LXG(tAhqESd#UX+F++0 zT`ky_`7*V-@Q;;Rra{=_ov6~zqjKxsyQHk!z%EHmR9ko*T2pYt?&FY=aNFqRO-$l2 z-BPQq7h%h%*zTb>oDrt4YXz0K*X!D)D?VraBWx|5XZ%-dW={gd@)~xF1iZ{g+=Z*3 zJMG%*aDDz06%>2uGoC-`djGw?hYGCS!({A|SMFwjQX#P81bM(eAlojxuvaqc9ubB14sSD<`!i+A7q{1hnOhj9bkz4v%wXb3-`XPEhTJr zJ5MGu2%=l|v8*;KL0A)^Ebu{w8iX9n6kp!IJCBCIn`ma zQHezF;)68YJjcQv^e2wuyFAUpI@ms`gjwo!mN%Na&_dgGREuFH(ilnHuvu&vDNB-_ zOuytJYA;3L%GuGtJ^fzF`PY*7z9%N^*KcrQWb>+Z#??uL9#`pN=62s6krVGU&+rUk z;h;L0{7J{Yj<}d72lmYnVY9;im0(x7h4mM>bpAtQvw~J=wX<8wT^HgG_bX;~>x`<~ zFVG22T3tt+q_$j$jk|JRQso@%B;~548ErPa06y^e@$QZfFnx;{rfVc+un)5=twMmq z+wXH-UBn{^hbAlC03Tk&n5?+0BnHcKULg&HO`2d45vftPq~RLYGpDYwQ_iT4MpeN3 zK$Y0L|ofQUioAqr4p&_Ny6QHf45ZAuWU}|%}Jt6Gc z=3k>^TJ5t!C7%)2iI^Uq)-YXT7R9-|KZUsFg*0Azx$*cQR|g*|y4Zi4eOG|6B}$s& z&&CUzL&Oa?3&m=`nR$dQK~oPP)y%tC5bd&pu$cSnB1c?%0(!X$CwA9GM}3toPT;Mj zOnZf5 z!Mx+slc)%$U4uFF*`VN?-~OzW2tf^RzvsOR3#0n3-la(|RBCkJ02y8&C&r>YgdlbTKy7O&n>XUP&LawNoV+W=s%?ZXgGq5EIrknsDXOn?Z#e6=^%-_ zbu|KV6NYZy5_a35`PKt*7q0$0Bh~+4M;9##*&*KtFza9=jaI!e zh_I!S>*&P{e=Vd0Vm@!-v9P8p8e!LD|IF>7-d7DEY}jzN6Yq(+;UW&WC9k<8wljC> zio}bOLqxT7(q93P_D=u#R3o^%geUCJ&D@Lqr}?I<=~UIa#-NKC6_dMzN6X;q4k{2)ni4T9aQHF7xOEM_5o{7`Sj^ zY|wp|@Wd6bYo(yMSt+;4ZeNrju3@BM{~$VXXuux20a)(SQdP28<5i6?Vd35SX5+|bRrVOB?gPM`ZUguUiX z+Ut+fp1Aifa4p<5mh!7^E4%F)G=l?vfi*N2LQ-g?I}@fWj(rML*0Ag*M%Qs$-0-D? zr~uRWHDM=g*2`b$%w!b8!mdzE{~ALU%!j)DA>Sr`Q-vtceK>b{ ziE42T;t<|iEKBf^X!r*%Ib%uKtr{^(gHtc0ZV>k(JZ6x-s%^oruOKWeXeDFvgRNb$ zIkmGEFTy$|@EjY(=&_1~ zVaqu>dXVZxrp^|AV|&zx#WH<$&0v}v?kKYs$`;eE0x8Mtt-Y!P8f^clu(XVq@nEyM z%m%d!88T_Y+NW!xD)Ob+?UgfIQxJE-3t9^%TMAkx%OjiQCU4@R$;6X`0v+$Q+_k@sv*zry2y66uNfr|~%PJeowSMZt z>og|ra0QVK=(06WW5U*K9w&|@s>I4}M4hEEVKW1sNMqtIdjXx6a!lu6`CnhL5);?m z6_RY?23Cc){k#Z^z@vegUf(yBiq39(KH?7V3c1zp6V^3i>N@MeF8WFMSsmT9l7s~r zhS+~c{hgGJhiVu&S2rE#2Cr_y#K5BPwkMTTB*m?4BJ6$!x1^FVixly;2jbe^!!1(b z;$huyaNoXJCY9=Ay`mMEbqc50MQevww6^Jmri{2#UoA9WA)yy>Q_=b?yHBP6S89P? zSg@zPenzKKZPvFOXzaAH3Nz$&jI+b*rGv1rr;&_Kb2g|)*k%{Q80fKgNI~3K0-w9o zLD+e$^&5mutZNN}nuI9JTf&B(qiDzO{-qTr;-=kz;+kHB0L;SdU`0GPqAiM`o*9)E z;zAvF!rgT`KFow2tun^RkcL?|xE}J*Lc`VWqolU#-@IhFW-?D|!a_%1u|_RnCT>XX zkjoaF3(;5K$hm~YiP$Ex6Ys~6uyDYBxwHn`$B?Lq(V;OrzUV)=A56n|it{XC`v?-& z^0y?p4)a6=iEFdT5_UI&gxyMA96a0lCG5@0GYT?s7uFFz*foZqbcguRr;O@X1@$4=}i{n}l2wQ}CCZnan30WRTQAbI323W2M>UM9_5T56# zoXE7INH;SjE@I|#xH+m+s^U4ZCn_gbe7s;o*eCA-Icreu%?W#R!8b@xgH_M%X6fnr z5^olVP`e^V!u7%`gHD1CI4ED*r7LZJ@mH8L)SJn%rqBVuz$ijc{ig8JDQHIlM~vX zeY>@3b>&Lf-C*aN8a2v#5^Z+G2*TEtihQbN@?~x)?JAlKfvwE0uk4pO9{gnvG_Zk!bsjVq{&S(z zRbLsZ_4DEu7jYMM08Ftj1)8wdlvkB+*1hT;6W*%WUY6axmOg0kYf`e|9++2pH9Z8y z+eWFi+{ru5-D3SURfsz*5o%xLM!z_3H_wO)u2hDcPP$v{YHm#TSs5;kV(mJCq$E1_E0K!qnRgcA2>x@kYTsTyBV4;-ojKy%@j`#KQ0 zLENnpamfwBW|H6(JmJQy{16siFfs&twpa4RUGTznVYt?ttT5>JyvlR=>yIOfS|}TO zM$lZ_nRx{x2>Z;wO$?vA-gkL}LoE*!0jukwd-%Jl5m)U%Z6K-+oHe4pWynkxnnqX{ z#U^Q|119dgM#Ny}m7&)4&!Mi*b-;3Zs3Daev^MGf_SQOWauau}bIg+a_#)Yj2YP8M zKwN)cON}(ry~a0$+jj_koCymz?1VeL4}h%zaW_JuokZF(Rx*s6JR4<5kZGK0?$0RZ zwo!*K@gmNH9}1_r|FB{%VWtyYn`y$OuZAKpTM81k&Fg10LC+=ZYN1Req3Zw%`--1+ zH03AkO+`SmB@d$@Zn+-Cuk!8|g;Nn~vJ)2LR*66L#I#|^2Roxt3Bpd-MotJv(=M0a zDxqEsdlH4H*8AbRz1RrGF-1}G_V5h7wFKpryFB^Co>I2^PjkbvniVA8zqXd;goXW; zA4Y8DgzS(Z6rn#X987dW&mb<&Y*-SPN7-zJ0OEJMci}b_3}UJeG}rFim*0%b)&;}B z%OB8F>o{2*nA z9dEFdC+uoxW9%CT)$MABPV1uPTAX0A4;B=Q)~4CYb8M7BwrbMVu(iC+zQKpRwY5u< zt_2iF(cBV-63Aw$p6%ca_U+CPN(vD6e%MphA?~V>TQY|*Tb}kUQ`&4@1^z5=hAZhw zbB)^Dfw$dOHf9EUJMOh~x_}cE>6?We&ODR7awG&eyp=R3Y`>u+Mj(GK>o=4;ID)t< z>2AU65;nw*u$j81#L%1$^$1L#h9>*twpOS zx>Z5LZ5MD^+_Ur^s5)W4+YLOQfwUI&_g37yboN|utv9)1qbwG4%X6ALSaipH&*ILy zKv5@ZNZ%~#8=_8FB-Ta?cQFg%&acK;Ek_VsW1fpTVNC}XM17d-HOhqD4t5Mwo7}{G z`f7~+$iW+)dveG%8R8akSFH=Q2t_-*9mJWiPt4f_b$+iqpGaZ0l&WSN7_k=~B74|4lSyJ3;?vxmW1rGUf zZ?DzJLD*sO21C{)=7bfh5_T>&+q@v|&sHF2x9yzsuZlrq|NaWZ1|R5!pkP_?+2I3m zvod*KCJNo?nYT9c|s|OJG?D*MJl*$3QMHs6BZw&n>Rei zWd5RW_c^({KOJ|Leose}4O4HWL{mcB%TP|M(dm5L^0Xd?OXV_Iz7BQ9 zteqStg+FAUX&l|;aoqV?f@=8oDnqru+ADrji@5wGee7u}qzVU_v7P7omayAGBeWCT zvfrw+ftuC<2wTQsvBX>0Xs>pf72;-t8*Vk@oVNX;xTo8SGuY-bi|x$#$#OE7aY59S zs4kT(QGdu=!j^hwVIaiL+-ZZs((f}XYO8fQJaN4yN?NxYi!|e$r}F})EmLn&gQ$n< z;^VzI|4@-BH(6=9Q^VXpi-KXe?dbt+^DR+V&(k?O<8fN|8BtG>XimvK%SIogrbk~t z7dv=24+TSwyq_^a8-?6_>+9nZ;8vVamkXi ze8m)<+((&6AigLEVQ)WPy~)jU0HTHgv$tw%XIS!?TMh=8F3|;W71eoQ0W}kHy8WR^kMG~pBcp?IfjICNz3 zHdB@6ru!Ilsf~(hXG1rw24U^f`*RnY^`=ajk-=&hR6#nz>%FSD^6=1K(L=4r$boUq zkLVHhp+bCok!c_L+h8~c32=*RguOd;UHH_gpHd~BH&})zjfc8tr@1C>Sqdgiwt1lx ztjzzaj<}8Pq3bsP%qpx-XJL@F-Mas2?Kfx^@;F$j%35$=S|t87_r{$Ul$_#!M}4B2 zTkQ^ZrSaM9eyn7+<7Uk+VXuA>q|ZMapnFAB`wMc*-r`mEnNB%o`uW)ts9|8d9iyg4 zZ}z%0)=9Lcse7x#*xqA_I6oT+32~|G`3jOmHd%H<(-Qnu{y^Ar_+>G<7!;G~VRd$9 zg}oY0){0jckLH%W0jgs!q2DZZgTv>kd+6>P9xa5v6FZH^uc?~}LYj<4B*=p782cQ<`LErlnE2k)E%M&BArKUCho7PD;j@p>wQbl<9 za&GwQTUOm#+$1lNoEk5;sA)eNWi4uur7kYVjP8gZmLJH3GY71Hu2p2cskK&0>$%NA zYfYW()pVYdeOPyu2;R)*S`F}3zPMhkbvD5D`k7cmYj5<+bV6xc=9ycb;i|F2^{6v* zWf2+3`fI-&Jpu>)nz_o?Uo%&n@XE|BngMAp=}SH6(o!$8>qTdD%4hn@iQRD$r+#ae zuzJni{Qzb-d-E+(H_xk!+^pkuN*hq~qbpW8IJ|Wmi{UTX+hLO&{vgq#3tVYc7nhAA zyh76GFjfakS(vRei96otr~HS)6EEAp=dNoi|irnZW49ObxG;yWuMxsyCUHCv0J%C&+z$39zT!;+8YuG~S9CPag$1-Bhg zB!aN7NLkSd4U!IOxaXSMJTFHfgnyX9_Gx8^Nj z%cpA8_LZRQ;s|kF_6GS^+PY-nTjZ=`anqU;cR738QL_PmhU{%(AZ|czZ#e%6H%xvN zo~YTkYD?p`#dJ>-)G;vmc=h|Lg{Nz{Yy#_)d=Q(%u@+=Zd2{uf=pQU(P`zgL6=?;)sDWM zua?74pqd@_>dfH;)sC@O!{QtMP;-Q^gMxH6bK5yg+>5rZt%^}Tx>`)wq@iBF9kv}* zW=`1Z7T*y#&onK-!g$18xGN(Yy6g$6xy}f8w`tvXcFT$dtKxV5%gFxg-Y%irDy0EB zv~uH@)6Z1Cs>k%gcly&&KIdsGQp*3OI%4%R%Sjh7eArdx3hhsk&qB&3Z)q+5mNJMb zRQ{?%TqZMNpV|x!Bl|4VKlNq#CX3D5^G?|&TUskz8eQhH!2+UP+h0G@<*_*7PDLiF zPCPdA;j`6z8(+@J@@*A0=B^o+q1s>VRg$*IZ2BM^5V9C0abtgluzR_yv$4IU%GHz3 zVgq4=DIoFvV%)--0asQ5QZU47e3O4eW zus4>aIvYnEok&O8%#GKls(00926-TPZ5Y~lV!OB~;(aAgCUTYe0(;x+I((9#cOvWcH zthzQM=SVj^VSi39j7R}0JTzd(LxStSM09ea3GZ!Im=l!o;QmY8LEKTo#HSZjZdMku zBsZiaZ1brYzMHRMc*Fg<-5|Gdo!KWZVgmDr9%*l7hbTdL3P^L(X2~b2CSx4?_GgQz zOQl@QI*&_GGla})&AGws64cO_58uuROxRd^H^enjHG`$NMKNvD2sR>hinW8RA?{Z4 zX1dV~NZ7mC%E?%RAr2*MX225;C+;txnz>c4QYx~$+$pH{o;>scXXP^Z+T%ay1#I=* zUg`&%h??c+>StZP6Sez`=|*Enc3d|)Q75|5pbjOX{R44l%5m1@oqmkCtJ%Az8HAlm z$FM;T1(yo|!UiiE<+xGciMz1p9)_N2hQTU#p4wdT4KQJ`BK3Q;}h2SvlAP? zaqEXSSYrtLgm2`9G9$GrD<@yHN!2x{{%#P>^$XWV5AU#os9=~e^)e{JhY2YNJ6+7D zS~cS&VO{!8tWe>Qd0px=VVi!Zu8?kX!eE!I5NmNQVY)Io2g_YKofW@6u=6sF~GW{t`7k`do1dl8urg(yEwVDV_5sI&i0QkFodPXP$o7xZV}bSv{%Z# z=&AFs32L^m%RVzcIyF&Psf&blfBKq2Gfw5xpi>PYNU*6$(~&&GB~ee(v&|zV@;ZarHaSY2ILj&3}km ztWEMJ%g`*p{Ac%2GtCtzVeKdBQQ@1jixbyN@S~oPAVHlmEwcIt63EL#}Zc?dV zEs-Qi4Hm;D_T0;4;<_eZDK$*x%pcAR=WZEcpTCn&y?$mfQ3JU?VN}_dk~_o1_;c%3 z4hqK&sxe{1HQsRc=3Am}o>xm_me_H@YtZ@870ZsxUb#!?*`LE_S?SF_lXRsEtfyO} z&&3xZh?}Nv*!*MGWnW}texg-QB98Ar)uyu zVOK8HaKc6GRJC-ZF7Nz>(^59|XXtkGR3uT+?fVwv3j~3)n{VlZh4WSuZ!dMTfqktt zACGL!QZoB2@q+AY#X*ls++78~zmsZ66w zPr`;7+S|)4)qX-E)vjrYJG}f<<}plD{h7DN2eJ1!AKwpYB5WWf@=z}Xosaz2BE9nS z3F>A!mav6V^ip`cO*7(#y`M67#u&~neFY4<8lSLxtC2u+eo;Wj6qzKd`Sy6PH>;^z zKP%xNlH0$Y(BkUc%56uEVrLj?N?*-i8RvdK^67oR#{V?elI2+%=$#A(%P?FND*fRP z`SnBjy+rO4cfKd;lL-(!PuN$?92q7d^LME{nE-_V)(p|!R)l0JF8*_?3A+A5eBO!2 z^;w?8MRJ}!f`r8~1g{3YyjZEkwjKf8PZKQwZoM6&o`10dEw410qy5=ud#IVg8R~f) z{c7iB{Xq6vWRBWdSn3>GF2tzw>z{;#T&F%Ot@8VyJ{Y|$1|3U0vL`Uk>} z#tpT)OB1!eUvv|;jw1(g?!_Jrr}YcrvynB#-SR>ymoi=?Gve%@?FZ4sZdxawa`vup z(%Ql-b-+gDj>2V;Aa1&j)LgPX7;}45xx^Aiu2|<9{j%b`*)|&E&kGW?R_7lh@X)dF zm6#7|_l|55x82ah!y4~zWD?cn#$Kt*;tZBPBkI!8O0{Gpv*Ub4)QNmH24^Cfd`8@$ z9NA8UrSSFYin!yOu}I!@ESE zm|as+>e=YNz?2J4POk#8!b0;xc4wlu;Ec$Si(i!s=kkx%rd)Uk{qbmQJ^EKJGy(ZL z;=+n9JPu7NeOUTK?@iU811opv|Edex9$hOmGi|TKyOJcrURxkdnaEEpQB@!z7yIm=w zT8PW-i~5`lJRD(13(AT|qEFak>1i4HQoh7R^RK=l?9=Jcgur00@^P62NJQegT`DGI zV}anV4{flQx7Laof}3to7b&O>pW9yn6Ar!9eQ3M*crQnS1V}&p)&99!VVkWI#%^m^ zar&0f;yre^;p&&<)_Oug)4DcGcfwZ2jV-X%eXhL9TdWHt=LkF8*w7!8E|)YP>U8)U z_1IjESM6>jaesZ@BfO)Wj?4Yvz;fK>{Xz6BR@?V;HSP%!_hLVcGLh?=D3e+4n&mn)Z=!(}g0lRpqIQA(P- zay7Gyxllld>6OZ0pQ#U>R1(&yXl_6x{ZuLqmWo+O6bn>MZG7w1p39e)CZZ;8U%Ggl zyPL4R*S97uv15kIYzgaJn;VeDdpt66(=;=GpBukt1&YMQhKoJf#H}Ab>Y?#)9I3NI zpdLEW1%5YPz}(5LLI?8E-Y#~5=7n&@(1$=G5=OW(g0MJo(UwkW8HBn(BdnSeo%_(Q z1sr<+zn)k2Y!-t++_hkcKdu}Aml5`^1M(mcwnTf$6tU;Y!ehZe2~yLtC>;7g--mYA z_%^R75Y1f-#;+MMZrK@x4=dNBvhPyq%@r|oOf_nE#F!1+n$UZJU3%-1B(a!w=+Bj% zx2K5B_3|8H(fl6|*;CVeefz+F?2@A1oLCCDJ}Iia`lPdlNjOa(Ce_@?3ZZZCx@yrDChNIJ)IX~m&LeF zYSGx;coG(4hd9-+3YT>0w-V2jD}>F+(@@4^Uq_L+mB<#&IpOm#K6Irj`-Fr=pA7qO z)yYDLSG#c}tSy6TIIpao#gVWjX6xzceI4>r;?%-guEQNhfa@SpWe^;~UW!s4qeE}} zE0^=IbWy31;1Kr77>SLz4h2zhP40rVvlyKTUg=M3&8>HHO%2Uq@5e|G)s56an%h^7 zJV@o?@Y99wLcV1pS9$~9e0Ctsf}t2wX*V}O4rIoST}9;$E~@`X*z%oZ@4-sH@Liu zL_YM-_yM1X?!utv;p=08cj6?%x`|oPU^sQO%&7frQ1}Q7g|EITGm+^CWYEdA-jT2{ z#Wfrxqlx9kD2%N@5w;4jTzX_r>_*`^Hp;AQ5;izt;4|@#UQaM*>7=^Q%9EQ6SMyyT z-gZ6{USIVgKG|Y?%;M<15Zc#ObFFSRv8A4=>EgVe5FBs{tBCR+6@fD7-L>sKLGC>ptAh^$+qjxRn)#cs!v$ZOw2B=f z*d!ofFQXuw&spT_G2*CKod>T&?W&f+RnW3o?a8S9QC?&|6^3n@73LrTXMY6H4fF$rr_XwuM4ELF?_r44qibB+BCc&q)W z@G|QNyI}1~(w$*6SjIKYx7O8ZsnyimQd3-LEwaq~cq_MT?~||?@yXmmv_MnBZq}=sWle6KTc2Vf zVRs7_B9nI|LMp;8Si2UjHXW9u#XM<3Z_z@HqP4HcEkp}#1!3oly0zRAlS^MgREt=) zNP`$-( x8rWMTKQAm1_gqK{Ja*Q{7kYTx&#Y4?Y^_4x_trhQWLat-35#~d<}?d4 zw&qUW!XL(>s-1+TTWX8H=8o2-b}n%jT$=Mii2QgjUB;pNrC2|FZ`b`pF#A4}PROXR zM*#IvMImg^@fuU);*F&`ahG>iG$ZYMnF!LEv{i*&>3vDk-eZ_4F1+4HYUJFKUHR>9 z;^Ec%qSCA0HJn}_94RQ|Hi`w9*&1W^T-KTZ5_fo8c9ymJym)zpu;})oPZKVL(9e`8 z@()q*{$+$9Z1NyDSq+IN-FM8EL>zn|ELdPmlaTkNhAxS?v=6QWK{!|RyTwjepjkm{ zSDi4DZX zLVOZ}(+P_qP9T!?DpBqCp$>fU5*Zb5_mX^HywQues(4i?o_;k&%|=@KY#a3yzGga_ z&dofDnjW3p)RjD6C%Ms!u-mQioNUB(s#+vUxNZAbP`2!?`-84;Npa#XH{=`@D&la} zk$5YAAZ-2MT(EH5`D}gdP>#TvDjkNavp`3lSrA%vdpk-_;$BEtJ9)#+G+7tJhO1Ms z`+>TSP1w1i%7irwMl-usF72treqCP?H&yT^le%&Njd<+ z!XCpO6zfu~uKi)KO{T0fR<*e!1W`?Ij`wn8xk{tmuKfY8*62Xkk_L>_oNv#Vh=d&!OKuJl<={>mqEU&=WRDd3d{RJ8{eNUS7b0Y(Kk=RFmmv z4OnX;Xl0&bMzoDK2)jjL zH<72XwF|tF$i$u1=o`XLTocDE+UiK@3}iuY=-1|aH&<&r0$wwjuqB>c!-nvNx7Rc$ z?x0IiBgOs@wUA>NwTZKXmD$BKwfm^rc?@AooZ|+(k!nY`lYKH;d+o1LH#b|L*~2sr z?cebrnQkvtqF!TNbGUU*ZPID%cC5#?H#;G_u~v$VgG_S~BiMWq=C<$;LQB|H$z2Ss z;U-rcvP9N}w&bw(X!2VR=aW)&o$vLUsB0mv1kmvY^OrGiZ*7*!H2Fv@x|q?nIdW<#5Fc~a@N02B1hO&=4JxiFL4PQ zt|udK<#3Z-O|fAr8a?DR!WIc$%FV*f>Ao0YpL&3r7EvErq9S5tcR}MM>Lg1BJ^GgH z64oTFit!3NN3u)Uaex;ihVa$^IoM_iZD9>5+gI;Yb%^_2Brj;KYan^DxRA1Z?OC<> zlwDf;%THblTukFugZi-2363B7l+zVV!-$U5KlCP&%V? zrZl#EN@Wgj7yARNP{g%Hf1JoVYKV{dzp1T+jlrI3whM4B(S*IZ=o`6*xEI&CqEy#K z4t^H^)*t%FIRsap=SSExo$KLG_D_VJZunY^-Ku{UTf(k|xTC^AfeAZu{_N3AJ8DR&rS!gy+Sc{$z$Rt;NNrR>BOz-c*H@8P8p%o>7D5 z!b_DQL!z%zgRl)lq>L=KUm?_$8V+{Qh~1KS!h!%VzQ>x!amz_ga_;!F5IB2oU%fZ7qt(r zuO2$~L%)NGpJD3y<$9dVh_L3^Fwc;AYuQNH)v~jejf902w(UGf%Ba_FZ?aM17Pd4f z6#DzpOW3EYnU`LoBAMi83uTt_3*~Q0i;`;i<=v2KX;Agt8c)LFxUgxa45rE24C{%U zjW_Crh&xZ<(kN)_Q|KZuVsTcjmVGSwM=l5w7Cn+a0X!aFCw9&weXFN6icMG(^L}Yq zQgUTkNx>%Wec^6W<;+FG4pXu(04I)}@rz6}ggs5PhkhLgKS+VQKaLMVo5w@=eCXZf zhpxkMgNQz#Wy%>kx6i?=WSAwN!K(R%_vlRZpV^5rXgEVzP}7yLTUmQK9$^;}6x|fA z65%oMv&{qX^WJ!xPul+z|b2- zA2tKs!d=(bOP?!osqP$W5uyoZG@e9PSB0o5X}2v{Y$vZ6Rv0b^<_D z1oO~evBrZ^9{O9vvu#zu3PJU632V!wb> z6Lno7)axQOr3pJ)bIY7ma`SK0h=;X1OU@Fxd@m3*)xL+{SAd>(iCYsX*0KBMG)zzG}F z_9E`=@CF5-g)Q2^bBtXz-P2sn$W7dDv+mR6gk$jg@_03<-x4yf;&@AAGXc*&>!Y5Q zCgNsoZdSniuy;FT8gJr`Hwv!GL48J*ula=Cjy4Kcd!vG53URmAJgKT5Vz2ykn0VWL zvA(qOS6gTzeVVJOjC)4VTJU5s(&7Ng8prkGSHZ3MNmvtacctu3xU?KEaY1K?kPb9p zaX0rVR_Fx9m-IqX@-rEUE=@_{$~vA}W{usU-`ohLe(~`r^6OMIHXuCnc8sd38*Npu zt$enJn%SR?}jQ;DBhW>PQY(%-(mRj2ysQsGFQ}`)`EcL5xlD8`pulk z{4kgDR+$;Q@_Z*3bG_+XHAyE#bE~YQp*{uF>3QqdVOg)YJP;NdYi-xXC}+e^8~RZQ zTUsNno5nyJWn0*Z>k6KF=x(vpbDeL4*c`HceAAx}mkVaX3ar?1{WTmnpa+fZS#mng zPTZLQah(&C#93bl|2ujhA(SI)F)Ofj>3xe7v^L!oB$2jBLELnOuZHjVl;xhVrEd|K zCCY%haD9Xc zyH_U_BC8G$-E2~a68E9)e~Gk8#w^kTiEdwkOR0m%K$lOcBJ7P`R3Qc-C9KPL42yZ{ zt6^+vIXL}l$v9~Ahd_2_6CkmL`4Ky$^9Jj!#gc zB0Qh8MSvpXo+gMe2ssa)TTvl`Zok5|;mVc_ZiZ*@E^h`3sYq+hwJ*_M;#&GzMmE9q zS(-()oe^=*JuxXL)|z9i_V{}JxH-;;3(88=OjYqUf{SpSK@vJBHhd{rN7(uSv?44J zwYbRX7uRcQhKZ0mF1$h!l@O&xrnw;(<0v2-R7+nCgITLGVUcEaurqTIvRk5Quuq8A zgbBJkT5dPg&9Jh1(nK^tMgDP5a(`f_p`C06HI4I;wDLINqCv+gk27{j(45v z#NC?hwWo-iE-7{W(dE3v{Yv+Vir~j3QWj{81Xt**k=?}Ik^lB5Y%7s{mdXe~R8zeM$nG0(8$fs6HiJNjkF)}VZ4zapiEc+<_p5V1WzN+1zS`)BcD7jf;( z7rfd=)hz2~5I-a8($PI2CZ;*lj6~FI-r1$C?6Y1^32Q~tdT4vKO%meT<_ZdEZ-M9w zS5_DhhuEujXyPs_m{tWF+TkjB>s!Ls4^~t!&kLu-?vg>6cX(?X2YA&^IcrmBZ^vD{|XL=`8Wx;M?7y9po ziZ6B%_By&bvD6*?xrAL^+;*BRLi0gMi|-*FdWExL!epz{@<%N5>6E_}<7w@Ul_*)= zw@-w9$(D*WX~Yd7cEd2;p&WhrZth(<4<_u3s`;5~guUt9j2YUm6F2USUQ?srUNdSC zHrrmiIRzDZ;?{%~nl7%SLzvs%ow!KCo`h#M1PWY+n6N7e>{V4{d$x!*+;HcYVq~F) zlggJr_0cNjrZqj#cN|2G6-*Bbg?y)~5qEwCfQ#^W*}+9vO|Er-upuf)R@9NYd3K&- z;YtI1@`$i?oXg$0Qp?Kr-#OF^w7iEfyB>XfzSwhkiGutjuDz6ZP9u zVN?o+QP!~1-f{k#Osvbg!SWm<5%{qfrFMm7up2qwLI}@dt`k)QEcd8N=l#$hXN1KF z^R3R0usbO)#!5b<4Q%cFh&xM0nI=8IR)h(Q%45-bvS1LltsAACcm)&k4lqsmjtP3M zSA7~=n4p#9P!WCTSN%)EU*F*t94|c}VNDs)8Qz~hSWMWJ0}OkYD*hq z!rts+MuI`yR^Gc<$E>eg3CBkXDIOS)UxvU_<7MNLu%Lqd6Lr1ytA!OwXK$Q3=)hDCST5AnlPti_&NQIL4JXpCzT)5?_H1O$9*nQ`E6{yVMk2M>v zKG!-g{MsP2_b!#U${Z^I%^`%fPb*C>+SoZih+EkqrfCs3^~qutNY%?VVFL#;sm-;RF_*S<;|1-}cm+^t$eJop7D!Xmj#nv>ii>%-fr^~9Zfz_flXx`c%- zmq8ZdX9pVUvbECH>T;Mkd1z>%K7|B$*$Ym=E3O zFI}J}kyQeBG1U?nUQXX;Lcq`3Y0%pJ{oGmf2y2DCkYYP}%_xLjBcu>XiQ?#?!}nT2 z*zc@gc)Szyo8ONT4!e@(2{I}Q>VPp*^ski=^uk_A(`Lt%B4oW31Hvv8hGC={79gT6 zY{71|aab&7Nzfb#65H!-_LiYB=9WIfpzqU9+*wP~< zanA11z!#rp0XA4Y>WQ5|t7NEx#9jCnOYpdfulXK9lNb>eTv(8XAS`{)h^CXUw?YGm zr_&cDE(z;Hf8+Pi^8Q7IN?w??vD{0x-+czB>lI$d0-=J#E!UKp?x6?S5So%Wbi;lR zQijI$>*#i(B5UGPT~r_jUAGWG|5^l6U)f?tx*5V^n&lwYo%^gK?5vcEQCM7YJPbd~ zI>`~jS|1j2G33=+IudqRu&2u~(^x4L5;ty(6W17a-=!>~L^b`?Uuk^%qVMqy@X~Wj zX2y~msqH;aSlfCDoVjJY!CrM%l@2XO2Xr88QBI!oBpnEgslSd6#C2sSZ>>~AB#h>P^>KI&l+i0n1tP>72aq#kOvkjI~TYH{Uo(8cNmz;OH>#Mkn zM_8BZq{F46oa%`Dwo&9QVQ;biRN4Mq!mdO))_~eWKa})ES+(~1(tFuhiDk->wOZ<| zl@XWg*(koHnRPP0&?pUaaK;3Ue;`v6T$#Tr=HmL;ywGlk?O>qeaKDZ*PTsU#)}#wb z9<}`BJdG{l?G;{T&9~dO6W40lN^J*)lWUv+ z5P>cu2Vi*OE^N3CXnHDsGd^MM)2SH}H1$W*a=8=(J!N=<)w!2>{(N2lLv{EVuS54N zjxTN(%!@wd30uTnXBP6*ly@hei3vv| zSgWdIsVe8v+97OFc~&8##x%ghT~OT}M;UHg*t19<`dF4jcd$`XigL?GF^va;!zriw zqXSMour0gaCTg=$=-i@sI>ifG6t0R-XDLtE)dqTz5Qdv%P)Z2g=%oCAypxp82|?7L z*5PfFMLwxU#uN7n!rs9PS~wT%~$|sBkVF2m=IHiAnx+YMEx=HY3Z!A zryy?HTR@)$CuV-yxa&mD!cA1X4-5!z2Ujvu^(XGQ9onP;GL^7Utn})1o3Mcf0}2s# z8rk)=<{44K-e~wo0hOQoB`o5DDZQe$6Slcdl}1-;&SjHZJx^Gx<8D)=EkT3u)aRt~ zU=0&-kves>vtJnkT?Ux2Kf9D4vZ?e@r~FCtwM01Hu1ITRs?t^WN;`31B;}`c5*Ahs zgS5JRS^)?f1mQB+N^TLp(IgEQS3l0IzSZu#bSCO4!6MqSz|sf1$QlTGUG_%xGdm>H z=Vnu!u-kQeIDcKY8m!u5WjnUqD!ap|h6^APUxU4)*J?=Gk`Z=qL84QeR$#*&3ZG&q z&11|CZN$p&e&Z`A+MdH7?qZ*XIplHrR*$w?Tn^!9G7TDgv+P)qo464+3$w)|DDfpv z2pf_&+k3lSj#ycKs~sM zH(~KX&FeECOTc(eP0s->^tehX!UEAwoJM-ufJpkh=)$Mk*;HpURs(hDH^hg=6%;r44gtdV0@UyKqPOpjEl;tKbeT2_gr=cyhDJ>LX1BGfxP4$CXBQjBHZINua z^DhFdrGXG!jMjQ=xR$?2sy0>#-Q&Gv-+Ns(A#@1r;IY+&{igY=hTkg4Gr?WT&}X75F-Bh)a6J^y#u*GMZONBcm-C}#3yW!5TjEPXv_bhsv9m!qiWH0pe_G>fT4FK?}=)feSDGb z3)i9%@RI%4vfjj-u(dg>ab|YivfW@;6@Ym*3o>E%D!4WNaHtMdNdWaHEXH;{zaIVs z9f;d3vF_8MlmVg|6YwhA3kN5{aZUWi7>%?{oUrM=N{V4?H*jL%;jx*>Os02Dd*Ez)JGGv;;|p1YZA*!(?6zcHSw#Z-7laKf?2m;MD=g&ec z+2)DVrFUfzVTVMTrvGYBei>tF!X-dgi!NGgF_Y`pqKo*b=sU ziq=alc1QBFsSJc!5I3}=wiLT1@`QB?;I&>Aae24Zm_gXEJbRWI#2rR=$ERGa5w_%| zgsW))o9eTl7Vby#f23DROtQdHU zPR$-|f)vwIqF?x*|QC+z<9R88F&;V=5(AscYS#Zx(NiNL8MCD>>78!Rrn+!6s2 zR*0mq*GsgsO3U%=N`^dWJ3ZQqsNGV5Zg*BjFj&?Ut3vm=VX&Se;-T&K!E=MC8m&{1 z^@j$J&l1CpE2!drpYnuVYy*as(PhOo6?9@D_U8Fne9c^iSSAt=wo#h+5_UgEQ;9U( zl{TOe0z6=~XggXw{pb9aFi}AT{L|F^n({hp)cVEP68B=;wWj-3JwCloSlAN6j?Y}d zPa-wogTbn>thI%8tv|_k!rr_qWW)#JE;v`65NkrV8k9TU2y0x(2m$vLF6f^d36Qt# zXEFuCwwqdY*IF204$lhwpkf;=OF-I{)pA|d)&l|vxzETG786;a*@OV1OzIB(!2;qQ z`tua8+Q=g+0+q&9=Y_x8KOw_I$YjohUCj3HM#&kArvoP`OD}v!O0HK@KWWj`hpd$i zx@9HD($4CfWnD>T`mU87dSUA_;$$&|#w5;i9uH`&lT_(QhxALkGLSKDdE~xbq8Jdf6q2eLDAyn?Rxk-cx zdl_D7hm=^0c}`rr!LM~wm3Q&^dW9yc#q6Q?qaXT}-?C=YIO7K??GU^QVQtdM(#*2=(OTrqM811cE4#&Sd&hB zb&FcaQ^ID!TF8#j?$+=UHgwFEj~0pVQW-6Hc-nNi%|z>!{Q<8UDHO)~Jt{f@fl7~5 z&TI#dxKUs#XdasG(MOi3h?qTZ2M<9jX}_xM3JXt4+zDH@yP5l;25irQxLLa&6x&s1X7nJ^ zghjOGDiCv@YTu9mt{`l%EMwFTF^KyO+x$ZA9T z*&-{5n|Z+&fx-8V6>4NJ*Mtq#y9ABrSW2V(U$P>B4VK+w1##y$tS$OfA}qP0GEZE~ zG@W}@`uZxn3O1t!VXIO|2oU`s5hRcmk?9nOJ9on_EeP8uceAs$NsB4$eOeH9wN6f5 zDm0KiaP1Eax3a_4+LRUgEAhGmTXqQZ_K~O-;-V0$*7vo7u&Yj3;e_)6EW4mX=}yIa zaBx^3G*UrpZOdb202VZpp{9Tkc5mgU5u0+ta4R=VF|Ig)pDxg3*PjDFAE8=y3W%yo zP!#4BoFMGJ6K0$sZ0REzikoq(>@ZlkhiyeDLxX_d?es4rZYt15n&u8K#_X1cwq**P zBAgpYVQ;6L#SCa}y550OO@5_bOv9RiGGAj&SbPvdHSZXL%)7qiDY0o}AhLqyCfftz zCP_c5_SZf|Z2&6_x5Y?n!$UF#-&;TQ`dnE<<~xRjwSMv?v>@(+8)ixnXhGP@jvjlUSw8pKPS`O4 z6k~gBOx(c!m9SHyYoyM7W3isFZb6we1x+g;)=vW6be zi1Xu}r2Bj2%R{@Kq5w*vaNK|o^evna`X+n3Z98#I1IH{->qFQrADa~+VM__Q3h}8K zm$4-*w+iRGzcD-`_YikM8&i2#Q9pi=^u|^F5?r^1H;*yGSK^9vhBE0e*=I5ZT6@zA zg8&m2!>+|yY&`cBPiwqX%K_ z#8Qlw# z4{0m56Y$XloV6~gy^1D>ncc5B+j^Wl7TUQ^Dl`-o@1aKEsd8~jwAGE}_G~PrtCZxgZvOe$7>kJ6H?}TxDo!o|? zSSUj9Vl~fog4S9|cWKOXY?LP8aev&_#Kaxevg)rfMk0@d^;@Qm*6WYaz2Qgb4t-R} zTElLzI%6bm+QEYg?CP&)K-{4h#v$M9!(7mkl#X1`L;7+-Ys;T>GXk%M*xx@F#EIZS z`Bg#{349gRG9Is*v^OuPOxRl7ie}*lbK{x@ATn`dYpYg`X^=>{C8MT1aYHNaT7*2@ z^XL+GF~~`>iuZJGt$&ESd_$&Us27@sPNiMrgZn5yxlXJkyq+@)vLGV5NN5b8BQ!j~ zTUrYqv@==XFD@A=BUFhdtmT&r7nxP^kkPxAXyU@sI-1NxXSXH-{@|~*R@WJcg|zm@ zz73orFfqz{<27;daHt2q$*9Zp^SkHGNqxx0G;pCK1Yzx*yM$22G3AN76`+vqHB^dQ z+HS&L&_L&j9A9CZ>qBr(9qfd-?+;pgA3~TL2|?6s*(a*e(Z@myZ!Ux&8OGTK5g2sB~KuFidRX%};Zy^+1j|B;`Fd-nob{g#cpTK-)EjZdV&XSq1&-Qeo+!NP!+D7rUHA28R_ivoC6V*z&Hl_0T2sua}{QHYot3N60 zbV3l^G}~1H8y;Cb2og=${blMjvWC08RzH$oG=%fq-PFc}RH{+5QPJ4cB|WHhZf5QE zcf~eT*@zngha{0m5EhiPFr;~Ai*t|-nx(I=p~TG$4-I8`Xw0OyCTt-C9s4Xd zh?|O-(rwHQomb#NjkAN5oj+6Xa5$_F(lJeH!=0BNHGC&A4A<@@My@5H`=IHIoPAt9 zgMzTxnkS7U13R^zxO4K3LuXQqS)P$3EKEyttuUfqqe3!Aq40?4(g|yb#t59KNX|9?vkaxnuyG8W%(6TG9Aqa)Q z-cF}L++-@QPJJ6PguwP2bhH*;80tY`1hb*)%8(X>ot8f5j;TwH6^0w`tw5_RF^kcD z=?aVJT z-|kJ9O3_^!AuMKm8RCn!=8UcT9?Qr}S6v+hEQXfGW?dbAOn#8|ryFCW!5`N^Pgh)5 z7Ashj-?SFQDRJt;s^>IH9zx`j_tbR4UgT}zSH+%IbWDx7a|zoHC~@aX4zW=m77_2( zWHrlc3<>*^q_yA@x2;D`wVEKG%o@g`M%TeM%~(v|R(yuAbvZ`ZSEjG~6@%?)J3r}E z8fB)j4}2q3L#*ZdtlILfIa*Gxu|Az#7iIPB=_|qpCfv2X3Nvw2fwu0gEf5zWa~FAV zp}z7%bwG#_>2T(J*W+WVja1OudwrZ$TX`ijs*7{NUJJ+wqE=H!2ckl+?U!@V)?*#^ zMgJ1i9M7M4=!07If7whG%Am-WM@xQjx7OnqS2RQsBT%ZmRkT?LNOQ}IUzdnCt{qff zk=BGoG}lZKLqYqQ4a6NQd1uR+Q!^t7>&(5h<$@HdrG~4MD$@h+lkn+1GIHr$4%D^h zR5=JcT=%71xSSDj$KLH)fz!J&yS;J{_EJE^N1%V(H$?1HIi|3UfMicPlc5x+S5m_M z+^xR;=1zH3JFcyuZRmbglh%far?*OJ@Jc1oSN+sQcGtVPS?X*b(AP z-Y*JNS|=}PcAn$g)9;=NnicpxWc_vIfi{?LDK^u4QB@EA&Z@ta zhNwy$R^_G=Ds09N6Ox_~gr!bg%s*RDL}s`$3BRwzEXm=X8ML-vX&Mdv9>P$C8a@y< z*)zOwNAJ;n$<64HZW@$T2dxDYGCJHU6@*=3f>wYr6Ldl~MF|U0u!QV`E9A9xiZ3xI zt4&oTs)Wr-OcPvyHT#H~xx;l7CKtZ@J*9wcnYW>;?Hu zKXuolFryD)5vr8}Q6xts5bPO5n6N7%wpPwX=iC-?v)>@8K9016^YKpptPhze{oN1l zt_?7P)>?&zC(yx_S4xQZjNOlv!=fZ%9N} zK?#d-qA<2b4dYd}TF)715QzJItFHP(ETpwJU7GPh@{X|flqamdkI#~mL3DM&EO)gE z6%TdUp}TwdeKmcy?Aw8Frt5dzT%HAl=ibuR1sL^Ov_Jc7Y^!EmM92otP}4gGaq>e| zZ{eSid$qvP1=iW5MRqYX;a*)e4z9W({A{2}z?#+_hHQyS_NmhEWdHsz=zOzcUMJg^<%Pb~b!P z*C#3#1C--xM9hanFW2H%){c+jv)Sc7T5C>=lcU$mg!mTvJd!=)KEHd%0cCu`UQ`sG zV`V+G5T#(L_XLWtm||G@SwAqE>}btR*o1xSu?K@(l!;oDOLt$&()NqYy6n-Gg?B@Y z5Y_Njss~|_NIS6}O&=me*zxk)R?!*`Yh`9JCMZC*<$_j%dO&c?|H)Zy`&te!`!mnV3pA;beM*$M#y0G@IZnZ zS6R`3Wl8+)j3&_uyRjQ1j?t-2y<@ojeR;F%`;yH1&@kD9*B(#T1zy&PYD@?jp1wsa zS)s}y{7j}n*j?p2Jz+s^vXQX!To1v^vau0$!tTaeXfxY#BW|{so(6lG#)MT;b|qXd zyC3>(rbAbu=>!XIA6N0M#vg@w_}7+=#9i)imtsrUtU&i6K1pFZ+azsOX17I-ZS^^k zz`9Hj8VxUbO>?)r(0VfK)`+`x-R#h<^T!9h9Z8#1(BROAx}LEoD&DWJ?RyC^GNlaj ze;%By23EW3EB{%r_2TFZA^WUF&CFD(h<2sNHLH5!4%hi{JT+?J$UGG4A=4zO>q`(?ZzJZ zTlV@a*dpJ9NA?od!t1C6p3-$LgOO>oG$!u;*2**j#D)Ju>u> z*h43x!981Qb+mfC{zGfi#6)aB4fRBN2;$m>kFYCF&>ZNKwKhsV280b;R%!5To28{) z2&hnzu(K?`NY-pelenSqjS@b?h(*&`>*FX9&9*`ouBX+g(pXpL5cM|n+qM(ewt~jN zetFC;n4#2bG~cY{{)r<+VX72Bcws8uA(q6=D%G}6xp6{R4N}eN`U+bo4~=j6O0q7< zPznQaDg#be$Xmjil=lanb$rKo;<|)Td3ll$gheP_yqNf=+9@Ht#+=vK^$g-}hdXUZ zs;3A$-GxaZvM|?go*S$#xypK52|JJWrWd>MK=$&D7suNT`M2ah^E#9PF`m{w zy*t_jl(2}=Gl8lkz+4C$Nub17W&#hc3PRW&^-puTr2}!dc5T$WnBYwxKv;ZqH=@p_GhhAF4RaJ;K!y4#k7GS(!wY2z6*}e8Mi8 z(Z#D2ewkbuPv4Fkv4>LQP;ZuJIic=q_Rf{K&Wy%}3=D6#r$XF$Bi6Uar;gSP&~oj* zT}ar4%x&^M-hSFPRfN4MHY4{C_u>wOk=nXPX)C+SzQ>pgHK@6~+FsY-LWQ$d$g^N_ z)=BjdB`mZt1U3X|LzM}eRp|SAN!Wptv>{pZj+aZKA}eth=%IEaq9v?xu^d&filQRa zP!e_+`4Kax;Uz5GxEAF+Z=3KE)mt zm+dO5v=(e05@$QNi5oV8`snTyccO-9$%PAnQO~%?}?;Ah1yP7#Mx0nf`1o)iL zb!2JoRu48!1-OT}12^R<`~izyZE%jyl5JgZiHejCDZKi&H=eL7!kDke&#f`gs0Nd; zAq-fLSr-@c|B4iZ%@*?Cck;g1xCM#s9O?(Nvzbu>PjNwjdUM}W`Zj0d`)$$Tyq-(y^xpOgE5+2>K zez`7H^0S&4P=cFHxSFi!2j0 z*zE4Y}85Oj^;P_y#n!~ zxHM7CyP*WUtJq#Zc)Xvd#Z@JAk&JEtZN`8=y|q?B-186+%<#v~FR_fD2h~gGa$Y)% z4e|0ag*pg5DyK@MWrXw+Xug|XAneo(<6~8+%V-1D>j?W78~?;j%WrCT$@?T=51dV~NU4|n+AT2%j+T3ckl1wfptc57!_ z)b#4+S;g_Yh#F5JY!fBKu~bGBfgxzMQEC{9iMze+u#J)s5=|FzZznd`qw0u3DZ*-_ z(h6bY-@Dkc$X$2PxRpm(H_Ljr*k_4-g&XWFjk@JQG+!8v4qFZE`qkBT#TE4xK;2AH zy}q!r)ftLwHnnL)UAQ5S8jOkiu`wj-Lc+rOYH;sHrR_XKsj3FWZLt~Rj_Mvq*ol4& zw_OufZffwTN0*j2Fa4kc9y$fPmyTpYJQ2GxSfy?CUbxyo!0Aqj+Wn1LQOMY{P z8&G}xtXR9KP6HdL;S!vNRX?6m2mGbP>floFmJ)mwF7AbCe-nct?1NP@`c*FjVT&lL zK07+GQ*maIxz_ZAwa^IIAOKF?AC~dh;R^dP`Ka_rYSt?9o@*h5G^p9VuhU(5|49&+ zQtd5jEGlMvl}Dx5*SD2os#}H=D;Jef39)k&*>xjySWibCBJLuDsoz1vp=KTgQ-j?d zpCXGv3p_&6jc)amxJ8~i_MJxQ;i&YsTo-IcT3SO0Nur@9wowQ8B8{swwEnPDjFb%Ziw`m|V!i`pf1d__8#3nA>oN#=nJggp>N z=~_*66SpZLN+h~x+h9(j1Q#KTc6B4%^-cd#?ZM;z(7&YhUD_{1P79xzs`;Dv9)*3U z4(o#?VclM1mNPq%k{7q3n7BuysC5n{?rc-X1K%UA`EMF&b;|=TdFktQFpoc55hrX3 zrXciQ{i+2o++Ev(b&sNK2t34%rKqBfqpWzu{eU$Z?1Cj>`?5#m<2^0a@%ysQlI{iw zI|#~0S=R+(;{G|ta4BQhyoL|dAqWg!xdZJ{To^+L3YKU$^R8J0afh3C#ulNR239J& z4pvO|bAD{N>w;m^9gsr}*N+JEipgGfhu)U>t@Ft0q3$0ciLh1%N3Q4?g*u*2r6=y( zc*oS4GkZTKEM!UjSTC<6>rumQQ#gy+-toPK4Hko@>iEd+@vRIZJ7NFq655_9y|kLj zeVNh*-`zbO*#mJG1K?3`AJAd2^AdUz1B6VqmR4}$Zm%J#;4MZr!%y5{98*c1cfwim z66x?%Ff#P*%0$KaE>$pTySNvgu)CJK=g5SG00Uz4db|7A9#^ZojR0mtRO1y|MvN;*diionG(0gt*j**; zSc02lf$n$Afq7>Z+$n8ergfD78r`!A!mfv1LbIsZ>g=ga7;d$V*?75$4%tW`}m7%0O6L=>+}Mq;|w@!^v@jlsCGW+QHd!l$V6CADPj=v#Cqz znfL0Fggiqc7IA%*tc~jXcU5~Z)t*C>_OUsgRUoAcq$f(vpOsQY5V8fhup`8fZE?d^!LumHn;%OKoR^*bu<41&T! zm#>$oX7V(sWTQR;+_A37B!sm&8@us&2M9~kaMNOgkyr54-WptJG_ryrG|uiJ?2d$9 zihERzuGK@_qj9>fN5*%1=tm=Kj3+8$zR~6K;-e5x+#@Y4878a+n*-n1=#qwb!bWpa z*8#^nt?=U73Skp7IjO;s7ToxkxJSzE!hl%DODmS^CE5S=i*t!m3TOy~S=c|1420r- zrnaeGO4vC!l?)|c=3FDg$e5~{>g|NJARjW&@oqsZ8W5NBEnNYyH(@9J5TRLq64%D| zDbpI|wak-ZPySx!-gQyT$i-1*n6NGqC@xMd?Bi%1yi8`|hWUu4>x&a;`vY$zEaY=( zpZA>FL0jS#8`HoU8&Cr>>`hOnxGk5v^E1N!J!fZjp!X8C5G0aCdb1Hb41Hh*=&!-H z6;~j{PB#sLxHM*`faeB5So7cwg9uLEmzjhuw!pxVwn9ZMO@pwzoPDsyoIuf3^4;NzwVV$rwy2GniPFypLzs}jihh~YBP(g8z z68lJ}Cu`NIK`51YMh6dgm6V|u-m!wxHi_d_TCorPizSO-Gj`hcfVf9muz2yr7J~O@ zDSluTlol2;NKf99GVGt;7G7VaR?u$?m$6`1AW{pNEx`RtT!2An*@0w{{q|W~2)tG= zrnnFJN^QZ#g%EC*NkB@7+2cPH*J`|0O=qKt+u4Z<&hU?ZW>gA9AqZQSvC|6fWS8K` zT-U;VC6lllOM3eGEGc2ct}flucRRdf9?KZ?YvK+#6`Nw#g)D&t{N@UQ`(nZxNrBxV zj@@DY%N`l-sAr&%*N-*eV>3}fLsrc}J9D~v_6Um^Y~vKC&rOZ6B+*UXY^XI5Q3E?+ zOUQk~dRDU&_QAyKZ0JVZjoQX@T}!l=?$~<$qW@@zOYC)XgLAU2Di5@V)5@}wRvOz* z!DSdE;-{SLgvRv7)if-njo$reST-M~DrD7?2JBPyI3)ziQa@Ic3fJ|HD-yYd^+KuI zkmWVw|5$b^*V2wTa&<4gn|`hU}(9Iy@dVA-1oxgAvHJYOSH@G zW!cD1aTgrxpJOIf(F>OKy9a$@p1kjZmNZn)j5`nnN9$Q|uu|PW z58iPXByrKRO{Oi+O7Sn6EBVFyGhv^k+1{OBmvs7)*8>svrF$I9l!mrDV_G6C*bT#0 zk}VS)gkAGH?tAabggxR57Y}o*{FShX3#aKjT0qG^!aQN$Q9^$&VW&f6XG2*$$D5(> z$+q7$7z^=)J$_46F&2f13*!>m4OVTYB!-CwGBrW1PhhhA;_);1S`GyS! zaio31P9yWeX617NwE$G5I4?7|!c+pD*ui9f9mK3Wujv_uwG0~id!kW>9)qPqLv(%Q zeg<2DcDnN1l}P9i+OzViiK>J>i;UW}sdfxEUt5yf5%CJcO^CIPWJp8c7Hy@LFnvaL z;#=N|DeU*M1m@Ys07VC03ONm)#?w~S6nDEOrzKkZumWwqCM%-C%k-r`Wsfah5M3N> zy_*j`C|;y6GSVRI<`nJb9D%{IZ^6r!HH=ofl7yQ=m#{9EwHys$ON!*hjlU7LC33T` zx3Bc~5_S~k8I*1a&v#|MpDiG4w_Ydrm<566a5}SKgH^jek2ifmBboO>`GIgaENH4Z zP}&%+>6GaI!W?*UH3z~rQTT~ET5}-oQA|kfK_AA#7rI_wT@_X$fI78hVH^buD5r3K z1bA(tzl7qJ2>9miY&tSwE$?M4RWiB=Fkq9gcH<}LBkY4}3Az>4MmF>VKEy4LNBkkz zg1y;u&4c2S_A6>6tT}mWgZtr(`A{P;ajWaWt#5$>BSt`o-QhYf?yUSdbv)+~@ASR% zJLNE@!H?UA*rAiR^81mLcSHgz6D1f0e zxN(+qCFR{=g|O#2r$VH5Vz|dOZl82TWo3?tsK&SvhpsQ@53K7ZH(_^bg~mVI3Mu#{ zVX<#%k7g0i$Cb`lI_E7k^B!yEI0{o-H}2KWPI;CpD%~F^x9Ppk9gH#@r7W+D=$b+) z?D3wLc_b#TQ$qD@rqY||#y{u85jOf~LflE*ATCHcraacbm1@GCM};nYOCEk{mG<2^eiK(ameOs_s6LA;C8?vaCWGZYZ$tx{hQX>I zR12}-sYl|`$wV3<?0)-UZ-t;GHN8?QsawbRk#tnuB~jiXVqH3C;s zmDT1-f4Vjo;--r*483U!+NBWx;Sq8%Vb>Cf2TH0MZj46DJuJG-zSqA$bP$u)C2#l_lZ!k&k5OemD*OCGo36j5POFWsDhEi-uP9D}LlHg|6#P@T^WDBY*%-|FCZIEfeK4dW3G#5G$#$P@!6|N5;S8v5YQLOg z!lut2@*X2>FYXi8Zk&eyo#C}GOxTAmkrDjO&Ff!$T(RVMHLSTmTUpa2bXMiZ<91kcW2=(bq_>bSbzsB3J40z<48uTvIy+C;-8r?X zN-eA#?(PdGxzc^SStgf)U`!>TG0`AT-W4eI}A(YawJmd;xutBC@3`@ z+sXIOE)Cs*W)&BkT8YaS$c81h@}i1x`|6aas|))cWOpbN(t`x`{!0V1``g`8f~pKf zjb(C8m)3}DR|V%PrwY8BTC(s!*v)L>vOE&yKnB7FQQ&pup5=s+1VzytO;%fOVNC!B zt7dGccGSm1=OV-%yP28+YCmh$#xSWC+!)n~fe84d?>DX5JjE^TVg^KwEOp^uG$HG| z1TjJ^byq&UPFU+$OvBUydSqqUyV^x@*iEz7gqf#hiW_n%M00@`8dvpL;7!B3UYCb* zyKx<{vuN9!?o?kRi0arPXALLR0pbZ}Sjr=@N>r)9;OxIKnDnZM3t=^;CAk z!iNG0Ll#Z@xT7zw2@B>koKS&n&ax19d;FlfUQNI-P^N`VY7RfRRQR6W+uIven;C(b&~ZQ~ZrI~F<$2*UE~6uk+dp{dwY>YC zGimsyk6nVJlwSuM+&r8f%T6WO@{YNEbaqrGcXGW0jt!8S$V}KQK=%~iU?Fbw+!FS| zP;wU0iMuiPuKll(x*p+;-r-%Z;?abibBu&sh|~+?ZkP5qVVJNFwO|D2oVm#phU(1s z@Y_1BQ{1MtUCL$3RE0>wHF3wK{*3cdMJM+X*IXjwJX`U^)aZb0!j73%am!y11Sf7Y zzPihg0oBq>UWwau7Gcf99o4E31YGmc)T^zP+mZ(b7kh9Np`N{DbEL>V21p8_Qt@o|#c9T}O*CeLxgx|4@JKhsE#OLV$`y(@Skg%{Y zGo%5>)e$yH_YxzjEED$6&b%*VUfsNcx8oFE)vkS9p|pYBa@zW5dWov7j}(O6Rl+#?dR_<{GUSYA z5f3t|fe&gd!p;l20pa63Ox%!6dwq>D`b11r&!af0zB5@qw4;TNzJI0gt=EL>QW{+i zX5O1#nG-(l0L2YT$QU2`U+>X`wW2Fy*KXWokGR7b%t!1IwrE#aiL_j*Z5W_?ia)xm z+}4mn*z)URe~t7Jcc_Joz9zh8en(hP_0~XYCoF7Io~*`+@NR|r5#xXmx+2xoL3!Py zY$Fw?72=A&mTAt$IvT<&{~gnWeWR31GB9B?z7O2>j=j}F2#aAic*?xje0wti6ZfZB z*LbPaMRDJxA_T+!U4N7o5&G#{$yjSbTS7l!O|O;$pW8BF(W79MHWsf^i2XC=&YCya zja3*$MDwM5M+4Ep#Cb#-!a}l3YoX#{`2w-rqn--kL)V&9!rHITHG20&s~6(NIYFB+ zLgJ-LhrU-l<-VA(mIu>XNiPqGc1IFMiThLdSvvEmU4mb^(gx?ooMXF-r@2A2TtCx7 z7D;Pd6bp3Eh?xTgZXh`B$>JgyZV=&%looeqh{5(U?4RBi>}5#$Ovdf=u8g7=fot@f<^c$+PF=ma9^pGNs3R_Y4QPq- zTk{u$4U<7O0>V-2^uxYe^+a4-Ffpg^9rI2*4e#|g%~q9q!e)+{+QL>?C+uilNjfI# z9F7D=>LKpKHN@d9!=Bn$j8tagWM{%-JC+9>~)1GI8Pb7*Ecv!U|D1RjgWXg%Gyw#fInK8ep0F zLrH5In{P1es=XRx>Z{e`D56>jDhc^VGwK6RaofqCLr6r7X@HEqzDlSnf~gJf+QlGv z5Y{q6xsv7Lqh7SI7CAx`ST0G2r>6)zOy#hU7&4|q3K5C0(MF1uKPeLsGKd={1|O+Z zOj1h>XSN{_ti}j~G*Z{DD69<=%_g2z2^uR5HV+xS7f;!$u|2|8jusJu`2bA!$%C-9 z9nm`Pc_Ts)*I9!0^Qk33N2c4(5@cXd-n^kR4kbjW@r3I_Oh8XXF%-6%hRCV$2s#VD zopgY>P6;a2PI#CY1z{a$db!cHFbeHkU%U`@cM^BAq9E>ZxjEdv)cRS864l#{@+>~g z-q!%aDQ(CKu!UehcDl9-;tsX&$SMe%lD1(LY6~GOs2vd(J=JczqpIu{-VebzoH+Yp`2V+@aILi%HWqPuz1YOlFFSdcA}jd|>$cMFfXU;1x_pCXS*;^~ZkhfUrfQ zYL9JiHkB#2H3@*Yrxo0toCXVX0&4>V~`Ce0QQB!(G3c>l=JtccEgJ zOL2Cc7wm~8tYz~^HzEt%_JC93W>aDo#!opVtnsovEo4)KZAcQvTi7&D@SaUOKw>8D zv$>>Uawo1$wJAZ7U)z9+HM!#8N@8yZh)IMkF3c{MQ<#7TxNy3*V&bNWoiQ_b;?gz< zn-W%F2V;P#mlGE~n|k|@AvYyb^+VXR#14%oGWAQ?m-13Lb~FFgDuP#+Q$%w5 zcXJ70?bq57sVDZ{RN<6BmnZIc*x%aSkgDSN_r-)Y_YCGV#IZXPs)>7)g4dcN?$9MN zhkohu1nzk0D>*u{i3$fd=HRhQ%EhzQa7s1OOmz|WNDJhA^l~P`S^)$}hg8j{c&bGa zwnPwBWI&u!KCDxS8*`ev=$i7p^!Ldp@p8T_U+Qr&^^WnedsEsnI?ug)O!+e{EGe(% zg{bD4p}1)<*DK+j#@wEJ6V`4_ynNW%ZkGS1ny`;%gGK8p)oz)m;OZC*l+T_hx)buu zy(z8>1W;+?i>||+NCumt<(`c1I$rLyY}J(AKu-U}igZI|GP@A7FMK_cv>RA3t(-ZY`U z8X*GWdiDMjNK`=_QY)@4pBy_NaThxaRE5aH zVOrk#xtD~n5XfEhsoY?=LxE0OrMzk7%uE9f1RZDXS3(H;d|8Vnia1nlnXu^MOn}=q zHtR^@X0>SOJ7Tgrd2}o+wU(^%oBUlO2w@N2NpRO6Rgq~wh`T+2(0Ud9Nb`vHMrwM( zLc6FOL$%Np03xYP0x3k%%nf$;Lr_{+mmheKwQ`d5i5p4N&TbOlRiv(HRPiFm*$NLb zM~HGsmY}%pN0lDE@y!GyY7pS)v4cpJ+eIs_yX5%+`f#oAo|BMHamVxes+o5!S22{OE~aZ%!?xe@3VyBpXRG!U z*NnOx!B})*$ZR8&DAO(wcdP~)eoCEoE}5DmE?Q6TG}D5T5}-)5s}@eEmV8_1TnAa3 z(mt3AQuSmE%P@|xy1iSZ5U#Lv{}-PM(%ufrE<}QR3||NQriBt}gbOnYxUnngrl!zT zf`t9ZxWBN|ZETzR&cv>w+f!Ji2>44`2vAcPP6e%Zau9d-yGvo3evm8)`%eGE5JsHY zU|SO!NUAYSkQJ|Oys+Df=?&>zD7NZq3F|B(q|HK?E# z5DSLM=VVGy(uaF$KUmm1mf;GfK=E&wzR(}%-)J5M3u@u~!=15K^GSuUR%O1^|5`w{ zupv#PF`Yt9ni>) zj89mbNwOQKjx-$z6ZXv!Lo=)3RBL1fmSfssP^h+atE1ViL}}~n#XTmlR*q8xh8M)O zN!RBp6~T*55Y?RfCGTV@@1TF_tXHv#^~^H@S_uJuEQwH~jnzMiI{4dh2Pke)!hB-U zGWm))!n$7Vg9U%%Cgp}?N2pad)8!B zGC&RGTd~S6rl<#-2MB99Vpa-?%vAPNdg6|KVqP-bH2ILO-6AepM+BI$>~AjyrI8ay zF1Dn}XYKdXED3fg?So~AF}ZGP;nJlc{YXifI>OE~OC3#Jcz1ioF2&s>d7%K-2gEh! z>MORp90)FKcNChvSr9gCGI^6Z!cGl*(RY=z3BZP`f3l~+NXoIw+>0&A!$B8lH(8%B>;crv7k86Q~IbAxmr~*G&aqUj$PG zs;dcuz7ckJW_goZ!wsJ#fXvEaAWc68_yx~522S?(U^gUM_2=pZX3;-Y73mKSAC)em9Mmyc3%>nD+kYc(zuqK@h;!a_qzCq1Kb zPuRB=z#3NxAS~M1@UlJ%2wztF+-A55+Z0;jsH@jz5|%E#Nwx+75puL`+;BHjr9Dsi ztM<6KvZhbZGEpPffn2(7u!L%R-4Mjo-^Y1_Wi-xkf<-Oood`SiMd3*_=aw*+DcNwRdn|8;n<$K> z%MwhqH^q-Nnz^KIGzW&uss8z3IopJt1*B97P2g^P*)1LgqGmMTS$XL0U3wU%^W&Uk zTCl0XCC?KN)_a{2j4~XRRY>*6OIIbq@@%>}I46Y-@j09xdoXcrJ!VX?rC5fH0da(N zbn%{G55a|9BJVt(upy2w-9DzT5RHi&{r2x6On|) z2KQnCRBkvuF$m(iz^4kx3?jHVS_RiVxrDWg9LKHTL)awa6Bm6vc7GqF5Kl%V6vS0gf7=bV>qGPE1*l=lorhnX$fq@0vx$eiZWaQ z2x|@;-2a&?6ZcOVRqMyj%Tp{mtS-K+It@vn`ZC2$No`%isX^r51wr(Ri<)|MOBPA}O- zB+V)p+5>Tovmq;{|J0SO26QvU^CXd3(v(|@yD_ZR|?0K2G> z`;bmpo8Yg3zLJcw0X$!iHf1JmaQ7tMLkfgPZE!q#>M{@$jG zsU7?j6XtbJ)$JFUMSZH_-$`n>ctFdMo>L18W8ghzZBvUN?w=SLF71r z5+agfkK$Tn2oEI}D>)4h#7#s0C_D_gsLFS+n$SosYD4fc4D^;*Tr8=sPFw`ODZyc2 z-la9|TMeItJsYV(*#Z;!di^4uzT}Yt;$mM=iTp};ANiY+nkMo>r(PJBm)&HZ{i*h3 zF+GuLVV2w@b-u>1!Pp=`-xpI0)jD({Kr|GXcH;&*^Uz8}F2W`w`oiop`yj5Zf4-w# z?TZjjRO6n*0iO^=FFWQ@Cu|67gS%omRN*7p4Yqimpe-oV>t<|W6G?<^hI-M|rihL0 z5caq}oCXQPKC`2KIVLd#Jg176&As%|#NEl9zAB`!g?=C1{+cminPVg}s)@ArO*M=b zN7D${Vq^=e#2x0z+s~V9P}X9Q;J?+ZPF?TgVot5uMW3c8+!)YM2wjlX{-Gj?Kp^ z74?7^qbx9deU%(;AD=5#pQT1;3of>U~Ko4{=~(>mC(hs%u| z0loIL}Lou7|5-&H!Op=mfmh+L;nqEnIo zdlq7;8B7d^(r$7r!b?B0uC?kR?)whx=jaJrUInMQKZNyKv;CR=Tb+;6zB|WSY_D=_ zunDp7X$bHa@?Ra@KxRzSmLhF6>qadMYPD(rs-qL*CT?cr7NaZ2(u|gqB{q%tki1P; zBd8YaKGar@Z|Rq<5cYFn94=1WObe~6pJX}0s-~jre$xO8>`VV0*6PU%e~628|KNo` zw33q7@038;=GX01kjBZT-jC5L7o(ao6V-?S%A1V1W5ESe-fN$*-&YOl@xvUC7k#{b z5e4ZN#ct!!626cB6!)}@TM$d!@jkRCIi9f4ZYc2|#E9F50<21g2GT%5yIUp=!j5Kk zqMeOwHOvYbZrGgp$T0_gB zHcR<+GeQC4FGHEVq7ANBDANSr$7|t8O|tMp8)<5(RjJV)l5Wu!T($6;3ykg7HS&`LtNjI$E7M9ARUj?ai>8 zburjMKqc(6xawB7T164}L!)YS%}bU+iHm0sXFK4kn+9TAb=6ri!nVEGA28(UldzGr zR;ZyZ6w-Kc4XK1pL$VI?Hb#07sWec6i&HMN@RmiWKB_KF+~eo`l&u(t>G#BaX?IWk ze_$VREuwZpLd}u%UBITa=94%IYMT-)b18{>? zDjuwRq8oB+P8psghX-H!_)<==+`LCEg@tCU8tW~5xBKdduE1M(<&?5z$W6i3(Sso^ zxuqKRD9$24svpDM9Q$Sq9(Y}L>c049>iLV5ifJgK4VL6L3Ts8X8PRitAZ#`-H4sH4 zQyO8EBN>RhT{5xgaFEg2hzf;Y8Z<7Qb;K#04RxxgW5?MDYukO^cQ&`j!lokL42q(8 zx0q^10Y!tsC}R0oN(vsg0^#bd?i@eQ6!@`b93ft{QN63hBGxxUIOdP1yf_ z0qL{86z?d$5Aw!uwRB>+4B&r4K(78I4 z4gT4kwnjwU?W9BH&LSvb5ek>ygCOlaW`IrDGQMpi(#$>Y{0nLNI8E4x#ciunvk~Gh zYiwajoyN$;k(TH3i5Xct(y5PoCCSYShRfeH2q&#Xz>nDjVV})O+{>&w7H%p5!p<$s zW=d1q!z-SnrQq>}h7*OUQLSx+RYSwb`d{Yza~ zsIdU`0h~vVdbtU^GkQ=6tJZ?P!FeT~upf#C+5>U=78Y~Cy^Eg@TnYQ;-s#r0i3-N> zWZ(6Nu!^#wP%CW5KoCjQ3=1Wq`W`$1&@$h%EVQl0|CAOw*kO4qBolTxD;47ZFtj&B z6ZTPG#SuQ_4QVL%d&9(R-DK;*nnh*3txK)sl#Wvg4|CaoWWqX+ZlxGKJsNr&1 z3>>#}-#tF|YRWs`0dZ_8#I@C(J-UVS$uclui&wW^Wc-%DQtxZ&i96g3IpACLJ{blP z76PUFG$^FG=+dbPTMA)5_SIx)4O?gR31Qdz5}TA@ob4p*SSG60>-P*bm;7g3-zJ^K zbP4B#J?1)>y{2d41{Rv4N@5^+L;FjoCM+`10oSrIN)62JXh;z zbYx2{_R{V7W!gl2zf7I&mSK@>Gy*T5iEPr&zeb}N2YyW0J&MIBw3INW1{P$nN^BU8 zE)0nQ&swSWK-dQf?NiFl>>-=k7PqIkDDdo`XaVeT@bhq5Ll$Ar974wwGs_@ssnJ`Z z&N-`=VX%r=LW~{-#GdR$nNHkcn6CO#pWn_BgoVwips@hAkG;Klj%LL(SQ4a0e`o!%dVBBt8_kg%VEzBstGkfW(Cxx(SJ};Ie@ecBV=$Jb6l0Kvmw*0AEwG=J1 z*wyiWT3gV3|4rGvzDa;7wxA(z%N9ah4Efeh*JdD&?FPSD&9Y+#Y5}LVz9yvM@z zqLsFn(h8+Tvu`E^=P1M-PX^6K3R#?ivk}*{n`VV>?oTRVZE#>4ge~k-vB4O^>Do4k zyHPjB2$B14YYbruFZ1GH5xr%(X#t9ho*icbFqG_1ChWlgp_WKV%E$NNUVaMx(haI5 z^-pH}YLs8GOL0rm(AwhRK)6W+goPCqwpEnC$f+;4umQ}P8fK6I%Y+@JeNXm*D;sXu z&W0?Uu#Npw_&6Y5s9#uCy?IwAY6$iy?u*yz<#AQ6{S8L{yZ%-_&TzSn$@ki<2x;R5 zWB0&yF)3~0YDb0%IJjSG;?R#C1_Pe9lWTGp(-swpD*DxigoW`LV+-ub*LHhRJ zLNTa=&1e%1?S!>o*OA()m}uCfnYbb9x@r4K%pUSg*ah9%PdF>=dEw};zPU@%I*%~$ zcbB_G0djGgvAiw35f?kFFdgt^T-f_mM*6ygNBMUD7`4T_Tjf+AC2YB+a6gwzW z{}1e-Et;xzpc9XBd$j{`5;ykyoE!qZ3#Yi@nqt;}8e z{qL84^VdC+vQg@_%Bd596gI?;r?P7r(kwyTlrlB<5Vg%8(>rvAQ<4i|tNeE&3}EPt z^LuS?7W)Z%R+VdKr;0M%Ng9zZ2#yQri0_xq4Rd}JaASDc|1M3H2gRs*qQs_BxXyV2x?IqcJwL;4EuLAzk{D+TsBf>)! zMlgbfl*^;-xN;hk{-A~?k3ybqf32~N(d~x zWH3~|2>w<354L6#DmNRIJi;1BcJzoXxHVx}qdPY|XRCT5VapP2n?wTj=mu_Fj<5;) zpkA6WOWb5~UQ9)pTuhefcj;dED4}+w)LPri>V;x8ml$W&P@tY_1xOr}_JJ0fx~rv{ zux>Q=E^$qDXHH$sM0%$g`cYP=7>r)}mWRM79*QU*EA}PRr7QBk>);$8M8JR@g?hMs>y*-NUETM^Zd0$XJ!nz= zU+OixzZt$8mf%M^JROL34OSEOMuq1U}>!ukNj!wEk+)!^=VYU}zZ*psJB`ogFV(e_-Jj~66 z4I{JCfa(xhw=A)ln~6K5_e7`6?}RM`CARQVTliHe#ny}i+`ko!16>o%vd?|Czi6z!T(qJE<4)7iU6Fa7SDAAB?FrXf$4Xt6exE>@HQ{wIwKt z!h|hm0FG$^i0c*+P8cO_tnIXmm09WR{w{SeN7#(n>lX>ZFMYcU8Yo5Bdc9JdmareG zzZi!Nc0%mF^HoL-R+%z>77?2Xd5{4JTiX$h^B!yE#0pT^6E~Ej&#gdIW|a9rEbhwh zhn81IVA%p63JlkUQ2o>GNmT=fst0T#UsJWi{QAfy2)kR@ZQ2BJ(|o4J{KzH?0lqS~f!*Ol&M(u_` zwwV-BDbjHz?jxj{=>|^m!c@fTubReBr(7tk1#LTeE-_(uqBl!xv^;c3KTx#*V{V!j zc+-$jsim|J2dX1I5%=j5xW4SG>@U-=$dqDjT=2(Sta>eEs?98SnN!+_S}>{`Pb93R zhm2y2$a{&JuuWsqO^(^KR)*L=y(#EBP=3S0h;Ui8Y*Ejj?=ANiHZ}&-v<;btu{s{H8ijW<(sCQG@g-5@&sOq*+ zhU~XYR{vXzn#r1>rq?z5BZxcPF%i8?`Lmp40j(rvmDzj4+G4EE^fjXP2Hsbi*N%vP zQ`*v4D+;c}AId$mkOf<{mWk^s+*SgId&_di`)RAh-QE#$>#ym&cC%@puom)4m&29N z&qvi@ljxKWASKfWd7;f6B1wHS4Okb<2UtN$7&+AH<4kh+B(h}A>Vrs_Gqiz_i z4u5tM%iYa+T|wBhX=23=<)jrP;@yOO)K~bb{L`5pVRy^0jM{!;hp?bI1ij!H2v{Y2 zz<5!CYBT+BghfY2Pi;0eodAVVThOw!LRe&bQ#)?#D}V|AP3kA?yaL$hM%!KDUb;6u zdq6iONvCkipgdCI|-#!)e1PrS0Q|w4%k{Mz4E935!9L zRV=+jF7`f@I93TYSk+Rr9{p|J6z)iZHF2SZPgudbW4_D^7<(zMd!}4-?Csvw79#Jh ze){5(uw~JFxZ!%&Oxxqk_f_C@pb#U2Fmd%k zVqJZ^A1TyI=ea=;*39H15rVjpH0@s?$Ox$Zf2ZT<_^xCsDFO;p#B@EaSg1J6+S@7a zMie~JkKwK#T`Kc*S}I-o5K|eS>(;8kZZo~2wBaN2!vT7@dvZ!)C)d=NvwMk~z6-aA z;GN;_{^n+a0;+Nz6&5bR>1ZTQ9fS*Fj8%|0H;yG2gd#m^&4jqygH*+EgLB25RL}Sm zgtVhpf|CM=(wYDcmZBWD=WvCnxPL?0M@q6*ZFm?7@X99a^By<4#&E?48xbrT)r&hz zzUk%g*1eGtrS0j=D84OeIiw)0RcYt3_esPJtz?C|Ra)$Zi8~tcfJ|O5^{Lp$YGg#z z+sTEROZOwZ)V9#Mjrj=}ofVi8VhIcLEWFWLpBo)vGs;4eM5E}zGF=jOqbLXBoHCAY zhQ;|hHHjo{zr3*=un$yU zS}xfoI2x>3n6S#aJ=&>?h!6pBa!S;2O@_Mv+qG<5d&V`# zfi_}j8X#$xATQ*cWz?sO6PtuEn=^eX*s1)3-`6{!5@|f;%<`;+i`!$j65* z4}v>k-SCLv%Un44enb0hYfU*%*kiI|fNK>+Tn5XmW{()!p-3Ng1HbgU-ui-K;_7=; zz97lW=`QT+HMaN^EW*QbBn_}4sVq?1c_bgwS1JJXl!ctkD-+gke2YHC7WxQ# z68+u#$TRlDD+#OLmJ!CqwcxAIzt9dtCak$`Yl4=icTA5yO59NO9QbOJpj9iv4q=V6 zY9-z;T`OdK=)_xv*aI@%hO2i}+SvnjfKN_gqU6%auWfT+R4zd}s5#G_+ILKEjI-FqbExovm*vxrTdr)Hzp~gZ<<(9CI zlE65E5_e|?{u!bjWp?yk7 zN})x0pFs#4*hOF8aB1RhaCV|7!(HzuKzPTi8(v>^KY{vl_9h2)e&W7f!lV8tTY4o# zmOP;vyY#6t{ppKpGTK-$np!0iwnPGD4c-z?Pc)Ftf|T?t=mRnC3|_-kcUs%0xb4i- zG-cmCg2fJ+Cv50;IIU7_S5U+);gMP>+Ak5mr|N}o)##UKu9uiZDF>BPC0+g@D$Zk< z0)^g}L=!yi`$AaG@(Yt{VbhlfE?n8ovzc8jT$w$v2;R3sY26Tkoda)+R(P?sA`%j| z*N?I;8h;co2)hfRI;ectqf6JwU-)E+nvR4E!oE3p42EH_s-!bl(-_t#2MhrT>nJ1F zJCyNaqf8BhxX%lYY{rkUwS0I~)~P;PTO#h;b3w05?BLQ|pj#-2i-57Qiy}mh!6{+e zUOb#mcwR2-kxOZdJ!w6KBUdSuC@g^u9oi(9xWj1pNIit@hJ@AWU;2PB8U@>Xa{~rT zmw^^6{D;#`;fWhJh83MkV|}0&0`khv3U1y~0dX@eWR!0>o^nmxrLXI_p*s1RKjMy) z@FV_+YcrY|fe4@anK;??D4hL03AdHDEBRDMpi_*K${iX{negR3n-)RbjqJ1O5AbNi zT_<6EpM<=IQ>vItpEoFjFs*5NmnQ5_mV^haP+VhU5yiFqMJyU1PS<$uvqN~4SkW3aB{FybzVqN6R@ z5}BO;f}@X_1EtNDd!CyEVV^_P&?WX<{g|lm>o|q4LBN-8^}arl-yVXUz*2J)*2M&E z!OHPR_H3}44d2M)oVXcI<+T<*^L*(QFE%3*mQ30w>(T<7r+mV`H~XsNE2XPG>rGhf z-+(#TKY{Ra3PM#zxLbOOcd~~{s6n8ejG?r#2QliWxRTM=kJ6)cKfM8 z8*G~l0?jU9lY$v-ge|VmdyKY6mPc5$4ZF=^%VvpSA%eJJ8265!IWGhC_D_}ybWJ8! z6453UVNmHKC}A-6*p#UQ6u}4aKaUfY9D`K{5Bxv3GQ!q&L^X+({p6OQPd!U?kU<|R z#4_ij5yOlHN6`}Q=s+dZLEwX;Ad3#f4eqdG6q6YN!bb1qJqz>D>q4QRcMuoudQ5o? z=GEy5d%l511&tii>xo;(fzqjbp0AATses~su1wIO7hyw{ z5coAyG256jY`B+n<8zbyhP#;Q6XsF%fd+hPx+MLC;=k|9eACxTN)d0%0;Ko}NrM@o za)R-M(<+4)d_vQDHIulu(*m*4#3;=qVF2}tI@lL==zFbJXZ@VC7X1ydh@82;f|bAO zQQsE|yEA)5jRv>uou9C1d+4@VeHO5rds|pEyXpB^CSz@;{xAw;(rqbO}RLqx@S z8CGklj5oHHY_6ObpEwGnhEpkH2#Zi(xMgwE6Rc({z{^oRVJ(mMwBEMVa8iG3*XSy< z4p!_K;>`%Y!Pd+YckPdE%jMOLR;u}FJ)&k5zcH&v+#@Y487Axj z(PC#@U=IveJ0dIwj8>8F#0XlrwNjmxus_>_H_12hS!0SSr2idh z**w=-o^++KwqUxpQC*eZNxL2?t@_dwwyh|_-u~Q^&515DGCEgxc$X2>|&oS{y5;ke~GD-qb36M@zB8duOQ`*-7yf1Hgo&zw@t&KxLFPyTZX!1u!5Fl;>O6Ib6k1Pr&X*X zAnY;Q^ZZWSqp1beLX80R2(KL~Zx@lLNs0U0Z~x!_@E`uezy0l>{`O!0^OyhpFaP{+ zfBW)pfBQfFp%bPkAM8z|NP}Y{g;3H+yDAc|Ifetx4-?T zfBmO_{dT0mSEHj z-ry`6Qp4JMbu(o()DIjbsH#KPDKwJ(7CMjX?%xvBOx6rFy{>+BlDNaSH{%Z>uv)E* z=xNnuJtb_J22pc*IFvvbEzLVSup%yqf-7A}-)ouT4g-0_Ri&B`@vnEQ2D@Ju3#?KO zy}7=tQP*w}wkTH}sQyWA^jF@eA4_M2htNWzibe<%S8v>u<&IeG8Y%QqmZe>!QPk*N zmwt4kJdUa?VF|^5!M5I!L=lSnZNvl0AnAKLY`S$_^-tI)RLn(@FsJ%2ObwVI?wKuM>QGJ z5Wc;2sURh&=)b`ylAtp9AU3592=AP_(k{Sc0U-+<*>7j4p<$e6s4k<2TNpItxmMBe z@E@~?5-gBnd~(1Kbb-x?GPGn87N&8F7}|$nL~#=o5T`L<;`(ueIOLu)HTmBQL0HIl z98$VCcI%O_)thgpbPaeZyx+P@z|5z#P^*H(gH2kkmoTJ$=~l^i{nv1X_80@S|Brr~ zqCWQEW7JIk&Vz}XUOn|&bLifK30tOyKjy*24Rcn`inSxB9&E5jRlcTMYuWk5Edycg zPj>V)1-mdl8)1kNT1^C!?6e9(X%ChFZdIESx}^Z3!oXhoQj$xj4#a!!1>Q>+`0!Wz zXPtkEi#MKTUS(+eM?}Rf8EW=h=T*`*|JyUvOzJUedi4|krLZpBDY)$=h7A|%LebS{ zfjYA#_pyj0Za*L2TaiMRW>nwV(MPS;dF9Gjad!y3lO)k0sank%e)wVJi0Tt}C`$hMLZ`n?f}U zQMNWFWwWqSMhF^#B-&BAF4+ZN4X4VhRU*NiKjpdwHV%F%tl8FAJ-qalulSnc?Y|Lu*f2g1! z4rZ>3=js+Ay97r+h35vDhNqb~-@hd)m|R`me%R6v_gs|5#gWyd+z^5*A&`5^oit_MaLq>fmWB192bD)rBZo z6;9YPzpaKh6=SmoG1zv(VKQMRPGN5Xed*S-ZmNu^aGY7}kcj)M4A-}+^%iyLli?35 z_ij;dhi)7{`|S)hh=kJ&HNCDGXj59t^Wmtb{mwp$xwKAPO`Nc;EpHmpU5Yv%(vC=Z zO4wkkCW;-Mv`k!AO1Jh4+@gwGmRlcv*m8Rhh`a5(RHy5_28O16!p4d{T#1NsFp?l{ zriMZ-;)KZ4<#YY4A9m`zeia2357zBFZZKlj_yG^5tcLo5qXaectL(Rl2PdeRtQl&0 zUG-q%2A2(|!GniZTr&k>?Zy*l^5aoDk)$2MhB3lW9%u72BPQx_1jZl;^ln;zrlaBgoy)tbOA{jtKjSzKaI$;=*9n zvH~HE0B2e!?t|h(CqU6lY`VK+hcNDvj=8}sf@}^SD664<;3z?z1dt{qOhQM3n#r2A zlwSAu;zP`yZ?2$rHzF8fB%(v+yY^Q(BJ5M&%|i!ahf+LqVB*FI_7fBzB{R822MQa^ zn_rig86J`Qv;raQ{u2R>3kPZLQ=;a7ULs^}?e?n$)JYiGXz4`OVaXBx(D*_a-m36s zuZ8Du$*cmQxLo$nr}k*WL$57=xGNCCLZIVfpxXpjn@@0u0-dx<+;s9bk0To;2w}m{ z(=b*$&#kzG{gWb?`jZ+}od3Y{M=v}EpmRMXc>Ff;G&SB!=Tt7$4IVt&e*%D72>!c! zn)~?(HIE^^4$e?BS+kbX>!b*wv>{?-ry(}fS;}h0h!SAdt?Svm_}j)SP?XlKu+X=P zE$gWrZ8l2WdFCy+zMs;T4vFxGqMl}iMBLBJTvlZg)^$_~4yT))w^&Ksuu;03d1$Qm z(uGNQ-Rl?8&F!>OD%>_lRGfcc+eVZ_PBfDQ;r4&U~B1XI^C6fs=6orA2vbmRn$3 zDa@UVc4qAncRZhP=(VC;Hx1^xt#rQ|Cn;{}nOc?hz41gjHILP2{%?=f*H8wNqpuS8 zNp;+}e>X$a(Cow0+lLa=%)7RH)7inF1#{0ZaAf)oe=!3^<(0mtD&U(G#L{WIreqw23s8$-p}R8AUqiD zW-d0|B=-f#{nIJxV?RDd%>?fJn5gO1{n$HwGez$nSBRBW0?-KS&1 zzBBZP7MzE8CqvunY3}cj-I&tSn^{jc4Y0#|A(XIhE5T=Eq6Pzd=_>)hs)*mzC2mjN zuBr+9Ll(OqJ1vqgWeqCWMGd#%)J-*Ke-6J{%AFsHp-|YN`|Meh8=32j7Gb$@#fGdl zAI&LQ8KG#IR+&DA972f11hu2(u+XGs2yxM& zmBPuh3>ywt?BHyAjZR)9(GXVG;Ry?B@M~LAZ!QSjJR)xT$T)P~Z)(k#eo7N*_;y~Y zs#QhqpT9e=*G3F9Sx5*9#OdFi_wUXt0dc&l#%L*F+hW3W9a@*6J#aguT=`aj z`2FuX3#K3IeenIRya1sRL%sA!A(VEwN>X{q4a7)mn(3j0-mws)HJAsMm3^@H+4eXnV_O9Z$-1!=JQ>ar3x)W__~Cjo<~2J;cCAnso~ zlD}yb?`T1*{ybC=Rmb--M!<@h@CTdd_Nt0SwWIvu^B}~{>Ta`-!=ou`*3#B*$Ecaq z-I#-@>DA9x%p|@Mw(yBC`)1n392Ifhlrz(AjOIyjcLBADrNn*cyjd8Ps6tr$y@Z*j z-TmxN?P(q{+@Cs->q~6DyyU&Hl=r3IzIxYd>wYhyX106&+wFx3>Xv_M)RFFX*{S@t ziJD2>`K&dPpxTIiel*K@gnhSEhR@1B(k*$C$Y4L=vgSI(-7P=R_kqjWFrKha%dW;{ zx%x-gOn^5OPTcusg3^N8l!nJ>t-onJxpXYAIacT33^qOzq6V+_`sA@oqGkra`&;L3 zMD6~fvL@Z#`fZAu$vSaZ(>PJ*Zfbv>Ijq!8+7($aC2X;-``2;lzFvS5&H0S;Mv^s; zwN@$b+-mnc*1Bo1hcAqU5=)oqu{KH~?2jyK3h^V4eQ8Df(q7_QjQ6^iTp>H!EUUv5j&k;;a{bLgdIk(lfF-jn(1t) zIV?7Nd51N#rm!Dy*aX!~e}1I;izPz$o5{L!wE%Vq*>6P6Bs_Llb4uc7u6ydRV(==8 z7!F}SxU?lXov_#oWo~LmpE6o=%UViUCG3x;?NQvn*wWU#D89bdK`UOY{6m+v{+tN* z+z;F?CmO@UITgfdXXqLTerOywEtGOE32!zZ`O@;Mo1>-<5XBy^Ur2y7VHzEH`;b5s zro4DM^;*egI-x4h7E;{prLC>@3A-tV2qd_}s-hZ(!EQ-`IPL5+8;)#hVZMHWj}&4f z%f**B%W@XQ4H@lCs~~Jui}dpo`XDZ?W0RJ7`-C-H{e)Gtuzl2c>Knw}(83~%Xr+L{ zMNNaaUC5{v*AufKDom^i8FN;=dU`qtySHU^FnsQelCW+xeHyV6no02OR)dPE>^SGv6O=qcYxWY*lM={?0VHZ&|Wp!Vl2cx zszqCjtX?4QaQadujYDXC*OI)%MgGxGI^6!Q?tgnLQE?t94yQ|NHE$v89>sE_Zdpn7 zuXGh|{lp5{4b()Q8Fh>^w9?oOrJb8ku)1nUDtu}Wgx!oG?jf$JIT&s&rjyhpN)yFZ zn(NV3AL{?2`u?IjA-`ZDCY{2K{8O1H!IRP+`9o$84b_A-#*K#5kkDb;4WfeGQ5~7E z4<}bf#1VHH?sDSF8%9<77hiEK_DI;u+HzTe(8)1t-Guwf}hTS`K zab_Ns?8OL;xWkBB^<{xij}}Rdu;uZw%u98LqP~CU%O9FGOOfV+ zcFMBBK62A61dh&vyg9UBC3t!`BM zV%&x!lyN?{wICf0{GPDTOK|^#JRZ%NxI>qi`M($lim%o{#qkLXaZ}cKkFgePqYog2 zE$Yj&^pWpM<><#zk89c_$Wz!XM?)n8u5Y&sB-c~I21_`$R9BrS$HWaR)L1{{`WAOU zGGXD8L#|^h^ywN0LMw#Djl+zxjssF@Ng$^66F1BtzN1~I+rW5c8Tia{yiU*iy)q`O zI@71Vv_#Y>L=wi7rWo4t-`+(H!r;`!ne5Nuw`|ca`%N5;!n%1;MJsc+s%)5L$@d6k zIv`uy2ytm|VtxW_xdPF)jIXg0Y;9%jtExp3!j?qvMi4{uh%^ms(ssQ_1km=@eV_Xn z{oN!u)jhTFu+n!eV^ATz64NHC>Y$kVOUZw!E#OlF!!^C47&6$L684SUZ5pK&8LS#4 zdi05KPS_G?VezV?H^Vt$)7;@qA{~uO^Mk28;tt*H#9Rl;RV8$xFBy$z4mb12ewCP`xa%uq*dn7_NGamxEtg26RR-X zHh`yQ@l8m@gXVg05C1g0TTH=`kWE;Ne!&Eu1q|Z0HLISmBivVlRk1g9BlT8NdaA3ta&j^suVFxqFqH8VD<)8Rt3ckjfc}#mf=LJn1!f82YAFyjX~`_ize7Hc>Ssvs?Tm6m#FXqi~W!`*i}tIc974+h#9_%a9i5tQMA$vq#uDXAA7k>RQ-za)I}p1PkIW zi_67AWXPGswe+C!#W;}77SCoE2n+2ZBjngwy^YS>E)w*gD6AS{GTS!-Q+ zVHU9j0qh_q)x2}xz$1JBb6v7D_zRLOT_-$v80NAECJq=Ap`7kQOx!j7h< zL*#E5?<4+8--o9aB5|!!M6DfcBjsE*1?}~JC2Scj9MB!@wV|1?Mw%N6khz}iThI~B z#D%&8-KAbs@DMA^Kn64ub~lPuw$(nQHXDt^4fl;ujwL2fGf{gwWkjG?KJskB?kb^S z+!N=hj!8W*W9E@n>fpDqss(V_X>!+*lr}>QqtFcdXSW31+AHt1l-`#2+3H@gZl;(@ z_z5kc=Y`UOQgh1GjXT0SudcR3*aMn3;yPi!=lEZ%&FgmwS-;>ZlD7R z-6kxDSvLK%8LW~jgs@{*pN89k0~2-_|DQQ9aYyku>7oS7Wzr+=a5Y)A(3IP9`uas| z_@zNh2U_Kg)F|)nSWZ-&2a3a~1@yHw68HVVnRW|-QivjK@7U5gb=Ts5yeByLztcFL z73+U!FyGJUs?p-;9Gr&JkqMKtjakaEi(4qZ+b8VMf1N#0=3o!O#l=qyR$HugH;nt$ z;MysHB(D?qrw9vB!*3cAE_Lz}^ECwRhXuXTB0>licG_CSGc9CR(F6d(!WPalJ3~cp zM+xjOyd;!AtH@i04Kb1|V&V!lmC1T!pC-7t(|hx^qr@!_i>ShElc$d$wXLn+h`M$4 z09yUJ=_ygWzsQBVzjYE3Ro%R4Z*ZDz=uCbiuK7y|s;yDRQj5`SWGlqo4Y~97@mCRy zu;ub)$ugd0fJYBtnQ7|ZCGlueqs|UjzbI~*&!X0>ag?Xfcxi!6&opkZiZ~s5Cr&DN z=p%C7>lcV>#`j{*yZ%8AyC7X{FUVd_6-L4{VY6P^jqmDqw9T`L(tdP4$ioyj7HT99 z{TRZQ@XU*AD}+6X(kXeZqKJEx)YZyj5V>@n?WL2imrR}zw=BHHN=gL2YeV|6ayg}JHC8hOxWtuYKT(5##Z$55FPA}glpm+dGK0O z#629XOQOTa-^$mNG2f<<{7wo)#kn!(yj=hC*DcGp=%W@MZkZghN8F97Nd>K})FW_q z=^MkpYMoeOw;NI3B=T~dNqy;N+(%!Dp|n=S#H!`?ojP#m=|};nq=>sQa}z9Z);?iB zF(r6sA!)vag&)kM5a0M-TEIpIOnfG$@w(*Cm+(w^?KL^bY{51%#g@*&ztNU@bX`GVsT+-tpy%IKKS3kug3m)nP$`s->{#nrK zc7zlrGoIVu_MDK?8mECDS3M!bB;I07R5Bf`XbPf)n(2s4`jX*}V#;2(Ti+upSa>Nk zmKw1#1rzVqpv7@xplsDIIw7nTML2qHTP67rH>k96MxSoL&rsooGcT_4Y(9lnBKFi2 z8VjPd)iykKQWn=tA?lnJLxg=>rQT183QMqme$$KKs2c+yB)G;+3F```)?6Ohgu!ZH zAA4}(vVq>5G3WXUF%RpokZMc!#ny`4Ytp_kd)MoUu)EtfJl{3{_N!Ec^-GrZ^5FX6 zbn5QJJsR~Hw*yBcZ06<-yZN%wAe0dHGgVl1cfzi-^u|<}MGWH3B8S)}Dk8DySbTj` z+qiT`@k=)>m0^^d$+UogqriJPgi^0lP+?ucsoG& z1Vh+r9A`Vn-TuKgHW2s7(X!ysyl{}P)i^pM`uwYBVK25cci5#&U)@EMd`DOd_p;WhrEo-H8jmhb%G#YU%HEiErQD|0j8zu~vuMc~(#z##- zSOoGV#VJ2Ywl~<$N_HVc9ioGrvX|-rL;2Sw-u|WwQ&{uq-njS0CaJ_7=iVniOju(p zxbVP)qzkm2BySV4Mcl#MOG32p{`yrm6QhhTpXJk~4Zj7AsPO6F!{PM1C*M^6 zzQUrkFtNt5z1wG_?HM*1W44o=u9vD3NLgixY# zox_dYx(5a%8bk(_>b@2u?2ixRtfY4w{Jxmt8e2=6@8u7>eZ+zmsCdtmMAXCh-@p-HEN1<`m!&&Wt`>>@y@?AoY+#ydM-9$$K-Btbo*W<$H6wsCBm;0Y|+O)%WM3Lmut;-KtCKo?9L$$Nfbr9%R0?YjY)2!Wr%Q)zTris7jJ6<@ z(r#z+t#XgB#S(arwepka^p^?_RpZg0u5_!>!d$qJ41d>66A}oh1moY1K57Z(w*$}A zM9^evyQ5l>Nvrw$W20)q{$xvMuS+8NOX<7pYc4MR_A&le3MdS;4^J!0)WYc?)Maot z1}>aA3k$R_$(DKpEMvW3oF35ETAd+YctbjNVbemJe5;l;(TZ3{qZX%xK$-3?l})3{ zupXV(Wfay@x+QWPJrdhsRVWMQ=8%C)<6y=rVc)FhZjx))2zyRUg-A&?+~esmbnqpw zZIzi9VZ6|)Z(rD%4hvyzb9R){9$99_ZFOAKV}u38XXEKfJ=VfH@8vyaNGC2#+#k6A z5bVN{FFnL59?uNE9s;l|SW?=4uFM8oV(nVbpQI+@S}mFped@%7Z7k%LG?>QEPMXfw zetBsmzkaPtR9O|BY&@VEFy8s9b>sC-h%ftzsU|Eu?RoH)rWm!w9S$GRT(C%#qdGgzXdmQ8d{G8e8O&qy^Wl%u0q&%YP{DkQsg)Bp0IcW z;=sx8{s-?arx+lykgvZH_A`UCoU-bD-qFE~`B}a3?m>weopn%JyKysfORm=pn(XEk z_6d73A>qbmDrc9m<@sFVB59+Gq0r%eQwNz%~JSN3Y|Z|XKOuq^E`wt zNq-WMDeXhfMtUOd#>#KTdm50P7ItVSnT}v>E1Z77ax<#M_o#%o<80&CgdMo|gNht} zP27QhpUpJVu?d^;jJYN}2lfv-30`JMwTzh)EXB6L!n{HDy>fX|9MUpOm5(;dT8-4t z_n=YYc`e@wJK!|;I18i=Q#C(FQ>cyQV3wbUHG2)$ly=##yM*4jZoDLwIpyqoAdRc} zIqi@?bEn)kH!5MfUb0CI7EOH!B`n;mP@$JExt4Bg0|Sx?o0eA`(^)H(>xDjuJ4?|E zj3m7ic08z7Kf@~Y^-CQ>p+KFvu))H6NkdSYosJSs*m^?TEQVz+-Sd7str4IuP25;| zn<=#&8R9l6nXuN{Cfx~DVsh$OAIN9gl^B7)xl$jG-(4EE@udE}oxiy!EuIw@(XAL0 zH0I`AH#tu0&z@WAb|Xy=qIUIUny0WzSac+H;xTg<&U?)F4$Pp{LT%@kEK3%fW&ppY zxLFi??j?lPu1EjQlDob+Cteo_ms7%GRMPwR12fR#(O^}IPgnuiA#4+fmuX#97Gk>D zjc`lY=k#QHBJ4ZUAU(B&oy~RLJ`@O_dN^^9R%4dj64vSgm{}kMzc~+2iYa(_NeEq0 zK8YVTqq^bYl=dX>ak!LOfmo+J(ofunV`}^SXIad~B&T!VS-mE>Q^NFe<0@FhFm&i0#6{26EK5Zy&NS>>)em9Mwhgqb8oLeO#S-3QtxPR~xEtlz zN!&Et_A!IZBKpeyu2g%AAgqnjqD4^8#XxvEm7chBpV-OoY*5-K?1DAkW30_GJz>qp z?8YhGVWP2}gd!}wYO1eAt>9TED%iwEB|Oym(rV*rXm|5%g=P&U??_B$DQ-xou7abF zq3H#+_r-)YqGk+x$F@5XYKePP#jG_&++jWFIj&JY^W@(&&EB3&RGdf8ZS~rx?>chp z@-|_2=NHH}_ZZy;S;Ht{QMDNjZxTn?^XhZTo8eCD_>4FFhD9*GRh5 z0rhEhPI1i`LMRxXej<+TSOn`Taa)SJV2$?}YqRh$g?%0#2)moorYg1gYPiYvw=6Z_ z(~0Fte0Anhu$4zWYu0y3V#qk+=J2m0;Z53SNn${?!LA<2uS0SgMN=Sz`5eNQG{Aez zkf!cGtj&pQ1M88(h8S*U{$`n|me_R~P97SR+<2*^;M$jOmGB{t-pz&=J(8W$BBP9b zUpp6AH}&_08)3n#<#mLAyYZMe;)cnEM}3#N7YWrum{EqK3p<4Mv5=R(1F39h(7YI~ z3zXE~W%DYFDlk9p6_0?j3rPYpx(HEFxyh0cJ9CLd*G!tO%c z-dSA@48GL#C$rHqRAQIlD7vk86T$`^*y(rj z-4JA<_z*RF?kKIBP4T_yVzJ$9FYyNKTciy1q!5u#Y|qBhsox zK`}Le<2SCf08;Qk@`zTDmOp~$Ut}Dh9MH%kH`RqI$6V^yA z-mX?-NjO9RI~{d_xEo2!IFA(j7!EE7Yn4*9li`Y{##u=(;kqVJx3F1QezXaNup=$) zr1UNy6V*QPVb$_%Tf%M4MqcsZ+m8s_{3=H9MmeI)5*I8i8TLb(Kv_GvMO+BDr1-{N za!c6Vn7gST!`&VCYGsAz>oBv9u~7Gz08s;}<@B)+6Lwb#doD~^nArO++?8SPr3A5c z4LFrhO8XN{lj}0|rEc*}3+6HxqQAMK5fvN$2{zFr>pK=$gvU|sy5?(9t{9$Ef?$3u zm=pFxmY_j0uk)7f6N2SSrb~!x z-isp?@0aT4Qs2D3$*;ew>th8QQ=@o*L<3*7D?1vYhDL^`8LHdF6z%qLtcYF6gecGSo2 zVzOw|aHmVNXce7txY{ji-;Sg~!ai^_H3Ot1YqX9*2pbe&a|%T~RYjAswZ|oIxxR0% zJrs>&9!l*i_1>3&OW|IMv?f3r+0LgF zw-`75Lry7e)r#on&0!e^#l-#GuuKIbY?{Euho+DA`Vk=Hsxxndy~Bp+6k2%G9t`#k zm3H<(RLr{JMbnq=J$us}2pf##U2`Drf-*Wk+FwQr!h$1n;YBM5z}nQH0m8OZ0`Hmw zVZURYpUt^=a+Hr9_R0@~Aw&R7dfrbmjh=X-+3LAn#I6bxu;@Y}Ds-(c#z)3|# z`R)e7maLQbx!rg|9B~IZ{~>XNRYBtb$L3)5!&xW8cEV=mADFWcaKapMgXLz-#k5b) zLHiA_gvFoc-gaUi#6=%Z=uUmCYKpK=+_a~eQJc7+yS(8}%ZA|4MxA3)uR&&Uzp2LM zl(2SV?a7l!L#~PY-HYp(arIu15?8 z^641)vwvLh!SWkMlZulRofP-TAL#v~HBZ9A3c~7kPqA3W)|jn@btxh-q?15T+#i_N zvB+}$gY+BUAHY-(yzBP;Y76Gb(52*ZN{cR*U#Wm_+8gNDxQV-+*I}F-N)2cxEJTY1 zK`Z!4ydW<6ctZCN&Fk@b-%Gy;h58$t&*p3w^7WdZC9Q8!enzb^u&DngdxSkP z_c&*#J!=9nQUB2TOFgyB1(yjHoyXlFPhlIUBy97mV81arqyd?@i}*@^?dfTfvtFkR z5f=giJUa0dGL#H;LWQs&vjV7)u#bn(!3yN`lIauTmc=pcadBeJu4i`O^D$xHWxw5m zMA*pG^Kh&7N!VawLrdD^)^PvCEp5LEi~5Z|c`Qg=y^xzPk5k;?z}jZfPn?{%PoEVW z1ZU!!2M4FzE5AYkZ?LqgO}?k4wZSSG@A!p}=tPCD{)XVDhnLPg&BzuJx)5F?x(m9l z7Sqc=mC(kO_Ey1s!q{`4rfwg`+!4pb-57~^u4@E;VP)MnR_;$hZp%w;IQwfiJRD@5QQ>iBII226NIxrZEaItUth+|s z;WN)`45@3Rv1VLO*y5KWN-V(eqH?X;$|FU4;hnJN)eWaL=#%kH;fdRHV#x7bgBL33 zfyvmKxPdSiCzy#cH2mhg_`aC1pUCBRFGW*?eHa}xPu6KN;$AxISf|Tm&P|Wz%}d$FY*X>4M0F4PXO`En179Ggl_=Mgl%jl;J*m z)MT)nO;}g4A%A1fRZg^Mpvf~?h$e0yi-t^BH?}g(69(D|3z}@Rdhe5-u!UK~b#P!W z%z_ckj4v?@ihGoSKcQXKT=ZpoN$Q0Mf^`wa`#hyZ3+sN@ux(!AJx%2!IIy!Pw~3@w>MBt4m%p7+BJ4G-)wGwt?`b+mN=)51#=2vFPyFo zg}CzsS;SEBZA6`or)v9zT}zNeDW96rGGOJ%U|Ug|i{$QQT@V^2Zt*c@5u||9chz_m zLt04Mx6-BFLD*w~+#6Ax4EF|f!ul9o&AdDiqCWcKx7GLF!(gzmF7z;zU+r(`)$%HIC+YzqyM#Hu!zU=yKiTkf@NC}mp zl04x9LPe0Wt*FdyQ&{DtM7e5ubv)E6H0D?udTXG>J*pR%{1P^Zk@4ZwPa%ziCIu6= z5UxEAh<2lqw;s$AHyi!83fru{#2(yoR7$oM!k0e4_0sR=qIN<|GKO)4SFODCW#o7v z`Q`VSV8n-=3D-BNt&73XKny6FivFd(Yo(fx7Z;|aBkkvXS3eRMX_?Bks99oah&X;^ zztb{tck-F`2oYh~G-2QFd$E1QB2$8qf}`stHvjr6szCj9`UNNoTl#jY!jK!8iU>P) zbXDlk_Xa_ku*=wd55G32HHmu^#Mb;0cW7a%g;;aqH%xxK>=SM}!*EkiRGdfG)DSo} zRK3LC4n6Qv4nc|$ju=MVX&6_;QzUu&PGkX;Gdyk=Do9b})^tB%1tV!oFKW2C`?bY!n8JDodE!ECL!PF${YzpOuZ2|{jVPLKr z7!_li=0M!AQ?B)zlYB1Hn-T)e{ccc+k7^U)I-|CD`K?6?TYhCB6i$z2C$71}*dA1t zh8kZCH{24o6k=vb$aV?N9=C+uq&V&l8>xr58&l*ed?f9qpNN1=@TfA+Iw6?GYB7S)tqzTb(wc(C%nTYr>vCV$pY946aT}8t(L2^^C4d zpPs@T*QLqQuPhSPC=2w2(=dRs(^h!mzMXs<;s|U0V>G11nJcPhz!dIX!46}3L$>lG zEsQ!zaew4EDjPJf1Fz6bX>DK<$hXs$?V$othY&X;9&^*9sJUM;r3SI`WJ-I|#dY8% zEFD_z5w|=lr7ztAh6M#sB#um2Z1*)M#!)g;qImHh`)Xl zm-Z?BcU8je)b;Y<&gB$dtKl6klwRV7JAFrX!?vnb`p`Hfl~88$0RqdON2RjK*-qrwx|(m{A?aE;_css_#q{Cim>t>O=*x7vGJhi&|xB z7}h+aUHqe~A_;5R+Aex7J7F`fcU?NTr#LrZ;pmoQiZ`n!aAecqE_^dT^&AuSCz}t; zCOc*Bo8lgkZBr`Hk)2kS3HxvaG4M;m7S2f0%rnJp^g3gz$8KQ@Hr;r~9(b{}^0Vi3 zF?Ca=sjN1K0nn#BMe)d~;FJ
  • w8>e7ZGOG)iStTeWiLGwcUam%pu(|Q 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

    v~=-0 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 diff --git a/src/gopt/test/embed_cache.py b/src/gopt/test/embed_cache.py index db50a777a..0f3c7cd23 100644 --- a/src/gopt/test/embed_cache.py +++ b/src/gopt/test/embed_cache.py @@ -7,19 +7,21 @@ # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# 为了保证全局图优化里的 profiling 结果不受到 ci 环境的影响,所以把写死的 profiling 结果存到了 cache 里去, -# 每次跑测试会从内存里读取 cache 里的 profiling 结果,然后根据 profiling 结果去做全局图优化。 -# 这个脚本用来把 dump 出去的 cache 文件转化成 cache 的头文件,用于测试时读取数据。 -# 如果在 src/gopt/test/layout_transform_pass.cpp 里添加了全局图优化相关的测试,则需要考虑用这个脚本来 -# 处理一下 profiling 数据。 +# 为了保证全局图优化里的 profiling 结果不受到 ci 环境的影响,所以把写死的 profiling 数据存到了 cache 里去, +# 每次跑测试会从内存 cache 里读取 profiling 结果,然后根据 profiling 结果去做全局图优化,这样确保每次运行 +# 结果都是一致的。 +# ProfilerCache 可以支持把内存中 cache 下来的 profiling 数据 dump 成文件。 +# 这个脚本就是用于把 dump 出去的 cache 文件打包成 cache 的头文件,用于测试时读取数据,构建 InMemory 的 ProfilerCache 。 +# 如果在 src/gopt/test/layout_transform_pass.cpp 里新添加了全局图优化相关的测试,则需要考虑用这个脚本来 +# 更新 cache 头文件中的 profiling 数据。 # 1. 首先将 src/gopt/test/layout_transform_pass.cpp 中的 `#define MGB_WITH_CACHED_TEST 1` 修改为 # `#define MGB_WITH_CACHED_TEST 0` # 2. 编译megbrain_test,并运行所有全局图优化相关测试: # ./megbrain_test --gtest_filter="*LayoutTransform*" # 3. 用这个脚本把所有的cache文件打包在一起 # python3 embed_cache.py -o cache_data.h $(ls /path/to/cache/*.cache) -# 4. 将步骤1中的 define 改回去,这样 profile 过程用到的是 cache 下来的数据。随后可以重新构建 megbrain_test , -# 验证测试是否正确。 +# 4. 将步骤1中的 define 语句改回原样,这样 profile 过程就会使用 cache 下来的数据。 +# 5. 最后可以重新构建一下 megbrain_test ,确保测试结果正确。 import os.path import logging import hashlib diff --git a/src/gopt/test/layout_transform_pass.cpp b/src/gopt/test/layout_transform_pass.cpp index 8cba8b16d..3e6db8e8a 100644 --- a/src/gopt/test/layout_transform_pass.cpp +++ b/src/gopt/test/layout_transform_pass.cpp @@ -78,8 +78,9 @@ OprFormat tensor_formats_to_opr_format(TensorFormats tensor_format) { case TensorFormats::CHWNc4: return OprFormat::CHWN4; default: - mgb_throw(MegBrainError, "tensor format(%u) is not supported", - static_cast(tensor_format)); + mgb_throw( + MegBrainError, "tensor format(%u) is not supported", + static_cast(tensor_format)); } } @@ -92,28 +93,28 @@ public: } ~ProfilerMock() { // reset in memory cache - ProfilerCache::inst().set_impl( - std::make_unique()); + ProfilerCache::inst().set_impl(std::make_unique()); } private: - float profile_operator(const OperatorNodeBase* opr, - TensorFormats base_format, - TensorFormats tensor_format, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const override { - ProfilerCache::Key key{opr, tensor_formats_to_opr_format(tensor_format), - extra_attribute}; + float profile_operator( + const OperatorNodeBase* opr, TensorFormats base_format, + TensorFormats tensor_format, + ReformatAttribute extra_attribute = + ReformatAttribute::DEFAULT) const override { + ProfilerCache::Key key{ + opr, tensor_formats_to_opr_format(tensor_format), extra_attribute}; auto ret = ProfilerCache::inst().get(key); if (ret.valid()) return ret.val(); mgb_assert(false); } - float profile_operator(const OperatorNodeBase* opr, - const OprTensorFormatsConfiguration& base_config, - const OprTensorFormatsConfiguration& config, - ReformatAttribute extra_attribute = - ReformatAttribute::DEFAULT) const override { + float profile_operator( + const OperatorNodeBase* opr, + const OprTensorFormatsConfiguration& base_config, + const OprTensorFormatsConfiguration& config, + ReformatAttribute extra_attribute = + ReformatAttribute::DEFAULT) const override { ProfilerCache::Key key{opr, config.opr_format, extra_attribute}; std::string tmp; tmp.reserve(key.blob().size); @@ -122,8 +123,9 @@ private: return ret.val(); mgb_assert(false); } - float profile_var_node(const VarNode* var, TensorFormats base_format, - const ReformatKey& key) const override { + float profile_var_node( + const VarNode* var, TensorFormats base_format, + const ReformatKey& key) const override { ProfilerCache::Key pf_key{var, key}; auto ret = ProfilerCache::inst().get(pf_key); if (ret.valid()) @@ -174,18 +176,17 @@ TEST(TestLayoutTransform, Resnet18_QS8) { OprFormat::NCHW, TensorFormats::NCHW, Target::UNSPEC, ReformatAttribute::AUTO_PADDING_NHWC}; auto ctx = std::make_unique( - std::move(opr_list), std::move(available_tensor_formats), - attribute); - ctx->add_opr_config(opr::ConvBiasForward::typeinfo(), - {OprFormat::NCHW4, OprFormat::NCHW32, OprFormat::CHWN4, - OprFormat::NHWC}) - .add_opr_config(opr::PoolingForward::typeinfo(), - {OprFormat::NCHW4, OprFormat::NCHW32, - OprFormat::NHWC, OprFormat::CHWN4}); + std::move(opr_list), std::move(available_tensor_formats), attribute); + ctx->add_opr_config( + opr::ConvBiasForward::typeinfo(), + {OprFormat::NCHW4, OprFormat::NCHW32, OprFormat::CHWN4, OprFormat::NHWC}) + .add_opr_config( + opr::PoolingForward::typeinfo(), + {OprFormat::NCHW4, OprFormat::NCHW32, OprFormat::NHWC, + OprFormat::CHWN4}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( - static_cast( - TestLayoutTransform_Resnet18_QS8.data()), + static_cast(TestLayoutTransform_Resnet18_QS8.data()), TestLayoutTransform_Resnet18_QS8.size()); #else auto profiler = ProfilerBase::make_cached_profiler( @@ -278,8 +279,7 @@ TEST(TestLayoutTransform, Resnet18_QS4) { OprFormat::NHWC, OprFormat::CHWN4}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( - static_cast( - TestLayoutTransform_Resnet18_QS4.data()), + static_cast(TestLayoutTransform_Resnet18_QS4.data()), TestLayoutTransform_Resnet18_QS4.size()); #else auto profiler = ProfilerBase::make_cached_profiler( @@ -401,8 +401,7 @@ TEST(TestLayoutTransform, Detection_QS8) { OprFormat::NHWC, OprFormat::CHWN4}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( - static_cast( - TestLayoutTransform_Detection_QS8.data()), + static_cast(TestLayoutTransform_Detection_QS8.data()), TestLayoutTransform_Detection_QS8.size()); #else auto profiler = ProfilerBase::make_cached_profiler( @@ -479,8 +478,7 @@ TEST(TestLayoutTransform, Detection_QS4) { OprFormat::NHWC, OprFormat::CHWN4}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( - static_cast( - TestLayoutTransform_Detection_QS4.data()), + static_cast(TestLayoutTransform_Detection_QS4.data()), TestLayoutTransform_Detection_QS4.size()); #else auto profiler = ProfilerBase::make_cached_profiler( @@ -553,17 +551,16 @@ TEST(TestLayoutTransform, Wide) { OprFormat::NCHW, TensorFormats::NCHW, Target::UNSPEC, ReformatAttribute::DEFAULT}; auto ctx = std::make_unique( - std::move(opr_list), std::move(available_tensor_formats), - attribute); - ctx->add_opr_config(opr::ConvBiasForward::typeinfo(), - {OprFormat::NCHW, OprFormat::NHWC}); + std::move(opr_list), std::move(available_tensor_formats), attribute); + ctx->add_opr_config( + opr::ConvBiasForward::typeinfo(), {OprFormat::NCHW, OprFormat::NHWC}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( static_cast(TestLayoutTransform_Wide.data()), TestLayoutTransform_Wide.size()); #else - auto profiler = ProfilerBase::make_cached_profiler( - "TestLayoutTransform.Wide.cache"); + auto profiler = + ProfilerBase::make_cached_profiler("TestLayoutTransform.Wide.cache"); #endif std::unique_ptr solver{ new DynamicProgrammingSolver(std::move(profiler))}; @@ -674,8 +671,7 @@ TEST(TestLayoutTransform, DetectionHead) { {OprFormat::NHWC, OprFormat::NCHW4, OprFormat::NCHW64}); #if MGB_WITH_CACHED_TEST auto profiler = std::make_unique( - static_cast( - TestLayoutTransform_DetectionHead.data()), + static_cast(TestLayoutTransform_DetectionHead.data()), TestLayoutTransform_DetectionHead.size()); #else auto profiler = ProfilerBase::make_cached_profiler( -- GitLab