rbd-nbd-12.2.10+git.1549630712.bb089269ea-21.1>t  DH`p\uV/=„:<^`ٜ] #5BڤD}.^Kih1H|| n8􇁟(TjϕĒA^4uhF]hM:ˎcv)B2 Vq^<(Ak-#S5)=9B0!Ma?*GQϝ'(ڀHDߝ!Eݯ׌S(P h|1oLXi\V+ V`Z9bec00e2e09a68ca2ac47ef19042193dac087dc0e$2\uV/=„ Sq7'U:cpC=)8Sx6!bYZЮ˃$p27ɼ:\xǒyuQYL5 _nm'0cAn8AU'.P[t;/8+ #d0$('up:?d , 1 M +<BLT X \ d  (Z8df9f:fFG HIX Y(\x]^bcVdefluv w@xHyPzCrbd-nbd12.2.10+git.1549630712.bb089269ea21.1Ceph RBD client base on NBDNBD based client to map Ceph rbd images to local device\ulamb67wopenSUSE Leap 42.3openSUSELGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgSystem/Filesystemshttp://ceph.com/linuxx86_64shv큤\u\ur68a8e48d6b8a6020b203bf96ea68248a1a92717dfab43eec8b75311578885e84drootrootrootrootceph-12.2.10+git.1549630712.bb089269ea-21.1.src.rpmrbd-nbdrbd-nbd(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@   libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.16)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libceph-common.so.0()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)librados.so.2()(64bit)librados2librbd.so.1()(64bit)librbd1libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.7)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.2.10+git.1549630712.bb089269ea-21.112.2.10+git.1549630712.bb089269ea-21.13.0.4-14.0-14.4.6-14.11.2\]o@\\\2\[ @[r@[O+[3|@[,Z@ZmZZ@Z_@Z3@Z1@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.comncutler@suse.comtserong@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.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 version 12.2.10-551-gbb089269ea: + os/bluestore: show compress and buffered from WriteContext + os/bluestore: fix rename race with trim on replacement onode at old name- Update to version 12.2.10-549-gf129842039: + CVE-2018-14662: mon: limit caps allowed to access the config store (bsc#1111177) + CVE-2018-16846: rgw: enforce bounds on max-keys/max-uploads/max-parts (bsc#1114710) + CVE-2018-16889: rgw: sanitize customer encryption keys from log output in v4 auth (bsc#1121567)- Update to version 12.2.10-544-gb10c702661: + os/bluestore: avoid frequent allocator dump on bluefs rebalance failure (bsc#1113246)- Update to version 12.2.10-542-g793ccbe1d0: + upstream v12.2.10 release see https://ceph.com/releases/v12-2-10-luminous-released/ + additional fixes from PTFs: * rgw: resharding produces invalid values of bucket stats (bsc#1110419) * rgw: Fix log level of gc_iterate_entries (bsc#1114414) * rgw: dynamic reshard fixe (bsc#1109009) * bsc#1110415, bsc#1110416 [#] rgw: es module: set compression type correctly [#] rgw: ES sync: be more restrictive on object system attrs [#] rgw: ES sync: wrap all the decode bls in try block [#] rgw: librgw: initialize curl and http client for multisite * bsc#1116205, bsc#1112872 [#] rgw: allow init complete to proceed in case of erroneus zone deletes [#] rgw: period update: check for dangling master zone references [#] tests: tests for master zone deletion [#] tests: rgw: test_multi: python 2-3 compatibility- Update to version 12.2.8-467-g080f2248ff: + upstream Luminous 12.2.8 point release - for details, see https://ceph.com/releases/v12-2-8-released/ * bsc#1100101 - Syntax errors in the man page for "ceph-bluestore-tool" * bsc#1105251 - Configuring PCF is failing when configuring with AWS signature 4 * bsc#1107857 - ceph-osd segfaults in safe_timer thread- Update to version 12.2.7-425-g38edbb7c2f: + luminous: mgr/MgrClient: Protect daemon_health_metrics (boo#1104331) + ceph-ver-hack.sh: do not touch src/ceph_ver.h.in.cmake- Update to version 12.2.7-420-gc0ef85b854: + upstream v12.2.7 release, see: * https://ceph.com/releases/12-2-7-luminous-released/ + bsc#1094932 - luminous: osd: eternal stuck PG in 'unfound_recovery'- Update to version ceph-12.2.5-419-g8cbf63d997: + bsc#1099162, CVE-2018-10861: * qa/workunits/rados: test pool op permissions * qa/workunits/rbd: test self-managed snapshot create/remove permissions * pybind/rados: new methods for manipulating self-managed snapshots * mon/OSDMonitor: enforce caps for all remaining pool ops * mon/OSDMonitor: enforce caps when creating/deleting unmanaged snapshots- Update to version ceph-12.2.5-414-g8450ca79c0: + bsc#1096748, CVE-2018-1128, CVE-2018-1129: * auth/cephx/CephxProtocol: better random * cephx: update docs * auth/cephx: add authorizer challenge * mon,msg: implement cephx_*_require_version options * auth/cephx/CephxSessionHandler: implement CEPHX_V2 calculation mode * include/ceph_features: define CEPHX2 feature * msg/async,simple: include MGR as service when applying cephx settings- Update to version 12.2.5-407-g5e7ea8cf03: + osd: do not crash on empty snapset (bsc#1074301) + mon: add 'ceph osd pool get erasure allow_ec_overwrites' command (bsc#1087269)- Update to version 12.2.5-405-gb4dd2afd81 + upstream v12.2.5 point release * journal: limit number of appends sent in one librados op (bsc#1086340) * RGW user stats fixes (bsc#1087493)- Update to version 12.2.4+git.1520347944.ea5f50680a: + rgw openssl fixes (bsc#1079076, bsc#1081379)- Update to version 12.2.4+git.1520094840.20594f896d: + merge upstream point releases v12.2.3 and v12.2.4 * rocksdb: fixes early metadata spill over to slow device in bluefs (bsc#1071386) * mon: reenable timer to send digest when paxos is temporarily inactive (bsc#1070357) * fsid mismatch when creating additional OSDs (bsc#1080788) * rgw: malformed http headers can crash rgw (bsc#1081379, CVE-2018-7262) * crash in civetweb/RGW (bsc#1081600) * bluestore: db.slow used when db is not full (bsc#1092874) - migrate tarball generation from tar_scm source service to upstream make-dist script + drop _service, _servicedata + add checkin.sh, README-checkin.sh- Update to version 12.2.2+git.1519207306.ac2f91f62a: + qa * install deepsea from packages instead of source * add suse/smoke and deepsea/adhoc suites + rgw: make init env methods return an error (bsc#1081379, CVE-2018-7262)- Update to version 12.2.2+git.1513357992.5030136da9: + tools/crushtool: skip device id if no name exists (bsc#1067119) + pybind/mgr/prometheus: don't crash when encountering an unknown PG state + mgr/prometheus: add missing 'deep' state to PG_STATES in ceph-mgr prometheus plugin- Update to version 12.2.2+git.1513167344.b87ca3c12e: + upstream v12.2.2 release for details, see https://ceph.com/releases/v12-2-2-luminous-released/- Drop _link to reflect that filesystems:ceph:luminous/ceph is no longer the source for filesystems:ceph/luminous (the Factory/TW devel project). Development of ceph in Factory/TW will continue in filesystems:ceph:mimic/ceph.- 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 SES5lamb67 155120531312.2.10+git.1549630712.bb089269ea-21.112.2.10+git.1549630712.bb089269ea-21.1rbd-nbdrbd-nbd.8.gz/usr/bin//usr/share/man/man8/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:9742/openSUSE_Leap_42.3_Update/fb8983be41c847820852dba02b92e9b3-ceph.openSUSE_Leap_42.3_Updatecpiolzma5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.0.0, BuildID[sha1]=73f114703bcd9ba0724e3629ffcf8113d0e6f2b0, strippedtroff or preprocessor input, UTF-8 Unicode text (gzip compressed data, max compression, from Unix)R R RRRRRRR RRRRRRRRRRRR RRR RR? ~GhQ?`] crv9u?<΅8Ie}՚5>;!b0!Uf9ֶ6iթM-º*#BĨ[ja[}7(bR?(|SeV@8aqԜL~p255<#IB<z);ɞܸhޯMJ'p7r|׎T;ySow?]p</nF*/GSAf8l7R,WIJk{kzϚ>=_;PL'a!{ZbWA.aUcJgQdy!}ʤml)> 0܌ M Q+Ҩu 5-u}sr =<2&f짹QHywI7e}̫;i<(L[t]jTklG4Ax°kO4?umHEZ]9aIG1Č*w mqɒ+0DAFӧBi# K=?Xuv $Ø)??E;ݞ[Iga߻P0vm%D`6%qJET2cr];jXzbР3KœEJ'`dgBݠ=\ɻ^J{bu0M"xFy8OYlةs$# 7`@Mۑ_K*OM-9eHcsy0ncuyE|bG]~XӼ5_7 G۱=r4j,yϫskBo"7Ps[:znU8ˑda~MN9Ɍ0 p 4va/C [KH_?Yd]%YfwR8"`7@`ݙ=ߝrs;4BQgh^!,"d7/*WhG+z rڰy`KPO4!Yo#ښk[W;Ai @?BaSs&Ī{uđ/c qjVhKe5.Ƴ}DI4(lV&W i%)=yﵢ:ybchZKO7 #Orphܭga(GŤ=\?&=}۔ 6Aiy&5ɲEy?aJNP3߼YQ~2$0qe o-o K|1K}T6 !ӳ\, WFՏ3W+@M+U}2}{YVo4@_k!ͻ| S+Fw*3Q䘰7*ƥd*K7] IVq*4|R K0==}nL^-MFhE&|ZQWRF ZKk*~G)?nmj_O\EWUUtC8}w:jvxF~?k0\#Lh-<G-%2qt]>Av\LƨQX|kLZS{O ;Ve@?ozUyB_Y.FBTD`ଦZs/Uwhd&?b1& 5O`' ,;Gqo̒q{: lQoK.8'K8Hi6o7 ̞<[`oz) qRߦj 7IؽW}$^ 'ƂޝIsA.[ nօaghlycO~vwݽ#@>gsuQλ;2^# D3DQ2BhƼ],X((" ;+U:J9vUҌ \>lI/=4g+l՚6rAcl9Sb TAa}\/t̍J˚ )} "qzCiwdJ:6L8-q5# pS&Md kdJY:e>>Gr&)9zcw+ƌL\ R:B38]8;@>Prt_ɚgUu\3uȅNO%T" I zB˦=+odI Ygno$`n-\7ړgyy,Κ Pc=4&m2IqjzwqEfʽ*F3ӊ6?~|#Q8m:zfKhv$^r$;WR=C=w~>ё3A?E89//֟ᓻrjmU 3w/@r P;PlU-dYYًQRo'n IZgu4Au75o7K]ayVq2ۍHce\la/dTYe}=Vd߇=%} `6j m9`U#pUW2mk\fQ9Jh^*&gA&YS|娀i :~~-[}8SU!yk#IbD J thNun"%U8K>)s.2_}i{VTiW/ W}M|Kd~O9Jy1 J40[VX) O54M@rG}|iO;F.\;3'by.t)2 5] J`bn}񷚆է"kmi@5*r!_6fnkYh>Ry`\$&b,QyQLTgE$ )b?PmC8)dzH9ܩe#Drv5zz )^eHTKĪ=Z*W'>u=S候Zǒq XoAHoͨ)CũlBn1Eϫbv+A܁}sʓDC0wy~,ZB $Ϸټ eD~rXc8ӯJ_5ٝxWhM@+a= c(H?|*%_=.HӻeiL_ yXiyJ@ͬ/6P'D@{<HeG -8~EM~Ѻ=>|1%߇)^KʩHY+Sy)sÆ1?a15׊2,kXZnknbNz^SU- F^$ t7L_p8 Z{W9 z@)_}(WCz:ڨmʂꚷ`hz[vq#e:b8Z؏3cѐ1B>L)gh8ChNcٰ~&#eral*ѼOqʤk:AoPz/޻n z"ɯVb=QٛL >YXTmO v[XnMZ4P1o٦h]%PVr@4(;&'˶ٴVyKz O&ۧp^&F)說a֔c}}9m$fZ]_YPʂ[:0^"4EwM.sk!t}~"c9US2k\ƾ h6Gy[u[4OhV@MAC0Ǎωb} 1$WGW#UJV:kg|7ܪ1cmSm|,#7tܥJH-CaC;E[>GFEޓ3cWoF1_֎r!bGMvn8ǫ ҞtJ4pO{v N?z U?REA6T7=z`շ IN3Oj!eH'b)q&uܔ戮Scِrs/n[mD=>q0Yjә=d'*E-yP3J[vzmbzacTLҢL>LP6 ZŮٛ;)hSxMmQp">1' p['NdM(v?d þ|uxAs 7O8atmJ>BPtI]Чu̯iVȾ`&Ȓ4΃K]wK~4SGZT-0-OKOLXcq"y $ȐN~6w)TPg=5>\@ND+ vWE#q'pP2+Œ* Ջ{I 3\MӐq{u헙ղjv &p14,8I1LwpJاڕAl .x-.BgR"R$I")Gzw[J75Z[X:R`O…#G aĜ ;#iF|O[?p  IB['~@$h~KMWD|`3<|]Ytk$^maAӐgf|C>%QKw8bՇjsWz*ޖ}#>^fuU`=tnGw:)ӧo\X GXOx&*VSP'JDnK} 8aAU ~߯r(ZR9)&qFOl2NDԭm"!@0CSB)C:aCoĐiDwAt1mLD^]li-Uɲ0;̀^+g/hqz7& {1FcM Qu!Z|x?iD쯚7X}XŎEcˠ|aB6dӵ)%\hZ^60$i)dJ 4t'Si4hB`D>Cd_a27é֫CG#gw,g&_0Rwx#K8切ʫJL qhzv-8@K#6bx)CW ,KbvTrҴ,mI2DP^<|5 Tީފ<."P5eҠEOJ{!:ʅ/z> ͅ3U  kYČv-ԏ7wH^D$zG Sb .EuZ䭷~q! GX_luQLNI>aTZ<LDsȚR=9VQzW D/ZD"},˺à|넂'8`WLjk]:S}< Բ_R:shMI%Y۝ 6Z9sʅ!F_9~=*n9ֿCvӎFA4_@%fd]_SR?Kt:pkg'z3tZp/sz`I/2TUAÕ ]cGU=2xu 2Z? O+ySR"aY&̸ MeSw֛E%TN Ci4ZW#n;ݽ0Jq~ɐZ %& !H `\Ug|HLjGuC{ RՄA& {ԧ Ȟԩr4|,)7~_ڢUNyu`ŦXfPG>v^X0EL]d9ܕQ`Uy\d 3'K5Kj7 BېFu&7\JeMX`ut [L5hkL|w|D͊3(7{#`NqM 'Ahx8x Wյl٨jyz5q~>Vsne4OL WnٝT&8Dtn 1||K^hLس+ 8rRkpD_058Emѽw;5 vIҶ-\|号1Dr UM;:FȀyj;`&dSpI΢6Z>SlTֽ i'ZR!6*c@ЁW>ð2'=zN޹#.-ZAO~:ȩyXlEDt2 =UD=?OD;7֚(|T{cN[XKG?9ˡ>П!nRo=2!\׺4DxjD6I$ڏ,9V3෱=zERfmc{3)|be13!X<>F͌ۧu|_q#S㼮 +oY!` g5E&ViC(0,!`<̄+%OUGC9Xk9֯!D}i5(/R:\ $0=`Zvjg2 ^/訵O2Rho4foxO!zҖ PaZfM6~I OO9@8߭idAhks_{ѠlJLj5G؇@ ucRIҘ*+q;xZJt>nkG6X (2|j1 3AюX`PE͵Qs`Jީeyv~ՉB@L?/&ӝajcW/܊I f"1p5+;&h(6A0hZ1"22{ɢxO$ Rwk:һ?  mD,["ƕgjn7Y8mshVꌩb5D)f8pbl:r!ktXj;!Ȗ Չ py= 4mz+D/ {D 'h[x=Q%l:Wr0akS)7ޥJqt]fK?wl1+&H#GuT;|{2(_U'fE"؝UE3u@(-fQ*dZ,k%"O&MSm(Ћt} 6/6.fo>?$1 ,cV SAzI7pHQOHF[V4%^ j|>i6tc~2*lj5jK33z]Zt-j:9c] -m6x-5%R5c1Ƣ%URٚ/)\qE &3q 5;ԿH0Kj0s=F7 !"/ CĄ.1MrدHg<n55{[Gѿ'qrOn{b\jCңqb1F y,GŪV5RU|F^#=M kpO ["wV":̛[_A)5o8`QD(#LG &xdAϯz*3!"岷Kr&WAN>Zkf#3Nu\>Duṷ]T2W`Z&O\9N# U[Ʋ*Zcoӝ`;JdM딑y,TyvdM@Nn-ᨦ}aVhCy H4+H:Vn q>`PäjcKv5Y?%* +v뻪xG9F/n'sF =eᰧP*IwW;NNӨfrkQjAv@ڒ _%;Iz!,?֤˂C7[>Ҵo45"R&˙jV861MV?u0z?.\ hE}e'FbE <7NBXuY4~#=}I اTg` A?ie^F\9D壵HM3&rzɏ+Y oo Fx?ש_:L#W"no?9&HCk\%6=c'.>pb(xZE=sD@f!ԳP0b~z Һ+kݣ(ep jH˜/9AF CԊ+dm4[ gK\umꚵ:Y?+E0ӿ1WABF{S lw/5D5+S3))WC_c DI}ܲV:FR0!ztGbgA.ܠ Ʀ(cٱ!&D)Rx.Z9k/l|o &-vܸ@hS$B?d=whvo|`O|bL6h |zE3-jkMW"~`6(՝Jwd(bt.N1,RPGڂ9WX}ws7ALY+XW! EIhn̈Lσy&!#'5L5}")nF&xXMYbGeAyۜmNk+ 8#ƒ@ŏ꒛X/@#aYONI(%Pa_gR%1[r_+"koHȿݐk+u&H%#op!b@&ڡ^.CߨeY6̪^ҐM+bdŘr)DC(PyhC}A#& "RJUɩ•0WpYQBƛa@ `SI'j57Xp?+ѡ^0㢴&N =Ea5g:)#|av}җQQ̴ci3s(9>&A5Q.ނJ&.vQh< /]] 87Lj 5umѿ޴ ܎)+EG8 Wؐ`a %"H6+S)Wc20 Io(#5.L] `iE:;:L6>kBфiL]zͰGz۫˨0uϒNʗ \pZ;{89o"u1PѵC|jlD9*On R0Cמ<*h?=z*Wk]Aӱ,onʜﳯnJLH .AM< 7x;o t4k!1PB]7@K@h*lQ"V&kxuxymhtP_^bX}7AZ[=)XQJ6]9s\*c{ypV2ڲxOUAha«웯l":lK0!H_u{ػ}6uZi=ZBVh$enZ@וLR8!,ht hk/uhI(8'MMD'SIVB\x1:UEEU)>yʸk>5V16cDf~9g^w57˼AI3JՠNZ8S"Er l'x/>Xp;B8 #@ r穃^(ݚS !_ X[. 6xzCwAi# 5r<j'_F4.¬TƬw%U-PS#ȅ gP..G_$sGJ:oSp3Vxև ViC."oXbh_D&MrJ[«bE`UD|u@ߍ]&_$,ԗaF.Gʵ y4N8. kX"ߊΤszdW8@ _n]\6 $[sy?5g>1QQG1@bH/tѲ?+#AJ筇gFV">SjIjruǧFA-ۡ '~(jځ:.?ZՀQAZVxeRMFGuYi[hӓ\,7Ơǔp]ganڌDK)p[0A>1OgL y%B>gIU)Ȋ+k6 ^QwҤ_Ƨj~ IYCC W9r~ :G; ԑ!hO xz4D2_UʷUP.j^r;E>,g ;a{5;7GnB7\0ԋXQ n ewFNglAN¾@Pڔ}wBg>n9_Kb ~$mT.4w39)‚TGz:ۘdV#oMd[ֈP΀lxr2L(Y&d  ]C(I|"D ={3, ΋yysC!)r@4d{O 3 Fʈ;aMT:Un18 A~Ev `#|I91#ܣyj m f˷U[BՖoErrfk.Ƹ85CٶHj(ty&L4BLJb8y6)8e|(> ienQVVP]Rɮ,Zn>`1:6:,(<.ؕEwV9Q9W#+~te8p9ѣi{!['64E}%Srԉ60b)-rIBQvԞPgOEsb-4s}wz5oj[8 !a ȓo$\(rE)߄J_ߟ\d٣V+;}62&YcX7|d(SS6/g:eE^~v{@x؟C3NQ ;-e|!<)(f@q&TwH̭A,=i@h{Ƭ9o?S]`%#Rdm>?z./feD}TomU&dG-uOMÕaD,qOu#]=l>\r:G'ŧgna Z B1)f )#A*Y9N17JydxmSzj))XѾ^&^<dRy pzatk'8*u=eK*- `,jaXe9*:'g2a_h $j%fwDrZPwmJuɈ=FT7y_ ~ZWϟs_+j0uMlTf[x^WSq +)2ۋBE~x|m*o7a!sg@O3}"tPֳ!nFfF _/hK2ɡP0\ ˓Oc_3-e,^ͷD{3}} 2KXl W ؘj"0[vi@ۍgmڗ꾜J^+;VH M FgΗK:07V{'.j./xI,6Y@%OGӎpz^EYa?̮Eb[?wуz9*N ޓ\5ҟ=Y'cv@a9jPSⓄVd!gԱ{u2|9w1p6Q>ㅶe܉|qΙ@Ml ̓;~.D"οC@;Β`iN =oa6.Mĩ35RU߳{'vWu^-1_%jvlk-c3z?n_PƒB8jd7hMC9ԭ5ɿ5<ٔ3B!{۲KG: QN>eFVee^űor,-J&"Sݞd;VD">DAg 5Du4ֵMu0X $#HRjX8N`.ΙF &Et^Hr>(x!^_\u8U+ GZU9 F MRӭ1ֺv"YҶVO1$ӯ8GmSwX(dv3UY4TcV 8"fekML Q'Oz!EM]-[ a)gbϏK0Y6QhO2CnH\Bn)̷Q| U~en~AU˪iɺlMo?w ?Coh->VUX7OS_;<l/}.T8&f_I̖fQ 7줃%۰FuPW;^ObAd,Te5)M4ij@LYND05Ó^Z m=T|JqjRNkAڅ?f7q]Efp)`/+"(;4hLp3Šv1 U6kؒބͶ&hޘϭ c;ߴ-5y& ׫0z-G[Tt3sz@/*df 0f0UMwcV[)a3l Y&DS({dwE/BD9&O4xqǼ~x #"!EomFF9@)ax Dk7ͷ2 $ل5M ]]nP717i;~ y퀨Wb2; QG$:c߂gYcyQŃA_Fsvi7%RТx{5ub+P5%}X[%ERxvډLŕ ',GNdCbMzMkq$ሇ>"gb!oH ⏨VΊ86K>iER<=; }*͑)+巅p{C=oz# ^ԛ+A~0K[0ؙMYXzDZ#ZuVx|[# C39R 撨4ԉ1pJV-ޞҞG|eG(>4FXG|I*dJ<'?L C?.K*k 9X1<>y'L \2?0҅c.C^g$CCB`a}w;R8)䢍_nwo9 UY@r[׸p> K|"'*;|\=J}fdV;u֩mtm$R5JaME&ß[GE\&oa,rw:~0Ǖ"Dt& &p0Ư*;?w ZCn |(1 pbyf_oJ*? 1^0؈Yܪxap'ڛ k<]3 7}w'G""';|i-coI$RͮR_pGNVM\~IS`&Z[w}Gζ1<( CK}s3RXe Ž[/"dS-6\y.^IJ Epg qLG [N,Ql`eCj!Hi8WczRrQA0q~>רσ7—dDq3~| nD8>*E;dNA0ncq);ywtS#w/ai\ZC^SM^{kG!154(]0IH"ukqZ>ۖn~$b?<6 AƋڄi_g t-JsQB=4[6GzX\we#7rxxk;gnn_6NB/aEQ,,++J> ϽA ?ǜB$k.Z_wݢ`-# y;=6&8o$-_sAy>zB 8|X xK$_r!Uh~aLDvS]ۃi69 q -MfeEK"Oծf/E-&V|6dt|#M7T'f[σ=3GLͫlj*h٪]J0>Q+ACu.l_Ei(Md=̦!MV4߹]`xK2Os0I^9dFb:^3; ۩Ģ[&X)7'`$ΰp :ذL=3m32+_?>k&&LÊN !ֹ=>wJzd -Q:E7`GuS0Q8hcBefd8ȚL\5VuJ{bpԧ \ΰ:DϟژN8ƋZ(5'iRS+vJ-cSL ][|ىE Gx% @v.-%,Ƃt蟉E5Ά=T[mH*YC)EԐ;Rjrr:_$tPeEEw(`K[,7[{5 /8hO/7o :8\~Efr{ԵGl%R/q}G`w֊0nͿS9PO~E5FLw3'5++\cg0.;5}Ա-9iXa4}SUX~rBdCۢ鼈I`FG;٨hZ}젡4`i/2;7)XWJTi`F.㇕ԕZKw T^NgϠLY oU6hr;*8-Lz3vS#ߞ^ !cΧ,0N+ s7j8cWgAaK7yc97qV hq/E*<,mV\gjLaӰѶ \puyxGɱ?: J~a <)%'0n5 )/ +zٽ#OkJiX'"p,;x!F$\ (Ԓ;֓av!Ix<>*w<}:6S;_W}X_ja;I&0wFS_KP 53GmߵեvnlS^!ڗR7= J7 _k"4Nt8F~3; @t[GbT7{"Mk% fxLHC rGr pr)~QbGK^[ [O9ΖH"o ݔC=现,wBϭnJuD /U'HO͹#}a+$s>YP"8Q J矐14JU_+4h߷̜[GFʃ˱6:\'[L ?=mӯ1s󘲴C|m;KȒק\&;*AD#{ip׶I[yt=>\@,М%n,U2ΦPU:8ց՚6>J rjbY?D4(k7e^9zH_i cֈ_hPJ"S? SGPtMz,&:T6{k8+ڕnP)U}ƨ~l|unqG[_㳲=a|oxJc3zDo}&,f-:^N-w3sI:qeӊDwp}`XWoG3]vR-MlaHfZN ↝FegJFTUۄӒ:Բx[R 'MdFZ(k'w1IcS{~<3g1Zy5t5Q<% fɌMHX7BGN J{gi+"94ls,zτ 9΃R2+i\7*z9֘[@ڶo%H}/7cb1hAң9uIfk*0=isxXDd'Hޖ~jz6 jF'~ n(ɟρ\!ĉg#I]/Gh}:h QoŁIEX$M>Va4R*vimZe@zÐ\p2=5'687 Xz Ƈ i/$&|PmKD2 T0qgt{iUxr!aB8U:*|t7۶$%wV(DyP5Kv=*jG[w'#jTfCoV"5{,~*( jacBC(b`NćЀ1dיvK"93D\';U4܎'g"!=drY*R_譾޸K)^i\LhI5i48ёxtXc5l#(Npj@L mrj}2?8iCsԨ R[GfvyE VC޼"QZ[ Ub+v?5J _wO5>q,|Y&>h)[?J.ZXU[w*Ů7W9[+D B7#]o}ӊOu((8O ȿJIsg\>Vs2Z MaPLH{jV _6Vo_Xj'XH (tIe2?2f:Z0E[yOl`!LU]-~YK<&PªGB_4A1C8@kWktk$"{Ǝ_@S81#Y>#is_t})#Ⱦ}CbIX;['&u/VdiZr7 [=9`Ejz?Ei| n}ɇ6=l3dLe3{4`.jŐWDNc]˶ӘZK)Pm?Љyh a0!taPEJg9^1)hyq<Δ}KXrķ؜1Tb<e&k3Oyߔ[V޻J*Vsό(L'Esɪ5GlU_^F}Dpk\swcvk_;u㸬Gȉ6(}ǀUhx17 u(y\%-`˼``(qfB}uE? z bdbgP6cLo,l Vl5{説#n$"Q I4ؚDIw@8l(fg}>}I[WL{K VTK@%ufLHȽK!L!jųu[񯷓cˈ/|e%ٖa D⏒leָUypZ˝\ ~i;A+<ˤǗ` @|!%T~zB'_WFr i$NYƈ N" 6 RJyn/oZEͭ;{ )Mփ!cBR~!`(@(bot؋k(Y2i"F5" I"S_#XG2Bl k9ޚ\9#ZiaИS\֨+0*r/`>?w7k1V|GwL"O0ÍكQy3# 4|Holrg{RoRl(k4a[O1E'|KBr::x-'L@_>; \4ck1 dHWAt0h&#Nu&J xZoz]L k07j˺Bqx[VBrVC64z?s\hk]1Ϥ+ZƼ,r+;|0%`RGe}rm<D'kwhtj`]"Iq;͋{^ w(r, $_qrgsǺRI29ւ9a#B/n{W ƴSH>-H!P|^8Àցq/;8)jS ȄdDbX(*;,)9MarJт@gbzO$maqN{-Cn`6bu?!n!%N/RUI-r6⅛e1?sp_\nr*FPu!r} ]H};`Gy2t:2jK 4 lߔ*dMU!.nĤExbKi4؍ga[݂0ZK`(Pu"]t-ɩngT4f'`~O]`&*S|X2USs +q5% IcԤZACVMd&h?;\N@BaƋO0^=],xpƃڕs|W[v["D-Xt])!Kԉs|m,\UF_6KN : 7[Ie]PR]j`qܦ ^Vȴ.|ID)(^2Է )v3@LѪwd&Gy~kTDWJ1oD4OI]'s6WH@Y @W7A/9a9)$ؒX":j;Y AXr\+_lHlWScNdҝBҲeup³6csni^fW`ұ+)ʊnǼ1I]AfkTхdL>5 ԓB|,nit.蒥s5tQ<> $ꮪp~Y"K:pmL&)3dH vqt 㣻7jOCaUx/ gfІC٬\&Pi_4{~:De.B2W-~ٵc)>dOʘֺ~r%K*-BRB(@|IV8'61۱E?Ɂ6WSI \34PL̩dROefLҫ=Fc v6É eǨʒ%g-op"t:`{ЉP)pSS#S'=e?d@pJ-#* NIiul"h~i~tSK~RT>%嚺B] J wӱ S5t02 -4+!3v|&}e lȦ ;jrUL`Ȋu(I?͎{22Yv˿EZ8BpA`+U^$3 eFֿcY pE8|Gp'Av\M%}eotVT˼VaPYXupúV!NMsU"?2g-EÈIPxJ- Њ٤^\ 4<$Z)e] LsJ; K܎# O\wB u8s'Є~؇:+"V'#T– %#WnKF ڑdއةt8! :Map*=Gč/ <h$U48pXʨX勬Md#<6ᴅGF׍zy>LMwkڶ8[!aU-;:G&exp=`I"yyBwb}d85SOڬiړYOʕ %5#:yAj%ۡhЖ)0/T6_rɃ6Y ;d`*R]^+`hoGL󔮥釐)` "p;V]N& Y2$ps)rR%w˵bqCN284R,w.SwVvF u8PGh0ч=(cT7Qn5}l;vKv5%&™ [O?d_ .|OV8żNݐ-1 `mR+F =tΣ+L|c(e5bPeT,/R gM YlӱS%{߀,9YѲkb&G0GJǯOv(U/7NH۫VÉHʳ,A͌He?gU+)pH+"Z2! ;bT+{v?uHd4(xCE)#oyxN4X1+bbԖ؝⣿mR7&H.Lyߡ):W-Ros䤭 /]b+%j_(E"+ U\0;A(WJPaנMu-VW7r+~ƈk!\\swyχ(KWJ=+C*s(GTB-:*v{ 0bDe*E_0psG^HB`!?OTJn$xM|68{ (j4 dd-`pAکMQ>2mB}l> k8Twi~6ʭ+58Th+Vgc Q~;ƏqUHunlZTRf̙J}Nk>_Gτ >f'>׮}MEiT[į1^ Y-`P-tcˆubFN2zn\x0h6kPCTSu礆}7/t||?="0n> Pf`FђA-3,@ܨMy4IY +q_CJO7ftXm.Ob~&p7nUVX?-Z_ Y23K3Rbܴ т()s9zpnn 貉ŝCWyo@?'veX~~llǯ^RRvj(s0=k&{9gYھnjYm{Mk!G]o4Ì:ˎIQ_ l;0O',(' $KLޮ\,|PNfHr g\EmI"D W YNI_ҀFzEV&5kN|*ޗ@ dYܘv1 Vr,4XH3ccQYa>qJF^{`bЧ7=xd̢ |W 3uֈ^_*%; KĶSШ[qL B.Q;m[/JJ'3,ɽ׫gKMn@3W8[x*Lj C˓ io;8bg"IIp7J}mMUoVh2[NN1~1<Σ)ob/ J*?81V-SJdT^5"BNǾkn2[o`qKiS;Cܟ5ªz)oYDs8ҫ}<WqpAI h\ AZ $]x8y2AA=Mo EK1+VY`&|bz}ZhZQ }6h,O+R?}LbvqH!O bW OM' a*к8JfL9'IM=:exKlgȥ2tLeR L΋HO3̓B3IUusR0NEfhB$@qG1PjainGgEL^ & mirUwXur#?68AOz'3=&a"-}<~k|-6 pw*5u]1I; " S|p*0 F X𨙲F '?* 4/ J$x uݞieCAZ^1Ώb'ڠ0fjT& 3eFЖMb!0LtFqD6JJk>%$GζnuDs~!6 zu/B;?Ӌ>K{s˂b /2Th" q:ċX=AZ#ʙ 8CLXW]'Q@ 9LH ~S 4tUB\OW-[ LMNDs!nD*^%])Ì,qb]xhIIj~:LJHgnߒsܕ3qu/>4N(-j,_XPȏ!UDCI_|ޫEoo' kq»I$y"'_(1w )F cPfK E.ò_B/l8׿Vk-Jz:JTs2$Ac]OE$R}ʵʯp7Ń)ps2p]NN\VpÒ.f; ط(f+g2^1,,=HeF{(&@D dID oQIDW :H.zpgDRyҞa@.YG`ެ@i,T{Od,,r`A|%6U.nE⨱m4ldu;$hfot2_+d^kаYNMLiuWր,ΤIEPY`-kDxvج tCfAgcLSUj7QV`%V3էG +IkҒ벿]KG~L>2e7<΀gr>0?<NYc~$< DCLSAc~~I}&v@O+^Twbˊ'=4gEt~0wʮͥ5xϠ?+wtmU.8l}tWI+Ƒј 5^%oTp\ *fNVtɝ&e_bL3%u;N`_,7**.'2N$B !X? cek6G<Nȯ{@>(jFUk7>}vW7z L>h/0Ll sfx%jh3Y,Urt2%7lA7ӿЯP 6ո%Sڴt8A!hG;OΜh !ˆ̷L>!MZZhT'"H=$&\HS^?yr-椒'Z;IiN +?i]MB^ w+F('{,8f~bypO29`6ԭ/Y =$e=׈$>㵡#x V'gPlʪܰDf2:A,x^OL@'Յ_*9*X?cdeޗ̸v/˔zC1(M{.F/ 4gڼehRsߔh4)Wa'o  5ڦdX"jOWjD`>UpSQ6&F]Kے *1|uR!6r#Vq|P4y#$vKBz&rk[Q7}}1 $`} w ݺe C!N7~:HW?He7b;]L0]Æ~aM_“y C3O;S2yqy_jY4/-]1;dIbWCB>dҌ{Kh&ʦĶ0n8ih>\Hw2&w)D^rLeO,do5< С`x~Rј욢C/9TvT?߲FXvKԣެc]zNJD_L雷yÞ A psksjWQ L '>aS{ENNKc,"DH.Hݺ-+$ ¶ ˿ޔH`mbك^4wnt}tŢRfuHT& 4 >_r lmc:m 5bq'Q٭P'7"A~b\38[9@Š q! Z>*:*vcQ^tMpV3Mi9:NVPl0-j5\H 9+ެlMT hp/{Yi88i]퍓>͕|[7U"p//E%? )*`R w2G> 9? (͛0 *VC9c+Xp 3e*T>'}qˮlt"钪St8 ۑ # E—.ĜDJX̺3Ҏ$u4_˫5'1VehFd MBZ0Qp@ɕ־ד]CR ֢!ms ' ;I?׀x,D9G*~E}y6dyV;Hȣݢ vCx|^LKxS;sQLRH7wo ǣVߧ;03BMYzO;}zFP0u)jȌ2eN^k^#@ 빺rtC~8^~)YĈBy'ƏE`L5;$ށʞ)?JӖ)C6$bzC/q: zK,.r9m(%:E{;@󃀹^_*;.DP>A3:=r.!D)>J6K .\V uFl_'Et |+/ߤ`ը5nuT`+r6a6lk"+Yb-J*DyxDi&`hJ*=CkO%l]8 >`b8g%cX及:ǖugW< 0 `5-*XNR&YƠWKc_|:`7j^ -h7?QQCdXudܴh}p/%KN.6Φ.qTqig 6`W ^OU-Eڱ҆;Ak/ ra/[(QKh@sDvtgq?;|Q1|EDkbk5%?K%VICEjcu~QRP jânU RZ~<`ms~]0ys x,gش]3M@K+r-f^ ҽM'hT;m*+B%޿}</jdaZmⵞ3o?0ѾkZR2>0VRZK9.y_Oc @TOLIows@@b=8~|).+Qϻ9KY-I_t icwLPu%a@( ik2~ k\\#xؖ &Wۘl]LGX6Jo >'&d*hcL=F@ل\S; +Ӟ5He"6ɰV~ j jBT75T.Skg; Q)& 01BZ '̐8@͔KX>-YuNX •\=X S`lPW湍:7 "[QaN&I854iJSS\eh#yU-CwwZP3' 3IA9ON`'YkZV3K2  ={o!0)1D:'p`),eY)J=35ɽjΈ(+##O{]`#KTlPP̬a%!2s 9)yk[@I,?x G!bb-֮~PU?9u{g˨kQ2AMÍWBzX'0ݜu?^.K^djk' cd6ܱ]4BÕgߏ G<ӎQ-ZQ)gDYg+SPv5Y.d/:zLA-ڥE̓ɞ!:ÒyC{kZ0vxь, F[o䕷`-) 6a'N.JT/&:!MB,8] mP͔S^z^9^#i.,ۗTtZGנóhqa,MdXstD?izy'_'&e= dĽsDI6ZvSh8<;yA$a__)kXKK^K_T\*bnġe?P*DJƥyC\)Sf(v"'W94I6õYA˙cė-q bHB3߰e6/}0UAmsa|a䜭n놡0V4^9Pn9ӕ/:ūYت&ks68""l BdQJx1LKϘ2!ՓLFˑ쇹Ⴕ Q %RCrJNB m5{i`wMp%ě`)]Z"/2g8T'j.:!\4)$\ 24:GK!v܅NYcf.Q{nKܟd A'78 w69r&6ԺNC| μdD4׺g7Zl>La+&BM 3ۈD%3Úi\["P+N/IP)ڕyO &<8fe2wbw>!i'Y=VU=O_$P5t2xa$\yk4XX.VDo]/bf*7Y4`'ZJ>6vT˽TANKE@e[[՗SάqPyDJ؟: WUyusx'MGVeڪ~R/gQIzenwS$I ,AzD~֠Х˪;0gj|50U3]+HNɔ"oO [Gg@:J{YJ>` 28O'>A a3/HiƓ\[|n[\Ɂ@L$^Pdb+"a #x19oǪҾ跭 R,۴&iZJ[ʋDcץOt鎀~ ~ѷ.L0eg"hm]H[.k'8Do- C6xV^ ^P8f\fO1t1•  'sva n¸% ꩏fSU.nR] AMN:W*X;s Gi\cDQ'A $"kRӣ\T jg~2п.[i4L=(K^ULm$0T=w>_;V5ρ?(+mhME9k }WMn#lpY^-8Sjwf M;5]Qc~f]x6ÖVw錜OyL(Htj(Ck8l+t:EA=\tExwؖ<ȕL$=&|p@X~U)Ijj"CG1bôzu;oJ3y!U㦂O.-0 lGZZuʊ=#= @e@a( T~e = g+3CU JAL/c"]Dn&Gi׃g:ڊτ'( )ރN=_iBVE H!-v:x*E_?\7ny4%7Ors)-G,$(܍7-L>Ҭ`z9}Oԇ!rdM\?bq3+!֮Qp B|BAM^ Rt5aE7y\nIcnWjH&E҉2*HP?'A!V?K4ƥx?_6IR{OXgtW^nZj6w Wsf _2$7k8U\*ȸ#Hjp5a*E଒6 QZ:qGTk's(u{0:g=Z8ggњ"۬p?t/1 ,"4Z']@6aႁ+Lh)\ n/iP?*cҊҗ^%r٩$*VF wRՌՋ,Vـ8 ']ճ2U8a \<(ӎw/-șW}C^v87 ӤȃA\#tLw R9ws. ?6l}c~V[-;POQ j% EVzJM{(Z+D:S ĸ>p ]ET5pVH,̭$6~QQ.[)v2A !mBD鍁LJN<0Vk4Q@̳9Ti i+OU8ՑyP"yț4 Z# ޚ=^}׎26޾ ae9dQ3[&.h$C{u^F+`?pKe9)c7{FtOk6u JF!f#;p0ͮMB6Ce-Fi:Tm"%ْDyYnO?@F6C  rn|ƍʌEH}ZF1we &hs2-2 ̜ 1kҬc8©6zLX"\`5_*r<4n [E"$2}v,4t?M*t . _'!4ȋZ)Q@pF`9#@R}ağ;QiUEUO]Pc(T1mB%(NLф8R /n LnͼJՆqZV*s7r)kGhga戞Ă4DbN g,$H!o`)2:rQ\NTCVJF&AHQ_)&Wqn4FK:Dto?x᥽D^2&C2ȼ9Yj|6bí -CG1.96c7;c$\\hoiҿ !LV{!+d6~O%Sp2`Fb6rYԪt0,qT"o{__ċj|= *ܮAlFtޫ X>=gurb"s֧E5Yߟ9`Xh&f8'OGCٸfB2S|ӎɗ#Jd;p|C@n8J`VDW4~hLr_6p|{z.# n*!Ww(@kf3#y zd$>?=Ǐۗ, 20>\`.X B/C|S@L&=!qޓ}Vps_"HֻBk5i#ӔIb.=ʺ}2p֍LZ4,}ơq7sݣ?4or5b]ZK1%|x+af=2Vj{Zy-B)&ؽ#lRר]8wm ~nOZ ujL nO9&MGzn |C4g/`Ddw1D>j3U%UWTlH7 ~AU\-+";}pAe]{ױDmj:6Q-F`)L"9Tm?{gc]&r3Eovޛ*oۼ,ܾy㹟<8+ZvՅEKk]KM\'ag:~gpG6-b^~nx9qJzu>fyw3M(0K%7HOB WTOgEE,uЂ7eg #ZϞMJ10&u~撐\2`],Yi^F`-Ӓ$d/MoޛYzYNu0Gդi>Gg)z]>_@ F%sCV9䏈Kgc$wq 5.:;1[`VaאϼAXf.:O1t..;z7j %\V3rۤԉ tM496Y)sz%9^#G2.f'c|X5ծ8GaEW&8[(-lS?o}^/#`;|Z1̐K5Rdq%okbv9d>J2M?ץm;;--+!1G#M8'~JʮGlޕӮۈ z+[LSv(*g M֫qW28;$oBbRbC`^ &0B lɮ4I7mi׻u+@\-2Aࣚ}J,y@B)2B#<_M*#b9PJxSRNmG[ B%Y# 2`uz 3FƯۡ# 9Rz@;/P=rrHO>56£ǻˬ.c8H~o+9ŋR lb#[ɠ}gu@ g/ 3RՍ20CpG saNb5I<ɼ#4)ػYYHӬA˯ nS~w}`GN( k3'h|I#2'aNywAVOyڑ| zզw΂S3/o c/{+7;;-bKHOr4ؤ "̨7덟w$/d̅Q4ʻCӃ/AbNqnk E!'=O]\^iF mбYU`rAGks꽷Oӭ\'2lĂ?E4BW {njS}OjdksUGC_FEKHa_ DWt&U~cDt;›ӃXdm*h-˿n:n[ۭ ߤkb4N`7[iZ +<}[%—,@=me#^Z̔L7y}T~Zc΍@R}ɂS 1,ܧ;9. ,[Ya<#N5k!&V&f ̊)ʨa=u^H Y/Ŏvcăv Gx"@9,D (cqF<̶+RK ':3>PY IBnܒk.:SK/}a`6j,dO;ha4)cMèI_1ϣ@GAEʼnX&qd#;ƁI*=TmǷD 04fT ,țEtQ B=NW׀v0朕6 X؂b.$$ |(UTiJZR-P>#Kq/QE[? y})oga\,U1> "~f|JYЦs^ dX;_ yw`&rңnef N?c)DIa HFRPZL`G쫸SDLM 8_3Hq0f+Nۜ4IqeEj":&뢶 kϠCR.ļ+HqܣNq&H8`R#g;ԛ (݀`aaap@wIT#}i+xo #VH|S"dMK0!DXxЊ>@ :R%0fd51Cq- Sh#c⠵.Qٔ#1Z+v~֗ bhSC<ۧz)X^@ F8')-c:5nz6r(7)'K 2qղb8Yn49fIeYzˬZPmUN~;+TqN>T_XYkT^p]Cvgd&,wYiX&~\@h!0(VF0젔[~(o'>oT`Ym`ң{_&t[޳{ A8 |X`JsuAi޶eRGzFn.c`sjDRᐠ%W1v bd2Vϡ,R/0qsܫ8vδđ!?˅Ux=ԩЍQ)r*J$  >7JW.i9nP˜Rsv1v@V{ Ya輜-nij\ۦZ,@ej@<.a7&+LW3ABmbT(œOTJΉ7am&|Y6z #gKzU 6(hFK.8Ζ>3U<X&#3`8  lSpچ5-%8(ݬoi@n fN*Or搏uBa.nzyϳlYT`a/~N Svqh}}˳P' a0FІMg 俴(=2:2<$Y:8a/ƛOVYvJonptDo8܅3Vű; Akdan}C,.ןӄs u^CrEb^~ڀQNXJ H ޔƫW>ݹ^^{,ÝkSE U䒨RuegVFѠrvFrfKx.8ӣ4Ꮊ_!G&̣q-ŚfRAbzJ! g{EC7Ń#oMkyjƷ8[ buxpy|@US+W"aR%13eM* zr  zn?iOiPc${ۘ mAݥ+.13 C Fk9Z!Ro$Olv;%o{B$ӛp(*rn4u2-Juٮg_,r Hqn}蝠cw`I j!ACۺzv&pUǷɳ?36Nm sĩEX3xs&A9Ҍu^[0ȑ%0r KR҃k#(Gpw.C?~]O?{ɞ0l i+|X,e}75kvmUš??bLytF=Tw4{j҃`|\Pm]NʼnN$is;&-x)Ğs.m>Lc+0BuUGQAa`JSa(gStWBdOg ci=7LP)\k"8G]3'}BIWQ̡d8>Td !r⋆浈tǙ~(L4]Ր3ˮz^+Y[p9#D!1\SrL;F8oM*A7:񓞢E2 rԜ>K0nGk*,(0515gEBao/.eďLNɩ "*29,n EEny>0iO~ML0aKb}PT͊f Ilȯ @~R T9W"ҳ Nÿ\MlAYC+Ѥ"t8D瀻{wY$ 㙖ps0=Zʡ)Q'Ȏz}i/\v4Zxp؁a@*LGG Џ\Z ~.ǰޞﺼY3R>U_SW#47T%LFˋ"2K]Y/x>㓚ԀFN# =qokGE :kֈJ#mR0h`?qBZORptsb򢀝&VbD KeaFǦ.T/ڴGѤQKk<aIZ2Ga;|8-Ttfg L.1>A|ISҊuBfK|'zlLY(4UmݒC43mwƆˍL=n))oR=e{.A8`z NJxu^QY6e*e|W% Y>lҬn@ɘ1l`.;w\u>X3lscXn%ZB0?" .x }-WG&~8e+&8Z^qbc6edC/ꮺy -}CaR}q) ms7q,ࢸ)WD&0G"lہе% kXgڿǹNjf:T9iDCk)NTI"C# Cp֣ok m}m QJ Rg2l]Vb\ЌTFP/ )Q8ADkpo^@=!(˔®{7߼ͤ(hm'i ӳK\oSB PV8uEџht>O-&n5*~AiA1?V E%.ː (,ctojZ[!e=Hus:@pc5P`B Oٷh@/S`E_jaϏrf.#;gz?+$b_۵{BEr;kqIrT]1b{-v6H)N%bZ>67mQQ_R:Ӄcxs/owZ=0;/gEoV9g-Wb:%ѹ$'s(X0P a(Db E )l&ҾЕ[@-GHDb0!cwWZ.t*z*.&YQBa}", oW кtSj5ft%onTRObQq;J签nXkwXLJF0s(L Wa^LqY.`~҄ZfrTFc+)r>N4Hd2>͐REV¬PtХ[ֺWm}f,3u<9M\_,Ƈj 9wթMӣ@at [wOX9eKJ˃ 7>KA]q}y'Y&O3?<簇fUt Zؔc`20]Itg7G׶ uHmXkቴmflF97kgqʮүyZH[j)>z,haof&fVd_ ,B)tzx3)$ !F)@4:ҏ.t:^Y{[=vdtG.]U:5΅_e7a:UMB(dEi-j||9(Zs?j˴o%sJ\v`aC7i)5 C(.TNhW|`aNzHRv,hLdJBAw[h!$Dgyus8EFɄTveNG>ǔsQ2y`{ w^+Χbk;Ɉd}Þ(,yAiȹ3^>u:A41s|̷"u ^Jzt~\۱"JuƜK"Oh Ո_8NgiŇ ٠#o"Fkl (!ΰ1ASy0%֠)ȭGgx}1f"E} x|`(@UQ;Bl5`{a*K]9fu6>Oak<^|}tH 6T1iJ|a )H 2%I% (ieK۽o$f~^o_²/iU5lr?d#rvQ|P_Fsx .,j ,ڢzƈe&*yg[u,~Se=Gێn:EӍO\Ci#krv\|QVҒniЀ ;^{v( Ep@뮤E'?C/s!g{Pb)Kj7v- o[U+wƶיrT@߁E4"zP쟎5 B{tImvy˕ T Բ4G\jGV볣xշ 0qC}(&L<ر954,-zI{>~Iil33n+w3tj+kw Ƥdη۬*:K·nEJ iMLC-?=%tھ! ÉT"]" Ԓn.}\ Aa:b4\ʓz7Q69Iqǻ`mD3fSmPT8{tn.;J8$ec&|xw׸n-8>O \:PlwvTb"癠0'!=lj6G~iy q=ō- A{V-<% XXP'c P$*;<4 >H 息o s2q{__N+Tpqͬ7F476rgB%q9>\.T`z[=}puwgńSUU"'@f"sLX1s C;EF 8T2X,8~U*7^_ -Q?"Smi~9s=cQ"Fx&?.56xy~)?O['QwЛu|v.{ {CtjR^dty2Jzz,>!?zyXh8)uv ?o_v c\rE""(y[ƣ4B 7e^V?xFJRQ <-?@8&/{W(^g(ZoT~h5]Q2pa{8G3EUZ)lz>2UI+2o7 8jc{-2Z ./>򫞳H*DF`,FQN1= 2hMvKBsN'Qgӧhyl.&ȣd)mƙ̘FSް1*~aegvlݱK* \\Q녠ul,!s#li-54ɳ&>-9h~Pl=)xk*r}P9eJ0Pd)s-=4]>C0H4Zʑ+^ hF/WB51_G xn +%JBAu]F]iYUDMB|z,0{!Oir>?h`rCRhLKwHKf0$_(Q2`V%'hGiLtJ+2%Ik kRc#Q.M||_)ѤU. P#Pm132u Gmh[ މ}ʵȮ3/$RԉR=8NٳP&4dF͚H D)"(#٢ bJ~X"܀[%lכX RoԫkҚY""O46b?G;ci0?3 ֚i6c:!P?#$qG]_!0Gs[t p]2q+Թ6=1GsmLM cᒳvo Q]Bդz^̺-brͪ;CԷ10̺k$gvB uE+z:^VŨ+V*ԅ3@fva|Ӵ}~o'q"9T Ԃx + ֩'[R0빽Ԩ2Ƨ;Y%=@6Hf8'D9N@'XD_vs.5:(5ͺW8lfҧB}4JW&- VKdy^T)1 k5f}P:YI"46d5I%?HNSP+]LrCR\Lx$'?B%~/Hr 0%z;wQzxGugPPJ|YgfO wDЃ,>C¦>+,HX+aUB@ZEȜMZa[YppKl^I;A d\7ibYw No 8wA2l;~~`#H"W#ić* ]sƨhe~|~`+LP.AWq`oY.-2L/͛1^ܾ54PȈS PeL tQs/ow;T}_ *zd?՗[X_U'\mNX.{HA £ujbP}+LOͬPYE4 ~RO<4k;2K*Z;%8m^C.75ОH^_W sj#r g+iJC_cw8O 4.1;H{6l]&a.rj]i0\3^zl)waMњp5x1f0!cҕgS"7b& լ pѧ[~Ѩ8ʂҼTQT|DaG@!h|zT]gB]JZz/RpQiO|Zdo {xqa6cpYj؍hMEXA::[>]< %s0pHtIA^ i5-G),:h^6V}NQ`)֮yu} n3gRΟ3TWl7. c[ 3ZJys Pfe 5-.bM ]b^a Ef KR*wOfl1; >Zc鋘+v Mhb'Â3(5.7ӣXonYAdQpP5VO(◑NHT۝Q'̭ >=BDWc6nJg#uZx' leDX20[6ԮF 4GpNꕞs?U47q *γԯ?f^Ǻ3ig[lյ Q>fJF"BqՃ f}T@9`Ӫ8:e=#xNK) x221O!`oX;SҗO(ރb^lxaI7nkleM2i939l_X,'v4?>l=UXl/FeII Y;h4Za〯pVsP]СWoQ 3\6#@+qÛl;JS4,P jWU⋚St]cKj -#W!L -_Q qٳ~K& s%_Ւb,X|X:{z@;"aJR139dڎX;\wA?BoqCuw3NĢ˝L ?nVg ]~ 0STjJ;aWF}`CμB_jI\2&\H({;vHuڬS9HXWץ Lq:e],d.B|ulҜ'(.R$]ۼnE~/4O62%`G0|)ID~1C#2_bCUة]M&cz7ԗL6ʞ>[EX ε|X 3Bfp7Tc`9QNbBe,%m0se}Jdt}Ng,(kp)#R튳s1tg_k7g%/i.M)Jś<@bj\z+8-4f-AթFP]=Uv_Em(k; _Xs-|Љ*GoC+/^$pF͓2λ`7,l/JwcC Kp֖"n{0#!iNJliɶK;_"yVT-ڻ츏u7% s# d]MY%D e8wÐFja+V vk\g->5/gM7,!}MԹOLf;Bqr*\˵X8"xB(I34QXA9 {Dz ɥLo]e$y5 BNrN?JNhC#w yDVoCc26)w:o}/$iJt f$zL"bw>Ƕu-b8Xggu>+GsNA-Gd b4x; +<szu\Pi Kc103S0M`#qDggn3"BىcэQiwD᩸6i&b SFmMeQn'`ޯSy[<`snM'猟7u. -+:lUR9|n^^wsխ*_fJ.#:g+ oWՙn/!3To{$xkf;&Ͱ5.tgb11;\<6:!w9Nqra̓_H)V\yOQ.? xDchk}˭nǐZ2|=I"$-DcAN?R8c"nQӮ яETkKuA}St*g^WI۶EP,fj(xs^'"5@- )~-6Q m!iov #IO5MshJ\dڸUZgD C%f!7":" ] O>%0)-Jb\Rв" `Fѩ%\X  SMMe1yp֨w4:sԣ$rMK _˝t&yQ {K~; D=D]<}? ݼ;&46*JJ6X`l|*s's-ů]}Uu..{\#,yBoF4k84at{t'i"MAt~TbS١\g(}-J@*)ȯ B˸Ge%(HsQ2 lJ>\z?Ȯ3vd[@|)>[D-U}&tzvgEeEHYhY;P31C|6HM7@tt(>h\Uj0C,0,}p4oh|P=UBe3E9I՛M#XlhJSHdКV̈́kHJ'4 ~>b7mfJk> H Ŏ|c?)Fy%3zN6 )CPst ۡFuWb h#CNrMp},ڄRHq^%!ͦGM2!O6ݭLg;?u=w|"/Jr˲=w]c=g @-bKά1j7ѓKaB].𬲶Rn$% (n76fig6% =@dݦd|@M4Yd\c xtZ~Et4mn7%䳎bX鷜2E3Nk;vueKPtM}&G: zW2=†ďSw9@5|l'r8ٙ)_5 |1)U@BA"03 !-ʘ| JEz\g֖x'hv8vIm̤%} 4FC^ ب Z_Y v~S 1 d#TTQZħu31E;sHy#-sTÚ8Vr``hGxO˄FڣėfczXJ@bʞ7VUCi՘br׫PS)[~ _#IV˙{@}X[j:Be+|s@.NXG 8Lx)DgVk*9qSvSy0,:s02HH7WՏS]k\bӧmu$Wa X(@Vs$ƖsNO:Nu$~Ef.N=j @Ca+kY9o&~ۉ@VvV ,9) '{p Q)י6][,,M=|乏dQ٣_@L*sF2br!J؜GhLhB~qcٖv6_O.uUA_FWl')6倫ϔid 7,O6HvUfSݱeߣ&} 0)C':_DhC^BLm)}N }@frE hUte=jߘqTjl oQ+ḁ 2R"BhOVc69w !f|loTJ2k W!.ɲU)0 ؑO6s=0^티doDf\Sp:RRs{AtNxosG Hdct! *'6VQ7$Q~cPvاP; ((6nwYbCw$謈 QmOT:<[e#hGГ-@e?!GIRĢLϣ.DuݰiiW#/Qhj1=9EdqKyأꃙ|;WFJ;k,v)؃@=(W㶰}T`bta =X0L~:6`vp, >9^'Vo8rQh##+O[IدZHy5޾ߧŦF#ӈ7zYD׋ca/Rܡ%bN u 4q̤+cmΤGaMфtJ3$e)_~w4- jNxTj0h^}/zã7bdGePcӄSS6RK (%65m/TcHFDا=+ 8`] :{-HurfbW# *&=+&W|!1蘠 <,͖glsAD;d31{حdi/N 8i ݺۊi'9n\R*U _3hޓq8qTʵ=\nKqJy~A|@FRxyoݎ$yXD>CL;zIy+B3I!SeI 3bh\Kbbu&uIuA)!YO `E_3_Q1^izVC[oo{#O^yi*)1NV=>.=6/l"DӱنӉY tO B]˸:eWucn ΝoJJ/!M,3ɰ3+H]O p.vI[ghhhnyf i6YD-kdJU=4ൖZ$OZJ0 9]`VҡPlnCy۞ ϳ?" <;#ؼ0'#p;\`3HmLBE'Ek*HC=% mYUqsQ_2:e] R14ӄI3{iN]&  u%c.},t`Hj,-H lTNG{hs@fﺟ@ķE?w_6 K+6B1Q}l.;PT>IMSGOLYPx'% d>nTK\a N{R:yhZO7p,"({X6'r25awnUQ|g}R 9-=.E]%5{:#ל=τeb7;ՙ-ql81۟+&y k7} ǔNBь)HTѾVo~ivRj;EMHO?V6-K!OCҹ.=`xdZs8jIJѽ4aei5[G&5 RYWLYiOS*anCO[֑ )${Gٰr*g.,?3?1EvӅ=o= , d쀀YXYlN>l;;=5֔ U١%s`zCljgyw܏>t* ,V#TkN"eke0x@up[uC#VvvB8= %~b *4Cẅ́L[/i7\}j 3ZΪ{9&ٺųl1q@3Xi+iQO^>5SϿ7fJ`1D8Sl]NscB߳N͏4 O{<9 `Զ Q7iHˇsNkMPfwC2_+9LF)8hqhf0!x_XH[[&i8=C#oW6 jKNuܶ=M-ˬQVx//9TrX oC_C*b7d^`$w-J1ܛƦo@ެHL5w57?vSYG#`Fey!yzY );bu>w{zlˆ,)E P|9;y29rer GmLDG}v[V^b`05HԠnӣ9DIFAϟ q)\H͛Qw/DRDIԺ0dmQ2\ڝ1E}OP^t;w#iܿF%BZMٺe>lG4*ʼn=+Ȃ f Ԛw_/fGNz/`Cͤ?jQ?OkmZDy+n˧uS:EMdq[|9 GT_3kAtuڱK&fWW(q.Qx.w3o1Q҅e7(ǪԼ]$Tx8EKńj X9Cx?E>1ԡҜ`ޜwgt(~9v(sW.?#Y~1.ymQ ={t&qiV3-Yޛ.'$jZXʂ8G^;[ sy+$| SiK'm/|Y(~f`-7@.0 XȵgbBx9TTwu޶,:TڻF)lqdN<̚mI5"4#O Q9F 99@d~ɀ}BR~@}@rU{:LNo5d%&EgLo r-BހCˏ9GL\<$!_N (Ӳa8|"gPJJ~THOV, Q63R̖)pSw[ʚŋsö)8ty*2v@ mi'y ܉%276o܍\泛Qvѝ:&T<1ٺVQ<f|x]hj*P"-?PhR?esff),Qϒ--=BxT΁5l`KvKӁHSέ}kجp|a19RdpntEvK͋!3yf=CdR8ѬVM @ v>+ؚc:L*5gH#l/ QB'b/6B@Q:D9D U#!7<Μj/Q}[% s'/hN6bI'@aiނ4_ìI 4%uiJ*N U[-3S9y^1 nEn- 7%^ :k1y,s46)leqo;_]SS 9dX8PH_T7o`?m{?>vA'PT bepX6.UܾoVÞAg3fdh;!$ ~g sZrGPëRZvtU[qP~ML sm˒<VT\o{dْ(bzoI=$L^ B/;&ޟ1;RQ(Q!48uؒmVicT"ZZlgޡK '9>ÿ(g |]##CSENi$Ytu5gn[ǒ5w'}@菋SZf_g!R1&V`t` <_˓|_Gھ˒]9)SkA.ND<5jq2 dV?1lJSn0TAy5̽snt5x&iHNlO`%̥E<3=USXk5E.G~9v*"ju WdP844Ώ8) '1B!O#msٯ-j 87:/U./:-.HNO!i.`!O=#}4*46b5Д |Aw'yTT`M#1ʹؘNTkaƷ^zJ QiZv$?q; |ńun;i2@H9V\OqęЖiAct Yt P{pSc/]*U[m}5E# 9 P;!g@ݰ2dzDMI -= .eX1+㑥[sNs1oqˇSB  _S#{0_k~ǁg_SO)M} PY; >rfG0nQsdꤦ mHQG8\ܿ&lxNY&>}j;-9_VwA@U6- ZX:b*w]/W1^re\T*`4$VWp%N-2nϹd<5+hJ>mX~s^)v`pcNc4γ9#t;5,[gn9g~Mv$kF cQ,P^uW e+%ŞL7^,,'-\^1 Yw ұW3vIMnIq̐f>^W]!UcD x&FTbcCJä̇.&%{zT$ 0el/rp53Ό_ Giys@dTnG}*K8l,άL .2HC8R5ūAyY˴k r K nT}'^??b%TG\[!U!V; (0#T0)@?g̎.,۩m ȏ;D;$#;6$5I$`CSLGhc?)  A ?0A҃dX\Lhvu cZ|0*C&ZVQX:de(uZkj`DJ;XQ:,HF`0Q5J9fѹBS4q)pCn3aFk:} ]$Lfl+2TQݏXQIdnu6%c%J(s^tY/Dt%n˜-!J%I4 wt&ǭfU`_6SK0,B{i_t\4S }XMJ X׶u|ۭkKɘɜar(7Ea7X? 2 ChJiBcpX!|eTNw}8(ἪbHt|r$ۛGmBU"@`` Kre"y*b[13:HpwD˙F`>>;!ԲmjG}xu wI;]nHviz'N ԂI =ӫ2i@d_砓M-vح ^uDX|Wq"զ@T1́HTZ\Iډt"zFֱųXS\ZHE2U逮T!ݨmKU݁uۛD)Bf_aE@0ܻ >!U?Mn^_@K6k2PaV{ z "3FI%!Sqaj E*Aɰ8mkx0ǀ*#f .u 㟿rYL