libpmem1-1.7-lp152.1.4 >  A ^/=„DNX{@;ӭB:]b@][V_cY˖W;e܉,5 "2@cJj,`&!+?ϲȆb Vy>CpOz"( &Nh"m#W4򴅇4j"".NDF`[P'#{)U{ ŀfJϲ"2cj ; oo5vLS'T8B `~~xQ_P48f83aa4453f9219a917213677076ac356a75b830d655f1675a05895c05a4bfbedf68499b61b35d2209c97fbb32fc1f5fcaaf2b0̉^/=„B

pC:?:d   E +<QW`h l p x   `(89@:>7|@7F7G7H7I7X7Y7\7]7^8b8"c8d9&e9+f9.l90u9Dv9Lw9x9y9z:(:8:<:A:D:H:N:Clibpmem11.7lp152.1.4Low-level persistent memory support librarylibpmem provides low level persistent memory support, in particular, support for the persistent memory instructions for flushing changes to pmem.^llamb10openSUSE Leap 15.2openSUSEBSD-3-Clausehttps://bugs.opensuse.orgSystem/Librarieshttp://pmem.io/pmdk/linuxx86_64^\^b688e1706e719f8266d3868e03b1f519dc7dbc8fa037a78045233c5898be54182libpmem.so.1.0.0rootrootrootrootpmdk-1.7-lp152.1.4.src.rpmlibpmem.so.1()(64bit)libpmem.so.1(LIBPMEM_1.0)(64bit)libpmem1libpmem1(x86-64)@@@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfiglibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.17)(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.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libpthread.so.0(GLIBC_2.3.4)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1]n\@\\@\O[@[@[s[Zc/@ZB9ZB9YYm@YTXDX~@X~@XCW~D@WoWKVV$@UNicolas Morey-Chaisemartin Nicolas Morey-Chaisemartin Nicolas Morey-Chaisemartin Martin Liška Jan Engelhardt nmoreychaisemartin@suse.comJan Engelhardt opensuse-packaging@opensuse.orgjengelh@inai.dejengelh@inai.denmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comjengelh@inai.dejengelh@inai.dejengelh@inai.dejthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comkrzysztof.czurylo@intel.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.com- Update to PMDK 1.7 (jsc#SLE-9886) - Introduces new APIs in libpmemobj for managing space used by transactions. (see pmemobj_tx_log_append_buffer man page for details) - Introduces new APIs in librpmem, splitting rpmem_persist into rpmem_flush and rpmem_drain, allowing applications to use the flush + drain model already known from libpmem. (libpmemobj does not use this feature yet) - Optimizes large libpmemobj transactions by significantly reducing the amount of memory modified at the commit phase. - Optimizes tracking of libpmemobj reservations. - Adds new flags for libpmemobj's pmemobj_tx_xadd_range[_direct] API: POBJ_XADD_NO_SNAPSHOT and POBJ_XADD_ASSUME_INITIALIZED, allowing applications to optimize how memory is tracked by the library. - To support some of the above changes the libpmemobj on-media layout had to be changed, which means that old pools have to be converted using pmdk-convert >= 1.7.- Disable Werror to deal with a new GCC 9 warning.- Update to PMDK 1.6 (jsc#SLE-5400) - See ChangeLog for details- Disable LTO (boo#1133276).- Restore pmdk-tools package- Update to PMDK 1.5 (FATE#326234) * New features: * common: unsafe shutdown detection (SDS) * common: detection and repair of uncorrectable memory errors (bad blocks) * pool: new "feature" subcommand for enabling and disabling detection of unsafe shutdown and uncorrectable memory errors * common: auto flush detection on Windows (on Linux since 1.4) * pmreorder: new tool for verification of persistent memory algorithms * obj: new on media layout * pmem/obj: new flexible memcpy|memmove|memset API * obj: new flushing APIs: pmemobj_xpersist, pmemobj_xflush (PMEMOBJ_F_RELAXED) * rpmem: new flag RPMEM_PERSIST_RELAXED for rpmem_persist * obj: lazily initialized volatile variables (pmemobj_volatile) (EXPERIMENTAL) * obj: allocation classes with alignment * obj: new action APIs: pmemobj_defer_free, POBJ_XRESERVE_NEW, POBJ_XRESERVE_ALLOC * blk/log: new "ctl" API * Optimizations: * obj: major performance improvements for AEP NVDIMMs * obj: better space utilization for small allocations * common: call msync only on one page for deep drain * Other changes: * The libpmemcto library has been removed * obj: remove actions limit * common: new dependency on libndctl * pmempool: the "convert" subcommand is now a wrapper around pmdk-convert * C++ bindings have been split off to a separate project (libpmemobj-cpp) * Bug fixes: * obj: fix type numbers for pmemobj_list_insert_new * pmem: fix inconsistency in pmem_is_pmem * daxio: fix checking and adjusting length- Update to new upstream release 1.4.2 * common: support for concatenated Device-DAX devices with 2M/1G alignment * pmem: add support for "deep flush" operation * common: add experimental support for aarch64 - Split development documentation into its own package so it does not always get installed for the build service.- Update to version 1.4 (FATE#325145): - build-fix.patch * doc: update ChangeLog for 1.4 release * common: SRCVERSION for out of git tree builds * doc: mark experimental APIs in man pages * doc: rephrase paragraphs mentioning eADR * doc: update man page version numbers * doc: automatic master docs update * doc: update README- Update descriptions from NVML to PMDK.- Adjust Obsoletes/Provides to exact version- Upstream project was renamed to PMDK. - Rename nvml and nvml-tools RPMs to pmdk and pmdk-tools - Update to version 1.3.1 - Bug fixes: - rpmem: fix issues reported by Coverity - rpmem: fix read error handling - rpmem: add fip monitor - test: add rpmemd termination handling test - cpp: fix pop.persist function in obj_cpp_ptr - rpmem: return failure for a failed allocation - rpmem: fix potential memory leak - common: fix available rm options msg - pool: fix pmempool_get_max_size - obj: fix potential deadlock during realloc - obj: initialize TLS data - rpmem: fix cleanup if fork() failed - obj: fix bogus OOM after exhausting first zone- Fix RPM groups- Update to upstream version 1.3 (FATE#322653) This release introduces some useful features and optimizations in libpmemobj. Most of them are experimental and controlled by the new pmemobj_ctl APIs. For details, please check the feature requests identified by the issue numbers listed next to the items below. Other important changes are related to performance tuning and stabilization of librpmem library, which is used by libpmemobj to get remote access to persistent memory and to provide basic data replication over RDMA. The librpmem is still considered experimental. New features: - common: add support for concatenated DAX Devices - common: add Unicode support on Windows - common: add long path support on Windows - common: add NVML installer for Windows - pmem: make pmem_is_pmem() true for Device DAX only - obj: add pmemobj_wcsdup()/pmemobj_tx_wcsdup() APIs - obj: export non-inlined pmemobj_direct() - obj: add PMEMOBJ_NLANES env variable - cpp: introduce the allocator - cpp: add wstring version of C++ entry points - vmem: add vmem_wcsdup() API entry - pool: add pmempool_rm() function (#307) - pool: add --force flag for create command (#529) - benchmark: add a minimal execution time option - benchmark: add thread affinity option - benchmark: print 99% and 99.9% percentiles - doc: separate Linux/Windows version of web-based man pages Optimizations: - obj: cache _pobj_cached_pool in pmemobj_direct() - obj: optimize thread utilization of buckets - obj: stop grabbing a lock when querying pool ptr - rpmem: use multiple endpoints Bug fixes: - common: fix issues reported by static code analyzers - pmem: fix mmap() implementation on Windows - pmem: fix mapping addr/length alignment on Windows - pmem: fix PMEM_MMAP_HINT implementation on Windows - pmem: fix pmem_is_pmem() on invalid memory ranges - pmem: fix wrong is_pmem returned by pmem_map_file() - pmem: fix mprotect() for private mappings on Windows - pmem: modify pmem_is_pmem() behavior for len==0 - obj: add failsafe to prevent allocs in constructor - cpp: fix swap implementation - cpp: fix sync primitives' constructors - cpp: fix wrong pointer type in the allocator - cpp: return persistent_ptr::swap to being public - pool: treat invalid answer as 'n' - pool: unify flags value for dry run - pool: transform for remote replicas - rpmem: persistency method detection - benchmark: fix time measurement - Prevent debug libraries from providing symbols- Update to new upstream release 1.2.3 * pmempool: fix mapping type in pool_params_parse- Manpages do not belong into the shlib package- Run fdupes- Update to upstream version 1.2.1 (FATE#321727) This NVML release changes the behavior of pmem_is_pmem() on Linux. The pmem_is_pmem() function will now return true only if the entire range is mapped directly from Device DAX (/dev/daxX.Y) without an intervening file system, and only if the corresponding file mapping was created with pmem_map_file(). See libpmem(3) for details.- Update to upstream version 1.2 (FATE#321727) + build-fix.patch - 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch * Add Device DAX support, providing that "optimized flush" mechanism defined in SNIA NVM Programming Model can safely be used, even if PMEM-aware file system supporting that model is not available, or if the user does not want to use the file system for some reason. * Add a package for libpmemobj C++ bindings. C++ API is no longer considered experimental. Web-based documentation for C++ API is available on http://pmem.io. * Add "sync" and "transform" commands to pmempool utility. The "sync" command allows to recover missing or corrupted part(s) of a pool set from a healthy replica, while the "transform" command is a convenient way for modifying the structure of an existing pool set, i.e. by adding or removing replicas. * Add experimental support for remote access to persistent memory and basic remote data replication over RDMA (librpmem). Experimental support for remote replicas is also provided by libpmemobj library. Note: This is one not packaged for SUSE yet.- Fix 32 Bit overflow in resulting in flying writes (bsc#986657) + 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch- Update to upstream version 1.1 (FATE#319673) * A new version of libpmemobj pool layout is introduced. * Internal undo log structure has been modified to improve performance of pmemobj transactions. * Memory pools created with older versions of the libpmemobj library must be converted to the new format using "pmempool convert" command. See pmempool-convert(1) for details. * A new "libpmempool" library is available, providing support for off-line pool management and diagnostics. Initially, it provides only "check" and "repair" operations for log and blk memory pools, and for BTT devices. * pmem: deprecate PCOMMIT * blk: match BTT Flog initialization with Linux NVDIMM BTT * pmem: defer pmem_is_pmem() initialization * cpp: clarify polymorphism in persistent_ptr * obj: let the "before" flag be any non-zero value * obj: fix compare array pptr to nullptr * log/blk: set errno if replica section is specified - Remove libuuid dependency - Update link to source tarball (x.y.tar.gz => nvml-x.y.tar.gz) - Add libpmempool subpackage - Add new BuildRequires: pkg-config, glibc-devel- Version 1.0 The API of six libraries (libpmem, libpmemblk, libpmemlog, libpmemobj, libvmem, libvmmalloc) is complete and stable. The on-media layout of persistent memory pools will be maintained from this point, and if changed it will be backward compatible. Man pages are all complete. This release has been validated to "Production quality". For the purpose of new features planned for next releases of NVML there have been some API modifications made: - pmem: pmem_map replaced with pmem_map_file - log/blk: 'off_t' substituted with 'long long' - obj: type numbers extended to 64-bit - obj: new entry points and macros added: pmemobj_tx_errno, pmemobj_tx_lock, pmemobj_mutex_timedlock, TX_ADD_DIRECT, TX_ADD_FIELD_DIRECT, TX_SET_DIRECT Other key changes since version 0.4 include: - common: updated/fixed installation scripts - common: eliminated dependency on libuuid - pmem: CPU features/ISA detection using CPUID - obj: improved error handling - obj: atomic allocation fails if constructor returns error - obj: multiple performance optimizations - obj: object store refactoring - obj: additional examples and benchmarks This release also introduces a prototype implementation of C++ bindings for libpmemobj. Note that C++ API is still experimental and should not be used in production environments.- Update to upstream version 0.4 This NVML version primarily focuses on improving code quality and reliability. In addition to a couple of bug fixes, the changes include: - benchmarks for libpmemobj, libpmemblk and libvmem - additional pmemobj tests and examples - pool mapping address randomization - added pmempool "rm" command - eliminated libpmem dependency on libpthread - enabled extra warnings - minor performance improvements Man pages are all complete. This release is considered "Beta quality" by the team, having been thoroughly validated, including significant performance analysis. The pmempool command does not yet support "check" and "repair" operations for pmemobj type pools.- Update to upstream version 0.3 NVML is now feature complete, adding support for: - pool sets - pmemobj local replication (active/passive) - experimental valgrind support - pmempool support for all pool types Man pages are all complete. This release is considered "Alpha quality" by the team, having gone through significant validation but only some performance analysis at this point.- Initial packaging for SUSE (version 0.2)/sbin/ldconfig/sbin/ldconfiglamb10 15896479801.7-lp152.1.41.7-lp152.1.4libpmem.so.1libpmem.so.1.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.opensuse.org/openSUSE:Leap:15.2/standard/07f48da22f77e7902124fb9b35694384-pmdkcpioxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=41b2fe5c0e9133ccf8c7f34d56830af192cf3e09, strippedPPRR R RRRR R RRRR R|a^JAsn+pmdkutf-84a303f9077d08c56b656bfa8569e83efaee3299e9dc111517930bd19a0f0a42b?7zXZ !t/O] cr$x#+c ^Qۛ u/6QBHR1Bm/ɶS@k!8ӌ/ 5+E/oH|f5͸:ʸ]ilbUY7IDk0ΐwLp_3 P#;ĘVdtEMI*lݾvESh]@C,u/@6;֔I >22S 6Y)芀􇺩5-rcK_e"]oJ2K%~ %V&!H=N0zOQR[bvaoSi$3僺y$T6Z2U4amKVcK| z9D_'?; \HNP ;[Fm! d%y-Dh3Y+R]a pv+,/HT5 ^F5v>v|}E͋`",-GkgXV;W1LPX“Kܨڲ@0^؋zME =^at1K/69Q[W17^eeWB J#y3qDyw{J5k_W<(=ao[˪E TӘ^ؤQad^,WU^_Xu#sCU<zĪnc.ԄM*̐׻c>^#f$|D_g9,@{1k%{ۛq99hm 21;D< Q*^I/aQ|5K򯥪-tm;OzEsL7tתqqnf_aOyrCͯ23fU肙~}9,_u0vWu Lo}5yؠ||oLp{4tP&3F6))>' JVI *✩dPml7?FUnӦ6ZԊ7diZfZW.ޏ$9mS?|U3n3?^横0j]y8ZSjP #ѯuGsŎ+'E]iG.[38!1*'.(UJ`UM;&><+g]KAĜFFJ@-kp50{sۈŪ֔NKԨJe{0 l5RԚWI!4qߛiY ]:%d !~UR<#yna}s={lT/)vL eRmCCi_rr6VH4H v5=U]TL3']nxBT"`zU`{񰏿dDow)Λ4kS]"V̐NBP @_ |qD5P'\ż-[ 0Š_BX(j8c𸼢=x/Ŀz сcOˊ~J[mܕ 5bkև]sV^_`_m)zmMehj.h{bed˲чڶ MUW)I.-X MxFe{%Kg;<p-WŤ^\6k-(JHYNًKcבS oģ;{ɽ<tI)諅d wb ' 0 9Uq<+L^j~J I-C`A- Bxƒn*ɚ"0ih=:/<;*Mx;~+\Ai`<g&սhADW}(Pl0zDb[F ^!oY,ڌmpe<38e#1>:pP"F,qp\CI r?6{PB&Rq n+ ; fF<@SDafGw Y5.ӹz::@]^<\3ce 4WOlr\vU=ID,8PG#kXi>((' 72䏴MmɀHD[YDw0#UæxExڥϯ;PbkTj5iҳVr #n_mBXx\f T[xrMԻ[l{֍g7󹶊M{-4C 5Fmߋ;WDMm8e9,@ox$xPX"PTL* =i|K@٤J@T^s1q4֝ŕ ^~˟?Is\DK/3"0rr_俒oy}ӈyf=keG<cF6;%FjdF#ۏF4}2WJ_j5DhpuR;cF sԎI{xA]jJH*qNP)rS['"aM`vCIž&`^خfTԶ:n <ןE9ZI?:פ1a}ֵtBƙEsYxn/&ps.[ښCo 3Ӽ{1^Yյ"ppu'û\J;:.x4%qmeHAf(q#bGT,}{cC }s2'q88ވ\~=BJb=\xTq,kM߮`qxf4M+@Yx謯`IUñ 3!s6rF8TzzuljlS`@T _ƽIpaUWvPUq'2M\.k<0;;DB J lvEay;&OmM*knsKKT)Z;* `3yl5e7in}spǼQ |ر_ns$68e݈,TsrVI -$E3O.; 殒{+S)hI8`c\~i]buc핕gaD_9]WkPF7٫U$f/̷9g|?UjCHAEQ>y7<E#oùp2-jAg==hx:<ʹ) XsƦ3F>q[?. e`)XUB̬_)Sws/b'&f"trIad%R5E. ,p#| ulY6H=Ao,,D{Pqςy6'TrFeL-& %%ZI%[2\EH?yEǕiT+AWc~1ruSV*|4٨ÌlH{^R2QgE8n2]a&g8ľt5ͫfXJ6WwdKmuEIPr[QLuy` */ڤrUcYն܇R5a jP?t߉#Oۧuz(~; PsZ[ 7٦1$VJ `_u;]sL F>f0{r80ߠaaO~ƽWaP<\ Cv}!zW4IMCE'dFLW9~,U?T^5 _l_Eߣ^@ߺ#f>jrr: ܚ|,_!sW̪/ǥBǰbtef^bC3!yiH_$PA >N/n<ϟ\Uʑ8AM#]ξeY:8_w`q ADC\YហHę;G!t2#,YFy%;3}[4BS%AXRL:w38q <=@H^e85iD;KC,33_ gPT2Pg\Qݸˬ]9TNp?uGG>+QaBc"lH%ɄZ@u!c1Q̶JhVoxv8&s`l؁NTmVK5 X5zbq ro >*`++35$L&GZ7wJH% B`=?qdcck0<I@++\)(hT83Bb`}]S/pP'm\ ?J}?sd–8w55'ߢuM"XFO tB9³=Kfmo@~ _v0i?xe Mȹz H b)0\hbDf_̰ڃ794F6@0l]JɞĀSe7OJCujQdzcyadأPGj#O='Tˈ+Dža>߭vjI -MvBEjU* * Gm"tA}]F"Ȼ#_+հ]";j1avmm+P5ߜ LN@ǯ'(|2R/40Hn'HeoͼQ/k M-1INI:P:ϕJ]RBA֍6q36zc4ҙiYYCa ^]+iuX|NgBپ{3r@dš.Y&ˋmC%۽5̱u@-`aHx"[*.GN: ҞUcc߹e #"ya8oкn"vkcrE(i4(V[(üŵ|tKiu`iwXDksu@T18'Uъaj@k{Zz=hw% NFL v?W{Ǹj/U\ |ψo:M LS5b(uN6ַz@ڀUȝE*o g՝5RB#qVU-tMjYAkz9GWVֹ. 9sJD~98x6]N9\Ϫf|YdX5o|& L2d&㿘HSь K e0O_ OF74 m[ >  =644_u_bÉڄR+| % rGNlNhSoA$CL7);r cT1k))3zNjj&~">9BNt97%CJyZu)EGjdʒ;.\E3- ˹,EcB?Ҹ6 yt\O鐂Îw|L/O\P]S518DBM1 0g}U O-f|ү![{OIb\U*W68ʶaŏ=ya-P$e/( ΣF9JIRݝ[އkuz-)S9bQGJNm.yIEDAúGy$&큓`Y \ȸt8گ=$sڝr{QZ״3(dlMOw#1~Grka]A9&Ī/|-,{HY ~-Gxg}7IA}L{:Q&ِSq Jvo A(jf1m>?_$?p2q5~ބ|`3g#P%*TllN*%1 w!4jX R99ۯdeFHPUlDW]h]t =)7{lͨ^$` gDC\S=#ۺlR= % |t$̮1RxI<8WlxQSZ˂[U<ȒDɿг{P Q-hoQLly$t'좗¾~:ɗ $mźy4 8 zk9i,tʳܨmSڬуCjX_}-l{FdUG`d/ wdmo@͘r"&ѿqeRfT RNT|)MyW;[ |^Mt'9cHI™" yw%B8'F[xr5'Qd/qKz9hPIӅ G$ru0X}}$ɐ2!ҏeXD߻(YO6h~`L[u+ J>v8:]pQ+\@qmzX|XZh9@,1' /oH.Nei9t./csw!7M0bT`'s%jSYVNuR)xp9k6:ML!w3d㑹}x}ɺ0Ձ}I@cG)VNR8@$b7\ZB6*ql~gg #Bap7Ft+%h(rƘ"1fCmn4+("(vB /cl{:̈ _D oji:wNJt\Ko,~;iCK677^SFvאl<^EA7S09u\]JoGDj99pr WLJN~+pm9ɾhM`c3Y;_APkWha1'Y32l'o/=֕_K'2 64xWfIU4Ү(6%_b[9YAlߤk է#(/m퀴*cq{bM:cmX/%9f:׻̚!YUbahke&Won ^ ;Hש7Җ1Py5F!Ϭ{`^CI5A`l}ۦ ;zaHLԋd$4J6[1&[Fq)~(}Kwjȹm`j䂯$5{~&0Qa`@^+F?TCry?=UOߔ#ӨzQJ#Ѕf+nIc4j">#2l5IZ7? 8sy*; ۽V3H+ Ө)'N{,OUBzC U`Ѩc0֐A$piZw|<N4 $"@m3u|% qgeB("9)A>& ZT9ٌBhff¶^ͻ-EM؂cx.IZ?WIޗ[klD 4N10$Nq0{:n1'izfT_oCX]T` AJ^. 0YZG}6 ֙J8/j0\KkX$Kl3$芗, Q́Y\SA {o3N4EH^Ru/I)/׉BYjoCZj82V\MTB<"*QaȊ2ΌrY}.q IͷdSymRE zxfaP"#AlҾ"":{*'j:n-hit-!NN!)Y,0Ό?D)u Y)[Ğ8[C+0,gv<6|% 9:8np^=3Hʐwa֟EjaǍ)wIqgi^:Ҹޏ/d$Հ\V:"_5/er mټ@s ?l9Y:f~jF[[ aDQHA-<>!ؑQ4w4W?x7}`7^_:̰7GRSp]rL:A~UsDf>Xb/-/pTg4;43-O&}QN!/r.XlduJx@ꅽ T Uz U,llZ<%nc1DwvKXh&8i;Uto,M0#)] ]Ad%ύ ;cyX-N/'Z": 59FcA167I,6_t;ѓ#ng-h9ɾ5ݵn"!bR&Xm882gBW0 y/ҦrRgؾUR7)@NλށrCK6p.*k@{]BAZjbNjy uOr0)bv;b8uVB-jP'I n̤h*l A4ȞIHvpkb8q8WdF*NosJ{nƈx<^:׼8yh ~@Tå-#D@ LG% 9┇P~.oAf(Ɍ~ԞYvIW( J8oS[a= Vkʹnw 0$}eY(ݻ{(JYPN&ʔY Dcq_Blx`ZG}:lpqGDm#dz; vV篛Gm h#jvM-(b=wtn3lDҒ]?%S| o>:HEd9E!tk^@Q,;"zA]+PKC[jˎs}X?֬&r8' =u/᣾Zީ$ngUh mEb_d?riv+f҉>]wbute$MK#\-r۵ @f ~NsTm[ ڣ|zp&ŀ7^F3/2SɼmB|S+mNqGkId4qMQyT?TIiWω#Voqny{D*ap@*o zw Y3Bٚ/ q.Wsʕpə@ޡ;v@ FLMmz[zTrm֭T_yBhWɴʼn͜4S7LŬ73FP$} Raܡ譤pqPqH)0FPwLT:~vR>k3A$B%Fx u6+4o¦)ŲVT%#KUU[E?|XYo[DV-# yLr3*І(L8ELO]R_'-Ș+z-h  {rݸ C9W*Дtk90nzZ)CԞzogVm̜TgkM].}ܰ!EB4VotRNM 7!COnWo>5eq1lᱏapD~Vv-;=ݍP3VrVSzYmwVUC=Œ=ayH^m6#4ŸNOm ex|n;k ʎHRZP5/h7|\W^ڛ ڇSrm}xdrZ! h xDIZ&U1kFt6HOT5HHz.څ"#ǃ 95Yy*:|b6vcbt0%Ř gUu2;h;oG}V <>܍ k3XM3o $ )A9&P{cЗB`'T֜@12&=B\a7\\6X/%HGF-j46$SฃsXC ўqf^icˆ' s58n v ~h熒$}Ө. ]į5Ljnp<<zH]}A { b,ó Rpt%2uB{%\QWi46 #uPHp-HLl[<@E /1Bbm{3w|C $ 2(-BgB9xΗFdyi(hLr,{3?WߖdyD<\pk3@(*Zz{e?۬y9Ŵ0,,N+ڐ2x<,.$lH6k!Kn3ok2Jߵ}sZR-%| O)J ;tQv \ڞ-ůQ?Rn蹨7dA~Xbɉk/;U`3jeBtq>Vodx縡P2OouK;{X.!Z6!'{kJZ r)lr!ȩ t3(KIŏY0`\xDY=·Cy!Bbmr[xVSsҞUs66xN; e*nÝOb䈛tqyǃKfJyQϩ/ՋդO_A"ӡd-jϺ@m?\յ g'k#5vq!(4oV)'o2P7'E\i8гXKviѯ-±P]Ϗ.AAɓ@ ikBiu5k|1R)$8 tC74wQo_*n! u%p; KSt!6%zy699D^MfHed<_5I&p75H:G%ߕ=KXG޸&KY&lۭ^zyNa>=M)_Pjn<- YCJ'q/m l&v{AAjOCIio 3Hk) C/8-siJ(N_L+ jy; v6e=#kIWL1ܖZU[}[ 2w%[p M MB(W1GA#pWCȡAYc)d'Lҍ?df(ӳX}NXJ5QYPV`LD%a鴆3XV SNbBHz1Ϥ` $h\2 -@WysE;ˆCo4)=MJs4ަn)ecc#IX`f_l Eb́'FVzE~bHY:m|\Ki tjCiL}ӄ+d.QYP1^rBZLlJ6\)@Oәm)ڍZ, {q:neR)?sHjF/Eb=1(Mv^V9B,ռSa׃>9<4lpp"/]Ƴ*S0 L~K7BcRUbOE%c{0ze46j-|NMex,;lD/cnu2<]kbTXI03-VyB IR ze~Q)Y uA!/̍yo>0V-wܮmh%U[ d } )ݢyf̰dNR^{u<'b-s9*NDmyg!Z(>/׶3l"W$ܘ=3 ȝqmM8\߱EK-OoDSBcR8Ip OEm^ZPdSBx f.KNf|UBD qhR<2i"ʏ]{X+p"Ϙ\I& wph+nE:7k>\lv5ngDRU6~^)b9F!zk+ @x] xCn$d=۟}me]7(H[hWE>w}@~>MTgBO+yR ':Hcr&fdN4f$~@)cDvEPh)8ԝݣn& .SA4mdlnq_Wo9I4{v-miUKTV!@̆@Ly֨O&W>W ӽ.wCsPrX)u}S#n;7gj-~xP֋#?'UWڰSK~~2$7ڕ;K^o/@Q~G+ۉ'KXTVCg$OX;LU;L7VMu*5< ].O_YA',Z'=cd,AձOJ-wאQ'4_`4ujx[Z)3rx{^hM5C9dDYNmpԻxg/W;4JwO\V30f;2V\ymDObbcDOAY;jB -=1Qݛ,qt[CWj*W,hjs<22 O-a"Y= cY H3j(bxIa"/4p _>@wD ?:_H7AiW5q%='~qQ-LO>` H @1HX@nV0Xbnc×pۏ+5manCiDzkX8'U%n|f$/$_hP .Gj4tp$Ɲn]/UWMͭ&Y?V`n?vOm?|o󶗃n<r+˿9P =}J3D:} zb炄Rg`4d[wXUY_W@:ނzbdiHX`1K  ;6HcjɎz;` .D"*fqg1d(jJ*@Ƥ,.y\Ï%gj0RK_ :?_->H*HjɴBdT*i|noR1 loP|r {Cu0T]?"Bj\0EJWzG+HO9hրDzsl (ISWy/-}Cn'%0*^Ϡc[B BxGĤd'dZo͠e8_$}V_,<5OQ 4WGy aj!fiͶT\ֈ@^ ~@nu:PZ0N,p7 !_+;d"U v!UwIqߨbT=9Ny<'c~N|?iP݂%@R3 k2Ia:zh f35oےƫ"B<jHdbV.()k(=|Ȅӓz5F In*k;OK95LlZF{L*VL2{ m!_ؓNDΤ%QBǴE]%~5Fu̸REKJ1;!cq'PERo 5(L\~_S܆dg0AV~N8 ,>庾,d2HgrDfMc ޓ -=)kLևmB ITSƧ9p&m@%@z.Cǖ ! 6`"O݆Mg\0G)nt'`=M*V绋!/&H׿ yŇΘf2x?Jr0PػK5=.-r# D,aFWHNƃ$\bHlmu%"6Bꙶ8_ 1߹>ݾ1 eu>)>}1_N0,9OhyH@Rw+ёa!#fI\ovYo}^6SZ#SυT-Z\T ~k7#C#SHo U>oD* j/3]Ǐb7koDW:-@E?K0'[EP]/vD(zPEe.X;Gx{8;$. {Xqn0Ljm`Xrv;c^QH" ˨ĠmdW""L;Y5:g h&X};0G3@ӟgkr:Af. ѿT|ϼ$]I)߸/LPS=dD~L)5*0[hK̅2L> ع zlo}ؽ F5*=;-SHgߵSH`XhOuƖ5'T=2g5c\"n8< jqh8]D $Pg T5Say3 ="гG$A|`"smzD]Yv>r&.N̬%9 5z(M7nzTF,aS]c PslS>*}2(1\U?9 :K͆ b (ʎU OMn FByTG5`U ".& lÐf30ldec2ەZkpe8ߣG ygD!B7f܁uhF3#~QхB<DCǜr/ae+M5^_)RZB;Wz Fkrטy$bà+@l\ R錉rpYK蠯i)Wloqd9_!ClPq,ީRJSuV9ËgP2{|0ѡtfS~H + >ݶM ^(FlNC y䏆N2lTa\I;WYor3bm"L jeȥvǚI0RFw\ci<+L—괫bbN-ZV߬DѸ̸iզ!U%,C^Kx$38Od폡d,#̂4,6P$Lra}X`dEsgDkZCH5Zm1ZVs .̇Wȵ%`Ot9 7%\*~i Qcu-2ҤhJHUNdV6v*U=hxz~I"dih~3Ki .`l@[lG`֢ FZ*;kN%faUM9/BE"Qճ̍},k^V]/;; Vea5vll.{^U-磠]ςXr%]fUޛrNN< 5ت[": %sS@v%|Y?Us%-9[%3 h_9يsJ̹m*GY֢Qѐ).SxPl/cZ . *r uXA(CU~Ȕ|xKE[y |@W _M.V1e[J?'{N@ftCjz?D!_G" 9)ʲJM4f3,>{H3x7 |N2E7 ֈK"^lU ^%N| :8{pCi֌HϨM6| brZsU9Ľ.3s4]o~qFVuf"RܼG2a D(- h_#Pׇ`[)!)7L6ׂOP%D4Ax4VئdeݡD#!͓=CDr⍛'&̒POGMMI97` Q}njkMSk C/|Vw|a1Fh rDpjfn<.*ेgٍDQl\TlRaDel$A \D%S򞫽CM'+F^-8.fq*Ki/}7TmM?X+| =.ˋ'Q˓s RߦDp+qeH6KЈ {nz(ݠI(6^['iM2B`1pikl"͉ʄs&e2!~ eOq>M=tEyAJ0-/y_&t 3V_g?pm@vzZt/R9K<}'v?l^r=6*Ö܈Cpy_ʹf(k1t@ ͠@U&h#I&>r/T8vl+Ҭw:?hLA}MPj)Z@UI2`} `YYWz)%i;w+,ԜĚ{ۥu~:^F\*h/?asme]CU4~Ƥ4jVK5J&5q[CN<ϣ'lD!Gv#8>%۵edV?E Gt6zNwf :OO7i1BM9Hk1rX12c' KGn]b)O+OB#jbbDž}@]X٠qKc+X>i6;a|+a=GeeB<rRP8: #՝rvQ{?-4X'ϹyFK!f4m.A A^GR?) @VبJ4 @B_%!g]sɺ{UD I >nՈvf(ycfA`[UM48fDX_?VSaj_z/Õ,ɌDn6댊($u%V%pk ;uB=H$b(]IԶLFsypE*uo?[L5FIvv(p!2^Kv^H$ q 4~ |DG+WerZaU<8l2vMPNi 3sVBkF>1 F:W!_#CMi堣(7{]V؍_: SpB5T?d@ͫIZذL6S4ғ`,K\~AӖ\\!iVE Ɍobr$m9U$>яD7*h z3X^!wOWGyT"(aP:p8J@lގncB!ǡ i5sf%e/w8_ձ0򿽡@DqDBAtyImSIK7ĆwVbJҋZc+³ӻ 8YۯJ)aٔ"L8͐;3 ]A. Q [gU Ép>j>Ęk7ai! S+|E}gKI0X&Z0PMZK9ޭ;ZmUM4ndN %ow *oy8Q x{-ZRNgRh-9//~i] $tH-QGtYT 7eczZI_[QOi6^*F+TYLBgq,?Vd ظ:!PpZ³`>L:?AN%̼w/Jfu#1),xr-ܶGLiW="OֶyO ˍz U|F)qn*ݎ j9?@>Ŋg˟5싲^H~?G%2Ѿaxm:9yfFӌ,cy;я@]m^$q 2Xe;~=N)uz4QZБOKi4 p|V)SMut;+PioҸ[~meť~ܯ&`j)6kjd*znQU YK)jl ݢQ֫E󘿐d@Î^OWZi1zŏm.xkOvJn{HseE|c^F+# ӄ93P$] ,Uu}e:g`e})BNV t_ZL"xZZDOuW$KY#glVJ@߉lગfU|1KQ<ޚ6)aw9o}Cu\b{kZiLFCNyGAjV(i3N4آT=l_mpw0MOJ"PVѯ2CO|c9 #x94rl9u*sDX_+[(.@˃LgPqbfנ @y5\PԄ*Y0yKzvqKT֫yj^B7GA.g&$H֖hi B0IEyLOJB#)pMu%ܨD,tΞɖeӲvK0Ӏɞ>+%#nAB]PF 򗏸v"I$AbN?hy}eԒ: 8a#S X7oN< ?~M^Pf{>hpn62R Jc`+0, = sDR^?j5]ߐX}쥻p36'% c+q|3!HB®뤭MauZ6<X[>0Xa$Y=Neaw ~j #m?HųK<)7@">xCĄ5R=ڪURͷ&Sl 3^@?.˞wI1 ۮ jj9kn0dR(Vcř_o] sUE{ ;"g6l\U' 2"_;s+ϡyncD%=X EY~-=@իX|9h bLϼ'@0e=^Gh@6ʋ0>t{0`2npMIX6u%Řfs]7F C8{.y&be4 ?JOJLR9ClwS‰nT*}:N@tqUص{^I,RͤWF fÎuРb)ZW"2̛Dfa-NiNk ȩcr&vF!fvfت.R@d~d[5(dă+Emo>$8ua߷tkˠU֋&,^hoV,Lw-6#F} 1H?]#7}{SDAx{9Al D*.WPqظnj+&,#%"C ru+o1ߐu/21U4z*4+ ef1,_{C#j5Aq.ᖮU.ڪF5ಁEp;֥2`Rh煋˖8xPB2̀‚_ֽ9erS\wۄ)CHKHeI5=~̧flBtWuQFq%'שjW)Rʗ5>gmoIZH?p쾒 *jM>ed( ᨧXfc&%SxW4W):[ j)q"jgKq(-Am[jr.Ir9t}@Ly b_c?qa *=xmFLheP.1 E̠*KB{l?jإm`\z9:D[Bd<:sn3-BV } Z@zU[o=st9̋wsjȐҾ}i%{G+tbZO(PTW8[joo {'Hp 'n!c 2Mj~!S> ٽ[<1ᑷpM g-et5oU: EFп*Hl7pubrTJ~F\,Ά,/FEDu5W<6 O0 s(/2+ëS;Lb*AxKH† JŸ4u=}"O-8J1_>MlxO_1 Yq-)H76sDb {ۯrpК}I`e&ʏiڸ&!ċY%CHvUל?5$׽-iM%vR;_0.36!"U5:)jEl){\K [')J_% $,|BDlM;n&TM~Bښc2 BUԂ%BÐ8mju%fKP9e}]m rb~l2a'*v G{`@wӁL%%xj;KpC3& "ji&Ե:MS8ҫF:1`XR|2ҙ~'~b_\V'1VRWvי䦠ioH\4A ĺL_3``?7=[ͥο9cIN#8htKJQ A(ΚKÜh[e,ɀS[~ytCF6 ty8mZɟ$AvY?U 5' 'VApOh!nd|h>eCiF ſfPn@lX +|J7̬ݏfW! ![irὝot 6/TuK p)^\@#*I22Um{E0d|\oAo~֠ϲo4{NzBv7B9}*S>4ARcFhz5eɐ'MA10C 2ׯMX~xmqV5?w⁼|~t* }v -o޷cuCrV.|ȃBإp7Pػ32,D;wINw4A"1ޓ[9~[&€IȾ2iBIc$eESg HH@,cU9~,@2^ }J1l{0ѓӄsÉTY( ꤹ:SNA6)}@s;Ktv 1h{xcTVP@dхxe҃ƲIC`EOz`zt->"a8?>fkY}Ǐ@7}5J8sr"*~y@79U6Ҷ }"jl]:g\pp㑐 {3R[,~Ʃ80|b3xH Ci8uvߥak fdOm<|=CTZgo}wF_ 4@KH%i!- =ܘÜ5ӅʏE,f[A!siq0m[1%\-3RYNBѲN jSTuēY"WuHxTYb~YeԇHj"3b/o*}tp\֓tNm]nJӚXPYS![ 9]ф7O9ku%Uv5٪H]"X폵0_:Ƭ9v@9ݎx. FIzy̒w%UBb^֤>q+$Gu&Ӏ0pU7\V;͏rC?E {꩕ƺy{TPd 3褍TnQvnM_FD#^cϭ%"Qhl?TP 7<fH q9R k_A^z#G6/K(% ɅcX&Utxg֤vk\$6@27uQs@6ÀA͜F,:Ţ{ZqU$~:&52PƮc$Œkqk7ǹ5P#mӶ;=/<ʖQk>PJ, ~0:˒F<9/ʌb;>G@U9D`'BP/eP OU\2R' g efOt,!%4 aQ!յeeOo`K%ՎnFǎ.̌6,o;%MLj@W/mnl bqb ]lWSH3[HS͵;9cB\W ֛hY1DrBW`^=̓\`PE<4 z5 ú;.b2Gɋk/It;.UNRʼ1@ "ŏ]6fn.4njkMtT䴁~{\89 *2SQ EH"q 0ΝrJV} SbkxZ\2~V`9~^)flgN똦Pbl%Z(8nދ:W.Rx/HN/"\y GMu0^&pqHjCQ 1ÃoGZ MĤ/$(m#ɿbQF\O*DטC!ȍUCJ0fX$ɪRσ-i&WZ ί ~K铦b(׏q},CΫ5uff%q|*S"I&ܷk>fF>|}ɜ¯_jx<%cN_4(o.4;0E:w {-O>Ag(;*j%KC\1a10L٭m_[{Ubw 81?6D>|xakqMO0aU<ܚPߘge Y`kF zUԜaj*Nnϕ-\?s{ǔa*IE)_%ϼOypO!d疿(ď8RWMK8gd>zk9!S}=MK[Bse9᪥TFTIX_%ht=/YLjE .z[PVH>ˍĿr `cEČl'3mCvUI,b/>jtH6ɼ<ɈMĪc _KUG T<Bש*6 DNK 0F9>CxB!a, T 29Jm{8(G4#xA)!R)YcOвE/TAVe*K@0Dyz&V\7.jJ9WĞ5 h-15YSpɣC^i =C͐sژ`+}xSQ^K$r'oԡFYIp#uLBeNwϹi_ 6%tA!P=[~K&&Ҡ~mTCe$KXӮl Cq/ ,h3Ubf*Jdxu7" uJgU5VY&Z4 XK E}lF坰ޥ-u{wo+_SSt@ lrW.j͟}?hŞŖ+UYB=.ef$Fsq\.~ymxZ9pb&ڰx|4Mkm֗I24ܖd8#~9q:K- 9 MgŔkZ{l,#YΛV[U@GBjb6pKרJ|UY ,UQX/w񦱑,҃6g i8Xv>:g7^uAQyri&fq-n<5VAN@^ږhe{3hE"dAq\p~E 4x]5^*G* ʧXvWw+B4|Fnjv_˦1&U8EYgS2$s8'0EG8;bs@o_Kysb2P A9{2]}^E^\Sw=ZX$O.:R8b*Ԣhf|f?GtjY\HNK S2k?.KE51ޏy:]yZ} krtrYͶc+9$yM'W R s$5< pSωZx Aq~;Zw-Ƴ>}-Lѫs<_Qb6NS*1쭔|ؕ"%Q,"i1vAH#҄I1yLHd;^#(&ԶNѴ|N*1_ ܏xQvvş ^kG't?cҶ0PaHjV=j%ԪȠr 6yEjVI^Ju(:{SGJdQ,9LFjMv-_=:5U\ʹWiOq ˕?aSN[loj1eY%f*(E~s nnDNu40!S8v_k=+<{g54t,- ܬP[OnT}?_⪴.+:+:L)jLBBNlT]æ<ݘ:˂.PۨDlA(MV@IŠ]2akYwQ:(76+M; ۣyn #/0s{qMy΢7O"mƺM zpF}gKm nnݣ,y۹(a=_1X_moXęm+0*Q/&qu_9pecnSZ> eBLݾ]DrzT!OJt)sٖ78R)~~px^a%R-Y2aݒIY^z@=^+Xn,r|*rX~&͡m>U_|_Q@1z(B{-=J֐_[ fIb2Vѓ 3@dA!(i:l*G}*ͭUb~ '@vxppyI702,Ͳ %4Ht篻jRGAAl⏝>U;q]-PaDkQTHԦ \GwtRǸ1>;8o( ҨI/4OYGsگz-]yC_=S,9ˊC ySH|sTm>K'3JE< &xD5KM7w`i&g{ehYRT 쿁*'*F\PQ㺖m3uh#$e@ (2'-&Y|EB{CtP rA&zvMдUFT$ ?.WNB@jGR] " !$0X++7o8}k$J9*q1=sÄjiafiUUN,4 Զ*ӾslK | -O >b}#SLZv{1hD 0"}w dJgp5Ʋaĉ W{ڏY1<US'A0rE?ZIe|A3Fe*7{h@?w$IaV5>80#=pRd䁾3G"Zz܈,0糈o{#/6UA^\+mNaPI"֫tUJH;zOցr;w^N ⑐Fh=yMDeګ@b8[F%4~A4)uV>X~!A] ;g3(nh%N%WV1R&L%#c"F;'ם)VJc1]~b} ndWYC10@9<]R}Bx9E!CHp Vc!e?S-UsM59E$o#k {yԖjm/'`lM׊+;۾ +ӕ:ǟ{\Rp-ќ-Yr 6bDmduF)^i:O˷y)P{#570X]Xu?$X1G1]jТHuA fNҤOam?<*䩻;Ɣu\7MoizN -\s,M:څz XWXC]5&hmas(-` n`OX -GGuvsӨXC?qz s$\{wh߀QܐPQz<\ꌦezBNY{1 RjNihm8M~By&J\,z' 9~wd/a54@8 ia1uTUg*)euy hl5n'xiwny> PAgÄg H{+3:l~c5l,^|^N*"S ޲0P(WW6  <˳ +U>lVRkB@|NP¯м 3D  YZ