ploop-1.12-1> H HtxHFS  Զ5GEvhG8NOCcЏ*V54c26e604e4e56b41055e217dfd420582fa34f39]T=qa}'!qbFS  Զ*).%P[pIc^[HQ {~cJ>8O?O{d   `dtx      <a(89:FKGLHL(IL<XLDYLH\LP]Ld^LbLdMdeMifMnkMplMutMuMvMwNdxNxyNzN{NCploop1.121ploop toolsThis package contains tools to work with ploop devices and images.Srhel5-32-buildGNU GPLApplications/Systemlinuxi386 d9큤SSSSS0c096597ee9709f45d72dfb731ed6ee0fda7eee861580b0f22329684a4eebafb3d6c51e558c28ec4767d2da42f05606bad5a4872b22f7a722422d59688dd8f6c52e3ed81cc8325f14e508c7f113e6bbfrootrootrootrootrootrootrootrootrootrootploop-1.12-1.src.rpmploop@@@@@@@@@@@JJ@/bin/shlibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.2)libc.so.6(GLIBC_2.3)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.4)libploop.so.1libpthread.so.0libpthread.so.0(GLIBC_2.0)libpthread.so.0(GLIBC_2.2)ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.12-13.0.4-14.0-14.4.2S8`S 1.12-1Kir Kolyshkin 1.11-1Kir Kolyshkin 1.10-1Kir Kolyshkin 1.9-1Kir Kolyshkin 1.8-1Kir Kolyshkin 1.7.1-1Kir Kolyshkin 1.7-1Kir Kolyshkin 1.6-1Kir Kolyshkin 1.5-1Kir Kolyshkin 1.4-1Kir Kolyshkin 1.3-1Kir Kolyshkin 1.2-1Kir Kolyshkin 1.1-1Kir Kolyshkin 1.0-1- New functionality: -- ploop copy: implement two-way protocol -- ploop copy send: implement async read/send -- ploop copy send: add profiling -- delete_snapshot(): handle snapshots with multiple refs -- tune_fs(): use EXT4_IOC_SET_RSV_BLOCKS if available -- Introduce ploop_get_max_size() -- Introduce ploop_copy_{send,receive}, obsoleting ploop_{send,receive} -- Introduce ploop_create_dd() -- ploop info: add -d to show ploop device -- ploop_check(): open image RO, reopen RW later -- check_and_repair_sparse(): reopen image rw if needed - Fixes: -- ploop copy: fix open_mount_point err handling -- ploop copy: improve fd checks -- ploop_store_diskdescriptor: fsync DiskDescriptor.xml upon writing -- ploop_resize_image(): handle get_mount_dir() error -- ploop_resize_image: auto-mount fs -- do_delete_snapshot: fix wrt temp snapshot uuid -- ploop_switch_snapshot_ex(): don't return 0 if guid_old is bad -- do_delete_snapshot: deny delete top delta in case parent snapshot is temp -- merge_temporary_snapshots: fix infinite loop -- ploop_switch_snapshot_ex: fixed case with PLOOP_SNAP_SKIP_TOPDELTA_CREATE -- ploop_delete_snapshot: fix for temp snapshot -- create_snapshot: clear stale top delta inuse flag -- e2fsck: make it quiet- New functionality and important changes: -- support for 4K sector size (including GPT conversion) -- ploop replace -- temp snapshots support (ploop tsnapshot, ploop_create_temporary_snapshot()) -- ploop copy: implement fdatasync before freeze (improves CT frozen time) -- New DiskDescriptor.xml read API (ploop_*_dd()) -- Obsolete *_diskdescriptor() calls -- Obsolete ploop_get_base_delta_uuid() -- ploop_log(): implement subsecond timestamps (with verbosity >= 4) -- add ploop_is_mounted() -- ploop snapshot-list: add snapshot mode (-s) -- ploop check dd.xml: add -u UUID option -- ploop mount: remove -u base feature -- ploop tool: add -v option to set verbosity - Fixes: -- skip max fs size check on snapshot delta creation -- ploop_resize_image: resize up to end of device -- ploop_delete_top_delta(): fix wrt top_guid -- ploop_read_diskdescriptor(): fix get_basedir() len argument -- check_and_repair_sparse: handle EOF properly (#2897) -- ploop_resize_image: add missing gpt size sync -- ploop snapshot-merge/delete: deny snapshot deleting if mounted (#2887) -- grow_lower_delta(): fix a memory leak -- ploop check: fix -b option parsing -- get_partition_device_name(): fix chmod argument -- fix alignment on GPT partition resize -- fix GPT partition alignment on ploop init - Improvements: -- ploop_resize_image: enhanced inflate balloon to max size logic -- tools: add {} to specified UUID if necessary -- check_and_repair_sparse(): log filefrag output -- print_sys_block_ploop(): speed up -- ploop check: try to repair non-top deltas if they can be opened r/w -- e2fsck: return fsck exit code to caller -- make_fs(): add -i to mkfs -- fsync_safe(): use SYSEXIT_FSYNC -- Fix uuid strings size, use define - Documentation: -- ploop snapshot-list: fix and update usage -- ploop copy: fix usage -- ploop(8): document snapshot-list -s option -- ploop(8): document ploop replace - Build system: -- Makefile.inc: fix dpkg-architecture handling (#2877) -- Makefile: add ability to add local rules -- gensym.sh: better usage and error diag -- gensym.sh: add run mode- New functionality: -- Added check for and repair of sparse images -- ploop check: long options support -- ploop check: add --raw, --repair-sparse -- ploop-check: add -b BLOCKSIZE argument -- ploop-check: accept DiskDescriptor.xml argument -- ploop umount -d: allow to specify partition device (#2788) -- mount.ploop: implement -v and -f options, as per mount(8) -- umount.ploop: add -n option (ignored) -- mount.ploop: add -s (ignored) and -* (reported as error) -- Added ploop info -s -- ploop init: use v2 format by default -- ploop init: create ext4 by default - Fixes: -- ploop_get_devs(): fix snprintf usage -- ploop_global_lock(): create lockdir if not exist (#2767) -- ploop_grow_delta_offline(): Fix uninitialized struct -- ploop_ioff_to_sec(): fix for v2 -- lib/ploop.h: include sys/syscall.h (Debian #728173) -- umount.ploop: fixed (#2788) -- get_image_param(): added online (from sysfs) and offline (from image) cases -- make_fs(): turn off periodic fs checks (#2769) -- ploop_store_diskdescriptor(): check rename() -- ploop_store_diskdescriptor(): don't return -1 -- resize_gpt_partition(): check fsync() -- ploop_balloon_change_size(): don't pass -1 to close() -- ploop_grow_image(): fix an error check -- Don't ignore chmod() failures -- print_output(): fix output -- make_fs(): fix max_online_resize type overflow -- do_umount(): fix diagnostic lsof verbose level -- plooptool_stat(): close file descriptors -- ploop convert -f: do not return SYSEXIT_PLOOPFMT -- ploop check: fix exit codes -- make_fs(): create ext4 fs with 128M journal - Improvements: -- Support RHEL5/e4fsutils (tune4fs, dumpe4fs) (#2812) -- do_lock(): open file in read/write mode (#2730) -- ploop_send: use ioctl_device for PLOOP_IOC_SYNC -- use access() not stat() where possible -- umount.ploop: improve mtab handling -- mount.ploop: use case in option parsing -- {mount,umount}.ploop: don't hardcore ploop path -- ploop-check.c: rename uppercased functions -- ploop snapshot-list usage: fit to 80 cols -- fsck: use fsck.ext4 not e2fsck (#2812) -- check_size(): limit max ploop size to 16T -- ploop_resize_image(): fail if umount failed -- print_output(): improve output -- ploop_mount(): fix/improve error message -- dumpe2fs(): don't hardcode path to dumpe2fs -- print_output(): use our own default PATH -- do_umount(): refactor and improve -- do_umount(): eliminate extra 'lsof' call on EBUSY -- do_umount(): don't call lsof again if not found -- print_output(): check return from pclose() -- print_output(): return exit code from command -- Fix some wrongly used exit codes -- Remove unused exit codes - Documentation: -- ploop(8): document check, balloon discard, info, list, copy commands -- ploop(8): describe exit codes -- ploop(8): better resize description -- ploop(8): fix ploop umount -d description -- ploop(8): fix ploop mount -d description -- ploop(8): improve convert description -- ploop(8): add missing OPTIONS section -- ploop(8): make IMAGE FORMATS a subheader -- ploop(8): other small fixes and improvements -- ploop usage: improve -- ploop usage: update ploop check synopsys -- ploop init: fix/improve usage -- ploop usage: fix mount/umount/resize - Build system: -- ploop.spec: require -lib of the same release -- ploop.spec: require lsof and findutils -- Makefile.inc: add -Wformat-security -- Makefile.inc: proper LIBDIR for Debian case -- Makefile.inc: add CPPFLAGS to CFLAGS -- Makefile.inc: prepend, not append, debug CFLAGS -- tools/Makefile: simplify SOURCES define -- setver.sh: introduce build id -- setver.sh: use getopt -- Remove stand-alone binaries: ploop-check, ploop-grow, ploop-merge, ploop-stat, ploop-copy -- Makefile: add Coverity generation logic- New functionality: -- libploop.so: implement SONAME and versioning -- Introduce ploop_get_devs() to get all mounted devices per dd.xml - Fixes: -- make_fs(): reserve max possible GDT block for online resize -- do_lock(): set FD_CLOEXEC explicitly on lock fd -- fix raw image creation (broken in ploop 1.8) -- return SYSEXIT_SYS on ploop_find_dev_by_uuid() failure -- ploop.spec: run ldconfig on install/uninstall - Improvements: -- Display mount data in error message on mount() failure -- dynload.h: pad the struct ploop_functions to 64 pointers -- gensym.sh: add code to check sizeof(struct ploop_function) -- etc/Makefile: ploop.conf should not be executable -- Makefile.inc: support Debian multiarch -- Makefile: add distclean target -- Makefile cleanups- New functionality: -- convert from/to v1/v2 ploop version format (ploop convert -v) -- ploop_mount_fs(): add option to run fsck -- ploop mount: add -F to run fsck for inner fs -- export ploop_is_large_disk_supported() -- add/export ploop_get_spec() -- ploop fsck: rename to ploop check - Fixes: -- resize_gpt_partition(): skip if there is no partition -- switch snapshot: read parameters from image we are to switch to -- ploop create: error out if DiskDescriptor.xml exists -- e2fsck(): properly check e2fsck binary exit code -- ploop grow: check size wrt format -- tools/Makefile: don't strip binaries on install -- ploop init: fix an error message - Improvements: -- create_image(): remove useless assignment -- number of log messages improved/fixed -- tools parse_size(): print error -- tools/ploop: allow T suffix for blockdev size -- ploop_grow_delta_offline(): use delta.version -- tune_fs(): drop absolute path to tune2fs - Documentation: -- ploop init usage: add -v VERSION -- ploop --help: rm -P from ploop mount syntax -- ploop(8): add -v for ploop init -- ploop(8): add ploop resize to SYNOPSYS -- ploop(8): add ploop convert -- ploop(8): add -F for ploop mount- Fixes: -- default image format is V1, unless specified explicitly -- tmpfiles.d file added for /var/lock/ploop (#2493) -- fixed creating strange directories under ./ (#2623)- New functionality: -- Large ploop image format support --- Now image size limit is 64 TB (was 2TB) --- Kernel >= 042stab078 is required -- Move ploop_grow* functions from tools to lib -- ploop grow: add DiskDescriptor.xml support -- ploop init, ploop_create_image(): add FS blocksize parameter - Improvements: -- make_fs(): create ext4fs with lazy_itable_init --- 3x smaller size and 3x faster creation time for 20GB image -- lib/ploop.h: "unexport" some internal functions -- Use /proc/self/mountinfo to get mount point by device -- More clear errors on parsing DiskDescriptor.xml -- print_output(): generalize print_lsof(), improve -- add_delta(): print more diags if EBUSY -- extend_delta_array(): print errors, return SYSEXIT_* -- run_prg(): print error if execvp() failed -- lib/balloon.c: print file name in an error message -- Introduce and use p_memalign(), fix errno handling -- Improvements and fixes to ploop_grow_*() to be used from library -- ploop_read_disk_descr(): set *di to NULL in case of error -- ploop_find_dev(): always assume ploop cookie is supported -- resize_fs(): try harder to find resize2fs binary -- Makefile.inc: ability to add CFLAGS - Fixes: -- lib/lock.c: create_file(): make sure dir exists (#2493, #2597) -- lib/fsutils.c: use ploop_execvp, drop absolute paths to binaries (#2595) -- ploop_log(): fix loglevel checking for file logging -- ploop_snapshot_switch_param: guids are const -- Recreate ploopXpY devices on ploop mount -- ploop_find_dev(): treat ENODEV as ENOENT on /sys reads -- use basename() to strip device from path -- ploop list: check for extra arguments -- ploop balloon: fix -f option processing -- Fixed lots of memory leaks, mostly on error paths -- open_delta(): simplify error handling -- Fixes for other issues big and small, reported by Coverity- New functionality: - * offline image shrink support - * tools: added snapshot-list functionality - * extend switch snapshot functionality: ploop_switch_snapshot_ex() - * ploop.spec: disable udev iosched config for ploop devices - * ploop list: added functionality to list mount points - Bug fixes: - * ploop_mount_fs(): use mount_data for first mount - * ploop_mount(): do not allow to use ploop on fs w/o extents - * ploop_{create,resize}_image(): fixed size checks and rounding - * ploop_create_image(): fix memory leak on error path - * ploop_get_info(): fix reported disk size after switching snapshot - * ploop_get_info(): fix when ploop device is not mounted - * ploop_{umount,resize}_image() and many others: do not return -1 - Improvements: - * much faster resize when using resize2fs with EXT4_IOC_RESIZE_FS support - * ploop discard: add cancellation support - * ploop_resize_image(): use real blocksize - * parse_xml(): deny processing DiskDescriptor.xml with several - * do not auto-generate dynload.h, instead check if it's uptodate - * create_image(): display error message for incorrect parameters case - * introduce/use SYSEXIT_DEV_NOT_MOUNTED and SYSEXIT_FSCK errors - * alloc_diskdescriptor(): log error if calloc() fails - * ploop.spec: require util-linux, e2fsprogs etc. - * ploop.spec: require libs of the proper arch- NOTE: this version requires vzkernel >= 2.6.32-042stab061.1 - New functionality: - * switch from old /dev/ploop/ symlink-based to new kernel cookie registration - * snapshots: switch to schema with constant top delta uuid - * use /proc/vz/ploop_minor based interface to get free minor - * if ploop is in maintenance state, try to complete it before doing snapshot/resize/merge/mount/umount/copy operation - * ploop mount: use in-kernel I/O module autodetection - * ploop balloon discard: new iterative compacting support - * ploop balloon discard: implement --stat - * ploop balloon discard: implement --automount - * ploop balloon discard: cancellation support - * ploop balloon: allow DiskDescriptor.xml argument - * ploop umount: implement -c component_name - * ploop list: implement - * /sbin/mount.ploop: do load ploop modules - Bug fixes: - * do not crash on empty DiskDescriptor.xml (libxml2 workaround) - * ploop convert: fix converting from expanded to raw - * ploop copy: fixed check for opened fd - * ploop copy: do not leak opened fds - * ploop create: fix gpt partition creation to be 4096 aligned - * ploop create, resize: round up size to be cluster aligned - * tools: few exit code fixes - * multiple usage, log and error message fixes - Improvements: - * ploop mount: check that mount point is a directory - * ploop umount: reduce retry count from 60 to 6 - * ploop umount: print lsof output in case of failed umount - * ploop create: for prealloc image, use ftruncate if fallocate not supported - * ploop create, resize: add check for correct block device size - * scripts: de-bash-ify - * assorted code refactoring, cleanups and nitpicks - Library API changes: - * add ploop_resolve_functions() to aid in dynamic library loading - * introduce optimized ploop_get_info_by_descr(), remove ploop_get_info() - * replace ploop_{alloc,read}_diskdescriptor() with ploop_read_disk_descr() - * remove ploop_getdevice()- ploop copy: fix data loss during migration (#2287) - ploop(8): fixed according to doc team review - ploop mount: tell about unsupported underlying fs - ploop-copy: improve usage - ploop-copy -s: added mode to copy to local file - tools/ploop.c: do not return -1 from main() - tools/ploop.c: fix/unify working with diskdescriptor- New functionality - ploop copy is working now - added pcopy's send_process() and receive_process() to lib - ploop mount: added -c option - ploop(8): added (still incomplete) - ploop balloon discard: add --to-free and --min-block - add Preallocated item to DiskDescriptor.xml - add add ploop_get_mnt_by_dev() to lib - Bug fixes - fixed offline snapshot creation - fixed race between register/unregister_ploop_dev() - create image: if fallocate is not supported, fail - ploop init, ploop mount: fix -b option value validation - ploop mount: fix usage, -d is optional - ploop info: fix usage, DiskDescriptor.xml is required - ploop.spec: make main package require -lib of the same version - fixed a few ioctl-related error messages - ploop_create_snapshot(): check for number of snapshots limit (127) - ploop.spec: do not own _libdir - fix SYSEXIT_PARAM value - tools/ploop.c: do not use ploop_err() - tools: fixed/improved usage for many commands - tools: do not forget to print newlines - make install: use /usr/lib64 LIBDIR for x86_64 - ploop_create_image(): free disk descriptor if fstype is NULL - create_balloon_file(): fix file name in error message - create_balloon_file(): umount and remove temp mnt point - create_balloon_file(): fix error message and return code - parse_xml(): add Blocksize validation - Improvements and cleanups - ploop lib: add visibility=hidden for internal functions - tools: use parse_size() and is_xml_name() where possible - remove merge_top_only param of get_delta_info() - ploop balloon: make it accept either -m or -d or both - ploop convert: change -t to -f - tools: unify parsing -f option - various code and headers cleanups - setver.sh: add -v, -b, -i- Added ploop_get_dev() function - Added ploop_set_component_name() function - Fix: do not clear in-use flag in ploop_fsck() - ploop-fsck: add -d flag to forcefully drop "in use" image flag - Fixed handling blocksize for raw images - Added user_xattr,acl to default mount options - ploop_mount(): added ability to pass MS_NOATIME flag - ploop-balloon: add discard command to compact ploop image - ploop_get_info(): return old info in case statfs() failed - expanded2preallocated(): if fallocate not supported, use ftruncate - ploop_resize_image(): Check is it possible to fallocate before inflating balloon file - Fixed merging all snapshots - Some fixes in ploop tool usage - Some log message fixes - Add function, source file and line number to error messages if DEBUG is set - Build system fixes/improvements- support for variable block size - default block size changed from 256K to 1M - ploop_set_log_file(): make NULL a valid argument - logger: introduce, use and expose PLOOP_LOG_NOCONSOLE - ploop_getdevice(): expose - ploop_store_diskdescriptor(): fix for a case when image is in root dir - Fixed expanded to preallocated conversion - Remove some unused functions and non-existent function prototypes - Introduce and use SYSEXIT_MKNOD error code - Changed image -> device mapping schema - Use strcasecmp for guid comparison - Made ploop_merge_param.guid field const - tools/ploop: remove -b option - tools/ploop: remove unused and untested replace & add commands - Log/error message fixes, improvements, and unification - Makefiles: fixes, improvements- initial versionrhel5-32-build 140667000633333jkQMÉ1.12-1mount.ploopumount.ploopploopploop-balloonploop.8.gz/sbin//usr/sbin//usr/share/man/man8/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tablescpiogzip9i386i386-redhat-linux-gnuBourne shell script text executableELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), strippeddirectory  RRRRRRRRRRR R RRRRRRRR R ,,!dfsa\6@tgdD䒆tWޫU+u)u)NJCEg$M1*sxuQ<8ϴp<􊦝:uO,ǩ)tw%٨WQnX2ŗ=h Ӆ[SM=^H#.,jy02L{كL- \s{RHt572_IS'&gs6iz++fwzBµ|TISgn,sg7B>;?{1Ss7e4k28~_JV}RԹٹ)[%nrܹ8ٚKsS m~ŻK֠f:y<4Z] 1M95%03zOx&U zWUq^Tcfn/-LkW _R._]ʦmU]n0w 6htM59246F\1b唈e4=6* Cb*4)ȯUL1t3ܝ4Ua*5@o'Bx B5]Z-eHt5i1.O*?N5dLxYh2%Keb}3,kRwƕE`u[2mt Ss_wmHy[2'J_~hQKL(۱M@&[ЃʂxXR]3+Ǫ S 0 i wI A7-g?$lB<ۯn, $˔}e')ފx"7tna~-jb&NFN0tsJ#@k0ڵho_Xر!֛j_k sa% ƿLnݽE_I_MNKc֘It;ȀcecڐN0C_E9Kȿ$eRUA*!Q =HRiiiCio75gg?NW_ߓ_>wڳ?7ft%6|iѧ#湎땛o>~r^Kyb|%Gŏ?7~ggO~'K+'~ [vq*u- uln*fo +@P_z(PAկo\1HBQov_iÃQ_PS5iKe-44&6I(Z2!kSEptAZ%zu;܆7|9{}wN Ϡgw=*|hG=Ei\SQ\8>>$|G6B=[cpJu~w 8/Ew_) 7=s>a_)TЫg/l7#vy eC?G=C{=cϻN#>\&~ ~s'2ﱞN&;z~O,WYɦOSAƴ) 򔮌lY1` p '  Vb9dffa2\gU"' Ek@ߗdw~^^^^C4_Rmg{^!^$Փ?MKCY}S~wG*}  ~U+N" K~/%_)(-WK|wc| Dd>'1?N/Aב╏Ro Ǧ٦|'uA'tMWC5rɜNuZNsg,k,|_AT֐~  jr&Lky[T"ȣ9r("5zѢ 53<*T@ g꾊|QaH1{Ϻ9bjSZb{odGɤ:עv4AmWPu.:I\myEO~鲍3k+ |h>gm@)e:~h lziw0[kdc0wK7_^ϖ̽vHM)ﵿtMh\ULjAZl5 j""E i"U7LdǦ]T".(E tхBȢ.ȢBȢ>w{=|nښq 깇CG%sLB3GJvsL<ӉԴ$ 0W=ÄQ(}ct|]T9 7xZ< j+;.ZM׭Ur,׻_~cIa43INj5:Ti=MqZ|X+[N+tmv=L|T7!f}!QޭnvT3@5KviQM-TmPyCW2@p)T\vbχ0j?=}Q{Ua}8 Bo>Ga="QfQmPQPߎ/?:$?v=.a~$я?GOTGU(@O3~./?zJ_+dR=‹WQ㷰v2`m@_EFPš~vsy3I朙L[Y3y՜19q73[3+?0̌ ӎLˎLo&s5o&77qx8dzd|\pf2?.:~3+@\vfVY"kys~`{8jr֚_GX7KD`v6X{;Mw<"YU1oZW%T b G=:WL8xE}Y4>. )Yi8h8bH,cLO@€',he9sWgI(&|q?FnF${kF*nˌNqxt#:7}㻁h_5FǾ𻺁?koU_~El ߫.w h+[9[7ΨojYg3zg䬪X|bozҚ;߶!-84(N \tg6gCl >̻~ imY EΆs~dz<@[Ux-̿Kf *[YYd|gv zFGi3"Ř8Ѣ >}R2D;ǾqܵR~ތdeD ~!Lߌ/H]L*@Q-N$E&I`JetPv5o!?vd]jr5eWn#A٬'p"cloJ( Pf/2p0t/9c$N.W4?m|{u߬ߛzUD9k*t݌ci{;[s)'A\Jxmpm04g{xY!#_KU`qdIj Vb)ij{8LN ]Z7x~h=MRc9%^j;8:J6]PA.<*6@`TP F WZj w z{fe>Īyb F}a@Vx(+ ^'1Fa?(Pc4Kr9Jp9خS:|$Ѩ PPcܸZY4;!Ъ{ b1՚IrW%ڌ븪RYw}qSw$TD~oF?A*źcr/Fv1!F*N 1-o9vt] AXCBɴ]1ү?f-xZي䱏]+E)5@ ֢!cŬP-Gid4d~rAƕ$V Ҟ2o屲lL~i,FJB%L'0'i"wJBڕv7e̦ZmdYXt8dEb~]kp%Yf1]& Ο0G]hAJCq yJ~Ldt400eDpY ]h|DH1 !7n"pX6*Ap=!,p PZbp`CX:ο!_tJH-Z{R]L=GxKK$ P2k\ۚSכ 2>r#d */s2qYYd&샚CYC;~%zl]߫^pO%K)'-x(9aYxIn ;Oɧ 3`Yu/ʻ_@z"ۀk"򨼢CWduE*\ Sx #l~儿q*×NήwH (2v4dG߾QE7mGl!uJjjyoMg x5t@pzlk.a5p q6E%ˏ{cq TaقXFu}s4eP^_ͷ! z^-0,)Ĉ(1m7 L!ˣ<I(b$؎(lvVFQD)Wcv 0Cgt^.QJ/0W#6zW_EDNjébu[)T)L)wbFiRN~rf[N)?n^2װaOp/((^-YEU.jk9n۰Qj5Qҹ^W2Eq&j̿Q3"2q~ blv%0׬YoͺD^{6ax6VG%֫, ,zzI]xy-> ]M1;>1vd:;v.£S3Nm\A\+^#fӋ<hʧ_Y=>Lsa OGNiN[E8anzb'OpUӍCp=gj ꃯ?.Ro^ЌsI؞z5tqts 7o O *g]{PWQC҈#Ǝ^o}/A: 0ѭdz͢P>yK4w[X3?MϮ W)ṈjW!i,b% urgPWތ]y!]W7ϫ&3"jޛ1}O!pw1|˜A6cxNchs1 =bWs,ɤkZyו\ѴC ;x/m:QAȮ %YhФc0_|I'wILy$ձ42E;cε3ZÐp;7:u&hvSy?5ǹ=?9U}:xw#zSJ2s 9!U@_;GG*qbֽOQ3' ;nmpY3Irz:+}V[jHބ;I~ZޣUtj+]OU[@?"v]d? n]i?/ZX!AG'>*+StlƌUSz8~r>xِ4W"~"{I=rESh~XNX~BN(ٿSIod?EE+92:/F~/!|5, !!|>v4-{g{U3JjeoMRy&;ɮ v#f^bnлu$eKh+vE6e*=L8ް\XiTpOd+c 7ط ,?CӝiK"-mwiARZmAR\.hc=m=.E/Spo۴U}_wc_ﱯiQ3n\Q {R W!NCsVc _m`63/sC%fܻt3Mh\ jKe3ZVndOPMPwӵ.Nc{Kp}A 64^gm牶qw9jyb>fuzo" @4tGC4LޅM|dLp'KCM`E{F M .?am- \ ~uv.V_mŸKl}8IIJ۩XR+m`wJlķ65gRB$Q B; 絛ji CO'!Exm@; ͘G܎كu&L|yo s8S]SlFX_PJRw&^n"wr(E:f5 +}l=(fX_{%bud(R:+uOE_{ێeO^Qu=꾍qօ9ǟ&1퍉SQO F]`ya#of,yퟌ?bΰ0񤧰9H;bM7VBø>bIV mm|)Sp[;#o% jtE <0 EȎx 5 ̀;Cט,sd3J32<=ʫgЈOV[]OWޗ xaۚW= ߖ7_&Gxz}Ez~g!fٚ{3GT/U5^hm{E I߲`|fWU;Jm λ~:!UWoCًW:Bhf }QAC:0RmC&;3v  'YC%lw3lֶMF B8Ί$L H^yl??+r+3ejO!,FJᶡ) BrzEkfM l+As6P햱 FqAfsdjw9SIc#O iۃx~42]xO*lUF }}b$HpOx4YnӚ p+mQsoG#ӬWHC@O!3} ~6~8pO f7Ҷ0pc H|~ 5ϜѥmΆA6Gꝭ*BFY{pw\`GI2u@9M?/ƿ)<)>jMXb(ZwG$uNBFziBf#HoL:ּEEP13ʔPl*NoN\h*4o&Őfefg E Lwl;l#ٟ(mq܂7~2A3YŦ p)%\⁎<@= +G g_ y_+`"x'D$*QļE DӸ %|G_(4g}(qى">z$?_4-ə3RM&?2ct+ iM d Ô ىHHO\JbħP<#8'SQ&0OSMPx9}C4Xf "}}ľikZ5a&}&>(?t0%k]io5)n-=LM-ɳ&*O;~RJ'DkZڤXIW;% 8*>NFXw5kaLz>BRRPܺ):j jLM2>c(£β xȩl\'vV2|Z)tVZИ1v (J{MA^!`%yJ" ˂"4\ww?%cП2V:aPd87)I-.Hj$ JXQ,U1J wj^RWBF(#cZ.=p !@PYLcJ NHK1 U,Bwl!jHFbXk͘_AEƩ,k#o~VfLp =#3JwB M&;PsF:pMXDZ[B~RGP+V 鐄xk8Yd\E DzI#]8,3Ҽb`0|Ɖy!0[|ʌfX(f*а4)AAIb Q`C\&, ֝`TNagW3Nb\Eւ3@fih;Q"`8]|TՕ!V+5]EvALMU$370dPP7 6v) n%JbMm6UOqC{}3o&v9w=ss;u8c{n[L|NwK/d4?Z^]kFUe_W&z ݹLd[+)Xa[YE}HPe?8 EWW{&\MSr׌͜y\될%G,)wv(pib){j fX$/ ("ZqZ.ஐai7Wc76+UZw~ }j KrAO59җ3 {mBExsr;X,=QO0W^VI8\9U#3!XXm0 7*}3u8b ހV<+}I3GP!hDrҊܣ "TL j\Z2 ktE!Ld-^R!Uz$L_Tiv sڃL٧%rMZ9˝' L۪~q50ޟ~UG׏+V4ZNTndirGpfeXOZ~pH+DK*ֶv+@ݕw૥ÃK~= yOQy>:/2Zl D"jhҤc{&,^WzW=yU\3ѓgčq;*:loRok$?xS)v8:_RJ[^k4po D}U ښ1 *';x}hDPPXD(/o+XS/+O}>oL **S},L*hUĘ,$q/4T(jer<tO,:گiwVw]WS7la /ӟ"D%@c"[oQ6#K%h~%.÷!>u*z, WS͑O4mrIn5yRq;4"ZŤevs⤩Ym2Q+uҌ2V7/`gA xZ!|dW24IƬr]*Ga9#V,BO6̱DnN<`鱪v BVn70Ƽwz0 -%n/g:t9O5'!gx:lw[| w[t$7+Lp6C340oAxJӜ |7pz=Ze^ xD <4on p=bہ6v1y=LyiVZ5ljh{7=;MDgQ. {>bK09' !CA](p&/4R>f{ {/ 9 1w [ӄʑ4t +҄4oI<;Ry!l]>eu\Y\/[O$Oܬ~<٢zࡎt_H0tcU8ڇ1Ֆ?y贽i:3uEw(Sړ\N5&t!%nz~ߕ[O-)}"I z@x-|:*)MwEYDxu׭6yM}y!n W)k[~YgZw7;H/z;9U`^Q_c9K$ρ:K.^eQw}z j9tor']9yđJ.AOS\֙!w.>1ljGiyHi{6%aoDn{fʲppp zTw}0P p?````7 0JwllGz@)`NU m݀Àc^@0P p?````7 0ci; V6vzYO =` 0 p'`_$9>,߬x~?oM=S^nYN{}4߿G[wV4_ a@c>g!lU k XZ]J PkPW0ƩQOVP]+0<C+.,Y$q4,c_D$ną}Aɇ`?[ zga"V oD "kϢ@ ERS=ܢx@/OQv!-s-j3 V|7f[?]K'3+R坡l_ZS+8^ٿ e+sL:iEqG- KweLxƳIf h[åm|xpiuU>/tƂ#N?oցÙ̧5&oò9c{,>=[=S}6o#*NYm]g㋎p4__NWɣ6vP'r(+o>|?/gc"ηSIFmsnuGcXe|v`*-G4|:VV1{^x V\.)y &W^MbHvTpU,*R;KO+5GdОTj(dx1j̅XhO/9U=oWvMďi{ơ]ǩ>#E+pݵxGg_oG|;Oo~f?\V\QoN!D&apKU@UAo>FH`\ŽR)ΉAnqw*`a+->=l.|ŋ<߫/m8Պ sp7 Kǵ}6=~/v!WQfsW3w?FԸw?|zngÇ>vv_}/N<2*.}i _!iC I*-='G9P57P0sa5^w$#DS)âP㱊3]Ҟ:s^)텳D!'& r1!e?1",ubE &>B| yuwg>COcp#dz  ƷMJbiڅF,3ˈ/|!_ /&r hu?TAg{اZ>i<֘!5\|cj4k`t 5ip EЬQM%cu5 5lpZ׵LЬiӸZA ŕfkguWF鉂fK.4[gsW2 ԕ#h{j[XLYyl1c(râf MfK -jl4[*/h"/hK_lqU_lyc(vQ~A'o =4{)/hG_))Q3c ]gkE?=7tB޹kKw:'CNww-Qw'EکF*\&@؀MG&&& XjRC M^s|:3$!wGJD+mOeW*?RJ!{|`$C|GE9JV w UWm|cZ[\ƿ|6>ܖWwjQޛni0?>w]P }Ti;S&[-q~ʦn_;PHV}E{)G G;;W\*ozBG=*]tp]p2=K!^tK>n_+gĽ6:lu^y^37~彦^fؽw[=Mt\]B%FX .%sW~ʇw Gw*2p I 3޵á9"7Svݧ㋈NG|y&T$ 5fOƝN 7[dut9n-/uMdpdzO 7&I"gJp~V 7E_i-绽@Ӗy"wPi1ua9ٻϾ٤|3)tgIa J 7BM:xRzJmxocʷz+ NZn[qb޶COrA(8Ag}f3Du='4eXT7({h}{N 4YEd; u}_>TUY'!;^^_ݫuy~[EY[ĹV"pIY'R4^ztr}vgg)Cq}\wxcOE'quKS_pG\k)[,Xʣt*^#7TNE]zxC!p$f7oeb/j ٱﶙ7 g+C^BsZIߗ0Dz ftNOQ.dك~?\5T9ޢOtaK<&z63PFfe iai/WxL 󔽽}FXvKu#E:kdӗHF-UtD;D:1Sk]~ҏDE-8i¡O-:pdom3E?bg;' фe^te{pX|]Q[ui7åy? }W`$-;^VnhGspsA8F=g@\sB(KԤ[Xo0R1@ ~wPq5Lq}@#K ]׼^@Kq= $/o L)s5` +q.1bx`lzv `9``%``5` `-v-@VZGmۀ% %T[PqRytշΌ%ܝMLAǩ@Rx"=MJ1Fbaۚv C rl zrF=h1<1DMcm%1'K7ofw3IN[Wqf_hE6/BI&<*MxP:_ otNM{5!M&|^Ɔ^jĦy&2}F何 N_^ަ.>`ս|cw0L[d?c}|wEIxQ8'Cy :#Eq !L'5=eP T]EQ1kGil[☁@7CݹNJҧW`KT+1p8̜юdo~>`_X6 Rv.:~kO5jtk23Ġn)$3aV|9HBU++y>L%PֳpL.c P^2@=f+W=ȩjX$3E*qfaUoj]Ob6W\o6dKO\!ñ"HHR$#`,p?Dg_7#.o`!L6v!c(<#8¸/D(9D'w@EJ,K=\T Ёl>a$#EB-$U6Y2EC 7$<ce\A 4w2 μBօ08n~ -NUPBˋ)JDrAWA!#T5ZNBz\iC9`uP[, n N{pN6h@ I4$ww9ɑ=SoZӋ=t=ڐF~,w??,(B<{"h>2ڰ- 9w0܏gk\~1܆8F/{42GZ{Q?ߗ[7#~k)Bkd,AsB"xcЛDLhHdrJ_S Zatwe Qr{MEH΅@"#+ww YC"?fI@U?CMT?CR?CMQ'sœ?CL&?CMK ɗQ9 i?jȄ˄"_y0:^s:?}?Y0O<AwsP%c  n `~W# ވwG 6O6x' .?'GbH"u!r(x! -@7c!bH"u!r(x! -@7 wRg%[_s u:<ؿ?pN˙L_3# E"?s~ׄg /;HL:O)v͙B{'z]9@5g{HP3g eK8!*/Lױr_sP֤Nʙq~g3^S8=_sP#k?9Sa-9߸@_sP|9ϯ9Su?pPGrg: {q7Lx Y|LMyqܜřZXp8:B%% P|?˰pFۮs-w.XHl^ ٽu~3&?yޜ;TM}oTznahgW1ole<6CJ(8,;-L5ck ܝDfwy]8> "QZ1"X K4Jh,UsXI!ŽnM2P0k.o(}ߜ4uer&JwGj9 Gc#1] *_h- 8|bH:`EֵyvTuft< 6E4ۗFKNy2/6h9A}UDGd]*Ivwx5|MMxO=ؘՂ6jlH.Q['o{m--{3{LhlOC8܌"5m=:%Xu"|=>EN/Pab6ӬGB8EB |^c4qbA IlԅsY𱱄b0\Y`yA|rF(+Gt6WT 0V|L&dAkаS=Aho ϣPi)(8q j0Zm-S~;H¢&֛=W\tb! }˪*o47Ydkj[|^%MC̊VSMtcƠ][.bk&IهUEjUi: ?LK3gWɶh 5Uiv!sI^ӢJ0erjY 0Z뺆y׈ FVT #*`2 34/9Q '˿b8+<ӧKШ':+e}pg,%RI+`K*蘋3/ą>U~7 ܣ8AΆzEp,.%h@d'2xxC$_)&)鄍${ -8⇧M:ӭ+/ʓЌ5b<}Gf8@hH0S ".Pj5?'NC;ms]j&-@{u( br6HBja= 힃&]4z9(5)]6^=KLAz1"['cJUO 1 A)'m@j;<}3f1YW,jn@R,Vť`jS►_ -,!2WyxF;,vSEvQw nB!췴oWWiFBt_/ KI /4o=#M)LZѬT`M6,V'Þ wl0x i О@Q X.M#7a,B񍾜:d!@lgebYh(3͹@#E0mڃ:4ƼAqxw6ȽBu P\ºSX4(dr Z1NyB`#W&p?QʅSmI%0'bHYW2tt?kν@eЍ Q=.H2!"S$LMͦ|W|sΏ'ihexj4Ar{Imˌ>^){Gfx;NYᰍ>ɩ/8<2yh$ιÌUZ3?1^LX]{.6(V sD/jH|%v.۾LR;TT)DG跐}/3҈7H_[5ԖŦ^tRv9C-J(3Cs4X!3Y}n!~Rj jsFzGBa"mUrsM[=[#JvBL5W3У+DƢmdn RNI)V_V}67BD]@HuCBfVȺ z. -֠o#Ye<\Xw:M) bR.5,k(u;0}Po;h~=c!a_xÿҘaBW^eWxp F>< -{SDo8Q<[xD.Յ`Fxd(uV Ք4,g9_P@"v UVg4F(0 P"E5S3nBm*;7%Mx/n8:#|KPLIqjrbUv VKКקn|W+ȪGb˥#sVݕ78 SFPCk=g0=zo猱kBƢ58n -/_Bf]xs@pV,@?UP䂣">{1aPZ"Jk b"xjZ+09m]R jKY0tx1,ܶWS\E.ÉҺ+gqjs\2o"D1)-˹V_%<h<}Mu怽:u;4SKb%0u#)аY 5(3WV)@ۦ'Lx>Z} Ol3βr1~W*uhd1s?+]+|to78ó}XM f'2[jUب j cNp6?7o]T~P|F#J|íO<-"}Q;sq[fV:h ebXZaIwW"ڶ&<5! vʏx0čdž 6޾s cFyi8)2l&C/4$_`As qPa'ږLُS?H_w/X> Ge04:Q'N/=KattVI9=$6܁g`ZfQvf4e D݄Ƴpm47p~91N]"yV|YR,J;2nVtL5u D0 _8欄H۶'kGu到ϮIINW6<O?gMAf\5p^B^({fcʑl0e Y ~O7p5쩃x1B! 1w2,Aͼȩh7( &d-4* `9W~F낫ֵWWgly6NxHXGfd,>Uv[IXCLsڋwآpq^+f8*r+Ϲ$BeoҲ~֬9F+e !!_8P2ʾj%`3$4w|)=~*Fu!{Ca ST*y=.:A^A jEX(mshWj0)eSF篃#Gٯ;6}7/% Ft#I =Uj8f4 _5ĨLwݾE! Jv˙Z[ l3KG&ady -n"-콉rWyբ>PjW@!^jߍĉp::`c-ܰ3ovj &eO+?:Kw'޷sEvSd XCnK<fEL{ &t ?n!.OziM 53s2ZQ*ꀎDڽrn~3OQ={{$M>؄{j[DȒL-t Pvմ9p9|.V2iL|/їƏQR8CzTZtqa.I;D}qCu1CH.m:vIH+,!#c]ۖ.la*]ыl`D2I7ݱV],fr]aS} "plnWۚTW Vf>ŠVݺ|4A.aV^bF*}A9BSzj=X2̢̞~t;&lh?v LCGXu(Jk_ (lީm$ <$W85 :bT-Xi %zresl!:Jgb:hb܎U~yйK.lÖ}-)zV)Q<8U~~=Ѷ4Iw35ɺjkwkaωdHw);;|n.:C:#MD-t@w~]YNOv{UKR-+5Z}W2Fw&9 Ϩ20VZٵ[Y":ej(y!M2 7tn(llGtӊJu獳Qq&Oqsoy\o0OM|g0B R`('p"?SD. ~c2#^Ng g;sDwr ;۾r©虔;81#{;mJïa5C D֫F&Q ' Dn RtKYgibtd$E:Ku &8BiH 9ZM[dnr|_0s 0;7\&˦vqYpg4v.cegB=Ew5DLr4*qj/VT<+[ U:EJ-B"7꽔ݞх̓q?O%7/7o'j&9βJq'E,o9v>4uY&:i9a2,ɆSCJL SE>^6j1Yi+ԟNvyJԢaQrZ%g#>o]y6oDсȿ+E+)\Px1V}%* q?TV3bGu/TNrSUeo%J d:?~@JIUԲEt