ploop-1.12.2-1> H HtxHFTHO  Զ'O +Y뛀"t>CjO#:j۱M mr(Բ8c1a7bbbac39616f590bc30ac1d010afec7b28b3`\#b:Fz#iFTHO  Զ96}sEH\9(jq[ywmB߰>8R?Rd  `dtx      @e(89:+FO7GOTHOhIO|XOYO\O]O^ObPdPePfPkPlPtPuPvPwQxQyQzR${R4Cploop1.12.21ploop toolsThis package contains tools to work with ploop devices and images.TGTrhel5-32-build GNU GPLApplications/Systemlinuxi386 d9큤TGQTGQTGSTGSTGQ0c096597ee9709f45d72dfb731ed6ee0fda7eee861580b0f22329684a4eebafb58b44bb589cfe23255e5507f7fdd497eef928b7fac3eb52c3a25467e8963c5f452e3ed81cc8325f14e508c7f113e6bbfrootrootrootrootrootrootrootrootrootrootploop-1.12.2-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.2-13.0.4-14.0-14.4.2T`T\S8`S 1.12.2-1Kir Kolyshkin 1.12.1-1Kir Kolyshkin 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- Fixes: -- ploop balloon discard: fix wrt 042stab10x kernel (#3156) -- ploop_merge_snapshot_by_guid: fix offline merge with raw base image -- reread_part(): repeat ioctl if EBUSY (#3081) - Improvements: -- check_mount_restrictions(): check for all images -- ploop check dd.xml: lock dd -- ploop check dd.xml: skip check if ploop is used -- check_deltas(): read-only check for non-top deltas- Fixes: -- ploop copy send: fix a race that could result in image corruption -- resize: fix resize working on an older (pre 042stab092.1) kernel - Improvements: -- ploop mount: warn if host filesystem uses data=writeback (#3030) -- snapshot-switch: don't show ENOENT remove error -- ploop_is_large_disk_supported(): check ploop module first- 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 142018338099999 G6 G3H1.12.2-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 Rpq*gU]v_2system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:man_t:s0?X]lI^;v䝄KHj6_o&8:Y.xgwzlff;@HDAQ{@KD2J5͓sCVd0W\ԡ"բ0]ʏrWT6?Jˣ0J\ˎ.W gdi"7;93e'gds:=ʞeTfxt<;y>-]T \3g`XU4;;آj k>ƝG<[stv<3nZׄx%Rӭ984ZrYv[t!3u&7a әSTjUJx$j=dU ertfJ&ixĭPS ib:Et_ uH7$iEˡE1`:D0G`fTۡso1ϰJe%!{&UJCkCp`Q54*Aet,*0F )mИii"1.:`ԡTNF⁃ / Mph_[+,B1pp膾k?\,:ܷC&Lͦn6Iܳ"9y}azCo2"KL(e9:&[P"2aIgwϬT]b^%A6tB3C!2ԟ..IJDՠ6A`V%аlR%IX(㴚mԪa0MZUj&\_Ҷu.mA N 8u%J*"0II~x<3K$Vw D)!Z&a?KYR؛o.,NlD(^xY8TDXӑZ$RFm-r׋ZڀfTg,jFm67y2@|t+]~ġnOx0(j.?:M "65#(YREԄIIToS$q񹋕Ҥ(cr͢bqXq ;Lz&m57#({=xB_G SX CpjPضbb[M8QV|#Gi;"s»WM (5"! yӲi?qt/%]$4 "L ek0V0e^BTS#u^bdhMĂdJ( ;}mwl]8bBD 4^Ts06\n@YCд4- ͑ rf4\1X"PjE"\ 9 qKu >Bfgzͩ.<IhV@&2Y!W&XmtAd *˿@^o6>r)lr?7Xo'tdU8*BEc2cgaR5EN@Cdl6{k"\ø̏pR0kI}Džp_ۣ/`,~s)'[4')܊p7tn?^8`E+M5q  IU_R[`a ĸp>tV6bP~4>ȗN\FG]^)c MF o=?d谲б~܌sdj\ PD*@&l ~.-wYx}ſ9q_k_:x{ob`ͬC~_ >;V_`߈gŜ_[}uw\&\~HϣzVo5)#J,Ƈ}_BYH3~1Mf ~6O.@pO%2n۽C7ߒ7h<܏c9_1zϹxT<npʧIA{FR55f2䉦<@Swq4tV!u,jLc)fá}LJեN8o W4t5JpWTc'^5ꦙ=aRSVā US=Ư< cVzb_e$JN(y+}uzZ"]{xpBZe"\ƖSEk* N,x8sPS<ԡl9G\,u$,t@.tKa`଴3E8G.`QLjkA-Koxʹ3)+)zJ8/FR% KE,*щSp_J"ZԔ5t(MDֳ5`*^r*^|fQ3 }dk1i9IK aUYTt EjrbtBUԁt-/hҨlXTTWE1C-rX\"% k_XJOU ++YS-Px nGO:,.))*pKϡQYi1iQTefLEgJ-!+W1EZU8 d`-sSOb8x+҂"ZʰUEL9>VYE[ۺUEܞ?ys*!o\Ã̕쳱7F#Os69dHr<\mIpJM})QKA]/?Ku]2wػ+*bZcT1R2J>!/jM~Hq&V ;^IdOJN9F6ω)B>1$LB|HLPrP+ lP @.(ɞJΝ J%Mz44*͠IZ J /3JP=KA\ Nc (ɪAGҸ4z;i@=x:oN_NY .IznIz fL= ^II.P: d'(wNSiX;(:A\: !?(%1:߂aI2@" :].%Π3$-G=FJP:!< t6(3@ixJIt8CйP:TeҰ JP:Tc?|?( @鰹Y?h'ЅEP:U.!gR?O)?.svI1BF5q=& %f}|¤POCȸfJQZ cT!R1*D"bՌQ92Jƨ 91*I.cg3Fexu&àPcTW!1*NkPt'ױQ1*Qn`"~ƨLg Qr +fr ,wQr7-e1*\6~ƨt93F1p3ow32nanfx7^?p5 x%v?pN?p.?p6n?$G8ir%8~?ϸ368l?ǟg/s~1?ϸ3F璃l?ct0gN&wl?ct6g'l?ct:93FǓclu`t>;1:PN2FG3[3ʓCSSx c)f)d*0F' xf*Vct\Co~1:3FGb3l?cthy;Znac˻~uq=ǟ'lMn9N{x/#eOxge @=?FK6e.IzHI6~MҖ.;&oݬ^=;iYI,)4?ڶNA׿R<]y{q \vm~)ގīwoAet;ݖ" >YtsGB6}[z9.e]Xumݫ{{op-L혛RE4=Z'9` xj=M*O8NfM΃m5C/%rD?W3ÿ(YE"^wZ ῒ??q3Θ羹9Da$7e៟W|7y?m&%7X7ݜZb>MÏsYo^a/ۚ+hN0Pկվ{?'pi)o,L6!Rŕ"T|J?YF6W0Z,>sE+Y8 #~V-[q|6#|+3RkzazF ݘI6y_Z[^=\9L1q*5֠QF]%=];s "L0J<h meMŴ?h(cyN]Uh7}1}e}cYF3iu}ݬܪd&#o  i ۣm HA]+" fA Sahkahl/ҡ'v~ۅ}ɾmV@YWL`죋=q @7(G}d`]B+l{[`jmL ǞT 3on`*,vrX?}cc[.Y=<vҾ& ͒t ^Rҍk5dqnڞ;z7/ ./[e2he. 1H"O&OBp)YO'joi8 x!k:Jt?hI=3>C3y'Fx<'H;όݿ[о𶈂 "9R'Z=LjϘψOZ9Q? x[8+!,}H;5rea{x~gadӭ[;}nJh=0W"VYw9O=hk/np6W+X4,<6E8: ƢPSP{L|qݠX>aJ i &bʼnK|O8ף~JtS;IlD1~yoG4o;BDJE~1sn#9Z$=:CGf`u2k|z5"oS eb7 u[Ō%w;ɉCn|_iPԿ,δW]azԘU? MU:x?&|rKraUQsʾIfSgHڲ{ 7@9;;LY<>3~r2A4!tb9(g neh#VꌅyV=:'퍼z+VtA}x鷋6d 7(Etі˜O~xl-_)].D~2]ta$y|&6jwiu]luZXR؞xOD!%Gh^AbCj"1sO kZO'*5rOXJ$@^ !u&:mGu3ygc&Se#ō}' xy{ףy"Q{쑷Ѭ:աXsDpI¯m?ͭS7ckWR{S;\|/Jb펐Ei;s S7$wu D$Z/onCX׬BnVE9N**q\%Av&v>QE2 QSq8zekI1cXVk7 f{8A%,Z%Ƚ5 _ FGLg?~ZhRTTUᗃ27CJ)(RW=VjQ7k&431JvjגUԩVf ?Q!"'D0{߼q[y{߯1nf4vu== ٝEht:ևS_:>fWzH>XtO{̣ "Q+ٟX31 $) ei.xo*=k6쥯m07,n ]\^nɡz!ݡB7A_b_ۍ@|2YrglɄa 4hnhbMXߨ 4'ьENRyl7 F*\[vI< NXFy ,4=6ufsdqvF|kymQK4Os\M2Y hV8// <x>5S'$C̾B>2J\iHram5W_sIl0' 9W{mJ,xΑyR70``GUȮKC a^ow2--R(D0$hKg  `L$4VxYB!F໩/s=uæ E38~B-33+t8EP͘:yEY`1@|P'H gJƔ.dZxr”)pZcvG0>;>{#}݆"I׃\"UnzzLs7@!H 6ڇmJ_5ZrMDlWfb=p]EFMz:6G/Y*,> ,ќvF ڳ3 ãϒK^,"3* |  Dž9^ ` C3kEvVANJ}ƕ:K7빸0YD1d`p@Keu-M,FxJ.Wy¶KCSZnqm5\'8$n8$T+PL)Ƙ?VSB'ϲ%m;!d,$_֛f?*קAaI\L~,̏jY0Su<9w7^JfӻNt9_+ Nq ;uCYȓk*t*FCECz]'J[##jTNń'8۫. sxՔQz2֛]8YՈ!@Ad \2%秅 Z ~~ ?ڟ]Z i_Fr'Kiz??I7HqL=H`cl$749} `ֹ^2Tڸ_l\vdx2[!`b#p?<7;68-4h9|\kOj?QLt?p.Hn \p5QzGEQsL6SxNB?7S&߿e^iNNizg_j4?'҂liWE x벚S8]f@)0 '|bju n+fo#4ʿ2:{ I=}V 0oAqP [`\C}4U(D> epw=U=DB/x`!۬yٔ-t[0]y/HO-yy:O發U<*=/es'雈lr 88o0[ܕ9~T%^E:e3TF8<ώΒyұpdcuZQGpURSZJ*Wk)q|VKZU U+Z]|@F9< ڀN%` ]Hp4QH~xL Sv}xX-hS9R0D`ܷ !M3U(~lR@Aԙt7P6Cł:%PfCk 3`qT {l+'TҋH44.7e nP_v Lev*KM&QDڰ*$'kcSpPoExIc / VǨ3HpSٵ5K311000Z!ʌ>pVg9wev͐m\߰J?~elK ]/HRt'e}E4LbegSmvi,|w 0:큵oO`aC;Fr/8wNb;xnDͥr%똩bZKCnj|Jxl_,L|y{e!fc/=`.D942Jj`\-7)x44sC:oi=&HڪNSq5$K--}VVaeN@*,"cɪEv `W"<;ߵt# Ah| ,+d$ȗMrU`mrV\mF6$a&M_허\"LIXFXU#Q<\kS-S>cRO'PbEvɵrbwHtɵǰy~YY3@|ki ؞JAcOoϱqSoF~bB//0h/v*߳ _/tkB־ WA?3"AD7PؓmAւ3~bяnSu&XَnHv{x9:7&.Ys[Xӕ;;'J.W(q }T_eg}OV Mr Nܔ jV$a&ӘOv{Ȭ.d*|V 4D7TE߰*r#SY)^J|,nū^AԨhG &r"V잡΄"5- ED`_XRy+Ӵ1{|־Hɽ i9ūvG Gp[ki_0ANg~`v^eW8o82g]kOr+`[fv`i>/˔D {߯6;79$p*ûEkL jAW7p1BYǢ u^:T24AJ ͼ&NaHV*,In;b) =x`ztqL0hy^%f%Qk$oPMza^K7d v+|LAT-4]%JsTwY?)e=#TO2viAܜ?WMI\1$P"wPV̓@7k;q{q=V x>zC@bA iJx/CKê&v wE\@|!?60l;996p|?JBJ0!CM4UOR"Ųr^SF*mvv%T7ÔZ!\MI  #'ۑ-6"l3&Hq 0ul$ ?BEl9ٰO@*#c؈rKɞԇrƔ3$dX%|&F>:NH#O;`X '(#8^g)~HGه0X1l3q&ڒrN( B Q\`Q <;SODjmj=n뾄aM[UAWΧ֯?%ց@#Tm9)8@_ڝ.`zNG]Vev~piP fՕ*8r (!d+%!|U9p¯D^A\pBbx2]5;q.h8|B>? DR9LiLg(&\cy=i O GŎ^q%9_ dhc4HKG F")'}Q33`txBo摏A,y\=$48״F@5޻8w%VA{={FC$" {R=l;ThF͏#NÿX|2Zwh9z;k$HLꆝl7:vJs;sDl/W#B"?2dAn16\?emdHmGUV# *ΡW&'!e!uN=*?l0`w*{ y%% ]T_Pz d8];oG^n|OH1EOlW%Qa2(ZCƑw:M\Wwt?!}RO$t&lkvvfgvvvᣮwY|wϧ_o} %[\7`Gҹ$lņp ]k*ȴdž:tRuҀ  :2c[5X*vTִNL]aM]c3sӳ8 qXj'^;Lmv% Qxc.ud[΂WݑꎵTݙᙇb 0wkncZjWAy0p> gͬ.;*!'`zOt'DS5%d^=P"mbMHRSt&54GR9VAGm55S1G)57g)9[Tli5*N¹A紻߁S҇iބksAH|>YZ:KOa9}[nG~7GQXHh og+:6$ZTآh3haK)E3rV΀0&nъ,&iQQW <ɥBZ}[&YILxxHV鵏ifpx<8j&o38/.&G΁OW\.l0+f%Hv3~˓/KzIrC=kU H #R=~WHDZs=jӷz7>_ƿ4z Z1ѣn: rrxL_Ga@nE"N\02Q h%%(ruN;<`MBƵ"Dztlt2Rw@%گoЪQT1a'72# YH Pخg=oDsD  _<|$4Z˽IGr6 nU7֝㛭D# 1j@787(!^UrM 5u(2Vjn@)Ye٩_ZSenJr ;(-14cђ"im2mZ" =1_K 0 mtdV6Ĩ^B7[y2Qƪ||iK/$.e#UGHj޶LU\r:{'kQ EKڰp}< 6RA4ЭS>!O ˢ45ZƅITYK&č::s-{Cy=Sa;P d6Cm/BJK0^OQ+`O4Q|Fc @Wt$'Sb1J.T=R0nA1Mz$0Pl̴\{ (ފ ӆ6aAϹua ʰ sL7M\q,{TJʼ lnj#3[pΒ7$ Xn0 #ʓ*+ :9?9޼R'&P~V]ȸvn:Pۃ~8ιM NBvi;UP~~`8]o@!Hird Wh`@JJiaAUD.̿H6?{w떖"l_{vV^*^Qa'k{J"w(7|?w|~[\?bokl\{ _;D@yvwEH@M%e| fEkn%gZ zy 3vW.OEih3ᛍjmÐ<'+MK<f'ROdtVU+L B@'~u n*L@"&U`m!~G9wۋd!IJ:7PL}5HDa@>1 082 ! JM l_wQ\V (UkiɌfel\sфQͤ^dBh=m4&j6iKYzfi!!daDɡ)AxzLDд2qΆy nkF0A5R\@^ME+\ )`ܵezb(df>X6 lOX<?{>27mcƺ$ UTvƇ*1&L /wٹ>"8#Y1y0r{pך`0pBfqf08K`l~E10 $8p\WЫZo3C΂`ZO0kZOZOj] :O#=XxKwCg^ßhL` O|0p CH㟡|06o@80 x fUffX ~+ȇ 2 0Z.~lM,%6.P|Wc`dzbg i}gԹmCC3l:"[Rz}^S z+<7^Э>rC~COBǠ_ З=juNr=;Z97d e_OWX֌d4 /յӆ8*q9G.>T|BO7 '>jwS?^>G|YDRt升`/OJSR7}8й~BqlM1\"卜̚cxt"Dp>8_uu|c.=L .Y3,v&ҕ`/F9Wm-VYhH@ou՝U/!šOCuY3'tcЋ|5'K#T㒷NqT99{NV?2J>Oق: !Vp875ʁL OVIe۳:fMIEH!p?M@XîE(xГbz oimdP؋ǰ+KY=̄$;I&٤N%-V랹 >zH0E9J,DjY |`sX` +p?>Wm%_myVOXeܳ20eVG!"=aڔ%ް,py߿e9'HgTp?v.xQYi 'y9PF5NUdFIvyk\VSi؛ybνaL(GQ;宫uQ߇N/^ Ӧ`'nvYG9I(Ɇۇztoϙvڴۢ =hY^kd[$_Zewɽ'2>Ϯɿ[&:&'n|<wu7Jfňw+Cw<pۮpmgQ )G$mUOOl4?~}4gGrvhZ^ϗ|9ʎyUNɚ"} B T't%졫j;=3^x[R/?evr}:M?g8z{5zFA>YggDg$Fbe:] _ DH;K >T[㗩>8)ԨwFgŅ|A.1xo(<+)MGA]XDl!e~(UT$z޲-[u&[X/+y'WY5u)T"_{1@7j "ě9!ʡ \M,՛4U&8}֌)tCgٸ12#;gjcblP'o,e;vڀs:{^qWt-9=ڈ^?$8%cu(IT~sIyhp0_BIQ:X$:JJX'QPJp5$ل8 $߂K%1|%Mm(ir@ u(ifM뇒6l( D9D k(H(ierPN{wDIOEII(GHAVkj,VH"$f!9m!A* $ <" W3 PyË'Bu5 CuU CqB!qBI ls92 M'1 63 P8ah@0?XM(7x Cs <~Ac ahx04jl3 U<~a04m3 A?мq0,h3 K0NE<~aF0,h3 K1xb ܻkg,ucXg`}!BTLO[YNDmVQசr 8Fup[Lȶ\$ځ2 I?{@:㙒op˂/9N@]donS/87l|$Hpbm'8.q=C6֝k??͉?J~?; w k(g;ǯtuƆOH b&:K{%5l 5Scw!V.h< v F`~4do^aDmO>mM,SV1Up)gH:x'z]yۀ 'yE+HSy gőhkS(@ߨ'0";G=rWe5Jh/\ɼזp|HMrT0 XҖ03"?K`랖&L[kavwXTi%5 ºȆ6$Y+]*xyeҊF sK$;`iK;+M2t|u ٭VVƀ+JӒ\O|afǘݒ5.̎qng設x]rWLr 2dC{J$dVҷpR|;[z+WĮr e̲+Ti3H ^TzV|Mܒ<7 >L_5|#Y}TkL +ܥRyKk|)X VZ:(?‘Bxt^gϤVyݤ? =b__y =nô5yfuG+PZoG*.;xl,|xKuB@M*^9wEc.f""< T.=nGP~^؆:^Dƒi* CeZ!Uͭ'b3)uKyeۖSurG*!z5PU7EUZ/W_f鿣[ֈ|ˡ)W|&3\snNW0 Vеʣ.<ˣY;oL29sg]пs*țRJC_Eeh'jϢpv*]{1{%9e]ꑻx?8_!Tt_$_*LV!?Sx)-+i0qq^wzRt\ \j(s7`ZSW_z=׺īQn@/eBC.)ѳ"3Q&:2ʧ-]"hWu/t)fs4ٟ5No~@y C6۝5S"*sezw.;~}OQY\d8-O5d*eœ%%t/I SDLmKŦ~a [z@Ϗ~u@yYc=Z`[ޣ*)-e)Bw/kWpĕ Ӱ8I:KMr-J,[bGR?WCTW  4wJ2 μBօ8n -NUPBˋ)J rAẀ9#;zh>\B90`uP\I, n N=kpw'Hp4x IpBB @pw'|3<즲[_{MaNtOlgc{?O#]E%UYP׸"Ff{M%u~n־%[m{7?6ԟPz_;?U$M\M~iVmҿC?\z6 ?|Pq7^cg8B&rŠ#=Sr*UG]ȷoptG8B~{lXG\!8C85w^bIbrIbIbIb~{2'߸`s߹ȟsƑFw.8,QT2,.ރ>XBE ,QT2,.ރ>XB??Cs@&ߺt >:'?BzA3,_g)Af(`~͙B]#+^vѿL!g iL!z3+3=Eȡ͙BvpGkҏQ3g aMQ^Ϝo<wWi\5[~řq3g 1s3g 1g7.9Sw9SH_)QPL! p9v+g )/8!_r9SL9~;yjn8SNpV&l&jj ~=dkf`eI$Ⱥ;7cSi1SZJY$}92g۵Zӥ/A_ҡrO5U)0ؒ*,2NoS>9 9Ҍ}qXkqݚ I`SVQfP0ѪeݮNfyì7NtfC97m\qjsYmL; sw%b'^7#XlV;f;߼;bP,dK5A̪6Фϥ mރR7:v-Yugip_`f~u6C'`zm~F8P,IES՝wb3l6ԥv7ֈL~tk6>ٟPW=d=Wr{_llwѐt2I=)_Ź i:VZEU.ARZQ6p}yzdr$qvX̶~&sRc֘㝛zh#5g(o@Qt*T8wF[}'BhzvσǶY2:[[:(X-[H*gV dYF[*ex|YDlvޟ }i>@%U1"Tk r BTvc#Lެ~uvC5"3'CY<]3bn tcÌtrNʈ ;K9~HxdYYiArrQqA0D\h(*'"mFFu-5F\74aa [CB9qy(6e 4TrRJh5ۯ)*2H[p-2pTtn~}|0~v"cʥ 1yLRu!=Sh瀘 )ْ}-Zqn,mF,$N!`YFM az.; ؇وEW9܄ VDq$GR. 7a #ǧA&'F o{VڙrՓ P~%/1Fl(;yDEWa]* eq,.mnHHːvW11A$[~85G! \AgUPm{!e2;.\v 4qh85za, 3Lb; 6 !U,; Ո1aݒK>>|@WD=!,r"D-ü,ϻ;eތ-n!d}t=Ϗ:ő)/a%65g jG EqINAO''&Zu~a] D țDa2$۽#6B;>Ý%M'/oMxl ovܜ䛅oؐՐy@jLmJN 4H;RX,0. Gqt< `)Biiuw_i%`aJ[ @ 8l"` FwGu[ʵ+mkd9]ɺ{dS/"(=dCt{\A v =C -FFS[V.{ y4q y {jBE|e8ΚTX60J}/vnlkf+S$&\2U,~L3-JP=Ry̎[%V71c@ ABsZI5^%G^/y,K(rp6 K͟\ ŅVPע:oF/ab9Hs1[aʆڳ"bw7{a=XYfGnG=du$I:mtFP#+wiz{<щ/p55]2I:U3cKHvnh6,^Dyy ܘia4)>10V?@JNnZ\i`['4*U\քOg<%̯op$z̸I]D?qpԕvu9P_ =w{LS~oM2(k'q2|"}{y EvWxr콚_6o,EFWe(Fj}>M#l RC\"Kgd,\#E<мfXKs/a.8(zO'nvZ-@z`Hi5x"ϳ7mh߂j l_N8H찣 ;;ovVg܎]/ፁ8u(ʣZwy8%I=Ca3)BϙԎjr$[N硝1&?%˄)N лH"mkGZڟ5Z|0Z{J ܂֠~,u!zKU6TFT܇n &VUzT4Jx4)fZà v3m{'fLD<2qP DwB*Zʰ&'H ,GqM2AJT|9EG8eUZ30%Ԍ%DDNZH'v'0#BF9V3+0Cm&}Y<.1˕% <2 ;ٿGlFcMO.oaI(0~% 4l/z`H̩%GC[D+F63譎ֶՙ``)cgټJV9@WܒEՅ 7{/5Ҁ3H[]9ܚɢVx\vM%R #]c̸\FbT|\ ,ZS5:ǰB("lhrfrʌY>_h?~#bүc$CSjAݸPF[\$/{vdU'\d%M%&_pM}\VFІ- j6KVG6sWͦt3RL^~7&ј;cW4ajM54UH>6=5H@HU@q< US]Q~\2ܐnL[ZiSSpx6N#*b5|tH\xڻ*W {q2 M ܕJP@O˜ qiBϔS .}X* ɸ_diqL+aQ&NXrgP^ eO[5񗬜WT~aZ)ï@r')I-;́랟^\(;"*~JԬ[VivWb)əΌAaCn.PjƇh/L} Y5ptS{䰙4dTpK fsqnȱX2}A'x~BCo * e aAk -L +6y0V['0;}2t|.E}M0]5K"(Xd lh]dW~C֪x}\vuP 6.Aw@B6 ]ggƠ4(Ni?eV?U=9QkX$}i\7ի͉je1={)_iZ`KVfz5=9ׄ9hm*Z)Pћ=YRBYsDFĵw1y) 0xV8ۄeGEw"I>y7j.PÓҾ3adf%LTUP_lV[ѐ NHArlHFVe= f= ;A1f/y7;YYBRI@OޅEYHbհ(үmH})uqX vGti3)^}(1,(Eaペt*Σz]˪Kk CdnpXN0ND8{8DT~8hs 7;Ys6-87fݮeZvɷf~b~ԓ;v$msl6CvYI)ОSG:,߳(^I*K<r˨w_=DȖ"?B­2>-ǧ"Lԫ^"9sc{YDfc,`pAx^rԸjhebhIEڥH=3.jZYSF<ڋ1rX}TI \xwM1?P3RX͜3CkAJdN!8*1`{J|]bvS~|<8W!"/1gkN?E)\Q(jSU#Gm S 1&w9?ӣ{:(sD'}3Pgj>`1G R˔*}1`@aã|]f\!bJ\;|&8 w~Q8}x6 8h| ?s,P;/5J+OFjf y$":бτqqhax+v5$X, u[]&j5 8@NqI!m]]mW[$mav*mSi1¤ =;]LɕcXBἔ/4$**8zUl03GoK)@/2\Ĕ: ` Yd.5n,b3t1Go$I C|9(ϓr 2Cr^4QFp"H#16ƒ0ѶJl/Zy&0hIEQڍ'ΉCi>e۽_,$~&TgACjуQFzߗf |75'VH2L/(UItBu;ςWA[[rz#ļLEh+Bu>bxNU3t"6x'PEt;U ƹJOS;7tA8Um~be.*8ҋOh}돪.Z5Ul^6Ƿj۶ڱ6@Gh OJEi; (]~GPi_1[JOxyI>} R d#] ipё\urBlG@ܡPެBb |ނ h(0w,wz$ MzKȽH[m=A!lxX>o7f<%V<;^C!_a*˨0jB=2)$LOXb5wr `R5_`Y? Loȉě Q+.AO "=nQؑoI1O.۸Ќo#5U~㞭^TV$[=[}ZqUBt2kI<𝯈9gq#qwi:|-UHظbc( 7V{ǗM#>U#m1Jӓ{_X]SB]`o <>L`/!khsz{8.Y.7y^ٍ@MSA͑5UEK7Մ9pt6x0}xo|>!|:|P/j4P&28_#:#4=}ªyF^gagQjmo |z)uُQSZ۶Ɣ$CMD#m-b!voECT][4^oů6K1l,&M|O]8 I7r_vt/}pbw/$@{}VK~o&Cc7gJo5c[6IU>$g=~U?:]UUQX j-8J6M\'k"ՒZZhyy߶x>ƨ6{ȰLsU.+Ҟ,ev.WdnXXT?'efE)oFNDODPkߖa$eQP@,P9Ժ