python3-cephfs-13.0.2.1874+ge31585919b-lp150.1.2 >  A ZO/=„̖.O}?>^xA.NH?;[dKK2a:B>Q|,ertqϡ'%QcsUoz؅"XR.V1 яEZ:_a{B\ Pܛ5G o&l}ɦ<_cgj#X\~W\aՉp ,cpgCPORfoQ>p>t?dd) 3 g; Ur     0`   (L8Tj9j:jF0GDHdIXY\]^b_cdcehfklmuvwxyz`Cpython3-cephfs13.0.2.1874+ge31585919blp150.1.2Python 3 libraries for Ceph distributed file systemThis package contains Python 3 libraries for interacting with Cephs distributed file system.Z>lamb71K@openSUSE Leap 15.0openSUSELGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttps://bugs.opensuse.orgDevelopment/Libraries/Pythonhttp://ceph.com/linuxx86_643@(A큤Z=Z@Z=^Z=^Z=^Z=^Z=^Z=9be4a171e05d92cbebc857e0d20aa974107f4db657debf82acbcf2ca9a6255ec6eb427ac3cfe60acd4a1bc7a34e8fb406155eaa70112e2f8aac259102612bd48a98beb97a2c4c6b2f035bd5b4f06ecf7a098cbeb52ccf0aa16412fc7d7e853e2ce22a2222c65c4020915aa4214e5ccd21dca4c6b64d16ccb5f07f6010cdd486a01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546bbf1c83ca48ffd8cb3c0b8e50ed8fd5b17daa2e80b3e4cb093ef5c55522b9476cec6a99a8b9c933ae2ac8fe4e88b4f835fb0e5b842ab49c18898ad391a711a57drootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootceph-13.0.2.1874+ge31585919b-lp150.1.2.src.rpmpython3-cephfspython3-cephfs(x86-64)@@@@@@    libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.4)(64bit)libcephfs.so.2()(64bit)libcephfs2libpython3.6m.so.1.0()(64bit)python(abi)python3-radosrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)13.0.2.1874+ge31585919b-lp150.1.23.613.0.2.1874+ge31585919b-lp150.1.23.0.4-14.6.0-14.0-15.2-14.14.1Z@Z@ZԐ@ZJ@ZJ@ZJ@Z2@ZI@Z@Z@ZZ@Z ZZtRZo Zk@Z@Z[@Z[@Z Z@ZC@YYMYY@YY@Yχ@YéYzYYW@Y@Y3Y3YY@YaY@YYYY{'@YoIYlYlYZ1YS@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.comschwab@suse.dencutler@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.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.comtserong@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.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 13.0.2-1874-ge31585919b: + based on upstream master 510762f51e346836492a0a8f83a056944ee6e046 * add liblz4 build- and runtime dependency * move ceph-disk runtime dependencies from ceph-osd to ceph-base- Update to 13.0.2-992-g418baeac64: + fix ceph-detect-init for recent SUSEs (bsc#1090072)- rewrite README-ceph-test.txt for clarity- Update to 13.0.2-984-g852d3f1411: + based on upstream master aaac83abb516f824f1caef470686b1bffeffa8b4 + fixes s390x build failure (bsc#1089291) + introduces liboath0 runtime dependency (bsc#1089302) + fixes RGW SSL deployment- Update to 13.0.2-819-gf64b021d4c: + based on upstream master 3ab655b55d2b363c0352dfbb90caed2ffcd42432- reduce ceph-test constraints for ppc64le and s390x- Reduce ceph-test constraints on aarch64- Update to 13.0.1-3204-g17e0216271: + osd: fix s390x build failure (bsc#1081526) + cmake: add chrono to BOOST_COMPONENTS (bsc#1086017)- Update to 13.0.1-3202-g7a60121a01: + latest master (dashboard_v2 MGR module renamed to dashboard)- checkin.sh: add interactive verification of Ceph version number sanity- Update to 13.0.1-3023-g71b0480e48: + mimic-dev2 (including notably dashboard_v2 MGR module)- forward port DeepSea integration suite from ses5- Update to version 13.0.1-2078-g85df538001: + spec file: * revert "enable --without-python2 bcond for all distros" (as of Code 15, Python 2 bindings will not be built by default: projects wishing to build them will need to provide --with-python2 explicitly) (bsc#1081836)- Update to version 13.0.1-1987-g4a523803f8: + py3 MGR fixes (bsc#1080758) + spec file: * test/bench: remove smallio bench tools- Update to version 13.0.1-1567-gae149ea5f9: + increment upstream version number to 13.0.1 (mimic dev release) + spec file: * enable --without-python2 bcond for all distros (the Build Service will control py2/3 build via this option)- Update to version 13.0.0-5171-g4d4101fe78: + spec file: * change version number format * define _defined_if_python2_absent if, and only if, building without python2 bcond- Update to version 13.0.0-5169-g26918cdcc9: + rebase to latest upstream master, including spec file changes: * eliminate Python 2 dependencies (bsc#1076403) N.B.: this has the consequence that we no longer build or ship Python 2 versions of the Python bindings for librados, librbd, libcephfs and librgw * drop lowmem_builder bcond and rewrite associated code to be distro-agnostic * move distro-conditional BuildRequires to appropriate section * use more recent toolchain on RHEL 7 * ceph-base: put runtime dependencies in alphabetical order * correct Group for python bindings subpackages * move ceph-volume to ceph-osd and adjust systemd macros accordingly * ceph-osd subpackage now requires lvm2 for ceph-volume * ceph-test: peg version of ceph-common dependency * drop deprecated scripts rcceph and ceph-crush-location * fix permissions of rbd resource agent- ceph-rpmlintrc: add lines to quash RPMLINT warnings + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/crypto/libceph_crypto_isal.so + librados2.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/libceph-common.so + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libos_tp.so + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libosd_tp.so- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Update to version 13.0.0-3531.g3692e00bab: + rebase to latest upstream master + Add "checkin.sh" script to automate the checkin process, along with a "README-checkin.txt" file containing basic information.- Update to version 13.0.0-3512.gb018e431a6: + rebase to upstream "Mimic" (13.0.0) development snapshot https://github.com/SUSE/ceph/tree/ses6 + drop OBS source services in favor of generating the spec file and tarball using the upstream "make-dist" script + new version number format, replacing timestamp with git tag offset + reduce tarball size from 114 MB to 47 MB by omitting unused parts of boost- Update to version 12.2.1+git.1511279898.8aa892202e: + bsc#1060904 * rgw: keystone: bump up logging when error is received + bsc#1067705 * rgw: set sync_from_all as true when no value is seen + bsc#1066182 * rgw: data sync: set num_shards when building full maps * dencoder/rgw: expose rgw sync status types * rgw: set num_shards on 'radosgw-admin data sync init'- Update to version 12.2.1+git.1510221942.af9ea5e715: + bsc#1066502 * mon/osd_metadata: sync osd_metadata table * mon/OSDMonitor: tidy prefix definitions * mon: implement MDSMonitor::get_store_prefixes * mon/mgr: sync mgr_command_descs table and mgr_metadata table * mon/MgrMonitor: populate on-disk cmd descs if empty on upgrade * mon/MgrMonitor: read cmd descs if empty on update_from_paxos() + bsc#1067088 * osd: make the PG's SORTBITWISE assert a more generous shutdown + bsc#1066182 * rgw: ListBucketIndexesCR spawns entries_index after listing metadata * rgw: fix error handling in ListBucketIndexesCR * rgw: RGWDataSyncControlCR retries on all errors + RGW fixes: * test/rgw: add test_multipart_object_sync * cls/rgw: increment header version to avoid overwriting bilog entries * rgw: disable dynamic resharding in multisite environment- Update to version 12.2.1+git.1509128342.9347aa6662: + common/common_init: disable ms subsystem log gathering for clients + spec file: add %{_sysctldir}/90-ceph-osd.conf to ceph-osd * ceph.spec.in,debian/rules: change aio-max-nr to 1048576 * sysctl.d: set kernel.pid_max=4194304 (bsc#1061461)- Update to version 12.2.1+git.1507910930.aea79b8b7a: + rgw: Remove assertions in IAM Policy (bsc#1063014, CVE-2017-16818)- Update to version 12.2.1+git.1507819941.856710ff58: + rgw: stop/join TokenCache revoke thread only if started (bsc#1059458) + systemd: reinstate TasksMax=infinity- Update to version 12.2.1+git.1507226092.b783a015b9: + Revert "SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL" + msgr: add a mechanism for Solaris to avoid dying on SIGPIPE- Update to version 12.2.1+git.1507108986.dc637a73e2: + rgw: defer constructing keystone engine unless url is configured (issue#21400, pr#17775)- Update to version 12.2.1+git.1506764331.9e2e945bd0: (upstream luminous 9d8acf6f3f85dd1410629cc680474e38f3be9838) + upstream Luminous v12.2.1 https://ceph.com/releases/v12-2-1-luminous-released/- Update to version 12.2.0+git.1506009682.0e5b4307f3 (upstream luminous a931cf68120d99661b785cc794e2b6965d621f06): + ceph-disk: fix mountpoint check for systemctl enable --runtime (bsc#1051598) + spec file: * ceph-fuse requires fuse; make that dependency explicit * drop obsolete qemu symlink hack in librbd1 %post- Update to version 12.2.0+git.1505141259.1264bae1a8: + rgw_file: fix LRU lane lock in evict_block() - bsc#1054061 + os/bluestore: fix deferred write deadlock, aio short return handling - bsc#1056125 + mon/OSDMonitor: don't create pgs if pool was deleted - bsc#1056967- Update to version 12.2.0+git.1504118058.706f78da1a: + fix ceph --version to say "stable" instead of "rc" + spec file: add python-numpy-devel build dependency for SUSE + bsc#1053836 * Revert "osd: adjust osd_min_pg_log_entries" * osd/PGLog: write only changed dup entries- Update to version 12.2.0+git.1504013812.01ea30bcc9: + upstream Luminous v12.2.0 (first stable) release * increment version number to 12.2.0 + spec file * edge mem_per_process upward after seeing some OOM-esque build failures * package ceph-volume man pages- Update to version 12.1.4+git.1502953626.155adb5253: + ceph.spec: provide libxio 1.7 and obsolete libxio <= 1.7- Update to version 12.1.4+git.1502878199.4183317204: + ceph.spec: obsolete libxio (Note to reviewer: libxio was only ever used by Ceph (for an experimental IB/RDMA feature), it was never submitted to Factory, and its functionality has been integrated into Ceph in a different form. For all practical purposes, libxio has been replaced by Ceph itself.)- Update to version 12.1.4+git.1502871088.edf82a59df: + latest upstream luminous (a5f84b37668fc8e03165aaf5cbb380c78e4deba4) * increment upstream version number to 12.1.4- Update to version 12.1.3+git.1502698163.45fc586a51: + latest upstream luminous (6808af486d3bdce966232810004648502c967b13) * increment upstream version number to 12.1.3- Update to version 12.1.2+git.1501914637.59afe41c49: + spec file * ceph-volume added to ceph-base RPM, where it co-exists with ceph-disk- Update to version 12.1.2+git.1501865907.88dc8cdc9d: + latest upstream master (7350fa65d79b5f0ace427e609565f07be35cfe62) * os/bluestore: allow multiple DeferredBatches in flight at once (pr#16769, issue#20295, bsc#1043399)- Update to version 12.1.2+git.1501790037.82d6a9c37a: + osd: move CMPEXT response munging into completion function (bsc#1047244)- Update to version 12.1.2+git.1501684697.aa6b0153ef: + upstream luminous v12.1.2 release candidate + latest upstream master (e27a78c9ed3984b54a312ced3ad67fcc8f464fc0) * mon: add mgr metdata commands, and overall 'versions' command for all daemon versions (bsc#1050063, pr#16460)- Update to version 12.1.1+git.1501669490.04d0738487: + mon: extensible output format for health checks- Update to version 12.1.1+git.1501501507.6dd9e8fd8c: + update to latest upstream master (fa70335db25f2b661b329d5d8f37039b77f2d1ae) + spec file: * build/ops: rpm: Drop legacy libxio support (pr#16449) + Other notable changes: * osd: moved OpFinisher logic from OSDOp to OpContext (pr#16617)- Update to version 12.1.1+git.1501231943.67577225bc + Notable changes: * rgw_file: properly & |'d flags (bsc#1047977)- Update to version 12.1.1+git.1500447879.e5aac115d7: + upstream 12.1.1 (release candidate) + Other notable changes: * build/ops: rpm: fix typo WTIH_BABELTRACE (pr#16366) * build/ops: rpm: put mgr python build dependencies in make_check bcond (pr#15940) * ceph-disk: support osd new (pr#15432) * ceph: allow '-' with -i and -o for stdin/stdout (pr#16359) * cls/rbd: trash_list should be iterable (pr#16372) * doc: update quick start to add a note for mgr create command for luminous+ builds (pr#16350) * libradosstriper: fix format injection vulnerability (pr#15674) * mgr/dashboard: add OSD list view (pr#16373) * mon, osd: misc fixes (pr#16283) * mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302) * mon/MgrMonitor: fix standby addition to mgrmap (pr#16397) * mon/MgrMonitor: only induce mgr epoch shortly after mkfs (pr#16356) * mon: Fix output text and doc (pr#16367) * mon: add force-create-pg back (pr#16353) * mon: skip crush smoke test when running under valgrind (pr#16346) * os/bluestore: use reference to avoid string copy (pr#16364) * osd: combine conditional statements (pr#16391) * osd: restart boot process if waiting for luminous mons (pr#16341) * rgw: S3 lifecycle now supports expiration date (pr#15807) * rgw: acl grants num limit (pr#16291) * rgw: delete object in error path (pr#16324) * rgw: drop unused find_replacement() and some function docs (pr#16386) * rgw: fix err when copy object in bucket with specified placement rule (pr#15837) * rgw: fix potential null pointer dereference in rgw_admin (pr#15667) * rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (pr#16203) * rgw: req xml params size limitation error msg (pr#16310) * rgw_file: add service map registration (pr#16251) * test,rgw: fix rgw placement rule pool config option (pr#16380) * test/fio: print all perfcounters rather than objectstore itself (pr#16339)- Update to version 12.1.0+git.1500295948.39d2e5f424: + spec file: * socat build dependency only for make check * fix typo WTIH_BABELTRACE- Update to version 12.1.0+git.1500284183.1ed97736ab: + Spec file changes: * bump epoch (not relevant for SUSE) * add socat buildrequires * libcephfs2 now obsoletes libcephfs1 (bsc#1047020) * HAVE_BABELTRACE option renamed to WITH_BABELTRACE * fix a regression in ceph-base %postun scriptlet + Selected other changes: * Revert "msg/async: increase worker reference with local listen table enabled backend" * build: build erasure-code isa lib without versions * ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() * ceph.in: filter out audit from ceph -w * common,config: OPT_FLOAT and OPT_DOUBLE output format in config show * common/Timer: do not add event if already shutdown * compressor/zlib: remove g_ceph_context/g_conf from compressor plugin * core: make the conversion from wire error to host OS work * core:" Stringify needs access to << before reference" src/include/stringify.h * crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy * doc/mgr/dashboard: update dashboard docs to reflect new defaults * doc/rados.8: add offset option for put command * doc: fix link for ceph-mgr cephx authorization * doc: update intro, quick start docs * isa-l: update isa-l to v2.18 * librbd: fail IO request when exclusive lock cannot be obtained * mgr,librados: service map * mgr,mon: debug init and mgrdigest subscriptions * mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands * mgr/ClusterState: do not mangle PGMap outside of Incremental * mgr/restful: bind to :: and update docs * mgr: Zabbix monitoring module * mon,crush: create crush rules using device classes for replicated and ec pools via cli * mon/MgrStatMonitor: do not crash on luminous dev version upgrades * mon/MonClient: respect the priority in SRV RR * mon/Monitor: recreate mon session if features changed * mon/OSDMonitor: do not allow crush device classes until luminous * mon/OSDMonitor: guard 'osd crush set-device-class' * mon/mgr: add detail error infomation * mon: Fix status output warning for mon_warn_osd_usage_min_max_delta * mon: add support public_bind_addr option * mon: collect mon metdata as part of the election * mon: debug session feature tracking * mon: do crushtool test with fork and timeout, but w/o exec of crushtool * mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands * mon: include device class in tree view; hide shadow hierarchy * mon: maintain the "cluster" PerfCounters when using ceph-mgr * mon: revamp health check/warning system * msg/async: increase worker reference with local listen table enabled backend * msg/async: make recv_stamp more precise * msg: QueueStrategy::wait() joins all threads * msg: make listen backlog an option, increase from 128 to 512 * os/blueStore: Failure retry for opening file * os/bluestore/BlueFS: clean up log_writer aios from compaction * os/bluestore/BlueFS: clear current log entrys before dump all fnode * os/bluestore/KernelDevice: batch aio submit * os/bluestore: Make BitmapFreelistManager kv itereator short lived * os/bluestore: cap rocksdb cache size * os/bluestore: clear up redundant size assignment in KernelDevice * os/bluestore: differ default cache size for hdd/ssd backends * os/bluestore: fix deferred_aio deadlock * os/bluestore: move object exist in assign nid * os/bluestore: only submit deferred if there is any * os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() * os/bluestore: use bufferlist functions whenever possible * os/filestore/FileJournal: FileJournal::open() close journal file before return error * os/filestore/HashIndex: randomize split threshold by a configurable amount * os/filestore: call committed_thru when no journal entries are replayed * os/filestore: do not free event if not added * os/filestore: queue ondisk completion before apply work * os/filestore: require experimental flag for btrfs * osd/OSD: auto class on osd start up * osd/PrimaryLogPG solve cache tier osd high memory consumption * osd/ReplicatedBackend: reset thread heartbeat after every omap entry * osd/filestore: Revert "os/filestore: move ondisk in front * osd: Check for and automatically repair object info soid during scrub * osd: Preserve OSDOp information for historic ops * osd: check queue_transaction return value * osd: clear_queued_recovery() in on_shutdown() * osd: compact osd feature * pybind/mgr/dashboard: bind to :: by default * pybind/mgr/dashboard: fix get kernel_version error * rbd-mirror: ignore permission errors on rbd_mirroring object * rbd: do not attempt to load key if auth is disabled * rgw: fix compilation with cryptopp * rgw,test: fix rgw placement rule pool config option * rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() * rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() * rgw: /info claims we do support Swift's accounts ACLs * rgw: Correcting the condition in ceph_assert while parsing an AWS Principal * rgw: Do not fetch bucket stats by default upon bucket listing * rgw: Fix a bug that multipart upload may exceed the quota * rgw: Initialize pointer fields * rgw: fix leaks with incomplete multiparts * rgw: fix memory leak in copy_obj_to_remote_dest * rgw: fix not initialized vars which cause rgw crash with ec data pool * rgw: fix radosgw-admin data sync run crash * rgw: fix s3 object uploads with chunked transfers and v4 signatures * rgw: fix the subdir without slash of s3 website url * rgw: fix zone did't update realm_id when added to zonegroup * rgw: log_meta only for more than one zone * rgw: rgw_file skip policy read for virtual components * rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart * rgw: verify md5 in post obj * rgw_file: add compression interop to RGW NFS * rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] * vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 * vstart: add --rgw_compression to set rgw compression plugin * vstart: allow to start multiple radosgw when RGW=x- Update to version 12.1.0+git.1499090920.2c11b88d14: + With this update, Ceph no longer autocreates a pool called "rbd" with id 0 Deployment tools must take this into account! + systemd: Add explicit Before=ceph.target (bsc#1042973)- 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 SES5lamb71 152510415213.0.2.1874+ge31585919b-lp150.1.213.0.2.1874+ge31585919b-lp150.1.2ceph_volume_client.cpython-36.pycceph_volume_client.pycephfs-2.0.0-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txtcephfs.cpython-36m-x86_64-linux-gnu.so/usr/lib/python3.6/site-packages/__pycache__//usr/lib/python3.6/site-packages//usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/cephfs-2.0.0-py3.6.egg-info/-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.0/standard/310930fbd91dba728cb1938a03635b8d-cephcpioxz5x86_64-suse-linuxpython 3.6 byte-compiledPython script, ASCII text executabledirectoryASCII text, with very long linesASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=bff184c1ef14470c471110b9fea9dc64bb65562a, strippedRRRRRRRR.%-KH utf-871c8ee72469e93b1ae74cae4a2c2d8e0496a02c4bb58f04d14233727124fc586? 7zXZ !t/*] crv(vX0zO46"JU<.ȗԵ,]$߫(R}qDG9nCXrZ9_X c{}Fcr扅і_3:_qwzކؠ_%@RY5xzƛBJ\ <͕H^t1v5*),?a3DD}" AաA1zՋs|+zQ25ڃ(' U 8 8<,1nPZB^]kJ5VA_P\Oo R1j' 8nb0I&=j=[D=N!8^Y޵rXz_&T!kVWW/0%ޗOSRs9$9E HQ)_4ƟoB1;zԯ nψ/Zdk@7R j[@Ùk,'*Xc's- [{H%~p # \,Fw:ذ7Zls-B@?ਂJ X?#P*ފh;ryCԜ)'&Ԥ %|d }{) J°|1Ơ(~ m im"=w|E~q"؛q.0v ݕJ;:@a'Uѭg9k>{36ɡ nM[ +GEAv 9 4ϠQ>߷3N^pMz\'mr?mו1$,#wJT>u`"}o0q6Nb1 0r+oDG- ԀF>m@fU-]:!>@ [*mh+0X|izCQ2 eBG~>|3B^a֜<Ү@/Pc"L.=S^A02oe!_l2SM|XC儙i8o}*&Ɲyf6$_b#.(;0%ZiY><~rAD~T?Ԭ=$5!{1YX%;%eTbfK:@Y*1TmyXQ!Y7𗃑A?Ĩo#I&SuH9402OS[AB>@F4 I{K<:Yi3):f jȆ*}utzLdUȝ` Wjub8bQ?9=,dֹiw`1Zle!aWwNMw !|ԈQdHl"3ֺ̼^!7uq>vN]$ `X 1E^KGHVl[cpjmbJ}炲ׄ(c]֢5W\;p˜ 7oԔBcdtK,؛3チ86zEa_7;Ƙ>p>*oMCwM.`v"beGEYݱuU(zV} K鄾NFt-a'RƦ B+rkm[F%L`I:PFj=@.[(p*#0]ݣ'-],uQ2 V8f-5 Q* ;]7HnPz ("%]ߛ8!,v*&+Ձ u8`0yN4Kz"kMN)~Us㗑 6Zɒ:9 QO\v!39]d? wJKL%OMRQQ9 $Chmpgh>VlpsAS:+],ZI)͎v-]Ens[bm2YQ~' LT& gS3B{oV7Uqqn@8^joii-vh2Ye>()7TV;!+gbZmWf?i1hKIBa9 *%z~U ߪl̑5n.Y۪jGSH/pᡖQM9 rcAU!sw(a 2$͸ΏO|}8!: f8"|ZBnk Q6蒃Lp=Cl|'1],mSl\xB= @y#Vtޭi(|MPja ag4P$*<[.RRS2Rpu4k::'nv@ mRְe-8m&XHݠ97 l@ɝ5ZQD9<_qЈ=PvHzw\a :gΨ^òm0S?31w}@0?6|?cн+i'g ]r p7LN}s F}(׀fŐ>[Xi\ Npo(wϠ(嶠k9]8[Y%86guluc<#B XmM\#>R<>ʣB[ܢE &i! e/ฺ?˄. #-K /-bL Gc*ɹ>YQm3 rdʂسZUѝA< 00!э?]66 ;uv PRNqD]:2K/VͦЗ Ԁ%X2YWy燔9<2xrqyЭ]'㴺*ﰏcS!N6SALIp5mt]fSTcTY7RIg$ODlo~0E&G3 ,cCB'4Kn^G-K$*L,g&; ;2Ŷyn:h|09ӟ~)L^FcdFB(}#:Q,fF/RޑM0TЍcQ*Q'/-Ӟ fݺBO4M,K̝Uӽ?9(p,inЁAamK(*^VN@h'P1M& :\7'K5p Nfp,;wI9ZQqF׈s4 t$T8&>"lg^o\Ws޺? 3-xDO?PhF>:BKEC)e1%rYEw2Ȏjs0 FW5Z $ WMϕd68g:nl«AZ/`%νJ jYMF<'yoDfЭ{3/c)W)X^}˜Nf֌/Ps\i +23ѸMn0}\Ȋl,n (ZF4&a!7HhUi8qAyb_UX;ӓ#M|B"dȻ?u3_pu\iS$o6IDor'1VM'^CG>OLO ff~Lzo##PU<=1*o|X)Lz4*^CZ'|)xLeȽVCG%$ tzQ` a 6dfpםdl)Ͼ[_ ?Odhq(,A+!NL%k*U/4`jm&ZTJB83ߨ9m1f/v֥}ey쯋:O1obv{nM|TJ7 V[݈]g2 in@U6!F@\bh,6+Cηf1*iU"M[CROcΡM 4-b,Mɷv y|vgOJPd*t-U0Sw V@j\sj8E ,k6!VG.??D Gbq䤐5cJћ;{gWgO"r/ TⴏL3{o+(@9U0U?v4pI,Cv p<KO1v)s8*0 k%c`̝4/a.m!7惣:j&M -[HNT7J{00E "҆b {qf ~1qdt_np)ZZ\m5w.~]>X?M-"/JBJKOGfz=zda9=5FӾE ߚrvN3?U5FyɠՍ+]5tT{N'J5ӆo'.EZʌ>e ',NyAl% {C~"|sTj$ఱ]֏)F͐=n\S Rh`QYESԴS86qrz<O1i儴Ƽ@f33A c-Y wTۓݳV=iije11kf^ݎ&?I]Fw1"H5S=JE+='}VHܰ=dət%A'į=mM7ʩ3H>/ɔOBNO6m޲V&yW̥jlojQ)-G#|"!Ɓ+B0Pr@n4 %q(݂)WuXJJNwL/MWcsֶ:8+jmxӥȼNc" 4D)'XGyH@SbmQG %Ԃyo"!v˰E;ЙY:H2;Y~ɫ =/vMr X^HF#ij/9{ ^^. B{^S{DIYQ@kh]LwJ5^|OH`\!-KLxޱs`>*ܖ,*j~ :'@ƦtgrAtkm*9=k;i?RH`u3ԡt#3{\K!.2elˢ_wfJ|tٙ;U"|FzڪX+zAt^a^ ' i%~5ꬊĪjꪗ̺`ҿ +[1b#k[5:)|G& 99lO`xEX'V/ÞtL34žeT Dmx 晳eO3VGuypr*1I{wFI0Ah.YtiI%k<[1m!R6T)k;Z@7l=pp_OUo&  +҉DgyS5`YLV0+>f4NxJO^gUIΰݻir\{C{`ECHuc\lU5@T?eXs@%Ku=vkK,8KI /V. DJT-`(HM\B`̲=@u3.\wA;CM )1EҌe:B eϚ{Cb!^߃(uIr=fI~OA8\ֲ{`_q">^Qmnn-fho%Z$ P3_Z :SjfH&N2ab]+ɫxt0|35LHM"5O E\~Ô:{kH]  (OJBIx1#C{KԆ %P8 r=iC{©BmH~W,!I@8{7abJAˀsb ! jDVWs+.}bE_Z] ;|:SMvmYp(D3}Ÿ ]!Q_R;)JÐK8h.5jFq"Q]$MUn 2.2(}{Y?vҟ)㪍F~B<=]4PDrMdAݓJo[+OtYg[ mBV={Dj~ŌoI0`ꃻAlՙt0h([Dk7VS}'ߣfΈN( _j ;V C"b7+d6?ĥ^B|l-2֨Y~鋵K] 01XɱB8`0Ԙ#kĹS2]e1٠D׉Xgrro\L3R43K['3-~չ*4Ǹnw` ɝ5XzahUaAm ₒgS!ص>10Ճc<1'q:|Y;)HSCIwcNoxwmvLbN}ԅirKfjri8ԗj5 9#n*$}!@Șix_&W&w92YkMuk^]iR<.:EЃy7q ]40Wu#،TFmTM.#BoaTR:hqL 0QWL)e7I#Up[g@Z9r֜RCZPy?}Ka٭Ӫt Q̊A {gv'yiH4I8ࣟi'rVqp-'NNeC{&J*5U^3eOns]GlWCHxA}R&r>>֓9p8F\zc'Ƃߎ>w" S^u/E(`jV}79m6cAp\cJ#$`%WwVۉA璱&dkSÊƸ^Z$=<8phwڼ#닌핹c(οm%-D1-BN"0R18J42H'$9Wq-[BП*]fk(@P_9^=b$GaFG Y]9@1c=qp| @ <f!o-!UR"b!qD\PPfAT l[nDsL/NwpU-|Ȧ[]H˺4]أvTДzThI8.9BqwS)prB43ŵhݸ`( ﵩ^Ռ‹MWod5cte;kb(;ؗԵN q;m;i0i[Yd!cV `K}?Sm\Pn\ FBŦkϤy` l,EEaC E7_{Rf\O?"x09A rAu4h VOnЂAwF5ZӂTy֧;@9A ?3|ۿ̊01ss{.L ꍣ~QU/'"u\MZZ-XaH u:t]Y^> S}[,&0yupG-qfX6ĭItdI'}=BgwNh xb?-|bv=nv*._opy9g]$7$49,;x~nmA+g:Lֽ&c3cx/R+)3zve '1}>2ַeǴ^x9 #WX&ʹ`\ɢP~~צYeOgpAÉL$;eAVU{ o 3NGel&=!7dH S%5ivO\7/Zžt4Sr2 ž}lWptxKle b08 6m$#f6:/yea?P+l@=K݀ o:b]\/*3{I*0(^bSi H_W[^MꈖfpMt/pNfE/+" #ZzS)尳0i!f)R JNBL7 l:|+*F~hK[h~^;QXaK*!zZ#k DV *\ TN)ͻ"T)cL5/5Ū[AbϗOe p$-=v| 'V@˶]Ɨ]&Zg zй%Huw5آ` s.4A q|y9V/Vi 7ԦEb4I5l88.?L[X~!MaJf<#.8. M]߶γ^U*OHt>hd74ѬXh:^H*!H͙wF^/GnF%}bhRcyMT,\)tqy1"Kϴ6;Uhqm '[EVO$ bZ&(De`Ϝs3J/8(qBV)eT\[cqT◧@OfBg8}0OǍ\ Ug;&V&ŋ Za.n(5Ãrڤ L#DK-r.EU{$5P0# wonX{,hG[Fcإ狐xSzYIsX `7{r 6"S[(t.Rxl0(&zŶ‰9[^{%dQj9msZ"F)$,1y(j@9!n2PB?k6|qAҚqEi]a!p=k5rі^aJ/H4UzOYi\H:櫙9՟=H4dpyAqbt[]S6N_eD lD 94^(qL'Z/"ɢu9Υ٢K~ 7؝f,R/|濢YVI/K*kU( @lcs&A/-ӉeG 0rs ,MUGHf؎xS ( shf!=+9t$گls р4Cp<Ȩ2NiEpNcRpR% ,(c4g^+.F7SCf^4lMڅ% 9Sn~׺yigx"\=m#QEDߩjd\4l^ 6&8KH3q Y0aldH)}/?Yn!0M=͕m3V鷽ـ yiZrS1uE sȰ,羚5W.,_S$5-(ZH2L7#)3ɞwwMe۟}ȫ,“9Ć{ Q~?",m!{IirDyU_ d3ݙZJ;+*7Kc0FɎaO/߅:*I9Cb b\agF {Of1H7j{#W"R@Zvas s<^>Дx}Z ګcic^Eh"d8mmS7lLww c9Ł4quQL@u,4WBa HUp*_۴㲿ι][%O5!e`.D*4kBMJH~e ,^ Ƣ؁^.{:*٫G A6tH|?!w9F۵0zBou# -W g#>P+*gNקj `ԚdHSGjHho؞T]#g'~[.U/cv}mR:1w6'KzJR]%#/v]F[ulBjA-Pxd c;ƹ귋hJ܃T^}-'ӧ袝l@ 2-nۧ,%3ltn6 7T`v&&:@;c]taripx8[ XoxRԩ5!dYgrQTS> *q PsI!@cPTR<Ȅ>ժno@ZJ~L)#65dI)i'̸ӵ3K7YEy\5dM2%2[5Q]> T]`r9޶YA 7f Jn%ئg3a=p ,q_LF8]mr+7@yW締oG~WZOv(<[M݉gx`eiݼSJǽq5'j]պ+|*V\ O`S1du#B: hEa2`5Kuܧ#.Ff/dܹj -_NYi3}bZ?Ϝ呾4YFl5nK9VɭAk$ܔV!nDO=;6= #;s[JS`hz{Ա`H()t©}'ө@ܼR"rf !"~X+3?B;07ᙇһ-[HÃn0EİjaX&ۅ}dwk-ȹ55KLUK ց}(2 $t?݉ .0$!I˼_ã};.I> KI 챈Ļ¨aG,:GBJEpd'Ji&ٸ,] H%;݃b;ŬLزg(8t$\B2Fڀn{~ k;lqaςM[d͐ W$}@2yY}J;;D} wa;•I2qf)PR*P*Li23H9Fm~tq(Izmzh4ѦXɠ8> R;eُ3w!K >j5Iќ=eV%@(C7ON뉻T?1e< b_&P[󛕳 t;Kp(^jEJ9*G"S˓ќ(>Lʊy!b,͔|\y,ʣno\`>&mH4D/ckA  bI W4 *Wl?kg5Ǿ6Kz?'Á*N Ǘ9<nXWeK=T5U\a:B;L^U ul~S2rc96jCxbؚA&o%|ANt%la#kji+''P20| 6<<0&+WA+?GaC7C㖝Qhfֽ¸_,SJE0t9Pf+op@}!Y~;$ cDu/H<bae ~Db {rM;֬=xɖ*6: cЮbU8gjٲRTU k_ªeZEВ m<1:"OAjQ Z+YRZ11iScb1~J9? 6xAPI9qJQ(a ]:jqbeSUc/p_hYpm]d%Hu/$XK95`=Tqݸ^Lm#yPS` ިΈ*?{.dG2uj7Cu̺sr/'2`f2/ȭ:'EЉd=|pp@HR/2&TyLj DG%ѝ#V:ŘO7,?~ENL7y89}Ǹ}VYqeF(G~I)$ ANΠ#.3 W-G 0A-rE|v nu|})w@g,q-:n~knff?l_-;[[wzq'l ^U'X b& {F5K^rV@NZRS@?o|N&p#wp+LR+F(K Z+hݪD +|v+<dMV­t3jEnu?jt[4k:L$9j!|![^S!! gK>ޙσ,4jve,i +(F[BqGinDz jqXIfϞBQqe:j^xotV7Ry"2&k\sS$Ӂ,P)4gy.m -w4dSvN@Fu t6'_!GY1(İT >C u@kT7VMS١nqr{_%*XYE/V0xЃ=3='wOԕI%>b*Fy~H`}Ertn$I}\*ԐV8?/Cs|Sc *%bIxG[E XGU)JT<^\XȔT?lkb8/qI*|@p@gch!lҸttCI= ^*jD6mIyKȶ,2ts6(gOgr >- o&*97ĕMlsKSDMRU-Hp;A PdIE#X/zH}'vn5V|C(@L"'񵪪SrɻٕpgFSgjIXE*g1']ҡQAyP Dc0ݥa<śM(ruT7TՁLWf"G5'0XK57haox^/fvpdUYtIXݤl Ԕ7B>:9ܺ l u ZUc3xX I<9" mݎ~rDneզ6C֐3%se<;dqu&[%[g[p+Ff}wlKu[uXV˝FRyHbɼ`vF먆$p1M}(z} }P` Yqb{7x0typWs0{eHF9-l>E^NT>"Glu֛9Wb;gP.׀]iG-HX6󡉕\%!%p8DxnQ_x_,>ģ4){J m6tlJ]1lع[|Zɹt3Y|IyowUB@|{pq΢mg'$X[ƢE[1Kbm As%$5\p *ÄpwWAKA+ȟ2bx"ETwŠj9$Xh^&ϩȍ'jYi$J<*AGl'Dwzd]nclbu*ܪ+}oά0E 3 "l/gD XŸsgs-L/b75`h5YI 0f@0veŖGw$w~ivcoX?‚PNtg˞ ]'7[vRo'h/cPkRFlɝ&vnm12;mnJ\я~v}c0ՉF(WYKz!en)Iڿ?LXv_̏\.!9 4QS)QǪG,\`-`Q-q \2Ή.TrfQ[;&@CoIНג ʳqp;X({_jTGho,T5fOC%ZS]A 䈙)Of>7ArWe3=]SdQ(B\lCn 2!R%9:> PQ=c}͸8 ԝtC6[&2>f_y\d?ش@Y`\qt*pei+ndd{\+C&,Cm7XLW UL#AFtm+Z5;eaRvFtN)T&h=fہ^=૨r ]EblHJʿs3R?P%0Cjw;=KuRo3oJ'[ ~x nLC}MݣPf \z|>I_[@j|ZF1TWl+9[Fc+3Z8Y6bb$܁O#H RGrt+SP=_4O pftVo+q-;x$^,h\z@WH5 90X I /7 Y3i$ўpfjwAQu5K/kRw~ٍ75KҌZ8N_'}Sjjۅ9êͬMv\ޛ nH?7ši>1ƠG<:{†I02VlL|ϵ  6~e ='#e~iӍxcj?kX1OtGġOzEh'ҭ(;˭oRpvj Z G8h Qr]>%x¼PLͬ(Ѣ\^*,LQNc fЈ*H#fnĤJ̩a"Ck[|2pMĚN{LVBJe8R.nm% |kZ"EqyysZqcy?2c+d/fcyl'ry̥gJd:959ze䝉 lP`F!kWq(:Zu:oQ i/ N]98|x%a rBt¤xp%C. v,m%FJ|bKPfD^!~xiM;; є@ Vh_/g7;L#_8Bmw:=_%2˓<_~l dž̈́2\0nz}\vJ+$!Sc?_>u*nj<̏`*?詔k;2VQ+q\fCi1_<ڇɋg*z"ch08󒴅oC <JL?Cs뉲y%O ; H|+YÈ^'P#.Oq dZ"LHxb RnMJ ;V*럑t[ fmn [ j$]il7'OJ1Zџ2Dn!)V*,z.CKȹd,M˛<-~ 4ڶ(LN2Fk$]Zknv:Ø%l&FbKVT1{666 v`]')I ׷bt@_n;M4?BwEt[7&r‰ STd+?L1ƲzbwmWUZgB')9yޚʿa<т#IGKKn@MgP .N 6{Ucr[V!nyWx|8-AFqCu԰|l5S4\wGN܆˃$/ޮaTkk7U;'"֧ZZg c_3Fx"2Df C+߬?\5l; e)E-jJmM|[hJbH{ $'HDo_UoX@ gzOp/ 44𽎝Yr;ra j*/+;g/:pp~E4c"eDzjq/X.ޥ >RGg|gX3y{uJ^MRy7(H'ZmJt~N;e^E50roRP[E8I yNދ%msK#{Yfс9ṡTfr6o4߳jy!3만'D hViAOw FYYoD><~i#(OU%>{3«F&p<&v\URsr\Y=X.6/N{HB5yځxc#k1?TA(8mtv(Uwsʨ3#.ܬ-qBB6ԁk2`{7& @l\8D->YY| ҁ/N4ۓ֌lDž5ź]IO¤:G6UU4A)Qe; 8սjr]+pLmJ =0 ad^w:{4JG1"o]%GRU&Le(" 4Jl`7n(]E[uU.U/TұZSJˢv M*rӎ&DBKAgťktAm3wBI[Im?cH-.• \zUEJs~5MYag7&rvWYNB3Ԩutp%CJAtKvO?NDžㇱo2jbZ} Li{M<g] ~l)ty/k" ʂ%pi^v9 p}sQVylCu WoOC6;ـyΖwǬjۿBm(H:Rn2EBzҴm,.aG+ʊ .ʁ3moo>gL!8Vgk=|$\DAѽNDc;1l @"56z{Wp<-yWXkaM!V531m!}nM"b=7n '>,}qk;dwV@z.|H4!.;^G"0Տ""".B޸\ Lu5t>32,A7qLQ?J! a0I8AГfE<^g?WOly8ͯk̋)V2qOt5[uQA"*)pe4mP7#!&u:XGSc 7bfqjx-~Y!uwu Xg"zsFmzWf/YΥ Cb/GV1C8(|Jk5mmKTɧ?JKD!- 3quN.i5DݿRZ+\ 4?w,{Q}@FR*| *ۚRy bqR>P<8# 1N,F]xVR+]1k-LwQ;]M׫E8bYa⸝ЧōQ(MD6=v.&ze.v*nwgݙ='5@gQS,9ʺ^KCXq9 ŐPMi\čr|2 ,x^?:\*牟 GYDQ0fk [ג`?x l9kzJҊk@s'/+}pLQAkb ]M&EﵻYmL:=` FaXKMPBifaCEXQIԺ h9 M|Gxu)ԹktզpV0E QEM3T4op:]~k\;fY**;Ȉh l;9lm҆ɩt/CNj= RN{ kU6D*7"@`ВMye5LoSe7(CR5Ձ20'G:t+6J-.G4%V#b}-"%H*ߦ"fܤk.'klt4f~=gAm bߊĤp &Tu]K4@LT6敢(s8p}BI==Z`gt z|IjqAOqJg#8ya_ z|DrfJ]>z2xBKx ̅ף&)ӭRff&PZoK>?<`*=3hpL& Zx;|L ZÆOԤ#myu+Ƽ t{~d_-޼JmB#tWIZ\$/CLӮ3e#<%qͶ}}K`녈w&{IuN:Ȟ&5]Qt*nE'}̮CD|󺦋}Ua힎T[񪯧u P׸s!\sd0 rn+m-RuEWą*VQ>SKO: WͯhHTrޟb&?-} <Z\N;oJ IC*2em]}}mE't?٢!fUT^Sg~R8A8o ᇙq "#acXc8 o5iNʐc"1܉mѼPQu(`KH3+OIO \Nj3Ќ4i+H:A[BC·KA$u~ c!s'9Ȳ+n,] I,#r>e6`p\TlnYD1PrdYIp5! GXRAlq魠U=:nIesFe G%WNQ~_*敱`ůإ,@1"o=+@}QMr} P}0 *[*}a`gɷcVX&Q4^)(wߵ)ďl%> (KdEeDW . cT#Ɨ g"oNṁUa_IѮwoD%r*/RzSf^gB2^IzW^3^L[P +M'S/`e `L_/F~]vJG*\!USet0IFjF__9\U%;'YkWC"1>2]6 }¶C"E"IX.c2gGTVW GK V`4mFwc OϳTVwuE4Qb2|ocennh|1r7`Pz7kĹH:)W"CkL\OZBT4,\-hMktimF*τ s_è{\XGFpi-X R nH5\GJ F4]b$2kd@m'ɫ O 5M>f?+q:3l;;QTGH {xr8v,x!V'meʜ+~ _?fy$Ɖ:Ld ڮ& Md6(5t)]~c\J־ 5d'qp~^2q{"Ѯ^EG9;T?1s:/ɗ FA t0owFPlpňT+SPQ>A׎շvdkwka%\P=%aY V4fW@nr85yd i--ua925S?2f~{J)E94_caEp5I* <ʃ8Oo+M'w~(U p/eӹo:GU+x<}&DݙlCL}߼}*f"I+n9VU^Q)k4&U˜H" H>k؎T>20߶`O«?gM7V9_jSExˆ ę?#v`2N<|X+~Mty4opmLQ6` =Y</Q,nğ*V>^ͳ@=*§C?uiGN_Vd^:ᷛ#+|xxT*OnQ].Jx͐9i8k`2* G#}βȥzMf֍^"vw~ŝj¡U/dywc7/Z$x~or&vYΛepBo`v1 83u08xf eyqeuC3A ŚS7K×?Y/>w*[}Ma_hPP~heZ讥0{غ8G3p/WpJ.VFfDOz+Y:0 "j""QpG@qyߨӳ/o{~#":Bna$(rWOX#)fp71 + LB>Xy~q5qąF=%8}w -$>7 ]|wdqAzXs \!f g ,E>^I o&bV\yl2Hm(>&% U qwpŕPv?3H3+=ك(CrݾdUֽV)E)Hzf@tCTfb@SR v@N/]2_tQbXAXcDݖḚ9vt$ Q6w}ee5XV˽L9ܨHoE4I877 Ƣ&"\a!{ٖ^h^O5iXMuWT_ n寲uR(whGU#@M%-gJU;j]x={,VpJÁ7`g>nc{K P n謄Fzn^p:?_xP*ASX~i@"M :7 xqs*BD2B!rB꣪ ,KLKݺH =2w|Ãbl3-8,3e~fTLVu}Ƹa)sմklg[e$]8VYwsd^CdF1j ;\Q@auxs,LG_r]7b)d:?i?EQPA BwVc½|a:W{uR5s4/Yշ츓= o6"2ctQs!]OBbiExѩipPߘpe7(gDn &(K *#.CWd1,n~6 O3^Q*Gv %2^_mf 3Irh?Gq8tX,^E&cZ~|Wpu8װ-?`EFnKMPw^>x ,LEF c,;~ Da>É]wWν'o:7p~db~PՄθEc|\Ub/o(YM1.hjŝx{D8bTg`_h٢Ibk\nPK͋b k<(%{on?-_Mjn+bŷdΥd1R6$ F +#C= z^3hqD8PqNqL4 a0yQn?Fdsw_aŒ2qx|8/*Hbv >c3īsA1nmPgTjҵ$Cjx!XbKmzmAkh)~V)}/_fheC}}{Z-D TtN*3Y w ocS?$e|eUElj{( |QPWTLgq6p:&B7&&,?q?IR C!E!COx}&$", g٩{e)X3כEz>+ }l|4XOmL,΃ ?=w "+ Í6Fa+= pwuI#;*)&HcZ׊L2^z9 Vxh 2¢n ԚH֛&i"=ҖN6$^{XR5%2>/w:ҘZBy8*'^NܸH0GfeW~iU5tI74H%{dbS57iY6ڴ ]<ԟgmzE.{ ;~RC;mv<~ESu$\/#/ʦ mX^efzmD5TD@hyzxW⥕|μyeN ;5hQMx -u>bcGhxꂋ{g6[k[#ZhqNA%w`ə]I\ ֗$Qeu+x fiS=8+ئWܟssemc6?ڢ6N#a2LyM$@=b仫 E,c- :ݾOv/J0pͼ狎GÔ|դ]l!k%cwZ Y1=os҉"F9cм(>8r<&]ޕ\,5~d(-pҞ$<>Xw }d=h _ vf:Lz ̉{bI[y{ǺX޶3aAw6}G*RS^pwSMQwkN hW6DZԵ@7-:GuJvJ2 }n`Hb^zYLӴWezA$~KbZ>dۜ/`bܱuضe"#0] x@k0kȢ̧KmACϒ8DRJ_Noc~>3oʉ`sCidC[2+#h!h g2<:gęY #%c&VV9AXȰܒ=z-dt24(Ymm% '֮|";b;՘&γ0!=+4|l8&.[Tn? L,c& [677eL65zIܬeT P0 'vbbX ݽx15})eg=!;o=t?c(2zm@}AecN1,%o YF7)9p'e7u4׷ -Ǐ:#lmgtdI0yC.å#yY̮m@re|v1<"C l^J7ZN]ɼq35Q !,ZJG]+4zȦjk#"Z.:;nV=f79GUچuKjt^^0n^_%TO @SJmX <{{(.$|58y~'8p4EN=!DC,r1*`;Q_2)'Lu2We*mܨLvn'o[\ Vd33충>Xs]ΙXJ/M i46*+x &KP.M&\g#44"i&fu\#!tbX=<U1}L ϴZjĆx\{d+O!m؋Y2L5 ymhHoT?[=\T= ]IZBWZCo1ɽeH}WuJ 䤇jJn*,ڻoL.` Gbꡬ-Tf>HrDoз<M%@df+}Ye-BQH'_&S(jNޙiV@ N`/Jo8!AΎ +{P=ha~q{2]gDsb<V6v{b]UHXRON3kJ1s+!71|x(ob& ) nYւ3*/_~_dgsI|~:eEpRSC.'Vn4>ַGGlzD^R|)RJԡ>5O+&l9& /]zB`2ѶbJm]#[T^l =z&Jر˅̥jwؘB;/r=SH\.g/"l+!FOw6obHQl צs`&<) b^σeĎC|ΔrCosJ, ԡ $?AAo;|Pͧ3T])8#'7us)Zϸs4B:U\|!~WP?˞hbi 2E@ (ac4+E5@QQ { eNHqUGq${U}YMgᠬ )N㤘v0Ns;zg__jПA;L8 jQ[amWνt?}rC0f)P)a0Ug:huwrCcg>wt~qxma`=R(Ed~4'KҩkNDʐԒ%nkt ձѮ0Tj@=?b>fW/N nN0gJL薰.tʗo*Kt`CIұkcU.WsQRVXL[%vv^:vV.qqyH em)?{Ѝl0O|½u>Yw"jI1׃t&7+oGD7K*r1 {H#@gbǢϛC0D =xNiB⢡htNlZ*K.Tced>4sS$:0ڲCʤ'g-%Mlp b z"c'2v)e5i+E^u\G(JK.BL&y4㣂’+F‡Cvfzc3m|,eƇ"ӍQEQGACZ@ g'&EUH򭛟S˥*յh:]b;N\7ª(լr &< Ei$HV-! @ ߣ: ǟ:D[^oM޻SZՏUZ^/Mk!M+ ^p̷Gqg\mf:@N(J/ iojK[m׎muFMHM"Cι1㫩TF Ϧę3 zGiet9Ǵ0 Q aUk:t].V#y;w{ YxG{p6> w6V]nה ' YP "cJqxɀX ߵMV7Nѱ~[-%awŰgd2b1yI>ECgG_C^lLZ $M**5a t븢AyT_YLC9 iD'l%&{Iu%|vD &GHmSp쵥hw.LJ7 GoMty*vq1Wyk-H0~?[nß4TxyCḀb3?Us蚵~ݓ KK{+kE+WEW^U݆ 79f`Ѷa sQO],aQXW=ŭ 9 !B^x{-sɁ0~o(fTD\7L8K\EMvAiHņ,-E%i,tVЎ=rOZ5ϓ/Mj-D^V EjW@ǑTPDžYVhqFΙdڃ9R##f1 9?W~:YKXZ} hBƘKRAkiC |!J@ qJ_.'(~Ďɸ#Ȟ[)Ju WC!BtXv3 6);8KF&F(4O^,=~'Tv偌\){Rzзr5c}#~& Er%%PZ*n}hRdݙ6V& Dpŵ|<>-0$8v+6guv"r"8 2^mޗr˳/;VO(f?K,ulcb r]e^{xkY\ι>n:o=z hVyg5[ NOKQ%țt:MZr% ɚe~hZN^!"ZWaͨ C'1=; e [-_l'i0Ǔcԙqh zG5 \ɵ {Uyhm?SWm!V\KdKS$}6Ĭ_ ݓ>86ͳ>2`_69DTrBXp\$e_q;8 cm/_M-<ټ:WsBХWik_%JԒ0 <_UyDFJ˟{h IwECB2a̲Axd5D;JڿwQ^#3DSJ3rVڨ~fC%!;)Ą F409}_!p0+1կ:?GC5h腌1$ya'b\_XRo?;`~'^q 6iGD(aR :0UAQ7_S8H, 92uq פoEaNE*10F.1!s` ,U;*8C{ǽ2zqZ[_MDjAEnڂy{+]+#` Ïxo\&z cBt4ZGSojItd}zz1oguevVGt4$d㞅9RreKP^wt|-@ԗ V0ݧ *<JG"obmخ@V0L#%i&!ivq\ߣ)\,pznZb(rF.X!mtM )cL>H+QQ:]n$X-TeK,:m >|C}4~+mO(2}T6ڬ븀])"+f;M"> }c@㨰&臭I&Z767F7axr:/ņD:"e\ a?0K[T-?>X>AH mw=,rGR7@k7C  lpޅ0&V~x\N4g(ϬMzY s+K,b?]f[r50H=A$tڟlau>62 $" _QsZj_FD[l谏0u0|'؏uqZ5`ǀ3 )/ED];? m"Oq)1{`Sl.BE伲Y2 1>yD'-R_ &1 \7aTۑl\mX pn\A4{zPӧd#FE~- p14;J2,*{.zaE r*GafRKĊX8O&v.>+uAݨ+9oӞٙ7׬Wp%J:D@S5>G9v$mҿ m͓%:;06QvĂv Ha(3t(.N>DL1>&2"*B/jk2P Gݍ( 4 ^4vUIjaPt0?ޅP 9c,e@SS6h6qp8a:a339#tׁVs|4$-6KqViof0QKۀ&$,q3^P֭]N=s)<#ίHzn*k]!߈0bf;s@c/SKk R68vnnXyM |o30%~-}%&|79U1௚ķ̀~Jl f>⊝CHBQίFzVt=V"v⻆&Gk kA\&U8WyWǁg|" {ufK)Ik6Z'w6⷟}{NUC 83H P.ƀɽ*E"q-FqR!Wtͮ(J,j&]39fS9 :M$QZL=njyqrP(\fao;cSf2'6[֦߀;xx3W 0OTiL{n0[7AØC-zKXӲbÌ\^BIkc"3[.qMuؗ aX1 G}| *!3'NM]rY=HOm/ZQ )<+$pn~aJJ]~=Jvº\ Y(⢗_Ŏ} -B+1:\V p@ +zHp$u2"2/q<{g^!Oj ˆ"ߺpKKEb3|H V, Hmwd}7_D~V!l| &h_ _΃1ȣ`|:#^CBM(\Rj%ON a]ّ@8DH )EVzPnon#3BWjTց9p~SGv^Վgmvx3~ȒmЎiaEXs X`ܲdl(-z]:|Q"`~8¿C8,'uĊ_5?J9#?_4&1s\&y]]XEL܃k9 ^6`aB ]gɞ0qU݈/+A(,фq[u\ %_^b?E*# њZ̢[ \^ _K?@Tn޵}'k;;s[$E )==B;{?KA'JVӎӆV3ca5F KȨȄ$"J}(iKrgɓP|,f1vdTٞ.#t.[${MLGA7mM'VCmD42ZN&G=qnȑi Ih5 YԠOzp~~'lmf z oHw0+~Gi" l #u&}GmIyR2 br O:|ݜ>joq}ny>j>.CFb#v?m"E2Sc .H-1} Dιͅv."d9Uk~IL0o3X˺?vsRKWW)~^0z׆U8:1KӶ}^7UMwΑBMSf~vJ# KyLu NGU淔njrFyߕ#A:Uysb.!#|f{y>BEQTav!&RvEX. 1ZAU+`ΚxTgVlBx}PZ c~x E`v"h/jir)uKa32[Z'Iy͠$b?B7%Gl .-m@廈GBSࢳ5 .2 s*=3u82.@/ 7 G"F /G,.ys&D.d#TY![=-dęm[yo 1+UBE;ʙWT7^r\ԓ*AkNA,{UTSXefݯf/ ." b8B }0-΋Q4ژU8h+Q^! ^ZZ7T$rlKO}MI Y OP)uxO@tgss!q c{,( _h%%ɫӘ (D{q$+]ۿO /T#Չ2҄^h7h1X\9tk౧}rH:݅Dx oY3k#q )#=؅1_'Rq~2$l*C@i^'tKIޖڔKX`[tDuMH|]ul^(&3;E [30ݗf1iwQL-|6} 7߱Y=Tqf̓` U?|kl\\ojmL{._FynM5+/S>r죚 #FçrgwtR Ƣ53gz\C>8'30.e(ht_&;|r7Wh;\w2X(6uJ3u]AJ)\* P󯢄;pǶ5$$;Q*cО4~IFP΋p9MX=ӾUR/u^<'| M1\B8z8wgOi)H#foJ)uEs ak;/ vM@Qe뷄vԴ%tF>i\ԜT'K@^Is~C-uV[ 2>[^1?c5z~򋑋 ~L; # bBT(_l=Bz&B' `$:2>G%}7g[_ +SMѸJT'd;8 Iؙ 79ud0$.l#/&!Q}RYV'";2Y;?٬MVPNl 9͝0~TrA2Lh& 『nxrW^MšTvwN/Dw3uN4 e&XM*Qs망b1ܚW'a3oGV M&Ȣ-m_l~ >)(XnǙ̊ڷqt~rEБ&Bb3u=]e,B/Z+1] qon THd>aqdPU?wi/ N0.9:J31I=deL=BtA6]@D0o_Xh`N. šK2@jM3ʖٻfZ-cMн~C gax}lr .drBQŃwW"4ߨ&;Fd&g.er`y8lK* ?YC\/봊_z[4< :U,~Sm6RNt;/Di>##<!^OdE霦D5ǿnrlp8>i@D,C޲@ Xu"h@}cͩ?+^؄~u\ue1XȐ+wJ*TBlb:K@#VM&VL!\xG#՞mKeV?ؼn\nχi&js>j.X PjGE8PYأeNL}3 GE=lCERDbx1j| _Mt?Lb.>G{ThT(=hO+%wGf d$es߿ez`T%^!]vJkjЪyP&(%ҽMٞ-=,y>98GLyjP?J_u8&ٻ)[6Clx1ZG?y[qk#ʦ8 5ZAKvP?󦞵s osukpczٷ#r(ZKc=ZIԼY%61c+} &Kl'CD3-AXw'FO%P/nȊ?4l)h h\9 > S8y7AožZ`?u`Tbhpdb5Ĭe/9DH9:گ e΃בl|[#d_Zf6ewҧ:Smf1 z.߃Tj*>KxJ<x@6Q!sⲂ<SCI(FZ%a8a=$T_rbWݻ`j?^(HsDC{74E;Fw@e3$vEDmesJIH`%`Pm Ã.b8(ch#&-56n Ri!02[5bv"1P&(!YڊAn\-(^dXcJFen( qu -4ԀzOdP o>.1W>qw]x 7#\^AT+fbLShkΪm\3v~$B;N*حѱN$}oN$ ::x(12e !^t$l®#bS җGA([ݙq9M~9NzRO a,4!'ze-\gc&d}ҥt>9%OٖHڿ>&L;\CU% az fW!:VƻL~ie_@[lێg.n|y00@ry2>ZYBpd](Mmn&tJg@FV@T&m|wʎ"9M֓S{XOJi_1qH_VheX< ks:#a/);`0b EX1y+vbw<0`: |ꀋ>zJH$]V}i׈TEa7䖝.^CEtnmm}aÛk=DA>^#:oSp6G%M`DK充 5 qa-MhO8WFݾȖQp'xtbɋW B^7]7HWBhzX+:G{IXk0S5*pm;׈V:u#:سӰ WYbf9ZmYN\¾ݱ߿ry0K6'ٚX<C)"*Y#I5CHoVAq߆NtaZy:eyhjʉ@95ѰHӹ4x;G]ou8"R{1 m6SR$ui!o~U XeS6HAY250*]١6 ̊·dAd][ZQm%m&2- &.Ȇ :# D6\T'K[U\L[7.p524EWs8')fdk](q*)7H˦UΣN 13L j"7sJ0)Jt(U'h>2RE4猺qPmWŌTloWO#s6]h 2WYhJMB$=z>"Xt%wU7ipXqL?oVd0 ar>֐L"6 ik! k5A_ q@L""3$_?G __X͂J}9V>S'ATG_8Cw): /) Y:[S SjO/ rmBeֿGh.s/ NV'ww5<YQD dQ/° hkH))@pa?BBC0qZ{3lêSyr6z{kc?YcuV&@Dφ$s!٭Zk\.=!U '.*HLN [gTiEj=tČ#+[VSwv8;'$B ndB xś.m>0CBD\A^t2 'Om\E?ظEsp]ev!f Ī V)ĵ`+w:ǩ,Z&} ]_;cOƌ]v (qH[Q !X!C-#'[L -UH)`:\Z8mLjOcڏ ze>7XJ}I2jCOlx7jPpOIBUTSzd%lj8^^GAܾF\@Bkar#BLDK뤍{ wuOY݈4EtɿYL'9t:Pxw;ΠL_]Ǐc=Su=U ʜ5xoڊ 1k_LƘ.p5 %Z)'^4U'_KaW?Kvg_)Q< AY9-!KzQȈ{2%v㿣1C؈N *b~EZ=6{w9ٗ._d͞K8>ĭR{[lg߱/26K1,eX`>ÆY{V. p&vmfz݆Wmr{YI|6$$yuڭR2kA_>xZuU$0ЏP`;ѺXJlSBne{Tt378KyEqDNJ}m7"עiePS0T*(Zy\Ȍu˭ވማ})v=U]Nݑy$oeqw߭XMTt2]8Wb(j<(NJ  r jɵ`^Cܭur|kƛ:JZDʗouZ|?'y)v^ P01QUl-![]$% 2f7o^Ï7AO{0Bg;ɡBk#bluW|9&IuW{F+\|Dy#.Nx4a}uSڡNԮuCB, sP&^t2늯i < A6+{۬,&'>&VOBafyf-Db-=^.k=č/{p f`{v 4eX?Pr. 9qMG=E vzal$EntΜȭX"V/+.c1&DYSr1^ \bKrs1%-bn7,qr=Ro@ '?ssU*zGz^$Izrsɡg]\B{p| >?$f́ #DŽ͇ppYXz+zorCp dă|`\Ҷeka`F/`t&tM| f&"V.q'\Y|z"UZw$eW{߻/b:Ãly +zsM$NFwiq9A\ u qn'-ϯclpܴ.(%;b\F3P34O@~[x:ŐMH,޽ TIJ_R<,1l%9i$ e~%pp@s$v=Ho@G4ց:߹У /hVv򹯊e @vYwárGh@JƥS%,k~Ũ+ψ>ࣁGH#Uw-lT%EY l*4(' c烎Yݭ߯҂&9KIwAo&_ܣrN~#gf 0_a 7=~-ح^8wD뒤~DYSzXCp٠L>a֟to~TL/g,5-Ořp/6.ok2Q?-!`h=ْTof+V$ar} d}QX)sV$a[>M s *%Kr #Q2f9ڹ;AhMuI穙\w\+XXT鑓?F;"0Bo XlR` IwpZL5hhǾi.~ 4Zw*z%] ޓc<>k }yZB}T C1Kij6yh?ÞF)E<Rq Ṃ.huTvrSR€<?6\]"S^+d6=9B\P2WZU>.G rWɢ(8!D=RJ/S}mSMY1_->9/*O'`n[pҏxBMJꝻgܤl'Npv-mȆfׯ_EQ|L̫d3WUQEXWE*F9"3i$V\h$ SD6Y(*K_ m>m/ótBqŸRM.d˫ae ]Vw`q %ao_%L }0lSozii*8%V6zY>= ['%3_p scWQwe>7fb:{߉.`plϨIy%G~r~^b$5wؓh J LfOk\inpArxcE%ZSJyJi[*E~!*Sw̧A\rIQM xct(GY잾Yc *oP2kz~Ļ2K+ &"0?\'[":XiӢV,9~ޓ+~c̾ެI ivaCr$֘eळÂYI'SY;QP$,ݭk^_riCDxϲڑcpZPw5ڽGȗ; .E_'wmCXNrf8J9XN;NYa$^y&ٍ M8j֓xGhHMQGsxBԬp8ސDk('X''a\L)ժ^d֎fD e|0wlL-qT hR1\+8w %VgsovB &e؁wːRO2EGJ[TNQkzncAڏ0ZB^!|қ?喫PHR-9"HִB*p WqLfUھw3@'ckgur &E?'mz8_ RҭB$m.Q5hE͝J+=)xoAƄ,ap|_ !,zYWhR4J-e.NM`@-Blu*/{/ʌ(de+w9)Q{Lop.9?:ϪegV5/yUw{Xo^ uE`"p (8/߁a{rO><;D ds(jX}o֊rwJcXŅŶvH<?Iy+u ӑ0(D0N)Q[vXVL6)F)'t/Oܖz ^Hh"`KۉG]B>EƳ:%2VWԃ^~`ɴa\;HBQ't&fKew L#BE#+B^鱫Z`5wccCWIaβG]fvb7Pgߖq$rű] *Rϥd,W!q tV[$Eej-퍎԰[-¨ De$F7R:MXgkҰ)'cTA̮_lNm^B՜A+mn;BM T]HJ,NfȮN~Dĵ A23]R4 Gο=5\u8?@6q4Y݂MRR2a:-@c~:*;1][ re-8iIǷ07ZDu Bx |wJ= ;=ҸӨNTF..f?tClZT+Dfaw Z&R.K]{҄Ci"^. DKKV ^A"VBF*TiL $,QkBcފykDe@5Z'Ѳ.ܭaK0)?  *ι;t֊8%^O@"Ӛq@"B/aqδ ȢW8W,M</c*s xSOFdF%ar\/YBle$b4(ɓ}61ji],7,G> } %0uɕo5BECx COl: /_E9?c&bhHAc#E|#l+UTw҉*j8g(M2PK?p{k/v&N'AX߽&]'$-^Ί?+}Aῢ7#%>n 9;`0̶ `+3n&;d`Vy.9 jF@`ܲZp`5:E~YVqhhǑ9΍.`U! VA"8ƃ6" qMu_=&Z9(F ?VV᳽̡!FrhXs&T Da9gZ W|UjSl=3kŝ[*R׆:]d`)'ro Rζ$;SI}th5ʎv5SڽL`XC.և 4WSR'%)} \~XMA6Lkg|RPVkc#!Ņ40UC͘]m1㇦1(7򶯲Db Tgv}D.3aTE iNAyūvU4A+y%0StխkN =~Ds77% ۱BzI7@M(,s6)Ƅv)Pe$HLy?d* 1COSV;`t@3(%y]Z,Ѱ/ﳫ \I=nq\%u7Q%e$XOfAl~F^J=Syt~U)?+:o{ &73/׸ m룀TXZ?맞Ulf#89ԯrƾ^fLZOko';A#"cjvF \V~ajݹbi9,@8~uS& xتdM3hﬕf3z|7W-䢸eJ D TPIJ9i g2+#XWKG >!YLZSKpZޑ=W>}FweB:o9!wo*m1A><>`iR/BϩǬ$[WвaSRŀ ą᳟"MQ?Gb5xWrSفppZb.v^ GWշwj~ )$oa;{ ,yox .DF=I4+ #4G ͤxQ|u#/5&$RXF=%11x Du?b=s]p8p&0÷RΌUf8.4:iAO-spv!0HZ7ҾGGʀjdDC(b\˿{!7yN"_^Z_V nWy1wڧ -ozdWcECDbe83opUy%}r'<o=WSħ:EgRdIHmWZpvH@3F')OXlOi*cy1SuvhS AYgA[ X|tzE83"}޲w"g.\qpEgJv2_YkcB;(Ԑ]{P<΄ꪯ7*^5 x^iښWdSG(&&OJwp(-#1aoB|=l&C41PCH*JQEϟ1 aK&&7nIrVgu PGL۝r"RKDx霍7qn({G1lQoAfr;yrstkx7刡r}󐋺%JL9EG 4EVRd:L u\!őϼf$f8z2Ɗ`Qf-S%Db7f[W[[>2E˽uVBP[/U0|kund]#n);j."*@-5*0AEm ³:`x %=0ق<O*b{I'+QAmQ)N剴%Q[IF@}]7ɤ"ݭ&6 ].NWqT4HQ0bKԔP6@Ćܓ^7 FȕMMBנ}N U }"\&U:$7"Hsnа/ōӎ9ܜF8Y0k>5goZR|f)AlGே-r$BF`s#B0WY>>}|Wjt,P~ГEn}y :/>)n`+Ϯԕ@UmaZ#szDuS҂O?͐tP71hsp <Pwq%5YJ j/բ5n}= K Vq@|$",&A'`H1^::+/38fБkveO9w0 E}nM B&c0qzc˙T" K Uh\VJC*ONpFH҉]d4b7&WVmӯ"J}1v`#heT@kSobDJIZϊ"<\KyѼB=@{ B3j=Î`<0W`q3ivxsgǔd>Y,-f*?Xv 8azik䗢'RU΄(,`iA$ǫLIDw,ӧfq6kĮ}AZ7QI w˻jv6|(\_ O!8bΟQ)CBkӓPQ>buv%qVT"yvyks{@ i!L|뫥h`u0Wk 3+]Y.cYM)u5:ADd2dyLWnWa3\s :ȗ2F[\qVFt\GdUCq5Fpݡ'0e:l2!cHF, Km+o鵘vU!oy|VrŃ=u|{2JGgBj7QNF1 P=㚤jQ|F4gqNg&kEzw]5E~Ot#GJ>Y22?h#CJ %yfEh3if7J~ !^+J,KSK⦅B FȽY }"2#SV\hT7+ymxmGi#nn50Vn+ifI4:+Գ9#6282c|?{B;\gW)Tq`VF}|xI\cIJU:b5S%n]:z5's) L)?U1g(Mx 2$`LcҊ]=75*4\9Hxq V1&?k\ dJl4%/ <Ƕ<2슔}[~6p.e(7s)ڽ2T#w2Pjy]Vk8ڋ#ȉ њC{D=)#D] Q#Wf˕F+tO;%Tgf -h &r[$FPDZC ߦ@߳0jKiuL B;2 oˇci Z}dNRCRC a)]έ=AߍwŽkdg C~."|v3jm1_'H3B6ֵٖU]㰫Ue<]Jweg[nB< aGপ bBPIQ9(H_/~WHsy:Hݙ"J^v 605aj,%jd+`V:9Go2J6*hheeYr"AE?MN4^YS]u,9~^R,I^@KvoF) J&\˹,0p0?ʔGn%E].rkj1@}0g|vlP1.zڌD--"JQnB>21_DL_3Ol+%2yohgx8'}j1rcsȲ$)L-w?HluJL  t|x<!3\7nF~'+PALhG[w!%/@rxc$xဓY|إ0Ƒ>{\as,ǀ<"فns=i>݌ i0U)pvtRHlUq64z+:|huҤ}>I~G_dWͺ4Lj8Q;S |0Vԣpwت| 277Fٔ6crCiӿz%fDv `WP/Iހz*~d,8B?HzeSe >-}&YH9Be.ݏl+9]7F,ʾm}iͽr2vJb&HK?q}ÀagTd޷vU#0[4N9~au"\ wb#i^66m%x;!.BhklN#8?`PR%ߕ10&7;7w>6mjuy5$ߴ{h- igLOCȶR9GatM/?~}hюWRG=@ĉ,\OYtAZ92% I^5D=gyC W>XCBTi=@dZdI:6odfB>NWl.!ϼm. <Pzw?\n`QZdJԉwU1u("11Uϸ,2c2qj/,2C:||3,-V"s7Onu`|j([&otn-8慜Fj9YB=qU6&a@*&,9i)˓HuY ,\c(z|oktOH$"gFMHH:wK .x;/f(GBX! 6Q~n;oWi-K>*ݻy 0In,J Kixa zq:+nz$ $5[g6N*МT %D3,jkmeΊ1P7?@,!=&76zJcR N %h(hO!!g j0M.{gCVXr{y󒮺rAregW4>#KAHbW_qu9 :@tb!KeuV|)\ Ѵd뎧4F$AXavn{Q'\Z< lEOJ<E5Rdv'u;Zl_;PEHc 1*nyGVu :N8.% WUz{؏; ^YtEŽt4-sE~2٦ԏ*Br[En(9yȣ7/t*cʉA벣-G|/)3 wߕmJ(\xe>+ x /։-C(QFb!P?O |ZYl]P3$|1ccuny}?rH[bC+ELs?2]7/EE"gM (g.nu9Y$жelv?? #kh9ƴCxBqLT-zc#&"gq]k a򅳼 PL.m_ ,sQY)ιݦ*\xI a4Yq&a?Ee; P\po /L4}!+/N;a rX*UB6)ep@D,1nf/uތSBf.>5oڱ=k&< sde29Lj494 kg@A3IRPJ{Ͳ)@2\b{v)Mc%WNpLvgFz(Dp_.}sDfK(h]N$4.'V穬$ WE'KLOҟ`)fBL{ٿXKP@%/_IįwPJm{Btp y` vkw[v !PQKry %$r[o8u>С# V3Bl|n|}lcib,6cAE~W7Ow<%Y:!u\>? /כu;qI|sH5r_}-ud.|#*[9B<Haj[k1Vѱ2dڡ54@vÎ`[5;د: Qj23>G >*Vd=qpY}B"O_yf@xn`B0ODL} T>wJm:x,E+< D4m  =. EWy2H}@ptVXhBcU=Zm O,fRG[3KA7s&Q+N$KJzPpwmژ4'Zs-\J겳^{P-\b!T"դB*1g|E­ntRj2 }xLo?˗ NR }F$|pv]6ʏ$S?CE~ s}6գ,2(~:*Nxޯ] t[e ≻H٭ؼs|݇]1H,I!ω3*:>htmEow|r'Y )pX1xTuwP/.oqicjy=nP[P:!4XMiZt0S_'jG+\wJwn\yy TH/3'bNf"VF_K) q ߚq =)[ی~~ʫEbpء5`>G V8 lm g/;f 1 `˨|ϸ EK6l 5БB_ ut+-\0m1i$[Ȭ+Xv|YV˖{ 6 QZeWbvG|Ô4 ʤ]yȉSjL:s}%^Pcl*lkz%Tq<\~7 dwϔ5Š]*1")(ҽ+Y 5܇bathe@L-tMtっ:r R8SOLxp̐AWʧ=ܰ<`wEO[ "kw/¯YӐ>Xb?aNJ&{0`E.t|P;_-Io'o\,~%ka!$!gBss垧QW8lxRԿ=Tcv #EȏKYlh: -"d߃nj&S=Kr_@A3 }Qk!Kzc;.y1 -dE~7:Im27j֓"L;cM|cx x #$~ b?{5ӝhdAn ޺OF^%| ô2j5k2}ٟK٥>l(_K4]߮90* FdSaVI 0%s_FmR0{q#.(wk`CHzT܃NOH<B\Qrm}7o`+Ɣn޴&f:SvdXH0k,F1e&'w0baAM0Xd/D]8u3w:^[x?H3B>dQqvY6++.b(n(5o\CAS8A\><0jbp|:O"0 $<: kSD>y18;8H$ NwZCp5nf7?$oo:b4SzYTkJ%e <.@;hoDouCCjE^yk dj4"mo gmWtkx_~QeSPOKQѫJl̿;%r!…㆞x[$˪)Xʠԋn:=0h]LZ ct,<Oҧ=@\TI6<㜘 :5534çwS2kxnE: MQń;[ɧ("O:&XM$^IW1u@IoR//@AZʔb7KMsVU0c 6Xp܄xlT!)G'kvD78;%n4hoOhH5 Z50_k]EJg<߫\J1v-M#Qߕ@`4h؛t \yM}1Dzz nZUFJ"954(OX#)H=ݽbcMFBAtJ}จ&!HQ"90inN/YnP?&}p҄<$ fSn$4ԯ*n'A{s;kbG@=<r_I⎠Cؐ'-1[gu3O\„vn)RWS"TwYN8MчIIж#1+W; % 7>eEpվ伫c^m7ڹ8-fFNf3<נU4/|wgv&FC]}1jx'/02Ĵn.):/[tu& Hݱ3Y*3r|WQqg> f%ܝW5l(age&ܢL% ЫRiuBʄGMZ![:oK:Xe_uW=nظ9ۊr3qK&.z>v+2r~_ :@f!^^fV,SĹu<r6Z Y(Qp5jx S\'\m/ T̅?&ZVYt0D.~<~.u}_R\,$Ba[@ ]CY2"퍕5Zخ0 C|[KdbΥ$(vد5=gA!LM?&(h4aEe$1 (Ca )'>#+3P+ dr?mQ4W 9פK%y(H*k!XH,U8z[UJ)z?!yʹSEѓhyBebŤ +2>]l+y򖊵9! 2 J{.zfԯnS5/~3eF)9<;ah R*dd p!TƢsrؓLY%5VӬַBS=$ђªlB{'Ά6c{~'?!8e>U\791L? 3y>wGde<Փfa4<%EĈdH6Dբ=@΀nTۚW!(h>RF .衱0D|"3ğۆ}*OMH 3pPۀɚe[Iv!a2ELM&{=»nSHaGqϩ6p> »tPB$, 8)%JWlj-;2io}:p_ o*z0睂 73>% eΨCE0|eNQ`()oB0~%a,eByW:ԐbP%IֿFsB7&7mʎ.=aJ}{C/)7}XDuH OnR[6:]VhqJzn|MesXS˒e/YYAҌ˄cs`)64p\HlK`< p3$L.-{B|6{@tn\eSWΧ{n(nڈ+/J V9jݰ/25yMfI.*ǔD8Bh&pN8QYCRq;.\pfÀ:I]Zģ1A6%xuQڅ6b&wTB !e"B#^7U1=&`#&^VW扫( %FG@'~tA/9GIBZ> X֩&pO 10$>USBZOi9NPEPCιsJ7Fr` ඼:)a%)Fǣ/o'*~d{ӾeAr0tN0:ѵhy ;ew9EnB0~ K-j/I*~i>wly1;2u녭zY #&E*arhKP~v0"I|tn"u/.J҆G\QYτr+Z*1<]z SU>QH&c-tAIRh%oPf\PPṽp rcZm!IbgoN~ ^y4vsH(deh]9YY6-m2Ӷ_8lHdTy v`vPvV%CF'"g4y}Ԏ\vk/˴6QjJnYVn9ߜy#](oM5p& t"횓tmbfnE67Nԁ]2cwʀy#48uRSV8=>yx֖߀c`Ȋ5Eb˺Ã]hョ׌|bϛJҫ/J5:<4,%C}]UQbUH{b]}ZwGĐѐ7W]6] +Rh,+4=Lbs{ʐ<#i!/~WVH7!t >EeJ|!cUK wϐ3>aٛk'$;Ũ4*^I]Lz.lc8~]/%c 'S.21R{D*1fy7N]5 V``CwY>\)n02#7A%T. RҰ(#Pi?4jmr8]p0YPUa1ՊN @Q|ƹYubsdTCes $|;+ZTwNʆXMX.>UNB6:i%\5`@H>ؖ ,{aӢWI[,nhѹ5(m=zSM^Wa Y`ԾAgcstrHI|M، @H2e:F[Xi5g 3PCYX7͑geom\3KniMz ^WZu>t!Im#JH |I ?kumoB-Uy7c ~;"p.Vc:[\"{SĩThTuXw^YAckz5!ɠWQw|J>C3a-0-Ơ:ғٛbפ)yM,}+ +O{qPjO2Rp8x1sdڻܐS;904H-0EÇ0a~H7gNŜ K( \&B<w}5[?%;5mz'0 2sVC#| M:gAF[@CX%I3ʱmj\N\q ?_GD A5;‘XSZa{Ѹqw"u+r'Q,qOi;~w\B*} (ʷ$!Jv/LSuì ,!&X$z_mS-KQ,c曦 K}B*ؤ_&AƵ)))j:f=& Qc[+[9RBə>V&bpi`[@Ѭ3 L rVaS8iM ;ŤeHiJjd׶!['.ˆf/=oH|[>eo/9f ^q_LTDQ+gbW j0,1gp?w72޷(u;+幄U|.Ntl\}EojV ~fyt$t!|C԰O6ՄO \s -.SOJGdW,Iix9ɃnYtJM;Kc\:/;ˏ6}ؓ#v*( 9B:̑CAk ]&14iMCxZC<·YrRA#lG݊m 0*G*"jani^Tkn4)/X[O٫hs9 \FmE[P@3\~;&ՃK(T!Bsn5.t ~u%qѵ?VF OlfI2mBP.T**uVl&-n L7BQl{id~ 3Vh\178ZTnV>5T߆hUV;.J)Xz$vy0aYy5sk`rUn% # ) \%; oi`tZA)Q f bq=tu(`Lw:T6O|ߐMU.=]BlZz04 נ4e:wVTB=X^4b7fѢfķ$6 ¿:UR- ;CZ#$B51b -VֽW2c'H7v)=Z˂``!{}lfq- fw"j 4+2_A.x#OtH@k#˦Ҳ :hw j4#z@f<$*zwkG'X+sȃrg@|dcd=R8X]O=|j)/ۍ?Ƃkw?}R w87,)%%E.qf.49nR=k}d!Ftpzy-=k~dȄC ">ͥR<7&)`5ՠH0"|j\"km.a8 "163Tj CB\pVx#[W{{?Bj{G3(]K&f2hЖ>.ڷb4|[GWg2` Mf9 ́E=Y;[/n{_h9q 壿ˆ9\n^Z41LϏYmU9|\']<]i=v6{H[SYٵb P~{L#JV\cdSO7!~H6,_iwAPuJ H 7npdNziU?ټ'B󫅛0eD@斱'h.>(R3}g^'u׷0 !It4NԔN!B޵CZ E"+)ev9M {q®~S&ɤ˫[2~e`|1A`Xq|sb]ǁPu`W#mބz• ? kޞE|PS.MvaRb([QSiԢ~Ҿצfa~BNDY<|Z RW7_.TsGDh7 yH?\2ʩ Bd(D|3P&%Q @2wxS(-k*k/&BGn ~%}k 7)OU{Ҿs4 _3GծUӑZ/tVDIԦQmpI<X~팎XP1}r-F )ԥf⚚$h ,N>t"-8O z2u*y3MxkD chXjjGT+Q;5J|h$ E6R;qFr7wA/wZ avϛ~b?˰3cQ>&*3t2DZS,!P&iZܺ"(dˑ:wy?D({]]a4oi%G36:7!.wa!e^ZOSF,z շ„NRۿ&ٝ:89*fnnY^dЯ=ٲMUue c (;6 pGJQbwe'\ Az VS,plj$ ԔnfU؍ u1i'bŅgwav]'`=- r_YǓN]DFT e/ý,2рX1Q_%7Z7iطvREa<}8+wOZ5_o<.muI1:KwH, G/\ޅoc64;[g1k+ff&5Y(]^im|u9Ψ汑a7 ~aXŏhDJS6^gf|\?uS˵ {D0 Yc7 եh YTOC)tE!bj]K eS:!z\MnV@RDϊ[j&Dc*b3+o/wYR |zag&3LI XL &8fbJ ceKh~SAu`ж'@?q_n3i>{mDRg#=0{Pf 4hRZȱ/ryZ>MOGS^ōnT($2qt{.d3Eqy!Zq:E5in4={@G7V8$Eߕ `x'x~3jEt NpGq BqIk2d]^Zml)Xp3C|Mi11ԦuSr_4T*g)s w>*^[(@v=N--Z,-S[0vpY!Wd}kaغI@%vm^Q@qF;kݐiWN&E0%@sgQb.VeST~g y|iN;9>>Ʃ|? ORrL"V{kRt>xRiUXCL5ڣݯ}$[R7Ν5+giu5^Ac$Z=ƕgQ#DGxwbPh}*- ^1~}ut$&V}ESP{T@ %?wO(DpunBB<13Dz4':K킵k*xJU*e':LZ܌Pn9 N\֖9zA<]?SPAAd+itlF.1 dL@?098SGe fB[w?ǶoTFT `%DDpz|^,*Ԩ˲EPW^S"p8BrRpSnwOُzfa''jPp\4%BrmEMW^UozGga(+{qҩJFe郌WӜPe* R.l 0+PokR E޵˪hjs*Vbdb8DTLv/2B1l NLnMa3#B.#8mף Yˍhx]]ЛIwL(VVU{JHB̈uDK(S3oiNRō_>Ag Q4KD0Pi5X 0"w_heq-mcFcK%?)jly=eN>9Q fS qY(Ga:߅ɕ( 1]XPz7Af,mjCډ cBShv//P7f2}Q3L Pۄs;1/0G,C惭&Ä"ʗq}c~<= jMy}Io:y n- R9!ܠf nKl᥷US;Eפ!1+ /9@X`ywiOl]Qq_U;Ğ*ά1ؙ7cHmqɖ|gUy?'%CT}*`kU7;Қv/D kN ?*!IVή=բc͝13cBY#ۺp~J%-UwPi~=RBҍTR퐪&,*##Tvwl ?GbzVȷ bEg;3g8XUo} yja~\*8]8SC^ ?0xPԿ UE@{icl:M(,48`8o E'[.)-9?Җ66֔( 4Ň1G+UZƍWщ#+ 9<hC8HRpjso3lSM"&)=O;] 1g5a[s|)bǀ$UGK/^N3.r(j2oށW{]֔LquŪ>SΏo6s ˵˞E~=Bޑfmnxu 8a_+6iiBc9&d[MD2թZd T! CQ:vVsP_z"xvX:I3r/0 Fi!䀟nr}t%fڋ+ >%*!_8WB.zXHVvm68 4P`cF[8D:Wkv6?PcYI'BL(gJd})2w!ֵUzQfOϏlLdCs<пLDU8.4N4aU6l$ʇ0 E&G6Ff+AD4L)8qmȚd _}K:8s!ո<ߢ@!X+ÿqH=^`SJ9HF4`~%%9=D?Z8z@a[v^?kWRm팲tQiH׫C]>{)08E ~Y_47r.u1*m!NQ'cG6o_ZnƋBm"M?1xSh" f[$JvY{ Q6uΖsZ.2uveef ﱆgd#䂦@5XJj:HÍ[x_bkL$d]3ӪF$k=sq5'ۏftw 5!3QFs)Fz4b+ul*t}k3f0E8c*RlkpN݋3rԊvvHk`>|*P-OTc1?uYvA"\3we8tj ,N7S .!6>iuA >u[e1ta z]V{hl'*IY!0Chyj|Mþ006퍤ÿSĐ^0Cp*R9 ,Xcf_%;o ?;`-ۡ,O4,ƴ7YjC%1^bCӯuJґK6V.kTjK1-))`T*s[]H+|n8G 0Sô'3D_!NѼz.k  a(U'm^/n  XHRhO52R{.k\su<=vᄃbvgR,{D@''K$ɺr'n.W 00*N8pHv j$fS^2z3K U!5^cC3" jog1$k Ѩ>l0.5$;-I12~Bd,Ϥ܊Li 0f'O`UvS˂5<+lAw܏xvT< !ɆRBJLdxpbTRSñgn303n5[]LRؐ>9=OGݤn?Ғy8 ?zesǷ7{Rtc(XT _XAEc| T^D1ˢxS<}kz2IqK,VzGrp79ʏ[ԎJ!)Re&x̆9^A9L{d;+fԅnP<&HU)zI M*'dܗqI 3R;>Q$M=M*ZBB4Q]N#>00Xʋ"J1 Q@2&}*K |]v㌐Lׄ c[e%6CÍA\g/n#-U3\1b$P9d` 6zfJ=PVJ<}UAt5s#=!:PL>8,w pctx,Fk3"B(ΟVJi8̧5/$.uf|{SsN9LE-sc٢[CNВ3fc-ӛiekmX./ WoAWlɫr@8HЩ021Z !B#A_!%2~fe3 A AmPZVrm{"G:{74$uӷ'8"cH]ٵ}ėvA-IC''>Bf !%RsT@'2;hlZQK8֗qdEd &W,k|ggfBAe(, 6t:†¥k5hGYS7*F]Qd-uB>^"PwoJb12J< `6LX'͂(BQqJ֪=4;Ec!gvkxCg IyW=C0>dցE^c#;v2}`EQ ȩK8AZ2Jfu#W i1Np>+4 UP2`܆c2aIENt0ۤdbjkێ~} TXC 53 oirӟ$y!fX,_kAUރűG=& &ܜ P'WN$䍻}e*IE cϣ'ٲD3Kd f`2M!.Vtb KN?bV o4>:Xqf,a&W[OoOXN 8A?q9i9lMg&&:C;I5bN.m_P(*-4 1u=$7sP#䨳my``f0͔?+_-7?7 ĄlFqD2X,tbJ9W|Y۷)P@D3gX_x׈JY0B)ؚGSU3G|;[+%}V܍' &q| @zէR}-O=q߷y,,[g-1ǪIk-49ڋe,gm^,o63ڈ/9axY}u4tHY19Zބ V9 ͈Ȉk)H&K?]Gu]UEɕ|݃Âa:$Qzt2f/gf5$I<;PhW E%srC".+3}?"^c:=ôr! )p5 N</}j6vA{ V F׻Qtر3$ۍ{pMH)'l&_nTf탕[-ʫag^Lz;cE*VS0ݯFlzx7p{S.o*BNNl# ōؐ*Nv)ޓBPxV,AJަi+7qnN۽dz1bXF.-snB)ˤ$4yğQ;E%Jt]7֡Ej/(jd2ūjjFXj)_]R,.}0 DYaeJ\q"wV}㾈J44A@;1[x-A׽i#˦ 彄%vP9yU΋RcE9mzW~iw_eEDcPIm36F]b*V\KSf |}o|T⛻=3ȗWep!_Ilo%+K꯲x><D0jklt%k%{omcO3_` ~<w 0TGBc@֞G/9CGs3oJD7H"c bL[acZJeқ[x.wEvHjcri\G~ɂW& l*5?ROEqXJLQ8S͑ x .tcr}9c_zrPOaK DWY?< YX4)u"P邸vz'I!<ˀJV Lg(s'X4QUe9")&l:9r}[[e&wF8y !64 ¾`:UM;<љbN)m:KmCZc$*Nc~_'f8x5I<ג{p6x )4&cczڈ)] Tcl 0.r6D|$`U] !z+E1ENT;A9Ujv׍\Opq3>09D(,`fcjЃSq e)ͣ0aV`qsiq!3|)|^#J:2|46,i[*z|s0P;B' cEkZLνqTϯͦkI6P!9ʣvymPh,*ӗ]熯lƩDw:D\9OBZVF0~!@ÿ ]fYjap2Ns8Oa7V"۬*(N+)`mO DQL &. nNI1F´#l9*#+iĔ{ڲꓑOt]ŗ*r&Lv/N":&pC=3Ző_9vcy<CG5,D$5 x$ڗbuC>饀Uk3zP"˛@&=b`(*H V^ZVW>E+wckhD\Nd=3\-[D򤕼Utۼl}s&Z* ݭ2{Bկ: >sJhF$E >Ջ؝> @=9dyN7@366,ҭhf~ sq I^1V:iX]^@&&1.gS&jx& P4[v?BufJ{[j#X{i)]ǶN; Tݐ#RNjY"&i3[tNta%_j! #e~uA2* ۈK".l. {J:. usWk1ܑ675@'H֋;Zt&qqfuܦ^p()y)Aa3Y7TEH(zK}[2X!'_qc4{ǺO#QH*VHc,׋+!ѝ('5yHZ%^=xXG6Nnn 4OK}*&Hdtjn|Dzx hlc[tWTА"s5a i̷ۻ*1I?d"Nԭ ᛮ[ȃՍH4u  1p9_CAx?|?+~4u]m˵׮sVļi/4/+S:ijb֦/5)d-']=vyĽmj7!p,L+f(.hvA`-BB$'0!uM-; FK vܜD/}n'FWQ' P [{fp`:uN ++`@!MպCC*!8)Xr%YHkkv]Yl녿8d uB frq6V0ή)%F(mT WSw8h8J㲝uCr%fA!CD[+#i FgԙkA,O CSǼ8g cʞ/I+6O,x<&N3In;PM y> XLaq>S!QvfVO eT9}-wi;؀Zʨiۆ3nɶL'Ą+[Fk9Q|`{VnAh>VNu~ƹA0= R2ׅ(-wCKV>J@XF²KXd:I:&?A'D^T^~0_Zx<QuQ*߳vro㿹<]]--惡U ?M6v$pҧI\#FĆ \L뚾DwM~N%H͛ ++N=,muokxYs8%I/mJ(qEҨĤ`Uֱ{&*2&rB*R*kIjPFj'8dm Sxc7jA ((%WZ.ɜYt7ĊQ%Jԟ >|KiAW\ ku_؝aM9nsioRfip ;T:$$׊Ew!]:c yeM?]k7D&it;wa;:ذqdWNW |M]]G|iCj׈ҐnP,z-9tRJ qC65'$"]ZjUGegؗbWgg4n!>gDx, O|t9yN2'syّ~4J2G3sKr_8}@#YU\H|L50Xb~MdH5}Hv>2tIOvlqIjȢȼ{|́^uk^Y5D^9kpɀO:$ep&8ϻZ9w6_qs3Wۖ&]ds|j%+wVTT<0GcW+?B? ßx$ n.@v\YY+v :0J.'72 }!^+\e6'DH%bPe'@ٖDz 4 ?g66MJ!__-[ʝRRI ddB$I}}biBK.9Kh`#Ȓe:fKC=֯Buvc7)c@oئƥ5r0đ1O^#^x3X$D+XGM X(c@B#37 Z`lӶH7Ƞ{y(Iҷ5H5k&9LM$xcJUrZ`2U~K[j+q"ۭ6}]' .XO @垧2qRZ}=cF(@NG^xH"E:n|6VfY; sBm M`GtKE?ܰ+0,kO]_6/^/]HRaߤm߲Wئ-@9yQMxk2x6_窾ȣ#q]1`[f yP^p(2 6|nԑwc6#7ay`\O3;2`:7fhڂK?&^8?( UkC" -ʰp/ ^qTŒ1$aXU;=y-/ֱ,􅫵!NɹfWQ݀P,oP3T`O5ȅM[SMȐi*!Gk؟鴒6(A݅v4} $Ғ7M9@μ 5_cg2 aaB ؗiKb㝈ld}>WǟAKTMN'\XVz63Gpz7y]-Zc]{%Pq*fJ_IJ}AT5dUy{o}>S12Ѹ?P6PόW}ȡCHH5fy GO28 ?)\t>۞)Vs7")|B%q' R[b|6Eiѡ NNQ++<~ڌnEAp_kzoGdipԲTbr"B1^Wr\% 0 ;A3QECSSc4Yʟԙl"R|qZ }P+["[r+-? ێcti Oi An߆L]j+Y^Nl2> lvBη(# ۆ.~%u*ύE˭#*:ZL ]=豝^jۓgtwUfCEg B?dD2v(F4}?-|>F=3vN_&:ѨLbBLmFCX$ 8US~XO14gSEUz/w5w^bavZiV^n$`Ѧ Cn˗j|LO'}J?!W wJAvNjM*KK.kJRw21<̎Ԁk8l?SZc"q:\O)5{]f!s϶>0*q`ewh_[)o m̗^Sp~K9"] '=LK)-S`F0[ԔF y?795ٌs RC4^z\ z%n2 vN7||*._XjeRr}% OVs2[m1.^{p;c ;ESC:hjH2S\6+ow;Fp@;3Ԕ|i5 ${H[OV؇ c<rTOVr?MZ@$4b;ĵE#gJ7d6&P O_SVFQFS>@#^ ;G$VoMEهiV#-5o?@}QKmeJS/,q3:qL.lNI6PDAT79JoQ'7̸x>{o[Rnh!;f\)DG|_|xgV$~JKt0㍺WCY艽4HǙnY)1^S[Ϊ5klDԞ ˞Zi;}8tHʝw#BBaBnh| 䏋l G}Ry%'SU@7^xq $˿Ikbhط S=b_V0@9y};#FZr:kU 2/>4WLN-IWS:P(h䯪E8,FuFa)_ ? ිN{SE*P(u߹b~"SҢ 9-ﶕ,Q* o&.H }J?\SQ=LIcjs._9_O1ɮOd%Ge"尅W+RZF*z(( EBE QQ4ݳ & AIU.te|Υnr~/"z`3q~rB.l>}˔gEmHC#wKԐ9mҥv:Լ)d}ƶiG՝+^ox^;"8?SH&/J(|Zܕ"x"dyq_ﷲ%iq$o߇ mA4}袘(udsa<DK DRsj~=D|q`KGt(V8]`'e2ُ~R f W`K5D$|>H+=mg;sfbu c']m k5vUaME-1I]d .)ؓf*jפJO'W%f|C.|`x8ZjJ\P""xlA.*T:k˨(buFWJf[<-D~+唅TS! p $:`,K0,w1h0o&/m}7(Wll 0-q6aVT""9erXg}Ss ٹb}DZ,sr`GH-˗J9I7˰Y9(FԎY zy6i| 3&`!sޞZN4!ӽw{z7.[-%g5nx4wxb9l3[0)X7ɪ&jnF@+,׻k" 1t1F!pk і# g |َ`t}ۤe=2A~.~yE@oqbVzb䬄 qDd*n:)CR |Ո/lbwې@yhPmDZr>Ӊ`ʃ.?pBbo;tpjPːdsmj/C׶|9&KxdEF*++ Hs3HzK.y7f6ݾZ%ZԇfNvwD r 1̛$~ 4k7|ªobْLntªR˸}o|bӿTb+fh7UϹ-K;Bi%ؕfp(=4VYJCZl&l,y_ZrT]EǸlFS_[p;2.dOv=-ђi>/{Z$-V ʳU.|00A Wn K}]ZTZziֽu@\*xLBx4&zdk݆0\w8aј@|Cߢ܍挬v34{:Ej&s;^¹l^.Nbv0im+뽗5Íz5 DhuL+ Ǥu5dp؂.g\2h4[j+qѽ2Oɛؙ1:0a rZC dp|)b714vXNme ɡiqAs!Bq±3%=NJ8C$ Z9^]DNowO\  "!%yT[p"߲V[CXsx.`h ]@NU)-ݏ#z&68=!<\jM{\]rg: :Qj=q8-x?! /56 Z öK: *v)쭨jUШEs ^SCYaN2 ,XFIUPۆLwcK]bn /wvI`kյ5UClbBLMr#4 a8&p/N5]\hE͗5DjSze2qh: VF,1:~bLL3P47/=-5D)Kf$Q<<unziܙҜLorW|DS%?w&opT1dmh*[D;6ܿOo%PwTcSiF|P &TED(B*܂$@]. DXe'B>v1`&,5mZ1uiEOjuAd~hVdmSR^}Ʉۗ2^9 'shS;g$;a̋ŖpOG0%륖W^*qi jȦf"!G@n2I&>͂B^CeS1՛c./ax6/ 0C 哮̍`м:.a]po^%B2X~vܨ+r' 䫂~8Xgu ]Jq * # bZHK%ґy\,Τ' s&e]ԡN:jS١D\oxFNέ]OCaW0~@x=&(M5R"8s E]rU )U>ELUNÃݠA|ox~AC&OPgŅ43ugiy``Nl&;_gT3lͭrMQ IgL燜[)-I4=_L*n< A BheJt(h6[G=o2Mhse"W$uK L-9Nc0HVxὬwvէ#tYYe$m7hgk@R!3kABi B,"V cԥ=<j)YagW^G9EmlUp~4$۶d=XϾ>KFJ\G WcMp snYÂTiˁҮ˵$Y1u8jP+'~X(m `k+Ƨ%(,3vq$#~Ժh~H1R89aYP}51]/h,7PPkrZ6Z91L^RR$FI>[ A3vh]d>ND!h>h3`cF.}Ip*gUD?mm1j, 鲄ˣ*d$ibٽF)551sN ՜o䎟f趐:ۓ<;.bt`NS էVֈƜGNAbęq|FB5\c8ci^&Vءc`S:rмyA0v-usʡ-djȩ򷃚#Jh||}uF:Hˍ!UO-mX2?u#| m]~ f e[YC,}/R08X@-i YƕL;`YJ74U٢)hƍ2 J<5^@Z6En8 k[XNH'Zek)ʎK*({CNvkv0UW*Azm2D|a m>z3n]%`PdsY^%HPbqV-\!4BgP[G=oZ!3g í{NiH>*M*6go#SYOhy cHFnΓ (6_X9"qu*]X<;X ^#W7o췧;X4c/k3ESGZ!'7'ᥲ.d s[m6fLfcti%$3~,*IIM ~7Z$r.cCK-O(^,h}zhF>quuSxH1aNL QҤG0x)گeO÷3F.Qhc@Jw"zw_by)^o :-"*e|;t&ӂ~ǚJ9R!۝W2>:/OFd焐V%MyȒϸhDjU'F!=\XC#U؀EZ]ohni?!q,'Ix z@opִ}Tgk-1Fs۬4uodMFRt y`F$}[4|(sٱ&ڃ Qkkea23g9?0ӓ{Q ؋;})hKx#d.9DiwR0tMpk>IJ[q?C/dG8Ssٿ*`N|w!``Tj* 1fP-сӒL W l'GIdB hTShHs6(T6ݘRAO_$I>P߄ŷwXB.j._1cl_a{Ǧݤ:;yq%~+u_PMVPOAR 3a ^k^?[J/ RׄLq7;%5OzV$W(`#"UEwM7LK+P>pGBmLÃHߣ) 2 YZ