libucm0-1.9.0-2.11 >  A `p9|-ݐ)Ye=w{q֗?af`$[u@=,nvK^zFDZ5Bp2Ý.Л*x>!>t epz?}dc'rdmpǓK҉X#t>+($(ѸDX~)9u- *Lp EQ0#=A8jq-mR4n/GM$/"JI^aᵡ8Mp(&i+T- '503070faa62a43479c6c96414e9a94ea7d4ef0625c4334ef112a20bc95f6c97c249e38ea3f6391b0c5c074e02279aabba3864371Ϙ`p9|O?Šƈ ȴd+̄a&>QUV!~4Mx )P k ieVp@???d   J 1BV\dl p t |  @1(Z8d9:P><@<F<G<H<I<X<Y<\= ]=^=0b=<c=d>>e>Cf>Fl>Hu>\v>dw>x?y? z?8?H?L?R?Clibucm01.9.02.11Memory (un)happing hooks for Unified Communication Xlibucm is a standalone non-unloadable library which installs hooks for virtual memory changes in the current process.`s390zp31(SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/System/Librarieshttp://openucx.org/linuxs390x(``d03fd68865b4230ca008c2085b5fc2039e11cfd8375587e10540eaa942bd26e3libucm.so.0.0.0rootrootrootrootopenucx-1.9.0-2.11.src.rpmlibucm.so.0()(64bit)libucm0libucm0(s390-64)@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfiglibc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.2.4)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2)(64bit)libdl.so.2(GLIBC_2.3.3)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nmoreychaisemartin@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- Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691)- 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)/sbin/ldconfig/sbin/ldconfigs390zp31 16200865581.9.0-2.111.9.0-2.11libucm.so.0libucm.so.0.0.0/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-SP3:GA/standard/ca92be93a706e3496907ed44679be457-openucxcpioxz5s390x-suse-linuxELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=aa08ae658da7be58ea88e2957b989d95b4ed0a0f, stripped PR R RRRRRR R RRZ@GwTutf-88f91139a7b200e9cb9a60709a7b5df9851bad0d47a1b759b6629b4a29dc2abb9?7zXZ !t/Nj] cr$x#Di@Gr\aؙ 0C]I8M/VY-AjTJq ,g=ޗ(AuȤp=M|Ic~pXN%(dJh5-\ʮT [ h<̠LNe"ii^]4<_)pK[e@"-S%arDExN%pidaCg gEnVH:| 1 Dukw"H=uĮ܉oE4"]Rx&_܈?!yAgAl@D#bg`"G&w1;a=(XgYv.!V7;'{DBT̚Jˉ"<@P.#f<2 p+t~ ߂5\y;! s? V^u&ԲAжr섌5,NfT7 I^vQz~; o|N:haSĝPLDka8g^N!{Ϫ|!qb(\y"pxqʤƤwl׻+1DJ}>mtxfћ$۩8NW)#+}΃ 4=\{$>"L=Zŝ5?FeSssgwOV4N$[EiO̵p00-`"Yuu.bBa}۵ueARd&͖mxȖr;I.r,@Jlw^jCvB@A* @Yb- ôՊSO}A}2^9)eN,Rr="38:2)I|(q6@f*jBeo$6|4 ~-Go7YCnlwJzm+n0Ӂ$/ ,30{;(O +}6P ¼WAOU!c(?F6v hwp;%8=I x\w' 5l@N8VNn& -c:WCs-zk֣R4TM匟XxysINy"B0̦}[+I4]: DQ`=[A5̈^v1QЦJFGj+Z|X/HIU/B m. <@RCCF.$dTw熶6kA.%X;G%ߌhA3mIR :B_񅄏^[y%BC >˺*,6ds*>J/y< MP*NT%Y+3oX@sm'o* r4S"Fsle:W,v Ec齪tӸLSmWɊuDE6aFٗG-O0OswRX%GtkNW5LM$kCU<cu820OIͼwr=àAWғNgZbfh}͙Dv$U3|!hSD\gwX um-s])tɜ 7vDJ1B)6CLJ?Jo*89 &K SiZ0c[h4xds'Ƀv}}CqKL fE<+7T\]l7;1lăxWJ3O<χ UXssOl7ApQ#UA$ ԟdf5oHoB?U(5)'az :܇bΪZe?一qꚾ+ %X0X\+"[`<\VX`R ݊sIېk7 -1ϸ'|Tn"< סN}% TNۋ$z·5>PiSSNu6(Ӊo]|HI,6V嫫/J\mϻ*A?czC.?X8FgO7M;4\QA>!,7xTG0G{-l|xëP,{qa`ĆBumPd!UmA D%H>f_DP y7%)`$%`a\AfqfCM_??}M3A fx ~+.^W9҅0u׳r)kH̃vnjz`ǘufGhځKOW ԛ?2^X HɦZS]U sK.za+W'"؅hX7F~8sĊ#sd)$t]݋>;* ']6[fA|:Oa 76m P(jwwRg1hi{R]:~L&sѫPKQ E+{b9 FkS-|bbpW҈ǧQ1Υ|jTQtͮ]c E_Y'9g2*AGY#/|0V9BHX4c9 % ”d,PHZy.Dfd Uw-?GG=PUQNz;P]"'\J vҘ"ϧ$T}nlإ cUf\93>rPou ]&An:y^U0Ѳ b}纮E+]GctF>'vUATI /y~|!CE۸pɊCʵctw$j~]~T3g>6{lO,8x.jP@փՔs\K|x:4>{|i){>3q~dM|,$7hYؒ?C-CAvH5cw7A>8ZǬ"7⺳vwi[TSh<<\0(O5R8hlȒ+Yf `WMo7l//ky;<nM=dT^my.<]^8u 4)Z'k%C~ey+S 9op&Y-O-,/ *P*Ș:Ɂ6g pfT6_Zʉ2t)I9ǡ0{no8/k-+@`PN?~3~^a XC@ˋKJB40)ŭjzٲJHNx uI{Eq"5Xpxx xbVLV,=&dͬ[F U:צif*1nw&-/ _$ G2V { ji5|<lpC pzQ)R[s wa o'uL<ɫ^1]V+WSƜE :uDEb:tv}Պp׾x?R;#Go#k)~ m_4p'EOVwi1wrĞ[x:' )>~`*Qiķ _6P4Jķ@_u.+ ]U*֯uk1eYWg"مsB+r+/-hXU ɾ!M|ҖK +Pk \nF l&'9"V!Hq!l/5aiG߀ d)K-n+ΗGZi=֏E-9˳4)cab;ēr*')YDz)EtJn[P) fi!0F4! (pj#"3ߨL8&P2;UpRTtP7dX0S̫MfP* ,s/۳y<ȹDMZe.30 ߝIC[*E0D-Ѳ& =R0Gޔap$չ'"Y*ɳw͜lf R38Uҟ)j ܪZE)|:,^ΝRR"Iq6kVm͚}B>@Brp:q3Y(Rw^c-ՙvm$u$x}MM2YAPzu a.6& \/q}Nn8Z [i0p^E@kvɣp V;k6ZɅ 1$+hw\ /8g#q%g%oV,S@/t/CzV_P˪|K-]Ɉ5;h d P@H$س@wکfԾ"sTH6R^!I\jW7KΈ/E]>]Q:ǧvl߭jITq:˞𕥕2p撖l{g(c&ˍM܅-oN'Q#$yL&W "؇ pL^ p‡D_gkZ7irN,%y>:LDrUA`6R܏6v}t+~A,QN7)7]Ui,6=yِ$Iַ>aAW GBJ/E+!P q%kR51 𔀙T9u|)`jМzk7kcךjuh}X@//d$$;BSmjdTmE$^NMW:$6qΑى?'k4x~1LÞBJCҰ jU$zʝ,ׂj\*SKP(4̲R+<.˳'Ǒ{P+~i-:#אtJs!߉²X`tbp@4`\ew~hRA1fWhe߇T!h "uRLM1#7_KD_OG\K=E܆'ne`{\dۅObK=30,O L->r{\Au?KfB]Aؕ xZL (gI3?C!>+@2]noo|zM06# sv+`dc.n&^nyA}b6t,V9U欅o@Ux !L};JV]O<{"um%/~㹠-nG**%ٵ˗XvF\N!"ou ,bB jkkA!}#p3% d/w+)仛=.ًB pnad(AtbR>Y6 9~:ftC,L%xگe+;`|{:Jc{(7TJ`f:SOR> j1Lu*KBfTXӍ}};+^`\z/X7'] 6۝a]ĉ0lxtt6-+= C߀U[5GTؒ g 2H-} y3=-cHİw HS!d;tg Z1hza: ܲ0XQ52 玻D'>.l5;wid^_%wϤme5r@]v& Au\/j4xzt!~$2 A^l? [ }ߧ %iZ<% =9 [BKF~Q_ɟw B-CKwlN ']LGݝ{jMKr;X 0+ڋK @O}LvW F[=r㐙dLcy]/ZD84rn~2@Д/+ҶKl6x^_+0GtDMblا]́nm R\r-о~C&PÜaښilsލIkФOh;7oBOy/f'wg1? ={AJK͠e"OQ›Wfdl>˫C6V{lPk]BV0R͡SzĻH[p.޵u5CS<0* R"+0T,b~pbMz^74b)_u$] ŚI G1‰1: wLnU:UpmPf&cR1\擳<38j˙ewBA"VxiBd8_/}HO#O>R躺r[v<)2RZ;@pH87m> +eZyh"?͎/l$G(JSZ:/@P{ (F}QX4C;~sQ F򌕛 Bs?K |-+Obi2.< !lYTN%)ډIG E#vKuĚˊj14zRhז (+y YCѼ#UGC+lxAvyLeg[&jOy#UB?QI'X[u*9X ~q^e3)D4)1DԍG⢹hv}2 QQ!RI$z#nrxσ:SW+/ygK5rڄ|]=1$s55s4M*K"{9ril4Xrd~VMBF #/I?~.^pz,p J۷ϖ`/Ft`3zlcuTEԔL :)ᛥ}/j d^UJ} f"Sc]eM![ezibR#kTpKB{~h&b :%;Wa,QZk K:8V v?v홁^q[ QPlj#ʩtaiQ&ii[V*.5@$*p291Nld]KFɁk%HU'?z1:xYI'Jܝ(ʑf g~PųSxDYw(?H92PO‘Y@&w4| 4)NVPfOy4ͨAF+tbau#c%$9 '( ./y?40Wl E+wfgX9YyH 8:(՚Y5 \3-wJuxɼ]}\?zOP4WP^y8xM%^wX5xmkM/^ _B0"gvg튐Zތ(4&ߡU0BI!0`oi%ܹއ HErJ@a4ҘORCi_\6Wj&L`N@6gDa9(:RPG^Qj[ /](f!B; Sg:23 Q _Lky >5C8dؘ!PDܢ2@mBkd .G 7{3v 3<ܴ%Cc&{ے:Q +u=?ߔ ]m2`D= MHv8.f'U!ԖCamqd,\dWHTU0p7wapC٢x\uQO}n ܽ68$W+6T398iz "ev!Z0S  _/A5tӎYD{XÔ%<9)IhR2lQϤ"tr&fGLs5Ytya~{"/6M,$ tTmg?*ZX|#ݐvEHung֛5D+f[+oV<3$J%\>ý,NjwGڷn,bcl굦:]m3s< mx;ėk}/l5&q urAHjax$UvZ"d݅GSqJ{uodYdާX[]DagԭA:l0 I?`)0/!gy ?t/gI3*Ӡf7aH&<֜ͭhEeIGmc>vmuAr?; -|1C8 + Œa?)3{Veɍҳ**ȊG-faQ #ie 7O /<Nٚ>(URIK OMʁr ڋܼ8 H/itӻA@ :s/^] KhVI7o~6qI:Ol`ns9>._d^Su"JLXAil``yߒ4ȩ7xv9뙝$6Fr w]xHJLO0&fnjG/>ͤU9lo%.*ߪ=W˪YGɥ'Z&xZqQ2|WmRep,pzf##u(}Cż W 0ȠM|lK%*7)pFzFk ɳlXs)7G:\_UAhu!4Ꮀ&c%o.&9.߻Xk*cVJ*K04DIjT̴]4a&-ŠJtZ|JV‘zT[*ͩdaHB\04;('TYrr66H;՝Q=.+ c6}dh MW3ݔkst´-(ޯl_H4WQAWVVe*jLEtl|)O!#6٧T&,ڻ@b@xl}䈆Iך_!H|,vd> l CŒ!&6U}5wk 3C2JVsʺV,x"{}p_2g9qۘ3xm15- w~ $X8eBإ3'䅔:kG^{8'2?g]- Avw4@^N^=cx{@ҍ MgIƃ$ +x:a2F+\>ĺD0M-Wvs"O6aPк`&bUOK3uM4lf"eiwMNZ^7)obDk&>"7ƞ1-E?&'{U/˭́IJ[ &Y±㰴ʍ'#ZZ=arNbͬSCs'LDBqm54(ff͚*\p"Tj18Ù49dB!4uPW}p*D 7ְ6@ RD5Ij.+߅Hj:zQd+ 917Zkd=(ġ@e'ZV7o~EDV '?(E"G/:=R\GPwh7B-HǚK @r􀨤ш8KTa][۠!FBxOGtJ!hj5yxѯTҶ(2)$J\l : r0sbw1:>{ˑR{C@(b^T& faQf.q EwJr;oG<2GQ%ѷ;z0:Ü~Q>雉}<kG9TMqX=V3-e>1S l*/;ĺ4u/G yѿ]Ll2o)ދs}$ϫ0Mh~pgB89|wA2ŊokI֍ zPh+l4aZy;VXsnn9ZE}{}ILD4B2Z B:Tg uUL '~n un+JFt0q8732+u(OjZ#}`(*n}6‘CW}ͷOHoAnQM;Გ4N듺4ֵr'-flAk !2r4I4~:nc*$wq^F?/*wo[ɸS܌^P[( ^ DR4 )""2@W[iW3Kv !-;[~qQwWMfBc%ֆ|k$&;&IX+rY>lɜBiL,~ҭSw-c~9u]&9n; ]J<̩dm,+C+ԨNmiƫǘH> #}QkEa0'hֿ \%} =k靋z5%?{i~2\:Xȝ~_Cjq0I^oJej+ٵ09Oɇ Ԗ./7vH%wqʱܷa\nez]8ڶ,9Y*\Ek>Ql'%=t$ꂎU){)B0ΆI ?YgF֒+2v-zGG}_[7+6[O`xAY A0B`ЁE::e-E8hD|j8qm(,Eƭ#0Kx;V(ذĮfUTe;b!ؚYc~)z )צ S:qlnO۳jҩ@,|=)2∩X,,_ yR-}qc'D1^{LIe,s{VڶGJQy\ips>%hgj@l& ADFQZ*"G_I!Y~AT ­?X}nf;~U4~)"9rk'+X8kDpٍ<4XҢ@uܬKb^[rEҰڹ38&:a84]E L{&>X t:Z~kWGo&,ͨ FȶdnIiN#\]Bj_G{d,Z4oG AT΅edA53v7Fx{ESvSy C wG}Gػ'*3/䫧~~E[L3L^Cj>FH79G9ޠ*7E\2]M!^+!%eY6R_D:Hd. I A #J-u J(&cBǻ[-ZRM]5M-UهI*,2WSN*%˓Z!P  ?ΰ pdhNsoM͵'wUiܴ<z4UPSnX|{ *Tad%sn}o<~BcJ 5M5⑺ˍ61v,gQX\7l^7:s&ћւˋ M̘-Znr5 t_cܺ*Gn#]u\YdDnH;]#{:[:[Lid/ <@&6/ wF&ruBya~T90*WBsma2F Z$:wUFgm>˽aR_&FDFCC%,a,`5):1'D<1H 9Scz 4 Ma%o,ߟ#gS2Ŷ>FK&[~1cZӻ^E [k3ܚ2%U`|NC |I Ƃ(T/>pGb(J:#nm%jlOLb j UupC:H|>Z`vC R,g or F5qӍːo^O#^+v޽Ѭ&Dk0mѽgaݺo"*/1^a#90pj8dT^5x.Z}dӼg>sbTPNlE郇sKE*odIڦ}Ech\M(ԨM FD?i=÷FRBSrcߣNEQ sΙ9w`Qo hdw?m&_ shf@(AQ[B!Rl#$>iz!bR!C{FdtGw`kd V:[B[γpﻭ9ǁ\5nQmR}!sN] efHD% wؤۃԈlEs(6G&4bSV]׋!߲dn3ӱ|{n׋MقAG}_@%v `nFNU{_,L q;MSܟu+I@Wi5!T.b_"/Ѝ>ZBcqہ̡?p~sP r|0_q~%Kxkx7Fq2oVd1Zb4=#vQ }QMmsV׊ܜ8QCAS5+L pS}-zS(łm-vumz×Ӱ>TU0bG'zO9EHi2ӧqЈ߳g=3y]!NneO+i9,HPNS"zݹKX@e[:HضH49*ϩI\hWM p4+S$}&cĤ+& <;g0hd4մv]}ބx|.Ax]BㆣfմBCG톟K j(p>ӝui@3/mf Ƨ7u<"珝tG* xSl1O~!Zݳ5'|e,BUkO豨}'$H>fBg0U8+0j..yozfqƇNԭC+@eyVRik;޳`;V-yޢU)KE9|> [noZޠfTUXtH7I`\?HpԇJHU⫙>BSSf_ NYٶy7,F+ԁlA+z\<25GBʪG=Q@|ufO_(?mTu[͔ѽ*!['n0h/*ģ^S( Uߗ'=I,1Sp#q&ӻN87]5SZ m=ǃnvչ52]h%NH f}&7#O"`J3+;mâ`8&۞<*r8UDi͛.נE|G>YgcPb!3?; [i鍊Cd+< ѓUWam|;LLOon vbl[$`b.o^)ch" _3qx?+PAEBdRo!5w8 6"bwagqkM|$;ڪӐc>zZ=Q +LKҘSfe F}|>Ŋx^)'f[wĈ@~Wsvy9Y!K6+Z%5|/3Tm^-[ J1kpaxgd&@IIIuZgDH` XRqb Ue7E@p1)9-:z Cpk0mBDZ'p}VOV_BY;Y[D/Bs&|ů26%Y)Wyo=)V>H(\ -eBB9B$FU@0h:/7{1ͩ=qs_)5⩽VBh>eTUp/c=-NUASg4&2=Hexdm/1@ r& {x ZX䑡m`&& >ęaR)Wk/BުI7fG:0GdT|_ph.3J+cۙk,˓Nx*SZgp?XR+}1=Ph!GM!rYP5 W3WpF O.?R?[AIfNs&Amɯpg"죅k>:F%zf?,u|a/CPk]42b5X4=Y<FDU.F".dsd\4B&Z(R0:.#`Js7$$#6u!-2BOs_i\g$y$Vb˛|ב=3;a毕^C8yWE:S|p{p}HʎB@O-Edej՚3w&d#Yƣ_JXX@$eingFSqs^18p WȦg.2ZO`c;1a[6Ee<|CdB»Z3tV7F@RTwx_++19t1(hBb`wƸU4RP{u o*&#E$8#!dA $FP^wj"~2Jk;v汯G H #)5au\LFYQ8ۏӉi`IQoΒ'5Wl5&7XGp}9t@MuI`60ZZ"{/{5SqG%L>vC7rYΜ\>*5X Zt ZIT)ܵbr[t&VMx'7L_F MF4rNbcL/]4ݴ$7牛EC_nfR_-:c<┣M93v[ETU괰&*E5lVMܕ`1,$]Ie&,qp! `~&"V-ʶI:E|K;,+X+=!V"'ԒWp;ru/4mW,3<N+CDTOX;)ԻPQjơ6: OH֋gghyG]e09 -;X5.JjP'޳' Jbxj"DzqQU +^(kh(6b:m}\ oClk؟S X:10lS ;`P tW 3h.:f srmYqqnw0}.;JH^"$븴t) R_nJ2N ?8 #(5lكsǙ>06@\)3r-Ä'Py4W @8+ƘÚ\/q:dzBz +l] )IyXմY.5aKbN1茶Ě׳G? ҃9!(䦎'ezsMb0_V 27yy)zWp8[}Rcbf&+܀Oyq 14ȷ%c'Qjkdv?JZt@2!(^Ե >e2TEKݤNUQe7YT=B. PHKt\hY|f0oebTrԑ3(B?k'}g&![d9UDfBߡOM8;Lu8ȋ{P8 K+G PF%)9"e7)H}437({-lNP4${b>1Џ^m9=6?cSK::ڦL0G[">a ͉8j_>\۔H (WķyWamyT2ݷ.kyh Cp*omTw;9)'y/p`za~םe|# ~GdR Nr"qDk<˿)?`QJ7Rw-e4_Ȧ]F1 @ vc)T<}g=YCa`#xfp<Cilaj)t„B&,|JH; v @cZ:T4< \p$^`+o)rlòs9P`{"0o MF+MNY gr4CŹ,.9"~wq!f7umbe_9}plG"'i7y5 N\'r9FKtnl"msIil-4V@1ϼRp}"zϋ=7q .X=K0&⿷]*](} ZK=Qvzs8>sms7n-Y}W[i \ MXѕ*5. bj!V]qMقѡg"E٘_IqA`:z KT0/o<ʱsi71:YʦN$h'@BI('vs j܎Pkֳ/'-ȏ0c!NtlBmŒ2T.! ^&,Ə)3ZQ0/!Z(obKfׇ lLou'EFłOq~d?P`!TO0?319{Y:(Tk'gK@PhE S ?q/%2ua{c%5iF3 l[Wx ;0SAO\ɅqQt,@H$R k 8[v}*5vXkU mv&`CRa-zN $b IB<;)Ty p@KX4Vd@i޷f-.iܖtqS2f5!<{\nmܶŃSK\n:!7[ZG:[ry Pө8*mcCsl?n7c1~ oP)Lz7CڳmpPA@Sm&VAwr(,t2UW, MUr]g(pʵF42FOn ʮ)3.Xeca\`|դ|hzevqr g:HP **K=,*hRbFjP#gf.1EDm4&=TSh bg~ fzD_sKvU3|Z,31r_m3 N L!z@YMeh/ IGkW^ VwGPS6hFƊz zqS@ǎvf>COeM+f8[22|>EޙDҩl/>*.f 4{G~9m2vC{kD7gЌaB'^Aef2*lxW(}i&XZ򮢨\# j} _gfFtTεX`̬p'bRta`ͳBq#fGҋ$fm>EgI?hHcU>Z ZsS_=8ѹ$8YX> U<6MS_9gӳOS;e|7=3))lxszBֳYzcX4TBg̱Qreʒ_jԾ%PЁz ̘c vZ9aA_^bar4*wk0 Pde.5ys(kzFfq7TH\sDW&*`^@DӍ˺r­j F؏eM,Z@5N>eރ!5gpO|y9BЕUI@UMc +إPdG:gJB2Yb/;$f.[:'tU`y;M@<"ghgLݮQ!Vu6@yEx gTY흼Pwt&("MI5:2rP3_<`4l.XnR-jj.VӺrsܯEF/9+؆o USvSːPlnW(e3s4q)ϓ67#PJh`wV!J\e>9m{s(pxFB>Ћ AdA'|^+:82RGSlEM+4Uud iˤgiU.PF~*ctowZKيלk"7 fhTbΌ DI6][}\e d]B>+NXx*= 8럡@ad;g+B_t֔6ږ gb,ivPk\)~h/ \BXg$Ei-um~Q7Ʒ".]qYoc4|У;VYZ1U.rXzW1T:l\7Q% ޸=ƭ445p|xz|N!;B r?f^~,vר,Ic JRK޹6&\1]JBN;$x*Snr닝Q: ^a8[t.RȊ(eh${ЉVQ.>.kdRS Hj|9D%I4:8/e}cG^3~ΕX Ake6̤ݭE70kMZ417=R}sF<]͗86r`Piak0&.n/:"jf,̱0`?ߖTu䭺m_q#->v34r -x׶&d 2sbc^me9,ߏ-Dɖkb/'{ lTec܍2%}¦X>¯')i oq{4E>Qot/Zw/v74z 8ezUΥ(#[mGIrI(X9' а}*{;5.t.PZ5 v.==ogcL&4+J~B*OQæ7QKfYZdf0?W(\Z$'3T8}'Ih _;e+?}3lzVa0~s X+.=_3&4ksÜ7q*qx=_]5$t*Z(S"U/C-w[r4[Dq:NAҩIn`B)#ZG7Ұ1Q$h'\}TGe%D_M(P㘇JZCI9b4eneprح[ Q EhM۱ln0b%8ِ<؈5Te{@~1@{uJs׉>ݿkq6 8RmXD~1#bAxL5`o;ɇ2kjNh9HꈣX#:96Zxi"_VƍثA]k.ԦMwe^r_ְgɍ+׸Sa(z1-$yoOm.jbiZͺ}@wةY Gs P^gCѷE<<'A9` ;x=~2/+l^f DH^FM⁽3pvUx֒֐`zDg_,K]46$g^Pw-S:2 :jQML7mxG5yh8.3lOPeDYo;5. mh#LW.Z@6BYk; D: 6D{2GFh6/ Q Í7% ˸)n!"L:krMj"cl@I{}ednɏ {#KӦ8(F.Q4rZj7)"VP`s4G\*,p mũz*YqȽ-f ]_ſV$!X@~yynAIȻ3\9_ NDp sG!diو._H \?asDP\ YiPI yLLm)n1 Ǵ8 ׀,Wb$f[|䘴0#"[d $ m6UM2GQ-=PWѯ*}YXwT-Ov9َ~X5נTb_mi/iPBv_蝸~\r a ݨJjПN3XLo!R*|nt%ג8Ho]I ,"/wC}VՀlYBRLc17"m#iT_P-}?F"'O!3 tusڧBw2!Ōt3)PH&Ukzn*b]NԜ\ev7E1-D /?(T2ܴnBH^t^(a7,>=V/}4\ D GdcvkAҢ!BRRg~ O+qe9ZR 3#.bNF![c>RD [Q,ywֆ%ڏ|)c6]a˽ijЙVopE/j zr@Ϟy!_CtcI}RBYÿ+<ĂtcM$PAf*H qO@9n5';LA8m,9|h~ Hnmj{8@4{>2w"`kإGsZO}ẓs U6 z~C ^oZLS9 \Bq=5.l~|_M"n@ f fjm-TآN_פa!ˀ+uj)n;#F^"y޽PO K]y A||{mTXxw坑2޽k3z(6zԴPA@/&km zTg+JtQXn̵LYSRٱޫ`k;:SJa/YERC4N2ebQK˲&@yIFZ+:aa Q|fE |Q~VNEw#sV5s}/䨍x~ĂK{^Fن**#ds[@/ WtUy9>NjK<MU!:keѳcJTvjU^Kҋ:T?ͼ! Ba܃8t;rar(QMCW^FPSb0P_V ÿĀi2ebYQ w ", d8N0A6TW*Ȫ)LHG YWc9A0bl2ɞ7Od$aQ|gTV֍ pV*J|x0+% 4 ,^v c¤ ~;lQ40aaIkd2i}h0,2XW4D ΌһWҭ j&c(AȎ<`퇋?*09e'K\"Y>6o\V2+l\Q8֊Ci-"]uj 2YL̊<3aDT \IB.]1Z0BvKy"8/J_M Yꘊu%N? g  7B*BC7,?|= ߤ~L" kpfj|7p;\Ly(d;O.'rmh'7q);`>vS3抓][#b)$þkbKWTtZ~zI7:d;K\@VY _9~jVc7L+ˣ\<pX (*m`UW{5z21`+BQ[ Gq͛ţ1?S,EˢCxD$ɾM18KTc3Gtq z "C}%VIkIr7E`%@Q?oN[B`I1-Zr.Naᬧ4!$SDB̸nx}YGk>F_VYOCN[]h#5Π*16~Yb.0źWYZQדm<8to.~N6 "dQzK~\Y>cط(|U2gەq_MvݦVZw(ni YZ