rbd-nbd-12.1.0+git.1498654198.20d6a47cc9-1.2>t  DH`pY`E/=„t< Q>XZeֆ"e BKVs5@μnh2@` <r Hzbܲ%f~nk@6%m{ìdIFAUK*%<+c G+MPSU|ݦdHNUyVpdDǏGUC1I(W! @п$*4Xn`Q0n("f>O=8t5 4r@ ]³'wH#lB:S,g,,ܼ0vSF5Ϟ?G] L4ɿXK/ 1VfRi(>:x?hd + / K '8>HP T X `  (R8\:9D:: :FGH$I,X0Y8\]^bcIdefluvwxyzXCrbd-nbd12.1.0+git.1498654198.20d6a47cc91.2Ceph RBD client base on NBDNBD based client to map Ceph rbd images to local deviceY`=lamb78gopenSUSE Leap 42.3openSUSELGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgSystem/Filesystemshttp://ceph.com/linuxx86_64cPL큤Y`=Y`.c775f501d55ef7b707718c9b634b49789f8d61f58da87a2006d116d979a2ba84rootrootrootrootceph-12.1.0+git.1498654198.20d6a47cc9-1.2.src.rpmrbd-nbdrbd-nbd(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@   libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.16)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libceph-common.so.0()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)librados.so.2()(64bit)librados2librbd.so.1()(64bit)librbd1libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.7)(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.9)(64bit)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.1.0+git.1498654198.20d6a47cc9-1.212.1.0+git.1498654198.20d6a47cc9-1.23.0.4-14.0-14.4.6-14.11.2YS@YP@YP@YNT@YMYA%@Y9<@Y9<@Y9<@Y7Y2Y0Y-^Y)j@Y(Y(Y(YY@Y.Y@Y@YYYX:@X@X@XX@X•@XZX@XXXX~@Xn5@XOX=mX8'W֘WҤ@WҤ@WҤ@W#W#W@W@W/@W/@W:W:W:WWW@Wncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comjfajerski@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comrdias@suse.comncutler@suse.comrdias@suse.comrdias@suse.comtserong@suse.comtserong@suse.comtserong@suse.comncutler@suse.com- Update to version 12.1.0+git.1498654198.20d6a47cc9: + build/ops: rpm: put mgr python build dependencies in make_check bcond N.B. this effectively eliminates the following build dependencies: python-Babel python-beautifulsoup4 python-CherryPy python-coverage python-flup python-Genshi python-html5lib python-logutils python-nose python-Paste python-PasteDeploy python-PasteDeploy python-pecan python-pyquery python-singledispatch python-waitress python-WebOb python-WebTest python-Werkzeug python-WSGIProxy2 pytyhon-python-openid- spec file: + removed BR libatomic_ops-devel as upstream replaced it with std:atomic + removed defattr as they are no longer needed on sle12 and newer- Update to version 12.1.0+git.1498478524.117b171715: + include 12.1.0 tag to make "ceph --version" happy + tests: drop hadoop-s3a tests- Update to version 12.1.0+git.1498309403.f4fc02fff4: + upstream 12.1.0 release; for details, see http://ceph.com/releases/v12-1-0-luminous-rc-released/ + revert several pre-release commits that are no longer needed because the issues have been fixed upstream in the meantime + build/ops: rpm: sane packaging of %{_docdir}/ceph directory- Update to version 12.0.3+git.1498202776.b806032985: + Integration testing changes: * add DeepSea integration suite test definitions for teuthology * re-enable several RGW tests that upstream only runs on Ubuntu + ceph_ver_hack.sh: use git describe --match + ReplicatedPG: add CHECKSUM->CMPEXT req translation- Update to version 12.0.3+git.1497426468.6984d41b5d: + qa: add initial deepsea suite (task and test yaml) + fix "ceph osd df" (regression in latest upstream master) (pr#15675, issue#20256) * mon: move creating_pgs and reweight_by_utilization into new MonPGStatService * mon: move most PGMapStatService into PGMap; rename PGMon's to PGMonStatService * mon: mgr: move 'osd df' handling to manager * mon: inherit PGMonStatService from the PGMapStatService * move the OSDUtilizationDumper code into OSDMap * mon: mgr: enable "osd df" on the manager * qa: add a check_commands.sh script which looks for commands with no tests * qa: test 'osd df' in cephtool/test.sh- Update to version 12.0.3+git.1496909744.9f667dc335: + build/ops: rpm: one License line to rule them all- up memory _constraint for ceph-test to address ppc64le OOM seen in IBS- Update to version 12.0.3+git.1496902753.b18dc53186: + build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception (autoconf no longer used)- Update to version 12.0.3+git.1496754880.35cb2861ce: + merge upstream master (b1d06a6b54)- Update to version 12.0.3+git.1496494491.ba3c561a92: + merge upstream master (97d6e150e5)- Update to version 12.0.3+git.1496306960.2db336d85e: + merge upstream master (b19352eec3), fixes bsc#1041492- Update to version 12.0.3+git.1496147556.f1d6115861: + cmake: build boost::context and coroutine only with rgw Beast frontend + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x + build/ops: deb: no rgw Beast frontend on s390x + cmake: delete excidentail reintroduced line. + cmake: link radosgw with boost libraries (bsc#1040119)- Update to version 12.0.3+git.1495849076.4457d36178: + rgw: remove fastcgi from default rgw frontends + RGW: Turn off fcgi as a frontend + build/ops: drop libfcgi build dependency + build/ops: rpm: apply epoch only if %epoch macro is defined- Update to version 12.0.3+git.1495798013.23dd2b67dc: + ceph.spec.in: re-drop %{epoch}: prefixes- Update to version 12.0.3+git.1495787939.3f6446f64f: + build/ops: rpm: adapt License line to Release 2.0 of SPDX spec (issue#20091)- Update to version 12.0.3+git.1495675338.07282a4057: + upstream 12.0.3 release + osd/PG: Add two new mClock implementations of the PG sharded operator queue (pr#14997, bsc#1040103) + build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (boo#1040230) + build/ops: rpm: move RDMA build dependency to distro-conditional section + build/ops: rpm: move python-prettytable to distro-conditional section + cmake: added empty RPATH to libcls_sdk.so + rpm: drop %{epoch} from new rados-objclass-devel subpackage + cmake: fix boost components for WITH_SYSTEM_BOOST + cmake: build boost::context only if rgw Beast frontend is in use + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x (bsc#1040119) + ceph.spec.in, debian/control: build/runtime dependency for cherrypy- Update to version 12.0.2+git.1494343993.7527e4f0b8: + ReplicatedPG: drop CACHE_PIN->WRITESAME req translation (bsc#1038063)- _constraints: up ceph.spec disk constraint to 28G after seeing a build failure in OBS- Update to version 12.0.2+git.1493341348.9148e53: + ceph osd: add support for new op cmpext + ceph_test_rados_api_misc: add cmpext tests + librados: add cmpext API + ceph_test_rados_api_aio: add cmpext tests + test/librados/c_operations: add cmpext tests This patchset is a straight cherry-pick of the upstream OSD/librados cmpext changes (bsc#1035937).- Update to version 12.0.2+git.1493291471.adb6a43: + rocksdb: sync with upstream (bsc#1025891) + build/ops: cmake: explicitly disable MSSE 4.2 if not supported- _constraints: set higher disk and memory constraints so s390x builds don't fail- Update to version 12.0.2+git.1493238434.71681fd: + cmake: added empty RPATH to libceph_crypto_isal.so- Update to version 12.0.2+git.1493227670.3396ca1: + rgw: use a vector for options passed to civetweb- Update to version 12.0.2+git.1493192333.3305a0c + merge upstream master (0d368d2c8544247a4aed9c71c74e77b0c6bbfb22) including 12.0.2 development release- revert commit a9a50f690085091bb4446095418237f9fef712c8 in preparation for rebasing against the upstream implementation. (bsc#1035937)- Add ibs_constraints.sh script to address s390 constraints tweak needed in IBS- Update to version 12.0.1+git.1491557762.4e47e9f + merge upstream master (2950ad91d25d0d6e2e3fb6842d5bbc36353ba2a5) including fixes for: * bsc#1030068 (s390 build) * bsc#1031311 (ceph-mon.service not enabled via systemd preset)- Mention bugs fixed in jewel codestream that are also fixed in the current codestream: + msg/simple/Pipe: avoid returning 0 on poll timeout (bsc#1014338) + build/ops: fix undefined crypto references with --with-xio (bsc#977940) + ceph-create-keys: add missing argument comma (bsc#1008894) + common: Improve linux dcache hash algorithm (bsc#1005179)- Update to version 12.0.0+git.1489432599.165c23f: + merge upstream master (0c2f5f7214d2410a7519f88e65ed5273d6480227) including fix for upstream issue#18694 "ceph-disk activate for partition failing"- Update to version 12.0.0+git.1489159457.410e200: + build/ops: fix Group strings for library packages- Update to version 12.0.0+git.1488553020.e902441: + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + Builds with GCC7 (boo#1025891)- Update to version 11.1.0+git.1486588482.ba197ae: + Update to latest upstream master (3d740bd) + cmake: added empty RPATH to several executables + rocksdb: sync with upstream- Update to version 11.1.0+git.1484919552.9216e9a: + Revert "rpm: put distro conditionals around Source0 in spec file" + Revert "ceph.spec.in: revert Source0 line to upstream version"- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch line in ceph-test.spec (rationale: ceph-test is not shipped for s390x)- Update to version 11.1.0+git.1484745543.7b08de5: + Update to latest upstream master (36874c8) - significant changes: * cmake: Turn libcommon into a shared library (PR#12840) * cmake: fix rpath on shared libraries and executables (PR#12927) + Fix build failure in ppc64le and s390x, caused by missing "-momit-leaf-frame-pointer" gcc option in these architectures: + rocksdb: build with ppc64 (PR#12908)- Update to version 11.1.0+git.1484659687.3472421: + rpm: tell openSUSE to never clean the spec file + Enable ppc64le and s390x builds in SLE + rpm: lttng only on x86_64 and aarch64- Update to version 11.1.0+git.1483528076.d86680e (latest master) + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: conflicts in qa/ where resolved with theirs conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp- Update to version 11.1.0+git.1481663255.bf42706: + Update to upstream 11.1.0 release; for details see http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + move ceph_ver_hack.sh script from build service package to git repo (bsc#1015419)- Update to version 11.0.2+git.1480437645.66595d3 + Update to latest upstream master (boost library is now included in the tarball, so the tarball is much larger than before and the build takes longer to complete) + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + rocksdb: do not build with --march=native (bsc#1012553)- Update to version 11.0.2+git.1480105120.6b8e9e5: + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it conflicted with upstream + update to latest upstream kraken (11.0.2) - for details, see http://ceph.com/releases/kraken-11-0-2-released/- Update to version 11.0.0+git.1473684054.73e4b4a: + safe_io: Improve portability by replacing loff_t type usage with off_t. + mon: remove the redundant list swap in paxos commit_proposal + msg/EventPoll.h: add override to virtual functions + msg/EventKqueue.h: add override to virtual func + msg/EventSelect.h: add override to virtual funct + ceph-disk: Compatibility fixes for Python 3 + ceph-disk: Use true integer division in get_dev_size + ceph-disk: Fix bug in FileLock + ceph-disk: Allow ConfigObj to write in binary mode + ceph-disk: Use context manager with FileLock + ceph-disk: Use os.path.isabs instead of .startswith('/') + ceph-disk: Set space_symlink to the path, not file object + ceph-disk: PEP8ify + rgw: rgw file fix bug of rgw_lookup can not exact match file name + rgw: fix the wrong return value + rgw/rgw_coroutine: move WaitContext to .cc file + client: pass a mask parameter to path_walk + mds/mdstypes: add btime to inode + mds/Server: set btime=ctime on creation + mds/MDCache: set btime on system inodes + include/ceph_features: add FS_BTIME features + mds: pass btime in InodeStat MClientReply, if feature is present + client: keep btime in Inode and InodeStat + ceph: break up ll_getattr into two functions + client: move the device bitshift handling macros to Client.h + libcephfs: add a ceph_ll_getattrx and ceph_statx + libcephfs: add a test for "lazy" statx + mds/client: add btime to CapSnap and MClientCaps + mds/mdstypes: add change attribute to inode + mds/Server: set change_attr to 0 on creation + mds/MDCache: set change_attr to 0 on system_inodes + include/ceph_features: add FS_CHANGE_ATTR feature + mds: pass change_attr in InodeStat MClientReply, if feature is present + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + mds/client: bump the change_attr at the appropriate time for files + libcephfs: return the change_attr in the statx.stx_version field + tests: add a ChangeAttr test + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + mds: add change_attr to frag_info_t + test: add test for change attribute of directories + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + MDS: allow the MDS to accept requests to set the btime + client: add the ability to set the btime + client: add a ceph_fstatx + client: extend the Btime test to cover fstatx as well + journal/JournalTrimmer: move C_RemoveSet struct + rbd_mirror/ImageSynceThrottler: move struct to .cc + libcephfs: add unmount function in cephfs.pyx + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + rgw/rgw_lc.cc: fix sleep time according to the error message + crush: don't normalize input of crush_ln iteratively + crush: remove clutter + mds: remove max_mds config option + vstart.sh: add option to turn on multimds + rgw: right parenthesis is missing in radosgw-admin help message on caps + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + SQUASH: client: always take a change_attr update from the server if it's newer + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + rgw/rgw_rados.h: remove unneeded class C_Tick + SQUASH: client: querying for stx_version field requires getting all shared caps + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + client: properly set inode number of created inode in replay request + test/librbd/fsx: enable exclusive-lock feature in krbd mode + os/bluestore/BlueFS: fix async compaction txn + scripts/bdev_grep: parse bluefs style extents too + SQUASH: client: request all shared caps if ctime was requested + os/bluestore/BlueFS: factor unflushed log into runway calculation + osd/ReplicatedBackend: move classes to cc file + os/bluestore: honour allow-eio flag during read + CmakeLists.txt: use LIB_RESOLV instead of resolv. + osd/ReplicatedPG: move classes to .cc file + librbd: potential double-unwatch of watch handle upon error + cls/journal: add async client_update_state method + journal: allow to trim journal for "laggy" clients + librbd: optionally flag "laggy" journal clients disconnected + rbd: new command to disconnect journal client + rbd-mirror: decode_client_meta should return false on error + rbd-mirror: resync was possible only when image replayer start had succeeded + rbd-mirror: stop replay when client is disconnected + rbd-mirror: option to automatically resync after journal client disconnect + qa/workunits/cephtool/test.sh: fix omision of ceph-command + os/bluestore: use global compressor if possible + build/ops: fix /etc/os-release parsing in install-deps.sh + osd/OSD.cc: remove repeated searching of map + test/cephfs: add mount&&unmount test + mds: s/used_ions/used_inos/ + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + ceph_test_objectstore: add SyntheticMatrixSharding + ceph_test_objectstore: occasional umount/fsck/mount + ceph_test_objectstore: test shards for longer + crush/CrushCompiler.cc:884 bug fix: index out of range + Makfile: Fix rocksdb error when make dist + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + src/pybind/CMakeLists.txt: conditionaly build cython tools + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + src/test/objectstore/CMakeLists.txt: conditionaly build tests + mds: trim null dentries proactively + cmake: include(SIMDExt) in src/CMakeLists.txt + mds: log path with CDir damage messages + hint in extent_alloc code + remove wrap argument and handle in wrappers + Hint argument in alloc_blocks + test case changes + os/bluestore: shard extent map + os/bluestore: make nid and blobid allocation less racy + os/bluestore: optimize compress_extent_map + os/bluestore: fix fsck used_block bitmap + os/bluestore: use block_size for allocator unit + os/bluestore: make blob_t unused helpers use logical length + os/bluestore: instrument big/small writes + os/bluestore: instrument transaction count + os/bluestore: instrument onode reshard events + os/bluestore: dump some stats after fsck + os/bluestore: assert shared blob cache cleared on split + remove autotools + test/objectstore/CMakeLists.txt: fix libaio conditional + buffer: clear append_buffer on clear() + os/bluestore: tunable prealloc size for ExtentMap inline_bl + os/bluestore: don't dirty onode if its size is already at desired offset + os/bluestore: remove never reachable asserts + os/bluestore: drop unnecessary separator between fields + os/bluestore: fix key+name sort wonkiness + os/bluestore: encode shard id in single byte + os/bluestore: small put_ref cleanup + os/bluestore: remove faulted debug hackery + os/bluestore: bits for unit tests + unittest_bluestore_types: resurrect blob and extent_map unit tests + os/bluestore/BlueFS: do not start racing async compaction + os/bluestore/BlueFS: fix Dir memory leak + buffer: implement buffer::list::reserve(n) + os/bluestore: do not waste memory on cached encoded blobs + qa/workunits/objectstore: fix test_fuse.sh + os/FuseStore: only flush if dirty + build: drop dryrun of autogen.sh from run-cmake-check.sh script + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + os/bluestore: remove some copy-pastes + cmake: make py3 a nice-to-have + os/bluestore/BlueFS: only extend extent on same bdev + msg/AsyncConnection: add const to mem functions + msg/AsyncMessenger: add const to function + client/barrier: move C_Block_Sync class to .cc + osd/OSD.cc: remove unneeded searching of map + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: Renamed bcond tests flag to make_check + rbd-nbd: fix kernel deadlock during teuthology testing + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + librbd: invalidate cache before trimming image + librbd: ignore cache busy errors when shrinking an image + librbd: potential seg fault when blacklisting an image client + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + deb: Moved ceph-client-debug from ceph-base to ceph-test package + ceph-objectstore-tool: add a way to split filestore directories offline + install-deps: exit non-zero when we cannot match distro + librbd: possible deadlock if cluster connection closed after image + osd/ReplicatedPG: remove class redeclaration + librbd: ignore partial refresh error when acquiring exclusive lock + osd/OSD.cc: remove unneeded returns- Update to version 11.0.0+git.1473424516.3b8b524: + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + rpm: put distro conditionals around Source0 in spec file- Update to version 11.0.0+git.1473418476.095f67c: + ceph.spec.in: revert Source0 line to upstream version + ceph.spec.in: conditionalize %prep command- ceph.spec.in: enable cephfs_java build unconditionally - new (merged) commits from upstream master branch: + mailmap updates + rgw: fix the handling of rgw_swift_url_prefix. + rgw: ONLY improve code formatting around RGWRESTMgr. + rgw: add support for the crossdomain.xml resource of Swift API. + rgw: add support for the healthcheck feature of Swift API. + swift /info implementation. + rgw: settle /info implementation across other swift-at-root features. + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + mon: tear down standby replays on MDS rank stop + mon/MDSMonitor: move C_Updated class to .cc file + rgw_file: fix/update rgw_open flag arguments + rgw_file: fix/update rgw_create flag arguments + doc: remove btrfs contradiction + msg: make async backend default + msg/simple: wait dispatch_queue until all pipes closed + rgw_file: implement stateless write completion timer + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + rgw_file: log on write completion events at level 10 + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + osdc/Journaler: move C_DelayFlush class to .cc + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + librgw: add API version defines for librgw and rgw_file + make-dist/ceph.spec.in: Fix srpm build breakage. + ceph_timer: prefer using directive to typedef + rgw_file: explain semantics of RGWFileHandle::commit + compressor: Better arch ifdefs for isal code + mds/MDSTable: add const to member functions + os/bluestore: fix some #includes + vstart.sh: -b for bluestore + os/bluestore/bluestore_types: make blob_t get_chunk_size const + os/bluestore: use Blob const and non-const accessors + os/bluestore: avoid reencoding unchanged blobs + os/bluestore: decode blobs on demand + mds/SnapRealm.h: add const to member functions + os/bluestore/bluefs: avoid check "locked" field for newly created file + os/bluestore/bluefs: check against locked field during unlink + os/bluestore/bluefs: assert refs of file don't underflow + os/kstore: kill dead code + rgw: remove duplicated calls to getattr + debian: should dh_python3 python3-* not python-* + pybind: silence -Wsign-compare warning + test/ceph_test_msgr: fix -Wsign-compare warnings + test/unittest_alloc: fix -Wsign-compare warnings + librbd: API methods to directly acquire and release the exclusive lock + doc: add graphic for cap bit field + mds/MDCache.h: remove unneeded access specifier + librbd: skeleton implementation of client-side image cache + librbd: blocking parent IO completion no longer required + librbd: remove use of owner_lock on IO path + Revert "osdc: ObjectCacher flusher might needs additional locks" + librbd: support bufferlist payload for AioImageWrite + librbd: add internal support for scatter/gather IO + librbd: initial integration of ImageWriteback to AioImageRequest + librbd: consolidate IO clipping to reusable method + librbd: differentiate between image and object cache + librbd: C_ImageCacheRead bridge from Context to AioCompletion + librbd: integrate image cache hooks into IO path + common/Throttle.h: remove unneeded class + cmake: fix the tracing header dependencies + src/test/bench/CMakeLists.txt: RBD exclude + src/CMakeLists.txt: RBD|KVS|FUSE exclude + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + src/os/CMakeLists.txt: AIO|FUSE exclude + src/test/CMakeLists.txt: RADOSGW|RBD exclude + src/test/common/CMakeLists.txt: BLKID exclude + install-deps.sh: initial distro detection based on /etc/os-release + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + ceph_test_objectstore: disable statfs checks on available space + messages/MOSDMap: mark as enlighten OSDMap encoder + cmake: remove unused librados_api target + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + cmake: let librados_api_obj depend on librados-tp + os/bluestore: yet another statfs test fix + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + doc/release-notes: v0.94.9 + os/bluestore/bluefs: use map to track dirty files + os/bluestore/bluefs: update mtime of inode in unified path + os/bluestore/bluefs: drop redundant eof check for read_random() + os/CMakeLists.txt: undubble kv.cc usage. + test,pybind: silence -Wsign-compare warnings + test/perf_local: fix -Wmaybe-uninitialized warnings + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + Allow compressor build without YASM + script/bdev_grep: update to use hex + os/bluestore: improve failed csum debug output + librbd: improve image state machine debug log messages + librbd: deadlock when replaying journal during image open + os/bluestore: end scope of std::hex properly + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + os/bluestore: use _setattr for SETATTR + os/bluestore: make object existence check robust + ceph_test_objectstore: assert umount succeeds + ceph_test_objectstore: clean up Rename test a bit + ceph_test_objectstore: fix TryMoveRename test + os/bluestore: add onode/buffer cache statistics + os/bluestore: end scope of std::hex properly + cmake: pass -DINTEL* to gf-complete cflags + os/bluestore: conditional checking label of bluefs devices + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + os/bluestore: don't overwrite type if it does already exist and at desired type + os/bluestore: trivial cleanups + os/bluestore: replace store with logger in Cache + os/bluestore: check iterator before using during fsck- pre_checkin.sh: add Source line for ceph-rpmlintrc - move Source line for ceph-rpmlintrc from ceph.spec to ceph-test.spec (see https://github.com/SUSE/ceph/pull/60 for rationale)- Update to version 11.0.0+git.1472455009.a17726c: + ceph.spec.in: drop ceph-rpmlintrc source line + ceph.spec.in: drop epoch prefixes- Update to version 11.0.0+git.1472384770.c9f3af8: + test/rgw: add --gateways-per-zone to test_multi.py + rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR + rgw: RGWCoroutinesManager::run returns status of last cr + os/bluestore: fix whitespace in bitset apply helper + cmake: do not link secret.c if not necessary + cmake: do not link against keyutils if not necessary + os/bluestore: fsck on mkfs (on by default) + os/bluestore: ensure block device size is a multiple of the block size + Revert "ceph.spec.in: don't try to package __pycache__ for SUSE" + rpm: force creation of Python 3 __pycache__ on SUSE + doc: add v0.94.7 changelog + doc: add v0.94.8 changelog + doc/releases: add v0.94.8 to timeline + doc/release-notes: fix v10.2.2 changelog link + unittest_bluefs: fix block device sizes + doc: do not list all major versions in get-packages.rst + doc: add missing PR to hammer 0.94.8 release notes + doc: release-notes.rst: move misplaced line + doc: fix two broken links in releases.rst + doc: add 11.0.0 to releases table- pre_checkin.sh: forward-port insert_line_before() function from filesystems:ceph:jewel/ceph version - README-ceph-test.txt: new file - ceph-test.spec: add ceph_ver_hack.sh as a source file- Update to version 11.0.0+git.1472202104.8999301: + rgw: add deadlock detection to RGWCoroutinesManager::run() + src/common/lockdep.cc Reduce logging noise if lockdep is not tested + osd: fix updating same_interval_since logic of project_pg_history() + osd: drop duplicated sched_scrub during tick() + osd: move methods which don't need osd_lock from tick into tick_without_osd_lock() + mon/PGMonitor: mark dump_object_stat_sum() as static + mon/PGMonitor: calc the %USED of pool using used/(used+avail) + rpm: proper packaging of udev directories + LTTng-UST disabled for openSUSE + ceph-disk: do not activate device that is not ready + osd: update reture type of get_pg_or_queue_for_pg() to PGRef + common/WPQ: add sanity check to avoid potential access violation + osd/osd_types: kill undefined_shard() method of pg_shard_t + release-notes.rst: draft 0.94.8 release notes + PG: introduce and maintain upset + mon/MonClient: should update sub_sent with sub_new + osd: set objecter.osdmap when starts + rgw: fix for assertion in RGWMetaSyncCR + PG: use upset rather than up for _update_calc_stats + rgw: do not try to encode or decode time_t + cls_rgw: fix the compiler warning + msg/async: fix compiler warnings + os/filestore: silence compiling warnings + test/rbd: silence compiling warnings + rgw: silence a compiling warning + msg/async/kqueue: avoid remove nonexist kqueue event + librbd: cache was not switching to writeback after first flush + mon/OSDMonitor: fix potential division-by-zero error + mon/OSDMonitor: get rid of snprintf when formatting output string + mon/OSDMonitor: avoid duplicated calls when determining osdmap boundary + osd/OSDMonitor: avoid duplicated assignment of oldest_map/newest_map + osd/OSDMonitor: drop redundant check of exists() + mon/PGMonitor: skip scrub checking if we can + mon/PGMonitor: drop redundant loading of dumpcontents + mon/PGMonitor: fix potential underflow + debian: replace SysV rbdmap with systemd service + os/bluestore: break down onode vs bnode_map size in log + os/bluestore/BlueFS: do direct io by default (not buffered) + os/bluestore/BlueFS: rename buffered_io option + os/bluestore: add multiple finishers to bluestore + os/bluestore: fix decoding hash of bnode + cmake: fix unmatched endforeach + debian: enable dh_python3 for python3 packages + debian: exclude python3* packages in dh_shlibdeps + debian: drop python-argparse dependency + os/bluestore: fix race condition during get_fs_usage() + os/bluestore: use bluefs_max_prefetch for log file prefetch + os/bluestore: use hex if we are running out of space + os/bluestore: fix assert + osd: bail out if transaction size overflows + os/filestore/FileJournal: bail out if transaction is too large + os/FuseStore: remove unneeded header file + os/Memstore.h: add override to virtual functions + os/MemStore: move OmapIteratorImpl to cc file + os/bluestore: include bluefs space in statfs result + common/config_opts: fix comment(radio -> ratio) + msg: kill unused macros + mon/OSDMonitor: add output field name of average/overload_utilization + test/librados: rados_connect() should succeed + ceph-osd-prestart.sh: check existence of OSD data directory + osd/ReplicatedPG:wipe off param op from generate_subop() + ceph-post-file: migrate to RSA SSH keys + ceph-post-file: Ignore keys offered by ssh-agent + os/Memstore: move PageSetObject class to .cc file + yasm-wrapper: dont echo the yasm command line + arch/arm.c: remove unnecessary variable read for simplicity + rpm: drop obsolete libs-compat metapackage + ceph.spec.in: drop trouble-making divider comments + rpm: do not unnecessarily spawn shells for scriptlets + cls_lock: support updating the lock cookie without releasing the lock + librbd: helper state machine to update lock cookie + librbd: store exclusive lock cookie instead of recalculating + librbd: exclusive lock now supports reacquiring a lost lock + librbd: helper state machine for asynchronous watch recovery + librbd: integrate asynchronous image rewatch state machine + librbd: image state machine now has hooks for lock requests + librbd: interlock image refresh and lock operations + librbd: remove unused refresh request logic + test/common/test_util.cc: FreeBSD does not have distro information + README.md: replace package build instructions with tarball instructions + doc: fix singleton example in Developer Guide + rgw: delete region map after upgrade to zonegroup map + rgw: fix period update --commit return error + cmake: use PERF_LOCAL_FLAGS only if defined + tests: populate /dev/disk/by-partuuid for scsi_debug + ceph.spec.in: don't try to package __pycache__ for SUSE + doc: fix wrong osdkeepalive name in mount.ceph manpage + rados-striper.sh: Use expect_failure and conditional stringmatching + Revert "ceph.spec.in: ppc64 build in Tumbleweed only" + jerasure: include generic objects in neon jerasure lib (like sse3/4)- pre_checkin.sh: fix package files path rewriting- _constraints: tweak values to pick up maximum number of OBS build workers- Update to version 11.0.0+git.1471969747.79ca12e: + cmake: fix declaration position of WITH_TESTS option- Update to version 11.0.0+git.1471959548.f013b97: + rpm: Renamed bcond tests flag to make_check + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package- Update to version 11.0.0+git.1471605408.9203335: + ceph.spec.in: don't try to package __pycache__- Update to version 11.0.0+git.1471601504.f312e7e: + test/libcephfs: add the necessary judgment + test/librados: add ASSERT_EQ & ASSERT_NE judgment + rgw: optimize the usage of string.find and some indents + rgw: patch manifest to handle explicit objs copy issue + rgw: adjust objs when copying obj with explicit_objs set + rgw: adjust manifest head object + rgw: fix the error return variable in log message + rgw: fix trimming object expirer's hints. + rgw: fix skipping some objects to delete by RadosGW's object expirer. + rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}. + os/bluestore: allow csum verification disable on read. + os/bluestore: add csum on/off test case + os/bluestore: add store statfs parameters to bluestore perf counters + os/bluestore: add perf counters for compress/decompress performance measurement + tools: fix the core dump when get the crushmap do not exist + librbd: request exclusive lock if current owner cannot execute op + src/global/pidfile.cc: Assign elements in structures individually + rgw: fixes for period puller + rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" + pybind: Rework rbd/setup.py for PyPI + pybind: Add BUILD_DOC env var to rbd/setup.py + doc: fix rbd map format in rbd manpage + ceph-disk: change ownership of init file to ceph:ceph + cmake: Also build Python bindings for Python 3 + pybind: Make ceph_volume_client's syntax compatible with Python 3 (just so it passes the bytecompilation step) + debian: Add packages for Python 3 bindings + rpm: Add packages for Python 3 bindings + os/bluestore/bluefs_types: fix extent operator<< + os/bluestore/BlueFS: do not op_file_update deleted files + os/bluestore: print bluefs_extents in hex + os/bluestore: do not track bluefs_extents via freelist + os/bluestore/BitMapAllocator: align to min_alloc_size on init_rm_free + rgw/doc: fix typo and indent. + mon/MonDBStore: fix assert which never fires + osd/OSDMonitor: count pg primed more precisely + doc: replace cluster name with cluster-name to avoid confusing + doc: fix typo maximum -> minimal + doc: fix command format + batch is_allocated bit checks + cmake: Move Python detection back outside of pybind + doc: format 2 now is the default image format + rgw: Rework of s3 v2 local authentication code. + rbd: bench io-size should not be larger than image size + doc/install: Use https:// for download.ceph.com + librbd: fix possible inconsistent state when disabling mirroring + os/bluestore/ExtentFreelistManager: move default create out of parent + librbd: new journal policy to disable initializing the journal + librbd: permit disabling journaling if in corrupt state + qa/workunits: support filtering cls_rbd unit test cases + os/bluestore/BlueFS: _should_compact_log + os/bluestore/BlueFS: _replay(false) to dump log file + mon/PGMonitor: move C_Stats struct to cc file + client: don't use special faked-up inode for /.. + client: add a testcase for "/.." handling + os/bluestore/BlueFS: add OP_JUMP + os/bluestore/BlueFS: allow log position to when doing op_jump + os/bluestore/BlueFS: move metadata dump (compaction) into a helper + os/bluestore/BlueFS: interface to get bluefs space usage + os/bluestore/BlueFS: init in header at decl + os/bluestore/BlueFS: assert we never extend log at flush + os/bluestore/BlueFS: use hex + os/bluestore/BlueFS: Add sync and async compaction + os/bluestore/BlueFS: Helper functions for the unit test framework + os/bluestore/BlueFS: unit tests for log compaction + os/bluestore/BlueFS: Cleanup unused interfaces + unittest_bluefs: make flush_3 test device larger + bluestore: initialize csum_order properly + librbd: fix possible memory leak when image open fails + script: improve ceph-release-notes regex + rbdmap: specify bash shell interpreter + doc: added rbdmap man page to RBD restructured index + librbd: always respond to "release lock" request if lock owner + rgw: fix radosgw daemon core when reopen logs + qa/workunits/rbd: demote/promote image on same cluster + rbd-mirror: include tag tid in bootstrap debug log messages + librbd: separate journal::TagData predecessor data into new struct + librbd: block RPC requests when demoting the image + librbd: normalize journal promotion/demotion events + rbd-mirror: demote/promote in same cluster results in split-brain + rbd-mirror: prevent syncing to non-primary image after failover + test: fixed unused function warnings in unittest_rbd_mirror + doc: remove the description of deleted options + msg/async/Stack: add abstract Stack + msg/async: add PosixStack support + msg/async/net_handler: let set_socket_options return value + msg/async/AsyncConnection: support NetworkStack api instead of posix + msg/async/Event: debug event address when dispatching and executing + msg/async/Event: remove event wakeup flag + msg/async/PosixStack: increase log level + msg/async/Stack: disable smart thread spawn now + common/ceph_context: add prefork/postfork wathcher support + msg/async/Stack: register fork watcher + msg/async: allow EventCenter::set_owner reentry + msg/async: readd set_priority call + msg/async/AsyncConnection: fix _conn_prefix racing when stopped + test_async_networkstack: add networkstack tests + msg/async/Event: remove global_centers assert + test_msgr: ensure wait for ms_dispatch executed + mon/OSDMonitor: add sanity check before setting use_gmt_hitset attribute + osd/OSDMonitor: drop redundant null check of max_failed_since + osd/OSDMonitor: drop redundant check of assert + mon/LogMonitor: remove "host" and "fsid" from handle_conf_change() + test: gcc 6.1.1 complains about missing include: . 4.8.3 does not complain about it + rgw: fix flush_read_list() error msg + cmake: Fix mismatched librgw VERSION / SOVERSION + cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS + rgw_file: restore local definition of RGWLibFS gc interval + kv: delete store after pg destructor is called in OSD shutdown. + kv: fix iterator invalidation in memdb. + kv: fill 'm_key_value' after 'seek_to_first' or 'seek_to_last' + kv: fix iterator bug in prev + test/store_test: fix incorrect prompt given by stash callback + test/store_test: drop redundant transaction of callbacks + test/store_test: avoid dynamic allocation of trans + cmake: recompile erasure src for different variants + rgw ldap: protect rgw::from_base64 from non-base64 input + qa/workunits/rados/test_python.sh: Allow specifying Python executable (through an environment variable) + ceph.spec.in: specify local sources + ceph.spec.in: ppc64 build in Tumbleweed only + ceph.spec.in: add lowmem_builder_override + ceph.spec.in: add Prereq: permissions to radosgw package + ceph.spec.in: remove vim hints line + ceph.spec.in: remove all mentions of epoch + ceph_disk.main: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_get_free_partition_size: New unit tests + ceph_disk tox.ini: add tests/test_get_free_partition_size.py + ceph.spec.in: replace pwdutils dependency with shadow + Make systemd-tmpfiles create /var/run/ceph-radosgw at boot + rpm: fix ownership of logfiles in %pre + Revert "rbd: update default image features" + osd: munge cache-pin ops with data into writesame + ceph osd: add support for new op cmpext + rpm: make lowmem_builder code much smarter + rpm: add procps build dependency + rpm: modify optflags to make debuginfos less huge + Revert "ceph.spec.in: add lowmem_builder_override" + rpm: lean_debug_symbols bcond + rpm: use gcc manpage terminology for debug info bcond + Revert "Drop any systemd imposed process/thread limits" + Revert "systemd: Add systemd sandboxing to services." + rpm: be careful about build parallelism + rpm: divergent java, ocf conditional builds + rpm: fix _with_ocf + rpm: drop obsolete libs-compat metapackage + rpm: drop obsolete python-ceph-compat metapackage + ceph.spec.in: drop ceph-brag and ceph-post-file + ceph.spec.in: move cephfs-* fsck tools to ceph-base + ceph.spec.in: move ceph-dencoder to ceph-base + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: add udev BuildRequires to provide /usr/lib/udev directory + rpm: Remove trailing whitespace in usermod command (SUSE)- Update to version 11.0.0+git.1470997027.9c9b8a5: + doc/radosgw: remove reference of purge-temp.rst + doc/radosgw: fix the table formatting + doc: silence sphinx warnings + global/signal_handler: use sig_str instead of sys_siglist + librados: use bufferlist instead of buffer::list + cmake: cleanup Findgperftools.cmake + cmake: cleanup Findleveldb.cmake + cmake: cleanup Findxio.cmake + rgw file: remove busy-wait in RGWLibFS::gc() + Lowered third example to keep PG count lower. + run-make-check.sh: pass args to do_cmake.sh + ceph.spec.in: specify local sources- Update to version 11.0.0+git.1470355272.6fed82a: + initial fork of SES5lamb78 149947947212.1.0+git.1498654198.20d6a47cc9-1.212.1.0+git.1498654198.20d6a47cc9-1.2rbd-nbdrbd-nbd.8.gz/usr/bin//usr/share/man/man8/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -gobs://build.opensuse.org/openSUSE:Leap:42.3/standard/53c90d6f2632c2120be5fbe5043e6845-cephcpiolzma5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 3.0.0, BuildID[sha1]=22b074ebb73f1a55e0989a0238e7a89e9c392c51, strippedtroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)R R RRRRRRR RRRRRRRRRRRR RRR Rbg[}af70'?`] crv9uhЈC۵?xC[i@(J6(m>gޮ&ed訏=DS 2Z^ZW:J4-[dưR֗4B+Vj5FPzM}w8 5mB(;a P [x(3.š*P^(#IVvgQкlK \='̘-s9ymf7믬{ʮ01idw?猪V5iO"29W,DoNjXwnCʼn:\ffVХ&q禺䕷V;Ԯ\S;>=\3S֙M0\'\F'ų"e7Ft&܈ }ȘEWq\/~?ĕݲ$WD̾+?QFE X}L&=z݉"ǂ,iuv7j:-`6_Kon!."Tmҷa?\'qK.a?!H†\'h [5xr ek,5ΣDNP 6ベʻӍK4&uLLSs1b5bsSñ1F>b|I8mשW*5*5CQ}yNCR@,OSENT9By)pRiٟzFj0SIlwuhWm'FOj1T dO D{ &JZ@zg\5e:9eе2LLvDPS4XxR)ՀaB:=B'_̽ sWZ4;Ν˾ZN+T7&`iIeVpNXIJ Qdls@DMRñ8Pl9Q ek'@MMXPwg_7P.84b`2ynݜnA̗8ʙx6N=_^ a u=Co+ÂQt;`;g]*gԄ)E'.84CFȸ@{fZڪuܲ_ ޞTMwcMurSԥDz AJ" }xȣi]ع0yTP}<)aw#ZIƅOoELq 8 JěFn/Zv*_#‹ݩkyaA}du]GW|ƫ[ +]=^O'+qlJΎ2=Br= X{f =T-y!N+=Upt j7L9cS&^nЋ>bTqr6;ob+R,w{nRRO"1Hhr58yc-uX.5AȦo15CLkBPrfJ^!`U װQkU#KQ)(`. DTp#AgJJ.4[lE}'ϋ׌6X4\ L/Ft=W[,;RװqX q0U3_"86=^VLI n408!V4­;03Ϯz$uXݭ>yTa1~).#;TAcK'G3ɂ`ҴE˺ ʤ2Fvoy̚Z(~ a{Έ 0`Jqneo-c-s&1)fe!58d%0}1X>d3M1PrRIRx7k^MhW@l{^w4ه*-aSP;_l])5 m+A#"pՌ M#L/uRo}5aUvwՁ<Gl uN#IQ8RMlx^ϩx~teX_B$d5b\Ua'V8JrQ(WY)ʏԴL!qDf$yFvNFu5Е]ǥ?^n5 H\ ި\MB'%ԾXQx _ǤaNĎ\y##I ?a$EUs 'dw8o@GD>u_H&$WúϗjEvQFȐsR/[҂Ł DH➜kϼh$r=-ݭ/I O(jy5.|*V9$EE t uW10 m$ѓ"&W:Wa0Pu zhʕ!aD` i87Z)%̇Ku4q\3>s3ʅC 4Z>)i0k 8lHݶ} )+O;,Sv.#]uF֍G֒z ,X{+i(J&|ؠ}]n KR .(Lhq^uGEI&1*tIZa&I 5s1˻Wߥ: G '>bs/%z_t. Aѽ(Q X,H0=:u1bkR5kW>݉8 }sH=Qve8ѺDB6}(-}ltfB)u&ӥ r8 +eys∈E~)IڙBpj^95q *)-Gn+.ͼ'V`g'm+P p]MxiA0UXw>¬x=1v?"ԅDL3vJ0 ugFayP|,.6JCMNa ?{@^~|CvBw0_\?L diw֗4MtU>쐟2h.F3tEvnthզr{gJ'>ggnz󠭰hYSpj8O۪צ=HS8KQ,N}rD0lO'l 4,흩g(S"]Wd$ };!#C;U'pbGz.GU$܎QP*VFek4 Ő$K~ (Ān]TW=Zaj1/ ^JmnGy.p=!TGr" &Yr5Aj`Ejt dI.jMfgO )I5ٳh*2~Mz}Ձq|H0sMG7a7$?_ךgGݔjAҚ1nπY$ĩ7|[$ -Q:0W{8-s|?4w|E,*71D|8CQʸi$V /i t8 t7N:WpjW^@q_hr+N]D~A- Jp riňp7WO\RƗ_|[VAK2ZhtnIYa Jh?#a,hPCZ_6]!"P;蛯BS'e#=7sI`XmnQ% BX h2o:|/|)j+:! A%gC>++7k3\Sq=?>@ ;nDau[,k}f_F^ .yq~3##Ԛo5&,Ii.?ѰN2;~ѦY\-2Uϳ=au(_9CYHSxZ;^M.QE#+r|ԫȅ?abuj|3dpO5zLPb;Wm/ؿԿC ~qRh^Vkr3HȂؚmĵ5t},U$ VFyO9#|&qY?I740vo>l~O( ʁ|P؎,{q~"N6Akhh#$,NjE~F RjDOZTśG>#N:3Ȍh?fH~ό"eBCvryNC!3pٹUA_VvCepj̢sAC 4<>"_ժ -D^!:8C h[j 촅8|T⸻;ug:-N.F> lLTZu}}OŨuSV=KMG<4.U-H4#G$xʁ#j1g>6 B|_ nR%o-ƺUe}A9 zj5+Κ$#0l>MP= ~[cEGjxm:i?A׮c>kx@G9We>)8,#螐NMV!dq.qB\7.pR]x+7[y7 ˀKs(wEŧXGmZ""D%6)r4C;3o7ER0ԝ ~xlird?( al7ö}XO'<7~G`0$yu`(\ڃopv7kuh^&I}PY+2e[5ŦcB\@]5JDYϦdJAff}r2F%Η@ë"xzvF`|zsΚ$|qݜ)IB:qimǍeIR 3iNx"ԇ!p> 䊕R?g=Eە'EJ.=nC[5GO "p8 PU_/:ȠG5d)rU- (OԦ/]J@EU' $dstfpϛ(BvWM:x!|"8+^Y_P=AIyϥ\P@<K=æeoޑG)l0DkӆjHKUM>TzOz# MȂ@ "N,CWlwQ$:a:TT\̰IXFB4. jH.J|F~)%eqSmiԻk©qvJV_IҸ}2hNPms$%‘"ʪf܃MOg7o (u> +ߒxpf=l4<'[zL}f幖]2^\4mD_XMȗ߉Es`nGښe2#K fJ!l7 8 7. ,pt9ʨyÅ4M0,^_y턏Wof+ͷ$PIc agz;Xq  $ zOPn28Xx6x{*u`>񱟱LʯK)QH8O_ _{mz03$yBOl:8}AGV.7{Cf7.tv/)d*3G P@G"­ D'4%Ob'sڙ+)#m RM Vhp(Mf8=~>V ,L3˛ga$j(jqG ZE?К9&O+.}/S;ՏM߶rܲs_3\SA%$eWJ~HD:Gb ]c?`9<}>>-w8KwhI/~ lF"/q^(_ Sx8Re#0S8ȱJ-F3 ʧ?l 1z{ 7 3Ya F:G U:Y΁|HDQ]ro49H9 ^x}hHcocsܐ LTm.t5r@$5cTEnH<-@ BbozG*Uݴ|!q`>|N ƸmQZ9&i?5:!s]ӆc(ڬW0ux bR+VW*^7rTqfhpn^Z*=Pnkw)Q$H7RK`ٺ#dӖ`rnË&nw$l}fzzf@ ,X}+Zmb)ZwM̻_Twۼ%8aAB>ɰ]y-lF?g1A,!o|>=KY{̓)vGUavj ƁQV"5ʒE555U۾H ? X@2 2n5밧Lr'3VN쥐-U}˿`0e0PY0_왅GrDˊm'=G ڏ6s!P^ߺi g~&-*cMGlgO-Dm(7:77#Pgs:vD)T;Ň` [6Q!/9bg :sW#GB%{+|4 yp`Y&{w !r@/tώa:~ *.@A2>P J,rȌbm"`&}y Hjҧyr٦x6q`;;%c&D$B»왂N (B"9P%xuXV}J*4c.LM.Ȯ?v]@˪*.]$H Zxߪ65MV<[%~@ CkV3ozs}b-Ң] 4: g^*+\aR[©Tw @|w e2tNpŖ[{m-j*i*i5c%IJtKlR<\Y|O>U~/ %N; Jhz,s΢d.Ύ)0NhMӊtEJʪ0XSE2f`*8mBq=/Py =7r*GnK힋 -^V3ߜ,o,7Өe Ґ t׀<<@"8.g}3meDlOco] CuЋV1s.gfbꂤ%\T9.Cɛ17irՇ"JvJϼD%B3ܕaS?dNu&l.muo97 Mj~p_nefX@& IKuȟ^`a.|s ې) +˸ HhZ䘣vn? ?<(qd$"bA4>͒B隔7#֟kԯ%pс-n{i%L12A4F۾Z1׀e &'=m/^;L58=K u@hK19lfJo"Ru9!uGMY9 ܌aJRFXR%6`o*',AC|3oF|oCX)TyQn$K$#S 8,,&Vl荢;0c%*'n"uە?1Ev7@%LߏeÓ>Mxf(*:>Pg6iCyZb9˛G/4pM-9kS]cNh;7RWf c !יg6E|PUTunz=S&?^KpQpCDUZVx2&ѰF{qStC:Zak،_Re<`f }e@ UBS+-M/M]fHԉ:Cꝭ @O^UL=9LKMJTm3.xrۻR\9ҙ1`_2ies"ѨtdbUP12ZE4@)^q.[niaP`E~#4.;yW>aJWy,2?Mg11K=v:?yc~uuI0PVHu" ~K)R1[#o4?<[p\'wyTZjkyrlN%>!<}?U]"|-PyE0YYW8~4x]esjrShGE H^ b!&%U5ݯU"G s;AHa4 fdXqYJ7˽-{RO}yNϻ5On< S-ߔ̣04;uK NJp7'9\_;^lĥ4P918nl{9J9}(}S:$u,}oiۃ;#4(]!H^R[$݄8EI Ŕ|˾߈Q끍Jʄe1X0;gn"cd Ex?M Z5*Cvwѽ_H hCwcrYaģe'| K .lqE,`W1{(>.+x!tRrQAaU81e%~M}9u^lȭb1t)[dແՕsM\x + "|JI]~2Cuù13oqQ>ZR@=bappgĄ4Lƅݓ?;ȏa"$/bm7e],lDFþ79#tO ڦX0+նy==!EpA *da2丣4}d ]ggMPai',sivR,Wo)׊zXKKudh *B}}evKmV]2 -wnsd' Ɩ4ѯ~oe҂܃ir7\:N 1K|R"DriHք Duӽrٕx pR;lA0F=::jP!:Em*N(hCV;YPMS3x|Z.-0_Ca eh>$Otl>㬃A+r|emgmBk8{֒zl{P8L4bX.٬w7wc!TH|t{#|k}nP3m<J[r:i<* ]/sK_O0ުO#\FXv٦ZU)zJC8,c,B 4I\-uI:.-™=?Ya'O BQv=o I%2©,#sK!uGʣL"3 S}[yeFqk b"% ]>Rg3{k1xQ$хK9p<\4,>Չl?W(?iE4 GxOz'ϰuNIm`ؗbgb*WW+qRE["%RKa.5G3g7p9NK` 7@ń+cT:$mLLω !]L5}A˗ :V5TDj^H}Y骝8Y1O|RzN"o}@^=FgYIz.~کCX7: ^sIdf߻3yÀE-Z6{`$ʗ~#u֣R:>nds4Ws "&=hS1GŴS;HXs俿Ƴ5 Pj3,HUF"Ѕ\#A)\a?L}?=C_" } :~E0Ҳʐi *=uѲ1j5ǨX$7qtQK;Qu>SP_:k"Qex8$b dm)z Vnb-旳- _);{hU~Eّ<hbW"=UAbajn=h!5xz̩>aX(zwq y|4tU{6k ղTԏ=f!mFZ0f+O Lc FMpI&[10Cٴfcq}:1Z_ۇˑdƭ@z="еSi1Ծ61~2S ~ jI|{Ӣ(wl J U&wrm}&9Ne(*No`w1z4. 8Rژe.@G;S ;iT|<~u Y#'*c2Sn. s%j?tB,7f5.n jy}!2̈́AAu.#8p1wG|j {f\7cڳ 0=7S|S˱y]Y8 ,>MmWOUAr)@`Fmӏ/mq;lwZDvu8 M Nz@*u2*˷xmjփmq`UwB刨bWDfA,DCO5F|,֊|@"O|Mj[@529Uli1Ͳ|dg]J[`}ly۾' nԁ$R͟7 T?y A7JL*ɱ>7{fnǖ#d}.zO/JxGO5o@'w%ѓdfH0eR IhYLUm aٙcI;_D[ha7h DXy B='Vrz|"7hc 71roI:YTJ`a"#Bod R  VP/2^JU~O [\֕Z{Mel)>d(<$Բ %=H:b)?[MZP5>/b8oJ γx_i]@_O"l&}8U]Wy) mȧ{^CbI-g,#nO?B8-v~$FڔC`jb7X kµ|ߐ%q Ϣ܅\D4DuD'ALR̺^(C]]dL 8 f?mqj*gSHu7u+ e e. qU{R2cP|r2gJEGu4BY){ օcwT\}4g˻H{0,3nDk kÔ~b їwf$Ve 3uX} ~z<>p,^kWr-?MHw:j Fy'-xC砨 #?LϿ ݛW嘬"if!< tj/o6 I}+H/Q*M*b39$'[՟[`*Suli/.'.%T% P7gjD#"c=4d'h78ZH =CӉ2~jK#OČ0I@}anR\y^֝x$Mi kz3iTe@Oμf\"=`]_u[ +KQSJZml,e*pkxkEkJ7XK2yQ9Vf[0l'< E4}Ä^u9a>Sٲ—#qb.QhP-#?<>+)kGYef7h'Ye#Mm0>΀c,bOK L.악L4qp9EdGvŧK#[o*]7jdy",q87tJ0R <2Qakwm.c޴u9ZȼY~e\H\@WG6YɝfD]0%ծЛV98T!Rk̛&nƙj6)[%ׁ@e㐲+~Z/\i>ucQ"N8$z}+|MLbS6ݍT]j|#YcO6&huӟq?]:蹻kTzsW"_b!HD i3I ȑyCb _NS63 0rKip'gCLkzJz?X8E^pAs,J)STU"4O];j $R0 l:-I AFlO=.U](S*°xn FKS-Յm`D[,qCׯib[ fnc.%o5a&ә`oڵb*Q|I$kC 1P#ϵ|6]dFBhHC1@( o[0Z<5N`Uy)`$v^*M+]4h;}9w[%>Y0j2ӋDx8BV=K /~H1@*76ջ]Q0-`(N8YcՐ^lƞCƒY%^a`Au`$iqƞb Fmߌح0BA8x`oߝDUȄ81fXs^͢y5x&GuQ+D }}>y Y]>hG^R >dd=؜.(!ȑ +Te-`fAR)j7;]L*Mz:ms8ʋ[_W<~YiJF0@Gz6[,8kC2ßLݝH&߬ F6ک 7 0FR*1&8-({ o UF4ƴ3'p>}}݊׷%K߆Xs8.ش9)7B?zVdՁ*Idɺ:%g$ׇ$1w/9j *^wK'!"'l8mplWkQ1G1l \=bxVve;եb "M1zPJ7qC 8C0 (W7Up&a1xz 2|b./4T" TCN1[Lrß.oSl?!z;- iJA0NVY`3*hK0 -eXt*et HǡB$Y'76f l<~`}J}zo*v<1kXHD), 5Vϟ6bFr^I(Zr8y&K}2'X{`X~jZf/,WMfiR 3;zgBѧ?k~%F/3XSW}( $wGJп'^bP{Z+7:kް2OBɱ}j&BYh7.FW^D;1t' V*J%]݌Bހc< ktx7,)>JR?)-T)ԍC :?:j,uckڥi&jd>פqK\c;ƦWq?*J(ojȚ " O m [4 \%:RI;7Q^fymj[UE&/^6BMO ]l`Mm([-WM!M+~[tP}8KʏFNk4n+ I˖_ 2[;f7Dv⥬%`Hx+ƈ !A:v }`ٵAS1 E;K,Q1q'!ĺ[n{Mեu3ddNi*bo !px ͆r3|.>[rY{z27v}_%5si4tĬ8Ζ؆$;2tQ {u?rwɅ\n?)Z,4/C/^8+HRVx{%P-%u>՚(q&7W֟vn2O}C@sHDO|2Wĸ;S.mwL gA !hyCxz2n˥z1Ƥu+bG}]Z x$vzg}y( m'B-qtHӓlߋir>;t8#2G\t7}+BC[wVTM`!ax/ӝK^W M|+h{_zs&o2KՔ8Y^g YC3t XN^s R0>g>$ߨ_?& lIJ<=I/U[gI.PccB~E I/{b|> ! 6zMsiK]NX>WNl8n-?]n^/&dX8W  E][TI ~5Cٌ^y2H IGs!o ^`X'L;)6y]QS[Vzf XZCq?*v#i>mq6)E+`֩:fnSXG㢔)o<ĊynV_,-<< qEiCa|ѓl_ד0EMHP-MU1vZh)rU%փRqJ>DO]P gq}gM  Duy apxdh)Y#26MMYmF]ih!?n1?oˑj "nE" E u#^8CKʨ9Q==3  c퇪t].GHPKFW[idF1]`n[aG:Q i*n]Nw)Yvu;Ksl? o-'_Kk~?Y=,hJ:^Hج 3`u{_o2fe쁮OmQsX7VDS{`Zy@<e)9m-SspC7ibPo"=0/;[gԠ.@5_>V,)WTg/OY"8}6F_ޜ=Ѭ(VV+Ĝ6\^G~z WjAL&@v /dE<7on&5byFFxzC`@):J&A fy/{m wl&,բZB^UaЀٖy #k uBeQ.͓.մ?liT-^1 6V9w$9e{U% t8AaMYw&CG`'O|ɾ Ų) :B)'&D9g?>{U+0Ƹ]PQ%ڵ7aL¤mB8]A?|?&EsvC"ؒ0wHOŬ }RIDh*br,-)1s֔Nnh^uv{!2lnxd,y׷%Qu/*k'dccڝ!$򯟾.ۖ/eJ7ۺ,pu$ O)耷=VF] zY<n LmSeQX%JfSWK7Y_T*p=]xps9$Tm#n#djpx';tvjIq li>n<˂ʘzNnwl|d =R#߷R6S#^>I1\嶠2OLH0PS\&օjiqml^JӔ<6TzXƽ7zoHmdenζ ak m=H234Mչ3s@ :!QdU->Y7+YŇK"%?C!^:u2?]m<俯N|>+鲗/3P?Am NTM=IS^( yS<D Ol:M!DXO<|M\^ĎMFO)R]E{e!*Qr%eĻ]oH9P}bei$w Wp"V@?3#ϪBKr3~E菔{+@FOq w Qz 93y\Č)9̕n3+/@rN>[8 HZV6YzIU"Z4O6U%JG{J#Bk꣰˺ՕD$'-|GpoX1#o `*LB^_CJË gRiPWF k $J=L׏) S3sW^}kJb؛]] Dir>:pi00䬣"DluNE(׬V.v逕EfYRGobRI"l}gn%(^/Ӥ6`LJqb!wWY.5cZmfOdȍNs_$~b91F}Jv6.0i)F 9j6JͭenҥA{uԘ9SZ1rSWhrY5W.L i׃. ~$@GJV#M3W,Љj]+4r0Uopfje5}#IV1NhS\c|H&,u=.*_u.^dLTX}ehRZŌoxj 7|L42( \1mL#qӮ)\0:-$8Dcscwx|-5Ņ#EbY5>f =Y%l適$A6\횏FM1&:sΊL98ʖs>-WN{v>wrrrF͏ͅDy{x=lAⴂ ^8޳B1e flX?)!):(yCz2?ڤp%wQ.*2mBaon~Ξ{`ڌ\ˌ,)/"C}, 1xߚ^ V}md轸 QTKT;Bp% T#||WNk"S$=eu|n=jwavYr52U&t!iDz58.+ {/ z<SH-w ~PRc0/|TOW&kQPmX1WX\~kv!~3sb\+tSScݥ N[gtnPJN eVIQ'oYJ, !R!:gPSgj!Dha井ư =W9ā1;D<~]Йiq=އR D~xfUm0UMb^V  dKPc;5ZOuՋ_NiSYUMG9}\{y,d)ӌij  Ԅ3 6M{8hÖg@$p,ܻA,?bJ_/o ]i!nlvOsW;i"lb۵@Nf3(%E6{?T@X XYFB;(щkyF>2-v8/GR@,iz4{g%=Rbd50ddn$,ݢY42 ]6o`]1!C*V qH ( Jci+lo恎&9HW0E2xgo4)eh,j:%̣ڎ1ΊV q [\/U{؎x!7~.+i|Qg6 w|/)(dR s|ΦXvʏi$e3(z]J̲^j MN8_{ڧR+Zkdzdx.P&Ƅ?.ƈַfg^MGڪm_HM&cf ZpwkNLrlڦҨ_xiբ#0%εJh񬅙v7<٢mI<3x*zV?t`^w4n! r)T{9^=+_q?FEȢ—[8}D7(!pD/CЃG@l&`r{h? EBr^1Fh1۽KƳ#fe~EJYWeȹ űq]xl|MѸA)^}I}V)醒xшAm$jPu.oN9 !1 #vg5)OAndі;扁}/2*K<$4dDsTļg$x,._ _- &㉰2|2Ue tjr6^$ ] ܆/qp_@˃BQ^?WaQ[)0糙YI@ ~/kGvJFϋn 赯z)HACq8V?٬͠7U&wL|ſiXam٬8꛱L {w{]>l=ͨ$|!.6ѾkQ 1sL j;Z9h|`Zgj!-{f3⹻UH9 i(RqƷRiʑFKy5T&;IxuQ*,sj^ty,$kڡkQ:,fdOQkρL٭X 7ǨvF5F꡵\/}d0 ~G[J+ӹTSi.Kgi=E7w9BW p]Ia9/iבPYQ9X?% ,D@J2`Dհ+Eok8IEStϯ]2~W}6SY#4F}ᶃG*gws`C7* l<( rA5ﮒL=9V zjIbxwhA&dDXsmh b>÷~xW+uj8ޟcX=A smR͖")*?]fwǶpswZ Q <.<+C*Ń3O6z_ՠ0z?4oG_Ҟh6J8%ڬ.0Y~iV*c BīІXpJXҲM"SBf0c*x]]މJ+B:;+Awll :@̠܍A';ehղ!aQ׽gtc{;BjqNf4YF1Sў]ƣƉ%VfJJzȷHRP&'wuP;C4-Uݲj87F [=2f`1\u,Nپ "*;K ot`TX\a2=&'ٹM9}Rt9ufd |BbM;g~‹X;M6ُrM}R$EXLl6lYT9&úӜS JmAU:\(q89sUw($Ԋu9?S55)Ԕ68.1/)2ez3_P!= 1RaXga&% ĩ1!s&=&̖gY;ARp2"Ԟ[I  gϏH)\P2Sa Nc%LDΠb#1;jm^~J/ذmz 7vg%]_]o]HZX皖ޒkW*fJ` mhz Z G'Rjc3M :W v͵Xtw\W3z^%@!S)Fsiڪ QI'DRyo-ޭfOe$ bݧ N Mj|j)!9H˜kt=L躴ep] \`-&n|@|v,`BΕEZp%_5ʼ3I;٢nzQ0nAYDbRՎajgmBSG w`Pj#Ƙ[<%9_y)T/r]`'7'A ^[xe\hр{@԰9%4fk(z]kq&F2BDrwSg6&e q;&_OoJV.yD ܝHI?UkNO[iq t|G$_eMC=8ЏD!n=q 2133AUK;bfo;ִI25QgT$C Fm2T @.ia Jۗ$:^|R{Z%?}7.J .+}YE! )#9{06kxk% MKd=3' od VS.$égBMC4:%+9,:!HU>I2 ]a/F"(,% A9x6LGu^C<\9O:RYWVO<~!$2uu Cad&:5y <2`tM׋&v!ȑ3lN 0Uml=tQ`#]Pn/؟"B'1B젬/;; a=4rXlߜ9~p ^u7@v1/e.h0 sגWj&zwcDb5ǂaё旸#6nw0Qd| /(gWwz.'5tsEI^DfgZ{^bѰa E[+#^nҢCQڲtº4L'-P`55B呰\ln׬HQa^XT9\7֫Plik^(Ԟ%P3%a2jV.Fw(,rF4jQi;g@9gAu5y+^=5J84f%`h?JZܠk<=q" { שR>E\lx>S2erKNV/C5aO/񅇧nv7'SOuy v-ҹ7B7px尽WTI>,#իyϛc;,> @do}<\3YaLi+B[ j+^G}7D(L1tݴ]kA DPPY%5т4"y fꪯ Dj RN ?[ $S0 H, 7ƣBγwt]N$)е m&{iϦKTXhg*G8x]sk+͵Is^(2& l !cTɽ iE~$\կIH̼%rUpI}# 1Օ-A4ko8ÔjW& lC@ŖȯIc ͆E,<0]/ la$t^?7EKbȴYIN6ΡT^: #yUVpBDW8wޙch&2$]?y+U +ߑqEܛ)`floVwzG_uO=mǠ@Ж_MwxQHG`aȒ0VZ yHz۵y&K=|N?^g/}gaCLDR5H%n$ݒN& q{{?<*Tj_(=2^9$ D.dϛ RL~YbG"E Fg6ou7mӴ4VwcfMϱWo֥_ir,rn\$Q-djǴLĸy5RHVD:;'Ol8xyt2BٓڣKA=qBBt{uNah_Ps: QmQKI{gX}ɦbբ&Fd6,bz: zIԢ?wG(: r#-O==ΤOA0q!ڣ8b#w:V}h ,@#]y;7T.IET rGշwtD|@ }9Rtx]iiЖȓ!3ߵzz^Q' R+=K.zfLb4B?0O1fVrxk9%WlĬ 5- &i0MEZ!L?X䨸ͣ"8Hի|7dee"+0gXe)I*UcU-Jj+'Hs2;,>SP_ֶl@9o㕥P_hmC*|YNFyJu#1eze)|Ϻ)aO5wno,okZ]&UWN n;a5w9YWq3a{d˾:Sv7w&Vo 3!qG> F7>%eB!tS@0h|/t.JON/\}/mHCAM14'ś| %Bpвѻ,rphu,0bW3qV\}6$0eGf-K8ْBHמ z*,sOpqH'LEC>K_39% M- h-E0"uy@ksK4%6%)P,S$t.Y=TZIT_$x6պS?XI AiJk{3<~|oxaETO'ڂKO椻J4ތ}+nΦ8ywc^(1M- 4J+=="fǢC k):kYt社mبA!F;_ gLu[`q;‰AvѸQl^6qy^dwP  ŤNs Rt/XgH=j iˁ-sn(Q#V*-ẢkZ=|vV}kW.wI:Ub :&1omqr〒FrH}޵Kh"7c9^ax)zذdr! p\g8-+{Qw?-DqN2%vlmmZ}{>*p3k(eK Ј㞃`"ْ~8I[4w&cS}s[c<`Gt+GLzKcn3YL.rM Aqm%?A&K+݁DeTfr|9r$QduoXD 3'atǛ0gEg^OGFZL1Tc] 5*rOdwb 5\4.Y$Jo8%qcjDS0"@bEѠ#`^讌- ߥ$"8(U0=x[QQN?',rUNw,MQZ3^ChڶXl` ,Ho_@hc>[}/ F謬:L#Spquv9"a9=M%K }b7@5tϵ|l%iyDRU3rRt(=ܺ݇y@ L`t4L%~7jl6f^勭8txQN1Sr?6 N=tl)euvû iNW6Dh *>1q׈L`8T8O+f-lr/!P-U=O&<;'elk.H˳FcChޮO#L:dOg>@Y017N1Da`x*ˬRx8Iˠ UZ g/(f'j If;7%;GlRQ>ьBO\~-ѝ5ils*ok핱`ojZbΑ>NqCQb\ E:( }d%?)He#0 7aԐrzfYFumS,03$HҰ<7@WAUAc"WNGڣnL Tea8cE1b4[$p5M*~h[KtRģM3Dr`k#لjő~ӡ)*gh&߰d}Z.OYȊNTwgDU) x 'Kc 5cM͛6!LO |PƖ=oKv V)7 6ŧ9D*tʁWZ>MzEmAZ.O-`Y9J \(;i,tCO֮ ;piA`n")CA%e(A.ญVGDTǝՋ+`l?8NS ',,zϖĴi^Xe[Ÿfe#\ k]/6X.wq]00i{0$ڡpj+L,h;!rG}Bm#a+jlgx@qcyPrf=+W@l}@C:Ey}UDp%]ʨtYbwm)Md  $i9^Yeƪu07AO=yP3j:х c=CfVݝEv秾!U'p,x(R9x =RtI~'C B!iMMk(ᾲ-EK?璵r 9wPiMXG ~?Us Lȼ (:UjyE+.F&\hwm "钏+Egs`ӻZ%X󼌍1' ?݁-n03 񷞦*T4 dTˉ揩\'ntfp"[jyn6*c-hr)mF ڡ Zg냜>\:@,GH>T =vWQOA\=.zT-k#\Em@EYX$˨ \ε$E^;/14"g݌U:ab7S">Z*w#? m8Vފ7U[1؝6֝Y"U6f9G_ؒ]-zdW1!rC0= ԁ g CL5\]pu'\{^) 0*_lqAktBҦ`ط%/sۖ>>Z%2N2nҠϻeT;^f̸[rkakG20hˊwCNZwf3p)kMI.ѹ/d %m5LB#39 7cݡYg"lVǩ@,ܾyOTP;tZh~68H,5E(0?(,R/4S@g~|ЗfjqN =:5ʎf"$ l#ym)d#P|% q"@pY]xk9@ol)}WLtBt@E&YE {b'P/P`LBɸXTK.Aݠ﫶ΊϢP},]Ev$S)^zm LF)4SGn<Gte!\!)<\\5 ,KIcXDWznRF!9!f2[܀gka:)r o w*)14a9veзcϯ 廁 >H x8]j繤 bz*-q(Y eF`VqGۿFF}ʟSCd!>d~aR;1cvZ3\l Ry ]g&' "`()OIdr=Lx<`X-PKA`Tw>,8D22$J=s>Ğu0AT`k(P ko2hw[?,>=n&,H;|5 J,7 ԑVz!`邺DgHvi"s3X\h#3V:FB}1~N=GAT_4ljVTAy>:Xرy_A6~:F>)l<)C\4X|؅lt!O3Nl(SYM.ƺ]PVi͙0axH*q:lӄ6"P*E6/ "bp<.k B% Z= yF6ع:#zW]-߶;};QE@L,.S½ dڪO6 VGU߰ 5ȉP(IbŵFkD][k,_q~`N $06Bno>8~NJ([2jB[Htb=/N^V==xfOrU!܀DsFa߹2{E|xkIFgT]cL5 ,2O5K+KUR@CnGPx+cp,,ʦJn&3caŬc fgLl6N[è`K1 ۦPsU HkA3bvi̓b ffj!ebnuc,io ffMiXZB^Cn|Brlk1՞seaZLT,Vnp} [HY:Doy}a{AW J1ν¼ NzH35VdV]6w@Tp8, ɖɨ9t"mڪ=w9 ?; Pn]YWY)A;_k-~;ʲSrw J&J2c[р.4Q耂lfA߹سh?sDhg_Wa@k\Xb;I 1{#ppA3 Z`_ka]A>Lu[68l':ʹ.8(+3$VTrvxpWhDGԄN|PSHoϨA^ uIy14}i0-Ҟ=n[[oTe?ݹĪ7#̜H3ەSv8Cy:ơl˦4% JвLxkwk\+%ka+O@עxV ۂKυ!~P]{\='Ϙr7{ÚFRtV:(xƤj`O}GYVUqE}ezY۪r..I@Z%ZR2XK&~DžGG) n8)J,%V'4R!A? O[FΔ.}ǯ:8ऩMb$ )wDӥmwxB: \okބT97 ld=Vv7n9Ჵa&{Öf_=Vq'UC% i$%Ώ΍we/O&}gϨw+4!|Y18b`MgR/pfS3MWsu5D?l˛z$*a?e (QG wqvJD2삗=hMS{+Ey(@2?Sr*3&/~d%wCy)=V~_?8;b5)Z`}:\zX_:&sg"|/t? ~g`?[nvyĮI^n[3%H'b PC G*oQqjYh$uȒC"py^tT]\: /,˖q`:qӎ1)Ba4K*,,[=QKGi+8ˈuUl۽݈dʞa#޿1<|Gk s.ֱ?60^ۈ{9<„w+)We 5v-4*I ֝> k)n dH] ;S9W?KuWO[$#M|4`o^-"~?E{ 1J7З:tDC8x{2-nȵV˰A[~v.:BE1`i=aeOcc?$VKNH&R"˥ބ,IUdF6(⢟mf*AT*rJ%ζ?@Ll_!l5ٲ)Cvf`}Ο3 @5Bށ~Z2#v|@d}S0=24qP44]׻7shes~l\/;ўݝ gGbza`Cdu%wTQ7%R)YB?X挣#ǙCGF] 4DH*;4 oaz^j'WBYU_`"?7)&xŔƨS !O<\6c9Pc~pQCSAT<|^0P3j )THIS䰙(ϳ*P˕Q,0`C(Vds{`GXugE.v0pGg#^x2Wa^W5,HT_P#V"o;8c;*SЃdG]gرƌEedDSXNf.VlXhR}x!zeP'c&ܯ-A?_YD#5b{{ɂ__GkrTWr/e_o 1M}]A>v!c!cR"k:voYçᚥ/twtƢ`݊9B`0$ΤF;5+mƅjSsg1dc sp ]L85m?dAEU Շ..۪1zaJB^PK}yw7e8 "UF'0?.[UKFxӕ\Skɘې| ,JU^䈶΍)Qe@Yq$ϕ~l0 i 'Ni7TaABcԧ6rS) E (\UTNSj~a2P{E /~ͼ [/?S5ַKnߍ(M:L:t= CMVo64ХĬuqi+ o{V oMG+q`/Y`Ca~זR|b=-ᎉ>bV 6"lƸur6>hp2zᬬ~ IK8f'c%{hήQhJG[!qj'b7sіw+|6 iJbTk!M_Yy"!ȵtWk'P -/ xĘBԾU ),'t 5E]z yGViռtw3,2R0?ikD&o6Q|d "oX h-hu~קHLio2G-'n&Q%zߪp*:V2Lakgtd :^K Ŭ+,M6@Zx`b~jG’ԭ:7T@wOP#atu"ii5IY;h&i`ݠVGsF;30J%J3T?IQe'/K"=Mʨ Db3^.GNjslfB'مoN6K0x#U1Vi?p,9d`;@o{3@9GJ5CvJov6ב;:0 AzYDV%b^wxbKN»|^^5ĺ⛃*l~Dӎ8XOf;_f1lOͽ9Zj{\o9zFVX(hBka{ikiy{(3ߔ\@"DfKw &;r}sGDVm"yr[?a/d 2=X2'9I^OyQ(Fe; R8/c⓵3Sw8eel!8iiޓcf4#2+ˤ]Zt!gYA~v#Ȥ`P|bٓg c1;:y \J{\x0׸=.dXnyǭiLJ*&RU# /?F$Sㆁ5|sϺ2dG 2MCLt xaP >#;U頱J.žm[ۛf'|Gb L g_F*Et':mشdJ?QV&޼z`Q^q΂d"L(W(#0V. ȉb#9^ȩKA%V`B8^G! KEw<:Zi>1Y\Rr1@dªWd3TP ߠrHn)[TLSC4Nx.H,9NccTǔi.Qyrxmް+:m)qWRde4aZVfp}?8LSԵ&_w~A wd7֣z+XoTx7NNPx_6G@1jaT{d?s\ǁbR3ijG͓)[} U\ 'c>v^'&hf\`Jd'/rЈcS  <2.us9tiBߴPwacgZIt9AJȝ,M j;x˶n[̤xZ|x` R.V  /H98ǵ|3DP{1`ĪGjd+9Y?DoJp7"L,NcK 2E#Ts_>xҁŨlhu~KJ%y c jzk6xzQl z-7 Nen][blg@m*cx&\+69*݄F9Y@@ 9\snD<`QTC;bn/bhk2OPufvtsR~m& ]\/m*ċ׍/l*㸀MӴ#q ʋWqKq oyE5o@R&D'yK (ES͑9gX%UjcR,_\W.bN/^ %tƈIT lDa~;Eo7Gpb6=di(9d-44V7 o&r$Նm9׷mq(BDYЫE<|9/]f&ـHm=+{y/KpY+ϰ6Ugn,[,Ƒȗ2/[c;@^<BxTupTz,pKfjr K}3 ea#oo $Mˋ8Pc? QْAE 7hJ!S? plҍ^_Iݱ7YC rͲk.nU_棹ڈ퓤}6olDNu&h sv,~Ӑ+ՀVs`)3e Xrk7\b}el73|p`voc֠Bߋԃ]+_?7i]AYE _s6W:3r<.UsT/#ujGuD]"9x =QRjsOӹl {tg;H1,456dtۯw}ǞԖɉzU]tM;|+ߍ\vK;-F(2{픷3W_Z _4SsJȌ=L UmaM0!*r2T~r]wQ3d2+=jOƪҪ99)bu|RxP\Bf{XsB#:p2r>Nlcg@WG9j(lBh#D;( @$z)& 'eS׹YBwtҹ- Gq  5R^aQMH;槇`(y,L$`́ydth1TQD/ĺ _ߠI]yvb%|rBvJe0Tg Om;Jݱu6C??Cf)r7%ka,>L^ѢO4M0;n85a7]gTP++rs]<2^6p7^Ͱp7Eca"S<&(@96,$G2P"Wo7`ΠxF- چs6ӄaDN]v}u U|2e̍ߴp>k}e+Ą_je#Ŕohw=ɶ'\O)@?Tf~cW+bAKD)g&(ĢG}UR]3|z }w$BWY|lZ3F~ϑ `ۛ MyPQJ? dhtaY)W7=EO_֠:7[D|.}l3 ]8(ZA&|ΩIFy}2'ـ`]5-kaO/,'@:{|28Bk)lo-g'ѣ5wagea:H]4c(gDaxfMh* ~Ğ7cUbcLjeү)ndCpsjJ-jOՖm>ߪB4]zUa {'D%SG7{p?8^}X~5h$XW*e0NP節v!`t JcVmk:ABn\=٠Q:6Z4RfJA͡'"ojvJ P Ե EOS?7:S%K@(}C!߶0J-L<*GF2qIB9:CH*=PΐZkA,&2E B6+*i\WWPgM)k@e%0pt~g֞|Oi:@B ؋}$Nw3N~$uXj&5 J);LgN% %2eswȜgw_^5Ì:Ƌ,V/s47EvI@&uboqVG-|axxD4e芑5pBRJXzfA3'S^<1d[IPMӧ!~?4 vcmLUZg:;J\j "ٚ.0Π aN9c.RpPUxmr 69`wF4c dB &).wK\$M#Njid_ Qka%W)k5aeK; mڝ%#w,8-$%kVo$4n$jb?d֐VTy!SO qnr6C6M(—UXIi4g&k6X{#E#^s=zJ1qG*ߑ4CEtIX5 3{&`{ Y Z3nEŃA@!-L7Ȁ,>ȁXLL=^'%_eMNLPZj~ŠW`Wj' "NL|[.<9NB-vt= =(|t^*uOyӬO-@5noqΙOF=/RWcZyl [D-꼺Na) ݫ=(KVA>eN2\we$:Uxj<^^63g[ ~"$Ȼux䇂7"2F$TS^b;y ބqGϩZȮŐ#}KSt'.xNᄟ:`rFbvX?+=$Y[5-_r?1aX72 9ΈQ !ިq CSѭܾ6}@Pф(}]Z,ypW,|uxŻe< N`8M$ÀN-VܶHX*aU*p2"%K#`&u9n(p9Y N2 (ӏI j A$mUG){c9 O "|<-8OL Qc!z kIPeCi9|y+k]LG*3^(-|VߗIJôP2\E Z{cm#kVp2|vffGA-a.n')";mƸt7d%x1m-"~@9M5n6}P(Q] ^LR11AJ]]ٙ%NͯD]e-K%./QuN /Em"$󐏿h c%`JxI{xC BYm:B3(}H̵d5^(&đ`Ą{o}oȁ5}"fF;$%؁At c'/{,dJ:L?vRHn)><0-P=nSK?Dٶ2iY?ZkD[Yxnٻl _&Ux+D(\:R^8pA\7֧kkɈN(*q?:8=HV %{-"2C0lYLzv%qKɑCFIufZ2&/L63*3&(V$?MLKnUQ٣/K\ͳw48cP͟O:«k_,~cCd'f rtihƁ|5ÊP@aei䙡ʫ >{H̼/VC-fYI1u%fU .Md╊gEB[)~VMuSƊk1%8,B.=EN8[ywXxAc(-tWLp;M'`L' v.FXFLHԣӍםz{ 6ꎷsf9"'F}Qd.UrXn-w3r06ת̵r(N͟I8b5 e婘+sZ/8ځAw;aa=&/LEHU_z.ΧJT61e9#^ka1L'~6gSMǿ's &w|VțD&ʍ`UbjɊp ,akOyᑺr_{o7@v1xZ4k!!݉09HvikJ1-ѷ#H`L}J"G΢UE\cڭזg``#Y_3YS"fəV^`{*HTR oD7 3O1 %KDAVgf[$5mB0Q2 t'coAPbпU. P{>z?C`^gB\Lw "NuDt=?xCj VlyU,}Y@2`~o6[y?q58zoA(^uyywjg)ծfr~zuB厒Ág6'+[~|-ʅҢ -fpgc~=c$*ahB,xŞ!Ah=QaGMUy=Қx"-Dmױ3L]fz}dfeuR#jӾbWpq Ar.8X:jSN{2s8PlH0:B4/2r]{Y76KG/޶5Z,('  D[4@mdZrM,\󒶚t+'S:x CԵ~ 3XN `Uc3+qFl͢ۅ."|\=H rVlh&Pf(gTzi+B~ꌼΧoqnXPǽy*E4,o$<5d8G 8.@iӯ/ƍ $otUri/B:$qn]qWETEްᒷV3Y"ވNb ;mH-B@0r>ʑi.af,f7˲T@i}%Rg'c*<߷)>-.s+(o'vdz};6kNفsru.-K<讜4*ns RL w9AbVڂD=NvXѱ_}_0}-^߉pK=۠2FDzܮcw'+=ʒ߽lflcCcU.G>V2AfNzš%5oS*(Ly\ 4 /ou{aIIW5rE3P0T UYO\ `]۰}al+}T^r7@ hby~u9gu `07n3pONDccY_[d̓0>rGXl+!m${pha3inhH^GF "shwÓU&b mR$9*MpI:m~?Q9xjywe\Ś>]ضG(!xWʵۭD+WkU,IAn #m 6bq!zlH=^V_vQ3~$^O]vӁgj鴰shp WWHZBgCR#qEϫ8/\ĺƤi}$ܯc ^lO٣-rt}EZ@ eYu<ړ} !MIa f\P9>~rWLEin/F4Q3}3)+W쐅 q-1cRhhpiXV e,c!r1H.J;cG3iShJ0tÐKIIT!m0U}X`O.G}vsa1 Aw)@tW!l}MD,Ac;2>F+EO|G r 6O:rZٟvGmtZI"-:_!V:"7CON}$P.eIo^< }lQZ۠T*[V)!#_cmcL;ȰM뽥Mù-ߋt"*EWo95{pҁ^"{4t]T&lvY- ̓XE='kqӾP kY7ЀEjb~+i#Zr.l>y##踐w=hF(_uI,@=1DƋ]Dg[2SIe,wqAs@R]TS(j0bPLnAX?zd#VA(!ABN=mٸe^̭u%)Wjd- I `Tn# d=szM|h)ņ@T$vz3;%3!V~m-$|{ʘ/jbAU2Y;\Pj7B*y* V$3[B n"rs}':V_JwFU-`57|?k'ֈ-u· 6l4pU(D ; C'Tu6]l Cp؎OFN ۤFa5SgNi1/$~Dౝ U YwiT,+8.-i ~nT36GaW{B*\"w7d66o,so ӊxy^'Ԋ_Q= YU3=}*r4 "/2q9_]߉aצbY!j0ud&, EtG/[”L] DH)`mi u2Fs tȐZfKlT85ːBQ~Dz}@- Tۃf<ηKT\?90(%⊛]vD"𤔽8*˺ k@`ҥwm&z\@K|DX{?ѤQwxyoljBiӭTL]f]=j1ޭKlYP6hgYC{vum7gD;Lަ6+5v郁M6CK nў=a"MsKO X[c0{Ekύtb lCNcgLa8Yu^=⨧?3^旚 _0))|K@H{_ѽ wxG4;(2ax9c^-i6Hg5p7KAU⮴ eJK}T޲TJy:vuYɄ[_ݭ*_WShd`}!(>'ф+A@1aY΃9 㞅x}RS­U^a{j%3֊n-=f@3 eu tO;~SerP៞y*Tgo5p4>2X70;jkV/9 !J%˜ß=ʔI*REG(9`bpz8Gmس]~][QXk%ijJ 6ZwDπ95[PgkΜ<+پÛJ$/+diq᷌+=8 "kqPbJcOF[NjVwh+ ^YC4+[r{)T pVȱ5gv?q+ӶrF[w+9LIs%T%@$")a7>:ǶۿL8mG.$>',q<&UZU0kCiBLm$hoIӳ`Jzp> aJħ$q&5m'TU6)dIC@IðC:($?P*'0]C5oL -Rjc*|I9H {ȼ-q5ʀ>49^xK)#C=kaH=䍣zeѣBc5`(^yhNSN4!MQ8z"z|7uu $<,Ыouz*䍿0\JevG>O"JV"KYG  tPc_BJL DiA&rp/˜qӝ횓gMOf퉩˙{.M$Su2MH$(852Vք^z^[m1.,o;%OH\/ƀ:RO%{"cJ(aHk~ {ih*\d|)l|8͋YK7n撚O#\dh1|uSo\ìmw*ACV*:z^%$DQIݷZj2+\F%"\6"?U5N FN H |B;_K4C!@&NuhDv[55J.UUIsT03ydG(e[du"l^J_+N`3'2t҇6ǖꡠs#m:MN{S{6HqQ)>VpX [*YOKY!6K@H4HNpUfIfGpaR*˗6Y6l3^tV H+ߞoИ%jt e)lM~b5kjЙZknC6?0WQff "2mz<?QpLJejAUBzlR i0uA|+ SF7%ZYlܺl?yrI1.PpbQ=zl8>,턛b:MQ'5!,էҽw5|os"z$v'ɽ vIVa#0$Ϥ "*?.|}LVL=xZjuٌҗv#O,~@͋oSE|(N_WIi^=z\gMk5B8oKL v< +4R\:pD&ӪδÕ]SopcRQY~N2-2Xl6*I qeią_D$DzhJtEZK|He~Ty*J\]ELH%x΄^.SI܌W{[B`<ж{("@jA *Y#/[t/cXD U(;Y4{u9 S-lpOo" !-a; ]=ue8J,:odS]t-?^=5)ʓUF}=^'LF79b8`I̓f_6A5 O~mS*08['x|=BC?R߿,ZhԎAk{%(;0 r&zACaݶu9aDxpD~`f܃_.I/ӿ?Ʈe¹Ԛ&娫AyS,6NH&ܛ~"I˩oq+_|Y]lW>H8rNGbs +HwZhKKȁ9}>֕e[&~ĕ- T?؊S [ov;dK^aŚaB>H`;*'Pg ۟1R @oT$ã i[gpdGz0+/^45 } _aeqǵ7qޞ1˄^@6ln~<, ɛNtϤ :@Oʴhnn)j›=S'>jd:ǯ#؇qȘ.ݨȀIЧWp#S/g keE|k80 q zf׈l&VD0&S!3ljs N)#~0puV΁XsH. 0e`h!P .|oNZO/LC䜭Nn=Y5KRa9ݥ dsԮa)\$GiAX?~SbHyhqp9 TxM z{}x}u n95O3өQ2R=^$;RNzX䉝 7Kj||\,icβvϴ i1lG{Yd؏@wr$;1`%f{|{.~%k IEa*>HjeS|t2&!r6wXgVyg4 )R9SJ8Рp4bw yy })g t.ΉFG8MښJhn>٨Ѵqfn@/1Tǯ7?D3xMOpzhsf,`VՁMnr¨e>K{sA"+i]% ӣ$ٯ*˰$3Jt%{2z10,0[S ,SPgsUgy BquUe Z$8z {XB18Nnt|r@_]VG܏_/,pܿ[䢂"'~in6a,StO\UM١Mt n`*,nWU `}8ԸH3(gz.B_# [͐|&C!~RI4EY =ؔ~)ucO&mhD@X&aZZrXʘ[6n ,܄gGŔÅ͵_OVW˝+hf)?uǏ/ CO#xe NZȏN$OI˄m"ĵc _[0 Ň!f(yͱ\y cqn1 WG˫]>v΢J/$Ks zl[)Kqi@Kb2 *Fپps(P,##" qO@k AIM}Q_9MC<ꜳ]a1# 4䱡 Y?Č-t -ܞIIC+63`ęnl}S?f9s*鱙l6"Xi/hW*I=|1*u|e̦5t#Z-}pB~+GgPH<}:>sj>nK#ȢKOY 1{^닸?,  $ \J늺f]NWm@an;g+Rh1L?Wؖ(Mh}vU8- JZw%?C |]: 3Gc[2A/JR {"d_NNd~[=޳SQWM3{[ž<Y†"YO dP>|Xko 8k-U`}85 ɮ]W`탦,L1pk5'箥NL8m{ ][ͭW^vy'*4m|դ}57;igª;dX@Çl|9 z2%-'_cA;*F6b6/;#%xweHcAhMt+uD5wL6hV>tR"xaQxV=P2kv "Ȩ;V{Btp\M!|D;67=bu-C(zo0< ?yLUs\ћP6|xUkUA%p8^rP yuRv7l<͒&LF4"#k`l/+d Fyh^`U >>$#ђQ~7*3lբ=Uq%gF&wt'ft^5tB,,$8^`h&z\8H"p;l=+ j*W9LO}2BQ=}/-#UUZ1%!nK!4?q,BR]H?9(=*_^M5 CDsޢSeAcD:)ǃP!yP5*e9Gz9|XJ`CA!ju7-#UlS֭Ra@ a^>MZx`Hu$A=e"chcO9NE"1ClE-J؜'|KK5 8.1U~OQ#M6xZ<*f91GdKjnB>Sdk]raTj61,N|qղZV{*Wu%/[:M-$bLtmYfChhOa~G}MΨm~^T~8#I5׵&3]$[f3ʥ$)%&(2aVlq.3){7ԞGIo{Z1Uqc,#KAl`D# ea_v#Vl&81-DZE@|t 4\ 2CUipC1$Sd܏vty G{]Iv9 h/ A:\txս L1$a s2% Hib5l0b OL}Of2R;WPFOٲ(#cQBVjՊ5UV9\O @ !fTlJ$xma%8soZZO;i,tw+^Zgs?a$xp׼gӗCYmdL2o/L4iak%jS$ quPh>gv kŊM+ ԵY0x ~p!6ST89STaW,MʮƬcVqGs+6Č3 dvLgspT-d9#dG- N;$H)c*+^RVshDٝꖶ \);~SWMc&*b/kXa7vE{=oD`NpFˠO(qdN:9k_nO\T<|/1Q-]h +^\|v?idKgoO%be3[ 1\N޺0pPpB#Y*K \vd44BfZ :tF[WW'to[n1<˄?ޱjL LgaN*8.qނ`u3!Pe m4~aAltټty1 L*H>:k-ͺC{}>;|h\D,b-mi5Ị׭@kNpf¾6ZoW\nk>ּ;g`ۺc`Hs3"^)0OAH^!FM#S@^Z)?pr5S&KUMtJzFTXO=g,^qLZR" 'Ş,( l~$-r0P,Fsbqb=P`8jQO\J{6a,k6HLII]r]@m'[95@r 8+_ud+PL2c:OP˜aܩJ/Q}M>Obi6WyiS|۪ʝi#8iK o>[yY*^AҨuR)50_In z YⲌ_Br2zbՄf(ՕMtxꩵx." r1c~1VMP< _b=<76`nA K[9p床K$\҉TSMUfvOyY*xY&x6urm`+ 1?ˈ+}*J.?V8JBX8!ykf vZUQigO̬~7"'v}3H$TWu$mIe87{dL.^7~?o3U?;Z'IPO*O < 1TCu>1,mfќ͙3obNȓaF*ջЁta 0\Sasa>|!iZBV>8AW.v\0G] tqC}sD>Df%I/Yڏ.Xz DxfY,wZ5%0-O͸E_H Z=P(~V&VMm9NmWd &ҌG֟ ŰRXFGcϨ`ob