libucp-devel-1.11.1-150400.2.18 >  A bwIp9|̛4y V Y}O9jۙnlI 06X8Zיnj9Qp5Gk%h_Illkc?VN瀓Mϻ\XUWV1&vU_؝W\S)l-B8r]=@V%q&lʄYǹhԾ 2f406d769a9d6d3d40c1087cac347cc1de62436105ebb1a1e66cb72b771299cc6a7023d063bc07482f0517208a8a095548857da9bwIp9|aWmaD{GB6eꋍN#ɡu]]x낵b95gnki*:uO(ɔo &SQ,/Wm6^#43hpl̪VqƠ0(IVB~4MA-X Š9V,~ +[$|9v's6~= )`BX9yp;L?Kd " _+ Aau{     7Z?(b8l9:FIGI$HI@II\XIdYIl\I]I^IbJ/cJdK1eK6fK9lK;uKPvKlzKKKKKClibucp-devel1.11.1150400.2.18Development files for Unified Communication Protocols (UC-P)High-level API uses UCT framework to construct protocols commonly found in applications (MPI, OpenSHMEM, PGAS, etc.)bwHsheep95;SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Libraries/C and C++http://openucx.org/linuxx86_64Q\}AA큤bwHbwHbwHbwHbwHbwHbwHb640ba2ccc191729788c98efd50fd2893e5308bdc430c5cf5f85ffac8169e38b18597248f836c8bcb6cf3def4c6054cae811d5f1fe82faf55f88ce66771533a2ca7a37e4e293ed618d89333b9ca3ee408e81c67c890e93d9b7c667f7e1637a8266589b2949bb2827f65f67d3f997ed6491ff90b60eb9c80a8ff586d99d809edflibucp.so.0.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.11.1-150400.2.18.src.rpmlibucp-devellibucp-devel(x86-64)    libucp0rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.11.13.0.4-14.6.0-14.0-15.2-14.14.3a@aLl@`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nmoreychaisemartin@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- 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)sheep95 16519846101.11.1-150400.2.181.11.1-150400.2.18ucpapiucp.hucp_compat.hucp_def.hucp_version.hlibucp.so/usr/include//usr/include/ucp//usr/include/ucp/api//usr/lib64/-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:SLE-15-SP4:GA/standard/41a5ccdc0954f1b671fe20fdc28a26aa-openucxcpioxz5x86_64-suse-linuxdirectoryC source, ASCII textASCII textU cQG7M"Zutf-848662d92cae8b5fbcba3f5cd709882bf779f105fcf53e6b50ce2a3534d1a7bf5?P7zXZ !t/̗] crt:bLL f5}Ql(ý'RU7}6Ԇ쿱m0w[PrѮQPGk$Ɏ!0<*jS%ǰ(_B\wR l&?o2laJ3Ƀ1m: P oHc':Pt&@p]/ Fֹ.(#!޴ą6CЕVB/r曲<)~>>OGs"\+_3f\:!ϟdcB0#d/O)gGॶTBCk@NhQ[8]5J]p =0B:jn4 ^9d&)B"ƾ~{V-Rx94ۄck!)|zcO>a38MHQ语S8!{ƘF-8IY>be{!*ȚF0? @P>6=4!b $[Xr=wɤ` Gv[.t=PͰrB:_}4!|e遹ugӢI/ iPb^oM'dWmifr=Ov1Ip.lPݲK(CDg\y֢%0 |.%X[fD<kvW *UPUKW{-,G@w~sn.\*yi $7|Q^&Zaɩ( M \ĨkMX1W%KۓzE/~QGu6!/ x}#b+ы[](M{w!q3'ܑnū$ѵiɷP3z)*(ȥ‘1ŭ`:Xᩦr@]g"ia#\Lbgn574 ²wY:[X$-"Mʡp{d"W V_o(l#J=6d&ծ7SOqQ Q0 =/ZeKpA(uekRt3gyz>tx@΃ )nu:1!Z6N0vHJ9<-HGïCJ?(K/6\m`\Zcr~ړkzWZG7^P_iXhWl&o[⌛̝/(12DP5xg{!vȤXRFo3Q"DSŽm'FV,Z#5-%ݑ_\9`z'bSOr334\EDGGtO1AsD5vk7)r4CYgQz `Mn"dB*xUx%&ppk1< ǟ?4{?s,!, M(k6 m^mKn2kX&à ljɅGѯ'_RtY^86dynTtgn#ET$ hpDV!m-؝ByXS7N6P'Yqhˠ̖9+(*>v`' *Ş-#\B-2v^N}W"p KkSou4EIߜlۛ;vyniGK1(,oK}Ο7hP+0N֚o2TҨɊE`>B̳8U׈S8?ѿ?nC&s*+ OZ_n 1[TJG7cslcZ]$X읫mUwy`fn%4|.]5ʄ%Fi7%:뗟h ؍ d. ])|;;Jǡr!}#oKDΰp#t$D:D1(j#3ktU5n"{v`I{Y$ڎr.77z^h7_aZipltg7,^%qeW2ogȆU4c =`/+g)ǼW ՒJ\@ E+"8=CX4J<xQfSr|1u?GJ(x%ml9OpD߃w8 kkG%wGS:jXzwS\P}듾 ~57VIWqǾ@Yreu{@-sIj8\'6 ?`Yj#@ً#FIs[hrY?dpYII#N6 b 7=<아^ӌ";I9.M Jq9_ \RW^G4ÖYpv阃n'nӉ땰ti@nC€F\1?nPR!pLTPA;acVF@@] BFM_‹- ll@/4&!|efq7Ru_z#HTQ;K؜mP C'6%W;)51nfധ)DqwRL<φiVv*Z3Dh'~XMT  lT\:\O}Fah&acP?ʛ`_=Nj+g!0yvu vW`2c7Ɓ‹QMMR(u-buQlOȬ=S,]?|+Ñkmov>\ N`.$}Wm \277')K!'sk=53K_B1Ш\z*Ȓ 9\QN$"xX>\z'c>+KX荜@p_IT|σ7ՌlH+! ίٕ^QׯJ_*ufy%1/৲ր'au4S=^炾Q!ex"|8ΦxB*|)sT9TU+:Nx)mVy2MR`'8CGhl*Ӝ~*ͼXF~fd#.hFȌ\o ><w߆G:j)EAt釱9ONc;C<:_ $U:H0 ,3#JhgK.pbgXsdzZ C7̧@KT&S>Y'tykpN0?;wD*kscjlcS}SN6Gl:&"mn:]-ITqy y%E 7MRzl|F-HI#{H};WY.g2a+ah(4a{Yl"ޟ}+HH(&g=d(]J]!rCiyVpeͲGCk:N3C:4ب6 Ԇ:oU!O9 nyF>>Cm&"!$6$6í6@/4&B2lZdeegmxbb+ "Ѣ: P|욭7]&NlfQ:6Z,;hQmPo +uY(#=nX4M`ғ4!VO0 (ij t*{P W PrC|kU50U'HC0 #̩Bڹ~02x1Slc@op-2GAw:y !P{Z:X~H,V#F$F _o)΅jWDO>HzrY?jM[t.}D|O1-/@33??5s6)GC< ƧNZ#K=I欠࣭B1ȹSjzm,v-`80U|iC ~3{]eN_úZlT-2_//Nkϧ1:Y7/E鴞]d{K~Ƽ%P~~kedlXT,ONy@Mf;M:<5b{5+0*fjB-U-|6C3.%/;qguB-U3]#C0g/R{߭ 5fay"cyN2,ebm:p&5+!CSm* `]?ǝi|7syэd%z.#',!aA|C'}IUOC|eâ2jm&pz*M/9٩(h<3P;M*6vI ZmFu: A"T$iesPe5:r~Wx{Liި@{e0'>ԅj]D)%.!%V\u1'SjS%P)D] gFNQ߅3$@:8Lae!RaAycaکx/먿n! 4Y++4,XH ةqd;Yo[:F$sNi{`NBX Ja0߃OPF`p{djvI87\Dlq܆gʟhG?AnM@oȉ7Q0#q#v -ǪgAeEZ'8 mkl.7G*knv<ݨJ@ ؿDgy!dND ™.~ҿtbz'Z7\@3MBX--' N! j ehR @iJ1ImШߥ=zuyݽl+O~OSMu{kK8O-R^.{Vhi?B4_:Sv~(8fyjgZ7tHP6~59cj@g m; <FIi&و¤,kHڰfcNKv)r47V69;WQb kV /><n=cUຏrw?H9#V:t-YZ1U@y`E>Llz)\^^օ66qxZEfc SF:m,X{qX?T`9-=0dzZd@oR$,Vy&!owejmDR M|r~M9M5fρ`L/OH㒀DgTOHkmkw4I$g|16:JQI^Yc[w$>eq 2 hcS}S貸[";VWU"WYG{":rFåp"lnwؿ d~1~%IGhΟ$]9^gسbEa#Ju [F=80~vnFY& 2… TABm^֜Nh1sq!y\)`=\(sY,h uQ7JHڢɜREE΋w<ޗaMñjR WD&AE1 WN9<|m W]| ԈI)~lxqTp.Vrzicq!-b瑈s):1 ~a3(WHœ;#7\=jAGo!kZ#R^$T?V=}M/j˾͡$lg+cMON<@ŐhG[R8mod[0z<(c\uّ"퀬d#H&>3l5h*~@I0L-sr`bU/ tAG2j9 '{KrX{"m5.v*Ÿ{t}X *A@ hreC6қ ޴)w>܏M܂N ݓA`Wb Ӝ'9?ptEq7tF,d N?< YK,=XG\^o&wadr=5s3\Lz\'c2koCD_2PA?sn> BX 9W~2k8Ĭq*"۶th lU#jV϶^>.yњML3STSϞ_q?'0_yn(`d2J2)s0/}8?9`}7qAjR3 6ΊvWt$cƻNMcwGF:*;3~b{6V4Xld=MKXhx0gAERfV@Ev=toӉ~> l=]?>r+1b1Ze~+[axyFW L@ˆ"yvK@? Cݐih1CQM6GKpJ NYPk$ƵIԀy/^_7%9XLmT;y` 8YHf8{yig:>M /qf#TƛsͷT@ē]9ϫ[/lP`9{z+>*O{) QN~ALnJZb^Y$-|cAG琀f& Nb$ݑߠUdC}Nl\A+:^O%}2dMfaȸ5 jLEGJnǥ\UPJq[~/c-"b}]S^ n%: hB>iÊ(O :ѫc&. ,G7/^z9kTmF /N[d.p [GpǪ%#Sk25LXRH63c 0IO :`;? DЄyn3{+?_gwМd i3LͣG Oj71M>wG|!-otw!JڇeDkoQ 4q36Ygq#--=ad dn!PSwOF` p,yRJ֡U\B?7JvQu{nc56@_e>lWԫ ,< @^o*.Yz"v N4Ǽ(ugHHfkcڂ#Xb:iPM2_DP,n}cÁ?nr_KBy{URb *@qHxV{Et.bL>(~jfk 4șCsE_ټQ' dC`GRȶ Yh_FU_%^׌_g@(SvyZL@qXOB8 D*}ˇ'ժ>^LJ1ŭ`[w =Wm0Yκ0b\A=J^BUg_$t&;m'HO%uTY(4}*#]z&!'liD1ܧ_c#0>'.h06Uy>[v:fLIȉ~^䬍 r /t83q@Ur_Ge_5N^il@O5/b+/#Hp0;;ᘖ@0;=s`pUJ$aBF ߐiAr<* l6S&I@%-Vb?CgZN0H54S3ݦh,]1z-y?@vs9b<7f Vq⏡o{$ Q/jܐCmG^> %2=i'fz Wm? o["bz@H`)%ݖL]4!æP*j>"vaO ?h([q%Qh{] vgޗJ*uED8g&]+E+ lU'YZĎϗ*VvB V՞Dܞτ$)`.L&zUi%VYݘV1kf9P݉\*Uaȸ)ɞ/r7s~cPmxf'gUb:NT˝Pbs5qԃ_gTH"TIuy.[ͺux~>SEu[E*2+x(dcՈ4(;vӴdu \4S Er$Jdh5wyڎBy*@{}KpEٸY!$5$GR#J -j+gc}y>Qk&j4fcN>,1/:9:QX{Q4wH/+̸.SBz e_dj H+rUv~43w޻NzZ$FϚ4rwP~2q,~)rI.q.enN ]Tc[?'q)㽳<;  .mW۶eXg}u)}]+֪8_c'@/r`T/ϰ8eO0a?Yƴu,M~)Df7Tw [=nryh#i/H2h;\%6B2m ql|);:v>zxH}j 8N)3XK >똱PQ?J4CH l4TNmRc5{"BnkJ01ō;^sY{=&9aTWn -A1PZ *~:NI#s@\XƸo59°H%u^%\9ق?`)CW_!og~h@ق5v0fnD񷪫gm~F`Z?)6OdNclk]R>5B3:pq=m0@KQ~`3S6@hon :ƥ88q=2d1 !iX%l{+B. $FQoWFN"ʶB_Q-:'Xwck5Uږ8L?ϽBK{> .D"˳OtSx -el3|,Kq|LPÂd``S fNÔ;aYV#@2߮(ɒ8w9cN0| {([#x=nٰ/jcI`Ar˛RsG%v\HW\dڨz3 #UahJ. sqU vJ*0e(s_jxupw֡M$6aeTf${ƻk_:Lժ];m\{XŸs\L a`6 DB mQ%œˌfY7AY`+)9Baj-3յKU:cFZQv4Y ::N Dc z0J<^gB s=ѻ2:=pC;1im@a8@ ~RNgc#%{x.4DFG65jn:yttEM4O㭨c^:=+S )֬Ky=y|"[[f ^>mݍ%qY"gr EI(&Ř5/{d$n{>:++SUTDm4{ ^UH,\ D`зs_Ѐey+}pe#cND=1xב:OJ*ȣA y70\PH&^ )j1ˆ+J4n/'NE*HXMw";+,KW{HG13 ]$h޷dk4P*F}@dp-BİnuѦ[ݙ_%HkdRb>ߙr6wъB 5䳁m?? n%؍![0~ʫe\g}XKWjUTCBC.N4X{wV}s7^QW"[{^iu;ЇpT!{O@\vcK[[f`9..׮QʱҪcaN-VoƣŞ=dJ`WvJO>ȌKǘqt]gy z -* k5c?Tts2kB@,2J/yЧV"dzN;**\*cz<`v="J!Xwu0,aGH$& IwzPS2iς29GaW~6Ҡw~i\*t;Qu?/$JjT6bVh?(.: ⺳! B;Onyru/JT,_g2"\(߳w>Glh8Y[ #])8bv1= !=NA|JRN6uvN 0r\n/bYqQmO^V-~bqI僷-/@ u^K c~(Br9ίfWL&27M.0abfP?ό:ބ4txCʼۭS1Ib,fF?(إZw\vx9h5L3h:GB^ <n9ٍX/÷HxR*n+VAOFos6Zh  U3%GO3P>_IE4a¹eFYK.ZajGD cÊÚ@?]QA+GDOLhs`33!k# c59 \NZv@>cvoGk8'?&(v ][ˡO8TZcNq֯*Ae N/#+u3׵t W j4{:[m3Or"qjb*^+_+asHO^aZx{bRPU>:m-&c(:KHG~պA8w`BRwۻu_A@,S9IO )n2=lDǖ$1F.'eTG6@#w]pX'zF͞6#cܚ;9ށ͗!*++.=J NR[`Z& mm| ?e8Xo$x"%x'Oc9 T=̝-U-E.џž51ZjlmY)CbY~׸@"a}o)ipqeiDKU[{7.,dw'%m$AjmlagkΔ|ہ/j ( ߌrfon2fi0qU^,_^veվѠ`nqMb"<3J[9)0m/vڵQNGvW?ݶ n41ᕅQHXPlc3b٩."3M@,wՖE(`ʩKg} @:)4=v{5!tg  SnA|64A"&q\fc- _}OI4"7J&!+iyu( sK !}ҶV"5zݲA, 9닔&c>e &:)Z[Zs^zVi U[Wz3FZx@li(MP A<,Ai$t'Pʡ_p^/zD  X9`,@xPZn6 ޔt8`uN <;> `åN;DD/\Xpzzק>Phy$fc`ZqDžC(03%G³}RƟ='U24æA'lG Էɓ\U-7$`>Bo;@TDkY+(CcįQPx;AA)N0 VKGMr`[^sdmy #gCș撸Q~KPo3w:'"#F34֡GFSiilu ːSool'$cx~vSo%=FBSαոP&,Lo82=#1?;Z}\=Xy/ 1&.vG=`h˼ -= Ӟ§sL˩>缻 Kv34Krj⼦@;O [hxx*`(!"Zcd j?niBoWˈn9>kkO&?K7kY%LJ\~IAp MsLt-9(,K jO*Jjce-H϶w7drV r~UVFu{'7fvsPf4B)Z4NR`>JA>H? y]" vy9ij-% g 0D2z^1?!J k'0ܕ tjF3i:&</7 B h"%i/ar2pyzL s3{#r8/άrb?hEf]#|ta-(AGimUݎ]=q's&Aτbc nb}QP-]wG9Grzd&/QD@xp$afl`Gv`bN$E q׭ Ip*4Ia"QZeAo)05Q?vO^ʃ!Z8 /.G`9ZS~ɱ:c'1:&eA`>]UBBG- YcP×=9"券tuXeٗ\#\xy?oc/%$R@Kny=>iؕV]'JU%.tـON6̔꺷 E[m{/A뼅/Jajh YKz`ԝGy2f-Xõ@&c8<;Fvt &ԕb|X20u]ҨF=2iTt8e+Vlj/z?6i'NԸr̿<-8L״]LjpȄ0jϽv?ʎ+"Sxf 1WĩqŪj͛pA)šI ֏ϲ4Tar1Y㓱CrH9m M]2]rtlS`\ѸkU; -Kp*2-C*NCc3IwlA*xn`BncuqƊy5{Pm'Hu|OJ A@{"8)PΥ#@>-ȍ"oS8| 'T|Ά JkU)n.fGO11g }K  Nf!7, Hgdc/k[vϝKWfP'陕ȫBx$$sc?4gCsb՟q5F5__[3=GjqOKzm6|14uEF/VwނA^ɑq8mlC G@Zکx[oCj94#/3صTb709^o4V!w (d >by굳ٝДOk+b|=$~ܯS&lTO 0phpp4e:* _2>H&nY)ήX8YJ{@z](c_Db6(W0 26~|$yva@#ګ2n9p#0|qQH<(9*,״Yk3㙘/If#<ȡg_(Eɲ@:0Lvp&Z@E TBw9Hz0L@3HZt Ox (*2$_!8f+o|M8ަ]S܉7n؂3G}~nU8hifgQ8ycEדFcz`>1Q, K;)(`[E5 z/GLEy;EgԠ؂ F<^?}%t21tR&Ur)VR]lVm\;WEZ/{xut":|.><8U $Oj`}k`;Ufe"xw@wݧ&Z¯BzG5 F_67/P)0YkjAR-?SW̱BA=4éʋR'++GAfE*uPCM_vQ3p"IPC}얗C:pKRٺ)NF*Cy.󗴳+҂뼭R!K*c!axk@&3y|/^Xe͵|!N$urfj%tq6e'ѵpYˑ:V!Pׄ4 -*bj\كBÖ!w3%N|0Û]{Iu8\X@6%n0p4 Ьï ji{?`=z9産D>uX:IJN;vڌ9pƭP-TU,ծAqaLK-j(D|-K.Oq/a_=)Dey=1 1Mc%77Yl 9m[Ah~E74^H795jLX Z h?!3'SDz6i"s:^CӑKK6=Yh67!_i*i>S&_4X&s}fŋX~jܗA|dШg{?avF>6PZ$/ ΰMŽAҏ )hxb@r5j iei[Z(TD3,q=}'_oP ]x%.6c\j9Z a(۴X1'lC%>8wxz.j_Z"Kr[/,"Fš[~U ‡Yx~R'B5\;am4}el9G #Ik|e$)JTt:\ʉbNDx@ٔ=<{F8O,xuz`Bdr$n b\fPB5GHZ~͉3+zāXșH4u 1meJ@¹DVT\ 5A(^%#wT} 7+ Ǎͷ, 3ٲEŧj=K_ @-aoفpގB =&eȇ RJ.NEVPoU;<[g4l*nUBuEtѭ S? #F,Og!% S'/qdV\:ڕ)3L:̙Coo׵GVʿ Oߞd)⃉FyJ`G+t5=gzǾkr #A¬@Λ۰Wb5ޙZn`;ƀt#=@.L䖘?6׺4rݛҧܖI@:'E$0m2`ufGMtIP9Xq;DA:nնG 2ߪW3?V($5[< K4HTfMs]9ojfx 9*QGŮ0-ED(P3{ǃP] ?Pd&.z0N&8qg{EXGQu\f9M B*eM}0wnz8ZŠ)[4i,U;.e̓#Sqd: Z6Q8 (=/&ߦp0UؖA8'[JUޠlw͂xL zduK-&:rb [_'K:}B4u& +-e;F7L8"RL(2.&ty",p1 W,ʲ6RfDLy#q;jb1nvi8cx31vrCԅ#2UzzX]uzw,@j kݮcgZ-Wm1ec6i:7EӚ^K6817kJEu9ql+1D.*dfu_@Lf`>~,9f,EO |*~ܸP;7/S:PrYgLtҳЬbs*۰Q,I;zeGQʵl$ &.699jjЦ{۶KV$\ާB~Fpdq=F$*j3v6vY#鯸_`ަD}%]ɒ/*'QV MoÊu[=4 @[._uzK[ۅv T5p]@"ך?+ԶuH Uߴ52fͧL*'2%pl |e8{Yhr)OjZ0Dw.). ' ;KH,K=fcm<} +q$HA>f#4(,#e'jW˼T ٫~7HA~^"L%n24]g=0 ~PT@C1}:pVYRH[H2Ϩj}*!F3*f Qx-h= M "5 @r2de9Fb(`K# $bM1T쨄$=5ߩgרӱB#os B>|Y\^O}AӐG裷F$~k4W;S.2?,h׺ӎhn8qڻcVOq[v:CX|5d7i~^\۞v% (HO b{ڧW{rٓ!,eA`.d)Ac0 :xNc4%L$we+. u=]'h)BPӰ+e)~zU/pb0<,=<\2Nf&]gPl{P}I)$FSHw-w_XQ#mB]u)$Z!".+Ȝ Bx;BUEiXjlܯh)I}q"q~Z[>ز2k%&`ˡ'p1,5dCm,YMڋ 8u^\o"%-Mu"@{rSI>߿5N?x^s_ٿ5UԒ%Uu}~f1ZUkd?k`:' 3YljnD6(AR{%AZxhlY,*㺇B] (PP̆0WPu7ڣp*Oƶ8Sje}>YLwytdҘ9P<(S%!VX0#ME28$qX6 0龤l(MwD5&ڠ3#UN<" #@ݨ|qI c ][PE]CQ+%WY@ `%O jANN3$31g͂mtFNrxhBgӷ- U-O| klup/*yt2o홡>3CЭWЭ[1\aPJ-byC1=_VSvdA,mm !3A2mR GЗdRHӤ-&Vc T_QeqF3|yC `_a\9:Q;<ŕ<9|{ʂeisq;9鵬ӓ .0ͯUx@ omG@[mb㟳93DGXC`+y[T[╱r~Zd [_z"vՠl`vEa@yBdCR~ NJ5OrѼ;2۵b|۲CB H@xLǃ;'M%J"}Mj+'4%_{歖t-~y[9jB/l\(5ur*ͳE{.l]_?zY&iEx)%7̮Tg$;]&]{/,?6`xS %[ kMaH)_7)6=rkQzW(zJ;S,'ht84Uc+oΣݟ׿No_W,dvTILt}10$~iPkOlmVOtA|KOn$6,6%L+wόdn$a֧3yf Li3_^y$f&Hӝ fQji/b MMPY{3)Fò)9?[M*JyjF&,V;cIxt҇ajI :`wAsBK@wX(%YyEԵ*\Q6e"iZRϳ9ɬ|TҲ5[FʸUVsC ZgeEyq_-¸ƭx}XL7ɤ\: /bh3ep`2%VXnZ+xoXqEBPX7=$*GF}qҍrxGPJcGWb*CX'!64~l\GC*kF#ʗT]3;c.bQ2YQ!@Ecn Z!3s }E飚shy "hmE Ј hTϲ?AN&ko0$Gz]Iv^ظAY'B}-'f@s}P3C6.t FUɛ rxWg${q S8X`Z#3I7W;~.L˭ǣ8ER=s#OK42!r_O ]xY$sI &qCLXK=[@kw^<wBzՙ!z2bbU5"lBU`p2t䂿8GcGgRt)MA*b]L'2i%JVw.6ԚW^ pmbĔR?1Jqbqk/wL{d]VqJ͛q4Ti?}>۔#h=r3_ѤM l%u#9% "pCR?@Vx!YW-K9٠SNmk42 _7JFف5#»Ħ,)^m1$c/-ִqtjK8^U&fD:<(WpANoK;' D նtԿd0UOTiDЦk@E 1X:fPP!aa)`:D&)OۮhR~I@~ԁ8WЀ$P'3ˡ.hp1DЦ5>2L6)j؆3WPJ)ouZ -#%X~nK`;V" ّ.78EɊ-*IMs!]g|a}B9& gҎ1D,uȩpUT4]8|by+,494h qQ;w^#^sF{wrBנ)&Ix{e!-N 7ZGRǤ: eG}N%O%5_ysO*˥3XgN2xM>r*5b+bYWԭ{TpI| mH'͵>~y,VV夒f&93J7Z~e:N(vݳP6fxFR"I_LWy[!9S)mR^6h9غ=U`6# (F8+USC'8sj#N\$؍BKH#,DQ.ʅJFDYS{'' yq40O 3͔Ѹ *NobB EYN(LMEZktLity@dvFe Mvi1hskxRxoћPo}Jc ty5cJ|jxd\b嘒9V1)8PkgiMyF`Fm1h&X*4s }Ÿ*wrqa{!8+Пk8lQfZ_M0)Kc|d<-|+@,i| tG G!P`>Ӯ{mgΞQmW/.ޟ܉?A/4JV= :i~!ޏF./:f(m__Û4-V(<ǭCs"v틷ǤH:|4H7>!Ut[ǧl2&Վ3Cwo&a3ңK zڭo }.W6Gr$E,^M3'%d|MÄrJ%}0(;D9k.UyřSsjZouM Ir?$ R yզIK%N(cAN6αB[E[-UלycDnڒ:ny`V[heNYOt8.uƑ ? 單щu~>qO̯*ily!Zֆ RE ~4B('CgOxQ~-ҠmMj+Pu̯$; Mn{x=!l{_~<Gz $rU#=(,iĵ0犟o=fZ]R1Xl>hGpixp ~dEڐEh{9f}[vJll (!I $]m+#\LOx&7,^3<i^&Ʊ(t90) ZΧHY )Y-/yok0N=RcTPwcC@/JڗPu#kvod^939%k2AKjTYz||q>x<Mf Bc[8Kb[7~_f3>! ͥRW&SP>_f)\_ᭉ:@K10H1d6דt9%j!3h?j8m:JiIGe7ppԣs*$UgS/94SqU&2E\y!`HOS "+eNf_mNB pf銲H&dI;#@lȰ3:la'Ci5T9NFLss~pׇuFMm<,,37SǒDiDWWeU;n ·@|i83D\߭,~\\-Vl|+W@75h1lcd? O1DC+V -ҳwph4x r%D,9ZsY1[]_~jB92OR+lY gYb/ s4p?؀DݿMiq8q6Z#V-\Z-]k֚|ڷـee]@榜hoblAg<?Fp f~'WޙV$V'3NIi(;^?b'Tw'Z!^KՑVZwu'u-c)m+_N}ݏD\hҚȌBN,uRȠ3Cb}a&5̿(=ːdN{ƌ UT6s9V?X,f032'ŋr85jusdsp72x`2-ٌM8@">,mJoaj6;_sog?c%nU)5Y͟\R2Xu%}I%$009nECYh + )ejK$Ɠy _hm.w~+<vw #qRe Z+gc&in0=Se4>UDH-nR>{d;!;a\OϫHN!ܹ)" 6 L ^yX>7Hp5DqL-eǁ*Bo1 8{nȷOxS \Ej⬺r.G&4ݼ2rKe$ u 9{XJc3M ʰJ6 !A=c7 =4 pT/;<`t\}ocĠVS-Ŵ@Apj7$MS:Q/g|YaP73`V2w#D KKQ8ZL6>0bR2)]VD{ڦ ! 8LM=t7T_XNtmwbwp] _0s1}tnw~y++Ilp ,0z)[8n%DaG5)i/>OFk2vq ֝;9IGIx9ˑЪpMffk/v7- =j(Ztlez}NK \j]z»*_9fܥ8 NʄeUDDǾ*" ~zr$Bڐrz Ui;"i[D[mvHц{pۚzw2pm@VE+ (9Az~&Up[${,{t|eͪ~ǐL0M_;+vĸSTEZ[U< 3(XщQOz!>0i=iFԮ=aY5J1q'- PjJ *m PDTl^`ڵY<]_7Z.˹^%&`m FK>#y3ߺ>@  f}UϿrܾIN;M)Kq6cxIY|p^TFe.C=sbڭO41BPKEI&5XNpUg&~37;\$Oc`6>Kl*orR3ȳ>ɛ\ǞxmQ â̱̍}Blsw υZ~2_}U $L<'Ȣ3]ܺ~KK*de*f)ӛ%Y7m`({kxv#ʉj̹{@v/?~v jJ~Y;Ku'`zpFme%EB-yl`n~Zu0ڱ&͗["vx48>+0S~uz;شߋ3_ 򡻕vLXEk#ܣ錞G`ݢ 5TS:q3NZVJS[ .Vέ M .1բcUM0e1%)ʥ pFY{ƥVfxz7$IiJv6̪:xbHm`A p1 o$gJWnZߢC8Eo{ژ C/!j; ]QrXۍ$zeM=&ӱx`?gGo >+/}v-x('I33u3?IB>ʒ!Mnm"ίP(N|Ogvfac>"=]pbj~m^,myHef_G|G,f৸\ŏ\V lQ2M+  6ޠ_ H'%R[~n{tq%n(E&½kX>y1"N9@).+9~J=luʇ g=9>@!b bi1!q wbfXtx!,ؽrjjh*$%ܠKW3 גgVb [V"d~ ېh#ɂoL EgJ5)b:tk*R%Fjz0x c'څ93?c eJ5ttL@ӋASLIqpzhLe D%0)Pse9.ȯc ,q%T]9_ڌ6_grg4jl=%X&)׺*Q_v*/ qVQ1`5&Y OnCRآ͟[٬:8epZ!5Οo2'̷#_jl=o 5.%+=˫,pNCv0C͠"X$$Zsb'2GL~^RP܄J{?;g|VW6 ZlSZIcK [k+Ľy\.oJ_J`S\ u(,"dyb6 HaM[߿mTRԙ YZ