From 73651a808a41f4ca0ef2be6a011913e87bbfaa87 Mon Sep 17 00:00:00 2001 From: paleziart <paleziart@laas.fr> Date: Thu, 6 May 2021 15:02:50 +0200 Subject: [PATCH] Remove osqp files that were included in the repository since they were conflicting with the standard osqp install --- CMakeLists.txt | 2 +- include/osqp_folder/LICENSE | 201 --------- include/osqp_folder/include/auxil.h | 181 -------- include/osqp_folder/include/constants.h | 125 ------ include/osqp_folder/include/cs.h | 180 -------- include/osqp_folder/include/ctrlc.h | 56 --- include/osqp_folder/include/error.h | 38 -- include/osqp_folder/include/glob_opts.h | 171 -------- include/osqp_folder/include/kkt.h | 109 ----- include/osqp_folder/include/lin_alg.h | 216 ---------- include/osqp_folder/include/lin_sys.h | 54 --- include/osqp_folder/include/osqp.h | 430 ------------------- include/osqp_folder/include/osqp_configure.h | 49 --- include/osqp_folder/include/polish.h | 25 -- include/osqp_folder/include/proj.h | 37 -- include/osqp_folder/include/scaling.h | 44 -- include/osqp_folder/include/types.h | 324 -------------- include/osqp_folder/include/util.h | 222 ---------- include/osqp_folder/lib/libosqp.a | Bin 198166 -> 0 bytes include/osqp_folder/lib/libosqp.so | Bin 123272 -> 0 bytes include/qrw/MPC.hpp | 6 +- include/qrw/QPWBC.hpp | 6 +- src/MPC.cpp | 12 +- src/QPWBC.cpp | 6 +- 24 files changed, 12 insertions(+), 2482 deletions(-) delete mode 100644 include/osqp_folder/LICENSE delete mode 100644 include/osqp_folder/include/auxil.h delete mode 100644 include/osqp_folder/include/constants.h delete mode 100644 include/osqp_folder/include/cs.h delete mode 100644 include/osqp_folder/include/ctrlc.h delete mode 100644 include/osqp_folder/include/error.h delete mode 100644 include/osqp_folder/include/glob_opts.h delete mode 100644 include/osqp_folder/include/kkt.h delete mode 100644 include/osqp_folder/include/lin_alg.h delete mode 100644 include/osqp_folder/include/lin_sys.h delete mode 100644 include/osqp_folder/include/osqp.h delete mode 100644 include/osqp_folder/include/osqp_configure.h delete mode 100644 include/osqp_folder/include/polish.h delete mode 100644 include/osqp_folder/include/proj.h delete mode 100644 include/osqp_folder/include/scaling.h delete mode 100644 include/osqp_folder/include/types.h delete mode 100644 include/osqp_folder/include/util.h delete mode 100644 include/osqp_folder/lib/libosqp.a delete mode 100755 include/osqp_folder/lib/libosqp.so diff --git a/CMakeLists.txt b/CMakeLists.txt index 7335a564..96761f71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,7 +99,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC eiquadprog::eiquadprog) find_package(osqp REQUIRED) # Link the OSQP shared library -target_link_libraries(${PROJECT_NAME} PRIVATE osqp::osqp) +target_link_libraries(${PROJECT_NAME} PUBLIC osqp::osqp) #find_package(yaml-cpp REQUIRED) #target_link_libraries(${PROJECT_NAME} PRIVATE yaml-cpp::yaml-cpp) diff --git a/include/osqp_folder/LICENSE b/include/osqp_folder/LICENSE deleted file mode 100644 index 5a568288..00000000 --- a/include/osqp_folder/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2019 Bartolomeo Stellato, Goran Banjac, Paul Goulart, Stephen Boyd - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/include/osqp_folder/include/auxil.h b/include/osqp_folder/include/auxil.h deleted file mode 100644 index d756c2a4..00000000 --- a/include/osqp_folder/include/auxil.h +++ /dev/null @@ -1,181 +0,0 @@ -#ifndef AUXIL_H -# define AUXIL_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - - -/*********************************************************** -* Auxiliary functions needed to compute ADMM iterations * * -***********************************************************/ -# if EMBEDDED != 1 - -/** - * Compute rho estimate from residuals - * @param work Workspace - * @return rho estimate - */ -c_float compute_rho_estimate(OSQPWorkspace *work); - -/** - * Adapt rho value based on current unscaled primal/dual residuals - * @param work Workspace - * @return Exitflag - */ -c_int adapt_rho(OSQPWorkspace *work); - -/** - * Set values of rho vector based on constraint types - * @param work Workspace - */ -void set_rho_vec(OSQPWorkspace *work); - -/** - * Update values of rho vector based on updated constraints. - * If the constraints change, update the linear systems solver. - * - * @param work Workspace - * @return Exitflag - */ -c_int update_rho_vec(OSQPWorkspace *work); - -# endif // EMBEDDED - -/** - * Swap c_float vector pointers - * @param a first vector - * @param b second vector - */ -void swap_vectors(c_float **a, - c_float **b); - - -/** - * Cold start workspace variables xz and y - * @param work Workspace - */ -void cold_start(OSQPWorkspace *work); - - -/** - * Update x_tilde and z_tilde variable (first ADMM step) - * @param work [description] - */ -void update_xz_tilde(OSQPWorkspace *work); - - -/** - * Update x (second ADMM step) - * Update also delta_x (For for dual infeasibility) - * @param work Workspace - */ -void update_x(OSQPWorkspace *work); - - -/** - * Update z (third ADMM step) - * @param work Workspace - */ -void update_z(OSQPWorkspace *work); - - -/** - * Update y variable (fourth ADMM step) - * Update also delta_y to check for primal infeasibility - * @param work Workspace - */ -void update_y(OSQPWorkspace *work); - - -/** - * Compute objective function from data at value x - * @param work OSQPWorkspace structure - * @param x Value x - * @return Objective function value - */ -c_float compute_obj_val(OSQPWorkspace *work, - c_float *x); - -/** - * Check whether QP has solution - * @param info OSQPInfo - */ -c_int has_solution(OSQPInfo *info); - -/** - * Store the QP solution - * @param work Workspace - */ -void store_solution(OSQPWorkspace *work); - - -/** - * Update solver information - * @param work Workspace - * @param iter Iteration number - * @param compute_objective Boolean (if compute the objective or not) - * @param polish Boolean (if called from polish) - */ -void update_info(OSQPWorkspace *work, - c_int iter, - c_int compute_objective, - c_int polish); - - -/** - * Reset solver information (after problem updates) - * @param info Information structure - */ -void reset_info(OSQPInfo *info); - - -/** - * Update solver status (value and string) - * @param info OSQPInfo - * @param status_val new status value - */ -void update_status(OSQPInfo *info, - c_int status_val); - - -/** - * Check if termination conditions are satisfied - * If the boolean flag is ON, it checks for approximate conditions (10 x larger - * tolerances than the ones set) - * - * @param work Workspace - * @param approximate Boolean - * @return Residuals check - */ -c_int check_termination(OSQPWorkspace *work, - c_int approximate); - - -# ifndef EMBEDDED - -/** - * Validate problem data - * @param data OSQPData to be validated - * @return Exitflag to check - */ -c_int validate_data(const OSQPData *data); - - -/** - * Validate problem settings - * @param settings OSQPSettings to be validated - * @return Exitflag to check - */ -c_int validate_settings(const OSQPSettings *settings); - - -# endif // #ifndef EMBEDDED - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef AUXIL_H diff --git a/include/osqp_folder/include/constants.h b/include/osqp_folder/include/constants.h deleted file mode 100644 index d5cec843..00000000 --- a/include/osqp_folder/include/constants.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef CONSTANTS_H -# define CONSTANTS_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - - -/******************* -* OSQP Versioning * -*******************/ -# define OSQP_VERSION ("0.6.0") /* string literals automatically null-terminated - */ - -/****************** -* Solver Status * -******************/ -# define OSQP_DUAL_INFEASIBLE_INACCURATE (4) -# define OSQP_PRIMAL_INFEASIBLE_INACCURATE (3) -# define OSQP_SOLVED_INACCURATE (2) -# define OSQP_SOLVED (1) -# define OSQP_MAX_ITER_REACHED (-2) -# define OSQP_PRIMAL_INFEASIBLE (-3) /* primal infeasible */ -# define OSQP_DUAL_INFEASIBLE (-4) /* dual infeasible */ -# define OSQP_SIGINT (-5) /* interrupted by user */ -# ifdef PROFILING -# define OSQP_TIME_LIMIT_REACHED (-6) -# endif // ifdef PROFILING -# define OSQP_NON_CVX (-7) /* problem non convex */ -# define OSQP_UNSOLVED (-10) /* Unsolved. Only setup function has been called */ - - -/************************* -* Linear System Solvers * -*************************/ -enum linsys_solver_type { QDLDL_SOLVER, MKL_PARDISO_SOLVER }; -extern const char * LINSYS_SOLVER_NAME[]; - - -/****************** -* Solver Errors * -******************/ -enum osqp_error_type { - OSQP_DATA_VALIDATION_ERROR = 1, /* Start errors from 1 */ - OSQP_SETTINGS_VALIDATION_ERROR, - OSQP_LINSYS_SOLVER_LOAD_ERROR, - OSQP_LINSYS_SOLVER_INIT_ERROR, - OSQP_NONCVX_ERROR, - OSQP_MEM_ALLOC_ERROR, - OSQP_WORKSPACE_NOT_INIT_ERROR, -}; -extern const char * OSQP_ERROR_MESSAGE[]; - - -/********************************** -* Solver Parameters and Settings * -**********************************/ - -# define RHO (0.1) -# define SIGMA (1E-06) -# define MAX_ITER (4000) -# define EPS_ABS (1E-3) -# define EPS_REL (1E-3) -# define EPS_PRIM_INF (1E-4) -# define EPS_DUAL_INF (1E-4) -# define ALPHA (1.6) -# define LINSYS_SOLVER (QDLDL_SOLVER) - -# define RHO_MIN (1e-06) -# define RHO_MAX (1e06) -# define RHO_EQ_OVER_RHO_INEQ (1e03) -# define RHO_TOL (1e-04) ///< tolerance for detecting if an inequality is set to equality - - -# ifndef EMBEDDED -# define DELTA (1E-6) -# define POLISH (0) -# define POLISH_REFINE_ITER (3) -# define VERBOSE (1) -# endif // ifndef EMBEDDED - -# define SCALED_TERMINATION (0) -# define CHECK_TERMINATION (25) -# define WARM_START (1) -# define SCALING (10) - -# define MIN_SCALING (1e-04) ///< minimum scaling value -# define MAX_SCALING (1e+04) ///< maximum scaling value - - -# ifndef OSQP_NULL -# define OSQP_NULL 0 -# endif /* ifndef OSQP_NULL */ - -# ifndef OSQP_NAN -# define OSQP_NAN ((c_float)0x7fc00000UL) // not a number -# endif /* ifndef OSQP_NAN */ - -# ifndef OSQP_INFTY -# define OSQP_INFTY ((c_float)1e30) // infinity -# endif /* ifndef OSQP_INFTY */ - - -# if EMBEDDED != 1 -# define ADAPTIVE_RHO (1) -# define ADAPTIVE_RHO_INTERVAL (0) -# define ADAPTIVE_RHO_FRACTION (0.4) ///< fraction of setup time after which we update rho -# define ADAPTIVE_RHO_MULTIPLE_TERMINATION (4) ///< multiple of check_termination after which we update rho (if PROFILING disabled) -# define ADAPTIVE_RHO_FIXED (100) ///< number of iterations after which we update rho if termination_check and PROFILING are disabled -# define ADAPTIVE_RHO_TOLERANCE (5) ///< tolerance for adopting new rho; minimum ratio between new rho and the current one -# endif // if EMBEDDED != 1 - -# ifdef PROFILING -# define TIME_LIMIT (0) ///< Disable time limit as default -# endif // ifdef PROFILING - -/* Printing */ -# define PRINT_INTERVAL 200 - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef CONSTANTS_H diff --git a/include/osqp_folder/include/cs.h b/include/osqp_folder/include/cs.h deleted file mode 100644 index dff0a805..00000000 --- a/include/osqp_folder/include/cs.h +++ /dev/null @@ -1,180 +0,0 @@ -#ifndef CS_H -# define CS_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" // CSC matrix type -# include "lin_alg.h" // Vector copy operations - -/***************************************************************************** -* Create and free CSC Matrices * -*****************************************************************************/ - -/** - * Create Compressed-Column-Sparse matrix from existing arrays - (no MALLOC to create inner arrays x, i, p) - * @param m First dimension - * @param n Second dimension - * @param nzmax Maximum number of nonzero elements - * @param x Vector of data - * @param i Vector of row indices - * @param p Vector of column pointers - * @return New matrix pointer - */ -csc* csc_matrix(c_int m, - c_int n, - c_int nzmax, - c_float *x, - c_int *i, - c_int *p); - - -/** - * Create uninitialized CSC matrix atricture - (uses MALLOC to create inner arrays x, i, p) - * @param m First dimension - * @param n Second dimension - * @param nzmax Maximum number of nonzero elements - * @param values Allocate values (0/1) - * @param triplet Allocate CSC or triplet format matrix (1/0) - * @return Matrix pointer - */ -csc* csc_spalloc(c_int m, - c_int n, - c_int nzmax, - c_int values, - c_int triplet); - - -/** - * Free sparse matrix - (uses FREE to free inner arrays x, i, p) - * @param A Matrix in CSC format - */ -void csc_spfree(csc *A); - - -/** - * free workspace and return a sparse matrix result - * @param C CSC matrix - * @param w Workspace vector - * @param x Workspace vector - * @param ok flag - * @return Return result C if OK, otherwise free it - */ -csc* csc_done(csc *C, - void *w, - void *x, - c_int ok); - -/***************************************************************************** -* Copy Matrices * -*****************************************************************************/ - -/** - * Copy sparse CSC matrix A to output. - * output is allocated by this function (uses MALLOC) - */ -csc* copy_csc_mat(const csc *A); - - -/** - * Copy sparse CSC matrix A to B (B is preallocated, NO MALOC) - */ -void prea_copy_csc_mat(const csc *A, - csc *B); - - -/***************************************************************************** -* Matrices Conversion * -*****************************************************************************/ - - -/** - * C = compressed-column CSC from matrix T in triplet form - * - * TtoC stores the vector of indices from T to C - * -> C[TtoC[i]] = T[i] - * - * @param T matrix in triplet format - * @param TtoC vector of indices from triplet to CSC format - * @return matrix in CSC format - */ -csc* triplet_to_csc(const csc *T, - c_int *TtoC); - - -/** - * C = compressed-row CSR from matrix T in triplet form - * - * TtoC stores the vector of indices from T to C - * -> C[TtoC[i]] = T[i] - * - * @param T matrix in triplet format - * @param TtoC vector of indices from triplet to CSR format - * @return matrix in CSR format - */ -csc* triplet_to_csr(const csc *T, - c_int *TtoC); - - -/** - * Convert sparse to dense - */ -c_float* csc_to_dns(csc *M); - - -/** - * Convert square CSC matrix into upper triangular one - * - * @param M Matrix to be converted - * @return Upper triangular matrix in CSC format - */ -csc* csc_to_triu(csc *M); - - -/***************************************************************************** -* Extra operations * -*****************************************************************************/ - -/** - * p [0..n] = cumulative sum of c [0..n-1], and then copy p [0..n-1] into c - * - * @param p Create cumulative sum into p - * @param c Vector of which we compute cumulative sum - * @param n Number of elements - * @return Exitflag - */ -c_int csc_cumsum(c_int *p, - c_int *c, - c_int n); - -/** - * Compute inverse of permutation matrix stored in the vector p. - * The computed inverse is also stored in a vector. - */ -c_int* csc_pinv(c_int const *p, - c_int n); - -/** - * C = A(p,p)= PAP' where A and C are symmetric the upper part stored; - * NB: pinv not p! - * @param A Original matrix (upper-triangular) - * @param pinv Inverse of permutation vector - * @param AtoC Mapping from indices of A-x to C->x - * @param values Are values of A allocated? - * @return New matrix (allocated) - */ -csc* csc_symperm(const csc *A, - const c_int *pinv, - c_int *AtoC, - c_int values); - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef CS_H diff --git a/include/osqp_folder/include/ctrlc.h b/include/osqp_folder/include/ctrlc.h deleted file mode 100644 index 749e8e78..00000000 --- a/include/osqp_folder/include/ctrlc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Interface for OSQP signal handling. - */ - -#ifndef CTRLC_H -# define CTRLC_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "glob_opts.h" - -# if defined MATLAB - -/* No header file available here; define the prototypes ourselves */ -bool utIsInterruptPending(void); -bool utSetInterruptEnabled(bool); - -# elif defined IS_WINDOWS - -/* Use Windows SetConsoleCtrlHandler for signal handling */ -# include <windows.h> - -# else // if defined MATLAB - -/* Use sigaction for signal handling on non-Windows machines */ -# include <signal.h> - -# endif // if defined MATLAB - -/* METHODS are the same for both */ - -/** - * Start listener for ctrl-c interrupts - */ -void osqp_start_interrupt_listener(void); - -/** - * End listener for ctrl-c interrupts - */ -void osqp_end_interrupt_listener(void); - -/** - * Check if the solver has been interrupted - * @return Boolean indicating if the solver has been interrupted - */ -int osqp_is_interrupted(void); - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - - -#endif /* END IFDEF CTRLC */ diff --git a/include/osqp_folder/include/error.h b/include/osqp_folder/include/error.h deleted file mode 100644 index 9d7879f0..00000000 --- a/include/osqp_folder/include/error.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef ERROR_H -# define ERROR_H - -/* OSQP error handling */ - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - - -/* OSQP error macro */ -# if __STDC_VERSION__ >= 199901L -/* The C99 standard gives the __func__ macro, which is preferred over __FUNCTION__ */ -# define osqp_error(error_code) _osqp_error(error_code, __func__); -#else -# define osqp_error(error_code) _osqp_error(error_code, __FUNCTION__); -#endif - - - -/** - * Internal function to print error description and return error code. - * @param Error code - * @param Function name - * @return Error code - */ - c_int _osqp_error(enum osqp_error_type error_code, - const char * function_name); - - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef ERROR_H diff --git a/include/osqp_folder/include/glob_opts.h b/include/osqp_folder/include/glob_opts.h deleted file mode 100644 index 21bcac09..00000000 --- a/include/osqp_folder/include/glob_opts.h +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef GLOB_OPTS_H -# define GLOB_OPTS_H - -# ifdef __cplusplus -extern "C" { -# endif /* ifdef __cplusplus */ - -/* - Define OSQP compiler flags - */ - -// cmake generated compiler flags -#include "osqp_configure.h" - -/* DATA CUSTOMIZATIONS (depending on memory manager)----------------------- */ - -// We do not need memory allocation functions if EMBEDDED is enabled -# ifndef EMBEDDED - -/* define custom printfs and memory allocation (e.g. matlab/python) */ -# ifdef MATLAB - # include "mex.h" -static void* c_calloc(size_t num, size_t size) { - void *m = mxCalloc(num, size); - mexMakeMemoryPersistent(m); - return m; -} - -static void* c_malloc(size_t size) { - void *m = mxMalloc(size); - mexMakeMemoryPersistent(m); - return m; -} - -static void* c_realloc(void *ptr, size_t size) { - void *m = mxRealloc(ptr, size); - mexMakeMemoryPersistent(m); - return m; -} - - # define c_free mxFree -# elif defined PYTHON -// Define memory allocation for python. Note that in Python 2 memory manager -// Calloc is not implemented - # include <Python.h> - # define c_malloc PyMem_Malloc - # if PY_MAJOR_VERSION >= 3 - # define c_calloc PyMem_Calloc - # else /* if PY_MAJOR_VERSION >= 3 */ -static void* c_calloc(size_t num, size_t size) { - void *m = PyMem_Malloc(num * size); - memset(m, 0, num * size); - return m; -} - # endif /* if PY_MAJOR_VERSION >= 3 */ - # define c_free PyMem_Free - # define c_realloc PyMem_Realloc - -# elif !defined OSQP_CUSTOM_MEMORY -/* If no custom memory allocator defined, use - * standard linux functions. Custom memory allocator definitions - * appear in the osqp_configure.h generated file. */ - # include <stdlib.h> - # define c_malloc malloc - # define c_calloc calloc - # define c_free free - # define c_realloc realloc -# endif /* ifdef MATLAB */ - -# endif // end ifndef EMBEDDED - - -/* Use customized number representation ----------------------------------- */ -# ifdef DLONG // long integers -typedef long long c_int; /* for indices */ -# else // standard integers -typedef int c_int; /* for indices */ -# endif /* ifdef DLONG */ - - -# ifndef DFLOAT // Doubles -typedef double c_float; /* for numerical values */ -# else // Floats -typedef float c_float; /* for numerical values */ -# endif /* ifndef DFLOAT */ - - -/* Use customized operations */ - -# ifndef c_absval -# define c_absval(x) (((x) < 0) ? -(x) : (x)) -# endif /* ifndef c_absval */ - -# ifndef c_max -# define c_max(a, b) (((a) > (b)) ? (a) : (b)) -# endif /* ifndef c_max */ - -# ifndef c_min -# define c_min(a, b) (((a) < (b)) ? (a) : (b)) -# endif /* ifndef c_min */ - -// Round x to the nearest multiple of N -# ifndef c_roundmultiple -# define c_roundmultiple(x, N) ((x) + .5 * (N)-c_fmod((x) + .5 * (N), (N))) -# endif /* ifndef c_roundmultiple */ - - -/* Use customized functions ----------------------------------------------- */ - -# if EMBEDDED != 1 - -# include <math.h> -# ifndef DFLOAT // Doubles -# define c_sqrt sqrt -# define c_fmod fmod -# else // Floats -# define c_sqrt sqrtf -# define c_fmod fmodf -# endif /* ifndef DFLOAT */ - -# endif // end EMBEDDED - - -# ifdef PRINTING -# include <stdio.h> -# include <string.h> - -# ifdef MATLAB -# define c_print mexPrintf - -// The following trick slows down the performance a lot. Since many solvers -// actually -// call mexPrintf and immediately force print buffer flush -// otherwise messages don't appear until solver termination -// ugly because matlab does not provide a vprintf mex interface -// #include <stdarg.h> -// static int c_print(char *msg, ...) -// { -// va_list argList; -// va_start(argList, msg); -// //message buffer -// int bufferSize = 256; -// char buffer[bufferSize]; -// vsnprintf(buffer,bufferSize-1, msg, argList); -// va_end(argList); -// int out = mexPrintf(buffer); //print to matlab display -// mexEvalString("drawnow;"); // flush matlab print buffer -// return out; -// } -# elif defined PYTHON -# include <Python.h> -# define c_print PySys_WriteStdout -# elif defined R_LANG -# include <R_ext/Print.h> -# define c_print Rprintf -# else /* ifdef MATLAB */ -# define c_print printf -# endif /* ifdef MATLAB */ - -/* Print error macro */ -# define c_eprint(...) c_print("ERROR in %s: ", __FUNCTION__); c_print(\ - __VA_ARGS__); c_print("\n"); - -# endif /* PRINTING */ - - -# ifdef __cplusplus -} -# endif /* ifdef __cplusplus */ - -#endif /* ifndef GLOB_OPTS_H */ diff --git a/include/osqp_folder/include/kkt.h b/include/osqp_folder/include/kkt.h deleted file mode 100644 index 9560d5ec..00000000 --- a/include/osqp_folder/include/kkt.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef KKT_H -# define KKT_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - -# ifndef EMBEDDED - -# include "cs.h" - -/** - * Form square symmetric KKT matrix of the form - * - * [P + param1 I, A'; - * A -diag(param2)] - * - * NB: Only the upper triangular part is stuffed! - * - * - * If Pdiag_idx is not OSQP_NULL, it saves the index of the diagonal - * elements of P there and the number of diagonal elements in Pdiag_n. - * - * Similarly, if rhotoKKT is not null, - * it saves where the values of param2 go in the final KKT matrix - * - * NB: Pdiag_idx needs to be freed! - * - * @param P cost matrix (already just upper triangular part) - * @param A linear constraint matrix - * @param format CSC (0) or CSR (1) - * @param param1 regularization parameter - * @param param2 regularization parameter (vector) - * @param PtoKKT (modified) index mapping from elements of P to KKT matrix - * @param AtoKKT (modified) index mapping from elements of A to KKT matrix - * @param Pdiag_idx (modified) Address of the index of diagonal elements in P - * @param Pdiag_n (modified) Address to the number of diagonal elements in P - * @param param2toKKT (modified) index mapping from param2 to elements of - *KKT - * @return return status flag - */ -csc* form_KKT(const csc *P, - const csc *A, - c_int format, - c_float param1, - c_float *param2, - c_int *PtoKKT, - c_int *AtoKKT, - c_int **Pdiag_idx, - c_int *Pdiag_n, - c_int *param2toKKT); -# endif // ifndef EMBEDDED - - -# if EMBEDDED != 1 - -/** - * Update KKT matrix using the elements of P - * - * @param KKT KKT matrix in CSC form (upper-triangular) - * @param P P matrix in CSC form (upper-triangular) - * @param PtoKKT Vector of pointers from P->x to KKT->x - * @param param1 Parameter added to the diagonal elements of P - * @param Pdiag_idx Index of diagonal elements in P->x - * @param Pdiag_n Number of diagonal elements of P - */ -void update_KKT_P(csc *KKT, - const csc *P, - const c_int *PtoKKT, - const c_float param1, - const c_int *Pdiag_idx, - const c_int Pdiag_n); - - -/** - * Update KKT matrix using the elements of A - * - * @param KKT KKT matrix in CSC form (upper-triangular) - * @param A A matrix in CSC form (upper-triangular) - * @param AtoKKT Vector of pointers from A->x to KKT->x - */ -void update_KKT_A(csc *KKT, - const csc *A, - const c_int *AtoKKT); - - -/** - * Update KKT matrix with new param2 - * - * @param KKT KKT matrix - * @param param2 Parameter of the KKT matrix (vector) - * @param param2toKKT index where param2 enters in the KKT matrix - * @param m number of constraints - */ -void update_KKT_param2(csc *KKT, - const c_float *param2, - const c_int *param2toKKT, - const c_int m); - -# endif // EMBEDDED != 1 - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef KKT_H diff --git a/include/osqp_folder/include/lin_alg.h b/include/osqp_folder/include/lin_alg.h deleted file mode 100644 index e9589e9d..00000000 --- a/include/osqp_folder/include/lin_alg.h +++ /dev/null @@ -1,216 +0,0 @@ -#ifndef LIN_ALG_H -# define LIN_ALG_H - - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - - -/* VECTOR FUNCTIONS ----------------------------------------------------------*/ - -# ifndef EMBEDDED - -/* copy vector a into output (Uses MALLOC)*/ -c_float* vec_copy(c_float *a, - c_int n); -# endif // ifndef EMBEDDED - -/* copy vector a into preallocated vector b */ -void prea_vec_copy(const c_float *a, - c_float *b, - c_int n); - -/* copy integer vector a into preallocated vector b */ -void prea_int_vec_copy(const c_int *a, - c_int *b, - c_int n); - -/* set float vector to scalar */ -void vec_set_scalar(c_float *a, - c_float sc, - c_int n); - -/* set integer vector to scalar */ -void int_vec_set_scalar(c_int *a, - c_int sc, - c_int n); - -/* add scalar to vector*/ -void vec_add_scalar(c_float *a, - c_float sc, - c_int n); - -/* multiply scalar to vector */ -void vec_mult_scalar(c_float *a, - c_float sc, - c_int n); - -/* c = a + sc*b */ -void vec_add_scaled(c_float *c, - const c_float *a, - const c_float *b, - c_int n, - c_float sc); - -/* ||v||_inf */ -c_float vec_norm_inf(const c_float *v, - c_int l); - -/* ||Sv||_inf */ -c_float vec_scaled_norm_inf(const c_float *S, - const c_float *v, - c_int l); - -/* ||a - b||_inf */ -c_float vec_norm_inf_diff(const c_float *a, - const c_float *b, - c_int l); - -/* mean of vector elements */ -c_float vec_mean(const c_float *a, - c_int n); - -# if EMBEDDED != 1 - -/* Vector elementwise reciprocal b = 1./a (needed for scaling)*/ -void vec_ew_recipr(const c_float *a, - c_float *b, - c_int n); -# endif // if EMBEDDED != 1 - -/* Inner product a'b */ -c_float vec_prod(const c_float *a, - const c_float *b, - c_int n); - -/* Elementwise product a.*b stored in c*/ -void vec_ew_prod(const c_float *a, - const c_float *b, - c_float *c, - c_int n); - -# if EMBEDDED != 1 - -/* Elementwise sqrt of the vector elements */ -void vec_ew_sqrt(c_float *a, - c_int n); - -/* Elementwise max between each vector component and max_val */ -void vec_ew_max(c_float *a, - c_int n, - c_float max_val); - -/* Elementwise min between each vector component and max_val */ -void vec_ew_min(c_float *a, - c_int n, - c_float min_val); - -/* Elementwise maximum between vectors c = max(a, b) */ -void vec_ew_max_vec(const c_float *a, - const c_float *b, - c_float *c, - c_int n); - -/* Elementwise minimum between vectors c = min(a, b) */ -void vec_ew_min_vec(const c_float *a, - const c_float *b, - c_float *c, - c_int n); - -# endif // if EMBEDDED != 1 - - -/* MATRIX FUNCTIONS ----------------------------------------------------------*/ - -/* multiply scalar to matrix */ -void mat_mult_scalar(csc *A, - c_float sc); - -/* Premultiply matrix A by diagonal matrix with diagonal d, - i.e. scale the rows of A by d - */ -void mat_premult_diag(csc *A, - const c_float *d); - -/* Premultiply matrix A by diagonal matrix with diagonal d, - i.e. scale the columns of A by d - */ -void mat_postmult_diag(csc *A, - const c_float *d); - - -/* Matrix-vector multiplication - * y = A*x (if plus_eq == 0) - * y += A*x (if plus_eq == 1) - * y -= A*x (if plus_eq == -1) - */ -void mat_vec(const csc *A, - const c_float *x, - c_float *y, - c_int plus_eq); - - -/* Matrix-transpose-vector multiplication - * y = A'*x (if plus_eq == 0) - * y += A'*x (if plus_eq == 1) - * y -= A'*x (if plus_eq == -1) - * If skip_diag == 1, then diagonal elements of A are assumed to be zero. - */ -void mat_tpose_vec(const csc *A, - const c_float *x, - c_float *y, - c_int plus_eq, - c_int skip_diag); - - -# if EMBEDDED != 1 - -/** - * Infinity norm of each matrix column - * @param M Input matrix - * @param E Vector of infinity norms - * - */ -void mat_inf_norm_cols(const csc *M, - c_float *E); - -/** - * Infinity norm of each matrix row - * @param M Input matrix - * @param E Vector of infinity norms - * - */ -void mat_inf_norm_rows(const csc *M, - c_float *E); - -/** - * Infinity norm of each matrix column - * Matrix M is symmetric upper-triangular - * - * @param M Input matrix (symmetric, upper-triangular) - * @param E Vector of infinity norms - * - */ -void mat_inf_norm_cols_sym_triu(const csc *M, - c_float *E); - -# endif // EMBEDDED != 1 - -/** - * Compute quadratic form f(x) = 1/2 x' P x - * @param P quadratic matrix in CSC form (only upper triangular) - * @param x argument float vector - * @return quadratic form value - */ -c_float quad_form(const csc *P, - const c_float *x); - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef LIN_ALG_H diff --git a/include/osqp_folder/include/lin_sys.h b/include/osqp_folder/include/lin_sys.h deleted file mode 100644 index 69f3bdcf..00000000 --- a/include/osqp_folder/include/lin_sys.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef LIN_SYS_H -# define LIN_SYS_H - -/* KKT linear system definition and solution */ - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - -/** - * Load linear system solver shared library - * @param linsys_solver Linear system solver - * @return Zero on success, nonzero on failure. - */ -c_int load_linsys_solver(enum linsys_solver_type linsys_solver); - - -/** - * Unload linear system solver shared library - * @param linsys_solver Linear system solver - * @return Zero on success, nonzero on failure. - */ -c_int unload_linsys_solver(enum linsys_solver_type linsys_solver); - - -// NB: Only the upper triangular part of P is stuffed! - -/** - * Initialize linear system solver structure - * @param s Pointer to linear system solver structure - * @param P Cost function matrix - * @param A Constraint matrix - * @param sigma Algorithm parameter - * @param rho_vec Algorithm parameter - * @param linsys_solver Linear system solver - * @param polish 0/1 depending whether we are allocating for - *polishing or not - * @return Exitflag for error (0 if no errors) - */ -c_int init_linsys_solver(LinSysSolver **s, - const csc *P, - const csc *A, - c_float sigma, - const c_float *rho_vec, - enum linsys_solver_type linsys_solver, - c_int polish); - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef LIN_SYS_H diff --git a/include/osqp_folder/include/osqp.h b/include/osqp_folder/include/osqp.h deleted file mode 100644 index 296aff82..00000000 --- a/include/osqp_folder/include/osqp.h +++ /dev/null @@ -1,430 +0,0 @@ -#ifndef OSQP_H -# define OSQP_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -/* Includes */ -# include "types.h" -# include "util.h" // Needed for osqp_set_default_settings functions - - -// Library to deal with sparse matrices enabled only if embedded not defined -# ifndef EMBEDDED -# include "cs.h" -# endif // ifndef EMBEDDED - -/******************** -* Main Solver API * -********************/ - -/** - * @name Main solver API - * @{ - */ - -/** - * Set default settings from constants.h file - * assumes settings already allocated in memory - * @param settings settings structure - */ -void osqp_set_default_settings(OSQPSettings *settings); - - -# ifndef EMBEDDED - -/** - * Initialize OSQP solver allocating memory. - * - * All the inputs must be already allocated in memory before calling. - * - * It performs: - * - data and settings validation - * - problem data scaling - * - automatic parameters tuning (if enabled) - * - setup linear system solver: - * - direct solver: KKT matrix factorization is performed here - * - indirect solver: KKT matrix preconditioning is performed here - * - * NB: This is the only function that allocates dynamic memory and is not used - *during code generation - * - * @param workp Solver workspace pointer - * @param data Problem data - * @param settings Solver settings - * @return Exitflag for errors (0 if no errors) - */ -c_int osqp_setup(OSQPWorkspace** workp, const OSQPData* data, const OSQPSettings* settings); - -# endif // #ifndef EMBEDDED - -/** - * Solve quadratic program - * - * The final solver information is stored in the \a work->info structure - * - * The solution is stored in the \a work->solution structure - * - * If the problem is primal infeasible, the certificate is stored - * in \a work->delta_y - * - * If the problem is dual infeasible, the certificate is stored in \a - * work->delta_x - * - * @param work Workspace allocated - * @return Exitflag for errors - */ -c_int osqp_solve(OSQPWorkspace *work); - - -# ifndef EMBEDDED - -/** - * Cleanup workspace by deallocating memory - * - * This function is not used in code generation - * @param work Workspace - * @return Exitflag for errors - */ -c_int osqp_cleanup(OSQPWorkspace *work); - -# endif // ifndef EMBEDDED - -/** @} */ - - -/******************************************** -* Sublevel API * -* * -* Edit data without performing setup again * -********************************************/ - -/** - * @name Sublevel API - * @{ - */ - -/** - * Update linear cost in the problem - * @param work Workspace - * @param q_new New linear cost - * @return Exitflag for errors and warnings - */ -c_int osqp_update_lin_cost(OSQPWorkspace *work, - const c_float *q_new); - - -/** - * Update lower and upper bounds in the problem constraints - * @param work Workspace - * @param l_new New lower bound - * @param u_new New upper bound - * @return Exitflag: 1 if new lower bound is not <= than new upper bound - */ -c_int osqp_update_bounds(OSQPWorkspace *work, - const c_float *l_new, - const c_float *u_new); - - -/** - * Update lower bound in the problem constraints - * @param work Workspace - * @param l_new New lower bound - * @return Exitflag: 1 if new lower bound is not <= than upper bound - */ -c_int osqp_update_lower_bound(OSQPWorkspace *work, - const c_float *l_new); - - -/** - * Update upper bound in the problem constraints - * @param work Workspace - * @param u_new New upper bound - * @return Exitflag: 1 if new upper bound is not >= than lower bound - */ -c_int osqp_update_upper_bound(OSQPWorkspace *work, - const c_float *u_new); - - -/** - * Warm start primal and dual variables - * @param work Workspace structure - * @param x Primal variable - * @param y Dual variable - * @return Exitflag - */ -c_int osqp_warm_start(OSQPWorkspace *work, - const c_float *x, - const c_float *y); - - -/** - * Warm start primal variable - * @param work Workspace structure - * @param x Primal variable - * @return Exitflag - */ -c_int osqp_warm_start_x(OSQPWorkspace *work, - const c_float *x); - - -/** - * Warm start dual variable - * @param work Workspace structure - * @param y Dual variable - * @return Exitflag - */ -c_int osqp_warm_start_y(OSQPWorkspace *work, - const c_float *y); - - -# if EMBEDDED != 1 - -/** - * Update elements of matrix P (upper triangular) - * without changing sparsity structure. - * - * - * If Px_new_idx is OSQP_NULL, Px_new is assumed to be as long as P->x - * and the whole P->x is replaced. - * - * @param work Workspace structure - * @param Px_new Vector of new elements in P->x (upper triangular) - * @param Px_new_idx Index mapping new elements to positions in P->x - * @param P_new_n Number of new elements to be changed - * @return output flag: 0: OK - * 1: P_new_n > nnzP - * <0: error in the update - */ -c_int osqp_update_P(OSQPWorkspace *work, - const c_float *Px_new, - const c_int *Px_new_idx, - c_int P_new_n); - - -/** - * Update elements of matrix A without changing sparsity structure. - * - * - * If Ax_new_idx is OSQP_NULL, Ax_new is assumed to be as long as A->x - * and the whole A->x is replaced. - * - * @param work Workspace structure - * @param Ax_new Vector of new elements in A->x - * @param Ax_new_idx Index mapping new elements to positions in A->x - * @param A_new_n Number of new elements to be changed - * @return output flag: 0: OK - * 1: A_new_n > nnzA - * <0: error in the update - */ -c_int osqp_update_A(OSQPWorkspace *work, - const c_float *Ax_new, - const c_int *Ax_new_idx, - c_int A_new_n); - - -/** - * Update elements of matrix P (upper triangular) and elements of matrix A - * without changing sparsity structure. - * - * - * If Px_new_idx is OSQP_NULL, Px_new is assumed to be as long as P->x - * and the whole P->x is replaced. - * - * If Ax_new_idx is OSQP_NULL, Ax_new is assumed to be as long as A->x - * and the whole A->x is replaced. - * - * @param work Workspace structure - * @param Px_new Vector of new elements in P->x (upper triangular) - * @param Px_new_idx Index mapping new elements to positions in P->x - * @param P_new_n Number of new elements to be changed - * @param Ax_new Vector of new elements in A->x - * @param Ax_new_idx Index mapping new elements to positions in A->x - * @param A_new_n Number of new elements to be changed - * @return output flag: 0: OK - * 1: P_new_n > nnzP - * 2: A_new_n > nnzA - * <0: error in the update - */ -c_int osqp_update_P_A(OSQPWorkspace *work, - const c_float *Px_new, - const c_int *Px_new_idx, - c_int P_new_n, - const c_float *Ax_new, - const c_int *Ax_new_idx, - c_int A_new_n); - -/** - * Update rho. Limit it between RHO_MIN and RHO_MAX. - * @param work Workspace - * @param rho_new New rho setting - * @return Exitflag - */ -c_int osqp_update_rho(OSQPWorkspace *work, - c_float rho_new); - -# endif // if EMBEDDED != 1 - -/** @} */ - - -/** - * @name Update settings - * @{ - */ - - -/** - * Update max_iter setting - * @param work Workspace - * @param max_iter_new New max_iter setting - * @return Exitflag - */ -c_int osqp_update_max_iter(OSQPWorkspace *work, - c_int max_iter_new); - - -/** - * Update absolute tolernace value - * @param work Workspace - * @param eps_abs_new New absolute tolerance value - * @return Exitflag - */ -c_int osqp_update_eps_abs(OSQPWorkspace *work, - c_float eps_abs_new); - - -/** - * Update relative tolernace value - * @param work Workspace - * @param eps_rel_new New relative tolerance value - * @return Exitflag - */ -c_int osqp_update_eps_rel(OSQPWorkspace *work, - c_float eps_rel_new); - - -/** - * Update primal infeasibility tolerance - * @param work Workspace - * @param eps_prim_inf_new New primal infeasibility tolerance - * @return Exitflag - */ -c_int osqp_update_eps_prim_inf(OSQPWorkspace *work, - c_float eps_prim_inf_new); - - -/** - * Update dual infeasibility tolerance - * @param work Workspace - * @param eps_dual_inf_new New dual infeasibility tolerance - * @return Exitflag - */ -c_int osqp_update_eps_dual_inf(OSQPWorkspace *work, - c_float eps_dual_inf_new); - - -/** - * Update relaxation parameter alpha - * @param work Workspace - * @param alpha_new New relaxation parameter value - * @return Exitflag - */ -c_int osqp_update_alpha(OSQPWorkspace *work, - c_float alpha_new); - - -/** - * Update warm_start setting - * @param work Workspace - * @param warm_start_new New warm_start setting - * @return Exitflag - */ -c_int osqp_update_warm_start(OSQPWorkspace *work, - c_int warm_start_new); - - -/** - * Update scaled_termination setting - * @param work Workspace - * @param scaled_termination_new New scaled_termination setting - * @return Exitflag - */ -c_int osqp_update_scaled_termination(OSQPWorkspace *work, - c_int scaled_termination_new); - -/** - * Update check_termination setting - * @param work Workspace - * @param check_termination_new New check_termination setting - * @return Exitflag - */ -c_int osqp_update_check_termination(OSQPWorkspace *work, - c_int check_termination_new); - - -# ifndef EMBEDDED - -/** - * Update regularization parameter in polish - * @param work Workspace - * @param delta_new New regularization parameter - * @return Exitflag - */ -c_int osqp_update_delta(OSQPWorkspace *work, - c_float delta_new); - - -/** - * Update polish setting - * @param work Workspace - * @param polish_new New polish setting - * @return Exitflag - */ -c_int osqp_update_polish(OSQPWorkspace *work, - c_int polish_new); - - -/** - * Update number of iterative refinement steps in polish - * @param work Workspace - * @param polish_refine_iter_new New iterative reginement steps - * @return Exitflag - */ -c_int osqp_update_polish_refine_iter(OSQPWorkspace *work, - c_int polish_refine_iter_new); - - -/** - * Update verbose setting - * @param work Workspace - * @param verbose_new New verbose setting - * @return Exitflag - */ -c_int osqp_update_verbose(OSQPWorkspace *work, - c_int verbose_new); - - -# endif // #ifndef EMBEDDED - -# ifdef PROFILING - -/** - * Update time_limit setting - * @param work Workspace - * @param time_limit_new New time_limit setting - * @return Exitflag - */ -c_int osqp_update_time_limit(OSQPWorkspace *work, - c_float time_limit_new); -# endif // ifdef PROFILING - -/** @} */ - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef OSQP_H diff --git a/include/osqp_folder/include/osqp_configure.h b/include/osqp_folder/include/osqp_configure.h deleted file mode 100644 index 79248bc3..00000000 --- a/include/osqp_folder/include/osqp_configure.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef OSQP_CONFIGURE_H -# define OSQP_CONFIGURE_H - -# ifdef __cplusplus -extern "C" { -# endif /* ifdef __cplusplus */ - -/* DEBUG */ -/* #undef DEBUG */ - -/* Operating system */ -#define IS_LINUX -/* #undef IS_MAC */ -/* #undef IS_WINDOWS */ - -/* EMBEDDED */ -/* #undef EMBEDDED */ - -/* PRINTING */ -#define PRINTING - -/* PROFILING */ -#define PROFILING - -/* CTRLC */ -#define CTRLC - -/* DFLOAT */ -/* #undef DFLOAT */ - -/* DLONG */ -// #define DLONG - -/* ENABLE_MKL_PARDISO */ -#define ENABLE_MKL_PARDISO - -/* MEMORY MANAGEMENT */ -/* #undef OSQP_CUSTOM_MEMORY */ -#ifdef OSQP_CUSTOM_MEMORY -#include "" -#endif - - - -# ifdef __cplusplus -} -# endif /* ifdef __cplusplus */ - -#endif /* ifndef OSQP_CONFIGURE_H */ diff --git a/include/osqp_folder/include/polish.h b/include/osqp_folder/include/polish.h deleted file mode 100644 index 5a8dc28f..00000000 --- a/include/osqp_folder/include/polish.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Solution polish based on assuming the active set */ -#ifndef POLISH_H -# define POLISH_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - - -# include "types.h" - -/** - * Solution polish: Solve equality constrained QP with assumed active - *constraints - * @param work Workspace - * @return Exitflag - */ -c_int polish(OSQPWorkspace *work); - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef POLISH_H diff --git a/include/osqp_folder/include/proj.h b/include/osqp_folder/include/proj.h deleted file mode 100644 index ec0066a3..00000000 --- a/include/osqp_folder/include/proj.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef PROJ_H -# define PROJ_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" - - -/* Define Projections onto set C involved in the ADMM algorithm */ - -/** - * Project z onto \f$C = [l, u]\f$ - * @param z Vector to project - * @param work Workspace - */ -void project(OSQPWorkspace *work, - c_float *z); - - -/** - * Ensure z satisfies box constraints and y is is normal cone of z - * @param work Workspace - * @param z Primal variable z - * @param y Dual variable y - */ -void project_normalcone(OSQPWorkspace *work, - c_float *z, - c_float *y); - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef PROJ_H diff --git a/include/osqp_folder/include/scaling.h b/include/osqp_folder/include/scaling.h deleted file mode 100644 index 0df9c04d..00000000 --- a/include/osqp_folder/include/scaling.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef SCALING_H -# define SCALING_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -// Functions to scale problem data -# include "types.h" -# include "lin_alg.h" -# include "constants.h" - -// Enable data scaling if EMBEDDED is disabled or if EMBEDDED == 2 -# if EMBEDDED != 1 - -/** - * Scale problem matrices - * @param work Workspace - * @return exitflag - */ -c_int scale_data(OSQPWorkspace *work); -# endif // if EMBEDDED != 1 - - -/** - * Unscale problem matrices - * @param work Workspace - * @return exitflag - */ -c_int unscale_data(OSQPWorkspace *work); - - -/** - * Unscale solution - * @param work Workspace - * @return exitflag - */ -c_int unscale_solution(OSQPWorkspace *work); - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef SCALING_H diff --git a/include/osqp_folder/include/types.h b/include/osqp_folder/include/types.h deleted file mode 100644 index 4af5e0bd..00000000 --- a/include/osqp_folder/include/types.h +++ /dev/null @@ -1,324 +0,0 @@ -#ifndef OSQP_TYPES_H -# define OSQP_TYPES_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "glob_opts.h" -# include "constants.h" - - -/****************** -* Internal types * -******************/ - -/** - * Matrix in compressed-column or triplet form - */ -typedef struct { - c_int nzmax; ///< maximum number of entries - c_int m; ///< number of rows - c_int n; ///< number of columns - c_int *p; ///< column pointers (size n+1); col indices (size nzmax) start from 0 when using triplet format (direct KKT matrix formation) - c_int *i; ///< row indices, size nzmax starting from 0 - c_float *x; ///< numerical values, size nzmax - c_int nz; ///< number of entries in triplet matrix, -1 for csc -} csc; - -/** - * Linear system solver structure (sublevel objects initialize it differently) - */ - -typedef struct linsys_solver LinSysSolver; - -/** - * OSQP Timer for statistics - */ -typedef struct OSQP_TIMER OSQPTimer; - -/** - * Problem scaling matrices stored as vectors - */ -typedef struct { - c_float c; ///< cost function scaling - c_float *D; ///< primal variable scaling - c_float *E; ///< dual variable scaling - c_float cinv; ///< cost function rescaling - c_float *Dinv; ///< primal variable rescaling - c_float *Einv; ///< dual variable rescaling -} OSQPScaling; - -/** - * Solution structure - */ -typedef struct { - c_float *x; ///< primal solution - c_float *y; ///< Lagrange multiplier associated to \f$l <= Ax <= u\f$ -} OSQPSolution; - - -/** - * Solver return information - */ -typedef struct { - c_int iter; ///< number of iterations taken - char status[32]; ///< status string, e.g. 'solved' - c_int status_val; ///< status as c_int, defined in constants.h - -# ifndef EMBEDDED - c_int status_polish; ///< polish status: successful (1), unperformed (0), (-1) unsuccessful -# endif // ifndef EMBEDDED - - c_float obj_val; ///< primal objective - c_float pri_res; ///< norm of primal residual - c_float dua_res; ///< norm of dual residual - -# ifdef PROFILING - c_float setup_time; ///< time taken for setup phase (seconds) - c_float solve_time; ///< time taken for solve phase (seconds) - c_float update_time; ///< time taken for update phase (seconds) - c_float polish_time; ///< time taken for polish phase (seconds) - c_float run_time; ///< total time (seconds) -# endif // ifdef PROFILING - -# if EMBEDDED != 1 - c_int rho_updates; ///< number of rho updates - c_float rho_estimate; ///< best rho estimate so far from residuals -# endif // if EMBEDDED != 1 -} OSQPInfo; - - -# ifndef EMBEDDED - -/** - * Polish structure - */ -typedef struct { - csc *Ared; ///< active rows of A - ///< Ared = vstack[Alow, Aupp] - c_int n_low; ///< number of lower-active rows - c_int n_upp; ///< number of upper-active rows - c_int *A_to_Alow; ///< Maps indices in A to indices in Alow - c_int *A_to_Aupp; ///< Maps indices in A to indices in Aupp - c_int *Alow_to_A; ///< Maps indices in Alow to indices in A - c_int *Aupp_to_A; ///< Maps indices in Aupp to indices in A - c_float *x; ///< optimal x-solution obtained by polish - c_float *z; ///< optimal z-solution obtained by polish - c_float *y; ///< optimal y-solution obtained by polish - c_float obj_val; ///< objective value at polished solution - c_float pri_res; ///< primal residual at polished solution - c_float dua_res; ///< dual residual at polished solution -} OSQPPolish; -# endif // ifndef EMBEDDED - - -/********************************** -* Main structures and Data Types * -**********************************/ - -/** - * Data structure - */ -typedef struct { - c_int n; ///< number of variables n - c_int m; ///< number of constraints m - csc *P; ///< the upper triangular part of the quadratic cost matrix P in csc format (size n x n). - csc *A; ///< linear constraints matrix A in csc format (size m x n) - c_float *q; ///< dense array for linear part of cost function (size n) - c_float *l; ///< dense array for lower bound (size m) - c_float *u; ///< dense array for upper bound (size m) -} OSQPData; - - -/** - * Settings struct - */ -typedef struct { - c_float rho; ///< ADMM step rho - c_float sigma; ///< ADMM step sigma - c_int scaling; ///< heuristic data scaling iterations; if 0, then disabled. - -# if EMBEDDED != 1 - c_int adaptive_rho; ///< boolean, is rho step size adaptive? - c_int adaptive_rho_interval; ///< number of iterations between rho adaptations; if 0, then it is automatic - c_float adaptive_rho_tolerance; ///< tolerance X for adapting rho. The new rho has to be X times larger or 1/X times smaller than the current one to trigger a new factorization. -# ifdef PROFILING - c_float adaptive_rho_fraction; ///< interval for adapting rho (fraction of the setup time) -# endif // Profiling -# endif // EMBEDDED != 1 - - c_int max_iter; ///< maximum number of iterations - c_float eps_abs; ///< absolute convergence tolerance - c_float eps_rel; ///< relative convergence tolerance - c_float eps_prim_inf; ///< primal infeasibility tolerance - c_float eps_dual_inf; ///< dual infeasibility tolerance - c_float alpha; ///< relaxation parameter - enum linsys_solver_type linsys_solver; ///< linear system solver to use - -# ifndef EMBEDDED - c_float delta; ///< regularization parameter for polishing - c_int polish; ///< boolean, polish ADMM solution - c_int polish_refine_iter; ///< number of iterative refinement steps in polishing - - c_int verbose; ///< boolean, write out progress -# endif // ifndef EMBEDDED - - c_int scaled_termination; ///< boolean, use scaled termination criteria - c_int check_termination; ///< integer, check termination interval; if 0, then termination checking is disabled - c_int warm_start; ///< boolean, warm start - -# ifdef PROFILING - c_float time_limit; ///< maximum number of seconds allowed to solve the problem; if 0, then disabled -# endif // ifdef PROFILING -} OSQPSettings; - - -/** - * OSQP Workspace - */ -typedef struct { - /// Problem data to work on (possibly scaled) - OSQPData *data; - - /// Linear System solver structure - LinSysSolver *linsys_solver; - -# ifndef EMBEDDED - /// Polish structure - OSQPPolish *pol; -# endif // ifndef EMBEDDED - - /** - * @name Vector used to store a vectorized rho parameter - * @{ - */ - c_float *rho_vec; ///< vector of rho values - c_float *rho_inv_vec; ///< vector of inv rho values - - /** @} */ - -# if EMBEDDED != 1 - c_int *constr_type; ///< Type of constraints: loose (-1), equality (1), inequality (0) -# endif // if EMBEDDED != 1 - - /** - * @name Iterates - * @{ - */ - c_float *x; ///< Iterate x - c_float *y; ///< Iterate y - c_float *z; ///< Iterate z - c_float *xz_tilde; ///< Iterate xz_tilde - - c_float *x_prev; ///< Previous x - - /**< NB: Used also as workspace vector for dual residual */ - c_float *z_prev; ///< Previous z - - /**< NB: Used also as workspace vector for primal residual */ - - /** - * @name Primal and dual residuals workspace variables - * - * Needed for residuals computation, tolerances computation, - * approximate tolerances computation and adapting rho - * @{ - */ - c_float *Ax; ///< scaled A * x - c_float *Px; ///< scaled P * x - c_float *Aty; ///< scaled A * x - - /** @} */ - - /** - * @name Primal infeasibility variables - * @{ - */ - c_float *delta_y; ///< difference between consecutive dual iterates - c_float *Atdelta_y; ///< A' * delta_y - - /** @} */ - - /** - * @name Dual infeasibility variables - * @{ - */ - c_float *delta_x; ///< difference between consecutive primal iterates - c_float *Pdelta_x; ///< P * delta_x - c_float *Adelta_x; ///< A * delta_x - - /** @} */ - - /** - * @name Temporary vectors used in scaling - * @{ - */ - - c_float *D_temp; ///< temporary primal variable scaling vectors - c_float *D_temp_A; ///< temporary primal variable scaling vectors storing norms of A columns - c_float *E_temp; ///< temporary constraints scaling vectors storing norms of A' columns - - - /** @} */ - - OSQPSettings *settings; ///< problem settings - OSQPScaling *scaling; ///< scaling vectors - OSQPSolution *solution; ///< problem solution - OSQPInfo *info; ///< solver information - -# ifdef PROFILING - OSQPTimer *timer; ///< timer object - - /// flag indicating whether the solve function has been run before - c_int first_run; - - /// flag indicating whether the update_time should be cleared - c_int clear_update_time; - - /// flag indicating that osqp_update_rho is called from osqp_solve function - c_int rho_update_from_solve; -# endif // ifdef PROFILING - -# ifdef PRINTING - c_int summary_printed; ///< Has last summary been printed? (true/false) -# endif // ifdef PRINTING - -} OSQPWorkspace; - - -/** - * Define linsys_solver prototype structure - * - * NB: The details are defined when the linear solver is initialized depending - * on the choice - */ -struct linsys_solver { - enum linsys_solver_type type; ///< linear system solver type functions - c_int (*solve)(LinSysSolver *self, - c_float *b); ///< solve linear system - -# ifndef EMBEDDED - void (*free)(LinSysSolver *self); ///< free linear system solver (only in desktop version) -# endif // ifndef EMBEDDED - -# if EMBEDDED != 1 - c_int (*update_matrices)(LinSysSolver *s, - const csc *P, ///< update matrices P - const csc *A); // and A in the solver - - c_int (*update_rho_vec)(LinSysSolver *s, - const c_float *rho_vec); ///< Update rho_vec -# endif // if EMBEDDED != 1 - -# ifndef EMBEDDED - c_int nthreads; ///< number of threads active -# endif // ifndef EMBEDDED -}; - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef OSQP_TYPES_H diff --git a/include/osqp_folder/include/util.h b/include/osqp_folder/include/util.h deleted file mode 100644 index 6b2aac34..00000000 --- a/include/osqp_folder/include/util.h +++ /dev/null @@ -1,222 +0,0 @@ -#ifndef UTIL_H -# define UTIL_H - -# ifdef __cplusplus -extern "C" { -# endif // ifdef __cplusplus - -# include "types.h" -# include "constants.h" - -/****************** -* Versioning * -******************/ - -/** - * Return OSQP version - * @return OSQP version - */ -const char* osqp_version(void); - - -/********************** -* Utility Functions * -**********************/ - -# ifndef EMBEDDED - -/** - * Copy settings creating a new settings structure (uses MALLOC) - * @param settings Settings to be copied - * @return New settings structure - */ -OSQPSettings* copy_settings(const OSQPSettings *settings); - -# endif // #ifndef EMBEDDED - -/** - * Custom string copy to avoid string.h library - * @param dest destination string - * @param source source string - */ -void c_strcpy(char dest[], - const char source[]); - - -# ifdef PRINTING - -/** - * Print Header before running the algorithm - * @param work osqp workspace - */ -void print_setup_header(const OSQPWorkspace *work); - -/** - * Print header with data to be displayed per iteration - */ -void print_header(void); - -/** - * Print iteration summary - * @param work current workspace - */ -void print_summary(OSQPWorkspace *work); - -/** - * Print information after polish - * @param work current workspace - */ -void print_polish(OSQPWorkspace *work); - -/** - * Print footer when algorithm terminates - * @param info info structure - * @param polish is polish enabled? - */ -void print_footer(OSQPInfo *info, - c_int polish); - - -# endif // ifdef PRINTING - - -/********************************* -* Timer Structs and Functions * * -*********************************/ - -/*! \cond PRIVATE */ - -# ifdef PROFILING - -// Windows -# ifdef IS_WINDOWS - - // Some R packages clash with elements - // of the windows.h header, so use a - // slimmer version for conflict avoidance -# ifdef R_LANG -#define NOGDI -# endif - -# include <windows.h> - -struct OSQP_TIMER { - LARGE_INTEGER tic; - LARGE_INTEGER toc; - LARGE_INTEGER freq; -}; - -// Mac -# elif defined IS_MAC - -# include <mach/mach_time.h> - -/* Use MAC OSX mach_time for timing */ -struct OSQP_TIMER { - uint64_t tic; - uint64_t toc; - mach_timebase_info_data_t tinfo; -}; - -// Linux -# else // ifdef IS_WINDOWS - -/* Use POSIX clock_gettime() for timing on non-Windows machines */ -# include <time.h> -# include <sys/time.h> - - -struct OSQP_TIMER { - struct timespec tic; - struct timespec toc; -}; - -# endif // ifdef IS_WINDOWS - -/*! \endcond */ - -/** - * Timer Methods - */ - -/** - * Start timer - * @param t Timer object - */ -void osqp_tic(OSQPTimer *t); - -/** - * Report time - * @param t Timer object - * @return Reported time - */ -c_float osqp_toc(OSQPTimer *t); - -# endif /* END #ifdef PROFILING */ - - -/* ================================= DEBUG FUNCTIONS ======================= */ - -/*! \cond PRIVATE */ - - -# ifndef EMBEDDED - -/* Compare CSC matrices */ -c_int is_eq_csc(csc *A, - csc *B, - c_float tol); - -/* Convert sparse CSC to dense */ -c_float* csc_to_dns(csc *M); - -# endif // #ifndef EMBEDDED - - -# ifdef PRINTING -# include <stdio.h> - - -/* Print a csc sparse matrix */ -void print_csc_matrix(csc *M, - const char *name); - -/* Dump csc sparse matrix to file */ -void dump_csc_matrix(csc *M, - const char *file_name); - -/* Print a triplet format sparse matrix */ -void print_trip_matrix(csc *M, - const char *name); - -/* Print a dense matrix */ -void print_dns_matrix(c_float *M, - c_int m, - c_int n, - const char *name); - -/* Print vector */ -void print_vec(c_float *v, - c_int n, - const char *name); - -/* Dump vector to file */ -void dump_vec(c_float *v, - c_int len, - const char *file_name); - -// Print int array -void print_vec_int(c_int *x, - c_int n, - const char *name); - -# endif // ifdef PRINTING - -/*! \endcond */ - - -# ifdef __cplusplus -} -# endif // ifdef __cplusplus - -#endif // ifndef UTIL_H diff --git a/include/osqp_folder/lib/libosqp.a b/include/osqp_folder/lib/libosqp.a deleted file mode 100644 index 31059d2c104f7f6e360a8f5fadf149eec6ab2292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198166 zcmeEv4SZD9nfJ|y5J;LkC~CA?#~N#>8WRYR)UOF7a0e$41(j5E5|W9D=F4P;1Qbj= z2{Jnl(zV;#Znvdtw{>^>;jY`(mR1u`0;mZ1g&(cd+Aa~%6t_zKfcO7A=bSrdZsv-( zyY9Zf_r3XL?mhqWoaa2}InQ~{x%ZxX&e@kVbT_tKHu)lN>QSNv#kKzH_0E_%Q<BtA zHVos(hGAxYGXLRc4TJt~U+~HQ|M+bb^^^V2DF3{{|CfEu$Z-BInQUZyl>gP=H!}49 z^`{#d$MgTABSyy7zfb+&b(xW&|3CkVk)i%yZ#FXi{MSb2X={zl!WWFpl4p&~+5co@ z*6uVi>u)kLo12Zy&Mz97eV;Kh*L?Y-{r~kJjZC-yhrVEBI{%;iv61Qge`kS_nfl+@ z+1?cihl1TLoxxB~xV60@95Nc38oI&+89gCB2Umm|jYwA$BAJqcJ-rQGgoiu3dyK}; zwx(cDxS>0&$of_V!>w&iAv>%tR;i1XNF_4wTz*q<MMIk%?&@w0c87?oh^KJ4Ga26$ zX-J8uFvYj_1VP%~&=zd%Xbv^>v@UN85s3H{sHLGN*wfh-3Ac837(FOJC>fNc1cOc` zD9RO%^cau`+Te)BmQdr(!EmU%y|tr(xj_6@Ru6s}3_H};+R?L;Gg}erPQqXmZtb|S z#|U=z+|m^cb$54m8;cfSSsSdr>Z(Oo1#7AoFRq+lZ9u)jh9+pXv7s&0#6fWx?C9)n zCs`Ov8wfVF!pw+6d#ItqXzd77Z3U?e#G?V?j1Q{JWNdq+Erq(VvumZ%)g5X;)`DFU zA#NO^i%>5rsIj$6WYX2$DTD{CU-#Ssdy(Yr4Sn`yYlnT=(8so?h*~>12rCWhvQZdf zG1S!BaHGLMXHPg40T+%5cXjrJY(~(cP$!JIhvRLeyR+AU5KXXWWqUB(-5N1&i8M3? zn^6@8*CXk+Db(D+T2oc5Vj^9VsIzTFNL)6yp=J~=4G$IrHTHxBg#?#(Mmm~$QlPfZ z-cWatBU124S63?D+W<=uO_N1QhJ$?~rG~6b;Z>Uws!R#h22;c2EttO)8TA=#MGHv* zLtQ<=hUKXRA*?&pHja*3GF!OLm55bqPD#<w*45IGf+S0o0?YQJw_QDh@hw}AZ3?xa zb?Zo1XIpDeOBx7eYHsZajn@Gj!E%^iN)q_pP_V7Fy)}&1)p-+~syee}HncT%c7zNj z;KmEzVLM0LSlKkMxMGRHMGUedigct2*shNY0(pAK55hHsyBoQEQ{!$4H8i32Pzwma zup?a#DAL~E&`sWe2&5WBpt-Y?DxRDHr4*iy^9r{%igJfL8x3kVL6TQm3@(GUdZ1Dd zbTxE0v`;r0d*II+(D?fJvZt%LI~0<a4Q*{;OB9Wf_MS*PUv{;2tPrBeq>vc?i-l7N zotsF*;M>)PMjY-80!s~|Kp;cYNBa`2LB(D`7QU?$&LGv{M>^7gtsSjl2VKCwaB<z@ z;NnGrYpSmbF08Dn7HZ;VOTHF8L<C(jY%Lt>phndI6JeExI-1fFP``q%&rXZ(qpc+< z#aT|*ws0Kc7?jRvXh$hZ#c8@Y1sfW|@(P9+?nYP3RLa@)$RJFyQ(ks<ll2HHcw4BH z>M0pciSG`<>Kj8niVt_6#^MP4$70kwe05Xn3K|Twh5Az9mX%$d;S>a&KN*3Z79uyd z-k1Wx0>+WCA?fMJSX06dzSL+_2vkcVPN@|fyrrqFsZE)4ij4?sM&Un<hDK-91qwFf z4M;|yVXv@r7PMrnG`{OI<W(4#S5^h80>KbhiMVctJz)qU0s-cu0%1KQu2b?s1vRzy zbQ)<&t)h}$TXHazEcb^}sgf(AG-X#&>fC;F8;^3>^ieQqq+unDk?<SQxT$9fx4;C@ zqpBvM(k7dQLX3-?w}#rCVY<uGS!EKgpG@{H2LwIEjm4c8F=DreREV2|2HCAbV7e&^ zlNLDFvuNj3SOH4u-C%0$p>CO1q_4G&FNN4{cfPaAM7gHVDk&*v()!7_R|n>0W@O+7 zSR5G!Zi-YuI~O!013td=87CU1QMu&m#a8S+EBbng6`yFuZ(kaS*XLOAqCo7A`-#qq z-&$+M-Z*4VsVej+#D`c$yb7sTNDd>1OwW=+u*t&3naqY*1a~1ADD+tIJ};6lD=au< zE`92ddBYBbfGcKQDnpxDfSBFd!gz2SQ|It+k;)DfU=Eg6Jo+GVL~fw-G!-Hz$l}3o z5psJBx&033mvBbTS8i@Li-%UtI%L*83W`sWs6d8SoO;N-{sb00`bf!j*H<pv(rlhp z1$7_@*25Ai+6*b$3T-)YdEkNO4b8>oSp$^XAmz$pMRy?#^8S9DZ7Dq@c5P9!S@b-F zcmbJj>CGdRln&u~+lr}H>}AQ|Zen0X=k#S<w?**}#J?^|D`Y=ZX?ilL0Or~gVFq>~ z;-?~JN~RTEm1CIex3VCf3vn_6@kIrtLxK4GA}ijF|JzAlCsT|SUx1>D>cja`!XW0K zaeXdbADCsHMap_)#if8)b^ej;p`$nuX5~?)dBZ4k_J|c7%CIWt<g5uGGH)w>vWJm) zckizcnak*E?~041^hG;~4_PrZG6G#}BR)i4l*;S&e|rmx=qF(~DJ7!-2%iv1C^01) z?SoY2Sw3(K4v!u@LV<oF4a86N$GdZ^!MDxzS*$UkmYVp2qUzEYYvOazF0L&q9fH8D z6`a|ir6yP_z=TF>Hn2YGt>_nyhG$suUKqI0j5U%;imBWriZvxKAF-rr)*CdGm(OyL zmZF<;tctPKw@{h#hOI>2qa-PXvdJcP_kPn>8Re7_-fqQzPF4V!b|NFng4GR1Dnri% zA&t~0)F}l}8CQ(mc9%c;UPk!((xEL$`vrf)90);lnMWWVEI=MCk?EPhYR*N*k0Ju) zxnTkoL!ct>(IO;9;}Pw_iqA(&?nNuD^;)r!qpxtQ((;Q#&{M70DOPME>K5$>UMcoo zv-#!_Y!h`+A{#>%{DDuvU84EH+W;%SPJyE&W97A#*Hm6jUM>(n4;fqjcy^&RIApH( zLQOFHS}U>8QxgvqdSz4cCu%)b#j};>-CO(>+swN+S5A7$pSY4R1pF1-&AW#u?Wj8Y z1uJ@ZvibGlfgR>RGxT94rf&5o7NF{O_!C!o%&!fL6gj)ifq94z#5P;QuUujczjnD* zvDq@`?<zfL4ekk_Mio0J=hti)m1Z4P^s)?C!~}nAgyOEs@lSgWNwZ*&{zULdvpIE7 zO`^<Glel1tm2t@0eZY!t$$*)B+KL4V$4a+1SDHoH`F?=SX5D6lJb_QaHkJ*e)+bxh zVUNG!#qJlZ__D$=E8{o*ikHLW9X#3l@mn{CDsNf#C^gzQYT{LeIW?rMnGg>peAEM- z!eyYBxE2ZvmRpGhWBx>|$4Z=$Z&e(C)*gXO{)*i`^X^A0C%x`Z+yu=L{%D|LkI($t zqg9g*R-OF^Ka^K#e*KZEfj^i7Z-S{maWfH8vOvWP=GQj+a-J~<o}uhwJCx!A6`TFG z;?5+YCo8>qGD!MdY8fQ@R{ykJq_dht{gIl)B~zfV6QQt^tc)F{+x@#=Cn2McWL%Lr zqtJ>$5v4DZp3o{uYq+W+jnxg4D)UU}ZW~%C>n>37`|hWcy4xH642hBVnw3H7^FVPB zBkzDM2dp-SI*ZEdD{rU_lKCIq2fHTkPW=fd-ohz|IVCz2QGzYhg#8smk(Ul^O16*E zJ;`)jRdw0BkZxJ_ZYuS&@E!27yCVBWE7`}viKA2Zz|PF|l`ulRIV`du4O-NqTHEq( z@dOg}_(y$Kj8O}ysrVggWNYQ5w*ulSP_ZBQP}QWZRcHU!ioQD$l{i#2u+<zmk=sDo zuA0Q0`alJmLU&80`L!W1Vh%ZDsAp<&v7OfNAJGinKr?t2&EOC<gSW#)q=Py2qB?E2 zxNI9K1+AfO5;|?FS=QJW>#f*R)ult$w70;F8U`B0i&T;O;fh4>6+MuNrh&RIMfE*J z^%_W&eL4^e7mneg)XLb}JQwvff!oPkRP#h`EoR+g&B$pEw27!8ZY$5K`nD>NL-=z- z)THwkQc|0#%fk=LnY}*{zhfQDw<ckM$#$6jNKM6l(#52A{1wB{&2UY{J_=V&+UXm3 z#~ip1)KF=@x%S(172E1i6pBfjItdvY%CEyypl>v+X@^J=rAGsatBzQS3rf%)ORGz_ z2Qs$$cfaO`RV+#rp4bdSz1SZehF>VEx>UJ@%dF^#r>0_e_r5^ID_11S&Ir?BDSHft znEfZ>o;{W{;J4&BsPt`VhYm_Bx)lcaY~<e$JSOa0cAGXm*D~_QkWZ@ZPoy^d2(^s~ z4u>MojBbJnv;Eehe})0yLtZq#$O|{_Q-)lVsDr&Wd*I2J!pB$q7LKXhir+=uAq*8N zf82`W>T6r9c&Al8>E)WlQY5&59hnuYD%^`S!qOk9Nkqm#ST*Uz1&OMeM&;Qrqc$eM zz_(PNjdWl1RK?!2sh<YVk?KkB1rjUkE6;ur`hFIk)JoLB>hB)0Dt?RBQ#I+m%7GWn zf!ksC{)~fxiZ=iTD)v!+m9dwrb6z$F8p*K^@4LhrsVdwDp%K`Rmaz*hV>9}xa24vp zUrz?O7gs#0Vp1f-V1`_UXUT7HRkxe0auR;H2dSG3g~FGxQYTo`aOr8Nw-R4GV#Sse z?iVfQRWuM(1&?P$A2RjRXe=)g$ryQilBaaYpYbg9H8rrHg^Al{!lKJO@So%+W%GfT zoJ!3H#!>e)IBw&(Y&4`DbhYFJa;6w+FQqOBqfpVT9umz8eat>9W3Omib7XOsB#TR> zv@)mwOP)~$t;-&w;$mz`-j>Qq|HAVpjg?0Lww<zDK*5z=R@U2QILEBZ-g{^+SV75P z1ILi}JcnQ4FnNRDlA}P^6nVsv0rMl9<m@<<^w(^^7VLNXniUw!z}?P=+YR>7FiN^z z(VfosVVqfxLJIGdC>tvsLO(&JTtI@Nd{o(W7&@cK*|>z9<oHPub=h0U{o`k8HVCI= zZx+MtZIOqsLyOh!N5tJ;?9aI2!x#*GL!Y|q%Cc{|==Kbqh8$?gyQ!rZ30ToSj}gwp zy~_|=U!AW2_d^BOT~AIyjPHp5GZ?UyZbuFn=^=+}VZD6?$zfX$ocC)OsVzleg+0eD zHG<>JL^kMcAKX9&82+>v*)6r=T@c|Bbf-y8b5swa;3I@s$gIdom8=hWvy1ZGA?}-S zTPw?z%<zjMLmxC5pc~4R0cJf=+zQ($*(Kjzf>hk%qA6kkL2MuKUWY2#tdFNjBfU0f zlKKu(CP}TUNM({zEGBT~cVN9<zZmKIV^5=$e-?N3kdrd3r9l9yHJQcY7F1E}4S=em zF?wFyQu!b`mS51%xL7<007bIaa;(@9n_;vs$5=B9?4Ym3UFe(9`Ph#TXkbo>yIc~- z@21MY-6_lq)$mKZ-YHcH^yr~BCu_YQq|n#hLwxF~1<wV@bQS6p9T#d$-Hq3YI^eYG zK5=~g<92|}I$8a<qWYN;t1R`F10`UKk@q278K^@lAT$%)1!_>>*$4j$s~1H0#Ul=B zA?W=)l(8_7;bi;a>iRkrO-ay&a&g&gRg0o4L3+CMcugRsASsv9PdeG`7Oja`TQIs9 zcWw@UCiMr+OoRX^0<}rHd8V-)?z~>K;#LV-V-d!^eJOX%^4Ut!?+=_Mo*U$CHrF1c zIvmL!!Aab*R*Z$Gk#2CaU%a{ZdHm*WUhxM)@E{<_UQRwr7>hh7AEJo*!_Zy$3v=K+ z$imu!-^75h_=3U}w*}%^B%Yrf#o(SbS0eDLKi&sfd;0uw3wQV+erW^cv=vv}iybmI z@5;c>;}|e4*@b^{z*8Xz{I77ZyQq2Ne{Y1IXs|cK`I5qB^I9T%6q#@7J%<dqbci0> zpjNpg*FQqq8yU?}8ipva;k)~x2O8HxsM75qQID2nNs$`Jxbogc+9Mm>MCnB`WwuC? zSI8BClo06&h_nr3c5YN#HrP({?t6$y>`!RZR@~>oy?N5!HgTMCgQV2a@AKH~_P)_R zzL2&C5gs5Bghj$X9AYLy?9n<DR@x8LuKcfRe|r7Vtpt~69WxX6{NSRVyx^Hmab98X ziO>{1o=fqsBm*Ub8kSLeBZok)PxWYE!?<{4gTml3Ak01oRrWMhZy|nmga57--(?x@ zCT9d+DY%-`@I*1yX)=NEo03Sl&!lIST`1)ua!0PjhW(CK?w`PJMY$<YQ2@?RmBLnp zC;{`UI|J56>>xL_m%ZlNKX9Eu5nQP$vU|uw%bL~1Vh$b_$Q;~<%&j;cU#&q?Iclzt zu`r$s3Ip+ZCCN4og;B$lbt3zJ4EKts4ym!@inBmKP9jbg1Od^2JQq;g-f!M<IZL^) zh)AXY+Opzwi1CO<3^03&dB-V4$d3;XN4~@T)949+<hTpn8~aN<pAy!x3e~OpG#;pc z>o#OkFuL^v`?;U(ECx@6RkG3_5LS-CnjA>P4nbL>R~GsK6R3Q2A7`$fXKAKSwdOE= zPKc_JHb==%M{;|-gxl{TE)t&0OthkZ$?Y{CJS`7wp4uPXhev^98L8tpZa?vdcOfTH zi-SW}{3J-c4M@0>ddv8&_&-tBF^u5WaydF85_{MpJqlNOq?LSAKcW#o-HOvNlzo|E zqQdO$MP5*iJ!m6o;50DoI{ZQSLi}ch&qIY}TmSeDlp9`-N7&bK=iR))zO?fr3HxlZ zkP~+lTqC#k(eqo1gBpjWF#H%@<fd|nd|R}dbu5S7NRo^;QH<bKl4O;XDmgw>_m%3c zNC8If=D=EJJfEJU1mZ2_fq0h{Ncd{e*ZBg8zNL6*QV)m5YDl!Sn1h2%p9SUOar@v8 z5b}>q#4nzH91392Wk1s2v=<--@aRdocxdR==n$iai5Lgm8-~~F=@CZqDjO1{vm_Aj zMddDn5WaE<f^)rP#c=cAveX>76}lIh1#q7WXPhVUfUW}cT+fQ<(a<M{^T$J8a?e(5 zhbA8hHgVJfp0wBKkqj%=TVxJ=nZ-MjX%4X3qenh42i6NL%N+QsxO&?h_@=meKU`%+ zk7V27Bj&(H5%aD&@O^Rho;mPCarKw*1bVdZ!!yU3K%j?_9JZkU?O}TOyx1Dq`Zg=` zJ=EuX+~-W0-@?^vjm+(%;w0bSB;UVzEzzu1Tf=#g4<2xvc?TH~1uYR2eoEXb4Ze+` zKH^%Ci>KCypQRRl>T8kd1%=@=aV<wBbr`GE?Zy8-{NrU858jlCp1`BGB0Tyk+N@b8 zSv2yTZ>_l28a!wYJcRH==$xhR!SI!R7g;C`Vevc@MgI$mE=n7hue>~5hsd(4T>3hU zdpXSp$cO$xwFf+D9{79e1P2ddFhjYUgUcyAvh{t9>w}13#}(E(&u*f#bG#HJ(Akte zk>i0orN4OyROzHw_peaEV-Sb*fYeQNODBgB7&kjg#Up8Q>`;-9R1b3Vj-Rr7M?WSD z1so&@;Q}fAu}3Hm%0RN?a<Z1qwR<34&ETu%z_)M#Erf4>D9aXDyx0^4hp!c*-N<Ly z_w~SqI(ja<4<tPz^Q21PRkVuZdV45aWi$G>DgDz3b(*3+M_1uW>alcabQb8~kF@@8 z9SI$${?{J*jkbacnI|imi+3VWS;M0zgKN^i3?8K>VGiu1>corb`0enzN6mrXAsmQb zQBXtv_+1WU@tcW5$TSdNjMo%<%yoaDz{T@(%)z_GmB$=xVB%mw=^niMdCDITJcV~O z+g2Chw%BW3Jay~plSeV38g|b1TQPO3dDkBiR!>k4(ld2Go~aMlTzq9tWOB{Ll^%28 z+azA%WY8%W^)L`TER&U*i@V(%>8uW{O7<@wmgXc$uXB2s=C(7>WJ?o%(LL`gPyrv# z>pEseEl~MWQ4~Gr4;3cKK=tF&PrLFt@UvrPb>Qw}l8m;)SdL9KA5^dhdLA(s^}M(Q z7D$dPv-kYcg9lEP_hI`3i9)&orI_s3dQY~ZkD{Vqi~JtOeK!oWy7X1NoA{7Qo{NFj z;v!v9hvvZ4KO1|E&UxMkZCB~2#?dmcXM3YNn4=lEACvxbF&>)<ga20~wxYLts1=y& zmXN(gZ!gF&@1WTpxbzz4x(T469*4X~i5dL~f+#7EdjKseGVgetxjfuY#WdHw!Suxw z&FECP6-t$3Ml0lHml?eQmtb9vIRa5!f){r|!{!~|6Txe#3)*bn@u*0%?U&5=Z->n4 z%>zSWykIEaWg=9yYhaH#xB-F!nOkc{|19X|E;Xa4!_$EA74?W3?#ah5%WHo58{l=! zsy%R?Y^TSvH{FyS+84LJACb?2pK(3$;~jePBii@i5Q>11Irt(;9pwQg>gG4B?oAs2 zA{0ca5l8(sl>c`kv{A&h3XMeXqqw!LY}T$#I>El1vv!na^dh8$Js(qXqX%Ge7(X6M zZ=+j?&Yr(=Y<g-b$3x$Eob)q}lRoP>>7PRXc0BUmdz|z=$4Ni;IO$J1PWs<tBy~LH zec(9hqsK|V_&Dj$IZpbw-uoy$#uFcj>Ib0Wsh3TLIC=5)Nn>NAo4(nh>GBP2K<p1+ z#vwX6CWg~w(I$gt)9a}mVLc5dPPVp3+PyTbpTBzP@nRMwX3RGk-H{G2&4=~!9CaJk zXCGsVFFwa<_jYu4crkx*MX1l<k6n<1_uQT@c#WFYo*qnW_wvMb6%cd1y|s3%1S*YM zZ)*>jg}pua3Zpxe4D%NdUd+sH=(sUL-?=DWYA*WOJVTzcYLE1Uy~{%+Q%C4VlnGyE zV8*G9W2R;+gFUS`wl|E2`Fnuzu=@64e2n}6!j8~0mLEd6#!-D@LT9s0U`wZe6)`?G zWx6qI44>w7-q_K)ia#mhuMzB2q1JFqsM}lO?d<lJ8XY#S^71xxG<mramBKFec6cxK zp4)l>U^=5mL0vR;hD7bOG^_}Dn_wCp^pyc<`|#h3Tx2pLH!5A}&uv8l!4z}>`sl^W zAH8@R!mymC5MrCi5^jVk!Y;kxmWB?mFaf6fg7@6wvXJ*OK5=IF;SbzU+4M1+UBuL) zGpSA|=F(znx}89;Ji$4IzPTHds;SJ%%9IXM^QSM@(4IOPLpI@MmqPb+h%XEDPf2W= zl+2+Ed`bjc#zzd^&StMNGpa17StX@_9Q4(U%@W^#v^Iv@R-#3OdqbfPSOGDZZip{R zn)DCe>_lm_W*FnXqOr+S#5R)O=-32l`6a)PvFTD73H2NHcXz6(J8||chLJe<(~a+J zz5g<b?jI<w-1O_`o`3na7cZTeHT~!R@uMY=%5(LFbI&;N%B<5bXEwgOe0(;>MA#U6 zn8RZ)SH5=V#)`Vjrp*)ag+3YHD#C_Op5@6-FZme#cKrOgbHCs%x_Wt}BOLM0EG{c9 zxo}p5L#1m<XBC%}6_=Jy6A|9&C8e`UW|dSR@l?qmW7SngMxQ6+(|HqfX#DE~euj*r zF}yJ+-*abXWq!fhtjc_EG<$x2ZPw`-lk>fRD)T*a@^j|rRv}oef|a>O0g}~A9!u#A z!f0mZHTgM);X#mI|IkrE{BaOQBTzcNq+#C^kip|^Tod01CFY|u^X(?KMiu^_CJe_1 z7}S#7cV*7WFIb;7C*PaMo|9j6=LwbhC2J>C=9fn&X5E%KIlrVbzX*{a0x?SB&ozuC zNP32pVTkx#`QdzuGq-@xRxo-ToSp!yo#6FkevU=itetS@35o3WS$AbNfmK-Y{TJf< z#WZ|tlJZT+ob1B*irmZ^mng6$9la#;8Njts!@7@bftCspJS^j`r8wwsE!Ax_Ye9ZV zro~lQnV(aFC@;x~<16%&qzmMGGq0Jf2p8mjQC)gLwnV1kdf>X554J6n^F3g?DA%|I zG<}lhG?F7}TUBIRB*chrT7ld)&Cm?WgKtrBE~WH#9x;)}!d&A5z%R)>d~}vH-mFqs zt!Hk2PE~GZLXgiveS1NYhg%yuCem5b`!WN9=!#sn&k{*PI;4a0sgfAC6Hb?T?PSz^ zZe|@$+%9qgxtX_<fm)ysOZrn~*+0ZS(abWxJUPD{7V9w5xk8>H$%|$M(?RwAw8V-C zsHS>f&TXR}!7&-fWlZW_wrOAHPoejDstwQ2ZPlw`Zf@opJ=&j}IjV=}L623)V@WoC za2z1LBY)j*WSs`}OOH{VdpoY@aht2m?X#~f@F8FDEy;%-CDGx<|NRpCdwM#|x`xSQ zHBz0zxaK2e`h(PyZT#tIy4Wm3D$fy_Wk_X>!=(`8aDHU%Kn-x2Fb*Ri%iwn_DRGk! z$}n=c9w{PU#(rAjGKg<rl1CQk(;Zm`aT|YR8A_w6aajgl;H5dTY|opFypS&^aXlqb z!$6mhV|>1|CGM1zd;!sy^Evrb$(NICJ*XJbQBE@0wiSr;6_TEOmVVT7U=rJoj$h4z z@p`yU())B`TsLrd^0@Ne$oM2~*Lsq64oookL6a8IBk?OWj4oG7+yNW6OWbKGgAzZ@ zksvPd^Bp+*Z`h&bz`ri(MfsAEe<yL(N2{27B`(q_)G+>0;#kfk<@gDQCK;k0l2JdE z_|hcASDPeW@4$ySJi&Ovfsb%_qS4~O1>MAPcJ-8`caR&;Gcdt8JtH;dWr<IA;Pk-W zfIeU3bMof^UrrE@zLT)=CyD<>!|3uI4o|elJu3PGzL+$wT=cCEdMIO`L!L<z->VqN zv&r}bW1fTlWJ$kH_K_;trzP%miDygvJ_jF~vP62A;ox(j#LFD?GdMiaC~@Fo3^>tP z>cB6T^!*OJn!^(eddsFCS4h0qfnO={^$z@6iT{HGzh2_}I9AJmrag1LJLp>_UhB|9 zr^MfJ&_^VGvV;Cs#wQv%4qS|fCmQt*{0>Q9?!ZaPEF+grDMteICu)_;V-`@*+e_+m zod>;eNryk`g71+0>v5(-weP20=wFreLy}(I3yeuzb;0U>;Hbnm$S(L(A{!$Q<)?CO zl(<jgrvgtW|K}wAK1t8_3P>|c;nLyq*dO@iiofhKc<c_`a^X*QK=RZ}0SBZ!brK(w z__Y#mb>Y+Fg5M_j)XD*Z@b89krwjd8UGRHd@SjWmW0JqRr=l<Ds9d{DAvllUarvAJ zpFg<ZZz=w=a(EmMK3N!Y5&sf7z~Qkw@B-lJ>akGLcTE-Y@VFM2vnAets=y1yiO1^1 z|9*)p`(NzBzsUusF+B0{$PSpt^2np#g+3<fOHLPpc%{96-GzRmq_3rc9}YF%`Dcmu zOI(%r*An0G89~ouZ(Kg+!hf#|zEAN#TkugMq<0j5iSzgyB$Lp7($$O6AU+N^g28!L zFPyu?zi44FSUj_=bcPd|USSjm=1!-d68b5nAI4_V)ol7Hr=MB$Q_8>7nP@s+&)`&L zGbnZj6V4FVWsESB8G@2|&0yYTA{Fx~<IKyLri^LIn9oe6nJKQB&rIeylWAr${Y>UC zlR3=fd}lKM*_>)NU(e!HvpBY#`OFeU<KJ@5WfpUo#XM&*|5?momf*%TvpKKXOgWpm z&1TN!0_U`|Ic+)9l#AFIhFT4amPD|Z>I%*eESggp2rim8Z*ldK;F8KYf$AWyo@6fy z#j7kOm-NzCuK}x%v&0uIMS&-5Y8@%LyhES+ieG9`8%a5S<*(#IO2ixFO?Gkd*c%T( z#WGB^fD;j@WvciAHe_j}<*|}$Vku2g(sb*F@d_}+hu5p3wW5+MLaDTP58}S27^PKf zSsm~CVsb?uynYeuj}b3@Ei0)bUQ0zRnuB#mBq&!RvzO{QjwQ*0v@}{rxH;I^a<hRY z-x^zJjW4xoS;{+tBy2xMMFP6#Ia9b3+=Cm&Lj2=p7#|n8;FT`;Vi&wg;^<beIz*EH zdKdbQF8F2_T#Ta)gZPubQ}UlF{W#%MG~ALnm3NVbhcrB(;osNrD>eKvjlZ7nD;lon z`+<g27pml>aS$DJItl*@KS#r<3sv~}8cwhG6+T<TPtouN8m`OvMGe>Gq<I{4P_!=R zg&MBQIa9-RIV&|>m(#D|x}4OX(?R*_a(-FEbvYlP3dBLDYw)l1FyexLBZsKRm+Kh~ zr=f@9bGdv};?zTv?0B8{{c=d}#7~fqZV1=;e@DZ0J-_aP-z~?bPX5_)97x5!UX%X} z4ZlIdZ_@C34eysY@h{Num`2~A;YD(sN%=0+@XK8AgoZEI=zr{jk7;;Fqd$R+0|(_> zkAGEP=V*AdhR>3?Q*V_Ty<V<*4cGbfxbRt{(d&Gk)o{JMpCcp2;nds3E_l5Q{zDDd z`9JQ0zwd%K%JDquM{kceYq;LtUy!&{{)I$@gZR+UTh+_G5+{0HpTE&?-G0uH_X|Yd zs`0r<!*%)w4cF;^py4|GPb5xq>h10gjb3jr?`!mWxxPS74F}0tkAGF(poZ(^y<fw1 zdEVA=ozHBl3>?mSnXBP?y*w{*l4m*ol|1Lj`zfbBm$~4-((s!#J}+pv-X8z#f}c)K z1P94aw^mA?vm{RPT%+NiccH(`h5k+r*Y){TjgMZxKh)?uw0xh@aGlR@T==}B(d&Fx z%KJ?!SChs+uHju8{-%a6)9};eeJJq>YWTepCw<Z_rqbsF8h(a`Z_#iX<0<;5G@Ncp z75;k-KTE^k(r~YaXUY3qlILs<KS{$stKsKp_&FLrL&FO-e6EI{tKm0Eob+>xhJQ_? z|D1-us^RBp_^G5U9K`2F{3|__Yq-vTsSAFi#GQ5?)97!~`2SeLb^gz5eCU~ilILv~ z`eHe7C;1yS`WrO7MZ;HXxL)2LXt*xVZ!}!@tFKF(%B$-+Uq0V()=QBKzD&b){v8^w z>+NzfN*t6g4Z);aHs)#gG~h~aS4o`YS)t+e8vW-ryhp=z{;M=x=fBp4{|1fze2xFN zT<E{A;k_FDCXJ6S&t?tR<=Lt6(aZaiMt_0Ef4>X;Ar05%$?_sG4${A#?_@8b<Ll)V zFT>ovba~E{IPtj<|Ej*GN!(dqGc;V6=L(5C<+)13b-mr7@zLc8Y4pWLQl1VC*UKBx zaGn2`B<_@doko9=k>vjs4cGbKqv1OL?@8Rr|DQGb5+lj~=Nhi_e@Mf1{yQY@<iA^^ zFEx_<3(4u@ApPrn&ew1~-`Ns(@}H;CPX{k$4~;JL?HaDz!!sHmz26`FEJ-QkoPo3A z|JNF>%lQorr*bL!e~`FS{vT@eWg7h^4cGZ^)^MHwP8a^qX!J8R{=ajfKcL~dezK_3 z#gU1BU7pDruFG?Z#GU0mQ=^{+UP?dHHTpgcU$4>Y{QpM7b$Pz4@zLAqeH#62jsK4{ z`c)eKa}C$^@R-I&&v%c8>vH~9<D<*-2aUd5%l9n}*ZIGz;X3~bg-DFUspn5goa(Cr z|4Ps2Xt>V*^BS)6pC$2Z@X+PIRHOfb#(%Mf>-@i{;X40jiDx_bw`=qlYy6`cuJivZ z4cGa9P2$-O{(q;@U!w7UK*M$ZztnJ@|5k}-JNQ4L(O;_Z|GkFm{9n^>o&Vbs&vx+t zK%>7*<9`wjc5yh{>FFA-^Z%U0o%}D<=r0F9Wj}K@T$g`=hU@&Vap8ZxM(@-3_h`7z zf0c&o{MWkhPiXX&8vlDWT<8B!8m{yInG644YxHw8{!eMR&i@4s*ZKd^h5tc~ey+wp ziw4a&ob@|d!*%|rNZeV!XKM6S;HT<$hKB3%e?h}_{_|Y;*J$+B8vjNO*ZJS1;X3~n zF8o((^z$_ScWb!L|C<`F^Z&lYo%;EaMn7NUzeU4!{yQ{W=l`q=|KDizmd1Zn!*%{+ z8m{wy--Uk`-K^puJMrUR)vu}HI{#BNT<8B;i97W(O`~6+@qdX3anR`+{HuI_E1ydf z{zVPHTt1g};x#V#&-0NO2hpcIZ_)7Oh*SCg$V1fQ>2K1W!(5GcMIX`db`9r;l9G>3 z|3mqFgXHPf=zrycKkkCR<buEMg1_&A=V{M3ba~Ej!7p&ZFLA*GF1QzEr-ST`{?*YW zFBD#%A%K1dJ|yw4I&dRP0QWg?HBabQ4tyh31dhGpWXrQp;%a_|l4svULD(nrSNKM1 z1UU9Na5eAeeFv`Q{S?Z=D?Vx-&r%1j=HJkKA37Ahnt$^v2R<h4c%K7T^JzR%Pl}J4 zH&f=o)w~(Yfvb5leGXjBgL%Y(tNAW8-$a*R&1?A&2d?I|ES2@3<W%!oRJ|#@|7^kc z-<<RkH;S<{Nw{G-&f#uxZc$g*JE);J9O?@j#r$<o@p9}V!ay;0IBC5()V9(n#)Jaw z%SEY6i!ska4`PCb2&!{&V^7!yDL}JTFf9O|uptk8aTqF|zwqh{@h-mcW~8C)LoGpk z?S<_?{)-MT_>jp>aPafV@O0^qRkSo07362Wq)MNSh>NjGan6y?2`L@rlOtezo;Gze zgv)A`vG940d{qR|>IXeLBAy>NJv}=hp3d@r)ck!iJv}4P50$=y3{N|h{OY_2adhoW zzmGam96xZRSNc=wZvYKlJIIU;q!=8s8y5lmI_s|)7^OearVtko%Jf|hT;;FMJ%~@2 zzJwm4;qdZr@<-*b&R;?lr7ua6@Kvo$Kg)p=EgkCoSK2j4$e*<`y^hhfN~iGeNX)6f zbu#@f=_eGuDz^%M6Bp_1|M2yKqDwNS@_q{cD!m*I@Ej1Q?NZ8?diquK<i$1pI_0OZ zQ+A?TDh+B~E``KglK{@n{3iiRm;XMxxx|t0D8Dm*-cazk_H-$o<>lj}@9A>*1R)Fk z`uNfZz2##G9*#&XqSY1;$rT)8@9`9DEc&%gE>aWQd)=0l@4wIOnQYX`Z^X%2d*$RL zd_h}mET)guyS-{YQc7G+sJ*j$rI&Yf;?L6Q$t=DV#_nqkNU{=JX0?0yYxi#c`nh36 zLu*?DzC|ydyrjD|)Z`6!dOMeg8(KT?WxKbzyA#xy9EFIs*5%#U<LpED(RM_wm_)TI znK8C8^U9CZ#jZ*!a`KXvkXL;L-xCV8_fXE_>+=i67x9#nENX9O_su<B*wBY%w(|)! z32C^9|Fu8=#owM%7bCkF<9w3z3i^gE$ltJinBZi~|2KT&MP+dRW=l43M?uqln?-Hi zFto;`rAhaVS3crt&aygKw+PTJg7V)gj?U!6r`R6Gu)n353p^dYA)N=!yDdrCpfvql z(=^+brpz@|e(dwekEZFUd#@?Dri1(>X-nbf5Qu|Z9Lc9}!swuqleScP<vSHl`Ou-t zMz|dIGp>BR!fP2d46i&ZyibOUG@SCCC&MKgPW&H~VXr(>xl;Oo;~vB6qf`u9X^iVK zq^031jYD~mi>qSnfrtHcKhaSum78?u9JBd=(V^^Agp&26!gQ;duFtNOeVru<$%ZH& zRqv`kX-q}9vNv4vakIK`oQYOH+{UaQHN6_MI>(GEeVv{eu2uf(?30*Ne~&oQsh~=y z!fs>MZIa*xMJUfoe~M2daJqKtZ%7i9JJNd{VH)$MtG|0>{oN<&ss1Q$mA|S#HD*=q zN|M{(xF2iGc^eX_vZ%ClE>3BL$rvZ?R}e**le|O%&hjhy6~{Yqk*@qc>DpB}sr-5P zSLqc_{>-U+K*my;{%<Lu9Zvbv$xh@gQvQ2n0`iOL#=LH0PA(MEC_hO&>2T(cDdfS1 zwj1qH=dtz?ES+8|cNF~SW6m+<+>yVJgupNDBS_2SuKxpqR$?CZSHV)b6(iW@WEeXE z@peJmu(mO6_%vKKuuZHZY9;0*i8h0%GH2Kv_#Ux{jbRN)+7xB6*bHSGHbWWa-EW4% zr(of=$!hnTx@}l{Js(SSn$|R|DqXZIkht;)5@JUntcf>u4|c+tfc<Z<IZGxs!=Y_( ztc=6F6ArD<mnF8ssoT*!$6OjX!N4vbc?RwIL!06JCQ$LaD-zjfgiS1$N}Fmd&BhY% zShJlLE`4i@y?+z<Ad&^4UG1ji$>r&XBd=oR=HxnRSdH*%T63P)&*qyb$cv>w<+|A@ z)fu#6{25y<Ug;W}r4&7de=HPw?K5f#dMrzRHGpfddq8j-B8MZ}Xg{7ehp>+O;M;2! z5q~R@{SKJfImq=H0i8vQ=%QLa8t0vovs&NrqshPQKOsLAWX&1$OJ%U-UW#S0N$$gu zw-C4ekY#>;Czf&^rq%RQ^lPsFH5<=i-cCo`MF*Ssn0GzEal5cMHP$blZ4PXraP)8{ z7BkK<2RJ3xtwsoodp<1UvJomU2Zlvx0zzJMa0~P4EvozlbraahExZJ~>jV;Wj`(-) zhw)&|?su`-(o`c{Y|&m**q3djbm%Q}O;zDov)MMp)r&pY%xRTl*xjr5&6<qe*cmOH zy&zWhB&~To0Jerf+UNC1u_W#wEoTY)J@B<;c`JWGt$*}3#4uguFUZM^wk5;l$wrqY z!{ix91IaKswb4sdnD=ma2#^)i^f!iv2ZKCf>kqp#9mb9bQzn`Nza(NP5FxB0sq{%3 zXUvBRe<fnGDF_`({Z61Dlt>xTWl`mWLW^6&3$1Beu@&DDYxgLYLWdTQV85=sNnxz_ zShNl6$wP@~(b!dnG`tz=TQFu-43qk{1uAxiCt$@*G){Xz$Ta#JI`Az`fAm4FabQsC zyOI||8SPg3sC<z1w>%kU{auv|v;O9&FzatK6*`^%vXuRep&go}Ls5V5D)3-a%y2RA zMcCNkaF(b@8L=oQGL>RHmA@cy6biq&HGF+Kg-x9lE`!402eU^?_XsD5CHaf;P*t0; zi^b9%mF6@G41ve)-dEZ9o(<<MNMt_=?o=r-J+!Pe`rCdWk<{PEEiXCBwB_Z9ape{0 z$1iW)hn5#RWqs80Qiqhd;LoT8W3fN>z7>1RioLm?g0xB3+1B8TYx1$J5w^ThJ7=gx zu|<0>9XjxazE2NtXtsfpb6*M5pXWh$3HOYiFlRV?JKRXYij}Y?^nutNEa}dwOZQNg z*oDcg{3RK&70ZVQqFxVM?j#l*2_(*#NPCE6jQMwuQWu9!4ky6~I<s@hKcShx(1y{; zZR;MjDqcX<pA^Q5!Ba=9*wn4qE=sOTEB#L#9a=0;^-7U9WjxDIFONR1{OGkk6GZ_~ z3A97mu}e_&Atk_mXS}ltwthqzHfa4b?HmJC_N$SDY~L*ZgDn3%nAZpugY{3t6&i@# zOL4pz-#1vtZuLOp5gs3^vfMCHmIv*SMtKI+i7H#Vnn6EK^@19@Av;&Eoj<7BIZ@?- zeovN0)e~Yk6IEVhiaj<Il`8Y7tTny;?pcF<L*5*sUB;?-MczCbf7mq*Z!jD|I-;R{ z2WWiv3~2(2LT?A1Z5HD@GT5p~G``EX$9F$wLQ<?GBCYcHj!ovn#&=ZK3HJDobeV~< z9qA7?&BHs4=`f&!iEp<ucImqt(%Q>nOo#p4s(3t?ZI9=Er;X>Z#SabY*e*7Y8_(&H zLV?4P{iHx&%6Q}LHPaSjLq;suEcO+?G8?PLV=w8G$=a}UAhu+!_-*9hd9mTQuyK(G zAO-|j8T}Hq4+DkbmlPg&g7k|$l*Wx;RR5dl>_0M9|G}GKo1&M<QGEx4=uXf}^t$vC z)i9L3S}#G{pQ4ulimfuKr`Wt3KTCFC#ED_(HK}g&DcNm!M7Kd(SaX&+q$T0+()Ays zUEEvt!#LnIKVEsS=l;V{UIsr_c|}=^FtFbI)Nz%UvplZyqWwJ2%_61!_$v-$lT^`u zlJ`eHV?w+A_$#n4rD#9jqL|oW_xmGiKND5^3DSUTeEXS*_A?<}`zb=J;hQ49J!-~Y z*)*!M+mL=wBsSy{_e8P{Q9Dq6i0mEhD<}!HcBIC&{}cMS{y(XY>yM$2>yM=mMKE3; z@oPQU8?pfX@GkC~wo*mMdy8;04Ckj00MIMh<4Nr4;lUml$?+r)nDTi%xiDos$q@_1 zcyggVo)jqgX&O&%wi2r_0DluVTznf7NKC!l9#3v9-JUw0q-|tV##c|u@#G#JPvR!+ zIL22fy9dLXH4CwSYe7xojLq`?&mYgk9_%@RiXqyt;o2hF|CQ{_AE$lgJ#=GUmyN9C zmY1N5yo&q$oEmJ@x#cbVsry&K-&~)KAro!BDYpg3pl<78jCcL<ll*aPoKUgDOn8_C zc_qrI$20t~?N;Ij?83bpTPxNivUlLQz;ry=K>zosRk0VRq3WDR&4K%gHu{%I=GyO5 z<;Boz{SFm3dU>E?JGQOfjy{yP*5$D{<R)V@{L`?{n<u{}QF+9l@i?|t-AT7Oct-IG z?k8(9p2ha77#x%WxxgSFot;g$N6<WW5T2Gj0fyuWR19~&8pwF9reZYg@h7tPfFVY< zl7DmyO7$Bn_FHrCRQO-&?r1M+IU?{UrtT2^7d9G*4#AUiGT&j^Mf$Y^!^)qN0uDT& zj~}*IF2O+fYHUA)w~SAjgMUqBrrq69izliLz)G<_&C5JYrY+VBYU0=`^NQ#tyN&R5 zrQ2zTh9!1AXK(k%!`mV2*y>rd@3_|=zpb!H<xh1z;*Vo%F}eY)z<pF*)e{(uOvUbP zOX(goGx8ECCQz|E@_-t8V_XA!!9J_k%1r-=QOeQCAZ7ew>2_g9TE5eh`69nOM}7g7 zp9lHz9^ILdy_BcFVn^iXB2W8y5A8Wm>Va;s6DRsqY`2Ob)Zq7^CG6bfsTn-D=8Of2 zsRt1@SW5xgq={9<yE8!<g#`<um%L$wZ>XV%0Iv}tbarsfLR#-Xp1sqG-?kI_I=s4! zlv~8Ylib*O8TLGN2-j8EF_*WC6>2*y?;!IYi(vC^($;9?r^!90^ygLaUg)jUBP4)o z|8mqE48wj{mff~2s-1ppd9VpI9-2vc{1s0`emZ(HXLHb8Pj}xKf9@&Wj(ujbcS0{a z*%MS!dA(dz8W{TNKRy+W0-G0A>_8hJ%RzKDhL3fm0^DYkapQT5$ZWSN{C!&Cp;~NX zNxKJdmg@dT%hx|XUuB=i$bVUy{Hd@TN7o=j)E8}f6NujkyLi=HzY*%i9VX0!o~YvT zgJe5GvCbth5U(y^L9rn`_N~O$HoLI3%`Vu(w$<3bHd1upJlU@EFn}u_UNITJyLxLt zO|sBKoV=$%9KMhgg)J|!;UQREOCwd0qW5W?F0xlVkHX+EQ1MFSF4@MeedNH8C?7KP z59qF#cl~ws0#>}5+`PH|yRrzXI8+oWNKGOSHzefWQH$8nsA9+JHY>i`%Oxt-{7(k9 zvhw6;C94x9+e{^+bm21C%yU$@XURyofVgAWE6d19dmp0#piB^XlG+W-q^4rn9HiaT zU>w+N7`H$u<#$P{Wd14jbq`lk`uc+KTu%_>OscoiJwlI=&5DPggQR1tuL{I#yr|Hk z10~9yxG)viNH~}W4~MG44Syo<F@#B6^v>)B!v$#Fp6ns&4Y`1LDtzsh1DkO_A?xYu zqMkNfy%-vX^Q1kQJ5dENb-u$zPe>6;I^1I|h)><JFur69TH2n~5p<PaJdWjl@WAwB z`B$%iXDwpwL4rIIh!UW^<?Y0yINGKfH<00(kSq)RQ{+k7=#Y2C!Hqbn+%r{6gCf$V z$#r<Jjl0grsK@hH>^BGLhCx<>>c`!;;}JWX@GKWO!zH;_3NfK_qBc{eycqVfM{351 z+|pp&76w#zIBa?mbpH0I0?u{DRe0a!#((i#4|;d1=6ak$PlYnE(6(GKxSAG&&iv{Y ztQWi$iv&MT6F}%4R6q(FlxM=~<+XZON?2H8I^8;n(KmW@5FOo{&~Y*4kAtxL`6?BA zL}GuGXQJEdz={xlU1I3Q^|h`2RGb^_)sGkC()+stnI}EgH*V%Nx;to%Zi*|DalcN+ zb*s2q8TTiO>)~|kDUM`nlW}Uk59zpHVwrRvr{jSX9T$S+eo4O&*9Mkoj%Low_cmaW zWn_Z2(xdd$p35)kMu`pwVXr$d%3r-4<#klY<-aZ^f1+3KPCp7g<ylVx;don|SdOs7 zlucNOQ|q1bdZ>%@J?m+0_ynyDe`hvU*j{@=b$&^7Lgv9O`9&}~FO04LtGRoyntKiw zF^^7Id%~UBiLCXRW#IL+<j;1?>s(jS`uMztdFEH_ik_dFd6Qc5nr%0ao{8hQkkVrf z?gYtjC#73UGDJ^UknhX<)?`S)tDcKR>9O4V>kbG@?DP8L%OpQ~ccHDN&TD#S{@9j- z$ax*XJ0<-qM2|JJ?X};%nNJ96ETs)<vSogqfHOTA8^`<mcCif7$E%Vr*IAOUg|*`U z&E{+6-kM(kWg!b<>2{C_{ogQ`i*!osb*p2ty1?0ej+dCZrIGSwx;a}Ek#6pn!1)m> zr&T}PSEpHj`?E}-OD9rL9n<>T)Q0p!_>Re1$wVyG^Z1!MhVcc)_1RJk@K3sRXnly$ z=b~{N0!DLD2=_`KqI`Fw#FZaYZMsY1`yBLNmbj1F7!Kv{<G3dN{SsF`|1OCSNgG!9 zw<WHo*(u-uBZ-gkGjzjH_+g3fn}7=(+y~%HKHRBeihs%lr#Uz2=zj;C<S&t`=6(a% zTM{3WIQJRAGN2ctzh9at_ZPrvJv+vwDXPAL`Xj>kNu2u&&=*R4Oqvk)3&76@o=(mZ zN$;Zuf<yHWq*s<dFBK<$Ot@E?H2V;cT&?Ky1--(X6n~l&gG2fKu)?KK%1#C)zER?8 zJ?yVbe2ga1;81q>9pLH8MeFpDoSu^eJ^OH6{+q;oCkvc?F)p`CoEN=9_!SXt?3MV~ zDFXPh#NU$m##05L%1i6|rITke>^L26*pq4;>#dfGRYZA#&{AF?w3L@2oxzB`bm~V~ zE0aj<r9$;Uu&K4VnOECv4>fccSUWOE(b~G7I(J%3(y@?b`st$Bqzsc2jrLG`W7kUT zS{7=cjg^=+ug00WHYf4KLYvsIs<lhxz-xm_Sij~~P9={0w^$maY;WzbFB|$O8#{>k zN))8!KlSxDDGVVPYHDq`kqNMAQaBaiq?p4U3Nt}+0Z~ei#XE&k8#~*?%B42a-P!9v zh$e{dn}XPWDWVPWQ)bbs6+4AJT?9L#gWMlADK$s-D=zq(F8JHhzh#4mSL2f}{SV=1 zYxoiAe<)vSvMS$Gm7f7dcC7H_8m`md=7L`&{S4(xeVXEPru-0w@KO!8WczjEA=!SN zc)P@%dOJt9Unl(~5_i&{EZen{{#=PW>9=S&xhPexo9PAt2ho#C6yB}jRCI-}kvQc$ zTf+x6dQyp^|B4I!-)eZdM(@Qn9V8F^tD{z4DBLUUsmX!&OT5p4@00kQ4%{a*+33Lg zCH`*?T=nbQ9JuP&Uvl88UmtVes$W-oL#cA9{<vJqt8mpHFLB_iKkjnk(!K{AxayCo zpP|F%FZ*M)*OS6kzdPojFOmIjHW6xkRKHv1z)NJm+vLD~vfu4<;<7WMb?9~e8zsKi zfvbMk`CY2&U+d*~jFQp6>R&fFaMi#5%7Lr?b-x2w{p%<GeJFhrDyQd*uSNfNeINQy zvVC*q;YU`R3c7wDTEY)^G3Qv;FQp^XlWzZ*--o{D$X8`3%~u8aewTR4>a_8Xnx6Uq z;wihY<4*6B>78@+RsOQM*nE}z>b%G${b5=DX?99+q4cNH(_DGFmTI=Ci%t`l&O1Dn zUJ*9qg3`-wQNe~!ruW*2xKQ=4&SAjm($~xMicYan`K$AnWcm_CAkSSg{VWGgdC{TH zf2Cb>g#7uwOs`{ft<ov{I}&s1?>?EnfI3L+P;x8io46nnp9180-Ff1Ir(@!h^gy>V zD!npq>cgG33&`+&o_;_6_n|}L#^0XvPx;W0#hE{KFX{3xI0q3pPIM^7sXtm*-kzxM z^<tyX<RPxb?<_e(f5yy`S!GP}(dX(vI3Q%9Umsuk`1?>ieCNAEYh=EM>>Odf`$m`_ zqaw_sG=#mB3}My^!sQ#$Um?t1YGi(kh@P^@hqyipSR;4z<3y^#dx}LC!s~EN#mD6a zoag`tmH_7qMR>}oh`tBcWIwpvh!Z6O6TD0sx#K=u(}8dhulA<gSVHV;>1Qc^I_vQ> zze~(rth`pd+?VfP-@z+bf9x5&`zYT}Eb#tGeiO^@3e3U1aAJYvY)%zPHE0fQLgYgv z3KQE5Vq46CuOiAH%PxG_3(90nbT1_wSb<n8Hp2MB<r;-Q_J|eBG6$|Ef_OFlS9^#J zu5<kMOJI8GMIp=ziQr}5In0LuyeK-yAHA*6gFH?o32^Pj^#o?Oy1*vH`&%X~K;$SY z7>w}pXLXT~6anIfNfoP0boK~@a_BAOz%!gC%Zm0Dfx{0d6zwa)<+pID-c8ofgxBY+ z*b@2f+QJ)tFvgtGxdn*eylMuIBIq>-8i@zq{tbK)7Z2q?CxO_%3vo~<vAIR&0DY?y zh_6<$M>$rKq9W&(Sfmq1uSi^S3C95T5$t6+5Id?+i%{`SU9k|N)jHWOB}$<>3-6Yp zbQA-8%ju>4SBGgv&Q~|*>^28C!fByA^okz(#an1|Ai>b9;WKNPmR^tx+At!xxHr>< zoCgtr;*~H$-groq7TML47)44cIIEJhB;`|yLEc5EP=-d^N2t<;;t=hJwkbkRF_5fT z9np2lIu&m=(I~Z67Ll}p(qirgDF=FqQcHzWeCAiTVloBFJL!<n)TABI4m6gt1JecI z1z<_6CQ=xxw}GLz$LosLM`2xEjtjjp#-a}*FLU5L;Qr`pSp8rd(T+rifYX7?jeNnE z_a!gySC>-tR-Ado`&vY)l70XT!FLy0yri+>Gpxj|Xf9V2&^)>LH3e01UyBuA;epHY z2^~UQ^=<u#Ie0e`KimR7iZ|<UE<S~5M-0{aLOFk2l@4do0=4R5gl$|HqohGoQWb5* z+u?Lj!CaYmHG7as2}eWWBF<bUDo5q&VV@Oyl*6bY;$Vr@xZRS_x}T=8udd|l1p z+u;hBb0umL_Ka#Cshad8=4?`hPdXy2`cL#4S(thZiMaauaq$p!+9~c**wZ$^=D-a^ zicE`=6oJ?qkd0j_B9#UYl92eagtou~@5m%bWe%Q28LV?=0F&Is+{sguGDdtQ2*WnE zzKwUtTx=`;&qQOzH<5$3Myi(zit2iKZjt9MI?E(%F;@I;N{KF}x)#>957#6oE}2SP zj^RXy6@73Wona`TnA0b&r+m2|7x?mp<Qs_|CKLzWOP818t+bevRT<opVjQSbHf_!& z5PL_c@jj$u1Z@ih_ahk2qgFRaH^($LNWKZ5ATvm^9|dA;D8<J_Z!?Eda?HZgxao7) z%Tb6Z8tr};vtc$oT!K^r92^od3;_v$oqDf8;(|vJu-mLOJ~)Y_L#^Si2Hn{Rrqn$_ z)K&~m7A0b?Tr%qEsJ<DI77B+^LNfr!{gBC^J(6#R!x<<b9R7CTG0dM~%bUQ++vdOr zKvL9*?$)8kM}gc2F=S>3r5f?A7t(U)_n>0?6S|NNWb|L((*iRQBj$2I_X8*5ft?z7 zU@{B_8&>pT;-3K-(WzPSJ09eMzlYHb*$P`w{NcR>#{1WCobubs3rSNl2Umgv3v0#W z%qIGajYxs!G@p1!SC$**`cFXwD>1hukhrzBy7bjwa}G4HNX+H_Ee98H0?@RY+jL1` zAa+FZW%XiMA%e<fx}2G4aHul2)g1gA>fNH7_K`dgd>4yF-@M9}hK5j21GOgE!D5aF zOhXm~lQLceLF_)H!VH$jR%M21qSCM#EoG(s%RR&u?r4=2+i!itdI!#DPo&+7{$d>> zj4;Zx-}+_lbN6;#I{CSKt#@9d@bKZwt&G>K;ddwUoYw5WhMVlCNkCQwrfJd^I9Bun z)XVvF1>^F<#ghwqxw`Zqmu$2YF;LO~<pE-mnK?+`+d#7*gUSnxaJ3b`#Y<D!2MVaX znuO<96M8yjpj1ec_&y+Ai7HIarLm%qVoGCcxtX|0m|x_4nu|8Dj1?;jidnv!4wE$I z!0o`36T&Px{#(U`5&lZrO;}5m;Ar-M7~vK9qwhn$L4de=*Btn+E~)U4sItL+D!%ZW ztQgcUnICz=rKn!2YYYnejBu_My}bx3rG2rLF_?o_K`W@;`Sqyt`531!o!^3_^ShLf zlpd4~btFoyf(~==OG28`7dcarGd!h*C2NwdGFd-LUQY`$n$nhHXQOw2Kr{OITgu}! zmGERXlflX40#eQ7)k<z%mE_K4!&KEQYIpQSWUJ;Z3Hg))S!sd_y0OqS>ii{S^DAz% z;$LEWhj%Pur}ihXM-$nOf11^cCIN-w3)pS+gYSathN0A5m@I~Q&{N<gIS&xB!vqsd zRNV#A3pQJ^O0V)Aaa>l2jLaIDAt177bD$G)+g80CfzflhBvq(aT?aw|qD->rnoW|e zH!>%7SCzjaJqc}%4&&LloCBvdJ?1p}B;q#6!hT8>7Uf*ZH>9H{!N)gmAd7<5QY}h! z%ammF+bpmT@(KeT*$TIPbW^gb5|<L4$niT&+)serQe_qX1A0H2^(P2dQ(q|MzJu#< z#8*$rM$bl!%uDElZgFlwN$e3v4~BGN8Z@<>^3f#}DUs1;1lW!g!Zlw6ab<dHucKF| zrFw(J7VUHNQqEBo88WG1Pl`{7%%c8nkW|9;X(b{@$^8lOq=}3Ua&%XpC_0x#Q`&)F zDf-c{)*~u?3m-B1XNr<T5%f&r)wPvw{+?bnGfAa9G#odHZ}cseic5$OEro1HxN)jd zBOppWI)uwWysgm74R!RNxh@BYIn7n2d63j=SCXTNPqbq1LFxDeBHoAL#nG@F;K#E7 zVBU5r0EeFnpsA(;C8>ZMhQoIbA$Q7X8TgU_;XGk5GA7=~yqzG6<ODg>RM5_6(?-tc zX!r!le$#zU;C=^ydmV_AD?h^sXCB=pT|K%w2%Kx*G{qjZ;&UMpOnfczi1)E1lVnba ziuZB(QxH~S3c@8#L2$2qG@OF?#vzsiv5R~w=b*}aD|5F)ETJ7@>Ff~aVTYK%9jc|= z?9kGb5KC*v)u+U@q=dRsLVbE@Q@^7cHm!348=Qa`5GCc>L>;ouG`fv}p>U}cXDMwf z;RvVYF=*>iG$gIq;$|rcC`S=}1VjA&G&_0&jfPZ+{3V1j2mT#G$cAQ*ga4TXLsOHZ z-q@e_1Aqx(*@ZW)c$e3T%h9LsAQ)MAj7UX_YaQQ}q9gE8x9_VbDd=V@`OOd7@7+V3 z1u<WR`v(Yp$j((oqS?hu(5qx}%z^cGzb*az9gGtn<??4yM`Vu=olcH>32l5w`nVJR zoF<JY?+QKzggzx#+IR}jDLEs|na0DwD|0Z?T|=|;t7&AMW!~{sNPzFirvR#Yl(6hA z<{h__SUekiSLBcAxQo<x>HauI{;`*>crA+ERU$bL6tcOHX3fC|kk%jnRU!3e9Iu`{ z5xAEa$F|t%h)C157>YsFKHPJN$Hn6(U@P}eUGF$|e%*rvV?39vFIRm(4R3Din@bk& zDzfl_fImJ^I0QDd&>@_+l$IW*c9porkLIBElxTL(<ft!tOyRU&nxy4!zpQ8R1V;K! zHehq`agvYv5>TK@XF@K>-bEINZ&r#Y^fsebPf6wvJe#KTXK(EdsH#1X(h5`~6s<u$ z*Fmn1O46Dojo&_AJyEmbs^XT#<3N-}s2^E6wLdxq+D#oNjc-3cqh5P_vl0C>`;U*Q ze_`jx(mxAN`kw$bXQb0VeGrp9{J&ZMY~KHU`j`G2-kQG|5f3k-4{n4l8#GXY&&Kok zXRJ8Jwzk`bUG(5C4bHq)4WZ=VlRWusZUl>c^gxwT^@-aR&27v2AL*xT$U7YP8a>aV zwj=#GrCSAeo$AMtDSa%Y8>4E7NO~(`yHqSHT@L6wY&#uqh_Lcxdt`gO1JW$k9^xof z%#o@{(Sug#>FEoNehO}He0l$c%PR{@>U5U(z)v=$X*eHU-sQHu&`O$G3ZuUj)p*<* z6=m|FmrT~*SG4DmwyRCoKi-Q+1@fC*t&gPp-=xR&$DV-6`D6dVZl2}zc~A=c`|$X> zY*$Ui8>=VLQ|ZBN<f`Q`BHrbpXEcLP6Ek|SLbgpGQbM;VDzhl!57$L~;6eDK^x32* z`w?=#{)$I=aiPuVUy03XViU(uc`j_~$^!Jccyc*%v=&!l^duj%Q&#IXupB&yl0rLu zG!3G}<KK_a501faZm@5@R<H#_LF(pB*xlek*t^FZJPpzG%zS+{F6^TA75NkNuvM*j zve{qp2(5Xt84p__tUr3Bz+C$|Tm@qL)R*UhiZOh^yj3ne<6+$tss&G`O!Q;vCOlm$ z-BW`FocxKrY+iomuv~s-5iLK150|IVXI=PE+k+3lu=>n!FFsg)3!hS-gjL^AETM1= z<g!Obze?S`{VnY=`>m?jpQ>W7rN3#kM;Y|dGc=5ra!h{dIgOU3>$FOTHfWLyd)XR! zeRQ|>T!F@aAJ@KNRsUK0CKmsX*f)y$|Lyyew(peJ9!2Oa19(?cuby8&OnwhfhJQw$ z(7ySrp-B*Um+X%{=a2n45PL#;#~FC_LoXuXTCw~|++x>Gi<XBc;WJY6PT^1Ip`PK? z;q|R}_87bqzdBld16*#n&b|2j@>+EERk1_qTRBD}MLhXPd1btmv+oCme^vd-Z731F zcN@4FeHUJnuDM8avRZ$FZ^K8(N1#^`{$Yr`+;dnPh&rQY=JNKM&x^z;k%h*}_f_#F zsr?YXshyI&o6?~h5|92qVmI^^NQmx<?&(~*ArzbM=j}I<n*WWv-j|)v{ZYF6iU7T5 z;wt70sZLR0G<zWBHnA$Und4JF)h&{@8%bG&-<JK{=m~beN4enTINl1XV$tm_Wd=R+ zJdQ5U=u!yD`ox=(9K0v{HTiMw`9bs{?t&gm3X!9KL7(_T1hqa9-_DC=NqIT8aeZO{ zYY^m=?m<uJpEg3hV@+Za_l;PA^doeP?}?7_M2M<&FQb{PZ@l+hKg3Vh<?sd1;IJ$g z1}gqUHI^~MDhRxc9J=(=s0=JVeW?_P;jP#!Sd-+n%khOg#NW+b`W`Gx0{g5sl3ltL z+eV%Ev|XUj3M8x}HHl>>8&<}<_L_2ell-wKOSkiyBx+$fyfBdq%hhDO8^F>=1E)dE zLvzJK6ttGmbE6Z1$mi(k>_*gMij6o7WON31tv-|sHmi-@lP#9tbJOE(JP*SA0v^io z$U@vsZ$|(8AfA@1wa-M`)Ch(n2S$S+kaAKRr&oXUCI;&q&@B;Op%!m5qt~-~A0C6z z8IjK=pY2Q|T(mc^g*)Ri;NAn5_~lm{h$mwOqhXWpknwT<FzgZuCi3kJRr43X2nqNB zOCUbC2usS)=)8cJkv)^L#n5Vpz19N~F7{GEaAV60!O;S0*_kLd78)21UkX=*A@H6s zmUehIBeEZyCxY-5k*W@BKisg7Q{$&lrHWvIn10HMN4zxB_2LbmDDru-kjYo~a;}6$ zJ{*sW=G24LoO)E1hi-V7&mr^r6NulaDckWl|AI7D{pcoYrytKo*nu2~k)}p@^sAW( z8%OF|j7P(b@TqG~vG4D?Fe?M%%KNhv8R&jk?>dwPqN2t><6=4J1{cgQ?wm=*eptH? z>L&m_X1Gzj<tyISJ4Ffs9r%2Z0&6+^kL7Ru59eR|Kb-&4PbPoyHY(hyY@p{%I0bGZ zJtt|_P!ESprj%+AAIlbn-D&nnjJaWuosvD$0=&H^+YRFWjWASbWBl{p|EBif%zwit zo&Vt5eMx_C|2-=Earck^P35<3LH7q;pNu`C{(D&e=i2q()rU)Zx{OyKEjS5V_yqkU z{Igyk{Yr#Ssy>|dxK0V+b39M@@3Duu${u=8OL~O<`;-u*4#;sSpWse-xRLC9)OgF$ z|HzGw@bxctoQZUWLrq3^q{AC-Z4Y7RrFQJagpY$8TL7mnnllgEH(_(8?v_q(qzgNq zgbccDkMx9TGbMbfi!GT}gz!~vU$7Od$H#=adV&qhd+dmg&W?`Ijo85nsVEK`sHBZ+ zXzOZeuw#~o!o8tT2fm$X=xFjzH=06i;bg2WhSAp93n7+wMnI*66j->Wp~KtR?G0gB zpElYHN-X=sq!`e3b&X4RBQ!!q8kbVbgerlKj!>_+BhtPc<ekmlP+N%hFYNIao!dIi zo5IJA!UkBi9B-%B_Og;I6G7CT)}~N%D>l9g*>uO9Ph~P6(s);QYdd{3Z7WEx63)fo znrVWfjz!no(A^%y=8WB8Y~$4#X=@^@2(^Y=pokJucd205)7Str3PPRuMx3|r`fz$! zV&ly&<hr<Boo%f>E$+NTJd6xF45eDA&IX^UcQ5bk3Ar+&b`lirM444edZ{*pzV!); zh7wGsQL#o!yv#Ehi7P$*vEs*<Ej9f|i%-cuC4Z6LJ)YZOYII8aW5tiFV@LUq6+hml zQp<m=_@wP73!&@(Sn=$kl1ceWPk*d<YKy9kDK>igj}ouivRnFN#l!omq~qk5-uXl0 z;n_cSyy`P_2739A6_1W6#onCZ+F)f$yfa*hjP?AS;aW$$9ZniXaHTH1qSxa4K0H1p zf9`{VvO|*Tboq`I&)w38q(4?X=bT!dDe@gFo|aE(#L^ukI?K)5K#GE-4~N2$E)oCD zZ_x3J%M%BGy78T@_g^N^sXl=}fBF0W_@_NJ%WE&caPAogUYT|J<pTf9<$?}t?C~+p zC(ado?jI<oD#an!;`80*;~;$^`Cq&yp9hT3kj!6{=O&y><n_%txWKApchS0K>uK$@ zME0EgqB~Eh$}d?vp)$WbI<Y3dE9-A2OwKQ#n_q$@%|HTDv5;A1Zsrn1RE~?7mkYKn z_@{doI_{$f4%qu~Ts}xE^Ql5US7m`+)fVvEiku!tR!<<WomjN($^4uJxmkakm7lX^ z>*G)CeDcctuIR+I6Ye}Ak-a|aE?&cpmQ|*M*HBBYS%$UPvgUwqK^3o5HaB;kx&$rh z;S!lHgU$==HPnzUvmMFiZb7=O`8if@W((!c>p*qMG_-~gl}j#jDAs9vY_hfnUUhCC z1?S0S55c9K%OJjo<?%6C^o`H^Are{UJumlGgyz|y%=s*d;PJkc<>T@o9r*BYo(_i& z=0gV!nhyNAnO&T-7qn_kzVA{(=q;L=S%aeH_;ZQIFo@<J$ycMfg=ngCYng_;yxRBt zd7_0b$F1WB8^Jn$V@Nk{AwMfOYheaOK))#~{LRa~jRb|MT&b`1NBLcV3Ac2768X`5 zxo^q*UdTouU0c)JKz-&GG=X{JS`_SNAGM8f5m-#HJ8g>jxmi;)5mPfRNp&u-t5Zhu z;CPzsXCc)esyl0X#$>THBy#NGI+}{;dP&RuN_W1eJ3q%Dyw3&S;DX=hf)Ay^z2LuB z;t5<EXuvm5rsWJXeK=WULL|fcY0?rtl^<UjhEwJXTyShWz=xB5nZ#oh3qMJPC;nj< z`a50l?@7Fl_+XvSh0vkfK~?fUv1TGkL~9@xNm<E{t0QaNN*h>X4Ut4&;Gi#*c#Z?7 zH6e(8Ox78{RFD~DrR>luz$!_9zoe&ijp(=r|HNmP18<Uem&6N*7{?0y6a5AUJ|OWD z2mUpQ*E;a;N!%-O>R;*jSNs!yR2m;@O^zXn?~^`2;X5ThByqLY$Uceha^Uo)mH2OT z-~buF-+|{#ykFu<POrq(nmY<FmUz8`-Y4-c2fk3^UWu!Ete3dYfp<uJpX?8){m{`b zaYNE8e7(dsI_Nh_e8_?SSmN~(KTWVVh9utaz;{aA>%jL(+~>gGkT}KDq3Y299oM_0 zS9rd}H%fZB^p`>T5&e(@r~OF@ub22)A{*|P3Ga8{3njf*;-8W9^%D0v@D7RZlXObX zeu*2BUg7H{zERSvcDGUDLk|4M60euIl7C3z{SJJm#Jv(%^}bKyJ_r7W#3gJfeNy=N z*Jjndn&L=&@{$30^*-{YRoT2UtWFthuai(SsmBC~r=r-~TH>m`sd$gXm7h}h$r3M8 zfIQRJoFq?)13ydR<qrH@iCYewK075oJ_k-8osM5o3G2*BT-kw2cB#bWk~a!A=1SZt zkDqb68Av@AN!&?)wZ!{U$&KqI{-6VIkoZ0aek0?PjHM2|UE=i)yhq}-4tyo!6O088 z{C0^49XNg6O8Vq6g%%f=_}^$4U4Dh}iT0YgD*EdZw`4n2_}?);iSM-(M(2Aa|9{az zT>qowqwZf+^iL#ykAweDB~Ei$^<$Id|D+D$dRWqrIp{|u?&0>7O!S1r%N_Vr5?|`T zDP_8~m7fPat>vl?b+7xD#P`VvzTd_55#Y|YNF-Cyf2YGg>w?o5IvxGRF8CZ5{0bNR z5-gyQj{i~@`bHQ078l%f;lJ92p2kn<<oUJ>{sR|$GF(79J`cFiZv{^ETRTZqBtK8U z<!%@HH(hYLS4fv{9>%HZ@RMEe&$!^{x!@PO;Iwo?x_l>~V@Zc!=|bP^f=68Nuejjf zalz@{C7nF~=z{;u1>fR=KjnhYa?!&+7y5%P_@9BZf0!cdN3FA;>0<vmF8HTh@XrD# z{`GPo!_QHW)od5~Y8SlL1z+ZZw*jYoyW{|zpGP6z+g<3_OM0&yK=Csp(0^az8w-Sf z6#kH+KV9IeTsvL(KP%}=J}v0KD^A9KiSKjZ?@D}wd`QX9WRNDu#Xp=3oXaZ*n2P=! ziPwHsWXR82a5+QbCFcp8pLO7JuEagl1g`q$r4rxZz}pnP9Ox+eens!VzoF>QPv!rw zieBRUTmvMJNZfltD*cNR-{`>KRrD98(ifn;kbX8g@Xt%!TP*1LSq3gImH7P<SLIqJ z@sf*D`FAOLiPwo}@nF5U5et+zM>-mV!Qz>-W|ZlnG78PRdg0t9{zVHpzHGK0KeOB! zKPx4E)+}fIY)WD0Hk+tZ_?K7c@#QJh6?$lP$qbEhc8ODx*`+$C*`?#+XOL`4lG!t6 zIwYArQ!mNvna+~TX4&oZv&Y4kr|>Ty$G>8_o_|HDGyl}mRyZ|PUZU4jIcr1LWO-?c z#=pFTw2>OG%U53Nl&^fcE?@a{r+nqp_1Y+(K2E+AODe~@_Ky6^QskR4PQJ1f`O3!0 zH#0@Pnd9VR+f?;ao>H6Tvt}5@fw^MweYz^4AF=*EUGaMSSSC0yw^U!IpA$i?gqQL! z6VighNG*6UJyb(T1^v!oN*Ehm&*opw7Y0WN)08nynGlL`G&97OaqLXyjN$^B$!TGX zbj`WU;@DXnJBwq{=)?=MP&kO`9u1MUFfIKbZtb|S$Bx0Pvh<7muV`p%rI|TF{4^ML z$Yy}47rY68IB`bd)<%Oi00=hrGzPJTJ_2n`VjhRU?ZmhU;>9X2-cQp|FbSfgXC;=< z?`*^T1k9V^oG}9=9Fd}iJK>%<7tA#3?8dGGwB-Q!M7n}4p@t@;(%uG&OPWAJI}?bx zNywuo9O?jJPj5pPWgYJ9?ooO5t-{QTwx*CBRu`+(#Y&MuYfq9T<~2!CG4Z9-XlQEa z;&P$1?O5$U#AOWiV9Ewfaq2;SAu3`d+}hb8xP>~JlI)Ta%F;#J+Z(!98qMvUO$PY& z$WqJlwluK91UHpq=kl9^s4Pj@+}VlJqs1}9=3ryX&BUm&1$#ZPjvCvrF$8RYYOJTL zxjO^}bhLFgG&yR7iDg;sH?pbwJamVsR#_3yEp7Q=@9m)P&7gCV?|vm;We_@r{&rc% z^|#iHC*O|qUJkUig98utjYDLW%KU3lbe`QIOkU6K!(aJ3rwG_n40IMW?}6quI5C<l z;l%9u70w8IVuv0fW`yX7rVJfUGj&Ce9zQcij}`N7bVSbN84u|bqf*MI<{s%u^!ZG< zz2k!(8(e~ad_cj6dcH_F%}`W$A+G5loL=rLyo^8`gkO$-g;x=XgK!`I6}}eNbP!&N ze}%6n5C`FN@UQUq2*g41HsfF6C&)(_L|=~oLfp5|Q6O=mzY+h6{<ALh>YX;xw`la& zXna~VyhFop(r|SjKzwxi?`rfnYxMMm9UVkZ?^>0dFKf6?&x%Pye=;c`4X&OCIpt~7 z=yf^o(r{f5KXSphxZp3i;A1X$Hb1`-deHL~&u_=$;<=*0+fi<%x4&}X^F0^*moE4& z7yOSd_)!=96jD46I_c%Q&;|bo4evl2Rj&Wg@J<cSlJ-u~T^jx=iIckZb}?6@zeS_3 zaiI@t^tzoyUGTqg!GGX_|H1`-$pwGi1%KZKzZv(-bdY{@{U==T@4DcRyWnqWcsKG; z_4PU2Z_+{e(o`&kZ`5#IpLCx~2hr;|-RIKb#D6bwXZ_N1uypiOT=26sT-OghM@q-1 z&IMP`iJfxZ=|cZ)7yRE{@V~g=xs%e%Ia9+UAW{0Cqv7<9TjAf<aNVCjsNsDYJukwK zFqM~{0VqCaO-2BR6F*PGS0P@}U!>u;YWQpozfHq0*Kk_YLh-56@HHBKtA^`#_?cV~ z;UGD0$G_s!t>OI|zC**mq~T}CSAfLl%Njmg!}WZBsNqqK{$DhFK*N8p;X0oyKLsKj zPWkIJd=T-fTzwj@^VuYEYDaT5`j<5NwHhACM*xR2-z6HZ=X-;O{~z|=JwB@H+#8>e zAQ6xWf||BeM;mP-hzUkakhT*EvIlk`71XF;h!8F{keEya6hWKBvO5maqiy}Qwuke! zJuj!H=N#Wt+uGJ@AW8slfcHDKwK5_~u~obv@AtbdGf#GA3;254{_$I%WcFU){j6s_ z>wbThjJNLyT*m(fgHxVr{9E~dA@Iop|4{Ie^-pdXL@?xYA^t6&e1lW|ZwP#pz?TTT zOyFw-K3m|Pz?TdBn*#r)z-9d0DR3D-n*#9H1unyTl9_Dxr^^_DCxko|250<C5%`w` zy^NnJ0+;g768J5G&r-pk?XTTiwc3a04a7&7n+5K`Zqw_#f`3xrKNR#af&Vms{%(P< z74%yKF5`1o0A6I)0~pWi1fO#Q@Cyb0EkS>20KO;yZwtVa0r>w4z<(8hKOBHRAAr9R zfFBINhaHc=!!X{yg@2pA6$1Y!fnOqUNxvunzb*j3B>?|n0De~hz9|5IGys1g0DnCI zKM;T)GXjwU<BzwI0r+VFcxeFs<pA6bz%LKL7X{$g2H>3m__qV_e+|HY6@YIEz@H7k z_XpsE%tU}c{!a|RzZig51mMvC96Aru>Hamm+4AxOf!{9hUkRLhL@a%ez}p0#W7hu| zF792l^q&*>cLhGv;A}5gpT9weFn0=iDd#H!mvX)nfS-7x=0~>Q#=n*4WP$&G0v{`I z8LpWIw{rf>$a%TIW&5%~@R9Ay5<x#z_`4#2zC+-$eR)CP-w}L148ZfvI;)lcVI%)E zgVQSG`AUJyc>bNhWqdv;a2cOZ2wcYJ2L`wDG#PmY6haUf;xaym8JuJ?K2H$z)9}rv z@2LUwqXjPG^Kya9`242eUjhEN7&#vj^fKOF61a@FFMS4%Vdz}O+hl>uc$+0~8E@Ac z+{W7&BhS|bF5_*j;3MPh+k#%^!+!~&|964QczaIZGTsK8b$TnOYvi0|a9U;jEDXRC z0{;Qr*!0~haOv-B0r&v3-cNtOEBK5sxRrC1k#n}7mvY`Ha4FBP1uo_3@$vuA%x4{E z_8Iu&p;F+I&n$sU`P&R`<$uBO?-BGef6n_n0uMufWj<UkaGBp85O_P>*!X`!;Qu1< zpPLQ9R-Su}JiigR%%7VLPI+Yhd_>T@g8$0_^eKVM{F!U^XZYnAEO05$i3az}^LasE zBjhOwpg%|8Ql75}KCDk3Hu3W#K`+y5QUpXW{`9JgC|Kb#y?!iknO=7bT&CA;r)oYn ze(p5#d{5vqe*V?q{`mP1K|dWVZ9cg_fPSmMW&Hd>@L~K|d0rQ|l;<76N9Lb{f?lTA zv8U<q`sE)Xa4F9z2DkC^GZR1G5%e;>Uh&bdH1sKfOZopQ_(=IfU&y43jL)#a{qlcC z;8OnA1uo0`A%V;MGqWh;FXP|Jf4RV={4ECe%X5>Um*sa|0R8s_F6F;h;4(iyCGdZN zoHoBD&d4tRKM7pQ|3ic4!I_Nzp9p%HfBsJZ{ci;><$p}@VSL__tL1C|qJGj}nSVMA zJ^=Wa@NdI)x4>rze4D^)1%6pEEHLCR)3?*$<o{LtTmJtgaLPH`$oWfwJA!_b!Ts^J zRnT7~=${Ore_7x%-rf;>C{L4-=bRE)U?@NFQ3jtNa0j>z*HnZ1<@~CkpDF0)1kf)O zxRmpH!H4opH1ho1hrd99VSXcUDd#r9U*^Ldf_@g<+i<-YK>wP+rJNrKK9p0RC&9kN zGbvRjKJPSgP7t`1bE?7n#iyXZ82qf9a{}lW3S7#0z2HMR?=|xL+=tJ$@hNaA=QhE= zPkajcON5*+2GGAIa4F{pf)C|fY2-O)G%PT*5+7yo2?CdLPBnPH_!RV)f=@a=1LzkD zT*`U9;6r&P8hQS=!0QD69)Xkog&h3AY!kSY|0#p}<$qDoUk3M9{!{?{+X9#J4;iDp zPsgV{V?N1;-)ZEWDsU<1<p%f5*&ygI7jiBMpkF3%DQ80PVZ7aI<mvI@vu%6|T*~>J z;4ky-?*;u8Le9Mb^zRB>$~ok$zVW%z$TP`@kFxP8a4F~I2JaW2f_}D;b4dXGGJ#7u z6M~P*w>Ca~_zOBXp=|<}ay}>cCxtw}7xZ%kzBhpWU4ctEhm6$%*z*3Nk!Pk4ztiBC z3tY<iHG})(^BO^arI7Q60QzqTe667WzTl(sr;+DzAI>zRc~0O`&esj@m-Ekpz8>yv zc|RCHKj>`bjq0DQ74)AoxQ)-1nk+QahmSJ&<pP&-eogR~>3)r%pDX;mA%OlH0+(`r zU+_`+)5!C@z#9brKMFqI5cmgzo_uV)eK1HfWIV?Oj=MvY@#Aw&$c`Ux=Gpx8w-;uo zA1UTfq`#jR^BWR>Bmlp`B#__Vm>B0uJ|(ARm*)?nUoGiFqMsx2t^j<XXvh1|2jBxm zd(?+M0RN1rZzcV=1Mm|>ebR?M06#&LBT4_00Q_{3-}=x8-~&su$A3h_s{J)x2ZfaT z@Lk4!rw_O1<nm4ZO&*GmS<j35aC>ek?!)c5BHON7KKA^OW~zDfn>{~Ntvt)%5tF}{ z`*3?s=uRJQ&k1$=aC=Uu)b#iHng1;&f3Nr9_B>Dp3j~a%x95T8`*3?6Xr&Lg=Yekb z;RPli|ICN4Gx!5Oyujq+7kv0SgNMxexs}tN2eSG#EN;&OmHO#TK6ZS#Jr6Y3huiZ& z%YC>#546sQ+w(vheE3}^e}~4ltymIoxC+mBt9~xBZ`h~YFgD(}JRTaWP6Uj-s;w=g zfU(#yzWD0KrWK*Ft<C&K*JWdImO)x^NI_febL_mfI6!P%r&i0**rnL2K6c9Vi_gNg z|9Mw~iXJvDs$bCBu%uC^|NrZ61PoY2j`1;y8vC)PJloHv*|63St8FHIG>zz&JL>dv zOR;{2@t{BX+8Q#=Mu^oiag)u>S6rFn^Vfbb#o1aztQN`hle#a1+ic-KQvajI{Wv_O zvF`sQLA+b}?Q@2~{O(IB7|b#j5MgZmS@-PA@!dxjy6YV6=p2);Een78EimrQ^1dYt z?PezerbR!}zt(^I<eU)w_a|3frFJqt?NYy3x$TqvGW#w`*BbW{<GY{sTL$xof1PoE zk1zaIZp-%;ykyJ2b8pfV_ZY^^zeDkF-P`=j=EtA+=(4brzoF3g^&|c3m!EdO>?C%+ zqMd9p3C71f{QLbs7Fag_3u?9dZ&(M~+AscaAmwXg=Z$SXJEBdgdGev(_3!xda`mO` z+zR~?nLBv(WcR`WIhhdU;KV`3W<12hwrxbB{K4-~=<47l!I}FTao<M5DaG9q={u@$ zlfqD3&w`5^af`#yUR-go1q%F!Zg$kwoSWKTew#M{Waz=qO+@o~Ys^JXVn&^-?u1-U zp6ad>vI4)lJYMV#rd8p3vMx}p@iIIQHxw4b59Q-*g>0f{vC8iDO>g)7PwFz9q~b-N zNw;NbuEByHjO(M<sg*6aF%M<SMZ`_R?h_)L?ktjI(|M(FUqJ-OtjV*z*2p*@ZnAJ_ zt|ic!6$iPRzlNh~_F2EQxphfH)4b-TrcI0(dWKYn*5B8({6DUZKV0+vw`{A~)-tw& z+UmPZxb36BzL@8!c+$N;rT6*htTmG|8sQQF)9jPFXIq_3{v-AOeB-_pPid_C!?iWl zaO4jY`S4=CY{n0B{*jo>Q*>8s2&1$J<Ewf@v+yljTXTnDXu~xabR4!@_lIk1wix&G zgx`Gi%b!hl(k(KCc5F2S7~2)U|3Pg{i}C*pWG0N?e;&5ON!xUDbGWwV-12kAsYd50 z+M0XVAR7}^&uC~^XbA4#cxTncPBQOZ)b7U-$5Typ>^Vi>oEa{D>mI^*VE&K_h@$ zdxlRrfGeNkxcP_o`HbCi?F)EQm6)c}-`jVw5sIp7Hfy{`aT|5adl>f_{nhcFa=gcD z%)OPa_a}RYw0eEn_5SR5&+VopSGeAr_-HPyOc7eJj`zP!E<03pvAW+{U5`{e9~ZNo zUX0JY83?x(p}n)AaFg+(0yo)Iln>!IIf-I7F&EdpeWP1Zzlkfk5VGO+La*Bt%v+I6 zfYkM`rAiugS(1g*H@t#@bu3)T&-QNE%r&jywf}^Sk-q0B*G+WX1#x0t%1I<PP_V>p z>j`x9=HTi%-Wz89_$_hAd(%ktTe?HMS?iH}eckasvh>>dD;WgWJ^frU$#@w6(J2Ho zx9akOGwV=5MqGpoSE8ryLhtBSZZ$mvy&M<pzHel*AGK(|XV^0zg)adyf}4WhM1ofH zPQT?5#q&NEH`hZ32dteTeL-P9yoF8_K4@3UMJD-?rdMiS@;mQyqc>!d_QqZaoVe{C z_=k@nxAHo;x(r0%9SYw%ocF7x@8iN{JG>{J`R~dtPU3jbI5z4`B#@+7#X#aBeanWr zNiOg<Z2h%V-RC8*C)R;xxp0dL=R4;NRfVPf6x_p8oVmxW$Ao~Qr)J?Wt%?g?L#)!v z`v4z!2O|2W>HKH}Wk8TNhl4?4O4xEZ;FZ`H*brwvkr!eW_b&T048u)dtQ()_76wU{ z7_!BXU;D?9{>nRr8Qv|-pS(TtyDH=f&?C^-K`L<*bcdo+cRhor??PysJLwyoDM?NA z8F$Ndg3?R)X3UzNsD9g*)-(P;*|(l;yycL#)VxpU6RK~GZsy6uBDds08TifA6W(#m z(qY9=9h_DR4pImIO>_g(!VXYI?=jpO9pf3j$5V#Q&7DZy-+=n*7-xIV!b7u<KhW(B zUDIz;eJ-cFpCAUqv9<Yj&Bv(LC6#LHkA5t`fb=)Peg1*{iGc)<1rVStCRg<?`hH-a zgFV}VzOb?Td%U5LUZyxE-A9qmvW-DFT`R{LHcu2Ae6C@j@&(>6z`tJ>lGFv@Osj14 zT><#*0r(Wu;*|3)e5X-)4bOkYe>VQV2*5W6;Ex61y8`h20r*D&_#nuiP0o=4cu@de z9)M2<&iIL#Vd*}|L35G8b<f3=9ezl6I;j^%se;j3YC`IgnR@d%t)2wRI@EX)7c4Zj z)#Ik109`OpUqZzmf)?|{_3_rl?Mm53pHH~-Mk)WG5)5kL=;OAvd0CqxpsEl`13e^$ zzU`XUxP5PJoVU28RXK%@5v4t3{^Ev(8o*r;8N@iwXc~b!6UBwYWXi1ENc|&pA?@{4 zP=i~6pc<uq0j{O$s|3Vq1W9XcVJwGKpBhgN1vpNy>yNseYMkR5i?cqZAwA2!#jhs_ z!{lW?viQveVTiMfZ*lHnrXkKbOp8BH5XR4+`ICn9l+DufPFET~{pkVpr2+KS0rWEh z=;sB{ZxHw}$YtgHmB1P27T+9zKPm7N1^pib@OK2xC11-wpAiGYc$4_&1kQHN(vKDR zX9Qj)a7jN);F5lcz*&b|{@)D1|91fX8-dGwwN>DpU$OjO5;)sri~m{RGX4upQ_A>} zc%i}ROy+YtCrWy5fw%l83qB_cT<h=cpFeLE^fFz38h~#RxQtJ!H$&p~90TR#lBAW> zu0Q(apFseI51GCT1TNF}CV|WFQvWIqA5xxQ2wd`iSm2WX>jIa2tR8<qf4g4d$Lmbj z$B$nxa4G*!mGoNv5qP)p7BM*UgULz?@y|`pHFPcJY3c7W_IrJJ#Dw!1A8y;jkDKE> znsv;-^$KMK;bE2J?*T@E(O5kv+Sb4C!7|OLiCO~lT(3Kv>3bo#wnKkxkCl0g<_!E3 zH^qjKGCkS5!iv_?@X0w(^8BRk%iuO!_>a{8sB!OK-`is3x8VetGB*77Sp$^*m+H^y zU+Sx+8LuDdU((Xp=OyA@eK0>K`V-XP)}5uj8ZX3TS>d-r<9;74!dSU2v;Z&J(%-JD zEjNTr|7>%f>}&Ybj!vTd0Mo7?>0iJ6*<>d%^}*8Ec7SaL|E>HsU4rIZE7+NWvHb^a z%f!32Lls_AdcqZxsfU|$Eh{~@Qct=b`TE}6)2(l|oJG-hI}UfJs!W3U(N0AW{^f~f z-JLtvoD@G%&AEnuIqR65HM0igaE+~VXZu_J^*nu-@)2DAYHtB&Y?pQKrf>H%g2WBX z)fh@&qNY=0-iI^6v(`zR?IiyB9+35!SjGL^j`y0An2b4~iwiKZfq%{iO~vz~LN_sH zpL5Sy#<;m-wmDv2k-Dm#KbXYB)GU86uTx!A%%4*JRBWy;ik^j^s*n=zWA2+ybB7qp z)sg#<W`3@U0udcfq6QN*7pLz_m!EVrS9`A?=GyDT%tcN@C8>;WCoyuniSrmQsK=6S zvD5K>PJD!<G89=L%oj~_4376nQ6+_1cULjR?{(sPZU67NlI=YVnvUa+>kC8SE~;LW z1V$9{oh$h23+OZcCT3QcuVvlJOU*NJ+a1hUT|2{_AM(ZA_buWRw+inB^NtPpjD>?u z;cvF#Yq)C(ew~i%3qs+}Gx^%zrPJ}-b#MfNKP%QexMPFz+x4`BJAZ}WtWK|Aj;}Xm z{|b?w7b5k9zu8S@UB6M}8E;gfG2yH(axjOQr{++@T?A2@YVABKSKiIt$cjF73}#a8 zTz~(NrLM#0EMljsl`~yG^x-%7<N58tB(vm~N%hou$|cHs!1v{Fs_Gy4-DHZ?;|I-z zFv557OheYF5W8_3)Lyd4ptvO{8o3OJ&5lFcYOXCiHNqVZEydXf>6pKPZ0xpER+ ztdpcWP=_*ZosQq_0zs(#E95d48yY6r^5J78lC!t#0Gv=X)`?flVfxW|?VkIwIYP%j z!>h*Y9~W$$J46aA!N{s29Uq?{(3)YNl4gTh@iD<<;1_9;5G)nmE9R&rv~>8ery~<S z?*rW~V13Ts=<OtD=9>Wb@xE(sd=QFjaZbEBVXLw}1c^zg=XRs<I*@a1oHDk^G|QwH zK6Tv4i1$ZYklapUQYpE{zwC5%ulRbOVsVWqFDlZrb4@jYu8+eCTPia9Ww1>7!TonZ zGA&3~cewLUuz@Y+^Jj7;NM#W$2GpYMn^_1Tie;PvgxjlCwqn2$B3R@Y9z{b}i&c%8 zD#4;eqChIpY>>nu06W@{nac^(5~u~DY<0BZN9E|@(YbtUA=ZM`6h<EaRi!%KI$D9Q zQRr}WV>?h<fwBgLO+8Fy?X6RFwq9<;xAh>oqGuh}166^s`Nc^tD^PKgF2PP>8e0A~ zl>12q&S<WD>hj@jb4vCvKLyn)widm$^@{yY_{>fG*@9Ir>@KR?$nwR{%poMPPD!+p zKaYY6l-OnDgvV^(b9d?3@ncIv>T35$B&3(UBkJ0C?sK^c7oAT4zI5qz#kD1o(Gk8> zl|;T2Ieqcq5T*{53hN0G%xW%eY-o)@b9B6MNkl7;CRJMqcazV@73;WbeSTX>Xv|>i z1-L?6FKNb(Ym9`7mC9yZ8ebA>TfA^dgZVHfqVI`UWDCYbFo|d`qSqp1xS1K%36bWd zAj^g?pnH<_y{Mcnvcn4&2tL&08&Nl*_w%C9C*_M)$ZH7G7WFBkWp{!OdRybX!6At@ z!{5`(7l$IJmyH`+-Ut~^uS6W#Cv;CYwJib#;x-boT|(%zriyMPRv&YE+u%^<K6xgy zx||(!Ou*(AD#UJzKvgw1HX-tr^V7$cFBlwZZC|RgL0^tcEU>f=nSxfUwhj)uziDoi z1PYWR&_~Tzs7$u6)YBXyX3UJ4U#*Q?dpgL@ibQ6#P)gh_KeMH2vC3f)e4VKjl8fv^ zr^WM1A{Rincym+plE&u9%y?r{6P%8TM5Z*iHY~-rrC)29mv(gVQiQR!ZE<`>q<KMP z#_|Qtt@D+aGvf_V8xD)07*|?WsYW~3Hnc8oKuKteEL9nQOayzru(7%U3eDRhOB9y& z0@>Q=msUBrtZ_`l+_P=%k`xs}NYPt8)0Rj%vO1<M=yPc!FB0jeFPb?oQmhoNLj^g~ zx@64Y(8tpwb1G?My2xCqiYf9c7#U+{;v+VLD-YV*=gn(uYg^FX^zn3<&+kWxxOn7| zs{hF~*?c2Z0iLDi{R`$f5>IsBl$pj~+@X6t7C?#Fbvvb>H?w|=OPuBUZS}Alb8^qc z`YRV-affkwCAXT>KE?R|G5%>@<4@*p<yzbiyao3I1F0I84{FkGCk@Qg{K?Q>3fc|4 z#aPignwDb%nw%W`WN2rAc8#Ph#Amy2><}G*7Hhx<xz5WtvFiw&6QCh|9eKjsz@N#a zZ^yN<mzbF>f_)9i|MAv@&BRAvQ8CA2b41?{+3rRoMXs7n?@OyWn29OzNyp*9eshR= zPOQH?oJSAg;0o7Wq#30wgH)c7_^HY=P@RR4_!)-Y<{$fQw4vAEEsB{7gHOyr>g_y( zPx0Yu+y*%teE1|okE*?oi76YxYx0r(IK$v}P0QjJtCxYHl@>71D-3>{57%-GOs`$r z&kNPdp!7aNi!V_x14H*)z&zEy2ZU>%4_{&EPw~mW+Td0fymi)P@Nf9&6AB*`y2FQm z%h3Dh)V^!*2|oHC7~HNYDl2||WN=kqSP;*DGx#+=KL4fgLFqeGt&?9E`ZX3X&)*vS zyFNY}4gP%}-fQq5`S3>!{_j5gaf9FO!=E+yuYLH-2LGK8f7ReyefS=O|G|fI(u3vh zGrq~*cMU$?haXh<ppgF##$3gBVCbNa|FOzGD74#$hm}33{yA3pB7aT*z1&M;UGnY% z;;g@EY<o7^;8BI5IWx}+;Fi`v>M=b4zaju<ex<+b3=^xn{@MWg>jUt$0r)=~{@r=n zgV&5d|6%aEOqFZ%`)>@s?ifv|+Csec8r<qwSM45fu2E-;hZiipiD26nz8XOPwxPev z(5rTmBIrqQZU9kxKQcEQsSAbFeM0KOAa$oupIeO7hLJLTyOFv<2$w;DjlS2YOu58m zTHINpIO8fPzAGAB`^0zk)!cNXIN<Uq;OFRH?Mit*PTzy1{2HhIQh1;Hku;)snwyan zpFZ~^DH?M#lD<7j+?a%`qu~3w=juyHR3{vxF5GkzZ=Kh&0z*ySA!KgT$$kq`)|+#* zyFPahsoQzn*z}o~&8(j}!@XqkMfKCGY9{069pCN}<JR2lqiyCQ6>TwB_NaT5>`)iu zPj%Unx;I7LvV^ObuC8Cmkuc6iYPfkGQ$M|a!|G!Q{_R?<ZYTBH64!q$J`?XW%<f;t zzr`;n2tz*1ixyu%5XMih+c!-w_i*TTtUrAr@~`Dng%``;ws(H{?YRZwVL?Am@R9Pj z3taNIx;w~+<<R=OM$k(>w%sB9a6xa|7k@nb)bJra`&^d4ZAbj{-GY9Epno_(o~I0c zCTK4Z^e+lN98*|-_XhCErGPMeaGuA~hYjwR^F%=}_tu;iKyUZN@bgK6{{;c`(*=L_ z|E)Y%1<>2QGW;y}Kv<nZe)-o5{!;$$1@Qk@K`-}G$h|c(pFAMwxejmT-yXpKH9^n5 zwxxeNfd1565W(>C=kagp&oa0_ycY=ilLh@0L0=_stGkT+PZ9VcK`+C5o!}o4^fw34 z>$|J9{HF@~{}l96o_hrT6+!<8;qPez-!14RpAQ867X<wvMi`7g-bNUl@lb?+8_%Z% z(4QmdPZ#uZ&ybXdcSX~XKgUFt|D^%^c_%at>A#47OWztm-y!IW1^qt-(Emu#mk9d* z3ZVbBz$Xd%2L&J2O;*m|3woJ<_6qvZg8st*db@{-@xVDF%l{<PAEPtL{|g59(~k?F zj|R}s44_{s=+6@J+z>$j4S~!2{0qTntl)F6z|R)=Q-Y5S?~8(7#^;{{=no2d8J|N< zKh__gb`Od_KED`1Ki1%+FBS4n2%x`M(98H-96<lS1TN$AKLj7nG1z?aYe6sLjdvl_ zP|k7qxAe~i(EmlypCjmV2f+g4kGJCuPX65YX8E5QKtEN`pDXBR2zptcEE4qN1^qHX zFT>j*=+6`MYXrUI|5JfGg8n`;?qGPQ3j9ffGrSc7FEB$(KmHBS(2$Qz#}y*}C0-`v zk@&v_$P*!R82Zb9YnT=^7Pn(EhLOhNQDqB-=9;I)*BSc;AKuM?z&xQJX+Cz`Xy>ES zd`vjU<Y)&Lx8p{~kDGAL_ThFMc=UT8rIr>9p?C;9K&1-?TZZ^=y)!ZtiXeIzWD{LF zvhW)<Z)f?YE^K;QLiWj+G*Jtf=N5K0VG1}{g5lVO{+MV!tnQX2K7YxB#w3rn;FonQ zd7AD>8b4C^tjoxgb(A#L{YA_;!dU<9Gm39~_s8G;CfvfQdbRE>&UsT}e*e3T`*VE$ z+xWA5t~BmBCX(g=2bVCGUfVKui(ico<i)n6k1-S1tox*~{@Q08AMLxO8*ki8jPHJ0 z&tSe_hANEv7M}wvx8>W3mu&g(8Forx_UVVpe~eP=-egZT_Vni+I@waB9p0uN>0h5X zDm;GKNxXrBX_$zqS81Jqf4~3C=2`vcU<&3#pNBqc=<2KEa%<*c_hy!tojXpi9Ul4K z%zHSoVN6s#^?7)nFXwr6oG-_INbLOa-gdnQtL~wU*cwyeB&J~B2M(1x-mIcR?8Cq& z$HXOo+@eS<0X)V-woY<lfs>o}XY7%{4iW5?z`GjNV{3(zvuQUy#2yxIfXokf=AeJ& zbgV3D;a-lsqHyOXq`uxWn4I_^X|)5e$EJ^!Mcfy{y_Lr}y(%SQaEsk@Yu6iRg)Rgv zE_>dEgXLvgU9YIfO-A$8-mX|8dLWi4a4NTlJ0qayOY&Zd17hswm{`P3r*7iPh?}?s zyE>=i#C$W}7Z&ds!}I)3<u)gIeNH%;ixdW<nAfX#@g7v3nWf{(_g5`(lI1T_@>pWl zg9n_hy-+Gs;68A`O)ftaOHM3{c_W{Xc|)H=1cu`S9d9;>Dz~-&3pRgju~C69I021l zi6zE6iIZG!;{I62F*(N5jvlo=7M`uX%}F3SIyUCSI=b_nN~a)v>j~WEqoOqCJ-~P< zj-Tpa7v^%DJLVJdSmA8^Q?7_uL?=EVxv;4RyBOE5QjyYvIDqzmvaJZH3V$N+QRn>X zNAqu}tLb{DCNZb5CUI$`CQ*a`$;Gk6>f&%`AqtP(TNO);+!V{5#WUaqdA%ms&muO4 z=RFhiMnPwf4u?|-o~w7n5|<V*Bu?dymA7koI+o`nZA-wDcJfixpi5z0WHuzu?L{{# zVI6GBQHRQlxh?Nrg<|s~Gq07$@sv0POpm;c3&NLfbi9!-SrqTjGEct@(V*c+ix#Vl z=CAHmo;zM$De|^TS(}Mt-h<)J$rKOqU5HGunTdvM{T95{L|zYaKzy7k8qC)S;>3-i zRi~D9uXB(;m`R?5L;c3D-H3p^9jjkK6vt8ISlklR5x5JD%c8Pwv!@dAyIDC$)WYLS zGLBzO$3VPHv*=irA6j*~W1@>Jke?GnH$kpP;Qdgg)5xj3Fn@K*_1-dB13@u?cm_KJ zE9^ecs(S2Xs!kUH?}Jnhc1SK*7xUb6@)2_b@G>r+>0Diwk1U&d1-*IfeS)k-`LW!Q z*y4ozz>q?476p?hRHUoC@MP*OaI`5CkY0=_n`U&X(&`~Zn@)q<5hRlh9Iw7Ke0z82 zrf}y3?h)<U8}2H@OW8X*-P*6QX_Xoz_R^VZ;lc>w=NTjb_He5wvN|`y<snkwD=L-L ze}7<hh&o<RYA86HYU$R+_)zwI>W7Gc1=w5GTlNlY9k8W6{0`;lPTfhln0HLn>td=b z___*T7py~#guHNJ;q=7NEj3+RSD|{U$NweB@p|uSqI?tMN++gUxrIqE^zHW7sQs$k zLHV4TEZ>;f>*pj;jci1%fx0?x6BMC9omK$~Ssiw)4bP_*lec>otdsQGe>af_|GQV6 zL6%P9+Km50RnjVDTyAAI<LI&W6nF5mjH1@xy6S8<F{Rj+V<R`S1M=@glLuAFr097E z+W!a*TYht68kjO^(u7Fy#aFd2jkib69a}!O^sMpi%2u|j3|r^Q$Cj0q=noO>7#d$X zzO)jKM;Zn>*Ig9KSzeIyxuJvd*P*~Vz&XcA^FxmNvz_OME`XblsTx+%F{pMJ4r1qJ zJ<osP5caDVkr530R5Zlwx;f>bA+}Dv^*=Xb;Piv-@IT((jr_EH@+I4Oe%*EQ_pG(6 zZ0GaYO_6J=DoucK9-i^$H=_Y$!#RG>hI7214Zkn|zajv?H~^m;fHwnYxYnDwC7VB( zH;6|}6xlq&J~i>V22c0lRcDcFccme0kX!OGN7LuEVL7iwFOQj3GHm)(t7SN!-qM6~ z=JDqGd2OvBO}U`8u`$%=%e+u~3$&It(v$jHX{nNymImk{HG`i8kedcwtv+jG-&Lr_ zIV`YqJ^Pr!VMx#ZwZ(s8I^=w?e{J#6rlU=I$){G}OkYbsgoH4B$Tg}H1kQ1nrI&N8 za?R;0Cf(>v;!6ZB{k>V>lK*W2m+~wz>Ff`01pd(wH&LSOP3kv;+kADS54ZX1b{}r@ z)zQz1WS<1VtOpmv|7L3NA_xz&j)^uCy38ELcYGiGWj<)mW1ZPeS!?no>m$C}8qbb7 z&oH>jc4_~g^7(5&7<SegIOlPs?(Lk1-@7AqAB7~8$v@|?%P{oEm$lpHbmP7hPigiU z_v!k|e6-=W&r5;Zcj^8NGuD<E-~F`A|HNdOAYHL>zn&IhZ2DPfAzoOPqZTmFU1rW^ zuCX)yS^rq~HvL(4{b^4pQ96LRRzK3ee)+S>PU0;_{$dj_j(xJtc?8Wl?BfTR@9RhU z*YE$lwmwr1hn;h%C@U>L+Bt^}EM&$+)ia8=_qY(}9Ae%_oO8Ip0{F!<W8S+l?@4IP z!`uT8<hb5LyXgRP2Jur|uLS_~qV+~g(NjO<dd03c7iUivp_5)$sLwG~&90hLb)_1m zz}2Dn`8>dZzG@*Y12wb6^^rcdVqx=Mz9K~*IY!c&{4#xDEw9qS7xVsl@yz=uv^p{3 zD4{8FjknoK9PaE<qVMJYr%)_;Lyi-k4mET=7^b-1BFv-|{{|nRqYaASdb=4UCp`He z{x>-rU(0niz6y0~lS(x^?=8F+#tiqGu0LY<2_({fCg)RnCl!-Zyn+MAa~zLDHXQ0o zM~2pSYc&qmbnS)H;`m@v4}|;nM;z~E?GM~RH&@0b<Dsm3&wr^gBckv;C{B!z!$iTV zlF4P=Wm}26UfyG_*Nw@ZNAdco9>;HsdEM==I$qw>J#hc731Htb1^88Ss_7uc)_-LH zFzb{#hlMmRak`#g_1UtWM*f7$;qpk#lx)I4`SJEQ&DpiGZu+sGtUiELdd5i|&s&B; z(-aJ#S7VB2<UX4+j`v`EiaNuSXvfFvF>h6yqdz7l0hkF_?Gb#y|H$p;13`Xl$FS#m z{M!$RF~{4D6Ljn7KlD6eGKePwr-1%idVNIP)86{HL-U(A8B+}Aj9xX4kf!w^E9H_; zFwl<ouH!wT1a-aFOfZqi&%}o?EqiSG>qJIerI>Ea&qkqS#~T<-&Vb*Py1CTMeNlR- zPu_|=%elY&@V7B*@;YKT{7Yb)U2mv5>0F>a^e}tUtJb`fy`~F;_?~d*my!FC$K1rw zBA1f@;ZCmOU>uG~BTOPKi^Sk@c<spmW6AP2TyIx;&Ia>!oZ0HgdmPEVul+4dnqWr6 z!?X=}aURme^rIa$55?pNMw#(z=nH1A@TG>Qa&Jby(&5LP$pd;m0kd?EJBbsW<aL-v z_%h}%F&E>NKgB`o4$MoK!RUkSkC?3V0BV_+T<=h(V3h4N)dW(6e4XS_a2)O=Tfwmm zGb;}w(Kwy+Am%upYJXwRFEB^)asH>NjTr4a_I%xpoy)eSR<Lr=q1W|G>M9^=<S+6= zw)8|!Y%W!)=OmV4;%s3=Cn%D*uy1<y{{QKTYX2WFJ<%kxY5WW76;(n}Qjx!xq1oE% zB<draidGZq-|n8482Mh=R#fXqS=ajrCDl0<FK8-<7O6t1iYEX%FvV6)qN7F(cT#td zDXHPkuhXLETI=9j6w|HL$X<=favTg@yAPjTue_)X6KQCbRJ@^8!g+L-<3wI1ia=$4 zO=9Fkr*g{;rDl$5WRFw1fAwc#$&pXE-VV3&cqd#l*y*T#B!sy%(Cb35W#yAj$7ak= z_2$Pa-)Y~#jE_3@P1k$bO_ZbLL#0AGM7my~l7-&9BDNv1<Td$|*)WBaJSVZT!8~~^ zF*FYoXa`vAE4SZp4I064=jHf_dJ0Ps=w>PMJHR1R|4i(0D<4}u5e4@{RdH;_{Iuge z4XNM5o12_<FoZT8v)2>cWPMJJ_gPdP2h{Y{p_sQ4RRBCwwZQh3{~hD>c1IpU(y=+; ztwi+{?z$X>SXVKa{zGNQdgje6l}slC25u93VwLZ$tZ*vdgK}6%u|rD*LC`P)3{QVA zmN?!`Uan=CxLwKebc|EXX<0U{{$;8e9<Ot~t*I1d7j1ZTvduy=B;CL26_Pk7AMJPN z{PLca$2uK3NGwvRkZoGMTO?Mv>s?IVrlzVnOBJ(KDvJLYzX)@nM*j0YNqnZo-@fu! zsk;<^%kP|{jgK_1O{;&Kny-V1a*qrUpN4#6`Ib`7BT4bTX}xLneW@^*ro%fXBOl&$ zV)aWYe;RE{J%pG<)&F}uDA}YmztKl3S2~>ASN5b<a#kHFz#RR>BatZWdeiFO)R*bn z+oVgOs!CFm0P$3Fraz*UQ?uWmSeWmgzpx<O^@7T`Q&3+2fPS7{PgFS`>YLG3nVLIl zm(_cXdPS|N?1d9nVt-t<+)Z3uShlt7opk%Xza~+=AEjs04KrP=Jz?JZNtO)zeIgp% zcUO<bk`!viiCbcc8!&HQ{+N@vp;$TOZ1W(Xn1#mlwCbp`D~V19SgyRE897$@m-g?( zyqZ!hg_OOcLW(!X1EU9(jeRlI;bZT*#~imeiW1adAXv4D(7ymCwx4}?9(#T>`J#(v zTohTn6bH8_L_#$Un4Vi6sfpl1ph(*_?G3GsjD?F^a6mVLPYp{KwnJ}Z1d1g|hutcz z4LC-Oqo-8g*f>8@+}s}LN!uljOPX6(l+ZB@r~fb$2siDaPkPpqe1hiKQN+@7>~lz% zZI1myF~=Tl$)+$@?KhcE_b?am2PZB&23*s_vyyXRy%GO3AMz)gADMalS;L|O5?QD5 zrwmyLd{RGky_1KidE-BlHw?o>GY0<$)LTg3QvsQ79#A!`up{@PVUZ;`LE3|3p__4r zbXcS#_vQgbpta{cSJPeJv!RQI6;`Wbq@=TRPz`<Qrs53gMfPZFF}^KFRZBCGKM40N z^#A5u`j}U*53yb_EPu)n2cLgzXgBhii6fkw?WeoA8oG;5&Ou~M=@%KU;$`P<KMh{? z9$B^LHk(|Tw4+YtU6c!uPp9&XA+-qB8Z&pob5aarasbZ#-ja*+zc*92a|d-h57;$$ zSTSM<F$D@lPt}m?flTUy!1>1+vj4|ho9RD+#wod+^bD51zsQE`(>QNisF<0FKg$@; zlMQaR0j0k%Z|j>a(op&(+Zq!0Ov^PPRfhmO7youXGR*)l(*p2|fU7kXL#*l$yw?TL z(;w2`W$0DCg7?J%^evX&lrdXJTyJnYS;;&~^KbYk|5}q@Reb=g6aU%5^_>9x$A*tR zPtgE7%`fp!{!#SVX;l4y=l%F6ext!v`33f<!E4PLg~eYqxZMY3_r-H0Og`JqoT(~r zz&NFoP5uFhmuxs1pt19C9_+%4r%##{n=!q<e(brW=jg+B>fl<LI^2ficWkM2;})on zS*>r01ugxmm%X5B1gFCkmwD|=+S-?>*OtXguf>74#s(-wj#Du+bUv#ia6tOn)X6g= zgK|2bcMYN4%q*tO>uWV@Yb%zZh1R~=hBoW*IYb=H8Tz5-r{&sFo50!D+BK`20`OY{ z@Mi>mqTusIlW+5YNq@%&;Py^UKmDzOUapmW*5q?PeXGDv5c1qAaCy#XLjb-};GBB4 z@v~RplFu<F|5F}`pCWL{=c@vj@qbwW9v8Tbhiw9v;eAfvGF==B2*bxo__yJz5NnAN z|DM1l|DOt6^0(&~{QUDxQ{u;)1upsDByh>U3jH%0KcC;2dc%(oF>5HqCI24_oNbGZ zhyND1jOSj1Gx_;y=^qvNu>yZi@HtK3zZdjekFk9A2GGAN@Gl7ZA!;L=Ub7;J<#W8i zr93Aaobe##IbG1pHSjw?M?-p<Kkp|1!^h|GZ~eX1G}(T<h(f^l@rXh*YtF`+-t)qE z=Koytq0>AqewVTD_T#3$u<fg*x9z2W|G#Z7XBl^v-nM`894o)s_HToa-nM^#@!_`p zi_$TS<!{@+TYR`}|30m?^uyc{`wz3mKHB6%9ZUV&cGjKDLs3g$o^x5KVea5Z80KLn zfvF}Ad#>PWpTFcmW0Fx@@H+<o<Y}taG=8M+gVxxO)O{2_Ql@cfpY@A%f0_@s^4sSO ze9z{7oeBR0pL-jB*8P>ny~(a=>g~q8sixAnb#H+M#(k*;%<~1~e!LI2{@N$^JlS_i zdc1!?U_Sb3S$`1o%U@{RKjZu0m!JLVZ29j14@JX7jE7{GZH+x>jlYl?8)mJ3q<{VL zXOo@8`%EWzuF06(_e99bug6n*-+@2x(tWL&Xc_GD&}R*4<q4T}{=?~f9zU+UBBIQZ zpDS2oWT9M9{@~ZQ#*gLEjyD!LiTl~_?4x42&P<tM!+R`oCFa4gVHs=MDjx7u(G*_$ z6p}fXxFi}&Os^=zdg3H3OHAi}QdN!Y!8Bww)+7?p-ih_usaSZ%Gv7^Kn&Wyi^D!NW zt>IXZORU1C*8?}4&8a}{SRKlHUuUZ=;oEqv-?HDudh_&RJW16Y_koo=uti|iY&S72 zg2mGk%zDBftdw3~YW%@nd&(c23z)c3IXeHs{2NBYH)z77AKdi}?T&eylph=6$3{%S zW3N6$0x4EJ64&GC#PwKR!E(eNB%#`LoN(YvE!JU2Zd04{520%X_0thIIdps3&OO7{ zfdPcvglWr-@sn{;SFB^=mP73+h!?@@wnObNkpf@aUvU!S?c(@uCQwacDHc<6W7Go8 zh0-11U6a6S=pePi)1|Bn;r9iYgXPf*EUWCSNzA4`Ypkbm(I*<3hSkk!iSoy1B;3a_ ziTY?b`Ax8nC6*M%K*<T(ztXQgRc0;IO-zOGd5;i8Ty2eE;iH%nv5EnsiC2yl@4o;O zv{1LoRUl5zK6=A=>^#n$n&6^J$Du>*zrrkTWNKm}wvrz@6o1OHB>PzI4f%V1l-?&l zD5j!kQ}~uzL^#hxAcKs;!u8OeSYl2=EO$<Rc+HdO0>u(H-$SXeOzI?87S)z*tx_}9 z)rsgL2o`NovBtRRWDg7E+wu4<OPk%265~#NoUq93HNjR4#6ul4Cyz3klesesbI6M_ z%RD_gWy*Gz>BS)J4^xKRxFi?uELQ@a$ZO!Zj~o~0G1V0%$&hXiHrrPsgf)q=i2jh1 zv#0-wg$Kf&v*|t7zSj1tFkFlzisD!dwt!zy5Wa0=tnz{IZQc1B!=2y9D8cDCcwG4A zZ}H9B?rhvO(b>5BD^BHZCp_grWClnUABCtHP^GrG;7zp%JYAs{o{&j)<Niqn#!9-u zAQuNplFL7GlcNTdz2oNWa(29hWxgC_=dUcN3K!=MVUp85k{|hcBP4rw*{d~`8>c1n zhR080{$Qc)>&*i-*c=~A#87s&t~x`XM_EzK%>-EgOpNSRi)7n5<!`Qv-q^l7mbeDT zUEW!Bwv&^B3oP}lD2*kDK5XxX?(0q$X>38*t@Z)DW^;nt;84cs!NO>*+L_RMs21lQ zR8Dd_?zs_>j8iP5P<1Ji7#0M%R?9SV6BCfSZtn8@smX~4Ntj`a)z~>`vYh0k0@r(w zCz-I5z)4O<5^ZuSdyquOZjW^wIyU^>O{Z>OQ(bfl_xzajaVrnR!c$N%4qz(+70-WW zr&EFuV4(xsB~avX5$UWVhpRcsDkR02C+Rn?9dvf=o}L^!TGdH#SmES!JKjd}z~O=F zvyi2>O)lG8<Gn!$dkSV1MQglA^x6wnmas7UKGug!p2Q(7UBh|U^7K;rlEhfz7;~sB z=rb3sGvAQ?ljSI=s$BJB4ZirU&d+2B^ddFyP-R+R5pvba8&?*cf&)P}F&VJl9SOyc zLoR~;-nz*+dp10mU_nl}^AeR#E&_*Y0*wrJ9u?%F4%(E1>{(YmFjN&T!7ri+IrFJy zxTljlQYvTRoYhHukD|hR9IU~$uKG#xPFE`(59GM#ufGvd9lqsJEDvHgmYXQj%kqd7 zv}{P4mz_jw1xm6B>4gPlSmLjZ;&@X9XwsKJ)*wD$ufc8UuD3ImTU!vnLS4Ct9K8^6 z5<@k?V_vaDt%I_~-BF*_>7>d6v=0x@8^D^?soWe#E*y%g_Ps;xuf!5g1U3ZtJ+wm9 z7v|>d*z*wBIb=@-#!52nf2|Wsv_x^msKQhgQ1*^l+|w8XW$H;p$^}&C>_qW%(Ofoz zc&T%)9f{ZHmhsc+%!jc3VcAq-*A4^5aVoKAmyNfTtSM_qT=32$dwS!O_j1|uN}|-N z_tnj#Q)}sz^)$i_9n^{I5SiDaVIJ;O;D^CL)Y>>lN?Z#XmSQqr9yMt}97&VL9fRAV zzJ`*9JFjFTW1=MWRak8KK#@zmge6mb{t7|M>tQB&kV574u+YUSd)r@2J<OHX-aO>Q zP$*T$jFPw<4Y1>lDoRax5AJuS#vM@MQvIH?Zn8qR;!>Xf8J_omD!!Euw(m~8ir|~r zcY1pu3i#@+ld1V&WHp7OK}gp;;m&K|ecF+x4v1yLQ%Cg(FticEX3^)NWRZFe;-|gn zBbOwz>6y9*<cthujHcvk8|zye7eKf5lE$TR`%OG=6z_bs_8WiuyQiOhdFAt8`lRcd zwwvoeKjgxbQS=FB3ipm@)~>SM2U<OBeNOJNK^KB5F4=#Wi~k;LO$<_w*k!Nso)Izl zzE5-^vzSkBt*JkMRbPal1JdX3Y094OL$x*ATGQkB#5E0TRGPx_Mg04DljchS_=N#D z*PycTX$-(y0`QIioOAx!__KGO4QG!w8@@gOzd8VCVa&$oKLhZM0XPQ;+4wvcfd44~ zPY-^vuC$<i={&9}jnnEB&Ap#gz8J8Ilu;%qj!-RLx;S1Bwfa!0U$6D)t0kbe7IkjQ zE***6JI$FZwX&36N8+8Iu&BE?<1Ni?jmiei{#5v`ZV_#0f;RI;d%g<ybT%7pj7Aq? zy^^l6wY9mmzYfJv3F3nWoyb0GILu!(Y+mHtv(@28dO3Igh-!y4AJ%<#&iDg?vo5gs zxn`om&!=ACa!sI1;BxJP`wMCOat<V8gL4#M{k6Km{Pa&7dOivT{n&x9zz~=IzAbQ0 z4_W?F=aXC`8qL-dhJ552(ewbkS>Te-X{IV8AGRab-wJ_Cc`g#T<g-)YtP3rlKM7o} znY=IXQw054rmAFoa$d~xv1>Sfe1V~-{4zf*6}Sx7@&Np20+-=^AOL?M0Dn*55h4E^ zv!>zCCqEQ8qr`@HgIEJORp1W`T!!}vfy?mzApqYi@Y4kUFdJMLe|(M)z`rbT>2E}F z$*f%%Yv@y2qmbH;c<%2XR`-!@zis&aZA;J^#XX#qg~?|^z_2W^S75T&Vb>_WVbX<e zrOEUxG#a!<ais2p)+mnDeH3C)CYB3n>^Vr;-{W_G{5inrp8Ex)xyyt<B0;=c_x5=S zux#$P8}~N8EgNgM&w0jusU<MaXN>#9tx+@?_de&LVP<XGkNeZ_Cga{8e^zJKA|C@Q zw}n^Yg;^|W0rTu;V+_N#i-!5{Xx1p6G42z}b>_z}Kka_mNxj^J-!bj+(XLT+Q(%~P z^&|c3_a7aqdi1E$ixh`jqZn6SYDkWJjbg58+bKj;NfJdqJTBC6D5rf$*`X96&S~Q~ zS)YB)`g?ca_sN(B9Z`kpw)W#{ye)>T8k6b9a?Sjv`AwlES2sm)LVo_@wr1t`$NYTC zx-D47*e1}J?4Zh@Eh`pd{|;g+6EV+^doT_E9%E6;bo67+>=kjgdqXsT(=gLw%sF_< zF`<n&77<&ISz10%4ZvAflTQRs8q4QGyl3N62b}a#JZU28Hx#-W&usKJ2jKq<d^pC& z)}-C03tzxEsA*AsQ**=odYgUQmnv)DK@f-xZppHYl=?$yrddAef|EsOybgh_Ls@Ui zu|Tm2AaT}Lwl6nB;9S$S_-uj8{cZ+U?UL!XE6DoG{7>9|i>R;t`b+|oHdJZkKp zQr~QBdjCjcQ^Q#3?`Rl{o4v<k=VL?D-%vw?&aXDEY!La38p~Ysw2ySYG(b?_?0{*L ztox(wo2|DV`ks_knxMYfdPyYS{qBSMW=HBi3f|=D-#=pA`}<thfBT$e+?(ivO`C4> z^vAc~&T_-D6gBkrQAZG_R6kVTgtdz;AGXgj9~fn^bcQ^AkJjP(W=o8F>&`xpu>rJz zdHUh611C1XN0)C1S-(nS<+s=kc*z$2H75MF93O4pY`bxPi}lDn{qkp%ouqRO;V$!J zUB|Y_%5USJEtx;<0j2lD{WmSb`2C+3Z*7{F?wK9_&T#b2j(Yz{v8_ZQM^woYMV&r4 z)OF|{E?k7G4|tqn4QcIjnKNfIotxfR54<<sx8vG<es5>d8j{0^ohF?{cL1>Gvl41d zgG<Tp;L3>ir~8>d9BggaO=nI*Q>X7dZa>z!>4Ek5az&3KFzY%uy|F=2pNrp+Vev|^ zpMIwKU`hst=Q@3#cF!k1f5ko=jemWDW!m-u+4j*y@NdiHbp+I%b5n-hl{4V#!Rqu; z)ez<()*m#}`J+Bp;hwoFrRS`L7)+*Dq3!-(=Bd9&Uy*r#fGYi3A{%zjLFTAZt#MNn zl_i@#GJXhNw-A|Evr~6H$v&QnUwo^=Khwf*E(MScp9dV*?jDL52h6}Ui}0U~zBK^v z08V+<<4L2^5>NICiSHu_lTJrd=tGMdmd<Z#tXI|$XSe4!#xX_RIA7nXqb^?MfeB1R zx3_R&92d<lZN!xH6nDl2Rc`%^3oo2Gc~<?bster7^}Is1aY;*j1*XSC%{Y@tKp#!) zKZmX7x0lY(#$A0|+?M$Sd6XHdAF8frn%X|znLZqAipp@_frhlQ4>?Dnp%C4%UblSO z4NiL5xBQO4nJ$+8rv~@)*(T^EpVtL0`Rq41>nItnh`?q07S!jg^U<$2_P7tX`QiV$ zFZwsyr5u6$tYiEoF$#>vKmWkEl_sc<*}}+%vGKw7mHy-tgkk+ia|Zs2``g*`2xc*U zIH-?VVF-;FX-<B7P#@E}PdhX(e*dGuiItk~_F>&0u8$To?yWofT<Z78eDK3Tdz4!Y z;f<D|dD{55@MU;moJ1{Po_5Y>uCd$xk#%p=kL`j#?dYW2^eb53O5>NGc3J)`tvwsN z#W-O7WMv?Y^*^YOX7Bj<xn*dce*c>mUsbQG>Q>cLJKX$P`S^;Xo<GZHMQBV^J)>xw zhCy$a(s+bTk4x^OTu?}~o1d{gkeZgL*Fv9|w|a<@rst*mOmt%UWZGF$;cDyIbMi!e z=J@=cpK+ef9J;srSTvuqy^=|G=c%uu?$7igDZO??LGS1hdcNG`Sq#a=RKM~&rZ2W$ z-t-11L;G~`Dga>HTC%gK6hvx=Uvl!HjswRm8xfmV-GyCLyASO`hq05)pf?4o5A<%C zOm~yY4>pH8nNPBYONPqz{_J|MWDi@%!9n3Jwnp6hcxMqM6Pr(OBKw;jU;xDaQ>&vl z35C;}t49?;!T|9~jzl~qn3mC`YbND79?VJo9-Eq&erhkSiVVG5Y;)%*MqfRiWsGar zdneV3l&T5eS6<{K?=FhacW>Y1PAEAu@nOJ31tJ8Ww4NDk*SjDw^jF*o<%aJYx5haH zC+)j8gLO0~lsXwa>A&JjX7z@d(zlHrbx>6SPT1ww13n}FkKuF9np(}rE%}3G^*DmE z4)Rhmq??u|b+QT|h7fs0sbzR~7_rDX-oDgw_^o{FtI=U;a|9*0wV`!IWNE{a#>hh4 zhrSdnm6^;n{>ZXLP~8yW#M|Pf3nTMafNt@;v@7a`IK55NPik07#SqvYH9yj}V#!s_ zxM;kM$|HP^a09yH{H3%@<6*$VP6L9cqOf*I{)xvcWE3=JDaJQDX89!vGddD*V*g5L zG|)N{rl3M44~H}`s%^)o7!*Pfn@bR;k(nynzAPuLbK<MRZX7gVV^)O_xX?SmFzx>y zV;hQdH1pu>XY%~NZR2fUS@X%~qmMZiHqu87+Lu0ibmXdCC4Jb0&QaF%06qP&LcRHW zY<e$Mw)?g(F!WabG$XuZyBB;4aE@)PQF#cKnfO<E#C|Z(#Q}Ir0DeON-W7l+fm5Dt zJZY>9-xu%dgZcRpo}}My>?;4_{lD;U-I`D8@rwZbz5sk@0RE={Jk+O?fdQL5s9%AD z`aa}5b#z}}X-iGj>J0z6Az5u?A0^IjYHmUG*XL+F2BB)J6Rwe+x2U0&T++)BSB2&` z&1=FYsx)s_QS+Plo4(4n9%I-QEsfA{(@s4(Ska)a0gE*?FH2*-`)Jek6Z@B}XYANc z=WE^XWB-kPc$x|Nq56YzOnITf$%j24%V(OvPZan?24}S;$Ds2Cz2svX4Dy$Inywdo zq?}(DxRi5U0RQg_dO2ogKBe)8>pwKCa4FA&0+)MyUNShtOF3=)*fA9ObDU=Js43dS zWxUNaxaDKp5Ndm)AuhwaK=6_AxkS*jyjg!&2he*0m*KVd(fZ|oS<p-Q_X~d+4_5y7 z1TN(t$N<6k<A12Z`H=FT96)b%4U><Qzgo~!78?)O3jFf|?-BUP0xv_alZO1|UNZ&a zhtBw~w(8?aIvR_YoABF~%HrL8fwAqA#hVOn>q?6|2DkkVi@#v_+cBBN3ys_n<x55$ zV-2}JyxZ94`|$0?e)MxHzWe8-6&KF=HL-KKPm}yjm-#{wgpX0^Z_%T`XzbolZR_8L z1<k=kSO{R|nsm_pm?NKqX*cdPm&~t8?li#qn|aGmex&a09L%^hNBv^m7x{4OzkNpW zo$r44>y1E-KKHg9SobrGdw=}fJ+nUN$}fq{Gwx0CNPn_>-zKIJ{bK#MFz0YsW}_A` z&l^p_++gfXKf1N<ZF##I7{gMEe`%^sMKE51c(>uU&$z%O>2=1v#Q1LAS==+2Km0cu z_f~#OZ{@f4PP~vbY60`q2Ou-!6NaBrV%^*D2hBmXu(F4_O+V7Ve)(zl%TD5A+x0g2 zi1p#|`1kwIV&>2LfI`KF@LgJj@%!JfWPW|w(X11Wt2pX)!n<r(AV*ZmqSpyIXX7SE z9wbDa){b}J;+Zwx<IcO#g^p9_$-Hm4xpx+Az-OL<#BsJ;iq<O&F7Kj7*;?w7uA7z| zH3GC%xS6e})XjNZ9e$*xLRn@PMe&T~Jckp$L<_=e$0Noa?>#4RuVSt=*h9JPqd3jm z?RX=3^;wUTi#xh_(i_LH_wd|gq--bd1A7|!am$~MRc=-jM&aa3h)_F6G%YdaFHYr? z;pF!K;*92A$Qp{_aO{j^9`t`=uED_#TKQB~4YjS0YwOU*W8Roe(-O1K&UbU0cqiXv zsB!HHuVqgL3UD95U306CPZg(aJHpA&(UP3_kd_Zek<W9J({W@z3|9MNxHT@h3LaHJ zi}n8YZEht_PshADp>Wp~n8@JKW*nyG#b(~9?dpUnjzSiOyG}75p|E~qSvS;`Zj7Bj zt2h6K3F$eoSfcz1I)K-2JBhHHtb(6|VqV@h$O(;@E8r=#-FoHQVwG^Y8p=8ue?6=J zo3nK|^myp*qHaWqec-0ML-C@y>HoWnZq#4b;ZX%;p>9zNuZ~;JgjcyBad*)HeB;Gi zi+1CM^J4el(Pv(a^L>@u!ngN0IZ&LM4*Zpv)Jc7WAEa^R>$qOb&Dp0C5eI@(dw?ri zSae*SP4dSG^Ax@7y`AcX#p%W2TzZ@;L3Dk>18KGo<6rM(U1<A_N*`8c-UE6gjgH5R zF2$)lkM>y3unjp=vHUw_*gZMb!@BXm1^?Ue{|vBQ_}`s#!LWTfS7%ep$s=tHO?Jai zf4@1B^r~hb;f`iKmvy6@OHgqNjCCph{pJh++3=95B-OL2EMS?GL`|w2@D)>`vt8kg zi|u<y@J_?ehD6zqzHjO4J^q8N*V*{hf$ATZL4CzS(>~ZXm2t+rXPU6|dJEHsxWB#2 z@dKct@n`LzzT%O(w|zx_U+qZUM~zIS6iyiH{&0Pz7~J^7L^kIgVffkCqx(L24|c9M z(5%ys^skM73k0p#m1aply0z|Yx(4-?9OHhG^~gN^Va+BxNw*mJBgO&yX)ODG|AYEU zyG>v5EHV?u?>|fUxTEMRRhE?>^}Ra>ILJ08s-98oSr{ts{qUZ|a@HaU$L&t*)$`7x zU3_{gsp26H^%3Y7Epoliq8q_NH*%o83pB2$`%o_XKD47r-LBl;srFEj7$@dCi|$ci zHMAqZ(rqk-v}`e!xwJe(3zeN*f=HyU0caTUKEUzz0w@58=95b({Jl+1xEgxMJBxNH zc@8)oy9eO=re)*lWWN(W6Ur&}hrhZ7;MVI$;B@^+y`u|^MixOG3G@zJwvAnvQV@@U zVvGX?_pz#W!Y=gt_dtn0u5HC)&F1jhKOr|b=sGOoVj4PuIG3-_tHTnNmV7Am=|wBf zllwiCljMZ}H!BN3U<#ZI%_7jLfli_7&_LGqA1h%Twb2bMRy!rn;D!X;a?%N<6pZG5 zPDe#3KFH|}DQ-${!}j*q9qe*r7lwx2P4;gh?CBKl8O`-ADjC9Qekd72Kg%dJqDZ7q z`@YJh?~n?;F5I5-kV73l*CD$Th6)z#g;IgRu+c5~GOU(on%C;Pbx6G1i=Lq$mCuEf z-@;51l#?KBo~Qm7B*N*6M{?pZPA;-U)xE4jkSu>;aPHwZ7{|M}s1Sj5df8J#tacV{ z*Iz<T$;%6>!^OCfrnATa37mf5dI#{>v%lJ?hN<yh<2xtwz(Vf@q{MvRVEMp{TDXsS zdvRAX*Gl=tsYJdAul+xmk8_eEUsMcKVne@5(jAfS<ZP#cA1EE7h->gY+*MCv<bCBH z-O18DCpg{~Ckcf#iLWAmzJDm(br7;Bbw-u%QWFzAp)7a7J$E88_cJVxXQY5M{Dz+M zD7udyM<>jFkE>vKP)tEROmIdrb$Kj$s7?-U0=cuOn4A)yqk#E}DYDX?Ma(<skvdTC zl!LNHXNbXWJ~2kZ&AA>HjyIq^BDV<j$>cyA$=R$3>YU^pg!j!DK#Y3Ohn`)ui2miC zL(c2Sqw=re<kuKTD9cC3)&Yj7eU_K;RO}gnamvGFkXuG|KThRGtL9+<gxfQ~3D->^ z@8RwoTq^Z@CkJ{mVk{c(KIeGDr+HA2fmnC|qXOK@gP6#}NMxtdR`Tz3JQrLQ%LH_2 zz#e7MqBoTvt^NVWbrAMmC1L6y>TG1cbf(w^2@xlu)C0Jvm-hwlh6Nft-qW?uRwj_m zk2c#Pmp#kehkI&^-@|_j|9`>%MuI!i+>tJ128CZx$AJtHLT;?X=iv^LoxV`%M+>w{ zUA7TlW<NpKys`JPO|V|JZGZSm)r<kD<Ne5WDUjDW_*qm-PN>1^sMY8)vW(7E^&a3& zto*dh#G@b`9<2+nEk=MCHxUliP^mxXY<vZpoL+|}Csd|WFmOAN>x3`duC#!0!xJv+ zQl$>ce?~(i)B8{yG(_ojiGP8+GDc5Bz3_gn<4w!|H4AV1an9&T1;0jJiPWE@vSumD zKC)1_Gf9wT!YO&$Nly6)I)+qrfiqRm*%gXcD#3WeL$eApwADOLtvk(IlqRUE@CQSO zL+8%W;i$x*XlLKDKe{<kQgt8>Ran$*l*DadM%vK>9B%+olna)xw7RNi5J*(FA25)p z<j}y(QS~}YQ12!k(j6+K)R>eBDKLf<kt0Jo(}olZ;3^TH@g@_#UMG1e!uPrw2kY=1 zufqqGT_SwY#?vQ!ISd~vSfx^^wNLnPby&afu}MaR=A&`!nD{j22J{se?J*~j_Y|Z( z6#oi7^y0(N2NC(GpCU-4sfnS(06#|f5yJ7kd-C97^Hgu>F@`=*(Z^FN02s)ZuKoeW z(-l>h)}RGSG!@nA0)_^rn7WP-&GDkrn3uAb$JND>xIV1w`OB3mASXQI@wCz^Bw4S~ zE4G{UP{;eD!Z&liL$k~%ufp9tNUcp}xTqV4>YUzO)^}<{NvxOmb02a_HmT&T`ZYs= z`?fxElG6@3J5UQiSzOoivGDY*h?DWSb_kc%u|`-BzSgK7gUT`lKiADUK%H=i_Pk@E zF$YP!vA~5kr`O$_-dN@K_zBEJY~Ix-QM7XO7ejs2Lzu=v9dxXb8uKo;5nqi;9gffp zLtzubci>R_Nqf#Rd&CvHL>{s<Qb*-ZPTW947j6W~<(){-IJNp&C}}!H?O%Z&GF(|w zhRF|*<S=KT#zanAHJ1KD+=)G*_7vZd6Hs+hb<;zdp}NdOQ?K4h3MjFH*k~4{ta~xl zu?UebraDlrQ-7xBA;^loH212`Akv-Pi72~35PKH<Mv_O^ZfsC#$8zmwm14T!-kLvQ zsH)-#eJ9gxLR9Kbk`2-7S5rSh`2+PcsDtg?mvRN=bq`@;h=J4bU4bwlltU4gL8&jj zOXj+fq{tB`2TfCTQJsrB<6uYY1be4$nvfp6z%H+d?WJl4OIQuC=_*Aq!fU#)x{6pv z<?*wk^^l(7uVVngp@L6a!|0xb>)l-xQLx_4k5`=ad{Z=gZ@J!lPKtFFMM(!i?*NTc zsaxUjEf2xNX)LZx!x-<3OCTG-vWRZ>kyiJ|!fWe~qs4+C$5a`#7~Wa59#n4P$Epv5 z>oQ{~qv&6$R+-^PJ6%g=TR@i9g*a6Chz9opRCG}PHtHcaF~adi74fFLwG&WJxRCKi zI=S`tMsn4<qr$1f{G5|OgTLPyeY*}1h6lw??`D<`v>lE&BA$!+Lx!UcDh3_z9KJ#d zpjr@Ic^U5dMLt4=ekI%198<!XxgsW-*EtDXF!|2%<DkLs9S4dHy$OzoI%+pNq0j}n ztNo?2olr#Qcn|Rsz!sNX61VdG8zz|EVr=xpr*shCUw&$81nPQI4w>zAg&!L|Yx9Ay z_bx(Aty{0U5OletyDKd<l^=xHhS6J?iV5WcNI5lGz84SVi<jM!Lp7M~O<u6iO+tlV zWp`Eh2i;Hw7yiK}%mG&AZx46QQ{g*Q7{2*3zM&a%y**lS;sMlcy{y>^a8uhyvE-bb z7`j6!y5k-1Blwo@lx)UcL5{nMosKsL)FhE&JKn5G=51zmzc~k;{N$+d&_&m*wbD`J z7qc#!qNkSauE}}XJ%4r)R3GMjE}pNv@J4Q~NzVQfvJevmC8M^6dgqWLfJQ-O-%eNc zxRPzU$2Ec}Q2?!;P_4%vCl!w-I6KU)m*Y)DjfaBT`7$Do1kiW-w&RV&1(fKW?L`6| zL|^xI)FU<CCKu&vJz_1Bd+$^oW~cI*_^EUpVb@F*5KQ&5kmy2X#!AQ`EHo$@`o%e4 z7shbc&rq|t-oYC0uN--@pt=bZHx54)2RP9F>W-hvIl3oUjs9Y;?K97&4n$M1aJ>`a zrVja&&*e_ZZdL0d$D?V2i*AOaw@39AN_yP$?^Po+euUV?EGb@YIQbUxjCNo7VEESi znfl2(B=4SSiRu^eCC+;(p@cFyQMI%+=!&fUB^~FkWMpt|I5BjylQ?Nca%3eE5vjT< zoV=X@^hOo!iC7(~Ia^R5)Qzjq+lMN@a(j5~*Fc3XHSU2k?LJD+Feh;gv_anRD6`zd z%;R%iZ+k2^Z^)keSf@v9#;##bOimonqErk9JKO}P<6W;rjegz4$Q?0s1H)@`Fg`%* z`XEaM)(Hw@$*H*Mt|ykP-RD+r1Ck&9fsTFX?5qy|Qcn=DjJP@bCsVEHe01|rsiSmU z&NuW#YmzlNx;MHF#RHmlcgBZLOH6zTICT^v{#K4h!Pwy>uldL^Qw~#;LqF@}LhT|- z2Lyi<tu9Ij)=9>rtURSUka;JuePsc`24wafA6=HJ$w{Gjx##O@J`NRsd7G#4%336P z@wDWu&mNkdY$`aE`cIAs7+uWXiJ@qS^vL2N<nz=BWN#N`Cx-2zvC8MeUEJ;&OIGhi zHe?g&{Y+&;HUX&n@`|P<nfS<QstxGdl-L>?Ju%#lsxl!GWt1Lwq6teBvsG)Me1*7r zm7Oi1xd_p{MZ1s&;LFvQ<OL{pSF=;gjQ0QsabBvdn>V#`9w4#u5&V>Y#JhWscS}B+ z<^gcf3(DE2ZzV)Oq;gyP)3^}ODM9xSR#f;X+tBnG<|~@hm)+biax7TvdXKr4uY{9N zA^CK@imMx+B!8$VerFZdjogDFaCVSOIo9LkL**0g&oL(z;QGSw?dZVa7Qy#&+VeYi zhP%$Ew7H1uX-W4Hv_H9SczUkOHe)yo*BS&e=Ha5nSaQ~04E}Km>^R)8>Uf_;cN=mt z!+Il7JHCs~DB~%L{JY&rpfA`RUURDH=vO#NJwB|3j%0LspLcbMubAqM!~$U+dp77F zpo(E4g}Yjiq~z_e_Sw#OMoqI%Jx%JO#;HY3=7e2zEl!E$^kymr?IN7~88f)ogych( zP>B!mkd{qFi}v7NNW4RSBIw*L58rYZ8>0lqyYyK1@>V>{_X@~{`jJ^M$!-El1^SWq zg>QM?4D3|sn0<OfY>Q(Z9~_GR^K>(P0nNE19jxOaqtrSbA03K!soXR@QGEhN1t=W& zplUs2ypaV?Vz9%txSWl=xAW{Ub!sDhArwktjW-cDJa2Sz2V*4@_dY^+#AhkFhCBa* z6`5{bU6jmxw*(_Vv?Z!(-!l^XsZp4aOD1Y^4h-G%t8veyx%;_&my!#e5`>o`ouAwO z2)gSNV#qBSkxt{ypE}>wP_7x36CZ8=iK?wDx3s^(>p<xonO8+FCTtE+Eq2aeGw?PY z4lBqsul$8@R~vgU3=NxOL?mM{-1Qq|g48Vh*!}Ug(~_!T_mf49SH9Sy#?DCbo<dc) zRQ|^(10{+7mD}RDL==UtCRy|mye?u%d=(`T&()}X(5ZG4x2wLIp?5v>4|?^DrtJ@) zV6tv0Hl;H)N40=&PQxrAn7Gg)?B(r496+Dz_V#_L!5FwGMaG?oWaiy+Oqj-dk*7G4 z*wX%HY6vPghBejBK7YDlQw<urY|v`{yy=a(CFn@!q#lEhHQt`o-3WP&_af^-?;S>( z&e@c%)J4DW8Ref|3ul9ah2!0*wWg^or1G^<{tdOhDB{qDj3xT#dCm7_j(0LM`CR=4 zQ%E|?=N^MOH#cXenyi@4PAiJQ2;CvUZ~$XWuCYIi$a;vGAH&WA7{sH2oaUiEVG?jU z$yH@68CMB?r<oTsVq&firMsJwquuAg;C$9R>j<D(@8o_$R=6QNLvFZQH)`n_BiFP^ z;m!?ofo$Zk%Wwde1(U;X?N!q=ZurdIdU~dtIOcoyVcKXrU!LI<&|mnri*q_p?VlXJ z?63H^jW4g_r|w1KTRAnf4>LdA#NPl^|2BT=9_B0)JSzSZNnZuQvzS+cmTb%#RfVsl zR@k}+U^{?+s^wNwPIcW3p-L<@;d$$auQOd=OASFKq=xUQ%b`7%DS%|~Re>L0>-|zi zLZ^;mc*5|iNrFN$Qjw~sz!+0?rpn@{yGYoZhvoota<`z^sVOJbilv&MUN&a3Y3~50 zbF8E%^%>Pnt2*^wRe01U4OAZ(1~C;%Y{w0yl!<GmJy|^%e^Vjq$o2N8F8wR}lqf^~ ziFPyzoQTF%_UAXDmcI2ISgO=H?^FbCKi-WY+zsZ)w@)f5FnCn?1e4@!+Z^<g8S+#C zQos&C(?dyIG@2@>Yuxd^@ei1YGQ@vK0khMrn14w{NQ6jKEIAHDe}ilp$!Iq6o?&_` ze>T9WnvKsky@^bSLt1J|^8-Bhq%(QA^EZ2xyRFQ{x2W8`KV1Lk)FCCd9T@L)p<Nt1 zEI6*F2>Tea@;__Y@(E^ggpM5EtlBqUr2c?93GR$3it3krU(wH9=2>X)PzYH?8T<T% zTPf1}ygzO)#g9J=DKdL0vfY=7y%f2*pUWS%A@_n|cjYd^(;>2fS5;Q^yQ;Ek$be|p z54dPFz#tm`j(aIo`RpfI@R@mxiL#h%=QT9tF`;}PJ@>wIS80I{A7Su9AFl2F<@~&& zJMz6Cr-5GX`A}&OtOWmlS;(3hGaHUBR90N=0l^|L&qk=54b^#xa$41)iF5TPk#PZ= zMB1)tjcbZ}D3Faex6a40dz!b^uilHueST=VmAMghI}IO$@o({$1TOcOye@FAgIoGT z=yuZZGiImK_<88>()jt$5xC_46M;+qcbKFjAEv$acezPAKR(N37>dO_Vd+m~S%vY- zQ_sM|_~|1G)%0|eHe+#+B;Ifp_SVE(^>dMZgGQwWwE;V%G%SV2Ue(ste@Aw+(!MmW zEsovV85NmSnE5x_Zli({!7u9$f60gfqp|s0+xq9(pglJcZt{oWR4EPf1Yd1Aw&n8- zgR9mU@7Da$q?5JVr(tKUf%kYFsr#TkH%IC|3P~sv%ak;`jr<V_;@yVdK5Kwwb6>!S zh4I%N)^49yfQIf%Ni0mnxIf&UpZRd(k5jU_#JCqM)vKR&1yEvr$_DIp#{D|wD)VE* zZ4vHCWSNUvz&z_t(JwZiF#oWKTK5(Y+Vj(5+;<p$_TiU5o9v|BZRFo&9I(z|ocsM} z`{d8NfI?ez!;;pMLyX4nKll7JG{n=pehzm=e_TcRQJ>MjLo{zuB}Ei<=#ccDpP2U{ zj_Z4W<+!Wkjfxs<`M`AXx7LFctJf+ZuD4~uIxHX;+5zR;v0fFFnyx>F*ItPjz(m2T z<n4Hm;T9k455lAn)?g-M)ee@z-TXE+QT-}<d$5*awhUjnl7!U)^u4vyYR-1fK8Q)P zri1x4m3zX;8<DZ>8W3hCu=DmnIH?ZQqeIKtHjE5&YLev`j2(k<b>4dzs?QpTNxWlX zm77+dlBy8y@p%VmFx~|%K66ozD{b$ueATIZI_7N(cWy<XYARo>@lI_2R*g3X8#OQ$ zU-@CUs}ZdwH)!W=ch0YVGXI8AJPV#E*E@DP^8QS}!MqaRR=;NEw^nag^S2K62p5Dq zQ((<uA5MHbqY+}fZ$<3wkA=_dW&fEA_}y6L-xyvy2twnNQJk<X7M}5!%<?>Fr(jL@ zqk-XDJHV1_FI<gJ;HsJv;m*me!kGU30pU&_>4L2QHVjw?Y8w*p{ej^wwUCor6{)(1 z?JX7x;*CzpQ#Hw1MTdT?k|MbZ%hu{1CJ2Jrx5u%@@D;amXS@<}W5smj4lX{ZD{!7T z9xJDqOMSofO{`&WtI5H}p0;OkG0YR&7C7Nm+b~p*RlXh1o0^-qk$LM9h8%;=;Z=ng zSTjmYUSd={%&0)@sP7T}#(2ey8ezCa`3fiqulYHIq)SqFE81dcl&BDkmz-PTG$SW8 z&crAHQv#Ty2zQ-<_ZTz|aIUQYvsWUGZ^9TObrQbYwJ}U+yaf#I`p{iQI)1QoKv*d2 z;+cLuF8w)u<9HH<NA+eno0gv%O&Cie9`=bK7wmYw<M%nvvD+8|4$Qk#=OT-xo!Bx_ z)}7h{hq~mD5BHAbhvH8$Qqm=d6FWLG7)QuMsoUVF>K@jtO7noeUnw<0p{%b``RWy! zB9uCapx|kY9aHVQ|I;2bx$wd6KOaibvW=PK{_~dH-wwz+4yq0u2Qd&R75{)^A=`3L z!i>pw&xj6O|1poMB>VN$G_P!9E$(WPV-*$Wz}PfuUfQkwJvRVX0}9nhrB7^^nn4E8 zfRV_O#wAqfMe{}VtNRFSFKu6ZiNTo_WS@S%X;7It<(TBV0eHmlAwB=o=2PvX|LuC^ z5d?sFIH*r<)6s_0pO);pWb0FLBOlFN^{daD(I1;LZJ#QrPwtXw7DFD=jDdwbO>(6_ z9jW`EKKYTlkHSaF<nNQ$8u|V4Wy5cuwohJ~mR!HgHSQ1Br@qAa?{gmd&Jo7n)y93F zybR3ViM+_i*vf6;1$d!XQ45%-y|dk>Gso8~kJi1#gZk7F(~oTT@%5)a?S9#n6En8w zHX|DL=_!NX|DZngB9njpXHNb8vrmnCa^kJcO-H2n>YUP}*G<};rB6-0@k;L%`ZZYm z8V<SGN^_sM>O}vJf}({#3A@l|prbpjF#Nr4CtSUoy`o9zU8C{F1S@(2*q-htRc!s5 zVg3zM^FBtYll&5XL-&wV)gdg&Pb&mN)#$5@>|?hrYX`S*XD0~A%jdvJ%!F`z+bg)D zKF@qC>pp~iVf?T&J_FsT!uyya=HnG}@c9)iu8|{9(2N%D_G~umZU_QSNh;~ex*-}F z?zw#(*<CS*O1_MH9TgOuq26WVgl(0It<+!8F{x=-5h))N8CQzwkO&M^A+<IyYm3BN z8ylczGSbi%ncujyt#PpW+P3(*#z^ymNL5WWG#bSl7dEy+@zMOjY&!-Mytc8mZE^Eb zU}M$a7$`TI5NT+^)k@13<JP6d$dbiN7cXgF0<H^N8^Mh8W>Bd#n4T-2=s#8ULlG0y zT7vyTJz+$GVkO(M#qmXvCC#mkkvNpDMV2%yj})K2Fmh&ub8?a5r6pq`W#daCxSOtZ zabsJgp|w$QM@DU14Brr{)09uAjfp_LW~8O5VIHuihPF7>G&Q%!q2(k3B_&JR;|+0y zrbG!q{~H!U=(aYfhl(^@)z;kF!p{>Tkrj<?T1dph$I&fqwq!-oPrJ`o4!>=m??RPp zhZWpBplVoQM=pAL1MY{yrW&PIwq{5i@6hH{H7tK>aQBWZ{(ff$O$7uQq{-Iz;`iXQ zgf_k<7t;3+H_wGr?~&h(R6u`us5^x{hq>yR`O(vH=u<KRh53SdAE<Pi3OH1(EXRa) zNf7U6Df>WGZ_7{Pl*QKM@(aVo8ojSM4_4VXRe1y0Wc>TvXS%#109XCcbY<Un*8E&r z&*KlKSlvmOS#>9wnRIoS(l!zSJ=mG;xL9%~$~-P&gAWT9FN6%XjXV?YC*t4sWjVH? zVI|E}wD?s7VTiM>v-oWUVTiLGwD?^FVTj8<@goY=IP-+1-z{*)o5fWJ2zK&edv5VB znDqC{UukgC%k_Z>>@>vrpEgI`x0VV@p!G>wv*;_4v*Uleo;T`A1dvhTFIiDwG&Y}V zTmQTo)c1}UhWm^|rY-%kCC28fGYszUJKt>5$2d<v{O}mV^OL%_eQ#Z!)82%v|4s%{ zZ`ObNi~{Am-~Dz&z<rU@*zj9;20rrLAO8pXWWEds>&_zf3@Y=mG}gWK&wjIZ`?P)U zQcGZ;CPEL__veV$FB4ge_a}(q>!<aMdw+248QNOo&OWT%*3Mp59{!^iFwX+hU$yy+ z`H%IKb#L*YzJIZCZ|g0~-Y-Axe%VR8#)RMMlVTmlHq7sTP~YF`_*hD2!ub6^TTY;( z(<80=UH^_ZM`z2%AHBX2tNV#!M3pRhJ{`UOcv)r!Zwl*U_V-!8V;kHQ702k@<Iv`m z2r<0R$bY+suc1&;R6RnNfBTg0dSX1=K3IkJ<YRvsr~i0;ESppMik_`+q2j$?4Wjky zv1a+d-F*vul+~I3<RS)$Gr^`BE3Jb@4T_i`YR0m4h6MONm?2R>qf){x2pS<K6Af6A znxKr+QM$dky)9jLTiW_>+1d-OyETzZg0?lNC~B*KRWsrx>K1{j`9IIO%$)f$9|Y}o z-95kG%y+)$d(ZuT&ilS6n@`#1a6G~@=P0SX<LqH^!;%H9jZxfA#%YDRH&#w7^d}ut zJ^Nw1pk0r}a;_%Z3ulBH_rp#@`i!=8%ww)Yk3;&H86)oBZ&dXo9jsH%K0OGGCY7)9 zb<q6JZA`6GnWOt^&aW7bE??2!@P3xUon3Gn@NCA}r?`!&Lv^pmRA>5!>OP1_GEUAh zO}m%%J)IJre*KIn_d1_6<vL|K+L-3HpY>bqk>lyiKRu>q)MdEoRPLPd((%^bE`cT6 zn6^%NSfU77{%l{`y~f?fv<=GrhuzQWSK*pG4vd2{e77-8kA-8EKl<U!KlUoT>scQX zA8ky#=z@zc;(FijANoCreR4r5q7YR7YCj8XhBy_r;^z?#$0K6n=JX@(Pstsiwa@uF zzKuqQA@G)3{I%d{Y7|bduqnoau0?hDyJkK%!`_8umW7WKOYyguCugG|h>L&lH~Vhi z2tPpewD0x<!neA&@dfPBR(uZktb85Q0ArU;?mi7bQuxi+`3=72!QD3BU6+8sw{{}_ zxqszL?Nf2zYfcI1{|s8PkdOae^Qj~`343Q<icD;_r6_lRvWm(lx|&ZW<%wCTo+A}J z9>3*CRIiiD&nO;=ig{I42CD8OQ85Ko<)GSnBq|a6N>Ft*pC+>Izt9G<ra({z1*J&m z>4T}5{EHOKJw#QmIMRo+$B>b-e4-}~&P<R#jtDoFGWD-!l5Wck38V)=x|sE5{L7i7 zTL+OcOCf>=(mx@Ex`G@)lR_k*LoB_0D&i|6!Gba(f&3}U9*L@@pxllORw?ri^6)uu zWEbU^f^&QP7T@jPMT<d%M4c~t5pMtLyZtVSK?(xzPd2Yc`k2>{1H=1U2>Rvb>$Lw1 z@ImbT0EPyDBGCkS(2WCQykE6Pg%4{lNS=ofU|A<#-o*Fk#nC=2-PhocJm4?j*M;9M z{2u%Kz&^?W$y4+6{;VoPwwvx%!+afkFe!muL}Jw?V&B-;@hCtQvfMkKQ<D4@Fr2v~ zl42`Yv|WGlDuGsu_AC9!jfS;<zPs*5Uij8>91@kWC5ylHDSt)L!C%P5C3CdD!rf=H zxH~)L4pQj|ahI?C^VnHVPQagxXO*bkzV<0R&c9w9=OaJZpX?_Ox!%i`EkF4*Fz2>3 zltM>av6JknnK8nH9a?Te<J@ya^U4vPWy^0`(70?d_JOhA+cp9u<NOOja$V~U3mY32 zkMOiEzkd0Oo0oIq2jjX=J<gB4T~0JF5tQuJmyh!=UUmcazqzN)eQ)gb9?hINenL67 ztVy?g)j0ohM5CdZu9vS^zN(>lg}4mB-6zvMI3KYKj%x{q7&gN^bNs|5OaSd!!bU<C zFI#Z!iscI$vnR$3-;8n7f++UmWj34}I@@2?(6*>?e9E)2+Behv8R;$kmh%^_Xl%V< zd5cI3Jka!vr)f<0vWWeyEe(suac_R%%4h>>!4Zw={tO1DJi#oyNnUn!WFNG9ab_@k zX@h^sibm)s=d};!IR<MaZrfV6NE|SLsM){3-_p9UrQya_oID8EOAy|Q=4GqIDS}9M zS?##mvHo-YAz?Xtyx)%yR`Q6#-_p43+NDvyP>(KLFI>^Od@(A^5*%~j)It#9cqVm7 zlFm`&Ob9tDk24lFAf@ueqj3eavNzL*ERGu55dHDu=ti^)W~y1<VOheh^1=&MWm2V_ zE&`ojS==vMzNqn-+@roMy9sABerTX?7P;0UayDEYJ{w0x{_vc^g>Qy`hW`dM;AKsX zE6+nwM4OTS*}Tf|<XGK1qhPw{QPlEP<5^V~EMMuDHJ$~J%w%R{X)b85vcHgLR7-JP z$Py^vhuhZWxJ3ks#z|bGKQvCBZV6bP%T)+M9FPeQnEfJ~vbxSlak}haJF;swn#P7U z*N)F{Jtup-{bk~~4i&d)*-a~=Xh!KebR^fQkX=2Hu2rutsxbb*OC?RGd}to4(}VKe z|KED<b^=G<^gSulytR3E=i#tzxwmMJw_xhX>LDDwaZU2^+Y?fok}?xh|9^{fH?HHd zox5=@Id~^So&}L!x)Vg=k9!xy^<Iy7#h+hThN*Kljmo_W`oA;{3EMbDztMrqefD9V zJ_lZ@=$-rRpHsNz!O+eyMS~gU+2~k&PFHxJ1Fu!MUc-u4{Bf^<{+N5DMCS4jcpcVY zrdcRnhI#IF;4=NgJi8sZ-2a9D+z>Df_uYm64t$ls3sioK7xA}7;d+lif4M_g5Fdv> zUsCj%PCvgaEXR31tpWA?x_B0(_5$?hZz;S;1M0a!Jdg7@d0W1(a9RF}7>^$-oO?S? zlWkA*-$7*VWr{ul*ni;Xj0^pH+yxist#UJh`<~+Z79po34pzm9YlV2P5Q0k;0<Ms_ zIDoAX2eK97M7AP8KPJfAV5C>V?F8X=f^a)QxSb%}P7tmp2p=X0x5BCTCP0Bz2v7!4 zq4*RT<6}AIO||25kPqkLht-5IdLNxzM?62#xNL`Vzm|P~#(x4k4e3w7Pvg4@!Vvf3 zr*X}QOWZu?JyW$m;w&#sKf}P;H);Gv1LwY>#=l|Urd*WZ!vP)r=T?xWf5o8Z!cOBS zkPwEClkn4csezmKg@g^9ZBEnQY~bu8HU2LK&V6`|?=*1str~yNz*$BbKV9`7{LD70 z@pc3MjDg={;N+9l^#5YuegoI{AkhCY20mK#AH+{L@QDU)(reyE(w||_*BSJs1|Bu= zGY$Mp25$O)zk#1+(7$KkXB)U5b{fWqzmz%VGYIpb|9|hfzwR$}J~;bK)<tGzP!p(U zrJOLNm|@x0*`x~8cRl{FOo*#$roKW9MC_WRUQ-s*nug;8{rs@*E8v!X>V6DXVRZO% zT-T_i<(rO2P}!aCH>&vWbfiP4U%PiZ_g~3QHjB~j^rv~S5My6wnl;LOnF+$K!`IL2 zfzf@rgKnd8e~|;%;p->oAKGq`K0n0x$CUewwgzmEa$jqD3cHTChC5)%TL09(zOHAi zfAmtj*Ep-Gv+e-$)GGHM_T0amgCUGx^)npPc;4X*-|dW~RyDMj=!s#RdCfBt!L_Ll zNse|#azWsNV?HC%Wx;3!MO@^$Kkpfd#JYLKh#lKSQM&hWHLM+jUK}V%d(9FIxu+n; zX`wo?M+%`jA9d+qPZL5~Qc=r0*nsVX$Q4x5Fa$~mZNvAf0$;~3@E%$Fy07DYSfB)g z>f<^(eQUoX@B_Y%ufl?35R!bGBx|3G#PeT^PLf`BQoIVA!=tK-+HSBmV;hv_G&|6F z^KsBybJKWi-JS_&jLsQQ^un+EuY^9bwi#(^5Z?SEojf0oCB^lsZ$P;(G|fmwxllp` zbzD%?1C?f_tu=^2)JwTRDMSd5Pt|G@+qYVVu$EAL!{dZKxT8g;t92JtPy5!6V=Nw# zJjRkOnZZF0s*h3Ch@~UIq(T>FDR%oI9tFA*m4iY*E;heMLF&-gaVH7`vS*Y*M8>Y< z8^o&0pa~FSTlAO~QAK?nU*K105DLd$#l5spUrf!Xu{TBd)^C3QJ87UA9QwxI-Dkym z5&v8(r@!TdWFeeluQ`b8WKXdYvyX$I9pt}ygT8M-XDHPG9U8WJA9tMBO-8$C+_f|q zVrgbNS;C?0(|6}@5I1<|>-hI{>Yt`cCBKXh^jmds>4BUVI+lDLw;~QG0Js*n@4k$v z<A6Z)#_+VNa#rZdT4q$`<xC*-dR0;=(;tZ)ls>j^#W@=eFytFmfGOJ~S>*a!U@G?U zLm8s_iaMav!#bCj9DxdVM34AUiislfzO~D_D=#z=CFbOaa%QnZGnGhgr3i-QSET9y z$}1e}CQW(jTR9UZlucFI?FXT%?mc7;YX+M_kCdeIbu2*@qrC`vp09?T@s=0Lh|HpV z9<l~!CP)+hdypI)aX|~N5MPCgK^7K;T1B{ZS3`J}iU$`%=5H$!aUJArk@dJsh~8yn zHJm{k5_CsGiMGr)m)zEwthMS6&g|rmFjHmai|rKg-`OX`3wv0hPyi4w{66A>ioivP zCrO=Pw7}@SDCZuP|8Kr0#W6~+pMJ&hAT9qlCCmLYwca&3c_+JRNXh#`j&~hyo>`w0 z^4^;>6&KB11^V1~0WJhM2hR|I%M?*Hh{7P63yi7GX87Ubx5rhGEvi|0szuRakHzUi z&WQ%=O5yrU?A16zkYzN?fy&oxd{SfZ$=q8IWee;){M7I*9jpH;7o2mzZ1f9V@J1KB z#RX^m%jUn>BT$ov)TV~1cSW*wNo6Y8Z>N<M;>6Em@{QlH0H-vI)FuRlB?Vzc2F(&k zoG6N><_5^5EP^lxqUxE*KNyS+8GK`p3Un|&Ox0{QEv8eiT}u^Cf4DKN@tX{K&i^#d z(UFG!m^e?-X^68<Y5F_pF^rS`=L+Y8b52da+n_i1AYL|bPCGSyzYBiI1=si8Fg~U~ zUNymW;^({I0T+C-3m$gC^<9t7{Q0s$Z|3uG62kCd?zv1ga5LX#8@QR?c`o=87ks%3 zev1qK6NR%FIL+7P<%gYyxGEy?{*mvY`k3-B>i$k9a&RBxwl{FE>ZmuXOky6giRu1Z zug%={2HsWqufx?()lBuPtB#zZy03sw^wT*a4Ap&5xp%J3532b4@!d2!{rVZfM}}W+ z62Y$T^*Y+xoO>6}JfT-J9eWbQXq>dyD=ecf1FKc;H^6Qh9dC^-frUv8YCt_}*(t*4 za%TB+9jx7JoPC4pDqu^SrOJJ48WJ{V{Q2&TI|=(${EO5_&L6lx;0)hwZLSHwM$Zi6 z4FCL!%8bL^qpi&=CSE*2Iv6_tVyBV7pomKlebR7fnGE2Dhb7~+{3$f-Lus_swGEXf zP$ZitH0NGy#kvJQRD9AQ>J6bv^VYX#Bqm`x%{4kM7_j2`T~_;>(7=I<9Nx5JdHa91 zWWC+~Dpb%+g+l6ySYtpTx)&?K{r{AbcLjI<hvMdEKThM+J4js5p>G!yNB(139Q&Ns z$V|igysWj5bu)WMlsBlyke+3mL-I>r7CA@OeRFP^N;4-?RB=}incxO6;ma9V3Xvgs zJbq<iiZW7lgnevs%^yj18<+sVeFc)`E20hKr_G#m9@uUcT@RTyDt>ENTEB#1!a4>Y z?a8r&W$5gCgUZ`feyDfn{B{g*x_9;;4=Z}-gS4jMnE?BP59@v$+-8gaP{aSMa_{W> zwfm#>{b;%(d^|GD!Hl=`i!=RK;S;gkG>Ncj_s)3fzEhLWh9z6yA5<RdKA!V(ax-Z6 z8h7jawd}(p9guoD<DV_=BrQ{f{mLDOl5As-Ti;)z;y*^Y*AHj-=U;H~G4=fuCR}jL zeSe!Vjt50Vf;ej(k<xFL(#aq;4!J#3>%039VrnNs&_2J-PE08Z;U*$G(1rg{0rt=i z<12;$Tu9Up8#ZdwH%E#4I&cLru1_e2;wo&U3_QqG+uc*7ruEo+yj{p1yOnpZK;1s> z+JJ)Z#JC&`M7U|d-npN8%W4u6Pvt-}**CWOIL~C>*<s_(j!59y=Du*wJCVT4(NWNR z{0#lKyK!3pEx0XfAU&30qw`_U>QlnFumIaz15sa10vfjBMUmKST#yz+0(d<N2CJv2 zg$*hx?#@R<)9$CYPde;b-HIXckQf86hc;z~5{^9=iR})@{<Ob9jD5Ht0=GSMMH10% zo=9wKB=B&=7ugqqqHbU0PhnpK%D}fpVtY9JwLT$kHh}hV5u;OZ!xl7Q+=uLm#CYR@ zR7M|(eMTr%4-EM3xtYmAkrW_;cI-)^XBrn~Q@OFP=IP&Zmx|imq5ll}i{G45aiEVS zjC+wrVC=>94uN-8SIlUi^zJ}wKOX<(S)JtmWgRrTVaN7eXd1^xHHKu;3YT!ei=(NP zA~ZMj`Ov&j{T8Lit0tCzD0vm)!z&WdaUlEEorX}r&y10}(z{z<PPSk-^TQ47h`ig_ z9>zC4w%4<LrT53O=@hO8A6HR!{aBWo8N!b&hPCzB=LF6XKzi&x_8X1Th=cpsuX{d& z7}jia2<MzY<P~Vg;O89w=o@tnWW&h|l?@kjiIn=>jJd^;_JEYetHBeIr<vg}90yo1 zdYwE<^`XQ$_t&@|b{c+GB;x%eub=-;6Bj>X%OtzaS#){HL=7$jxAk%lGYY0$K15zJ z99?ttn0Xd3;?5fT&l#DiJW;giH;?Ojd8qCyl%LM@57m88x!38`antUPHs`UGd+km? zcMUQ9`Yhc^uJ`ShY7f;@=f8$IXJSzWHK3k)y|2rOZGmpJdyTuzd88<eXAp0sYF??( z`0k85KL%BW(DHh2>ut9=Pn)WLGgBc+i!=Q5FH}d%YUXpa_3ng<%45FAd7aU{21PXF zdKaT8kE3}OjcE^#rYe1RKZVQ)Cz^^PiDj5yyoIUGmT;gCkB6reJmKs35<bhh&h4;8 zVvpFkfXT*HpmyMJ*f;IzDHVUlRd8am!+=8n!Sw1o8e+H-;LRQ3u}_E_6%*Iv_;+q; zAAHEGNlY3wrQ$g|=V5E->lQU`Cgz@pb@bfQe$1XQ1FFImm#0->;`1rYhoC=nf3vv1 zu;0%4BX8X8!-Z(w`Fk1U^zQsU9DgfbUypOOH=sIe^c#`DA6J(xSwB5K`dMfr{gWU| zjD|Po;+C`a{86~f?p)5ZK!<yV7<}N()-FqGtwp>r8RL4tCU5l4nX$P$3pf`G2cEv| z4dkGh&xI2UiZBIv0XY`*ePx@<vFhQw!ht07E)v+woSZWJ+0d9*!<uLhvC#1SQ#ziN z8o)3E`i$?6<B?~!nX}I#XP>}@b<EjMgyW}#1Or|qc8bba<Y+iiKk%PSS2(fg1AFId zcKcRbU^IYyErmkXKScshgmL#$Uvw(6eg|`WCUP9p%26|s4<dQhnC(^hR`AxVZOHCX z`6uD8@DoTXroFG-{34HgaY5YscHo6*5pDxb;*Pf@GP{qNjXc8H^~`wV^93{G#m`3q zyH=Mozj4!U*WNr_U4d)&PK_3ab8xxk*l?l&mxGOo#71MjCFZrDZ+)Bv5DvU>+pmqu zmWUbr9lf(AHhL#Q>t$#<`(N3ACkWDWR8)bTqHHtiT3-<gSXFTvzJJ(BncJLfE&|tc zGBKb`@fO{aJK0-uH*Rw9C-NtI%f56RZg99`Sjb!1etcdW6SDG<w+tUagbCbaZvn1z zm^}z&qK;tL#*TfCmaW(0IOrS+Wx(!pH|NNu>D~D4jm}7=iF>`~zD+6$V&5ip%$1&8 zr6B2nU-`onWu)r=$i7V~KU6xM^UyKCSqGdY7jy#3J!wtjwr?|3_ip<(Lv`=AZ=>BG zZ4QI3OQhdS6YVz*G5v1)Hf_p%o5N#02hp(GzD<Fu>Uyqntot^8<$jS4NIjk9$M=kS zuju+!{QK4WvF_XKQFE9xlzaVfhR<dyj<bizPgil_vFjWtQ)yuwf+8Yn4x@R%d}|*B zOoi!+)$M-1QbPAWVS%2@Z_?5}>1`+`$n~xJ65e=&=Gu1g9eh%^!xD~PT@YFOT-%Lv zrc~^hRq?tQ-XnqCw_Xa3@?F@-X^TKR_-f1Uewahi{*tu*Z%r_c1ZP8MJhnR?#Xb$D z6}wwskkg7cqGw<W2E0>qUxm*4-K+mi@wh?lrLy66?=9Fv+W-288=c(7Cbm&MHa!cw zC--V9SFEOT#oX(*K$YTlZ$X%E`h=cDgAL36fAd(wb1QSK5qZI68kJa`4@eFTeuMFg zf7#A5+S>n-F(#D{DxE_eV?O2V43v8(>^8;>)xFyoGgS9(V~lqHVaJ$SXF^@l?>5G0 z_m*;}A445uHmb__VaJ$G<$jS4*d_i<W=6eNboZ+Cf7mfb>*YD+DB+*4hm0YvlP|2e zNG+v@elFZchI3_t;u!=_lb0;9WKRP(Xc?3n&wdHN{m>HeQp-#txI*DYaLGOi#>r># z-Ye}_?Zx{}T&=hV-=82&Mdxqm2{=Me#_ue0Uc!^zzHfE<raX*o<skisPxIj8Rew~z z!Pl$cOC5dP3g5s`IuFa|GWb64#r^lI^XB%~ptS<`Kq`G2h#z7y8=TO*jBh-ybFAxX z{uBdSHM{k4px`v$N*7%Smg_#>_?}fKwnE1U^w{8w-s46Xyb2QfY3e>Lqkb9v>s%E8 z3YJ*q2Y9yUJqiSxN$S|WG9BQazHA3*cdRPKmvngev_<g5N*-av82YI9Zvr$|u?+)) z6?8rOx25jP7>LdS+qZA+&)_?jwZ3&p5sbX*<1umf3EYY4lI8m;ZbcnfIfLBcvBSvb z$1O0p?!)~Vy<~7jPS!oX{~~dIk4sc%z@3QnL#)UMq-`-vhLqctS8czbCq$k`T5u!B z_}*2ETNhe!8D88out$}HM5IrI)A4Ux1V47bdwTQO%5QU?5__8=WkgPJ-|oLtxx-9A zlus%p4q|2!Qqz<CtJG6+RJu=N#)5S^r4IfgG!=n$8CsDJP_H=hEP4gzOE^sNt^JYC z=gW{QjJb&RZ<s}?e8xqMzMsAW*DGs8YTjioF*UCss}ItF%<4<li&@w`(yhpAF{uLD zHkUa-Qn0#f@7n&I9ua&hmEF0~g`sYE!1>$O5-Zk2HQ^~f4N)T=!$-yx-ipYs{8z!@ z%)3uSw!Ms4_4A9&<9m<~qTYx^sR&_?xQSr|{uHgo-9+LD(87UIp9mQjyOOn^asbiM zh>oZ*xXm~fBh5Dg_r5#A$ZJiMqR{*ys%E;CCog0{{6u+vFgO9Ja{sladkW0n;g}Mv zzyz}tH^)%AV~6i+ouQZ~xgCTV`4v5tT<fX|57ZWcxP5B@S~vRxQSXeiKgIwp^mzQH zfo46b57m76t=KDz!RT^k8S@O>^CcCXBBxMAkVp70MB|@Z1>4+_++HkMY+WF!QLv)% zp!RmP4nxrXYqkidvc9*!hC8`k{Z`G+;hzYx4w59t!Mif;+ZtJN1JUB{<GGsYo|aGN z-O~!Vp4j|v=<&CZ<d_U6{xG*?I_kglYfqikH*)-_&waR=yZc!m=VE&9{!JAq^SoTy zpW(CG>u(-Gb?CMDw?;0+|J0F7@IPfF-E(h>Cc;_^6U48H78t>+o7VXdhOYIWLCr(8 z(62sYWbW;$7klLFlzrMrt~Guxe2{Xe9@|?~>n#xHWWQ55dBkY^`0c@u<{JJXy!PB_ z2r4{6gcBMmc-wgDOv7^tq^bNiqyV3UpMLd?vbIMuBs=ys3M<55<G$}Ds^K69+0GzI z<gRCeCkTU0HvR6T%1cR`r`?<+tOaR6*-jPD!T$RdKG+5Q=PpI2ITNqunn~BeNebVf z$VEMboo61bb564uKsJ0CaQeSSm9MU&UjRPJI2kNg9&#uleXp93YF_hi0ng_DeVU#< z0L&TkA?mJ3mnuqKSGVFjaeam)>MO7(@yq7_ONzcp`6KEsumcM3RJg9U<iX75&re<O z5y+Qp^cj)?QtP~-VO9tw1Ttu#nn)?7$$*!xY+B)VHIuj`Hj9*k2`Pp5CPa-t6lO3n zA-iA#P(77F5QT&Kdchx8zi8?8^-C5kYs@5oCbJAcUDn}g!UY`BCCENuR56S7ig|{9 zzxvK<W8%8cAzp}|K3gBB>Z23CLg5U@lx<k%g8$IPpS>>lDXLzd1OM5_>iC@Nf{#*N zmouIb7d%&G5FhM2wEsUga8qXBj|z9jXPm0n{LJ;I_U8(PGd`T}Y5ZD){!<37&nKP! ztatI}7cTz5OJSI;V!@)`bw5X3_LcI3Zd1gm*FhV-mL{&-EWi2r2SZ%D<vYh>8seBx zq>NwLm=CJx1TxWqZ&2^^9rzl02oseL;RpTE{oZCLuF9#`fooRTKRa;UzZIx(bUbxG zX37Hbo9@RxGH;3CeHB+4!<M?<0oNPzM&th>!40I(j~}zbd7>2rM)QKIck(T>4iMvb z%OVKkXPSO?HZTWOKC_O{s_Uh$Z)Yi7HCwz%bDA?k3Rm7~GFM)dp}KeDMH#C5DToQ< z<cz;x#lJiiQ)%%#-h+70mVbR>(dhB4SM<z3dg;u+8ek0HDLYcD!Z+J2$Wm=s<DYkN zKi|c@4qrd7Q|_JVY*OwoVxWf6<)@z%<kNP8%=3Na-o$8k(ymh&+p1~wU4G>b2Rh!G zwjGvi`QN4{M!OXu^Pl6ScCYKN8!t{R9l-pfe5C#z(Glr!#+}5wk5^7q#bSBUOK13; z={oBkUG7#>+EI=G9j~7AE6Ppwo1@<cQBkfKkcYm<c<)(^ku*W^2%^6F#I9DyX^4?n zT*q%K=YGs_eWbABw*)iZa3P!V&B}PI&3LOb-yU2;&kUyzu6F|WI)M#NV51Y*<ODW5 zflepT;{<x00Bf2N)7T5wB!N&r!aHh@f_qqhwPL&EHpV?`@HHH7Ux$Yk|At6L{2?X} zyAW0LRW^QQgZM0y9eYEe?Ia7wtIDmoRc6I&A!y%JV#V8v1|DEE1|DE^2OeM?2OePJ z1|I0-e@o@S1Djw84K$TS;+8)W4=R-e&{x4j$c#NI$zoO0hFFK=(@-uue0Os{*iHn& zhqN7HK}Fybg0>8Bl^5W0>CvbP(D~r?-EksqJl5PZiN0Ea9$f0&1;!V0m18Sej^ZJ; zIX7<@Z#V}3(4*KT68)w<b_<!yD;|#|W_(~J#tp-L+Bu!}&ZG^s5;cj^;UL5&R(H-4 z-@NKidcgSu1tSj^g#(W@zZ40)I3tl?9Q}k223x)P+ZjSWHp9NM5ecy3B0s~i?f;GW z8I<`Mnu`t54g@O7Riuu$8OuFv?m4F;$D6wYU9Ek|IoPQ|y&<EU9UG8(SDu<P%Z~l! zw|n4EIJON{sLld+RHfXw#SP@;*y+N4l1NY_9)Ti>Ee}<K*p3|^iLd6)7QR}srAxyx ztI3LiAsr5a^TV;WHnpXOd<}?;&4o{Xsi4J*RTWH6jC%<_A=|`c!s@OP(iQjw-4hau zRiXN6tJ2j$MJDs1v|@gd)g3J7?h{;;i%mC~?bH@gB{f|L%@OUan#QM~VYh^RdZO@s z5tCR|EjBxO^SVidEP+0Zw5xVjedTb{O9f0qti4lXyu7>w5^#&Hu2;Z&Kefc_p6bU( z@cvCL<5Rc{$6kS>9{nmK%7!JrN*x;@V6&q}k|L4OetGdb81>729osNIL@1rmNgC=; zk*y*eIB5H(b=&O&!))KwZZr*FM+~%(RmedR;D+;SFo@zU7jKgbd>xbIYaU;5;rgfL zYd&8~d>tPk`$0U6uYTWJPW)&sdkAD6JJ21iw#RnciJNin`5P9b1rTmdIFWx*^la|U zT8YAkSucxs$P47VihN`3ezfwN-wfw;M*;_<$HBM!!|c1jWdN~{>yVb6;n;!eJlA<3 z_@On%P{YUCPCK^M*D)8pz(X4ly3DHhjG&Di^24pothcFb#l~iIY?~xN2CSpZE5D*< z-4Yb=ui*;<fQ$o*!j5$dP*`Q_P3sPkI%^_0bm`a&H}gNGfz!f(fKLU600wIt3e zfnK*$e7QkY7KZG_G$I_ozC4^L-G+~7Wv`@zn&Q_X3-4l6%Ba;OKC?{wJj9N-HWHtb z>TxkbBHTL=F4PYB?%@(f>1<j17Ul%u*aPbk4{QzBRdgCGfapAAe_|y*$%tBs3;7T| zf!fW^0zJeDg-DQAvLd)=!H!A8KsF;H9wVIf6$8l~P^yv&&qmzY<ou`!*vY0^9&lAo zg6z;MdBSI82Kt@$d*Kf%fE`DZici8QpgvOrP7tLHk_{jcPS7y$x)HDG)&o}v#CJEF zx)u9_)%7w)kvA?42R=Z1c^CCIAMNE`oZ|R8Y_u1&IMJ<I?H}ZXL~TKZ#sTEKQHbY> z(Q3ZoTW;vroTvf6j9uU51<`ZVm;BJLIR)bvG~ZE|7q#Ls&n^l5nmGbwdWju)H+rKz z_T5P0O0cTFN^VZJAM_q4vKuanqPKrJ5B`Y~f#7WgB$9F<mxLx&_6QkjaCO1F!q0*| z^>Y}vz^2^W{1Q8$B0J|TBrIC2Q}Om>(CxtgsKQ6s*dTa>c2;X8+Seg66_4B0OLYLv zjnEoEwIUyR9--UapHXO5Toyz8iXzbj!|?}YCjWQ?+=xyX<%0nMN`GWQ<@eh0IVisB z(x52lcz!Qmq_!c;z42BXx|!A`(O5H^FKcv(2(ZYvb{{@df7jY)U}2xw@ja9YdxavK zhb^cs=pIwm1=%CY(~3bu5xQYeh{W<dtHh3NXALexs#l+4CyKk*+wtQec2!`<^U?oI zJ7@=<ZhZ|plcW>Xnpp=`qle8ez9o0y?gNas=+}}Z;&@88FVV16GaGXIf>@UD*0r6X zoty0})xJ^=oh@FU$;RG{#9o$BJ`GWRh#n=!92QNq8a)83YjRZjowYidlYVFYPrh|1 zMUO)8B=@G?Rj=Wm-sDIO;>MXAb1)U7L@JzPC{H=8%Q}JrWx-mwf0+X(rkktBh$A?R zO;98kL=Pd<$l38?)Xdt0m{qpEhT0SzM=Exvt51g(vTc}htMZFaLC3aDR0u0J1rBz# z?q{uAy9F&IxtGmE_MJyaGAl&J5G3*+aZUaZ?on&f`N7l6fz@Nu<q7UPG~}XusyEAr zN;J;zx?B77dLS!3$rU9#f&A@hdPDFb_P!N+2i-%7)qdMjTrm<t(T3yKmWSgjEF98@ z<2MH}WrwP>+iJxy8;-pp)T8McqKzCzyT@o8i6zscu{bD}31mA7$376QUX}GZ-rB@Y z_wEg-HdZ`>4k(0m04|-W;yM6RSG5k9gvg-7E%DtkfwtJQ5N<>d{wmf1ILw}gUXdr> zQ7^hY)nOxl^6c2#6`d6W_E_-W@5_rMCVzl#bd;6zti7|39Vn)!9(1Bb`A}%ko#Pvu zpNnk5l)t+<842vel)o@K0zM+kk!xGR@z1w`C(?Jf50xC#oWB$y(zx8I){5U+XD6)w z8Hr*@Y~+uOB#MVyfnF|Ta&|-Xld=%QU$qh|khDH27|{)xhtAOOzEDT6uj739XSe^g zz;_2#7K^!D>|rJ@9C#MP6J#E+$ay?E8Vio1{I?LoJ9?RO6%M28IGkW)-;K1L1n~%K zEc&~BdErFx11o1I1RI{i^yB16V&ZW0^gH{koM)Ky8HsTs>4n8M1RX>s-~uPGb%cC% z`JX^mjN<Ai64=)KjGgl;;vF45J&}KssC!Q%B3FS6G*JvDmO4%)k#AdZ>}`znx_^nU zKn1#1R-hHAKsQ$+w@?dShK#AI0ud}X=b+N;wc@Slu5X1fZom3ON~tsPd4cTzhUN*u z%}HGEh%CX4L|5g5DWxvImj%^}nCIAmCtCL<8^o#ybdZmb^vFSs<D>GQAdwY#s`d3` zDVpPy%P+6FoVPvjmU9&Al;&n!*nsyLGiIy%X#BX8!Jl~%$jwU|miu{>)XM7+c)N$c zp>Y{5Mwj=52sI1-kbhYV?&A;_kuPaj6m487uLi-*?8_D`zqYk;LGwolPhIqZa2u## zp=CVpAyIdXr0%F;#PnS;Dm6$W&4*5B)^PpM#D$xBZt%A>G~9rz=U4a_Ht;Hv^KdkF zQ$t%SJY0r>Ou{uR%W-MDxSpMF>8ut}6Mx8aoPY816^Y@_`DlIPvgIu+Tk2a@G~(c^ z{>H_PiyPA}Xw&-nG^*e6{7{-j+<6j85QOGQIEQ23be`wuos_f1TflSSN)?6g^O@!? znC|uGe%@O))muK*TRGJmoa(izytPxkb=BVamw8JdFoP@IEjVGG(NHBNWt+dmd*JWL z3wizR`FY3XxO(BAA}^?bD2>f+_dnye6+fE$xIvhflg_3`um<V?^H%0U0iXp1fR=Y7 zv<7a<nF%!auu>g372s5WQ@xvWs=S?e_CR}JZ%zb6%SL!Bs|JbhOdpwBgAYiwL)d5X z$h@^V@OB!)ngwqycxy8TKcFVV!SvHdf>|O<01)A3mwZ3-3Wn!&G{ia`SQyxo3KKjq z>HNqhqck0I<CPFo${r{KaWM?y<Hv)cH<Htl<~e5$c9NM_G@1|fOxTHQqmFRI>#_54 zs10cCnR;g9<>040acY`LOu2Nabt4mJTa%jlGVzdj<#t7;nJQk7_tdF6puf&gxPI5q zT7@@hKt1OuT#QbRZ`pWPt_F?ZwNSL8&w!n09y;&UC-I26;P<%TUj<J8^%;lgcYtkn zq2K0$KkkCR0G$5sQTZnNC1AOD&ldk;;H00g4kSe11N!q^=qD=rCUw>&+9v3yxzNva z!LM||7rEe#E_j;@-r<6O*#-Y6;LHcPt&r}U?o)VBrC0Y^KXLKLBSt%1ZHgP*FfLMy zQ+@r^IWwzf+ch)m>&IVMQF*ZwnJBLYp_)!%6SsqiYd_MrfK+<OmXdX3&91$3QOlzG zmL|c=(%OVGY^Pgshaa?Zs^MADV2H1;^%yT9&t=ud7@yUv=A|p@Z)#XH*r%oiP#QJC z<2ol;B$;o-JV7T-&K8u8QO-l^5ho?-A~jVoWlgw>&?Az#@&-;&R4j3WAM}pa*GoPd zGUs?O^;@(QGdMYoX{c}0wkWJJZ6bWsVH&AFR-P}ikJUUO>}P56@%t2h8oz)bj1vz@ zco1IWg7Zw5#_7*;2@k?=GjKDW>kZtD=l5LjpSj>$T<|Ad@RwZh11>m)$7!7DEpfr; z893*2I{%{v{%Hf3GV#)X^2}&@u2X6F;MuIkuP|`-lN!Izz)kwC3TOQN2K~vZA0=*v z%X@lhoZ)`Wpg$eob-0fzoc+xi2L6tLv#x6TVGIz4^yKf*I8-nRL;N%Y|CGY{C^hiU zy5Q4X@GD&Kg)X?MkG0eY_f8l3dtLA!xZn@E;Co&0eiwYe1us%l6@F%)p!4}011~l3 z83ulqfiE=hvkm-a11~f1+YQ`o?{^uv+1~%r1>a`iV-5fJ8Mqn$w_NamnxZlv%zECg zaMtq?_>upD<}L##|Ao%CuN(fbj%xfn2K|W!{zDh~2MqjNgZ@DSH`~hzYRb&`o9P|r zf(KpjxWb+7`jcG4!4Nn5lgkX;>`&GyobfU1)hh;W##7%WO8T?#)A=@rnGQqzZ2UBS zje(o~v>JGsLBG+!&3d)Tz|DI28v{4#x4PgjDxCRa)`wROoK_wG1BO5682I}JJ=aK@ zez;l)F&|9&PZ+paPfj&(GhJsGxLJQ@8@Ne-vw@rW@Pxvh>3!C~nG_xWmkoc+_`hz@ z7aR1$RYPNX&2Y~(aI@T}7`R#P+ZFDN=kE>NjOR0kKW04l81y_J)9HHGpf|()m6~5O z{^Jb#-3C71!1o*Yc?SLl8x@SxpW$lpL)`S|R0B8t8Dq>V%>4Aza~S3if7;0PZ5r3> zyDumLO|REwJq}#2zc#6GHN9SsY<1vzJ+j+@>vh>j=Y3rv7++hW%@yMZUvVaxUmZ-a zX^vR($NrrZv#EUa<H@X0!<9lko}jX|sdCmI9IviCv3^dbVEnA~Fm%Uo3itxU{Y4t~ z!Nk?{jF2#!odGFa6`Oi<*UvUo_ij9~Lv<fSOc<vLsTfI%cJFoII{x}ugYVhg_o(#W zrU{ilI{!30Pq{bS6iI72_`{5qkJP_2TbJMq{Ziy9x-|;W;pq?hT|c?Mlg<5l<=z>d ze%H@0D);3&0QKCU+#ijn_Ace#;oS3-GeL?#=bNVgXXW0Rf4h}?zvF{Ww|4(cSlBlP zHK3kBwea1j-kDx@z1qF5|86|Beaih0m3#eg#-HzwC<@Yp9OPh@GIB5shvTp_d`^>` zZ4Z!VJ_lzQ!FDLE;@=s**mh8QVJNz9GT2JH{J&_TRBJbJVtFO${QjZy)NWQ|79$W8 zv5<GI;RG29?GU3m6`iw``Y*d%5GZB5R(xK875GeRS@KT67Ie7sD|ESbs;AKDikp|V zgKYHn=wf~D{3O)U#YR74#m7A#j?aD`>dkiDy2OHJ7b~#)w$G8@5{HsFi#xUT^!-!x z8M@t`?}767Q|)-JK@s)i*c2QvmkhK%Z^u5h{~0KPA%h>-N7b312!Z-z5Xu+6Np*Nu z;052>TR?;)iUaj9&P{zakEIWXAHm@;ICTyk@4M$|q{WJX0p@Uy9ml;@|HUNc1)-b% zF!<sQ%QtWX9M1D~?2~Ue3O}6h>-eR7^W*I}U&nXlTN&Pt_pSX``Bwg0E(EN=PG83i z#%Ju#aN^2=aKZ*_kKiyx3?Bl82Wse^u1Sm@ZU-J0x6JLZ6O(#zzKheyCB7$pWaJ44 z9%+7aiEl+$IOq8#zLwq40`O$l63e&xVJoNC4m|4X=);MnotNLAd;u1SDdTk5xAqK# zTX6tdesBNnaR?~60`I?NwHBwKzval4yoMO-X7V!HSfi8EXk*(*{sU}^M^q_8ByaKV zFnEe^YTF16!6;DjCUsh|C^QzvwuSQ=OP7*=YY#cM`Y9=XuVl%Bn_6DzHJ^+ZP0-<t z8_HCrBh$_L)&GFvEL{)2y%?@tE8cGB6~j8avmmrRA8MWB#htnu;wdVt9V-@G40d2k z>+i{)u?GU#P|8r`fhq!OQ#gLrFki=uNE0y8Es#@cJQ$_R-UIK|LEkqz$rJ*H354HE z4=gx>u16bApe4E>q!?eJ)S_&EnCuYMr5ngl)d%7?ASGV>22b_x?nGu0?q^E(h_iO& z0J14u3Qkz$6|OPFA^mpfSUj0$@)ZZ@)4CK72kuYcv2`vE)qNc=z%y_f<pTj@#+pmO zc)>mD?YU?nU^R&sZm|MMUt)k^wjTm_(_e&xNrh`J%|S)Li|BgxpOEGm0c+Ft<KaBK z3(1<C13#d6;t;P{2qbSEj`~Kot!T8OAi*nHUAoD7_nB~FQYEf=_zP-+#|FbxB$59Z z*ksD7y3h{vgnZwDw(kMoce_FbJ-&{qB0>kjkiji4J5kfmYOooq4cqtntgd7pcsJ1Y zddT73Q9zP-^)7HtOoh(F>e7vNEI+^qY$EgO*vG7#KOhFITF|HQX0Dx>_?ETvO)_O5 zR+my|<0dLz+-xTbAA@3Ugo5^g&Y~O2y0@dvCZV)rduNVs)YSfPVBqF`ES^oQc^j>< z{Z`If)@P%oJ<;Ka!?uG6ddKv{#9Sy^qz21^@Mq_iuJf&3f~I7}-X(Ji-0em*a%9EF ztrotH-yu`N;Ba0?Wt?@?hi>sAx($rgQq@02;>F;RL*1U4$lt|W1n&h(5KY3)>0yb3 zA?*Ta$La+O?COeid7-j*@pGYI=K(LnBZ3pY7<>vvV6K=;?vvcsXWp&?zx6I~L5_Qi zkptbsqS73I4SWwp;NhK1uAn@-JrCJJ73hqFr)qnCF>2L3G;YRw9phccXl>AKXVnO_ zlWo3^AAlNl|G$`f@NpiBw4XgaTao3Pis->nK}PeL*e4ZwHI{bz*7jl*Mvr?l_&`J! zAgocIWK867v~(lu0d5aT<^TxiJSKTFr0#Vx+l9BGr>;2&_N&%cNtz6U4&{b~Z_i0q z;pG}NI;0hnr}I;=%M7fJ=<x<w{?yF)+@~-)?Y?!KxLdQZD;zHry$LX6>{W%mHQ)$i zDIjB!<7kaJtxqWpo2~!(&KAL7)gdyJxo^h~wIP5t1mOQ4X2xg#0si;iI*!GpdCMlT zgo^SHqJ+RMgPa5fyzc?csKOqMbL~k~;zI+i|G@xsd?k<mW9)*VI-U|9??+-i;MBLF z90cr}xFWTW;gaj|?w`;CZYevk)lPs@U2sipQCw5M;m7v(hx_i>L|bgP;4Ko;6Mbl$ z+o<BcQ%E)BiM|i9y(%BdD#$t2SMhko4ts1T`+Pgm1kS1Ayl~DQ#pxYR6kfChNkiM~ zBKOc$`6q_JG;|`FhOEF_%`c)<BY~diiRcLb%6cZeMn60X5!zaS%NxV7L)V1CRu<!J zsHtL1BA#HjTf>KzX@K+mEyDd)xX<4rCm-8dU)le2k}31I=k1sXpLrHQa~^sy@^;*j zTP0M*{cMEN6=#jiJ2}T&uw}czh0?e>kj|zfm|t=LJ~D4XULb$4{?qD_xpTbbR;E%^ zc*XfK%aZ0w`4HGvWoOtl7Jj>h&Eq+j1AaOV+4wzby}{fqU~hmTis_kQhSi3U^2>bC z+m9b_gPysYG3DHyGx$s+5$B3t(qz-Q&owH~aJ3P20x#UZAzscp0wc;C&$IC(-mikt z<;8kMy!LolV04*HhMo8(g^O|nHWNRV`yith6+GCTka0qpai%I?!txYSy+qA7Y0rMl z%P=|Ppy7jgruW*ORPkgL=h8#t|4$VGapsxE{jk%}ALXTZ*Xh@|&PUz4HLmlqN4QG+ zqx12P4qWHs-)gT4g4vaS&wVF9(!<*3tf4_*G|xGzy0eaOYl&qL#LqNq)E=p&K)x~@ z?Oln&&r-N^-FxcbrX*aXTZZ(2`>gcy!@76da~f*+L4?gXIk!0cD*igXAQ48t>t_Tg z-IvSHssA$N{%CtHS19)>hsrW<i1~NDa&NX3dNE(Q_d7CN$6E#CSprM8^6ydQ-=+xp zN-wp0UH)!+E_!dcRk_y>M|4EqIpa>+HEOT(Ugdy&2S*ua_>7aY?f~+XsQ54Di(#DM zpI<SdLhhl+|D)}>K<v3v(hPmiWzXs92n2;Si2CLea+X%&o^{B7&f~1aH#Wd3rF9eS zn_!3Txo{%BhBm4o>%Ma%tYhGXmG~7;r74R;@u`89+BxAwJHKM$xkiZSAXoWZugE(2 zq#$lf(1HLj1abQq70By|fZDf08XD8{eq@l<ehYc~chVZa1-$pz8v0j3+X5f2z}#(@ zm6(HBWEXg&F_$dBhDH#<VLgGR-bJ+GZlJEc;Jr_R_x=!Okyw!7W~UudALePpLPCWc zrfE~KP&r)jI0f^@KEfqrBrzRx$Z=jPCus`ZVtx#1TXLkQdCq&9`vm)a@#yGCPX3?( zZxk1g@fqO1hrsYB7<-6qvcn6<XJMbAs?JK>*dIxZ9sy~M3q9bQhkXLB6<}zAN5O2r zwR-rAk;MF>a9|(bu%Ja6tB3FHct-QzA4>7xL$V;YlL-t5c7XpLl8GXLpTQio2;z!~ z+3$N)Ix+FZZi8fj4`XjBG1|v_qhyN1NHG_-iMfCBL=xi)z=A&kQ|g^bE9Z@r&@sFW zpMdm3?wG!N1rI(r*+(KfyqH{r1^=<;XCgT-BI40cPfrw|#sx<HZZRKz+)7}Pj|gDV zg4-J~vCdd|RWqA-I)=xEd}PQQ#lIqI$KWr9SRZ`cjLde37Qx>NEWlIz_m7Im^pFAn z5zf%D$JT{Sza6c6lS{>xQZP-Axc`C0`Fm8UE^OdE*7{oV3@qrR^m2wS!wzoh3;A~0 zIN%j_)MTAb+}VRluUeRDU8>=zRu!rREgMiRD)vKbkO+aSK@}DjHXdPN>k$?<G1-bz z@^7_P`-99SG?^daA58`_M26CVOcex>7c#yLT_Hg)LNJ{^xW@_fIf4F6Kx+m_?J>ER z`w)sfS&W>P<*Vh29C`*AV@SO2W-Q|05YdIM2DH_x`Ks&riik4vOKTWNw6n-k1sGpP z$BD0O5RV7g<ynabWjUefM9;`hjztJZ8~MFkJWfJM@C%EQ&-M7kCkqm?IOqUHS2(yE ztV{1DAFCdMN$hfj9)bz9eLVFLh)RJhPbnezAIowMIdb%2hqOiPxroyVy{5-D6SlRo z=qb2RbQnrc!MhwgvFkxS1@Ha#AZvoqQ&7pBLciLs4VRX%(~;Uq?fA__R%{C-sv(eD zlwXQXBPan~iaqM4CQt?EbLYAM0#PSH+^<cD8;4^X*06F(T>~={<6c7j@^t61--Apn zwH2iG5EP}Y5LMznJ1Rq!l=+mzQv6WbRX?)!b?6}lS)GUych}$}<Wqee3HZRx`@0{c zM=8}7y%<)pJ9T)N@19wtz#gd-;K!El<5+bm0sc^duOkn$CcILBKLii|EWhUS6$1R* z<SPaELw?`d@8gx$ve0HODzKX!onnoB*h;K|1i#pBMWEPnExc4q@K1#P)U*Wuc1ZBg z?6(33o8OG&^x&K#I!p)@Vs9%g!cXCSu_rBLiU(wWAVrC>GmUI0_jSxc@ZtDUWFgL9 zaB@%(iQ}R~D=~4K%+ZOZ)74J2>P{x2B)j1jJJhQS1O}OWya$<)1-`p~#^l6T`R&A& zn8Q46;Q>Lr?U2{SBqmt!l&@ntg0$N|fF_Y3Y*2};4~fEow=u{=f=~$Ap@1)z(se?i zLF{5|2xG5Vmh@Q63ijny9N@VQcJ@!k>?WLZI5nM_I2>d6ioy#xo57h)4>tKGaDN&b zVbCFx^EPfgiWW|f7eCF@o*A*?rz30s>|3{qQBTws@vb5}u*=rdFUk*c`t@ssZMVON zi2oF}aO~A|#P=cMPa+bO4jg62Z}o)4Xl*5Gu)A7dk9|_d+)jL<^aBz19g)QBPkL}9 z!8@kZ4twFHBHkmIVij-LyO5C|Fy1}5wkdkTj5x$#8S&|{;!e@@!igWV3l1mlV^=N< zD)AsSne+b0!~<+qh+B6%KVyg=fR%kU8<y4n%0VkOu@n${egTa=gf|Wc;;mcs{HzXN z?DD`*eA|R?G-3FS2M!r<%V%l7gdSw~|Bm%z3?l1D6MG9TNJax|8~hMfhCKF=^b}se z2{Z6@QiFtHLt8N3m=G>MVBM_ULahL-B2hiCuuH?|^=g%3C4St4NT{5MGb!Q3w-{?g ziUU|U@f8kdsJCTm+~T2085I&F;>-v3YiJa+pfN%&4Pu3*A#{ER!?C>(<wjWahKr>z z&LK+X%n4l{M)N5P&8g+Ke0k_fHTE^b)3;Fu^i;-&U9y_YSn+)5Z$`Vp{Tt9TaQ#P` zESMtcex>?>i9``^tu&^iay}87g~g0W8ltY^hsYy&9JoVQB9Uq#lOF3akW+|wDVutm zOiaegCi=A@CLno9YF;B2L_dIdIa*Kh5T0t!nYoB#nrR$Ts0e_4lVvKLkoqV%sI>1v zDzhl0fD4?A;(H&y<3Mc}@<NpX^Bf=KI2~4sU7&3M1AtI;gu^7Lz(7Nl+9|LE!$9yh z`s92Zzq~E9Q?#IhVi*yF=^*VC)Tloyi*|}Dsh#4oY}zTVEaDfbouVeKox(1GT(z&` zP8Q?Xx5E&ewqs8yp=k~gP*Nf4YC&`+q=5gz6mnQAslc>R>#Ha}$;x@8;(#o7z*rTC zMb5m!3A$sXq_t34Q2><{cHo`pDZ&?>K8!8%3je?nrVuJ*sJ9}?dERd1E1$i5vS#>` zUxLB`v4U`~30amv#zH6df^H?1qVgIQSNKak4sVNPN(U30k|(y}6EWD##CcGm=+$jV z6z@-#rt}tQxnsz~^E7rQ`sG3l=Das=U+b&MpNpDTjRlD4xRci%ROtw9=7^KLI{l8s zdXm%A@9cAum!#j>MJ3O{d!{IJO2Ajk+-6GI%Fl~ip*Z$hKjdl~7Bu@ITN|Ye?}|o< zHLqBHiT}*SN={hOMP`KkwF{aTFKb!hU)0#JV0mkkAVLf>{A*cx!@?Df%NAuyO%L{O zdFu@g&C3=oXv{(gKWW4swU*(5+z-Q+U*!L?!E(VFR9U2(GQLY+w4AW^S-<yR%3*;< zKmXQp#OvU<K5MFA(WcL9?9`okR_e~YI&W~6*Md}P$Xgfo&bPcvEpL<MZL9LGfiUhm zNYbv)!I@58k^;1$K?1i^N9In(hryDy(>SyQ@!N<W&0S2ekZE4!EwQ|QNbcI+a@$*J zdxN%!L6x^I<ed+d=ea+^nOMQhk+~L*!%(F?uh9dT9sJ9beO~A-L#!-s<<;Jx<+Utt zt>vwo=AB>VU0UUBs`ZwD91_qN=HQevfi&OY6Zw)M1APKyppW1cGS5m$LRXCxa?q6B zqxmd17}NQj?Od$J+m!d!9B-S2e4UJZos4{)4eXLUZ`;+tLJFG(>E#flm#0B`xeC(D zRZ1v&mbWPv>gcl+!L*T+y=@_QVJR<c<%O-}s_Df{$W>pB;9f&9wpA-)3vs9!nOl{$ z0H?A5k6@VekKdUcmL(4JNxYkK$9$(b8$aSfzQFK|gC>9<aX(*RG*0{fgq-pW2CNkh z3%mTQ6%Q`HGR++EIxM9_S%1A+SXfarO}%(k8|lWU#R})vsA;YfFT*@C{PdS5h3m5b z{pBWMIZmA4X-q$}$u-}Ck3757M)YBLS&yGHE~NP!NVDPJccFj41?Re%;Re+dT=ZAK zo^qk*8DX|?_bPulr=Ssi7M_$N%tlYS=4|*F;Ec}(v0zkv7W|p&LSLuogQ^LLJ_+=k z=4JDLl?(nw7o7Q#&7Xg9!98kJJc5LA`GgBIC5$Hq0u`Cah2<6HJe3xI;O<v~$7yk6 z`ME-Ts+d56K=vU%`>AwR3EU$L@k16?)^h?wLfIj%d_)Q5EY1PB$S7-K%zJo6fKw#- zhU**aTN<M2f~ap?u(F}qL;PCcH!NtYk1oXp1B=O9z6L)UR$tB|^qG5{(?S?NI5cSd z9}S%KL*w67IQ=o@UGF#Oc`m5w^~%^u|FGeYDZkgL+Nm?1dkoxf`2U81k1_D~T<{U} z7={m%zQhGT%LTvK1-D%At6cEwTyU^J3&U(;xlEF;p1Ta(ESIkv{+Q)*pFz)aZe1=v zb)gsP2SLZrX1V;;pg+U#$E*4=el9ieI}O~dZ|^Cb>H360f07#Vh!-39A_F(+zo>AA zdzL|e*uc$ji&g*W3^%H9`cr23^9zNa1C0DTI^T90_-O|IM*~0Iz+W-&GY!07;S6`I zfxqX17htYS<D?&{hJNCVtB&V%12_HGyai5wb}D-259d<apSYSrIPrHBPJhld=-+2$ zg&{r;KkZLKoyik7%Vm?o=|7$F8_ll_+^pwY41dge-fPhF{6~lTM;H2+4cx5fZy2~) zzE_J46`3wG{x>Sz8UHo|H{;)7_+!TZ%Le_)M*Mdf^kzB!#RVTlhAJ3m`7Tg6<7u{| z_YK@^cOfOm=%l~Jz|Hcy-N4QC-mP%P$4u|n40`gD=<@oW3;mA`+$^sL4BRZQ76u5z zhuP2j3BoX4{AqK)vS?h-7yBK!p8r*1eng|`^?Yuf1K0DmW9Knb(u^(wkkN*===j#< zjmxfYXk4k~AoX*+<V5>8%R}D6N@5tttE)WZCU(X!1*)H<J7&4+9*-&y`Jgi(dIqD4 zO}^lN9DejuO(RnHP~B_Zv<WGf(xTn7uQrViUq6HRNW0U0pNjwYOvkY6^lSGu%Doy6 zQ`9j|&axQoPJfyQ3o)~e@Y{Oj{u;g*#+j{4@Qv;{=P*sba<Aj7zv*}V<eW8|d+niL zJ5)~{zJ7jDxi5Fn`Bj82a^MV$MnCT|?Bav^yTX|ug==@3_Mc%P=FGo3<$kH-gHE@0 z|4mrfcLg<|o}0%=i(Zd2y&MX(`=jyZm7gx%|4=?s|IYYli#v%sIY_`%s{WP5$tLLx zpVJ9v+X3V`s3Q1FM}Ur3+%cjA9sSZAjW_RtizghjJY=t$!!TY!{^8#TjUk54TWY(- z0Rm1DW<w^1yaMt}pNDD%LN<bmP1A<~yvr8b_+mFI%Yi~R2=2u>L)w!hqq06Nufn5^ z0qG_9t*m?HZMT`<D>@w%hK^vtKS;&b?eMpco+IW~Ow7ci3ssyTZR7kj&5Hknpq4CP z&d+5>{OtQ`C;82MzwF#1&z$k1?j*4i!rSDHf|VnPlOY)ln4=0s+Eel!TNu12^T483 z9V}2|YU7FpiyIb0!)kN0P@L*%T(*$w-{$CeZ2#*8G>#+cXJJKbYo%!QVX;ysJ`H#T zE9Kd#l``)8)W-*ZV_l$gkrq9_UCV@}_m;Eil&tpFF3P$!JZ0pK+4kney6Fq_7e;im zxS4c1Hp$s!zba5U_rramMPcB6V0zy3ZGH!y+lGrot4G@S7kmBeUwZis#@sWNNajD= z@W*NIm|blSV#GAi=st?`#2k;BKp1$1!1GgdntrCj@eoGi*W!)->poZGB+4cqB60SN zgH5*kMD-r4lbU;}+&flN_tfV#!ggFrr>y=U>Kf>S8c<J;arCE7z3az4!g8Eg*J(^Y zv+b30y<+a|%J5{J(|NDm^Z6tEvf;mS!8umb|Mhs%s40YJ7VN|~2~^c>*dJ1Oufj#$ zhW#=8vW5Gc3;qgl`ro7mCtd#!xzOv5qh54N%}~9#q;)xT1*+~OQxD_B2?6=pZ68m# z&9<4RI>7p+(2m^LkhzVT-a&;VO1KIevD3melSAS9nyFJ~O_^OkJ2W{wr9Qic!p5Z{ z;;H!Rcl4<qZO4f%?O1rA=QSx6LfX__kh#bwP7~CU+EWEP4RK<6%{QGO3~?^!G=2p^ z82Z6Brt!}cgdsi4Q{&4B!Z_)_E@45>Z~W10mX8#!{dr#Dr28~}8t-$^tErIZEdyuW z)by+;H1x+@vkJ~ZV9xw0RP{{b+JCaM(-3E$ru{EbxYPgB4SIg#k4DRjIsGTcDh+XS zZ{T7V|3d~n{nqiJTsjT?Vca#&vkDq#xL=g8h#%EtXnL(PmVWyUoOT-e!=E;5ltts~ z)%(2;e3N?DPfg#e@FyMgy4`=|wY$q={qLor$d7cf2%KxdATXM^Dj)eaxQ}GN$Fc}& z0`**@hR`}y7+i<YD?JXf&C;BOA93e;;891oq@{7fZfo&gMd%l<(tkR9jmU9*@LF2C zZ`6e9sl(ULAaL59`KNVxDrc#OcBcWo7FXG%VNXy2&iFdtuY?QwS)Ot!EtYc6@zFFo zeEpn{kJ@h1t#(F8eRR^cD)&zEH44~cdJ4NU{!PHL)t}vJD%7Ujv;J^NrrqoM!#>qn xcj%;+#4xwXN9x}hf4)28PU88>(-QUMeCj0poZ&N?*}`vA6@q8Lrg6M_{y$Zc@F)NP diff --git a/include/osqp_folder/lib/libosqp.so b/include/osqp_folder/lib/libosqp.so deleted file mode 100755 index 7d0166fbe8f44b4e259c0643acb23a512a876bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123272 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⪻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 YWPF;sYfk<B^k3<m{)qF3iSy?FpPL?ZCjbBd diff --git a/include/qrw/MPC.hpp b/include/qrw/MPC.hpp index e2ff4b5a..0e7be911 100644 --- a/include/qrw/MPC.hpp +++ b/include/qrw/MPC.hpp @@ -9,11 +9,7 @@ #include <vector> #include <Eigen/Core> #include <Eigen/Dense> -#include "osqp_folder/include/osqp.h" -#include "osqp_folder/include/cs.h" -#include "osqp_folder/include/auxil.h" -#include "osqp_folder/include/util.h" -#include "osqp_folder/include/osqp_configure.h" +#include "osqp.h" #include "other/st_to_cc.hpp" typedef Eigen::MatrixXd matXd; diff --git a/include/qrw/QPWBC.hpp b/include/qrw/QPWBC.hpp index 11aadf6b..8bbe2feb 100644 --- a/include/qrw/QPWBC.hpp +++ b/include/qrw/QPWBC.hpp @@ -10,11 +10,7 @@ #include <vector> #include <Eigen/Core> #include <Eigen/Dense> -#include "osqp_folder/include/osqp.h" -#include "osqp_folder/include/cs.h" -#include "osqp_folder/include/auxil.h" -#include "osqp_folder/include/util.h" -#include "osqp_folder/include/osqp_configure.h" +#include "osqp.h" #include "other/st_to_cc.hpp" class QPWBC { diff --git a/src/MPC.cpp b/src/MPC.cpp index c3cbf6d6..b14eaf07 100644 --- a/src/MPC.cpp +++ b/src/MPC.cpp @@ -525,8 +525,8 @@ int MPC::call_solver(int k) { // settings->rho = 0.1f; // settings->sigma = 1e-6f; // settings->max_iter = 4000; - settings->eps_abs = (float)1e-5; - settings->eps_rel = (float)1e-5; + settings->eps_abs = (c_float)1e-5; + settings->eps_rel = (c_float)1e-5; /*settings->eps_prim_inf = 1e-4f; settings->eps_dual_inf = 1e-4f; settings->alpha = 1.6f; @@ -535,8 +535,8 @@ int MPC::call_solver(int k) { settings->polish_refine_iter = 3;*/ settings->adaptive_rho = (c_int)1; settings->adaptive_rho_interval = (c_int)200; - settings->adaptive_rho_tolerance = (float)5.0; - settings->adaptive_rho_fraction = (float)0.7; + settings->adaptive_rho_tolerance = (c_float)5.0; + // settings->adaptive_rho_fraction = (c_float)0.7; osqp_setup(&workspce, data, settings); /*self.prob.setup(P=self.P, q=self.Q, A=self.ML, l=self.NK_inf, u=self.NK.ravel(), verbose=False) @@ -705,7 +705,7 @@ void MPC::my_print_csc_matrix(csc *M, const char *name) { c_int k = 0; // Print name - c_print("%s :\n", name); + printf("%s :\n", name); for (j = 0; j < M->n; j++) { row_start = M->p[j]; @@ -720,7 +720,7 @@ void MPC::my_print_csc_matrix(csc *M, const char *name) { double c = M->x[k++]; if ((a >= 12 * (n_steps - 1)) && (a < 12 * (n_steps - 1) + 24) && (b >= 12 * (n_steps - 1)) && (b < 12 * (n_steps - 1) * 2)) { - c_print("\t%3u [%3u,%3u] = %.3g\n", k - 1, a, b - 12 * n_steps, c); + printf("\t%3u [%3u,%3u] = %.3g\n", k - 1, a, b - 12 * n_steps, c); } } } diff --git a/src/QPWBC.cpp b/src/QPWBC.cpp index c8818ef5..1984221d 100644 --- a/src/QPWBC.cpp +++ b/src/QPWBC.cpp @@ -247,7 +247,7 @@ int QPWBC::call_solver() { settings->adaptive_rho = (c_int)1; settings->adaptive_rho_interval = (c_int)200; settings->adaptive_rho_tolerance = (float)5.0; - settings->adaptive_rho_fraction = (float)0.7; + // settings->adaptive_rho_fraction = (float)0.7; settings->verbose = true; osqp_setup(&workspce, data, settings); @@ -401,7 +401,7 @@ void QPWBC::my_print_csc_matrix(csc *M, const char *name) { c_int k = 0; // Print name - c_print("%s :\n", name); + printf("%s :\n", name); for (j = 0; j < M->n; j++) { row_start = M->p[j]; @@ -414,7 +414,7 @@ void QPWBC::my_print_csc_matrix(csc *M, const char *name) { int a = (int)M->i[i]; int b = (int)j; double c = M->x[k++]; - c_print("\t%3u [%3u,%3u] = %.3g\n", k - 1, a, b, c); + printf("\t%3u [%3u,%3u] = %.3g\n", k - 1, a, b, c); } } -- GitLab