openucx-tools-1.15.0-150600.3.5.2<>,ip9|:nP 2pVn>?d $ 6lp       g    : `   (8%9t%:%FGHhIXY\@]^Gbc2defluvPwxdy+zCopenucx-tools1.15.0150600.3.5.2OpenUCX utilitiesMiscallaneous utilities for Unified Communication X.iibs-power9-17SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/System/Consolehttp://openucx.org/linuxppc64le 0 gaj: #P3AAA큤A큤A큤AA큤A큤iiiiiiiiiiiieficiiiiiiiiiiiiiiii53ab6bdc3465f8b22d86f6778d89304641eeb5b81bf58a40ff7714d45cdd15573881626049319c50699e481a9fa4f346b140427186126926725029a0ed83f0a42aa0f1041faf616079728072c93b84be9816c5985229355d948a7288190bb1389bb7b5d325c265ce4f2f3277ad3f484ad2ff666597ee40bea595ad1acb23894d5fbfe61c8d3bad5d286b202a872e99d3d8e982e986c0b7b8eedd815490cf0b5bfdba7a97203e661fd08de4b1c85f9b4414569c474038a4fd7599984b4b12f727425c43b7b37d5a4db97b6152cffcf2a9e9b0e2b5b24fa4c4fd70042be2a48c3472f83d13224ed92e9264c0131074c5d3ee761cc7a74e3889aa4dc212340ea8dd090459b884fa8ee2543d12380268ccfcaeb73b1d49edaf4a30f13f83df33dafeebb5c7fa3d2e20fbee5431a975c7196779647490324dc2346cc561f0f044048dcc291b7e22e4d11a847ab0803c39646bcc05391d488974b29a0f5c2626498f226b7509ae9e5f975138a0dcb2744e67fcfdbba7f05f11485b42b211310d5af16e84407297fa98ea0a90b062f1eb467e7cc5badea8fe505c9df78977cbb0f5cd1bdb51f2499d8924ad1e62ea2f1a050e6aaf5ab9f3117a9b1adb40a0bc15e8495e9f11c5785da9c00f24d015d74e0d3c3b53eee08acce5c970dce443cb5560d4ea0d618d4650ed8674b28dda1a4b88df1db885589e7269f80d1bd51b8afb24ac70d4214780b9364cae0cceb0afc8bdb6c3cbf7b837e640fb311bbc5bc190138d3797d82a722b7923ff202c364754b917fc91d11fd63bd841ea0fba528a525fd6dc989f30814d5755885cca495652cce1d88f4a051470fe7e8ecd433908b04148853f3f460a0bf39b3273dfcb590e5db476d1d68b3b8ef9970e36894dad3473745a44bd26f5f50087ab4f124b228d267fe88ba0833309861d2a39f701a46676fcefe24145afe1640ef437c3ffbd3120bc734f0ccbe93d8c8b299ee6094cba118c8d9e13bb88a603c1223dac70b509a7c00d8d47583dba685473b89972b469329e29rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.15.0-150600.3.5.2.src.rpmopenucx-toolsopenucx-tools(ppc-64)pkgconfig(ucx)@@@@@@@@@@@@@@@@@@@@@@@@@    /usr/bin/pkg-configlibc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libgomp.so.1()(64bit)libgomp.so.1(GOMP_1.0)(64bit)libgomp.so.1(GOMP_4.0)(64bit)libgomp.so.1(OMP_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libucp.so.0()(64bit)libucs.so.0()(64bit)libuct.so.0()(64bit)pkgconfig(ucx-ucs)pkgconfig(ucx-uct)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3g@ed@dJdc<@c< @c2a@aLl@`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nicolas.morey@suse.comnicolas.morey@suse.comnicolas.morey@suse.comnicolas.morey@suse.commliska@suse.czschwab@suse.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.commliska@suse.cznmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comdimstar@opensuse.orgjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.dejengelh@inai.dejengelh@inai.dejengelh@inai.de- Add UCT-IB-UD-Use-GRH-to-detect-address-family-on-non-Mellanox-hardware.patch to fix an UD init issue on non-Mellanox RDMA HW (bsc#1240204)- Update to 1.15.0 - UCP - Added 2-stage pipeline protocol in the new protocol infrastructure - Added reset and abort functionality of rendezvous protocols in the new infrastructure - Added zero-copy rendezvous data send protocol in the new infrastructure - Added support for user memory handle in the new protocol infrastructure - Added option to force ODP registration for certain memory types - Enabled lock free memory region deregistration - Updated allow/deny transport list feature to control auxiliary transport selection - Multiple performance improvements of the new protocol infrastructure - Multiple improvements in error and debug messages - Fixed assertion when sending from non-contiguous GPU buffer to managed buffer - Fixed the race condition on endpoint configurations - Fixed endpoint reconfiguration issues due to asymmetrical selection - Fixed endpoint reconfiguration error due to wrong locality detection - Fixed crash during connection manager cleanup - Fixed rkey index calculation for rendezvous protocol - Fixed rcache dump function - Removed logging from rkey unpack in release mode - Fixed dobule free of rkey in rendezvous protocol - Fixed rendezvous pipeline protocol error flow - Fixed error handling in rendezvous get zcopy protocol - Replay pending requests of wireup EP CM during connection establishment to prevent potential ordering issues and wrong configuration - Pass user-provided memory type to the function that checks whether the buffer can be sent inline or not - Avoid memory registration during UCP context initialization - Fixed CPU/device atomics selection in the new protocol infrastructure - Multiple fixes in the new protocol infrastructure information output - UCT - Split UCT_MD_MKEY_PACK_FLAG_INVALIDATE into two flags for RMA and AMO - Added put_zcopy and get_zcopy scheme support for self transport - Added base implementation of is_reachable_v2 API using intra/inter flag - Introduced MD capability for non-blocking registration memory types - Added check for dmabuf kernel support in ROCm memory domain - Fixed exported memh packing - Fixed an error in checking return status of multi-threaded memory registration function - RDMA CORE (IB, ROCE, etc.) - Added implementation of is_reachable_v2 routine to IB interface - Added option to control CQE zipping per CQ RX/TX direction - Added option to specify how DCI selects port under RoCE LAG - Added hw_dcs to the list of policies to select DCI by an endpoint - Removed implicit on-demand paging - Added option to set RoCE lag dct port for response under queue affinity mode - Improved IB memlock limit logging - Fixed dma-buf based memory region registration - Fixed memory handle data corruption when PCIe relaxed ordering is enabled - Fixed performance degradation when indirect atomic key is not supported by the hardware - Fixed remote access error to strict-order keys because of wrong offset - Added check for UAR support to memory domain opening - Fixed updating port counters for devx qp - Fixed ibv_create_cq error message on node without Infiniband - Fixed performance degradation due to using 2 paths on NDR400 by default - Removed unnecessary async lock which otherwise would block UD progress - UCS - Added ucs_string_buffer_rbrk() to split token - Fixed lane selection and added bandwidth estimation for Sapphire Rapids family - Fixed displaying wrong environment variable suggestions - Fixed VFS warning output - Fixed SEGV in ucs_debug_backtrace_next(), upon previous SEGV handling, due to ENOMEM situation - Fixed memory corruption when using UCX_MPOOL_FIFO=y - UCM - Fixed conditional jump patching - Fixed mremap() override - Tests - Added a rocm docker container for testing - Added option to send client_id in iodemo test - Added support for multiple connections to the same server in iodemo test - Added synchronization before exit to hello world examples - Fixed wrong usage of ep_close in examples - Tools - Added user-side memcpy option for AM benchmarks in ucx_perftest - Added wireshark LUA dissectors for some UCX protocols - Fixed memory access flags in perftest - Removed support for librte from perf - Fixed worker flush deadlock when using multiple workers in ucx_perftest - Build - Added support for binutils 2.40 - Added versioned dependency to switch between packages with the same names - Added a separate xpmem deb subpackage - Added aarch64 support to the binary distribution pipeline - Removed dependency on libnuma - Documentation - Updated ucp_worker_release_address description - Refresh openucx-s390x-support.patch against latest souces- Update to v1.14.1 - Fixed ROCm to prevent the locking of host pinned memory - Added CUDA 12 based UCX builds to the release flow - Increased the maximal number of endpoint configurations - Fixed filter for a slow-lanes in selection logic - Fixed TCP transport bandwidth calculation - Fixed device detection for ROCM - Fixed compatibility with CUDA 12 - Fixed rendezvous threshold for multi-path configurations - Fixed error message in case of static link - Fixed BlueField-3 detection - Multiple fixes for Azure CI pipeline- Update to v1.14.0 - UCP - Added API for querying transport and device names on endpoint - Added API for querying datatype object - Added API for exporting and importing memory keys (no implementation yet) - Added support for non-persistent active message header - Added infrastructure to print protocols v2 performance - Multiple performance improvements for protocols v2 - Added support for non-contiguous datatypes for rendezvous protocols v2 - Added support for reset and abort request in protocols v2 - Added support for user memory handles in RMA API - Added multi-rail support for RMA API in protocols v2 - Added support for up to 16 different lanes per endpoint - Added support for dmabuf memory registration in protocols v2 - Added strong fence mode for ucp_worker_fence() API - UCT - Added new uct_md_mem_attach() API to support exported memory handles - Added remote completion mode for endpoint flush (via new flag) - Added support for dmabuf registration - Added new uct_ep_connect_to_ep_v2() API - Added new uct_mem_reg_v2() API - Added new uct_md_query_v2() API - Added support for IPv6 loopback address in TCP transport - RDMA CORE (IB, ROCE, etc.) - Added ECE (enhanced connection establishment) support for RC and DC transports - Added support for hardware DCS in DC transport - Added UD interface and endpoint resource information to VFS - Added CQ creation via DEVX API - Removed support for accelerated IB transports over legacy experimental verbs - UCS - Added support for auto-correction of user environment variables - UCM - Implemented CUDA bistro hooks for aarch64 (to enable memory cache on this platform) - Added support for CUDA virtual/stream-ordered memory with cudaMallocAsync - Documentation - Added FAQ for using pkg-config tool to build applications with UCX - Tools - Added runtime library version to the 'ucx_info -v' output - Added support for memory types in ucx_info - Many bugfixes. See NEWS. - Drop patch merged upstream: - UCS-DEBUG-replace-PTR-with-void.patch - gcc13-fix.patch - Refresh openucx-s390x-support.patch- Add upstream gcc13-fix.patch fix.- openucx-s390x-support.patch: fix use of clz builtin for 64-bit value- Update openucx-s390x-support.patch to add missing ucs_ffs32 on s390x - Drop baselibs.conf as openucx only works on 64b systems- Update to v1.13.1 (jsc#PED-912) - Core - Added new objects to VFS: local and remote address of endpoint, statistics of ucp_ep_create success/failure, failed/destroyed endpoints - Added support for UCX static libraries - Added profiling for rkey management routines - PCIe relaxed order enabled by default for AMD CPUs - Fixed not deallocating memory from ucp_mem_unmap if no rcache - Fixed versioning infrastructure - Multiple code improvements: refactoring, debug prints and assertions, etc. - Multiple improvements in build, test and docs infrastructure - Added new objects to VFS (md, component, log_level, etc.) - Added configuration variable to specify which loadable modules are allowed - Added build-time configuration to disable sigaction overriding - UCP - Added API to pass pre-registered memory handle to UCP operations - Added implementation of AM rendezvous protocol - Added 2-stage pipeline rendezvous protocol for GPU - Added support for fragment mem_type for v1 pipeline proto, disabled by default - Added active message support for proto v2 - Added UCP memory registration cache - Improved adaptive progress - deactivate iface when all p2p lanes are destroyed - Added support for user memh in proto_v1 - Added support for selecting local address when creating a client endpoint - Added option to limit GPUDirectRDMA size in rendezvous protocol, UCX_RNDV_MEMTYPE_DIRECT_SIZE - Deprecated UCX_SOCKADDR_AUX_TLS configuration parameter - Resolving remote EP ID when creating local EP disabled by default - Added client_id to ucp_worker_create() and ucp_conn_request_query() APIs - Added ucp_worker_address_query() API - Updated ucp_ep_query() API for getting local and remote addresses - Added address versioning to correctly preserve wire compatibility starting from version 1.11.0 - Added new client/server connection establishment packet header format - Enabled rendezvous and tag sync protocols when error handling is enabled on the endpoint - Added iov zcopy support to RMA operations - Reduced memory usage of unexpected messages by fitting receive buffer size to packet size - Added support for modifying UCT and UCS configs by ucp_config_modify() API - Optimized unpacked rkeys memory consumption - Added request flag to influence latency vs. bandwidth protocol - Reduced memory management overhead with new protocols - Improved performance calculations for new protocols - Added AMO support with GPU memory target using new protocols - Added put_zcopy, get_zcopy and pipeline based rendezvous in new protocols - Added support for user-defined alignment in Active Messages - Added support for offload tag sync in new protocols - Updated ucp_atomic_post() to use NBX flow - UCT - Introduced API uct_md_mkey_pack_v2 - Introduced UCT iface features API - Introduced max_inflight_eps parameter in perf_attr API - Introduced UCT_SEND_FLAG_PEER_CHECK flag that forces checking connectivity to a peer - Introduced UCX_RCACHE_PURGE_ON_FORK to enable/disable cleaning regions when application is forking - Disabled PEER_FAILURE capability for XPMEM - Added API - uct_iface_is_reachable_v2() - Added IPv6 address support in TCP - Added latency estimation to uct_iface_estimate_perf() - Adjusted knem and cma overhead cost - Increased built-in TCP keep-alive interval to 2 seconds - RDMA CORE (IB, ROCE, etc.) - Introduced NDR autorecognition - Introduced CQE zipping support - Set the default MAX_RD_ATOMIC to maximum value supported by the hardware - Disabled mlx5 ifaces on verbs MD - Added detection of IB NDR devices - Added check for CQ overrun in assert mode - Added bitmap usage for releasing detached DCIs - Added configuration for requests ack frequency with DevX - Added remote QP info to tx error CQE traces - ROCM - Increased maximum number of HSA agents - UCS - Added topo module infrastructure - Added memtrack and rcache information to VFS - Added API for a per-process aggregate-sum statistics report - Added memory pool set data structure - Added new ptr_array API for bulk allocation - Added ucs_string_buffer_append_flags() for string buffer - Added ucs_ffs32() - Added ucs_vsnprintf_safe() which always adds '\0' - Added thread-safe put to ptr_map - Improved accuracy of the topology distance estimation - Added prints of leaked callbacks from the callback queue - Removed a diagnostic message when fuse thread is stopped - Added configurable limit for the memory consumed by rcache - Added configuration for VFS(FUSE) thread affinity - Added memory limit support to memtrack - Packaging - Added cmake config files for better integration with external cmake based projects - Tools - Added loop-back transport support in ucx_perftest - Split ucx_perftest into separate modules - Added process placement option for ucx_info - Extended parameters correctness check in ucx_perftest - Backported UCS-DEBUG-replace-PTR-with-void.patch from upstream to fix compilation- Fix UCM bistro support on non s390x archs - Add ucm-fix-UCX_MEM_MALLOC_RELOC.patch to disable malloc relocations by default (bsc#1194369)- Update to v1.11.1 (jsc#SLE-19260)- Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API - Added active message AM alignment in iface params - Added active message short IOV API. - Added support for interface query by operation and memory type - Added API to get allocation base address and length - Added md_dereg_v2 API - UCS - Added log filter by source file name. - Added checking for last element in fraglist queue - Added a method to get IP address from sockaddr. - Added memory usage limits to registration cache - RDMA CORE (IB, ROCE, etc.) - Added report of QP info in case of completion with error - Refactored of FC send operations - Added support for DevX unique QPN allocation - Optimized endpoint lookup for DCI - Added support for RDMA sub-function (SF) - Added support for DCI via DEVX - Added DCI pool per LAG port - Added support for RoCE IP reachability check using a subnet mask - Added active message short IOV for UD/DC/RC mlx, UD/RC verbs - Added endpoint keep alive check for UD - Suppressed warning if device can't be opened - Added support for multiple flush cancel without completion - Added ignore for devices with invalid GID - Added support for SRQ linked list reordering - Added flush by flow control on old devices - Added support for configurable rdma_resolve_addr/route timeout - Shared memory - Added active message short IOV support for posix, sysv, and self transports - TCP - Added support for peer failure in case of CONNECT_TO_EP - Added support for active message short IOV - See NEWS for a complete changelog and bug fixes - Refresh openucx-s390x-support against latest sources- Update to v1.9.0 (jsc#SLE-15163) - Features: - Added a new class of communication APIs '*_nbx' that enable API extendability while - preserving ABI backward compatibility - Added asynchronous event support to UCT/IB/DEVX - Added support for latest CUDA library version - Added NAK-based reliability protocol for UCT/IB/UD to optimize resends - Added new tests for ROCm - Added new configuration parameters for protocol selection - Added performance optimization for Fujitsu A64FX with InfiniBand - Added performance optimization for clear cache code aarch64 - Added support for relaxed-order PCIe access in IB RDMA transports - Added new TCP connection manager - Added support for UCT/IB PKey with partial membership in IB transports - Added support for RoCE LAG - Added support for ROCm 3.7 and above - Added flow control for RDMA read operations - Improved endpoint flush implementation for UCT/IB - Improved UD timer to avoid interrupting the main thread when not in use - Improved latency estimation for network path with CUDA - Improved error reporting messages - Improved performance in active message flow (removed malloc call) - Improved performance in ptr_array flow - Improved performance in UCT/SM progress engine flow - Improved I/O demo code - Improved rendezvous protocol for CUDA - Updated examples code - Bugfixes: - Fixes for most resent versions of GCC, CLANG, ARMCLANG, PGI - Fixes in UCT/IB for strict order keys - Fixes in memory barrier code for aarch64 - Fixes in UCT/IB/DEVX for fork system call - Fixes in UCT/IB for rand() call in rdma-core - Fixed in group rescheduling for UCT/IB/DC - Fixes in UCT/CUDA bandwidth reporting - Fixes in rkey_ptr protocol - Fixes in lane selection for rendezvous protocol based on get-zero-copy flow - Fixes for ROCm build - Fixes for XPMEM transport - Fixes in closing endpoint code - Fixes in RDMACM code - Fixes in memcpy selection for AMD - Fixed in UCT/UD endpoint flush functionality - Fixes in XPMEM detection - Fixes in rendezvous staging protocol - Fixes in ROCEv1 mlx5 UDP source port configuration - Multiple fixes in RPM spec file - Multiple fixes in UCP documentation - Multiple fixes in socket connection manager - Multiple fixes in gtest - Multiple fixes in JAVA API implementation - Refresh openucx-s390x-support.patch against new version- Update to v1.8.1 - Features: - Added binary release pipeline in Azure CI - Bugfixes: - Multiple fixes in testing environment - Fixes in InfiniBand DEVX transport - Fixes in memory management for CUDA IPC transport - Fixes for binutils 2.34+ - Fixes for AMD ROCM build environment- Trim bias and filler wording from descriptions.- Update to v1.8.0 - Features: - Improved detection for DEVX support - Improved TCP scalability - Added support for ROCM to perftest - Added support for different source and target memory types to perftest - Added optimized memcpy for ROCM devices - Added hardware tag-matching for CUDA buffers - Added support for CUDA and ROCM managed memories - Added support for client/server disconnect protocol over rdma connection manager - Added support for striding receive queue for hardware tag-matching - Added XPMEM-based rendezvous protocol for shared memory - Added support shared memory communication between containers on same machine - Added support for multi-threaded RDMA memory registration for large regions - Added new test cases to Azure CI - Added support for multiple listening transports - Added UCT socket-based connection manager transport - Updated API for UCT component management - Added API to retrieve the listening port - Added UCP active message API - Removed deprecated API for querying UCT memory domains - Refactored server/client examples - Added support for dlopen interception in UCM - Added support for PCIe atomics - Updated Java API: added support for most of UCP layer operations - Updated support for Mellanox DevX API - Added multiple UCT/TCP transport performance optimizations - Optimized memcpy() for Intel platforms - Added protection from non-UCX socket based app connections - Improved search time for PKEY object - Enabled gtest over IPv6 interfaces - Updated Mellanox and Bull device IDs - Added support for CUDA_VISIBLE_DEVICES - Increased limits for CUDA IPC registration - Bugfixes: - Multiple fixes in JUCX - Fixes in UCP thread safety - Fixes for most recent versions GCC, PGI, and ICC - Fixes for CPU affinity on Azure instances - Fixes in XPMEM support on PPC64 - Performance fixes in CUDA IPC - Fixes in RDMA CM flows - Multiple fixes in TCP transport - Multiple fixes in documentation - Fixes in transport lane selection logic - Fixes in Java jar build - Fixes in socket connection manager for Nvidia DGX-2 platform - Multiple fixes in UCP, UCT, UCM libraries - Multiple fixes for BSD and Mac OS systems - Fixes for Clang compiler - Fix CPU optimization configuration options - Fix JUCX build on GPU nodes - Fix in Azure release pipeline flow - Fix in CUDA memory hooks management - Fix in GPU memory peer direct gtest - Fix in TCP connection establishment flow - Fix in GPU IPC check - Fix in CUDA Jenkins test flow - Multiple fixes in CUDA IPC flow - Fix adding missing header files - Fix to prevent failures in presence of VPN enabled Ethernet interfaces - Refresh openucx-s390x-support.patch against new version- Ensure /usr/lib/ucx is owned at all times.- Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero - Fixing default values for configure logic - Fix race condition updating fired_events from multiple threads - Fix madvise() hook - Refresh openucx-s390x-support.patch against new version- Disable Werror to handle boo#1121267- Update openucx-s390x-support.patch to fix support of 1.5.0 on s390x (bsc#1121267) - Add baselibs.conf for ppc- Update to v1.5.0 (bsc#1121267) * Features: * New emulation mode enabling full UCX functionality (Atomic, Put, Get) * over TCP and RDMA-CORE interconnects which don't implement full RDMA semantics * Non-blocking API for all one-sided operations. All blocking communication APIs marked * as deprecated * New client/server connection establishment API, which allows connected handover between workers * Support for rdma-core direct-verbs (DEVX) and DC with mlx5 transports * GPU - Support for stream API and receive side pipelining * Malloc hooks using binary instrumentation instead of symbol override * Statistics for UCT tag API * GPU-to-Infiniband HCA affinity support based on locality/distance (PCIe) * Bugfixes: * Fix overflow in RC/DC flush operations * Update description in SPEC file and README * Fix RoCE source port for dc_mlx5 flow control * Improve ucx_info help message * Fix segfault in UCP, due to int truncation in count_one_bits() * Multiple other bugfixes (full list on github) * Tested configurations: * InfiniBand: MLNX_OFED 4.4-4.5, distribution inbox drivers, rdma-core * CUDA: gdrcopy 1.2, cuda 9.1.85 * XPMEM: 2.6.2 * KNEM: 1.1.2- Update to v1.4.0 (bsc#1103494) * Features: * Improved support for installation with latest ROCm * Improved support for latest rdma-core * Added support for CUDA IPC for intra-node GPU, CUDA memory allocation cache for mem-type detection, latest Mellanox devices, Nvidia GPU managed memory, multiple connections between the same pair of workers, large worker address for client/server connection establishment and INADDR_ANY, and for bitwise atomics operations. * Bugfixes: * Performance fixes for rendezvous protocol * Memory hook fixes * Clang support fixes * Self tl multi-rail fix * Thread safety fixes in IB/RDMA transport * Compilation fixes with upstream rdma-core * Multiple minor bugfixes (full list on github) * Segfault fix for a code generated by armclang compiler * UCP memory-domain index fix for zero-copy active messages- Update to v1.3.1 (fate#325996) - Prevent potential out-of-order sending in shared memory active messages - CUDA: Include cudamem.h in source tarball, pass cudaFree memory size - Registration cache: fix large range lookup, handle shmat(REMAP)/mmap(FIXED) - Limit IB CQE size for specific ARM boards- Update to v1.3.0 (bsc#1104159) - Added stream-based communication API to UCP - Added support for GPU platforms: Nvidia CUDA and AMD ROCM software stacks - Added API for client/server based connection establishment - Added support for TCP transport - Support for InfiniBand tag-matching offload for DC and accelerated transports - Multi-rail support for eager and rendezvous protocols - Added support for tag-matching communications with CUDA buffers - Added ucp_rkey_ptr() to obtain pointer for shared memory region - Avoid progress overhead on unused transports - Improved scalability of software tag-matching by using a hash table - Added transparent huge-pages allocator - Added non-blocking flush and disconnect for UCP - Support fixed-address memory allocation via ucp_mem_map() - Added ucp_tag_send_nbr() API to avoid send request allocation - Support global addressing in all IB transports - Add support for external epoll fd and edge-triggered events - Added registration cache for knem - Initial support for Java bindings - Multiple bugfixes (full list on github) - Drop UCT-UD-fixed-compilation-by-gcc8.patch as it was fixed upstream - Refresh openucx-s390x-support.patch against latest sources- Remove libnuma-devel on s390x for older releases- Add UCT-UD-fixed-compilation-by-gcc8.patch to fix compilation with GCC8 (bsc#1084635)- Use right documentation path.- Update to 1.2.2 - Support including UCX API headers from C++ code - UD transport to handle unicast flood on RoCE fabric - Compilation fixes for gcc 7.1.1, clang 3.6, clang 5 - When UD transport is used with RoCE, packets intended for other peers may arrive on different adapters (as a result of unicast flooding). - This change adds packet filtering based on destination GIDs. Now the packet is silently dropped, if its destination GID does not match the local GID. - Added a new device ID for InfiniBand HCA- Drop doxygen BuildRequires: The documentation was already not built with this enabled. Removing the BR causes no regression in the package but eliminates a build cycle boost -> curl -> doxygen -> openucx -> boost- Rediff openucx-s390x-support.patch as p1 to be in line with potential git-generated patches.- Switch to version 1.2.1 (Fate#324050) Previous 1.3+ version was based on a development branch. Supported platforms - Shared memory: KNEM, CMA, XPMEM, SYSV, Posix - VERBs over InfiniBand and RoCE. VERBS over other RDMA interconnects (iWarp, OmniPath, etc.) is available for community evaluation and has not been tested in context of this release - Cray Gemini and Aries - Architectures: x86_64, ARMv8 (64bit), Power64 Features: - Added support for InfiniBand DC and UD transports, including accelerated verbs for Mellanox devices - Full support for PGAS/SHMEM interfaces, blocking and non-blocking APIs - Support for MPI tag matching, both in software and offload mode - Zero copy protocols and rendezvous, registration cache - Handling transport errors - Flow control for DC/RC - Dataypes support: contiguous, IOV, generic - Multi-threading support - Support for ARMv8 64bit architecture - A new API for efficient memory polling - Support for malloc-hooks and memory registration caching- Disable avx at configure level- Add openucx-s390x-support.patch to fix compilation on s390x - Compile openucx on s390x- Fix compilation on ppc- Update to snapshot 1.3+git44 * No changelog was found - Add -Wno-error and disable AVX/SSE as it is not guaranteed to exist.- Update to snapshot 0~git1727 * New: libucm. libucm is a standalone non-unloadable library which installs hooks for virtual memory changes in the current process.- Update to snapshot 0~git862 * License clarification on upstream's behalf- Initial package for build.opensuse.org (version 0~git713)ibs-power9-17 1762189033 1.15.0-150600.3.5.21.15.0-150600.3.5.21.15.0 ucx_infoucx_perftestucx_read_profileopenucxio_democmakeucxucx-config-version.cmakeucx-config.cmakeucx-targets.cmakeucx.pcopenucx-toolsNEWSopenucx-toolsLICENSEopenucxexampleshello_world_util.hucp_client_server.cucp_hello_world.cucp_util.huct_hello_world.cperftestREADMEmsg_pow2msg_pow2_largetest_types_ucptest_types_ucp_amotest_types_ucp_rmatest_types_ucttransports/usr/bin//usr/lib//usr/lib/openucx//usr/lib64//usr/lib64/cmake//usr/lib64/cmake/ucx//usr/lib64/pkgconfig//usr/share/doc/packages//usr/share/doc/packages/openucx-tools//usr/share/licenses//usr/share/licenses/openucx-tools//usr/share//usr/share/openucx//usr/share/openucx/examples//usr/share/openucx/perftest/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:41432/SUSE_SLE-15-SP6_Update/2317d2503d39928489709d2799d2b271-openucx.SUSE_SLE-15-SP6_Updatedrpmxz5ppc64le-suse-linuxELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=5c9e1b7963938833cbe5360a83c2b3474f27b3b0, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=a24d73217c9bcba66e3b8115281881f644bd92f9, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=dd705ee838653174b975b952092cb4eac911b68d, for GNU/Linux 4.3.0, strippeddirectoryELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=36e8a231f1c772181ba595bd9505f44be214c808, for GNU/Linux 4.3.0, strippedASCII textpkgconfig fileC source, ASCII text' RRRRRRRR R R RRRRRRRRRRRRRRRRRRRRR RRRRRR RRPRRRINbp81&Lutf-8d2d45ee676c5fc109b77b598db8a58edb05cc356364224d9045e8a0109b017f3? 7zXZ !t/Q~]"k%IN6cბbMb-.vj_Ԇf %<D5oLI]^n?S>\~ i3j0Кb@\[5^e;@.E!00(gb;µ ^,ZRȽ7>)?k|t^\d@?3yZ. ?{!J R(աtDn eE(]Pȁ!)_s TIc*+˻Wk"*nȮ7^,fka&ڤ=qkq7l\ofpsVX_JG*J:_V"j,2yDGW1Ar#l^8ê!ۉs2Hybzw WM/ sM*XϬOGKv\`ߖ2 L'C3a tqիvoV{V3#j.O#+PL롄'6_L i\ HظIO״Ew85w)6l0H@> 0L$vqҧ&2>ջk/MdHB{5Qe Iyq S2eyөQ<=sGafX)aZ8ؒlv%tk@˕FҪJ[LX#6Z"  1 ȵ>TBtH4I~BNojY!Gqy煠p^d:K>)9]B,^e|dV>)xu'f?}mp#ꁫ#vXbKcP@Kq[<0GMOGV_' Icʳ[e@RB՚ț8Y0_q4Kj_ɩJNAXZ4SyNgٝ3-= +n#ʕ)2KQJ5$ :}s){gEjT&C&,Dm ^ i"hqHͭ[m e2('rEn@x~Teґ{,=mV7aUoi4é&N S+ ֆt̚ FEȤ0Y$hMM冿ǣR%c24hyʉQz]=|EogMN˅ P(`&2](ZyngnWg"AF L_`XbHAOCOU)Uط:b?7Ƨ*{'^fmSp׻}04јt3뼾-p3j=#۰aPl=3nccTk`6p3}D9{vTH6AүrE,gi=uPk~d316ލ個IןEڹ mVGz(v˜ 딷 amŠLy zf/Uʽ`C괬VHIHw0jπFQf,s#iUTpu|sBri3 8 0fid*ㆷo vmaD':"Aez9Z˝~4o,GmL^Smb73vJ֯&# Jb'a-| RN21IkLGe/_:1@߁'(&'4V0rDe+H }:ZtyVN9D:9CRH3TDlm:e8zb%J5⚋ rrr/AĠB V<;ҳ︩Q3 WV2E+sa[D_ v frAi35*5i"LR,].vȪA5mp3Wka3*P(hJh = j9o'}Rf[RNI.HVT} <'k5%i4HuWim3hKkdM_ઉ&Rm+&NZȍ͎A|3JЩl@)󭽇Z J0eIcǸdŋDfZ)0nN14O9y z9B'֘ISapk%aKLVG8酱ϒ_`q0xB 4'.~#X?yLM !MPWäKǔM}ŧv1;-0-s,V6 ;+\=xŮ76/{ycHjkǾ\=] x ?q+;O;JD/vk Ռz _ۃ6P5Ɠ(Z˾Z2|Z̜?DuC\8|4n5E]S/AhPEgL(xh>Ī[gtSq٫ Ĝgo|ր0 zqc:O$Nȗ4Q\v>x)UC67VBdD ipvY)wIދ}UdBuҍM ,1Xr@9n^xѣo;勄яcaԽZapT3/qFGi/'ZJpS&Mjm۟k0@6f=Q3Lk'u&F 㘲BȞfF@q<:?%^PUoǣ)Z&m>NitecGAL ~@zkZgY;괧"{\?|nJlDc!&gyYlA8'cX=*.?4MCqeрhȳMڥ.HP'0`)*r̽yQy6 6Q{qa&1nQCSR#ι P!ds4I{5Bvz6\億xg$Y$g~FfZJ7VEPh$[| #\Јt0CkLӞ حgs;W\~ 2. =S"!K&OuF6Mi Ħd9`Brۭ(]}Nj([`Sq3U;2ͯ8SLQ)y=`$P0' ҶW e{ %pt-.̦6NZbn|(4iPfo`{ƤETb Fǎ54hHM} Kخ۽m9e cZ- {ZX@@õ X.ї(Om)cXyp0T? 8c/IM(+D^;~>7]>X$?Ht7X_Ϻ*#^X6JO{WQcbC\ws- RaPZt1Sj6K#3K.o']ی&dŦMuGhpY #R0ffo>o4K-`౓k%\Hxq+nh1p4+p y5?"N 6Y֎kWZ-:f3Je//Ϯ[X3QBڌi;GQ//(N/sgq{+|n65%~?Y!ji+;_BNdqcAW LRQGJ$q(ފ-$`)Zfޝ jf` IS(VpTkF:%);KWh'FȐՒXy0FoUQlZѹRxrV(O@"פxgɬp; !ˊҨAq_6Yt+ AF!<mUwed0<δүr.O7hL"S!v' rͿ$ѻ+*]hwHEW̧ `,*J#JT3/9["[xf\PWV"ڴ#u+K]<P K&r3?Ȍً͒Pl2"[%`ZU Nۄhq3^PLL~34+[MM&^/?ӂ4y P9Bl|ȕV#Y;.m=t!,+kΪ Zs 9룻0sf0ZSQ T.;G1G+~ko?Rr7ĝ͍UeV042>.+Ue rm\{jmEQ> 6D:Jͻ00N*unT{o^K@?T3YhRVrqў^:]K<]CnYAlefhJ-plOR "^u3<'-k|FŬ6J!hJu&WpQ+&w եi; qs OlD?| w03bӐۊWκ~\!. в\o⧒nD]'O;;$vq: %d4>cYe@]fCg ehΚa0QZȗH'šY#=:q9/㎸-k |b; :rZlAPBl7rKe|Xv@=1p-P8w E_[? Ԋ!ޙk<"v\x.u :vY)7)pN+4䴆[(v'K4v1RwY`GVX.8y傒Nx1vS{o*lr3l"` 2p$͆JO(r)m[yJDZMCxH55W[.ĚY<ۼ"G]RtOj_,_9ܺ'Q;֖XSA#8e2yRx ^ =F:rh1@Y֡ZFz-ג'# ξC5mƛ9AojJri1Շ;_Š !-j`px}(~ F2Т'TB /ZY&Dpn?#'P,Qq!̌Iba lR[1s0^8J|(Dx=pYr\W(Y Wyh+R^=Ytj6QΌ) ]X myKҧԖ#& J~ 00m8j&{h:57*FX!ȡ*/f~?z7?4bX;p'/<9oyV6ferDۻ?}&d51¤g#Q[vDj˻Wv,< rj}\± HQ|H9DKO; 8U`i)`|5&?K뱟X=w(񵥮0x!γ--0χ$U%es6|f8}rӦ]Al藿uhPߎ?TF1b_.9QsŮ KYܭG!SDuAćJGZ߿_ (y0 `jHQEo+ ; :$Y^kwͷ}yjg{bK}l)Ʒ*5/;2:Һg52Dc`PHS[t5o,ps$iC|Ϫ4:G=Iذ)yq%0[$Ez0sr_AZFJ uw 6رfV'&X@7,{M?@[.Tu7FS|g pNٿh#h]0FcV6Jx\d֢xȚ=UW@=;3RGdA5jz YE3qCXˇ7Xʽ$$o ]X3u, ~}]wvb4'4bd @rHb0ӕ#Rt 6)% CZkv=<[FA 8pQκcO2(s1$؂ E6$ we8@ό }*G& Ѭ'&hryv%t"zCrMh6;B4^lg”a hq{V7)\_s: aѯIf37%͡P'=* OlXOnDь pBhkM8[LkSq@I,01bX69q@SD4+/dG@ /q~Z丰=";t9ޖ^7ņ{j 𭬒YxEOcB(Wؒ=VX01=yɭ4Fnĥ>Z=$:Bi!Cs?Wt+Ck׸ջ.sdJm"z"tuj@nsR?i]u'm[ JNmSs$=t]V򔁺{v hTf7fm !u7+"{.$0#JaXz63ak,JB&$x8LBjɘqmfKPlko]/٧*q\ `$H@{[7f#ӣ>!VYwQJ5eu֠06dc`!fF z:؟EBS)BԱypɨ!ck<|ALTaUi۰yׂ0fJc ,AT]KҳIu96wNbm^i x 6nOlnvu]ݰ΄𧔂VXn߂#Ԩ: (7_%Vpߩ6(OܷZ~H4lSⲥw`ooujg[@9AZ+{?ˬT?^B1[=S6hbX+Iӌ™rM9_Ϻ|UZ8Vi ٯOF^u̼Г^ z8u$E{|EFjApJUrZ4M|_'D^6dgXdBԙ7VL-}r,`cSc茶4YS;qo [: [WB <.nhZvmڱ~k6:&ƬC9$J,#+:зLGcP $?: frJ4I܅;KaŢ8Qp m{,nqxǚOyv'TUS[;^ni>r <"):X'FpR"Vyf"A4HKq,dCA౟XaDjMABH} JˈY>k >؎(L~^Yl!'TMY}KO))3.^ ǠWGVn+wI\ИLDE7DOqf@|/gS,Kx}4rj'R!ļPhBx4U,_6M+U Z =!pN~=)~Β7[rRJF<曨:]FͰ kh1uRW~I7fkQL4 /sdX/ n 0617kqPy%h_|NM#asT(jg&w6SשNjkvnoLQQf6#|KdE Bw6=9VƝ %$֚.>wΌi8ʽ9ΝaS|;B:xp: sf/̚^_rngdĪ(3`Z(v(ux'  1<+QyHxBͩdvzyI0HuysJI!rZpV8MzKmJkCѼ>U]3`GPuNߺL)1Eꆗ[*G^U;SzJ؇T, m`sYg7f:zNzmon ?3xO%oO/EF4􋂲h ޱ 'znt6F.-VL>]D I2/0DgK'Dr13aN͏$wz Dqk_}5LKW65;щ^-Shfu@? +\g_ >R5Zro)Tb2BXZq1.*BOهX)eTj_zDwjZ0۴ՌS+PDZ0׍ DP=YL74ܼ ph'ǡS6 v`U2:!$x}|`8Qe=ZV|^taݔS`\'ߓ4F}a"֌ghF%%$ʢӍ>9#O=ƙ/x_]Ҫ~:,$+OԻ& mIӑ3+-LHoG-,'IFH}qJM1,9(#b ԑ+Ne?`ݿ mt*P/+ n+ Lȇ`|ʥ֐n_ ܱXWnH$ Q)}ي5Z2ء 0v)%d`AQl?%[$$=VpO9„>b9{ lfcTpcʕs,ߌb`}z@Иh*w9gcͯcX(ߚۯWﲑUymhJG/"1!Thv#cR0i"l.+wbGB^͛21J˜!g mlkp^Z.CS$6Mͳ7(LYR7,n"f$S=z(&^10v3EVi2遟w#=jĐlZASVa E݃1}fbfDXew %l͜VdZo>|Tu'ꬥ1c8m dhM#!Yv2^Κp7/`rTGƔU?Dfvr0ZE_i(_Gp0a߹ӭ*Ou=BQ~~ 1<6UшU CYnKa'ΰB_X⌧H&XrG=PR&&x saY'}S%EDgV`l{"3 [/+Bt}h&&R侷D9%=Lɋ%pUT'NO' 0WIl#RlZX1\7'%&!S 3#:xOAI Vzz_ܱ>;CBFEbF8zf/Wz0PH{1R__l *iG}GԜZcfg!Mi*ogwf^r{+z%v˹Y9&*G[`e 4 P/+dc8F#dBvU]$xKQKmЕ\, nڳp7 ;PSL:@Aj,9kQ O ?_c8Vl-d\Ml րSya]@XҖE^_{n3uef_/8=_p[|P\cp7Tyv6R_W* -Ocp䖙*j("%]&2,+=1 M,FF,d]HC;wkB T`ـ(T~Qʫ1ÍU6;މlwk @6ԅșۤ{v 'i +LcI? 9xvٶ?2Td!y9N%z\ OJ7xO^:7"Ud(A>DRlI[N \kKU_۾F#{7 lH1mͦ*f-ČW< |rQ - vw[, FZi-cubE`2؞PMWZX Nƍ3)FWPsi$D?RK앮?Zpz xI}.νR\:.CB<+gm;DkM^@h%/3e F|']Y}<1lLϿqYP^4EN_zSUW7VB6mh,pޒDи2iA%"v4P\DJ[dTOFVY?8'W]5bgJ vnRkԱz2J- vL(P;a pJCc@RB)&9Ϯo ^++ͦlSsi/+B7%d_1*wtF9vR^j&v:13P y6KjUS[7&x穤;RLb*U5)RARɁ3=0Dpf_:[(fwѳ]:dC{5G}ؗ%=㍕w “Uvg)Nn..N/N1έE,oH`%%WH^)AKQRg{oƧHysdk']a࿚w)/p?Pr P2Qmٜ"|d?$ďk`\" _`)g x:$6Vs*: r}Wq JH#6p{]R@O5!ucO:?kS#fB5J!5ڀjZ&hdHtu芬վ0m*u9)3L~zDjp7|po7/ ce1g1Wme#2 IT\2llEO~hj͜HK|r S7QQ~idb\0CՄ%~m|׼ D_._ [+~Vkd J,d-aqt;^ vO׊Zߙ\h^,SYE&9*!>50 L®A;O(Цx!|wӚlYr U' ! _]8Y𼼍:C?R @(uʹ`& ju m{lqvn}GvJ`H5㲼([ e 1dţڊ(BMJw&a1|]\qll1!SX0rZ]HX.0[[Er$2ZO8rv2ղ"Cy.O,C^XE<n;A&r0٭9^xgSw%#FjH)Em{:uMӖ(cG+w'Ϲ9/$ٳGX8fXE %&M[G p.BP~vUM%Y3_XGzw  M^aElaxN\kqރ#jp vG`i61gK/uϲr*S]'p"w0$AJ[t?aCE^ZhVM6}Bo,c[1͈!WZRsL{44[d Fgp1ݨܵ8Xy&6Oh}'e;I[Bj0juQ& M1,;bڧɰ?(>S 9}U+ЯQ8l#}[Aƌ[!a>bFUZ</>Kt5ƽyv_r? & J|4 >&ɯSl00">.G xFXMj}{ ۽in Ro/ Ц'?,cLʼq07V\ǥy|PXn婌8rbJ[儙!Ҵc)F T5nu yp(l;NѣOmDgn9l RB%Xh~.r?X`5C_)AЙN•1ߎE:\G[U(PLD"+.E-+ ^K8`@[>ĀeP:SM_mH#\ ]1ձM[m:ߕh RF5A~bO]h)nS Vn-tTz1 n; [dø(g9ڏ@(ȐefUh%AT钚-OSp[$5.o)Ϫbj;ȃd7n<RT,)*C9UZr㡈̛bρTwL\h"'[f'O%dIF416٬JQ]ƹ_s<ԤDXD -ÍzH g asdT9QAsdM3$\Whfng,xAZE ͷ |#IY^V}<*'u+wv^X`,cמ$1cˆ bX3ՎP˰Ei\lרs_F&SrP0ѩ~7^d0mz~@8<8_OlHB_;7`tϽ؂KPb7Ojلi(k/xj{LԾO"Aír Pv^LrxC+`r,XG$V rK'G>L|UI֡&5 gm7xu|elG"-tb8| Pp,9mٮG]_{H0tnj6XavfO{ C:!E_{qV28 zRMCO2g]`y6c(ɘ\LP&E%p ;ڰO %RUٖ6{:(ۿD1c\mTWx>(~+ʥE{՛OYjLDFC*W\,5$(*xx7o70̉ˢRwP˩O@|@ ؎ {izAܨQi!j*RKI muj^>xd֘sxzm~NRugt  lOOLupPYi$^66uhyO$L<""9=2*>!OðCޞqͮE879*TRpߦIxU3+UH 5(\uO }o+C}1 r %!'h7+$բ5*< :8F6:KDr[ᕂ>M}nŽWCaE>5d~5g-E65_濇GSXθN9_ZˆLd٠`ZUǑQ׍M  X5!fC8Q8l0ҋf#lVUժ{T`!c:}zY(fKAQ:T㒬AEOPg d;):<2FTR6+:᦮Nл-r>Of P -R17i;1{%t'e@D8[sUm~Th h{&Yͭ5 R(1/|Wő;{HmԞ}Ax|g$ 4so[ RssV+( 4n7Zf_'ki* n¯' hfx'nvGȳ_v"}~'EE_rU%=֡?]6=t"n#[fH}8Դwh{n<{l]յM.䔢}˧p#I[ӢoE,؁~yT|וl!vbS rHNZ7F f9Ń}l' _G3V:_0v-7u"bejVۖ2OX)rݸ aK+ؾ@r*0F2VRWR?D_)]ϳ3"^zkf (8RXb+-b#n+Z Ik_҅D= Ԋx^ƃ̶:pˤkUg&;6;WߢlA^A-3BVlYU%'m+!|I-9`xA!r+-nvgDDAJ:N{ȫ~Y3ylόlu[ 5;fHA3dDCq&&gѾL\+xƎ"Oe #wꮫ &p_η)Fwz!' _5ѳ~P1zZ|ORs:z+t+9V\P zLO*J-ۺTYkrG>̡ _ʒnZ=;Y!(q2{bT{h (J5e )QAQe>0L?{7e`48`H}^6 7[_|BVX6jW#ŮJžQ_i'^_v's7tkJZMH:=&FCMt?w\egu]ްfrPY 9֕[ 4>B4^ }p1X,4Oᗤ]tyS7sufטT=#it0Gxub -f"m}>)U,u{pBQ[k(Y"T^}𠨷,,PWc'6!:kgE5&)\s6G|7eX8d͏U9 C׭iZg7L6+Y+O־:(߼nzڷ(J>Tz" 6vL!,+W  Yfأ#܌ “68E;K.iZG_ *[U84]Z;:O7]x-?S-Ѿc.֜;~Z}Sas5\*r {%uq)qdN{PeޙgV:0Q_I͞,|MS̶҄PT!EXBEyD%IJɉJ0ұ}ߧo8XX_\; .bEPpQ3U<;(j-CmjUw_ o;9%Z+d0 DU鿢^zs73pەs" s~ >PมWPS,~4;Jp,;5ks$$b+#8\lMxf,(Izz52k ΪLtQ;]j~Zo9):EJ]Ѕi`xx$zv}~ {e*WP~pҼ-1M*ibK+즢aH`E'4@v_D:eȈ)]ЌR D8TA,=ڋ敒/2c6o"b\"5.c4ēlɠ3wFgQP<XK_#oS t]=yUs9×CM.䮜hjs L\JfVӻaf5XG\#W*-磰8@*!:rT"z6scǑ:UO֎"si$ _l$M1dM;a ="a. YFmu(I g3$K|usK]J+uZzc]zf];_obъ*}=ÉUE H$4#F jV8U\啓PAIr["dT.ͤM#L$&tQzrYmD7~g5Ae y6{;vslR Kw#e?O35 s"]3|\ЃH,րA0tJwn"Q4cL,Jrf(t G7\2rC}!$ ދa}?hcg I0,sѝgx-ULd<)1X3K4X.7fHg;({;Ou*RҊ,ZM$vHxd@RW,+Tv_Z;|eI1;f߈ D_) o '͖{X%8 K&љ7x0+ȫ4. m&NM鍼yW,vT%"-'"}Q ~7[W5; W|wH]M*`$Z WhDШ̈́~myK YW#!2Z@~.-FV"Zp l X0$;C\߳b SUW% #htN>`ѷ\msQ\8>ݗтOGI9&x=0bПSbN6 J5kx΋;Y&0sxab3,KQxسvPԨa}2Q[őLf:%aW Pte3(>*hM9nno}x#(ȅfO#xyߣ_h}@k +Fj9`DC]ak\ɥ1$ ŽBKdmP,FǕ4QLe~OI GXZ 4/a{B<4 Y&m L\KR1x/1 P&Z~[GzNi \xfN_:%8٘[pyHͶa yaw`OFIx6"+Y!!}i0<榇q-r4ڷo\#; ȃs4ii Ez\ oԜcr*ƦŊ{vIx\])\#bn(+:y]K:x{7)@2Vjt\X&ӇL`\K|Tscf97!X/lFdn<~ V[j\SLTNxew3JCW0z ℁z"6 "?" <53sQ9-a6^Y#,XyQ?gSюu4Rbg+<\sUMuбl2wn`?Lm ±ˇ48I0+xe"lNRP-~yu$7w(*b7J 6#"v{./S9] UyN Ro_tSp7u4z3}^aT$Jr_L''Y!؇*a0~UvX7^MS[>qP*ez'nd>ik"/8cbN٨S *$k[&ϗ$zw5%.ˁ- א@}fץ9{+ uV}S(g b6@ǭ.3/[~c/dN7vѼʼ´Qň{ɖ#vN8wioW<%yJS)^L>Ր 1^Uua҈37ʔr;4&EK1DQ8RëHx @ sa|D^ݪ;5;0Uу=O:2UjZ^ PT=Piƅoc{GUeg軴#2PRaof&1h[jGJ‚͓ՅV~8jJ'm-5Ҋ]i#-&ۜ`y~d &gc"m/̰;%MGf^W;ػj). dI Dz)PyT_V%WL^;}&k՞^ġ𺌉~LmkՄNvQ7Ti¡Svx*f+ +e~ir;2Td7)r^"T]7$b,WvleDvͅv0- ؁{7I9e̝Ŕbƚqah -¬ggسgϧi!D~XY 1yhB}S w`(d2,f$suEn◒{ʢ={w\BYѕp.g`<$R wiOYm_v-9 CxI2i>-VbFǞ2һVܕM3ZR:#G5 | ۫"gX€VW_;R+ ,.H7 ʟG<9>1zDН/ct0KBCc$[aMV;;_B u6$/UžF𿜐ܵa4[G3hmC&QOZbUJ7yxJN}m=zN,L3QyO?:l: 3V+G 2i ?^3JEwI2'*4TE۔\ si^G'Nq|Rc=FG>t6 uRMK(~*Y2B["S,P5)%EGEC$]^]X؛1Vb.GN欈37e~^"xK ᷒j¼/?NC޽p\dCj23+P t3] 6Au/E;9 Iopõ8Cw1{o{@CMvDKq|ܝ(g1Qk}Z7=#mNр" 'Src} a J.(R 7ʷi쉶1ÿ iǚ`xj [b6YAOJA<獢Q U¹9ʠeiIӻ`,g%fD֭ }_Co-KA/pM(7{ޡl`"zmt햪].Q8eNYff3#|<ݧ. vI M$x_F LPgf$b)J|Z_,{Nj:ḰI̼7yBq,0Io]{Rnp8jygõ\ NXΘy Džʽ8Yl R eH;E,Lr94 87F[֌F?gA&r-olrԤx@v&h' ,#tJ4Se $TO!?#=b@OȮ4j  ؼ Tu8vXNIU|4×'yN@{WA]W)׃GeM zWDL2#EjtpjmV4z\V[F+je$cQ$@3P?&~h=˰c A~eF'F"!{RjhsS" ; "z_!pbmY~Seeru:&P#fDOq^K4JśzJn)1JU;ɤ!MŪ땃cJkR)_ϷG1s_e%D~v;dR~`Ƿ.@fb%hr}8B?OVzNB>*>SږݠI3fF8xn†aPh$HO&R7gͯ9k׻i%*T&xJtKdJ~(I8W7u\wU 1]"4 J$mĜrJݫv^4Ua<JB+1$Zi%3'LLL1;r.dT4!ig``sՂW|$`K< ik"&5vch/db;YiO5E$v5VydީxiN&p&tAaҞC[ 2s$E"IP %iUd~WtA?O'|n,:[ny^ڵ`nq'qv*j=dݿtٷ9 @ ]e<ߚak"''7h Wuk6k;gHqމv٠Q܅wSa `yԥeg^ L7G$XX5z#4(g4\Ö,;@ǃh):o^h+@kop[ ZvX|WO;*澲4jZPTn=a69J[K~7xW6Qpˉ/Sxga-2=F$xYЗA?Ó.*Pz~օ*HKr\@\݄7u:C@4attt"`&kmcɇb,m,9z~݊;e&d.3pn*U4̂q JmaUIYmR{6ՐV:PL:u> (hK +߼Arwg#Ț,Ş$iqf5:xO;t|PpR@ks0>G=?XSKAfAI]Fulx|-1%8'EsRnH[bOHOoSݿ^D}L8Tİ۟a}ΎTPGר < Zk @_9Xkf{F8!ٖ?/f>L\ E ww.S@8SܭU8O{bd 6dT֘{n2sE5{IM$jmc0i^]1_USp&Gs?im[Skta:K/5(Z!bV)sg`hsC*f'+W?X<]qguUB"cev/7^Į2 çP[j8S=CsdaQs_M[꤫8ǘ6rC=uj+C#Sv̵9U'i(lWlTR<-x#vBdh _yC&=`⌇v ͈B g[rD΀ ]y# n%0<{XcU:m^A P^pg>Q47V )|hMl2LUG" %_5\F=nk(RzLl$<$Oz4l^R̀u8z.-KWm,_8v'\@05놞k_\(2tpn-s4/GL%t3U H s] 7{g3; OG5^9S$/Tq>7C=wOiAZfqQtW sPgWhO@o2(pAHقoWQhKpq =G%-ѧ򍝊uN0YBCǖ!WӦDfT -gD+T.(δpow\Mn_MD&*Ru(Y$@_T<, o_BW0w|ԉd6絳)q0 ES<-&BfKPī; ReD@#oօaôѢ%B$q/zk=Xnܻ@Ez>$w$3ak8{4,3&Iʓy>\mu|&auΥoƿ~38v8^^Vd&OA@\ )DkE14KU~}k h(KM_6;G9mݜ~JbzOLƳ1#شk݋CdL*e vDt.eo7ۄugFžnz|+夒TѰBAl铂RkT$(w C^*t?er\FL\^hWtLOs~ԒJaf,a' lWUuv+WM%iD:73! D)VT*pL-ܚ|W m,z]/9} qA 错] k z=R(\=՜*ޱP hCVz/eBJq{3ӱ)4xbaGikOJ4P2&%P<bw;J ȱ<Ъ%ܴe<%DjM㳌h~S]`Y^P[ٱ$YhY!./t`G J)/ְq._Lާ%U AjLb2'duG-ӻ(@/8.5j5֏nNVWMBȮwû$0;- hYbR9fݕE#S?I[7oDzqv) ȇS<~ΧȯN"BPۉWHTD{ QBrEPϬa#G{B>)rѬS,9"? D{CMh_U2,fw~_ޞfHg)[$EtE0u\/j\mGB{T=QEZą.wkHj!uuܼ4s$rjqW$wdr9/, DҞ&`0$S˥pond9Rftz3{:#(-L6R=F+tafrFVGEj$Y)!Q3T:)i},u]-ۨYsH~L̹~SCB]OPWQk\VeQ/Y.)KwFBCY">+)c:%l^)C~QZr[1h;(&3h{B0U;qvĆ~Qv@'Ԙ} X-bX_CrTSְ|CKA94go4}&Whiֹp8uU[ "}]TuꬊĒVw3& j6 #NFCL:GZϿ|I1$tp#]EBa! -iG`JUC[⩸dQ`=&UI;Ac YtC'LUPxdef FR4'׻"tK~aU2X}Wg9k! 9(M0!"ɥ? G%Y!8<;/3ޒ:z SQ|J12q Kl`C5Xcyɻ0r_nQ:Ggsy'1H4v:r6xd~ ig?m_qV5#$[ klßvOڑu0/]ANXʣPbܥƸ)ж s2E u0zn t*'r/hsQj2גN<+٤`{k`Y {InoLr`VTf#"JrRS* NS%6& FhPٲo7Ej'12aDxFl4[@{Eiżj9\t{ RފbBҖ_!6Zw^MT6C'3fX4E:Oa>)a!cHHhاDr ȓGGO @Ho]!t!jyp;B>|՜OZsMg_AL4HfYH_Znx<~'x& _DG'1 TA8;}MvXI\x_jFM̚HQd$5W ^B"6'@챂Y FU uaӯO#,43L<}$3)B]@ԟ9Fsӧ!n Y[, G@vU.Te]žX2[-?$tc0/EOU7p G| n`+b ۗ}jeogx赧tp,iujH eH.r0qrg ڶxQRTqNkS9jLG`"q>-Q껔1wN. ̭=fJS<ן:1_/(p%cVB㐉ua.r-+Nn6/73>뚂ø `HrGX\aM!$p]Y2UFqE"n5&-# E؈f#ڦRW,k}En'\'YmzS9勏sszGQrBΏpZ )2'RɎ~)/cr +SDbiFJav _l#Ã2 {=?$mAFqr)2LJĸY~)G96h}ݏ5fEv >3#!G|Y&͐*ȣqgUb z#(Ҷ .-&>R^5W9{q!;v> :{%,["OKȶfSw TdKv-KHBy*-q=d >V"} ΰ;=,vK!Vى}CyH/SEK| Ygc><|mo t j dPNe0[Xve_!{E]^Tcxo%1;h>RL 2PoQ!Ǒ!̳xZӋ@*{PMj4 $غW|3ERLX~mT?9^W.kf1k1 nf~gl)bd \*I*9 ^r} uP 'G>/ŰՌ\s-%2)W `3c)k%El|aRv})^K1?]Dx!`[@1b6^F0]-.yg>bE$Uw\3+\qۺ ij!oc*BشGR.xJ}/:Ʈ.ꖹlo> *!S r^^d|/w#y;JLJaw*[^8xSMc,;ɪDl ł x/O8)ۢi+j<-e>=*P}z4_Q0/NI%&O]U"NV4c3YBWwQJm Vk.rj]ק!8Tw^#{p20.Z7YN2 [PJPT(t:842ϛ=_IW=T>$U/avHPyھZaRD-.ַ͛Q:6:r \bX#+=FATT{g'ފueK>C ͺ{ $Ei4v]bF83 179@r}g { HzH[! RzFO)>n~TxNhKJ=зjV{V s$^Y\VqʼnJ~suW,FOPe@pL66孫\%hOX'1)l鲃7= BRf1F]w_~ yfs>s>A(6{Y!',J0!/l tAw=^}d6K?S{ O4X\,;t-F9ԠŔv}ˤ!M@ZrSa %1CM ^dfd͇EgB:)˴Gƽtf:uRo騁T׸go@Mטfܽ-=HInEU1A^Eɳ_Ei99 f^uCa ׺Vh=3هgmf aQx[9'Ã<* 4-[rwjN՝ s/),kwFq~o#m6[ΚAwR[gjċlNlo!޿O AɻV!M)-DtDJGU@XE}8QEuOp))p`}P/D"O#!yS1n)I"Թ{uwD7-!pv:0떼g8+dy ѶۮIIMihՖs%߇NLn=ui,XFn&ưrG Ru7\s2?MR K.uՀ>A_Af[ 6:P~l)&Xl0{iH%l8 P θPE>Y j9o[o^0jYRd9~oۙݶ&_M!6iYXeR?|;-0x$~vȽr 8 Aݾ!N+jlEɜ%ڶSlAxZHʾ-GnT~9S#0mZpiH5 .#fE1 4ӈIns?R;WRf#-ߪ2K'^߸uP{m1s|uڞs0xy ;{dгR9ǩaΉAw/%<,9#x{H'lprV_kuOEs9bFVYhK쎉@}U]$S#MpfǙPczn`xI{/ h@_"6.}:=UF*t|*C8\gh9C*zLs_sjNKeQIu1ڌnv0y(I<9Ii2ܲlORvkI*!GG \,/ڸMӝA\/;[f  kB:L}M9wUռ›lka':[^eM*V[zqEK@M`φC1>aqr, `! ~饕6GDs󟄻DHɾ&9jEPګ\PKs'b H͂ICμJ|(ҍ7/LA>4Ի.t$R:F6}4Fĵ:CajX5[ a HA Em WXBdf!>܀9[8$'={Hbսzқ%7i"8`[cP,AiEyu'g3zr kN?Ey^ǚuي^aqk*4V:سFVoJ8Ľ42j>O,(TB E-i;UBqhfpޒ67c\zA[@J:-*X͕FYk_$η&r!9B Vڷ^aBS&AaT6*O^VÍTd݊h;nkPWְ ),*,0^ƺAҖD'5n'3uv=༲0ѣ*[N[irI::8x)eW:lZqn\4O `U)9Qk) 8zQ)t#UlSҤu0̧ <&00J h!JmHRj=`D A8RƤ*|s7Z6>m PO pWbk+z^X-fv8Î-ԞZ_85JIbmEϿ٤Hkyn`-HΑf=%Et׺r̈?".=tV|AZܡFHƪ5YHư,5"6dd9dtAx4f.)ؗ96T#ҜG];,ǭjruCВ,pNE)R=AMr+-d VR{pF/&:c|KّI)J6 Sb,&0*eXBG"4G3^rXk@H_]Н`lߥCx?Y! (Ne* .y I ћUGmX- hҵN,Wl`NzªЪ2xc dEC8c"K Z2}"?ZvܵYBP/&̭qdpgHwZA 4|]br˂ev/ ~Ee1cu NYCqm*"ClGwy-` Vbe_6\oX:J'I/Jw"DuOF"+oۿ{݌`[@~ڟ6 f(%XPVyiF֟L3(]qr F0I SU̶(mSxBsA#L cxJ!jykcK{`Jsa#qvu{c_fy4н욇 Ztm@slqxஜY 7s! ] [!>x(1Ґze6TYWlBniO:H)WM\//Jɝ?\\6HtЖc (6ݟ :v+7)p}Pn4w H k2T!?%,Mowˍ6ѽ$j4S@H&2.bQL8 "/p~=\ cV OۗIM~02ո'u2?ʊr/HX'mJI'L攉b.y "Y=迹$c[lrIZtLr8 ^Z)g4M-5,8I3+Dcmò3d ju_˷IE {D0 ` |v#wvmɮQN!D0gҰbVtG.5p Xvt7˹zhE^/ sɎ X51}:E@"#KX۩2yPhw@ND=\*={^#_uu`MbʧqsWK;cƺj9Yw2_ bѸeah넮rWLW {ByՓ܅~E~leP `_s؈p v-_l$s]! (3? 0pբDr)Lɡkn%>'M]@3|~fXwt^:pM5v)iĘ< ESW?^#c XӚ}Q=ws#~+QoU`g,VE9]v+ZrtrQum>NA"9J%o*`%n][=E;\_pTcV4J˨p7NtЎ&9(-;z.T>E~Χ8{2o,fM$LpI6v7rl'6gH 2~o \_.Z4SmaB{?o%QSZZ{6ډiY2좟7RV/n.8ޫQ+֫ gLB AyvB^ӑۇk7(j*WʉgY 7Y%PVlX'YhA~Rt,/!H⫊cBRNdAgv)yI Qy1y;"rKHabNZm)Њ+Q!'֟$J81l bnR´DFWvjeTT?1z{",ZlESVR=nvƝoZUP5TFA}B!w=]@+xeS 5&ĘT2bRrm UpmNsfփk@J"(*8z#K=,Nb8-_|>!#Yq٨O꿠B 縏Hl_k߸aXLYE}9D eZ7 I9MrΝ5 P[\MP .#)il#oH<84cy>!fCG80W:3Az@+V!$^ٍ>ma-?$FmwH3f Ptȩa]8ett9Wr죜0m@^1ΥI*DOM(/qaw1Wѭ,n$NT\f_CCoFeTnbyݎ%c5O?* vGIpъ=h WJF#p}+7W}8340VhUpLe$܁FTz1%%䐘ںY =a 2,.?PLRiQd"ڎAw pTꆬc Bj:\-XHUQn@|5gu1gjbd NG:p 8kxXvsG/o_;5wfZ Me/QyNpJ&b@X>[՝+U~SÆ~`̖2uEED.s*i )ޡnBv, )KB#lvD͵Dz8 Ş՟tI2_jH?Rɶrg@dɈWTHVR u԰)v X)ek&xp79&W9'5Z`cJ$7m1CnЭYF٫̖L(ve) w6__n^E'*[,Xs=YʙH,Iaةĥ%ήҼ׷5MF,V){1ߞy[|{؇ӌ8d(, l1+E-D!3[&8Hʖ5'.-.Q=3OEyn Հm)|tJ*Q'݌6wM $J׳<* ]uٟM@@h T-NSx45lPPj-`6/ʒr0N"DUwWjН}1eB?4s %nۃ@r4]l{UX16YP;.O溓_$W1i*[e-!vtӕ֟#QEj7GPΌbHH\0.] ˚ .,5]*tg$ u)1y=TΜK%ƘbVx " [.!?w c2-dm7bKr'i[بR\r RxLO1vt#lg^~0J+Rźp]ybVDi_EQ~ FEn9+D/TĬjI/o`'wmخvgD®{Dĸe{PKgX)rQ(%ae0*ːK?8o(J_SOI;P8)v֢BgVU=-T3x' NU7u,^-0M* x0_3gw VX`#֠]ΝǴAV;C[.)K/\Ր QJ^F:$ ql,~Z%/7[KsDXj#> Z nH 7u1]34 |48ʟ ˝3l.;_6k`5C@vvth;!=92Ҍ:ȃ^i*\/-w‰ָWD-U1v6X[pM!j%n5.7D:;ϡud 3aM:5t+7Ne\=Xq#sǕחss"U3aίSH ( h 6 8|7X1#pŦhN )7ޤ٪<),wíZ '3AHydѹtd&L_ii -ÉL`Lm(+D"){ZPE,?}Oq>I*Q.|`(<@1UwqՈ[A,%\mHϰpMgC*o,?T;p)DbuѫP2Z !9S?iMQ'KbEz[N̔;f|&G?1 oh$Œ@ V:ʄv0Y>fVs^4风 Q[o6WD9oI.yX >gur˝Vf*zGhUv]#-ą7"\On[ʺqݘF$` /%^a'mCw3Xo&xOm[ YFMSG$16Qy+ \gJx9,uipn_ ;f׼|Q9 ayH+-8MϺ"H2 cԸ>50~hsZXhh{?e`fu܋J||?~}" RD}f%[ŜsjÄפP9r7S.>aIj .8jJt:iGWqym#)UoBG[xT[V*}"'xO5;X*&pܥ[VXkNi*Kրλ~i!~ ـG\zVlRRA=z/UX6J@ ?')O@KZ@ ?FU߭u|km!I @E~I4cN,[2Cm\Z19-Mv2.{ ܴRȍ:N[\4A][C7R9d:bv96Ab)fP#{&cSKÌ9fJ˯KFM/8H/^ ܒ? =,(l| ~nBx5AJ֦$ q pߏ0f}|~Pu;s`ޖ pCq{8ib059$i͍."#X3+9axHi)񙱠@r8mrq-YA E$ =5τ y[-Cێx/FW%]O u6; GĐi+_)JGkӭ^=V#ՠN-6ZL'BJHIQg%J{r!X7a60ڼDM5e)O S\dye2\a.'w`4vlޖ7@09Ti7(R.!ǿsג 4E6nRu(|v}Q j'g;TϪc3V?6st 3Bo(*X(r0D*VE>~NBЩClxI6 Ӎu.&^0g ֎Sp=Z)3YR-(ёu>Ix[-~X|`Z⿴Qi&; !Q.S 3@5]  zR3!GC) }p6N3/M ӻhM?n<2d1+19p"a9-"PxF"0{z9Gϼ 붂fXf@} M' >7M9ٙ[RS5= ?td8`۫}25bx̽bwsBPwZ)190xLㅸ7eEN:بg:;ͺ3ŷN0<}@WKQ p% ]lGRLdvPKcQ G` yz]u.2ZqMj0I o[yJpUʜȥbb̻k%CJP |dT<&qdh^?˸%wj| 8?mbQ^|0 }_'@G>Ta,(Y 2BH0iIRh`"<T* T6>JTy Z;U~!I= "/y _RKu;@.%p CK;Fbw3 [/GKL,뉡EtoNUxjsOkϴQ/kq)l#={Dr.4\ζhнlxFΡѸ0dyU%F3ڦzǼɑX"%1"khE+x3Aq 'cP@_[08?rbdj0lAӘ >Ljz:#sgGN_ؖzG, 莚U(Kŭ:PA)'( !7ʾ VzG|9Ef96  dpQ7* J x< Ŝu8 z {M[0+r0,3PCcC3Mf:SɠT4%z/8^?i#6jfzyAV4 ,pȴ6F`5(9 {듌Y1DcKDB{t^Nx}E}f$a#XTDNa+QXK+s5#I A5N_,)[Z;8 {phv`X֞&ظ@ie"@#D~ lmյWЊ&._ϴ)m_,, fhI_mÛ. lfYċ9j[N oŬQٵTeu>f.gYEV#/ U;<")q*,  a*[)lwxOJ U38` h3ᶏx4yڏVףnU8"`1fPwllF\ePw"Ы\L ׾B;s% Ԥ'ekwz E pJ\Ot0%Of{X-d 4GskwsїwŁwB^2U0fʧm>ŒQ$@}Utш) sU mX _v"{|wY~pm"jA>SΐGԋ4)ݧ_3 Z]IuWfHĴ+'&6VLm_Z_Mm6MqTkDDQ稅% xcL$HSҐ=ͱ5#VbYdQD>iLzb 6-gJё2 9-鸧ى&*9o)R|h\Y|TIΔ-eg&KC ؓ6YbՂ9$d$!@oP mB6>W~M- G&3GxXcفӏ4qBDg-ҙMկdFFu"[/$+-Pq5/L73NBk|:j2a@o0*}# ES 8e#+J= m9!ѥbjrJ^ZQ+wH셑Qs*PB-NP$0)š*U~zF >9.`/fF0:#{ߜ#)'\^x O-LY2oz/^Aj!1F4#&=EzXALtit؀M^U",8>?aŪ{!C>lrq}k1 >o}i-))建(+(sLAEv߷$`SY ?./8xgHPH"||}10x”|TAxC(m#]%ԍ5:nУ2 >vf~]QgkBp%` ;K%/ͽqe/tEV^MS'݂dZu 83Qh42-žՁhxݒ9q!O +666\|I~R)N9JwYSeڌhB!/]aD GHA[ `GMj=ђr ¥[ Sd5h /NazJ&>7c(mQHr!x)r/kn~Њ}x6b̪VpWJ7cr1F{U^neݲ /޴+XhS3Y)|C6gS@^{9("!Xs*zj2nOlZ (c}\DB%eZEj:a*N! ]E5&fSDZ/Fl>Ȅ\O%m؀u ߷|o mfR'x[xxľBd18jdu[kCXwvS$I4[u380E%Y*'2ӲݫJƠTY7;{ڌ,2xokLQY[cdq!kaRYDM܀nADE;Z,?w#))۔ȉ!1U7^LpeCZsv}1kC<+~;9ZR;^׾͡]tRӓO%]5٫L%WyWΘFy606W3CKҽz[We;4%P Nv$&#;{}RM*V0~@h~s?f٨mTO^ptt th0+,d$4N 0  6KUĞ& W2}_>\I,ahg)giE۱fSKdlëWfB-!;<&[іB:> fOZ%cbu' I Kr ^W~琈dLJ,Sۻ"P|~ TMj?nCV>?ݮ5`|OQ?<Uqمй~+֡ 66jqY~KP!ݿ+-Hm`L>ǂ>fM7_|\)`)$K"U%Xv>Mߕ0M쳛 ;ꇘxwF 4,WxASdi&7!g8l/ 8INp\U4x&a;7Eor+հNz1"*p#C.$V$9%D05c8GYї8s.Wήmг7ND[Rնwjepr. _Vrօ*Fq⸧K_˝H1nl#YJɢ6's92.ڦyjD3߇Uf`{|StYHto+k‘uJpx$H{W;T`7>eK-8?A3]+PW%TƋhBi6*T/.O )?qsw\\(Q! OEst 7Y8וyφ0neďo}+f:2h=myҸSwGA(15dSSD\-$¬8e6vhsnV : Pl _Ie%9pP4wJn. Bs]Ϝ%Y Ɵg]DjZ)&H C\Ɨ)pVCh;9'ȜR^|\xlJvFk!8Ua2BR7otfs8qVK^>"t>!aB>sI'pWv|v1ݨ%ׅ/6*ZMH:8ܥ$iPҨZyޒ(vKvfH6Wh긬:/=Er=t̽ 4_rCfkY3Z}[) f}sXtbnN^iW=IQjӞSj$D ۑ둡6j⎩b%[!ެ, ϡ .쫜+J.FnYh)\v4gQFL;_aO4 _❯OZԐ sx9(-}b޼9'3OVѮHCKSxh&pLшN *ů$52ٙr!cQ_p(3|wh>hv(qG8^m 7O1҄ٛV`*oRܴ7`P:33` 3Z-Kb>hj[A7$CylMxLiS 殖.K8Fs Yp`8~Dh.i0,Z_8&U/D,uڝZ҂oG4w2Sf#W;J͊h+J*flI != n*~Q% ؗiIlúk#4Ꮄ6!-poB"Z3g\d fl"g$x*t"Ut^($S ISBCKQ=fE"P.&P%V$@MZGSiB374 &  2Dc/++\pRu^sj+o ޽heY.Ӥs +o4K|'}TE;{(=Qm]3CXy 6=$I:n4ƁFx.v繝'~3&n $Qs".̷f[ (Vf30Nzۓٰv|%QEUy<##f}MG%,t, s+jCHaN|@COƌˎ&,4R,S|kB^~#Y6-rUivQ\p3Fb# ]i:wCvN~V`bYr' ~_䯗F{eҶΓ]\G5߯r|S,{S.ZW6uwněxqQ(KȤYc2+ ~k}I̎ ZjJDGC䀲gK@X'~bG>N{*b0ngzd}UG:qңM${ s$͉aM!oY?7%#p$U( 8 p .Wjo4Lf@Ɋ^Q$t8VG rB%VO&cmImaL5g+݃ 8Thq,2U0bk; koޡlXgnEt1LTtipv|d׫l( &3w"sh-żS6z{^/ )mZP!ܡ^sUۇAoCNy3:[ez94h_Uy ܢj59^Md}K(@f-dީ=yӔ_`r;ZKl5 1Kzr$V4fӋh^wM998>diMFǒ"6:?yP%~>~;F6E n ~.0ǡDjrŢɑ*Uy;M@et&' WHmъ) ?1M4;cïGofJyX@[݋)'+Q$5t@Ed~KM_9ۤ)AKgDLFA ^4g(`#=|?so'g;i =XCXD#殮.B&sl{֩_Ĩ/z<ްS++b7>9AUlFkG/Rol1*ΪE2k&O_a\ G)'iw$:)wS=`5,:dq9U\y:w Lm0?U3൅aXYxf*ʑ6[Kѧ=ICU2>~G"QG_-.ty&-&V<&xbWr{R)7% DhKO#"ƛ̀?y p ռ%*kC$; }X 4c(M>!g}$"/rm j[s#d,ĉ!9Pž͹LTrfSXӰ2\ۄz.CwsIWm Yat7StT;!1Fmv|[:"u Ѓ W89(8U5`ikSL Mu`j"I#Ӑ޿ JO*zӘʿ1߭!k*q~*:E!+%QhaI2U/"n"H{yiMTk2~a|<bP?,`;;ѷ:u;JzM13; S'[RiNstO/ȔyY fժc)ߚe:?[H)_w'Q륆`6d|yuPJBݷsBK&r Tu)X0_Y۶D~DI*1&V]i܈? ͛}\f6hڈ~Kp?ذ$S#4#2Sa@,|Qf4pDǘ3ZoTޞzF(zюgV\q܊n`4SᠫNw|<>3i/HSf:L)#v^6Š} r<q Ω#u>BٳHJ<5 <5ycvvp}(BPqGrfwC$7u &fw +3yKAYhژp_ԶM3&X>r=!p!VH:N67p.{ߴ|' tD!W/nؿN>.yf 9a,<)ErqC+(?vS+,Ӡ~ %^0A-(Fv2@ 83Xjp2%i 57i֞h,. ޷t<+cY0쌪P?0Z%= BK!f*)W݌ջ@#LDĹ !5][4`U3zT5 ui,y ]fil.YDSЪ*&Er;BjȮea;ZTȂ46>ݾf7 iʱ;@nQds$Aw]a4վ0 BO_Mt依Aj0)\n+_=z6J-D T5y+=I([ OfK23?j4KXۣUλ<zz恡KZT:I~ZIϗ2aoIE'ATsn"QD틿ۜ[0SsJG|>IG zA3]DJJ푐)̈́>=Ȏ [N\F]i Gi5̪*gh^_]##h%fZ8".a3IJ7R02IzТ2Yg>pϑKO/bl[n.Y 9Pc7g`Gj^],J5~2E[^k)˝-)'n mVǟoWǔ"{ZvFBiźe/|[>`p$9T(0qr#;A7 SK;+f“R:Ƶ}a*~α>"wۊ"wRU7 /n4CNNٔy'%  8<9YzϽ┼q8v m쨥OJ J|ߋ0RT83RSnǿgmv"I!AURyyq=T͵G]S1ڱ3#Y9%+t'10tcYv! =cl]" #W>+)۹dRPHәK p`;j,}3}0Ӕ&c`t8nFv+ƃ_j`NϊB[`fg_ _ͫg^j80*nV\:'Z^*{>?f]Tɡg'awrAt9-\{89ѫ_[{<h6CBHDG@,~?ٽڇifnSউ?Ed s\䉈`6^ ?{20 3PF᚞Wi w>jCe %Hp!a%f5T,>.jk2٫/`C@ynv-<Ĝ$cԓ*P„SɐflRo}n JPQB]U,PkC[K\0 6~܋pH5D=4K(a{"»ѕ!ŒQ ԱzmXtaeG5@x"AddSg,HjBCxvEj}X,s5ILL ⥸xߺϻL:tKҥXb,p^Fz/HHWSQ] HJ9iv+ vœ_s 9Vbo?3ia&^F>¨~.2̟2wġ>7c?=(蟜iʁ\a*c1r;&ёD2r:r!4 Wd 8Y9-W8uy,BAk DL:QO[uܣ>ۏn(zc?L8;)i hK^<̃GW+TYi)|l6,ofFnNxg1\dpzB@ e#XL ah˒Ͽ|֤C2{VXLgaC~Q9)p=>u .5;\Fٮj77:&'"+/R46P SGH-QYHȘU` YGʑ0oŤׄW=S+@S stMKVldFHX縹TnԂGv˔Lu=KQ Jō-psfUj<#])'FoԚvnAhίli5`6 l%֠D2P̖/@}W׻Y!wyD qTyXA6C<>~B$n5!f>n׃B#~^K<(lՃ-՘]ޘsm֎ef~!.hx _G0iW[1AcH&m*>;iѴL:3*YeiAz'oړTN L9|`>؈Vy?#X -8M 'ad>dFw3:H++ jQtNEiWQ,'* dVGGNbحBu-[add%b.|;`!O}4 MɌ:#}͒EϦ$܏t V` G>L+`tqCO/N4^*@nGnPޡf4%%Ԍ"&( H;Z{ ע!HtBZiQoIYL}"V>łi@#vV0D]C!x4SbJ3e2ntIy^|8/|d,{CWd,$F~R-zo"~0JrEC#s_" C e!(;Aa) {ۑnrRU3f5gԌ(,eCYhj᜞VLP0ousi;@jcZ.>XxLn@T֑},K *LrΎY_7<{haiM#\}~+C~N4l!hZH-aF e !A0UkFb\vp{|Ą 3y&v'~FSpr97$zQȑY!@U?ftE}:q&\cעїw3G,yƩU'DR-ҤZ osQ|:鴠ۊ6AvȎMtp7 A"',{з+jԽUr/;MJOa1U6Al< *-k.rgrZ׼k0y{iBmd#yK7풄bQRSYXDfVI#)#5F.V`nMNϖu4Aq봬f_! L~ BNS=8&o#S6& )찝 h[ &3Y8Jy%\Y,Jrd{0K¦s'0&TL}%usOe 8-FrtlEH,EkGӛq1>ˍJڡ%f:642`il -IA3xǨJ3PvOΦoJ6+̺ NjU vIK$sLHarB{Nf2=ϩ5`k_7xO=3 1OfVl=Ǫ% =cCYO{CU̒Hb7QJZ|?;sts@>gn/tMGV si!ƂEMLsah%h8 7,+'Ф1^cP15jr ٱSlFdr1/!b7f[ھdBe)@`뺘?SOpW:^‚[njY1!A< `Gx-WVCQLhb"|r"\%ٳeIݔ=hQF({=Vލx}EC'BZk>tc0q4;RpM.X:ڳ"p3Q ?$X@s3U-ԮW-K۬&e#z[nE]߉bڲóYgbX g5-bɫ!I a%z'j)V:e%.őkꌭN`Ԫ@7'C3Qz0ڧGl+UhX)㣍8GNدÍh( ~+duDz&.h/-b@QD|26/0O ERfp`Ί̓TK%~eڭ؋u}:0;}JQ!0a^@06ySla2aǔuUwU !NLytW>|CR>k &qUpǎCSЋ9q4k X:sxўR%gU"DwS $MiMk*ЂWx^2)/ s;ۿ$,-(ȢMҹ 9}: Q^E6ΌZb㋯u pUUE pvI--}ݍ+{IƌѴևB\b~TN-ޤM^, by>FQ!ENjeYƲFT܈>b z>uö\ݾ&(7 6I@SUBO`TڙQ8s"eYJQ?)IA %T#,@-UUY"5ӏKVdz;v"003Op>1qRFu#O64p[< rv^tJ)b+P)%.w }/wV=<!K^ܺ`PSs.6iΦK!IA?`E{0TcO*CUxxx|MIF"6_H%ϑs%Yʐ$  tє"6b;.FC,+XAxzx2dnҼiB~gŸvs: [u;<AD{C߯ZD}p'4%:PFZ'xJd+K*EA CuK%Gc.~65?2e`*% 2o- ;ËsC[ <_p 18I(a$m>a< I߬n= w)ςap7ծDJ < oa&3*4||F|*]] k;/5ŽE/Eȼ$)ph&⒃,{`&+Jq$W|!\'2< ۥ$MQ)H!;B (+Ծ#Mc ԍm}̮2 'ys^T^ݡ_A 93b&hAza֯Q>Z̴rE?2Cս'T<0V@xt+f1 *AQϥƥiڣ(0ǘ#Z~pXF!>-i9|xn` g{ ,}7W3Cq%Ä'_y,"e5eo31d[<iL@eR0eAv?gWQ I=Rh?@&3ʳ@Kw!hkgͪͼziuȧ5L bP,y+.eӔFaȺ_S L] (dV\8t.dGXh> zø לGmG[HWb "!EDg5>$l(&աzS6 Vь~# *,oj3=N0?2&Q'o\CulGž+tV e挑{;}_Gqط` ql53siDWL=LW,灨5qC#y !k,mC,aLSE͍kyyUؚiB%^^wg?¦s}Gv4usg( LC/j\;=WHe€n,u\2EOOF:^0E F,BGىYN-Bݏ[thܫO,F.0KcuW` j+w ز)WIT`5f߆r>I XJ(e^/qh+Plrc ) @, 2 DvfOF q!FeVH&1fF~nTC2#3,5LfU\vGC e>wY6ݰs]gEsa߸?HŶ͎v\VCW7Γ8 僧~ 3˃{ 8-LP6*G 7̥DX-efc4Tզ*-'Sߍ8zg:X~ !r*]8L2"bNaQj/ F6"!Xܒ:ۢ?9yT|pmhC:n qSzŜ 8p#GG^YsG\M^sqwˉSם0v+aNwn {p*f1Bndy0b=jg`qX+Q!:L(GSЮI}\*BwlfP+4c I'M[Y5YAL}!;X f}:~UG[%)Rr^j6>+tӜxKz_1g}fYJX/B6+s&Ј9UoTr S>"CBm6༔>$+@t#& OHP0r+꣼sm aDL:A|l݉OEEYǘ׮( ,%E!mT!3K >]T-J6l3Zihx݈TMu$6~@vN )m iWZ4뀹R}LNr|JaqvwBwȤs;Xv\us8Ӥt'9l \'-_aG!@z"AHѩꅏG:Ȩcg_E/'(9 vbGϞ!c1`qj ?0^S"6VYWZCn}{XSOCpZ 8a[fŶamFCn {Lw;3|zflBn *h8ZTÄБoWUk^?MNE{yoʎ\O(2Нh}6g (hhzʒF_z:bJ !);=5k3%is>w)Cа/7\O檢xXQ|,-"I3^"Kz6MT^ d0סyj+[ɒyd4h+Xг)>q t%zɩh5G3_K"Qc3vovq@FB$m"󅼎HN@s@X>Ab3CbXYiU{%2I^y ;`R~iw̋mpGYt:mħ~aԃqE N:{)Uh5?O^ D?l 7`hb-he«xrR ` 5 Y8??]K ABlz[X!= ެp,vwzӣ6rϺQ~6 !?;1UNܕ;C (0{b1bgsuvwcѴTxs]&ljuƪ[Ø'E0(z^FzyM6ג,~օVP3NYdSŞ&Dw"yh4t? NA!#TSUuk dȉ6w FCZxŖܨؼ y["XOijQ1ǘ RIKg3],4R mfȎB[^aFU }Wr5u@d1d4&N7Q_2Y? C5b5y;6"4wd?d0rN#2usyB~c i+\02]lA/B8%@e= %*ݢS}$6Z6%TXWDV3g-MjY6\)afbHdJ $KQ)5>=P?Hf^JeVٞי5Y2,F?1qd6CQ⤔2ޅ A@4%KW=|ˋxZ&mM-&٠ 4I`ci{)8RLh+UjOۮu26,n|iqmL6_=Q%ֿ{IԚĨ iAb WcErobUu[9] e6鏼sg-ʉRN[`ۏYsR@,iYE/ڨ\}[q0H2^-i>X0}p˸ʴ&EWOV> 24Az/lB(~uFNu)eò$ ۱*R cľ[O2R0G" H|cy{' YH/ci8JA}J$Hk*q;Ei7|%Kf  \JtP5IRzvJ\Ƚ3rFVH~4 />^!)"i6dEIXTeWqANg̟9.iXb "O[9-P]|DTpPe-U -W4 v#`TWT0sɮ窈?q.Buڢ`AO;r};3ˊ8.XcJXc 1ZLozI\K˕\VRVD#lFaNڔ gԩѕWCv#O:?k.9Fi%a%U\+xSF0ksYE9$6J61sr2hvߖY.vN&?u3q@Zy}\b`/f5~yh; xEC[9AM&3iXQF F .l7gPUVqiLJMM^|9qTgŒٿV Mb<Yrj4I;+o;L?+Rf`-͢ոxf6Ip\~ l^%<`̭~=512 !ᜫN C@H[584rSCwzDŽ_| No,ĿBV m D| ,;Gpc\ڼ^`τ,CM #ws ?Mi#BqZw|"q]E#:jCI~=S jhs~S V h-գ@N@SƕIDތ"ԭKĵsFL0!XC6J7zwVSBqvaOlq' ' VXYUj&oXm!L8Cor|U[B?tTj=0^4%j@\k+}3m̗M_H}״X]32T V7s& c\9<)#Ak?)bTI~@!hM`Z2B XK]cgƒO1u礋THl{ ݇TRN(1&aj'.cD~耾D`b\8IVJe!mm:sZ甄r f!=ύo@l(3dh1_ k4lrXLm6 ld)<U#L U\ʋ 9ygQ"siΙ6SqR^׃cRㅨf7c$TR䤾jo\5ͣI.c8m-O+<9O9vSF4zIcG-ia<z=_qBZ[SC>Z\veFs~~T⤥8 OZRR?~ &\j' pgb+6Ÿ6FxN8R!{Kl/'U # qhXfu42C MGq<ļC[(fW+ bٯ=/-IjmW9!w6t鱵IQ:AU!6WδaqLX5g nM6w7f3/;?EczFr^'cX,/gm09?PUV ԲS|1 gzs+jKXxN{)]jߌ,k|+ޒ@'fɞ꜊1n\wR X>0$dvj!Y[["_%]./LAR9άkH`M).nke|@.-a;yIJ\ľەoQ0Eeli^Wa3P@mBŽaB0 Il쌤rqW?#)5/+xؒtVXݺ +''K -Y!'>54Fb̴aWe_zK m._ˏ'G#FOrؿg¯𲍶"2b)F=Y`%bE1{>&JO&ܨ, ua>-'cwNBQE"#:39WVĠTdziL#&pdYi=2)W98Ɉ_/\݄7`~`tѹ]LCa,}2BC6⾄;{z2E3Cї;:IN;rA* Jږ&E0gx g4P[3U ǭu0>IZ,S$$8a)X3] QP߸voBjNLq?R--G>ɎM|PlȒƔ+Jf^w`z0whlWm}񩁙 a쮢 $yR|V4)̚/2g÷)4`h% tu,Q2&4H2˞sF_Ev~]{a{ܶ%!b([m#;|޾ ʭ6~t&pmU5!̋|0Z&MYBz5y+(|c6/]EŻ]v":xqT U?s !$ I?Ƒj@+7ݐ=覆 uޟqk *!OAIG OBdsULw\mt"Pvx5P[XTNƽP'ڼx"uE9sJСUٔ@ @MbMwu81D+ s!q1Ğ4eqSSv'2݃H9sbמo?EN_[*y'Z"5+,fO3E/QO$#KI}u./G0'Mɲe}k|8KMvAv-P ֿyB!VA 0vR+gt{k}+!=0*-Omb_!܋JTاSn@pxH&s븽汲 ɉM^^X-*"İaW])ӺEXDKbm@֩!L~_I3$JA] ?䲗4ۋ\Mjb@?ͅb*wuv{AW4kʄJkWff :2qKEpOS73\"lQտ:"6e "@=pBcfSִ|\nUdtZ}^eXT9y~/"O"!ӂya"SȗX.*¼N *377vSu{aY\> gӱȰuW{ 2@TXs,@鲽ABbNH1HKV(;ۂ K;m2vLBp{D"LvѦV KMWXz UЧU\B;ݴ_"q1T3P+Ԭm6=/ um?tJ 9,.qd YeQ)̻Gb|(RKuLDڽ"L!" 6~d,!c94i.~mOhBN90r5h{JfTfJ\ؿ:T%lcf_h2CDlTI^ꅔ̨6!3+`s߂Z0Xj#+^2DsIX,=S5vNǻb"Wnц{ɟvE^ʱADb8rJTV~8RⶲVY$[[ dž6F7bWp>`d22/567z|u Z"~j`Ľc |&̬ g x2g((Y= &q3N;eE~vW播5ID\ 3R1EQg5* mE0c*ۋOxcܭ|uټB>K 3Lo# KoH3Ywԩɒ =O,HcpRP6C8+UV"D0WB0^_ΩFmϷ&YW"I N2rm][T4#5!YxCCe逞GaXN׸&qHF>.BǖIOIYh~z=5| I0haI,%PN3|~>YΜ{"Ȍǘ.|@j% =-=8`{mfKG݌WNlC/ڄa쑱 @1*HBbV;L&"IIOμiߵe%z#2^QX5O)R'U #xI/$] Dz1qN11^Yx]冡 R:_*R8h;8De;:*x7Lēlbb0DR#J߲[ SN2 zY2\wN&) z}Y?6.ԽT[G9j:YnoP8bBz^%zp.ueHH]S/nc[f<|C1pA Y=tű/4.'tu5žc% I3/Z\4qy͎60%ٸf_M!q^Ad+dچNדT\;JLh7ܟtf_Blh* 55*^"zA=,tF J-ijfBޘj`Zbi (!]fX Wt}ʅQ :z"#{C@ZfEn$"ݞhg^mG i ]o =PaC+@|EE Ԅ[ޛӦaCKqyF8؎bMcJ1p )`䀭g@ XsJX{hE*D) yX5)5oSG.Ak0}C`m"ZՎn"J-+"Us'*0 ',ʫKNUF.2$e8eQ9f,siWRLyѧǾi{G$Zkw `X{|uS2  sWq"ϸffĸdN'KVիwg{,eԭ<w:0%o~ oͬ$fdJ\ϟ\X1?k8 q)0[Hdj`fW#75SȽYUJ- e#{o7x*i4L yFxqtr]Fh@5h^k( xf &sg|w.m2Y %q."NًMۀP uCQ җ9h<>^mk2o*kSٚxF @iK0*{ıZA*z>A_q^M 4wꦩHa`]ns?FWїey5!IbV1*A]s0 U7֩n(eϠ.XnXbl#Y^hO4YKQ^z9?PTi{"DMޚڂ``|sv_|NCe!KWXB/ۦQEċSCUY10(r3sЇ}z1r8 4oTwCĝD㵫T"ua΍sƝf%/|t2 ՅqT9ˎ!]*e >dFQ?9:>_`&X.]bҞu)-t!-I:Slі7zvfz}PޘFX|B#8)*dw6 lt{x%He*bvԼ$ʈŧПylJ<7xvs\t3X'yOjqkcNWk H349vz޿t `ٕyP7ު봤_T9I*>iggƴpHsyPN2./}E9سB#.,DpKfHͮhY@$D! ~ |@cYkѾY;Q:XM*ࢮDlzZ~ALą` .tk قjZ@~jұK.ԐR@ab? zJmMjwCG%M0NR4G#H[GY%~Tڱ?(lC7(AN(%5zAbg)L|Q6tχ5bZR~&/8zRbJ΃y_ e@|0κ&i VAYƑpw*l3rՁ[HmDn8|k9CL#J,D>ëV`17V?*GX,2O,_L1#< H֚(wL̻ɀG 4V#%