openucx-tools-1.15.0-150600.3.3.1<>,gp9| 7[_`9͙L1Ph(h9Qpa+D>aJHeB=8VNT  b42urvs/Xr+c m6 d,jsyK-4XTd!,6i#ޝ=zjuFo9(q|]2/ӑ+ ˪_v({I9ʁvf80p34:F~w2&d0?ƓϠU K S&L]T>>?d $ 6lp|     c    6 \  " "E"(8%9%:%F{GH IXY\]`^b-cdXe]f`lbutvw\xyT8z4DHNCopenucx-tools1.15.0150600.3.3.1OpenUCX utilitiesMiscallaneous utilities for Unified Communication X.gh01-ch5aSUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/System/Consolehttp://openucx.org/linuxx86_64P pXHgaj: #P3AAA큤A큤A큤AA큤A큤ggggggggggggefgcgggggggggggggggg8c5775fc0ed46d586513d6a5b138387c67406567ba6376bd44a54daef892c3a6a9d5dc17bcac1391fde6be1c8139b85dd3f93fc7dba5fc0aab4bde9251023a273ac7be6708c20b2de0cb35c7575ca85dea5be316e07ce03d0fa97247da57d636994cb8bcd24928aa2fe7c59a9500258ff3ef236ad64c740b5fc889d3e804760a5fbfe61c8d3bad5d286b202a872e99d3d8e982e986c0b7b8eedd815490cf0b5bfdba7a97203e661fd08de4b1c85f9b4414569c474038a4fd7599984b4b12f727425c43b7b37d5a4db97b6152cffcf2a9e9b0e2b5b24fa4c4fd70042be2a48c3472f83d13224ed92e9264c0131074c5d3ee761cc7a74e3889aa4dc212340ea8dd090459b884fa8ee2543d12380268ccfcaeb73b1d49edaf4a30f13f83df33dafeebb5c7fa3d2e20fbee5431a975c7196779647490324dc2346cc561f0f044048dcc291b7e22e4d11a847ab0803c39646bcc05391d488974b29a0f5c2626498f226b7509ae9e5f975138a0dcb2744e67fcfdbba7f05f11485b42b211310d5af16e84407297fa98ea0a90b062f1eb467e7cc5badea8fe505c9df78977cbb0f5cd1bdb51f2499d8924ad1e62ea2f1a050e6aaf5ab9f3117a9b1adb40a0bc15e8495e9f11c5785da9c00f24d015d74e0d3c3b53eee08acce5c970dce443cb5560d4ea0d618d4650ed8674b28dda1a4b88df1db885589e7269f80d1bd51b8afb24ac70d4214780b9364cae0cceb0afc8bdb6c3cbf7b837e640fb311bbc5bc190138d3797d82a722b7923ff202c364754b917fc91d11fd63bd841ea0fba528a525fd6dc989f30814d5755885cca495652cce1d88f4a051470fe7e8ecd433908b04148853f3f460a0bf39b3273dfcb590e5db476d1d68b3b8ef9970e36894dad3473745a44bd26f5f50087ab4f124b228d267fe88ba0833309861d2a39f701a46676fcefe24145afe1640ef437c3ffbd3120bc734f0ccbe93d8c8b299ee6094cba118c8d9e13bb88a603c1223dac70b509a7c00d8d47583dba685473b89972b469329e29rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.15.0-150600.3.3.1.src.rpmopenucx-toolsopenucx-tools(x86-64)pkgconfig(ucx)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /usr/bin/pkg-configlibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libc.so.6(GLIBC_2.4)(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)h01-ch5a 1743572458 1.15.0-150600.3.3.11.15.0-150600.3.3.11.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:38152/SUSE_SLE-15-SP6_Update/15b0146de093ac75f2d1eceb61deab29-openucx.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=3397ee6f5b4d5968feb1df332ef63bbda6e226f8, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=b0d574fd4efd5d913807593b60fdb16f9a287d40, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=8d51540b3e406cd821547df542ddfcdf2e82f29f, strippeddirectoryELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=c4fb3960e6a09f5ff0f17b9f4a1f286c988d117a, strippedASCII textpkgconfig fileC source, ASCII text  4 RRRR R RRRRRRRRRRRR R RRRRRR RRR R RRRRR R RRRRR RRRRRRRRRRRR RPRRRjV=VAKB;utf-88f49a798f0f28c06bb472a192dd03412853e28c300ac890ae397b20b285397d9? 7zXZ !t/fR]"k%IN6cბbMb-.vj_+- bCt}>k_iSD{`H˂RuS[d[ZQad[8Ax12]LJ.g. M| ֲHR8JNr YV~(w [}tz[RV*Z#jSz'K+>m(y߮c+z`X/xX< 8T{$ ip0\/=òDsĦEhUTOҍ6p FW= pZQ |-ERO!c ܬSM-)3 Cyuuc7Ct5_*4QIX'{?eMd%6yE [>䯩R&%Ylag+ 3OW3LKN ,^j}u >G+쌰k4/q FYsAw0ˠ#W!X#}?; ڧ<̥FV(X7~2pCmaStٍI}8Y'iWa ֵ,RϻJx|<@zF% M~\],Z>B=Ś6pO.` *h !qqQrJT7/.I˭y߈PL4, 5&&vJ.`(DK;xn{?̭tҖPy*\I ??r.؜]M>:xIE5W4<^AJ9EJmRN:c9'aF4U]>Ç&?+~KNlH*w:O~!C2H..U:$u*=$ApB wܒ>4-[H7jsrnfg&*뭔pt׈RdNuv251Bl#5Rʡiv,#)5h'|3%LY@Nzo\tLu{ >Mw`TηJUE“k{l@cUrMDN-֍4Y^p,tJWLxr셦$;3RgK´~^Ecz%cɾns#$/-gpUK{zr|p_H3Tɺ&c^:ֶF}qt)ND?"}; B T}H*Hh~=AD<} 5"J:?Iry+HNʔZb+kA.iNߕfdm;TRīE ĝ1qc 2898n=UJn G!5uhLN;I7 r$W8Hl[D:99v~iZ0L+椊еT*K\HZޔoIဣő 3Ϩ =w" F. 5JOkliA灯P:. Kzȷe, A7n3L|ϑ >%zn7-j1~??ɾ0?9{^1 Uys0,njLN<1CS=R^&v3k+W:K5 43HBVSDrSGLu<w%R@Ȳ*."f#]k^8[+Py.OhO'D5r6-<[K$-![80F?)]\;圌ҫSU\r'. 7gðy˰P"u'~YVV:pHr^-a$yRAA G b]+Ujd[d@t ^ D¯U䄋5ֆN|.^nKb)eX˷@F}oϷ*8sbGqmmgv"PZ IL2kY$W2gdQO$o89*=JOZo`S;A}R~&YΒbs Ψ僓Iuls_Ra<r\ nFJ0}m4Π/0;i_BW>™SV-v6p皵cHy/y/8_I3Q%xp"·QK}D턖Q&JlBuؘ.ՋkO3 Mu¢#_Y㮎f&j$E &ʷѪO"f9őU y]cL+ Eҙ[xb0AO~ F;smL' e$|Cx?Q; T/=Ȯl0dw ~ʙ}[p8Gs ~ ݼ$Ѽ!Ƞ٭X5M7m &QhPQٷ T/K#DƒR.]ͫ Q?#BBѦa'Ctq %*jSVoX}70#Ҹ̞lt!xX}qe *Sz;~c]`Q`qQA3,ypN.Ta`nj~P5$]9 !?@Q>aM6;EEɦ)4\?XU4nw䐈HW202 ʩL]5+^d&°TNxyz'O֪1B\KvSQ fqٷSF>5 ]k/gj^grxeb?b ǵt5%Wb`3 F?}DMk2{RH 9}n8|@`CrJdW'S6K P,r P}>В #R/͠ gTĎǍ EAUYTHU]5 =Szr'0apRNĵv{R,\ y)iK"OKs+g<=*-kuL~s3I#M?M~w({#:NS=nk΀92!iR}JFG^~D̃|z/5=0bX"Xo~?I~O*kj%!FDIش8=CR=0(!V;h tY1"8#%8bOAoFNZ}>={.ѢZyz&5U1)3Ǿ%50sPI=F:C^Tw4XM@+|8^踟 4-ʑ Ro@"~CT=geq5.~gJz*3GuҲRjU<+dOQ Jvƕo7v3] u*U\<3Nxl~H-D1hd"ȟޙZ(9(xl~1,%]3H>ŗ59d_!xL3,ڬ:UX:f}G›?MNA[M&4,ajE+T-jkhqzmR#zOH}[sSO\s^'1N )zF7m;*^wi k~CW8BBP(u0[ +Žb-+@E"9gcE)|CDwy:i_Bbqha۰_עOI/ܝ e]J5z-ii]8kf[6[IğZrZ]MXݽu=du1}Ys dE1KK1zg1D ER60z Mo\&<ϥyWp^+_s(Pj J(=Qbo@Q0v(h9\]w8QJMȶn 2_2_bR1% Ch[ebgp2&4m(Q|[xE1wwf1)/)l7b&UC"HsKkBfU ދ[Xk=jfgxJ|Dur1tҒj͢vaIh^"iXz^TJЁ;Y[4R|cRK[t4u\;%fs}Ǿ2!}4sҙ"Z|"E[hN^*YTJQRDč( m(h cPL%ǭvA߷m"Ӷ p5/ NInWe*FCu%=u-* Y;Ty /kY BXy8sB&e1 zƊ%ER۞1-S/D&m*?n_XlƆn#1c+Q`MraQ7T-7C()xm 8'xiM~ZMMI5~vN%0+0W֮Ҽo]; 4CJDBDHg': spE(`~*p Lpf³_,rr Ep~BrgMxF2k:%ur_ޔ&5 rf5/{ Ϫ2ƢHu XJ.!\,-vT(-}gSxb$3JտIDxϣLFCJEFlF "#o0Cy[v$ï7mn }čJ!LVV%9ZSC2z*88q<&G0?&@zR(h~h,Jٱv 2VNЌ؁vCXU]vMjSd;@2JRݝ 8=ӻ籥޺Y+' ~QPӋ20ybf,=Zvqp"GZѱ$q7襣Nah>پ+jz96m+AҪrMj=EI'J{E;*YK1U@\2`,*^8hC7V?B.V`2MԪBDkT;6%hfhS(Ⱥ=B"ͳ7G%n~=%wIa;9^7} `5iscoGKb6Q^S:fH@}f{mJҽͦ5޻OjaiJaRjK>/qVGr_!Q)ȗqiغ6X{Mtc-n[}\~r!vjx8WlIR/N-_=rka泍?ud? F4K+ux@V7wI>Y(u#5xݫ[Ƀ(N|-!AC}>N",َtQ_Bkm!NV0]R]q" W6`vQ pXmj)?s'T܋o dڱ,iݗ.>`&?ĩ<D-l~/ayI0dpMv _@/uU/q@ o-XX5^zYR,VW%GʌUEL"p*TĊcdNXYM FȂLB#c2.^\\:4㯣URF6IU!|M *@3`(jhp79_^~ -tPH?*~"68S*Or=CTN{⦄J'Ud ^JYbx6̚pO/w $ll&Mz.s?O?&fWeZƴ= ԝj}"-ipk c9/EUsj"C1xqM[ː&D|0+&aK| ca6H>TLB=B#@YBuQ'w|-m}SzE 'y3jL6wMOYԕlo;6a+;|^ՁTgr 0]/__ }1j+z21q[ӁZjNY`fS=5=QD}Z"=i+DW;ZvpowW@yWN%ql`oLCE)$!> zu4]??)J~M@@+ߛ/7c+-YB?91$|{]epR(I>! &V<֭yzA*(0QQR5D*S}:_1Pc$qG⒰VMZ:+)̴W pOfDTsv_A Dn_Öo'5δi4&o޸ ̈Y`@:5ySrюFE& Xo;l,GpH]n}陛N.RAJ0V> cH"͓mk24=ZW ٜ ؇8wz nf *C OO_|IdωB$ Bd{*Ϙ7IcYHxKXi;tz+'6'4J> wjڝ>0τ- n]/D/m[wMj54&2n#{,:<3UAIwbwBWpߔJ!6`6?^"[1B:FBjdlN?;K#/p^g;5֩y!TBh _j7$}`vt6@X## ss?+P ~M-I;u85// |8) "QV{d𵝻d9ƾYk%mMgg-r։ͳ\VĪΙ (q5S3-X ix&=qc\Щ!7wC*xW:\6#ę=3ނ)/آrFn\;xC2mTl4?9iPq!A]N^L(t _As*W_ü%E*Og}G'3l&-:*+q@Dh"2a!Fl_2ܳ5G0$ُw3yӹϐ?V!(T1&Af;8 PsgLȽ{rz^ Ka5^ Tܾd*`bZ][SEԯ |p>P@=U3f6;6=z ղ/kXHi-\4-n;3xf&ujJ"uG|OhaFu|VK F˽px%#uʨyI @s͓KZqQViĨ]b, 2e65;qD?_I#xz1IIګ{KHV9j{Mμ)gQԤtOQt8=e)4&; >JkY6լk?R0l$}Oek/y{q:-̦hsk.by 02Q#a.A<tZCUge{G/L)L\_bӅٸF"IjW8U=J`s3e+`1/+BC;Q4{3RLkןՍYr[b=6i£ ;|-!3Y%ۍ+`*_fɎ"2`#@V,M۴:d5ic Z((@jd涂Th~ !"l;ȔQ YYTG SOpSƝAW7(;^A#9Tj V\EN5õOi=FʫXj2cBbUގvbM{-%}~w9Ӧt>]E.̺3"R=./傭0LTP1c?s&cpK~uV''l hJ5u{2l| dQai C,R D$b\sD3M$ցdOpWefgUtKu/4FzPwVSv< Լ m=-puBDw脿$e,8Apg=߿3du3[ׄQitXY6=A wZwogKl2' DOFF_teƝB^EѓJ䠕g1_lA;TiW7^-̢QGBP6| 3SpKRj;F7J*Μ-Ad\Zu;5Tx UmsuXHi'2z?Ak ӣn\Wr&nsS#;]]ns#ƥ8zǾ`냛s!P߆l_0JDꦖ3K:V9}.+nQ!$:c?s7LBܚ#ݖ_Y\Rk?u^- {n|F γ`k3't?$" -Ҵ6M 9,թ`WMo+D8'`KOa]q[nV^XX<{Ǿ6fiysU(_+nFBZw\v(7ihq:6LhI.I-/& bNB ׉ SWhh?>+n'dmro?*㮪[PY^ZO]V>+jo9'en @BzR0 ԧ>E >eRBK=I ZV~t$^{Vyف'iڝ;܅E9Q;s -GЁ7F>3PV~xi *XLc轐A'"PZ4?g >d_^"dPvhRǼG@~% . * MԪYk^fle(j67r8sJ9ՉV]q8LaakhA2Vuϛr7ğ6b!u_~BMbҢ.;;&kLYz\j008n3).K%ΥdTwi!cZZuDu4g#Գ%*Hkэ16FB("c+kԜMmL0Ĩ#VYJ(؆u( `s]c/I=8Rя]ҝ u?=m=&Yʊ꽏 ew{2L–0l"DWrU8\ QIF2 kxA"p0X@;IR=#CQ8|6mˋ.G7I7>[1ݴi;Rl>jT"gmem\ݫQG\WcuY90JIB2)J=1dܺe:.}vr8յ`'`|/CAF̐-)$.K/#ºWR_eW?9Pd14d ;A{ߙ52B"Mk @Xx#S"$l u.ru 2~ʔ(]i>, /iOzj:ɀh茱)=iYmRgH\Gu )UBťu9t~6ۧ"i4$8m=^w0?eȈeqG%OfeG؞6nщՅN*0e-{٠cKs 2znsMFxGFS t~+,174Z^_|b~~ӎO/%GYKJVAFϣ*KBsZ俧)"p3 7\nFT,Ek {d^ l ޺B4Tsz"y¸b'/4iG"2޻D6.q'/Z&?DxeTAN|yݗ#_}71X1p]IFG"("l_Z]*|`G hp$y Ӛxh>uX=?6Y{I OllD'~A;O@eߊ"w'[{0ovQk~cxb@ b@hc"J9ֺbTtPgPߟp8. 6p{NzXlH˭Ip͞۰Ϲg G| &9p1a+ Ë) cw#BOŒ[1{%`)Sy- Z -{sJTsvj^cu Mc:c[@GM&5#b9[,mG&D|s;B~p YQ)S{)LܿȜ CN5N]L~ {_ '*ikR8fu89[8Rs.;cDRb7H"'k_Z/DJ )Vw@ ܒq~ |2y7"Mæ ՗Z3/4 'jbD 2A-4 PJ:_:/F`-c]Tfepttg3 MjRC$jѣi`<ɋX+U\Uܡkm q_%W؜5.=Yr(N);R]gʽۘaQ:T6U P(7H@,1qrfPBxk f//IH=YvEPE /YYA yExr iGQ% 4v X6J;-ݭr#&`82zl FiÑmBzu-",\O~56 F\cZ֘m ɰd:F_w+g}BPOU}E O=0DOun(xG;~Kn Ф{cw5hXέ'>Zӡ;2paim-ÙpiXcqryUg<w-moMj[*hxqȽllMS(F}Va%3Mjƛ0:ޓgҨ6Ý|2RYn2 1{PYز[W$Z'L?&-[[p ejJ0@_>3c 3g.:Go壉w[Tf*ƣQ vAOiB縩Ua+.\/, `SK%-'֥j E(Kԥ > Hh}9\ ɐ o_M̾u#ɒ:?DR p*31-iUx%im J9!Ƥk dG@pOqFinN!j(Z۰ M+Y8`dV0qbq c?׷!EJ#eϩ| h[4:ifk)eijguuA-PPL iaA>' %AV(Qz (NJJ^ky.e}5U<;=ΖVݼ4Qhl+z̖%֏$npndYz팞vd߬fϝMURU11S_##aX"u;6_,Vef-߭WI.xN f^Ԇ8e93gǧjL˴^F4t)"P4lkwQ3\YTc@<$'I<'kӀ܌ ;֝n55t[v-nQ*QsW~LN/J&]Dlv;Y3!Rgq^7u-UqaGGӧ"}&})|)/@-_U!RDTnbaHLĽ 3'lLղԹ(!=h:6"_}Ű}R5Aff ^c+&^hЪ$c{6h/TAҎ_S,MvQO}z|^Z\i^ѲI aߖa"D\y>ecb0pߺUɉfJVC`~ K}I||}EKa2vxoQ`04j!gMY/Lȩ CwL]{8әqSfG)ܑй`~aE |^- 桮9pY״]M(Shؼi+Vb]$CZI 015jXihҭ݋#@&ҍxqWyͫN|m,S_~DMn09V4Mr.CsVx15Y-WhEQm̈u1SUzbA WY8妫C{$1:XMh Ѩ1p17 )Nxz~_5]Rl% &R|၂{Ճ.l_`tikodB1TxEŭb?^s&)g' CȚm.u ߼RFkE!ʹ,o^w|Lj2(9ՒNx2zܠ2bsɫ>mg|hMP^PK'b׏S,XXM 78þ=2>IÃG:y5,t3Ufp{^Zu5]{6G\t LSUC3N ]ԭW/-saDt&<2Ϡ"w}Fݒͺe M摅% &! lB8|}vzaon8Ôcp,2ԮaH͇Z楷!+W+ئ*Auw5L';)C`7C[ܿ8uv  $~xw;>tIgOi}(勮񔦱>MórV@жFEHw[HJ ˓]pfa~&VY|ߨ+\Aw=R.^[pm mX=pő{^%6]*x0vu^ʑCݭgHn{T'43/<iQJx_<{Fz|poW Y&^90(Y: /ITgdÉ:`}2{Mm J'yd{lD"BctnZRUI[(ff湯B1i^/O&Z%+ H${GƲx_9QL|պC9+h֨.*h)ʳ~kr/%[^w( iД~G"*'`H.~E@<]oCR 6WXP+i&or\a*,ȔYcc)P59uC^@`˲QܨSK},[Sh$}ξ]I'TDL;DrsB9GFTuDY]?GG;oaC(=4GU nwY*|M5t&&LE(J|\L}ν :sIk*DW)p`3WR`Жw5 ( iͅT~"xAԅo~<Kp%'!O)}sU`3Ι"MQ?.SQnވcJ Z6є6;Wr*ЀIdʂ zvW\#XJc7ߩ3M dHaW %zt=I}$;$'EJl +p= 7M 2k* tTs噞l| P^1q ]: *VO#p 5 萆?vdJ<'K5羻;|*dġnQ~gb*?w܏BrccbDfwN.͡ I00ޘpJ1Ѿȓ>\]FwsLУԟ&;8 w?q\4G娘QǠ'Nv[,)/GB# +p 2t8A(ps\~ʞ0UҬ?Dd С wWF5p9Xfx0-\<((gewYiAN^"vR p#4en/4brreFDJl=^(EQnXNdIIES1^e 0 3-Hąa-:97vgS.PˆԄi5fNB6*[9{UǕ[+o԰Y)&&!>,8! 3X`3ȫ]A|Iy|_a74@pWk4p^ho _1iQ:UmeB8>(dҧ3_zZ& by=} PE-p_RG%pKT@$V7(KcNNS`h,9ɿJwOt) $%WtFk; ;fMUOi,[XOƣ\qS,!n8 AV+]4]%&u\' rWrM0 =ВdPou.FsUd` Qg2/og3z]"5,=b.Jfw iJˡo-qblyz̗Gϳ3]NcI_vv$2TEZ4`Gbz Ʋ=QPH UP?C$Wx2jԃ}q~ {@)G9ټKx?<#+XVB&#0Үy;'U?X#ޱlJZN#ZDLr'pF\bf%eY AfBUy2{<eO J 0BxyX Yz4k'r1K!ig Pmx&[ܒi>Zz Lm6^TVKCROPKLW_TfĄcCstOVO>&mLAh?`* *C`AHKg n4&?l_Mܒ%(>#Cz@B|Qcc̢ɄiP^׎qw i%VSh}png=ɠUiX㇝hѿX |S\8^Eҏ<2ĵs17<.{#2lw:]Äɉ?tG*LvB5pg7 ٦d K6dG]g ZYӱn˘?<> z#!f(m|xtWt岲\QY0KBdK;wFk(&y*r =0S{@Ȯ7|wv{ hGb'Ћ6< ^a%vw!bi&J*J !QByZp7jZr([ R-:a*Z h+My9DTo? W`?o T_PX^QÑ Ra95`*9åkҜ ݢ H(Ed徎uX<-_-Q$<&'* 7KgѢ넾—^dDK'ϖ #c1EU6t~O8?[VzA|OMlWxsX-cJg@8d Ћv .u)Xp yaX?tU8ŤNBX8UI:W-$9v_^PWUfh߽]Lm*YMk_ɔ9fsR1l6sxu3 O@m,-Evu wdy$w$g( H7盿Npjkz* tkSף6A2.嗄>QDK_?Mn9]SC=>Ox'WRIͥfD4c'8CgWfx=~[SـuҚY2$*a,A6f3RI39r0̺'BǞyc)׮%owU>r3#8WVǞ)\ IrӅ uqŵ0WO𪙍+SxD(5e4?U6uUCWh[!#(%3m5-u%f YfdZ^c0Nl.O:2Dq@' C<I abbnl)R|ԗ]3Z#ŪzS'?*DwR! ]Ц eG'm_"vY*cՙMv?d#"q]R aI3ifsr&ڰ06`{8Pб;hSt"_6Ƅ&%Z0Q|g*Rb*4<wz!"VBı3&2lBHEE–xER+\ܛg.CI-^sJnNœD\PQgkg2e!,g|4!AYD0z蟤c%:K ?T]+2 ϐ :!McXrҝ;" /FlwBp3 ~ 7QyWcIft \c\-m6GwFB vzn-ޒw7L*ʙ\jf5Ͽc],+ŠGuGrhE+)o $x 3K&Jljy`<5d?`xIuSqƣԁ`h >kZ#$ )=޶oAgjZB3QitjMXZFS3BQrypJj9.\95`ۗ^tD}IP2alWXTY\~5D#0@YTb aX:%"bSHPE`MI¬1~g[%?J_j$(ʑa"+ع|tF`$ ) p rgg\*}4=K:VeOvC'RukѾt_ m&o @#Z[gi/;Z8E;=VO2VS_d^mO;FQ"8;51Ϣ!a)0:کq]SyVHKf[M2} %ipm:;>;:X/j Un l4P:kZ@kJk@0G+Z 'Pv/M]f^rgC?;~R@\OpO҃gXIO# iL3Qo ./Av?gDZXעq05 cVyΞ:s kȹwBB/nYO)NZI+ʪ tzr jc7pލ$þo0$A\z?34}p!F :A,w(zq0tlkH/Wd̔Єrs81hHXp=dgǢ?Y^Ѐ~"}Vj%n"2-aRGS,![g/'P]™R& rp(T)U>?80K%*_pL?*Y40xY#kJxqQ]!)CE)O!z \æ1j;ra=Ξc),8"hbvbܕJ۲4:!XirOmNպrFF`"ei){@o*5u|l#0Џ>[%>`K,W*=r()1` t~1^1 [j 8,Ι<һ)bXWE*B|RYFîBW) Zkp Iqh8ZN5$End =lDz5b(tiɅ&^G"=ܖUxT -g!cƨէ~!勇EF*}zѦtJ'h)s7hMp* [E殫b#[UvW[e+Wmj6:p[zzNEtO:гE;!~4,1LJj;-,5t_>y3DxWEABf|OL^?޻E.t> Op@ _DtC "XTx&hIjMToAH_}JUs~w sOLgFqP#S pu^#ԼʈD:csp`<~7ٵx \# {ue MƟޱ9x t#TH5IH}zq|t[ItW)6$?GB~w:Lq9CҫrUi51X BLoAݝ~fRsvǙK¤,OMꦉ%|Uj%"FqW`HHNiKv mBZ#)"X%.. 4:TQx?UK*9 #ĵ ^r/8^\֖ۘQ7ߡFF?MNϵ =/8(+2ZrcY pzcڐu$SEUoiTWH3Z5;H5XL3>䮓ak>iƺ(-sfCl0 nFeO.3Ò.ߦy`+֚xhEG{Oę3j5AݵAµ'nOh((ڭwOdFVL*sF.|pM&n"m9'hkn> b ^2G>y<8 &M$bt OkRP\e>ce|og콹T|]joo%L|j89^*?r8Jnܡ\85GC 17x2=8޶,*^?m4驕6: 5TbJAjp|nv4ո+zK= (c?;CWD+ -_5 A#+8"Y = BaIi?TuhO$@ڢE7 # }`6KX %LR||IG %.PF9˟Pb)cп(MMg,ede٢5OXQ24\E\3z^?3!A+m?T 䵔N)9="$ԭY+tSo^]Iw{{L٥ߤ.duC0pZUz : vfp9:孢C/=r M$L9ayւ zcعL>&L?O\wY@.:떫"ǭ2_ cN: BMY' Yg$Ch88Q!Ս$wћ`،-P}F{'ň1XOS* |hY$@-+~ͭ gUTIcu֢A0Dkk>񞏨pG ɮң|׏rz\ hrxt`k\0JPqM:5Jnz^5H>ҳ i2.|A6 ='k<ikl\Ta>G;ȬC/ylSjGd{8} ;n5  Ж$XE MVUQkƵ¶9-b!DmKW0)̵p K$uSZbmca|@ ~[Sn&?wȆD4} JTy"Bsii.0^jB1#{\w@$2"nǡZ*;t E j~te3fI MKm"]f~.|{`cnYO*g]ζڌ7.]W f's!"[):9Z)Oi(F]^ ~ >C]C,D֨6~x>R9Ӥ6dS=>x- Jc?q9,J ?xo՛?~6d3&S+A5o# UV,tA=B"In]4*48 Al zZNZ3TXAQV |t8lwтBQPeZoEF\&A%0W^Ǭ>úxJ]]Ib#v'M򹻧ZcQj &ٳnqj?=gCmY 6wŋ ڈyO0>iV+[[1d"gب,9iXXT%:K8LhBZ~q`(9garl }&)>Pw)T0G3t9j*صtз| y4/6zيC(̌J +~”;wk91ĕoݗxyQD~X5C; me{cm5rm\+yn`q=p?"]U`gq!3;R:lF*,":(+lㄥ&2Y&ɵ\4Q^Er 8R#& ^S~t',]c1C9 ?4 {ݘ1֌â>O &b0 g3gOk Οt4߾ I,։Eg㗾[脙Y O1kҾZ[U!{L9BCiBSR]5'uZW3$~d9hM1|nzN25Dȴ BĚʃnsGjiun8ad1 @'&wFK<_UF8 ,?B22#hfVs)|DЋ&<-:SKe Vovtsn=&GyFlUNMBnX,!#}./gz\T_:gTo UpƀH,(!@ EVz@ru>Iqo@ˆ}u ٥iu-=sk^d hy3ݻԽrB0bO}u=xBLYnMf^qkUʮf~NG8X+hGP9B_*ܿɍZyا)N3u]l~tO7@ݑ8h?eNbNF&OܩPT3Xڶ?_Ke%S:쐻ԃ|a Sn&xV )g{ w6ΐ$o$hśuyG, Et7T4孷o0m|j K:?$e-1Eo˹d/#jbIPEDir*WmU7V<4XۖЃZ;o8x0m|8'~9[E6=,~>l)w  sLI*mZ+HyAYxg3Ӡ3Uxe41xyF}kBSQ[#",905'\{\ ]`'ن7p3W<b=ж:}ٙ^dSA'GTkbUzi#.l%OYhP+| ܏[`H Us GtUc6^:aMY9z{Ed< rF5hW X;ئֈr[,$)yE@ZFT5h#^c|wcnʞMIf'FP2u ' ̳rG"+h&{(T'[z@-x%~;\Eg3Jyb62 gpޫnkS{3hwR A%fA誺(>@OlD_l@x7O*53̌`ǝ+liSj U &a(I?"eKzm**H)y:@9B=׼cCp3Kn5a:pS5XG$֘*\V:7aI{Sj.Twe`$9dǛ:mG"EԺ)߮p[{IX*5 dzIJ/ť{Mv2)bRO2$UlWd3 >ɘ*kcTOLes״DCWKg-7a{!rb-V֡|T$0X[wä9l@tuBpo ˬ(k0wE!>-f:wa Lr?~Pu m<7DNYXO,n Nxd9ҹ|SN?+V恢wZkeʋ]N۩蔚A9QmŇt8GAxgx5QUBp񦜣Esx}ኮ\>C`=*-.S[K0O5];W3jR3ΎĔ2:w$&<>:"B%k"*/BM,`L(gL7aidXfiXI;|peE'n-_4Ivϟ?-TWgXVdc؆; N~9XyZ+d3)@eui*ޱY! ل0fe[t^sqňsw̓,`F! }SgEVE;`ZXEÜXϻ+nvg~i$g~6ࠩn̕DT(Qf1v nqEK ƠKo˰VVV;ERM&tffG7qWM5l!ܦHnk`8Xw%RV&r5g^;i|KcP&6[B QOVk!v'|si$tCʵ~ @"Nx6\KZcPm=A'63@ ownTvlF<WJ "Eǂڧ8M9Oh ?Գ ~A*^?~Z.T0ɿJ[q`&~E@25~Rp,v~b^a!;3zzș)Bw]`c] Ŝ-'C&Y~ڈ2BV:[}hp<`:~߯B?IÆ Rr|='kgc lp fiD)d{Sv,INpy1_,5ܲ˭ܽD L*|>|05Tg+*n]ewzt4uX"E̱5u82Au1|hHM9֦y/̕϶;v:d&bٓ&zs K>~`>^nB<{cTPy'œsyE\ixU/]TCԋ614;w[SaV{ Zh q3r`S jCf bnx}d{A&A}H^Ok8I/!c%n] ʼ}cmXwӓ᠜w|ߺn)y2]0~B-B z|KW՞LC\d( ӲZ ׶e~ʌmJ_q2`}?jHtJBLMY@7/jI,5r@ar+hutD~CI*i! tW Ч9 DmV3r찆 ;M#ʔE%S XJPL D.xo֚T<$֛IoD|Z@?W2t{=_ԔobEc yp@/G2.EAhJlD8ἦ>K5bյ[ȕ]yN5 ^|ICm漵*,hST,u GfGH ̧<14Bj"OB^tK]Ƹ_g%5QAaf t{=/b,os 3b%.:(o )Dn"7Hl&V&bYO[%_a Jl~yFNE(oMP> Z5F_[sudGդ7hVmOɵ5@5 ab<` 5+8s N\O4slwn$/ 'XUU^vyz C?N_eeR/[9C ͘kV)F.М"wkc2 ʿqfA.8Jl72Z>X:jP"B+ˬH6>z(Yq]@)H_=TphV#CQ#𹿪V72]AJF6O.υ,K'+g PqDJv;z*j!MWk+2dBMszEK7_7Oq(%<njȚ4x(WhvK!WRA|yYEtU{t buF2>=Nc0:Bl9KmV^anWt~OGK9/w"FO%|" CPr; võk2\}UQ)ed ]0S6e^_(Yh 3 5n\=n3Ui?UsY0C͑Z㴷O89L,Baе\}9{ClЃH#N͌d~% hI6(c˹Hei^|M>FTP;̽# ^7=)]z f Խ?rZ ERBY .`)(fEX .Ǐ+Zp&S9ANǯM' Q I-jPj rF zSX\T4l8x9xMC[$`] uߋa(&*gݭ;Z9v۹%<뺡sTYW:YkX&vHb-6kd~i5gm9jp Z)wԣ,OJbYx;ȉiK BVڂ@jqM@;h+tK Fݹ'tkř1CCX h(@sg C~y!}yEiIfDJjYE!{g0ʇߛe1b IYZŹq#7'{1y݅FJ9¦l@V?ǃ!8WDz ohPo]7YaJڅp5ۀGZN(| 8TIgS[GUK:U.G؛Y`p|Qzʱ"{F4,1BE"~~  frˊ*Ҋstk3}f'_}/0J4~M|YŸ;2?d ބgVX.Mőtaa sn%:V;T魯uP7v:z|PNG,MwLeq,9AI:< T/o6[3$ nʍ̥ag Ey~~_Y[sw ؍pnX:^Q8hͅJvm`Y8نsZ7:f 0PCɒ唢i{Toma n4Ka0_$6Ot-YE/i4Y*+PI܆ɚ.B9?S-pmせj:zZA[dX8#4p^^d;G3,n.U9,ɿda#==LkS7e}`xsN;' jQpƈ1QT tD| ,xZNB{y## |^ⱆ_-ݱ&NNWo g| !A?ͰJ0_MJetj2 xsJ(zrE8TLjp%rCk,ܶMJ3H(f 얃O-Yt^i0B ÚeefW^T\'.` 󗣔"80; _tfkh>ʻ[֨-dh<, 1BnHfg]w)RIh *QnA{;a5Ph8bz[#~?idm arn$d}BќF ӡ2cȶ~* TsNY*'LgjF˾5\^ ~vQ&tEOϰ[u9v6xp;* 6?0,Ċ2OIV~/RnY^Xʇ _I$plPdA<#q$8hUbFHT;^( C cBW ֙+>J9Vaȶ& 3ʳWg=7|;dfX' 2e;bSxUl> dJlBKps^K Lwv؉rXd~PT/#o*/  Taұ\+c@ 6ؚ ,lҹЯ-0O pY'6-SX1C)M ۢ˄~.]-}%u5THvd}@[=(m JVq7U-׵<&W٧rgKc\AP&"=wS s6B8mW3/?ZUt4DP#(#~3w$C yݮ@]}aStR&AuIDet]3"69êgw 1#D;TF}.ܥ5(3G 2]b;d Gw\ՒX3'XHy9 Y'ԭ2=T<4\K݌Bg3MY§GX.IB1n!Gx!%e4J*j9eo3|L f1Ieu24 W9+|Rkl,-.c^l̠Kkb:fubZ`.0w6󲮆A4|ѕ$ҼobGjntOΖpKD#ӝXﱍ}C1Ko 7r҈:* 6tGE, !+R?QEH(40yK]ER<~9%RDI5.N].Ib- :sVá]ڈsҾҵ%og"amIdVBʔ&6o^*gW}06byN8=R6y)'m̨MqSٹ~^ꨯSZ;#^Zv}i<-!62!ҙcDj4v&4OkQLAvjt*_ Z X>ŋcd#Gb/= z=LP߄o([r FF{1D Wd, %I\,aYuE*w]>G-\Ob}VND:T9GT0bC0zZq׾ҹFg"m{!ňǟI=+T53 Um &%sԧ9}~5RP+]ˇ=eW)3x̓²v y ])]X60NWƒuГ| IPWZGʽMlmmcJ"J9,%M"q_)%^!raK o~2p ]|jYմK*SBNPo买49Rg+R/3Xe/sOxT8qjPQC]sX;*˩ف]ݽ mM7Q0Q9 pB:Wr=GWycݮlqe^ 1!|S(y*&gsb3pִIB3Ɍ89FQ4bTĒo_9MȢ T+>9/:HgM\T\ᡩ;h{kc.9Ms!a+Ŷ$#TrUd.fڹkPYsR\ utAd@:eҨ|^_%e.Bm~}ICGމ_Kڮ{߻w ɸ0˼ɭc,n1+(p4MtU: y] DŽr@jd$E>%Z -Og7O H'|vBA$μձyލRK>b%YӅMo)2[Pinx @ -;Bj0gH,c~PJ(x\}xZLα c~}g:yV;0IXbgYaNxmfJ%qu@AX<'Uͮ+oF-p5(VMs6O++@V"j(^058Xӆk Qe1(ffk&㷀fL$;f٪G\"̜XKy/ b ?>)]d>Hw >cޛߌZ&KE^|KN[f3hDGwǠ%evnlI@܈Gלe{b՘;fX4(ѯCyQ-oC.1۫ ;C9@hD&N$V rT^p=zaԍ{ҝ%*[tc[21 }į=|(luI Vpo>W5(3^׳ <.=GB%пMFӎx{-|e- Z^O̳Su\h!OuR'g d yMs~wS/D ߩGD t ߣ  Έ4A u!_2~u_Thg)N$3Y@ k8thEš>j:ddmwܬZ뵭}f@R xf_{<:U>5-ҲW]xr<وNo晘mFBI|ق$aWdjn p>`x#SU0lz{p>\K|a87'arKMOY1qh6-g*p n!'ꏼ.+%Tm#kL ٲ!$ q#8!"&TKM;Fч+H҈Ѥa{My4k(%]=H}F_7 " Dԉy2Jδ"C?P=N|,$ʝu30X3mғ16\p^Ѭ7GpEG6h>TcЀM=΃#W鸞c)X"B_8dt\]\F<@L~Cړ#|2 ҂W4iq!Me8l ʊ~r |V7DNAE"sZ-A%t~*Pc(ʯn,@Manּ(b`P P۝J؇cD8~MWtP|7͚A۩V{<%O~i74 J = ]fvJqVip ˵Gk95f 1S)-P$F7BC  :lj HÍ+3~ʎ^WB>_:eCV\asӵs|ϮjsyF;^ē' %[|x]C8 CQ%-b!`ޓ5YZ_,J-w!됕9pPAлQTs4;O-N(3xT&nY=UT‚um{C;c!9UZ(TP+$mzܡ4T,L滥xIlY0_n$UsVbyTy{[7ox:}aUXRS7C7 .MO؝*+c8h:f]L w\ 04XOL%ћHjUr^&/ٳ+{,+vx+ECYЂlӟH /Jsjjwoy"9  r4jru/׎h@yx9 d$8 mnn?nLvG M,tg Μ++-z[ Jlv.G2"X0uˋ.H Ss>Ne[aZTH2]Dm;!KajAx}hh^H;ڛtRbBysXX[LZ 1FHφTbG^ PRaAt eLw6֡GrRts֔],$O S%` )FʇIn(R> 3VPє7@gT&Z h]XiFcurypz=6(fɌKr@jr^DJ P:bs=> oI3`81U #?=#6u%OItJW_B Em0Stxs7A;>8Wg7$*CZ:l{`|=-gv*HeǗSTf4Wۢ\Ѹi{={9:A\ ;g6n k\P ;cc~`y_W\y0 `Emk,liIGMG-}ǫ`_l_@w!]E('_{B i|cQri̕@L>;x: JHPYBT2)| Q4՟Fa)Q""nX/޳v]G9WP,,m lkʕJdzgKӁ[SB17p"o3]Ѥ2c3Y3gqMV%i|WJUD)C5=lGsXy| Mȼt0d_}f<එ23Ҿ3 W"5lAGa ]|Kتvˍ4%Ͻ-Lz[déDL>ɦSdJF`Ho=y'!B (f-#!Ȣ;դY@ 鱵D}: -]&Y> spYǻT *f},^eĬ_3@Ow*BH{-1&v8>v2JV`Q9HW6!j:%r'X 5w 8dmW%%+USv,|1˗T͡{-@N&Zptdj+(lmeml̚HǸ ]sՃJgJ CY>4<#2RBbiC*uOZ\_T=n%n(Nw/yu y"M\XTY3 OqNf@8CFv嬕DcF2E_ܙZr-yٵ}B]+;+w.Չ6iz:s=I@OuM&&};~{j!'i?;P Z|굪uRHdꛧŸZenfIRvCd%p}lj jBͷTlbtۘ.g,cuA 9Tn_ j1[5WK|*tcss.(:GK:>!YP */?hORTIH>$`qpkxPHɘBnvÏ<&.ᅷlJvƴN̴7ؠ-P˶0)㗉}[(65?kd10-;My?V٥4TtƠ@^&b:CNNd Drsz{f tjG ~W74<>60}ʘ /Ɉ` 4 #$ Y(]v) +պ@G /Iχ2>ڿ|΃\##_ЬVv ˟fM~kp夻YJ`h%0^̏whڰFrfs}Ƶ|2Jwv2S)-#/I3IVC[ur#Mh4{Yن Ya騲BggP]l2&x PB)E.U;K J.:T9eZ߼Kf.ܷ^i^<A{9ˏ3IO_2=K*GS'hGĘa;GEf\buPqFp=[<_dL'6(L%Gʉ g!>#>KWPxuS#~t`ɴ)☵M;O ^$8y򨎍6R@jo2L8]==Lwi "1!|\;n`{.gNvD)7qm# rQ̀rvkZa<<_1`=3t#gOuSB -.Z~%oI'b2HV_cB5znߌ1ÒpRz_(%;ZM*FcNwй& dM=PwwWduU=C;B!*  6F]\Ώ<8fɓ՗kؖۓb*&*h$[B6ekFyRuPTEgc*v G9K\~qu^#.)>ugW$ eN;R'\gWD}H*1,3M#DF~.*&C'|;0cۿx NS0$ҥw~=9''խ|̥ E ·inઈ1v%Rr?VH1j}Bb3rdpCYܘ;`K㣔dwNxE䬝ΰB"ҪV]0WK"Ƈ2y`O";Á )Fs *eQ@/n~,/Y3~ xfvB<z{]K^# %ϥ8k)!D sD%)H|cQ,Q[{nEG߶\;PJ垸e0+,-]s9A!Ӥ <ܞsL~4 cO)(DO?`1ਵ6KdY0>s1/fB_cツb>^nm5+bή KlFIiGMPnêw 2b*!0:}] ::u%Aѿ-?Chq-4(lnǚ$"b?S[%rk уk8uʏ6ҥ |UA&,Y/v,3C JaE.y7R=2>Xhcì\&SO)!8O]"kt:`e Q~]!`P ?Ktdad{>/Œ-aη`Nͩ&F~]LvvLuڢH.&Eߠ%rA u\<(QF+(C49G>ڢ@oN'~%ą9rIRN ~h?sJ"E''('}((_GNn] *ޢ&sBz}c9{U<+<ՖԘ"|ߠs,<U}\gUg[]#@6T0dٽt +,%8G q_3\!58zu<.{㾇H8jHT">ݲ+Gg\cjI 5]Itp(([TtiޛF5]2Z'Cw7KY$ -#M*yXVńȖ vFݜOw+󫯗/gUD"MMErЏ,֥wJLfsX>,B-=5^5T0qzR!v y1My|`4ww4-Eh#$K*[+ZP:0ƐU{MŎ= ^UVG-}%X%y`fEG| o\0"I!+G;2*aA=ՀɊCa)Z^{^58L`'uof캃b4!Cn\ 21UFyX ?U>F y"Ktz*j-L$m# :s,`܇.?aYGݑ\T;-9e&ܓ_Ǖm[z^~0L}uUQlM\=_33|)=XڕjD}Tg+rX+- W\Q |Z:8֧υ+?;uq%`,z< M[Hl&W`d5xUg.c b {S42iy07S2@--Jfg@)yXi~Z- ÍG'```rbd<ݩ> z->:V@wb[6 exNKGN[&aCRr-RZM vr!+iN8I#; #Yi1O?.cOӨάWm H:`= i PrSt{F5W~X͉)"z9 Fm` iw\|Vsa62$NPQ|LUp1Iv.J|Ut/P B)t1bږ%YbG撺P?1/(|XӐMwC73i^tgsٻ^H:FN(Z֔R 2}tj(m\!2bA_(b/fmqphщKd5*9%.ꈁXwN^̍'Yz4"}EQ`ej2rg5zVuz i[ 2 xQ)sm2M4Ë$yzb3^VOV.{ rޗ76*9e)Wɨ j'y-0Gf.G鬣Olfq3cĖ֟d~+[iKSz!O] Х"hǽAԄR*x(i^F{Y9NS`^7{W!o>{'Qϧe@!PWVpb ҆?˞#(Pt n9,rҢk#Gאx1[!S͏GSQ@QMώs|"Mŗ:b< LE Q$:<uۿ&PF'vOLHI@yPaU1`I4=bNKƃn0'—fcJgHa"r~ O"4+Q ۓKĹ-neϛǧ?͵Ie7V[SWCL5{bl5{unjRQފ_g wBe0Ty09b!U\Sj^z=33A;Bs%*߈I OPvͣ񡛎^S~Us9* +s?ZWB%n/@ҩ=+y_VyљdLw"1|-.Ґl:v{/[B}FoU*p;eڑ1fU,[q931?UK%YZ@CLe[=Ifn /r,t:/o5hgٺR뽻O `(\-V;s\iͤ8\ZN|,6%\&u@u77 >]Ov݆ԩܹlmʧ@¾rsc^B{>UQ6b[ţ"ov{o,J68s s{Xhŧ4>ќeGәicúvJv}v&ױtxw0w5C <[ oG.)hƙy YKà&/%J3)z Pg{)TvSm)'s+Z9΅'=,pfrTvDu-:1%~8y'fTb'\G'dS/` #@쇔 HJg}UB_瑜3btM w̅fd_>N?;!|oJ4voNolvҴJ3O{šK+T]x`]$&;p0wHͰ9THOD慃xlv^~ǸL <}V޻ंû7K}SU6z"w))fQ0UMyoY:. œVLWmAO RR]v@bB YTDgo{ıUgϓ a hMBT%dx34{ 턫PJ[[KeI.CZ&rڔt>Mk!ٚlIlD7 VG,*q' P mV[ v S(k52_x 9nj@r͠ &ϼ5U ,;QLs#œU#.<$7 <~ ؔJΊt6Z{~]T~c!6XP931ֆ18x=&Q?T8nD ~4v:τ֓}S7K>桅R}Z*|n@o=bFҒџ;. z39Wjvm]*,Hm:nigx$u(9ADӛbF⭨_]]GhwQ'!f9i;!j̄HF&/#r8' qYZծЇAO)W+m r@ Hq{>Ղ{K#Ldx3d}CPfD_d97o͡},zr1 ƂyN j +Rb#aW8m+mp:*ĦPѹ҅Lwfhj8Vw>(߽u-O3я2SrEmgݶ4$o0[jnz{oD$JC&jM:a&?1fp"e8.|#g}j|h 2‡F?dkւ9N/{@lO8ی,\ܝ23_қp-j)y_ QнZ.k)o2ۭ,i:+0ɵ~ܩ+ 4 DtuLR1> x6䦭#DfPf!Sa͙&䭾+|uXiXhhUL!O,tb xx?7m!},BEsk|g%N$hp7+BD5󓅯9s%2o˨ #>ԣ WA%J1m\~" L.6)ViHg/Vw OIERnԀ.'[v^6H '{`)]en @bEqaB'viҿ Z8S!HńG W]?=,eRRqFeݭJ,"'J|,Ѐd; yOhZ]BCƔĸވET@U2魉h,n uf ]ع3i EФeUo7,?SOtj!`̒5_U\I%vlg#SuTD1 lRT\,<)UNS'*|<z2h,O&D#,fH0JcCF'B47B۳um/cO[?5J$S>lo\ ,:^9f˭f5lāۗ!& JihtC06s> +fJZ,D%wS>X-Eij? bZ̴&vvXIG-ʇ1ASR̢[u焻̇PTΑ1kS)&\,xf0=r ~2xd.r$A<2{[4`8ӢvKO]䵴L6?6@S} ! V$_tdh 40 c|4C/cis`t$jeF-V,?#h1ӌ=8Т}Z(=GOaāHn+xe DPHZ)sf56.'4PoG,! KYh3!Ms1~+fHKVaYvxHrc=Ξy dZ8ġokp'bCl񻣘-΂I"AxC\t}"pXu蒤YU߼ `4wcjY{q;WH*H|I ==9pKcs29/>$򤶰vnC.qTSq2aq}zR4˱gg:kgH7$@"#RUJRLC]UrF~4`7gd sOUYAljeܷτ tZZ+'rgr +2K`+u>S)&g}k$nCXO9U(A'qĤ(6_nBqdBϏnԶ>g^DʔZ:Bm$'(gyp:L M0\waI>+ fu: [ճ'LgEb 4Jݥɓb`" ;D(6Vnm‹]fl5΃ e⢐PVO>CzC?|dCv a#nK΄,6_pZKa%C3PS>Spx"m t`ͱfz}n)4.*BSOY37v3Yh.uoc۝H+`0"h`֧PZfM ǿ{0yKˁO, V3>  1QƁۗ\~4gr~Шtj'!j/ŒWUu{BT*nqݏkjOavRh+{>\5fywH3~Mb4qF3sLxX~q ^O|@"?Ej{/:㲋HQ:L뻊P)CvX<~+TSWc?6[Hmq&,8Ye~ d55 u?./\b?1~É;dH Ftt˶-oY^<bНt5 $!ǂ^=%( y<n:鈖2dkѵ}S9' *~57>u1QT UvӲo@G %r5M ;I2y79`]FHOiO>6{_j^QK^><` 3#=5&n(݋ 1uzJ W**(?P04]Ll ג%PjP&qFj|Il|cJ[+Fn8%n 6f#ikqC4LoH0jHneNs-:e/aW7Z0sg mnS(h"rkpv"M+ )a*=8ۮN(%G1\s|k}muEֹN]cAf 5L)jo 4o*3q,e#_CQwguEg$ǭnֈTg(7;ԇ%[ ] mSk7D+FάⒽjJ7_;Ƨ0ج\.s%~v%W^-XW2NVhDXl Z/w8mn 6aEEw9L?cnF`R PTmx[cz/<QTN٬R{ \"yZ傩 \R#ĀOUBޓɩ XGo;~mhI G5>^0)J jtCcokfRv2TZgPU_rJ]8Ѭ~&}JŨu\\YjO\/+l)\U=+50jnl}57([v67te MO²~]sH9h Vz:)Y/n=Zz1۶Ts-y3seGI:A_٫"Jg;`v N!X״B>7Fg١ߝ`R~:Is8|dB',𻧨FYlABOi&l!U}ރDSTvƽ!_lĝs|hooZU3Pzܟݚy,Q7hi?cvs.7˾;)}zsGa*Z~?PF13Pi;:"yip-ݺ&'/R,J鞑&+t|1UG][c?̠ҰoY Zgai=: &z_Mzv;D$_GbbP-jN93eaȰi"1XX%G=iKŸb%fsXF8zBVhp!.Ul/ŮuBq&hxēE~ btuHؽ/$jEiv]hgiNB^gp{ 0ƖGIhN-QJI`Z&xlB:/go܄F?9lWYjӗK^Nۡ嵘_WbPՊ# yRPo9x p 1'2aK4VUt<֚a@Ӟ#rn,G MÄpk}VUCJOWKߋ*>^"KGǗ u ֐\qӞC+#(/Zpa;ٿ`3J#Xnv2KHr]/+#`jupjkw@cLk?KP&5Q_T7)1 (,mX Eh[ y}5a鲣%Sv ?n[֯aӀ -!f{0ucFhcHҚ6&} ,̆Fva1hIt|;9ckh?qYwMCph'TGV81NQM%I  L]AMbTiE!iJ:9;X. @'"u?CxvRhCɵg,\80l/2P}Ϝ7(즻͗& =I~5 F[Ƴwp/2JIORݖ4^pT\mp1mQp,@jiS77!IoWV>Z]p1ك =l '&65 $^"{ c+MM?!Я1,QN[y~ECE^(o0 }>|D]yxmQ&,b&}"FOfڠw-( պ:QUq!a3vBevȟ޺VB{ 1mys<.5 *<6M^Mj+i3aivʊQ>Q迧mW^din5Q1~ZvE"N:mm<~(ހӅ?4z-ʟ[b)&`& qū{s#6j2G1*r+Kv*X"s|- 7A4Z_sc6Xv=4B*ER 1dteP-7("tyKNu!Y+z}leLҧ:>-d/-M-ZiP+_8Ҵ9grgw&5y밈KA3\=|֨4лsGh:ۥ޾5*)~I2JZLt'Aޝ.bԓ*urMEzv}R#gt #r2EQy1b~8 &u]PAkr`X5)g w=rр!|a$~(jCY`7t>RG_'qKgh+d\ ڴa|V T!Zid͓2dWVhvpv`"mo!4~4mF9F-n1d)B|zmpB({CG\;aeVyXg>htaK҆2&*^[:\׫zABt>eد͌kif…ұiXb?Z_CՍzdQ$qA3)lƆR_5Έts֧ǔET:Vw%9^ 8u73 ]ZqDT(;Z0II/4R!1i<$>,E ;mb#0$=LYacC6?A3(EtYpVfR1l`4ia2oh?z[CϢdF{}hĐPg(9|+uǎ˟)zr\q3Ipx-rYUC<:܌g1ٽc,B'mEdE= }dۧj}` 4`{ W3 VcXpX@|EJ5lkwf7`tv22W>GXRo{+a߶̥KLTBV'NvbG^&J|Y Uߏ6|íZqK^G6MT= d\` 'ǹLnw}A| `eiꟜ|JxsPDZ"h¥[>þ{'[$dR Oq߬ (j=ةعpbFv$'5CXD&Z:lu㴆f=tI BqQ!KBzeQ{I<iZK/F%;Su')FA|B,u0?\+jL^uF}I9l.g0,I v5+tHߕ- Ln!F4+ゼĖRiEpAD GIP9(/~vfHA/۾ Ēbe t9׾#sZ1ҟwEQN3JS5ٮjIpzvJ6vŋ4Hy=\9.I=/A]˩$}BO3%Y/=(cb6]{;U#HON[r{:P,V7Fwht۾#E#7Ĵ:|J?^g8}mùn(k;vcHñ)ڱ䬙.[dr:#.ե;3*N֋܄#ܰx=H![U~xN¿.<mbr(HǷEdĹL"Ռq/{1!:W s&DF{%z"Y%`,a)7.@ bc 78Wm 2wue εDPЩM.dB.7ӤM"*UOJ E('o2z:D"lb m1=c懶ibxMSlaXc|pF=xUϔ 4z u@&۞mJ4뼝&3ݕj\,_Dm)2IH騦\[FVeOHHܰO}BB&ͲzQ@T%?`j9:e*YyB檓D E x+ZI>5dR^3&)МC006E.Lլc|'ӅXsKTVzP>Jool:/2J~wט q)HjsF$0hGhŤi^t |]p&(KiLPḷA]tvU 2۠o ]rYEf]Nu9&l.vq4g^~s9tl:!Nz,xx 7WD25]ʆx"~iyrD ~f%.@)OKF{2$'x'(ʨ-,$KܟNs$̹ QCx,ڞ-qԦ_ˌj+\g&mF#oZ;{\l]CU-+`Y78)L'v'bq?2! ^)3v"1d >t(g<|^5[Ilғ,RDzز Q^t2wS,(SnjmeNz^Y ;VF̀6ysu'xGRA'[)\9Mm(q|,:QH@wjxu!d16g(we<ŁnRAxI/w!fcBq[d߁I Ov6?w~ˁKHҹv1Gr7}std3 Z0W f{zo=1HZC=R4xpyFo ЅRArDWycO.;罃G{4hƉ-j2=#؉$(Tw #xkRk:yq}Eݥ2ŰŋUT\?w_Ѽ4*? p;jQ3[8؛;m`i"O+XI\-rWt+8Kql|n1.Ukv Xg]ts;aA$tz*S =|rhܽPGy# mJR7.u6|"AK.o*)G$kB M4-7tW Ի!0٣L#{-6g=656Hܱ_@XÜ4@#\^ǎV> <v%fcGkɴ,\''w!pCkŗӈK}c^PN S0;\MEP?l(>Cۆzw?WY#e'X zťh|ڨLǏ>էyI9hE?rpX3鞷Emy-x.+;V/-sryKP$"R Cg4W,#؊-c~u AtiXO`=@v1gvLH%102ap"ZNcQF)<91d#RA?p{>=Rz!Nb$w_ q5O!f⭗V =~L,C)k!EDtG3/WFdu>7 T2^ s\)5 W=wYk#Mx}Qo2A$Q{vz߼3\LqŜ"M#S owhZm}luw|vzTEAr#@0r*&<ADŌ5dB]`;ɏw:\im\Zo=>RpKi{*};Ќ?ȥ|2m+4 ߃Xޣ[X6'YWK YH m}l<_ci99\1$?*5:2^`"nd&B0Td-FlkdL)d/Rn[[m Jhe)o]weXeA[JP '`7HfnF =R\ W<ȱx/~ujutJe RVP1!_d[j2c{&7?f(oΦC3*}k)Q=|rG|ÈM l`Rzt_"׍+e ǵ'QRXK#V)9+[xϣ~g fO*-b1q*.#mnj{"S^H#%y bЉ'ѯB5͈5J}=L4y%v iT,iIM} =t*Cv_uK^=Z1+^=VHJ88J{c ^PQ\hL9Gp cmE-/_帻@q8W%D"ڹ (̼4[I̹ O~plGl摌uܷouwU:>܇߄Di𺌯]pWPZSH( A9:5 Y4^) @=XLȓzyIeJv5\b@PUtz0_"8.j1RB[F/ [X ef\+1C$`؆`#6g6$@6RZC 8:{;mmgD𣼊D 3r+n'ZrG쫪&ܰ~-X\]fdO^$=F UB% X{c6ld3>t JC|vσ͇övOլŏr'Փŧ( d!/R[fwU~c 1{Ԫ>Cw0&muKJ3Qt2ܔ9~` |I1(t,rX fJ8\tnUe#0Ⱥ?0{i Gj4"*(|Hj:ƉX >n! |ē#VK̨jc΁RݷU̹چu9T@6^wQ+4ѩOf9fy[EAc\M~|xS }]t-E-Х՚̋g\i3pINlg)t.{gVܕ/Ql xk-,s8Od7IFӁҤS8 |V.+SPLvJo#(`fM,@ٓnVD V>jD(.lD?$ aY-]߀ވLUy3 xC_r&\vڌ{gdh"alIM;{,LR&ܰo"bKvdX32F3XJGIMэ,|WwiW="|dpZ:^ڽ[dkM.]i?[, p~w7V:$Sn05s(ˠ0^g#@L:O} ݁I-ӻ%-~!&}J<*}] `pg, 4CV ɷk㍫k=Qסrp"6/\::D14,%|>T&Ÿ]3xfF0Kd'DwG ٲTfų9BwD$PGf(`߱[n]H'n~w^1֣:2HxDl@hI~SZY ihH9WpZ:`uiL4 $&(v&v6ǕG p( U#MLݧ6ȨȰ⢆?/i(t/j|4n: ڧF[ƣP+α&yz- CbW\-{+G?!"%Gi6Є{XNct+?W nejFࢇ<2khdi7ڤmڧ`WN⥱tdp QhB.A4-r4Ȫ}W2|F2*vMQUa]-F= +e"{ѳ`яYJyD,ÇȒR |?zޡ`j) =V<QW>d~ -<۝  #ʢ.Wغ#zXh GGn{dA0֌VPEkI}PNy N(:M#,K7j|f8V5m+GbaB$AMazw zHsRtEd "?Js[  j'~x \6-x71,žm.b =@@ ,o=ֿS @>4o?h̃)IT;A3JP)MB}GwN>P(@?IcFjGJ 䦄TWx\Jۆ͢9qqDԆh+ig#q^{R_q1JݐP\ >ޯuJ5Si:d+4Y aDk:ğLJH]ꨙE8ܜ6uNVWRps6ِϤd^ֻ4+} )j'=iٍcS䎳{c` 1**pվyRJgsdOzd0zYX4NEDj<bqҩI-6o9t:uZ$D]f~/la dghc0c% PJ Sȱ_Yʍ6zqD]N>`h0n}o &GLocNm,V̪eDogk5a:<7*XXo#]YScB%[ /碼ɰw:<9qO4M_QY8˥ *;uv, @Ex:8ӆd+NQkw!<"M@Jtiĉ8azN6ר0Ϊ܅#!% 9}AՔZTJV5s\+5GNjK ٕpآbL6] \_#hD4ZEw֒$?E"5rSJ Uʑh^=v'91E4o ,@Ɂ"D}~ś@b8[N Z`WKؐ8 5.#Ymk@!X=H\ ,jG̽"ach}{wC`GFxFtVs.ȅl?Q"uDZ +=>ߪ)iHxzMqH3t܌_LJF=z SFHoo`LBN*mrP-x|/?f\{ն.|wW2ǗH\TW4`4#8P sնX8d~{`zST8?H`Q\+&͠ƻ.Q7^5 d,u3F4Λ7f4` 9 ]zݝLIoH[D= k11ɶm'dU"\yG๶xҔ)v"P|kf26ss؋i_evҿ 4FϚI)3Ѡ}y$<{q_T!ІnD D`]+|d0H/KbW|XBi7L)0-~Mm8L%3~׮uA~[xJ߮V\۝rP43@A콥+-( nn0TU-|an9񘇷k}2Ad-wHEywUOqHl(slJOO^2i+E}'Vd:-E_O=qa4Z$`̢݄G#U78cM19/^'a3?A7P_ 8Ô!wq _4J7 {A,*hN{aJ];(j xDx1OVJ^@5Or.Gp<@DgW[#9@ fV .8_vß,Z?5{)D܅`SDJhFw5Wjt ,Zi=jКeHϠ6(j3>V!@rU{lGv Cbp>tj PZ_£SEFBnr!u'P.@d~rCo~˨?z~8SPxmP>Hg춈kےJ+zѠҋ$-5+0?DO&'Km_o)5Oq]?dѨ ME3&/ w<<^EZte-P!aiWKu•/ۏIs8es>Ĵ6L;VaD=f͎5q`Z}ϽL| ApiNrWOXg IGFHz⟷*Qq$ "Jc^=q82y3#]^Wps&W"nX)rV&g!B5B{̕ E"MmW?c`*s[ ވZأf͑fN=(^E% <Jvȕ9dKMw-}B FRT}"dѷ?)\sBak#H/| I}4<8.ԼJ\7[a ;O $ai`~8\kҗ.ʀMGJI(P/(E5m9{Gt\mxWG.ؓ6`\}2a("1舞j襤CaFB/6,tY(OKKRdv&Q=qҮAij+A|RͧHQuXs{ k;e+FxC8%(`4Y#+e"IBw3ДA5CQήP%-I$L>8SfXDx'ĞVƤ V=?tĈ$c7^ l5+h t_ڪn*H҆Y (³=iNbӑDd(X̶jkhsgG$~*5T,iOI0xb`u4N]G_o/y&aRo|fJzӢ_}.OX>'/T^mԫe/w`@xP3vvAW^ݵ5Iv| !<*[ ah]nAa}" ?bOʅp2;)HBgga1"e8F篊~'B_/' Zӓr}q V)^}g79%j$BV0g AJ̥ "0~XCE{Da/ucPCǎ~d:b#| E |1,(E gÒŝ'.1b)T_FwZ ٞ2|]b=]el#'w.&%uaɦMTAi!$b7!uk."ځ$ Jakr"rGh}C{"=Y(t!ԓK+*׬_}%bc4,EvUY 3XS,RqɕDi2b!mz,KUÒUĦo-1xsZ 3r,zUpUx&yq0IUU>yAhMK\r y3 B[AybTP.7D9fª<0} J~yQgFimUSВk tԶnhc2LD2g*'facZ2\W4}4\wFIlٍ=G4%!tuwWu xކe2X;Uyd6jnbAz"Ly9E5Ћ$p'&"s]I1;:lu6(I1eʝr\k9ψ fu-Xwh xnOJ!iA6 2RW횉65xb?49B;D`l<[iGli/b7ʿ\Ob筅psrxM [|s8ܻ<։ƷxIck/K_lNs@'J)m- ,мOVWǻQW،#c|u&R<vKJ W? XM]~wNǩ:qRXX>Ԟ,Ǽ-RA?1ly\i^o)hj􈮙XgZ'ǜo} T.x:Nҟ4/lwDGӑp7̓!PEgx\r3-a'`DYi}R,T1wz~REiXABtͩL"U HHKW#B:H[OኦӌE̸g}|d0μuuVgD?O06F ]%?1θb;2 }=9FY*b$#?('>|gr WYV=ac Pmgs@De3ۆV+eƄjaoǿp<DKC?e'sǻl/TCO uQ$!͜՚b@=[0+ZCˇ#} 5^ӎv_UHd$Np  |RXDI=!?rF$1P vbAȉWX4Kq\5ů-\\lfacPT)|V+hcQwMi5 qA==Q\8 a(<e}9x!=>z8bʛFq7v$8p$z=/Î|x~HME| b/9W/ /vxHtPsh\xyU5iCzp z<%R/wj0 uY8$?bGn$cv?/L.JLO? CZh5d E,xפi%CPa _&Ʈt9L8B.zֲrvsUQF!ܿn"*zhZ>\)=&^ sƁ?»Sd`X D</FyEMyjPL\U9\X'}u.|X0 m1b?U"hBn״쪛O)E(nVI"'i# AO& PϚrD8ģ34z,h]!C-#2Nx^4k* hY{jҞ :j\ LShKI"u /3:Y"O->>c?v 1WgY=gAobmn?zE"E'^i ojƘٸ=wGif3P6, __%"? mQֺ֩:2񁔺0䉶4(ܰ4u'.1YCh\Ĩ}<ųJOTH Z_xg]>$Bi (ִ؁]:ԯhת7POn.$ F ,-ށ< Gn,E?limzHnԊˈ鸵u G !gm3)ߋ(}xX_nTк01@/A?oNT&$zzԄs8%Dػ0xoD?=bd 3HJ )֋n6^_ՃJydDvЩBXan (!Xq4UC/%$A=_/|)\:{d&,ԍ6dwskQRuK-UN"-w]m9D7BH?Oz{U)hKY-i,Ɖ??",A |td^_ ҬEhˁɿS( iAXj˕͜:5 Y eA$X+>@VqoG,irغ Ml߂pVh\~~4cYB9#gH_˩x"F&ў<=={(gJ k$ʼnen&JrYjA \!wSoY {7+wD7R*37o3'%q=chBrg5ZH4Ʌ!J4@/l~;MP'N;kjbp FeAa5R ,Z"2|T:۹\9*%t"T[ÂЌ>Ck)nϼ:q0 qJ \3ޝj@E r%z37?C*{&̽~%+1"k` d0G˙Y[H Y@gbW& 5zrsSe<(qqimWq": o_;QZ$`I\Lgn dj e2ygP|<]u6Ux9~9H0'h8 ?*Xt׿l #J9Úk 7Af,+b/i~C0U驭Pcz^/l-u]%nA-Wߴg&Ī{(e=crc=ن?4Pf_O`v"+XUKmsDWBڙ74>X07s|ګD%c:]|x@frB3$_.L":4H89A]r>|kP&[Gm.g-jU/Y=*Tfg9)k2,?ͬU1B1-ϠF7Z4=d(祮X4ͼ9i CĂ]?!n>G%JDǘ1s)$~ݩ7mH3"֘3ݦc4hLbrنli_cEXlX5:{tޟ O* g^qݽt㑉82+,#oqqS ?0gH<@$ifIL8r4//sja1|T=پUAa'.B Z̲OubbTl 3SʚyF~kaF*,G!wLΟ)F0T1: rRwkEu믮W.֩C(e`^n^&v||@>oz}lt'JX?F#bF^oiyZ΁q\=LSQB`◵[zLkS 2rBڎ,VC^<+yq^%c2TidePU\{!kuox2%=}JnP.Prb|\wŶ9U.ӆ3/tQIӯW2-dXW}BŜwK=C$N05Qw9\_w4Zi 8_ ;P-ZK߶ke'(kZ0xQpFZ$mxz{|A ), jpR\ َi b!oQ\ >(C/t#S=@{D9APףqx94^Ukbxx߼eov3i7qEdc6EP):\Ӊ ηf ^%; v3v#7/cϏAE+_m g~Tr&wTb')@W-*cqSUSvc[ h`郳y-0b YZ