ploop-1.15-1> H HtxHFW$  Զ408c1ơ ܾF(b[[xEMb27f4c1ccd11305b32ab8e2da709f3620bb093f5NX]@IֈFW$  Զn^Q@yP`JͩR,>-hb>8h?hod   `d       @ 4 (S8\9:FdGeHe,Ie@XeHYeL\eT]eh^ebedfhefmffrkftlfytfufvfwghxg|ygzg{gCploop1.151ploop toolsThis package contains tools to work with ploop devices and images.W$tbuild-rhel5-32.eng.sw.ruGNU GPLApplications/Systemlinuxi386 X9큤W$W$W$W$W$ff26dd564f83a0cde2de877c920aab45d115ef347162fbce68425359a26bdcf050671b99be1e092f2614d68cd8fc3a00e5beea036c539df2b7a2ef56ef615563bd53e748b233a8a41048fdadfd80b0berootrootrootrootrootrootrootrootrootrootploop-1.15-1.src.rpmploop@@@@@@@@@JJ@/bin/shlibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)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.1ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.15-13.0.4-14.0-14.4.2W"`UU`U/OU+[`T`T\S8`S 1.15-1Kir Kolyshkin 1.14.1-1Kir Kolyshkin 1.14-1Kir Kolyshkin 1.13.2-1Kir Kolyshkin 1.13-1Kir Kolyshkin 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- New functionality: -- ploop defragmentation support using e4defrag2 -- mount_image: return SYSEXIT_NOSNAP error -- Add ploop_get_base_delta_fname() -- Allow to create image > 16TB (without filesystem inside) - Fixes: -- Fix resizing image mounted inside mnt namespace -- ploop_get_devs: fix NULL pointer dereference -- copy_delta(): avoid double-free -- fix infinite loop in ploop balloon discard -- Fix compile with gcc-5.3.0 -- ploop_mount_fs: don't mount ro when finding balloon inode -- Remove temp mount point after ploop resize -- Repair DiskDescriptot.xml on process PLOOP_MNTN_MERGE stage - Improvements: -- make_fs(): drop lazy_journal_init -- scripts/umount.ploop: rm unused var -- do_delete_snapshot(): don't use PLOOP_MERGE_WITH_CHILD -- ploop_merge_snapshot_by_guid(): remove merge_mode -- balloon.c: no need to include libgen.h -- defrag_complete: fix a typo -- defrag_complete(): report errors -- defrag_complete(): check for cmdline -- defrag_complete(): report stale pidfile -- gensym.sh: busybox sed compatibility -- musl (Alpine Linux) compile fixes -- mount_image(): kill flags argument -- do_mntn_merge(): fix the check for same file -- find_image_idx_by_file: get_basedir() only if needed -- discard/defrag: take into account image size change caused by defrag - Documentation: -- ploop balloon discard: document --defrag -- ploop(8): document --defrag - Build system: -- setver.sh: fix a typo- Fixes: -- if mke2fs fails, retry it without -Elazy_journal_init (#OVZ-6539)- New functionality: -- ploop init: add --nolazy -- ploop snapshot-merge: add -U -- ploop_create_param: add flags, define NOLAZY flag -- do_ioctl(): run lsof on EBUSY -- Add pkg-config support - Fixes: -- Fix restore-descriptor for raw images -- ploop_get_top_delta_fname(): use ploop_lock(), return SYSEXIT_* -- Fix POWER compilation -- ploop_create_image(): do not return -1, use SYSEXIT_* code -- ploop snapshot-switch: fix SIGSEGV parsing cmdline -- is_xml_fname(): fix a potential SIGSEGV - Improvements: -- do_ioctl(): implement exponential wait time -- mount.ploop: check if mtab is not symlink -- ploop_replace_image: use mkstemp() not mktemp() -- print_sys_block_ploop(): more compact output -- ploop_umount_image(): simplify unlock on return -- make_fs(): don't hardcode argv index -- read_diskdescriptor(): remove -- tools/Makefile: fix LDLIBS to avoid overlinking - Documentation: -- ploop(8): document --nolazy flag for ploop init -- ploop(8): document -U for ploop snapshot-merge -- include/libploop.h: document mount and snapshot switch params - Build system: -- Makefiles: move -lpthread to the proper place -- ploop.spec: fix a date in %changelog -- ploop.spec: no %attr for symlink- Fix online top delta merge/delete (#3215) - Fix messages and use-after-free in ploop_merge_snapshot_by_guid() - ploop(8): document SYSEXIT_NOSNAP - ploop.spec: complete 1.13 changelog- New functionality: -- snapshot-merge: add -n, merge to new delta ability -- Logging to PLOOP_LOG_FILE (if variable is defined during compilation) -- ploop restore-descriptor: create dd.xml by image (single image only) -- ploop replace: add -k, --keep-name to keep the replaced delta file name -- ploop replace: implement offline replace -- snapshot-delete: introduce specific SYSEXIT_NOSNAP error -- Alternative (incompatible) implementation of ploop copy (C and Python API) - Fixes: -- ploop_replace_image(): fix wrt level -- ploop grow: update size in DiskDescriptor.xml after growing -- normalize_image_name(): fix for a corner case -- ploop_replace_image(): always unlock dd.xml -- {mount,umount}.ploop: fixes for filenames with spaces, tabs etc. -- umount.ploop: fix mtab removal (#3164) -- umount.ploop: fix for file names with a semicolon -- scripts/mount.ploop: don't hardcode paths to modprobe and readlink -- ploop_umount(): don't return -1, use SYSEXIT_* -- ploop_merge_snapshot_by_guid(): fix error message, don't print (null) -- ploop tsnapshot(): fix usage -- grow_lower_delta(): fix a memory leak -- ploop_merge_snapshot_by_guid(): fix error message -- check_snapshot_mount(): add is_device_inuse() check - Improvements: -- print_sys_block_ploop(): print less info -- Remove delta_fops abstraction layer -- ploop merge: obsolete/disable form with DD.xml (use snapshot-merge) -- ploop snapshot-merge: fix/improve message about merged deltas -- find_level_by_delta(): rework/improve -- ploop_switch_snapshot(): rm non-const cast -- local_delta_open(): make first arg const -- [style] ploop_replace_image: reuse oldfile var -- merge_image(): document the function -- ploop_di_merge_image(): remove last argument -- Rename get_child_by_uuid() to find_child_by_guid() -- ploop_merge_snapshot_by_guid(): untangle MERGE_WITH_{PARENT,CHILD} mess -- ploop_merge_snapshot_by_guid: fix ending message -- Rework check_snapshot_mount() -- ploop_di_merge_image: fix error messages -- ploop_merge_snapshot_by_guid(): fix error message - Documentation: -- ploop tool: usage formatting fixes -- ploop(8): expand description of snapshot-merge -- ploop(8): describe replace -k, --keep-name option -- ploop(8): describe restore-descriptor command -- ploop(8): describe snapshot-merge -n option - Build system: -- ploop.spec: no perms for symlink -- Makefile.inc: add VERSION and RELEASE vars to specify package version -- setver.sh: modify to use VERSION/RELEASE from Makefile.inc -- setver.sh: add -o, --oldpackage flag- 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 versiontbuild-rhel5-32.eng.sw.ru 1461982200-----1.15-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 RRRRRR W)A]a2x%̞system_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?{ xSUib)P:Jx(W H'&59i2i2!cu`qpd\傢T`:2>0Z5Uʻjw9= tk^ZpkAaWdXP0P\pEc G;$UJlu$m4*WtW{neTg|bZ%pE_dN8O^ +$odۍe%er.[P:oR o g:kwԊjϞEcSZ>wt-]:w>o)7OQ2{]rrSMɗ[~b11svI1Z.OU>eaQ^Rfu}r̅9Ь0UM/V_| u%1r8H8 & +Eds|#5bȪ M 0R3)G,ۥ|hB@%uo" aFLRJg8Iǔ'pTٕan"G;y%u*u2z˓eTZ2m"W`=n'XSDf5<4M[dɶDA"&BU~r*'=ƤNE,"^aCP.ɧj#`xbtfܕ멄2je14A1|KW 6+d.Qpqx넹̃*`MEݗO,t4f 81/F΁Yu)ؙ2&EY-ku K`&U Xα.D+u([k%lYFFZ1j3#0;7?VG]8(g0 @h7S9WZQ*ot'TOF7ILN '˓%WʼsU_VEqbZS#yEF娛gx/U?HnHN&%FVKV )קY2t^WrGvsOuVOUZ 'ҁ,E%ު'Tkh |9+1`b3j~9wthRlIfȥfuCTk? QO -0 tnhX31-n a_\Xֳ")V3TX떋h01n8}ZJ2W@.V]IIhX#ݨ LeeF[qj1y?Vu|q B~U޿N> b< ߿!橮ƠqX!uI娙Zxqu:&4FE =pHcG3Վg .8W-ꕓĬ=CS:'I {U={1 =?:.)QLsB|YoZǵeaxy'5ǖ{fx3L\pWrSO  VW'0}֗Zv~Y}OUx/\" $zvT0^pIq;%YfX9e @/IqWz9>1 s9K&,[L\:"_ O{WY B4Qu ?*|(]<_1U3lw-d{>K?B̛%Ҝp͠!coT@o>68Pn8GO-|8+Sf߬,{ȩk;G8tjrY+='[>7O;zqȋF-/1cOpKQٓWUW:t7mNԙ-0px2?w|T|W[|NC<|,R~+?q뛯[_sU^߮DWs~on?Ã8qxQ?a0Wa? 8,,o&?ӏs_ӫ䰗{c-9~8l=kp秞& _9<7pz3<Ïq~{S3ZoB>kPCEvɜe|OW_?pN!_VMw]q8?+N2]?$) }.x?'@`LjB&Az(ַ i/ᳫTw#[0%x׷8kհHov&1녗!MJaQ_q1:~~zjHx_w%aO*_l\?zXN LN c,<gH{[ 7utjڅ5;P KUm)Vb;k-*.']rA+c5>٣Y]lNO⬆^`~#H>IW#T+6s(-v;8^\U?aTQ[H^ǫmAouX*9->1^- <h\6Ip,Ь-U~]Gv6vn _Y ۮ r 8gQ-C#YKsPG߸ @Ϟz8my`TVVjj5:n8SS 2^g5Q$9Yp'QI(?KըdR$8Ejsvg]&^>Q>hmr,8JcMP<9=SЙ+$lMkC0do,K!^N ,D0v՗ LS^5xX8N/"m5Y嶺 C гOwRpIn$*T!qe 93:&& < QƗ;B@:)$[w;6idu^"!V,R  C@(Ym6IOVPz*_'E[-J)7wAHTm>?zSAE9j,rnH):hY}㭶*"^"œ'c9f.rd+Q2{tKѨ1S4I^=h3I[ |-YO?%'RדHhzYuݠ瓍I/~'KeFǽ})=d9}Op +9LGp?ZOp&}qi}fLE"%>I*`G GsE8z+pqJF8shz G8W8Z5Gh\pqe-Po&a= c8^Plq lq 7B}c68$q'7C#4{q:9>,8c9#4z8\A W;?z ǑS'8|l ` 0X=/`d8#4 Y88"8 u##4q/#qơGh8'qFy P0Y8BCR#4fe8"gqƻGh8B,x'ǻ8qʕ8q,x7G(8?`qf8 8.DCӢuoNKtQ!؁ n Z 2X` y [ uRl)pƈ1ȑ!\C0F%|`$_ƈB0F1 E1d(I0F_1d|븄0F@(% ƈH~12H~1B-O0F O0F'#WN,7c$H~1$?r O0FJ.GI~1`|俈O[d|p3Jp M!#Dp+!8JGv?ewBY?w "#I0f_1+B3@H^KIn" $?FJDJ~'3'3'3LL>@M>HMn! 'c$?`|r'˜ecc&o L (Dx+!eMc#D0fL1s!3< 1ʳ.#3\1#V@0fXa`̴p& dw|KO' ^G' n"'?F' ~OOO ٟ'x ٟ'x+ٟX_~,t4pl<2Êa65=0?n| ,^g!+JjIh{6L/o(HM[^L,~j ߶ȋJR4'=SYADu}H )װx鞈2TFNzf?@8}PeIg7qe6д-lD~8-0~Z2 &2Z Z_xܑ׆>_h9c s5w ow؛:2$ _c sFYP{"]9~}/ qZ9^37ǟǾ2x*^xyF_r{{/WT^K+㟍78?}? x*98mU7W8*ϊ/9/o?vJ= CYӾtUTrqGa3"a&8;ƒb6ї/@wv+JZ+w:mP"9 \!q^0i57]B v#-6#ΓlVe:;n:=/'G+>Mi| A{xvo.MIn4x6]MBBl?.Pu1. >np`)A꾇+Kz0V$HZAӿSafDi+xGGe:kAAO7d03=bz/a/3V!-ϴFhe2Ɏ7 I]D&3md|̘}9Br2๡Cfj%^vJX ]}g0_~j槬o0>GC_>ƢS"Xa 1~ ~ 0fvGkS,st;8ڢ,NYu)g L?`vZjZxN^OC|dj\[7n(7wi naI')׊ oC P?!QT`2 W%j9}IpZ w쐊Ez¨oja/q@y+)sm3KIH+jGƮxBW%^G",m %O3xU37 >`(>y''+Y2mDMFœ^"w&^#Bi>v^ p?vROG"/fEr5RO-;OfZ蜀 mD(|7w9DV]Nף$l9 Ύ"e$Mp_~Tr @nET*//U zȺ8˸Hh/& ؜  ,z,5+Զ~Dsx;wC0Nrɦp7Cu/XK,\|%K2a"}3Г"_6Wuo,j|dR`,CU5yf܅IIL՚N?c>tAP03B3w".zn63927~@jb-{*;ld8=} LEiK mrj] `hE?,34_r T[\MA|7, 1v-1#>A3݉eItSo:J3٨`6Ld]֍SLX4Bm)I yGޞhe}n-p*|\>XO{{@Cc t#w" ]Cd1vStGaCn v[SM4(FC$_lEMT5ևn#ͅ@2'Nl;]13tɵMpT=l8}v5Q}G/$F?TO'֎zҘX[q#P=)6u* ˪MVGs*gٗ6Y-*N2E <lDn}jÆ_D"+O"ïh;LCLA%V],1۬+2tO ]?1^-ώo5+޵E6CԋRc`{sxYnOgEg:\6.Ô5es}QQ_no4Q>CQREy$/<\ (2ޛETm'njSc=L+)qICEfIan+.|e%KBaVJ=wW0iضNPKA巗wPFVwHXO*/r;YgX'mGu+;^cFQ?P-x -Gm.3HHr!~w }0۽^ݷ/ϓ*ݝr!|boxԝD3hFXzZ'u)G1Nlj$<⋇K[~[`cji"w^gF?5ɟadSd]!7qX JHUDH$c=q ]F0=>ſI~ 5='~M}S殔Gh>CdjįGU<1 H3+w^ۍIjBd?U"} ſLoU9h=`ïoؗ=}áz#ޥ9Ja >ЭfHؙD?7xԸ륕aQu݋j22}m,B):(!LFfi3WN'pr3ڹ๙j?{;vv'GQhڂ_ g%?$IJ/^>Idd3WrWՃ-D9y_]W D#Kъ)gGYk;]b+wN.i Vp @yg.Wn(o-0wG,{]WPwufqy]H0"fSrXrA7LpiFWz=ㄆ/c+y] ֮A2EϦRk5 kw^2 d Q2wqR J#\q*H1T<80|,1cNn-CZAc!°Ȇ%ص%`Q6zD ns AV=Bcxwh K9c/x") \B(í9XR⥏ X`cig5.q-G )WAcƪ`  P;xT`'X<`7=:`=5=[Q݆Ş`==☿uXWyД8ho =kxUH4` h2BB(4k+ $݁|ytI`GƬ;s[oO͈@^$D2NɸQey${:Cgmԣ=q={Ͻgd_=K(a#Ȥ0}_ j f8~'g 1 o28&gDo`.UN2nrgqf9s W/HZG7gwL UG q:|mu zZi[Cw6'۶Umut)tzx_BiSsSjnZP;%(^?Us\)(A‡We o߈qvbJk88 ic6w2~0}U힛Lrya~cj;S̭3|P8<FkwchԱɳ0'a]!@+s7C혹inEJ4ad@%>K-G-c=GF6h~ѓXʩ_|3ө9āg-/#P7a|JYY( G֍-aF3f7yG@SٰӋzhgX#3,E't~:˷:k'm#8 ˪ѿs;5\tθi|iO48%bb-QkW_KȖ  *Wb"ŎI\H_r١WAUS!qo9Z-YD?Z"f}byQksSSCc[=K?ڲbX\Mm}`UQTq]|?M'!zV7k-s &( Uy ҖM~pDzO,ĜQUdy=CDpK֪S|P#OIտgs5 '74:{ ˽P~ ԇm!nQNv39/ %sTgQFۻ{o}Mc|BIn9a~|D~$=xtEs KEr++^Wag;pkr9CNg6"?LahPi?^xKc:AB~b?0Az?a7ʋպX/ qoOiQx_$0rpBRʋA?jMKȊ4fG)0c_ůktU%+CwȃMh5zpNF*VHoi΁ /rqX'\/U>v2`c Ǎ=#Ц!ka((CC1&,mكGuL-I.`>o%S z4&bO^-89p b+\Uܑ>t =^g'ѡ] 3d n/Z7\ᷛO'PIz~@}} wL2y,& w'M 3xPg^&"\俿*xL9ih"ಡKH+8O>{숕Y:dk?#$*J^l]aM3\] ϱ~ ;'-&({KQ''&E^U873_?S䅋 n M,wQ.C?fNrUsLhٿqhNs;&+OSj?;I[ @!nFQZ.r?齽haw:zPBb%hsX8qdJ+ywhnc%?r[ֲ+u 7[ rZ1BBMw&ZG9W]?iK| i}Wu~g9|}zwE؊D *Pm{?G~,Tn:Nӿ g^&޺x%y[Ͼ̀s߭穐cOCĢѣ^2$WzHػ/w*k͇g$chz &IffBۯQ!٣?5uq/LT-u]~%Vz׼&n䕾TF&߽mŭ 9zz)Q iO%:8b#ɢBx}m 6gL- [Sv̲o(k &>ͮ4.H>˺=с3ۯyW] >wD]H?)wLYgtP}pk4= %6 ;4v(30fAN+پx~aHކ_f]nҸ_]unږ[9ajRo4up3BDC"RT?E!{; U̟Py'.r€CBa[zB>m{ WcaMeJ|><*"GԅR /[ێ8Ңg|oS "I?C/"Kuwyc8Uk%rA_K1X\v8P&PYղڜ[SD6e{[Q <Q%v5";;R/s>7Ƶԟ֋viċFG$k>?%J(R@ʝaQd;Ւ75KBڢ+sXY(^y$d?rEO۰4?7l ~.7ܵߛ@b² Ix:/P-+Z0?N =/RQc"bSs6B,zkg`a )qx|0@-PQ&2CvN{!Tu;e<ݺ6(A1l >Z2iqb|WҮGwж IQ>hUVZ~u4O/XGskIw:=o>QRs5qz GmNɌriDEPDN)ӏhʃmIVrݱ`:>e#:@B; ]S@C<44`r[HWN%C]M\43d:-[wCmt0?8rXϾ|H̙&d;GF(62Ν'0ΫM%ԳWULopxTb+uX|r{n֞cy-^{¾n:-|ki)=.)wYffg{O%VV.TW-RYvRlow6ζbqV$\fzga#7c~c]J Ô̄BزB)Ŀ[mn{TnYTB:PU̳Ժk]t;6}®@Zh%qV,x8oYÅE9+,[r9>ye-)17_Yi,c*a"ůUڈ+Z,@|_cYtE?U{9w>&8Mtd$kY -#jSa1^8oB1^C]ұ$X8{( W.}RrJ3#N l]!-Y IW r^RZS(sˈ/"dK$a@FIm tDDL'aE1DUY{ D=%>3S5= p4nO)nZCH+R#Re=&yUVRHۇn9\*f 5j)U>~qKqYZ'O*.[!ynԗ( VPsʒ\}jzt =X3H`2 RBŀ|wq%%8 [`sGѠ$ IQV%l:'|>' Mf鏝hŮtģ^tZ։;6H䕅y˖6]q:ES# T `s|K]敖?L9 :K+S7Ha&bz`Sr:./ 7g(aRei<߻q #8ix(UYƒD 93"K]a?Ĉy/V:/֮<|a胕V..+XlHU,; x\Gq<*&mEڕ%| =ZDiP~2WTJ06VѴ$ 7JP *9_mW=LZh1(fA3O#gщlCR0C C1YRQUm埇.(qÕ1H5v]c5v]c5v]c5v]]}pǕoIx$ pGnChI#oT>!PˮvWUvvNGX Xۗ$N )I|;SpC)r\8~;9 ?y_Lwϛ~==/jz[ƙ <^]&%M=DM_? {Ru4}x㨦=鷜P亯(||PvzM^Y t?:(,W;GO`(~ۢp3gvOs]!OpNݞ9ў`e]sgFwnZtj#Qs *9U]JAElQ_kL*[+J.S};Gu4&X7ej͉=?ZrO\J8H~>V`dc$INp<&4''ǂ-ld؝Qh|J%n)x}gT0tTr(q8ۗ+RiNMU9O-3nuOSE7P!h|tzXaNH\((繂0.@2Ncƭ=YT8"12ZsYz8Qk]F*˲?/fؑW'מ׋F"Pz0>w$D`e9ZD>G9:R"?q;Dؗ}Q+'5%iaӧ4y3mo1B{ԛy7u) j= 7:Q_|iXK"\2t5䆇R=eMIoW5 JVw/kU1Z {nAye+48n x"*_?i_6o__$S I D,dm4/Xv5Z8JYֽ߳f(tN4皵ΕI'<K %Blk$zBXU7 ZDazzɨu=xV׽F+V7Avެ~_ -<t³ xړ }tJApi t7h3qNq0h̓Iw>tt$9sGV2!wm=  h~4w%QʇMsA4߅&v#==i4i}4 B9@M t Nρ{ky4u546s[4^ʣ(?h+iv7zqЅ~A)t1WA+O!Od<ޒ*t.it8tk:+OȤUPn_-s.K]/Lr٧ohCӅXNUҲԻ~)tIv[z:#{Fٷ>ȻmNJρ93[}=K?3-~«БimWB;mbxNm׊C_-ye] zq#A>(\uwA-e_~!|-|@YG~2[[џ盡0f4mtxǣ2 ȗҳlE>MQ^g41%;UrCy|BԱ(#qh;UE 9FЈKO͏kȏ꾨>` XlvCap 8 \.Oh Kz`+ ǀSY"px:,V끭.`8 NgebuX[]p8@S>` XlvCap 8 \.C>` XlvCapjꗿ'߱op|G隱m{xciMې[QVVٖ10ɘ=_}(8dOcyP_g#}te5>?K/OǕje /lӫƍc5QOghKo el zUkңՙlN%guM6^㹒~SxR%֣6mVTUwȦzk&W^z0ދ\'e|?Ao}cKg#zK~`ir#8z~'=9 cv Џ<_~p7ſo ҄WKc$k3qvwGY̍D'vu䝕5ҳP0 n)')'ºɄM'g,[díg%Ywf6(}Ѳ{sp -o~ }vߤk?Cc:Ηl8+N7.s.6|vh{?Oyj?v~۾|-}ت=#oZ_]c|jo4ۯ?C^{Oۇ ^ypRנs-Q2y[a+xC0f2=̯gXg2reSZN /Ώ}3fS71߅;!]އ8?|g0̏揉$&~/{s4wH{|W+S4ס6SeWϕpuGhB>0oMOҧq>*T5/B%zZͣ /P~ϪgO ?R`!J7" (u4˃\pd疓4k n@KAԴ;@it40(  Ju_ToWPaA'jƓd:BS1 3GRbfG$gGD'&/Bdif@љGef+8ܷB4<2 a;c_`p\<2$06jPB~ydNbGE<2)#i5dYqggiqgyd^\aG!yT3? ạB<*E9;RG*8.#r%Oﲝamn()kl*YEx;(S* )ŹU~3pESY Zw/ۓߚFyDMa2uOILFbZ3&F0Rewl`;opr6v sr@kj׌ɂNyJ!l+EJ|1ÓL?#߅&n ~e{nx -3"j >/#:54sI&^˛ ?!THb؁×o įj|E[ cKRlT*ůHō] SeY7l5џ,@D|3u\,v?zԦY^@q䦫yFb {)D9hF^"t!kȐCuwC qhv²e36LL1`и4e8viH&1PF\u@wFFx!^-tBy*#Uw_7U|F- z Am2sbij2ߛvǓo=/cO>$a.<8>4?+}þENUpʗeGZpzT{ L&ѩ|y90*5'5N܄34$ZˇOmN!EROgmt8[v|9~F/d]ʥK,~83Ad{ pӪ] +ǑG>.i@ Pʢ 1 ~ݫ@֫uq[ɮ9ٺҦ /K̷XQZbUgO zJ5̛eP '_/'vz%NϨ(iǎO#t]}lEmǕPM ֤, @ wWr*.!%E&@!PG(=$ ޛٻ-Qh2{ӝݙ7ofvENC_8Af" w®`S+sI8G]pg{(=lB/(-xPWi. 7ipE%Z-  ^dNCYtzkVrtzޅ!7/?H\{ZTI^Bm~c%l͐^ٚ) Wd듒pUNk" v|lHρ/43RgX)pN8 fXSĉw;j ރ-שqVZ8Y7ߴ9fiGqYQ7{|ۄA{JiI= -88xu~cLNJW,d`7LZfsB?Htnzݼ@Z#f6?4߻AQ@Q>/oM! c-w&u_$HSC5܈{]O\́dS&_>s YW GT7D0-U.j MJ~Jc~߰:կ?8 w>O=c57;xSI'??g?}.?:u ?#'CkLISZ0ID{=pw05+,創yvESf@J)vr;8fTaAy2kĪ(OX^gq:j)LjtPxKju!jR VuYQB[JnD`s:V4Hxh̫ڇJCQ_~~s~;42ݛզuTWQG-TuD AlDTB-U;`n2oSTO QQ-P&SmVQfwz% <:[ uȁQ@8p-56xf.͞oel(D0|FwaܫM,g5.09Hw ~H!BEćچ@ ~C=R_ouVӏa#A?2j ʼn6y|Teϙ]\\VV;9w²<{^<)N}`ЌWbtۜ"} cjx^ |X}Vtcv:%;YtUg .!1F9Z.Dhp"r C=@OAV&&8)"8I|!JX#:Q6o/ݰH]%Qڑ[ր}g`=iY1F`:%]1]v4mȁO&I7̭xEpϏf3ۤlr[ lnxa(m$(S)\ )~m4}y!yHӪ墢,xH1) \VrCN{ A_ݰ, A(?J c\ږXtUUtщY'zt)ʰ=9 tieB> i 1>61 >?~T4?P`]]rcG:1keb9~zmƘ^9b~zƘtbHQo9Ctm#sR[Rhc|q∛$8r)>-G1.q/~$dH) 7F} A D@o @JAVA649r H/Hx냵/Spg[(c۶tmulNm۶͎;6:<;߾U}}Xj|Y5XOs(o~ך֟+[gW?Tw3>'N?<'wG{r'W;X?|o;7v-G_ٝ~ړƿ3|6i_q<AA??NeN?ٝ~B?O#?ρy_q?g.ٝNY7ɄN;5w0fַ|87! k>cޱ2NwHMMkl; 5"i @xV.Kj_=u[_-m5c[G *_yGz_=Wpg6cŮ ! [*z暖˻tY>hfXy3I<5X\}[kڋ x.g'Xj^N6_KWq=zdo*@%4wYǯcGn"*K| F]c穏9*GHH^Ջ2Ӑ Xַ[.b '-)K)wmٚby1 ʓ&1AUew/RqVCV"Te$c4t]%X7%O8v 5,QG7dt -6k/M]KY;w۳#Z$,:C87DFF[Cv5'Xjl kP,7Q ,a_Ujw?.ϵZҷ\s"DzOO.ABVyi}џ׷0W;u7B ' @$ؓnGqm!>I|bm)N`8Mx<N+T E$}5_ S1 HL3 )3D!,*2Oثc6?-70FU1H$oKө1yLHsVdEŶ aIFKI CI>,ђ#XP[}1DJG}3B#cn?ݹA!;u;_PD` {R4@ @{n16&AE-.S=2}e3x՝E[!U6Dp2tz+!(V2yԗyetl`P xDx( լ>gM#\3`U\Ү?Jѓ!3rcB날%n΀JNtj>㑠|wNd_u5e(|;/2h>`Tiz(E׃B7gvvvtFUQpF $2 @)b*-m$y(<JCf{{㍠4[J8BHX#y;vnKzLfcIMpV{3Sty$V -p7ғΐsr 7GoΥ] GJsLXd#d3ulS\~ow[rPJ  KSq-D b#|b@7羂c5#㻠Nɯp$]FǂwXkPlbHn$PGr N>ԇ9 #"!F$4##qY&k0-|i#|$E'VZpie/2ޓ%?KF RwWJV@;}z$Pt?;l.g9[em#P&gr5#DCm'di@oӣ'\jY{qΙ3n<Ԭ /5%o2EILi_`OkF+2 QбS'D)Ѝ!\aE%8TDs`EwqK5:)<AqU7(LS`K^ *(bmdhpNr{=Gպ#Mb$œ=a0Y8<#M4b[ttrA܋xOҮB:| ׆r. 5.+j;pi} =%#<" uezi@l\?FЗ7Mª#edTRU/`YƮ%F!rQGxQQU+EHo12@xC𸖠Fԥ~QҒ=Qe]vo/y>Tf'ϯ@FQaVo\K9#?J¡)cR1"%}LڑC؉e>kp#Ntʾ%5n`7"6NwaXJba*?cǍZ/IL{nmo>Bx-qK/TY'3Gfz")&L [H1$˚p%a=f'N*&rAx~\G?U<"D45ξwNdAgXܱFjjAv-Ih,%Y-:ћ\daSo}?x)tX\e6Pf;G׌k|rwX>S6s%S%|G=U,."u Awpެz!|++N8ٞ"8_1R]ks9k6b.a_st{uZbS|rwѺd|8um6edYi8<5`LݬFś2j F%G*`ʂV~֤&Tа|`)^eLɍ?xQNV;] e)y0O61mK;OKF:OO -h4(Sp*ZD 5SϭW i#Cz*'(n 3_jAnUEǮZ٢蒁v^_~@#GJ-uR vj%2>.I"=zGq~<e BJQ͒C4vit5l5O7ЩfdcJ'zmQɨynyo -4A6'-(IH.(v*.ZGaim&z2ag=m"—NvP$*Ε9 z sWS!&ĎS;W[<'y)k!ͩDPj&OZjW{I$OjaJ܀ $ҷ)cNiuE.C 1ƶW-{yC%&jc׬%?(wѰ|,1aWAl:+3pacDj B83e ҰgK񰈨$kҐ yOhh^rUڬVа [cmeL)wpGЍYNI :>hTU"Kpӓ jai,ܶ+vMl B;|`x\Og$5h22ggIM[O2Փ9Qx10ۈthLѓͽuKGk W  uTaz%m@}͌@Uʻ-"*3ĘUͬ UOۄ7*tY 0xYw$Ak0 ۺ֒I)n.%lM1{ޗ&:V]=Ǥ4t+o3R!toGmV+$\ې|~`$´WX|.lq'!|K+K;} ~Weߧs@Z14M'7ը6%r'`6~DA j#3h ,Vb<;(%h"j!E>i$*WzJT#%fDKur)f MGs[!^6gD\|ϱ&!k%ZmS,ݒw8NuݺH;4!8-g7q! 3D{1d4seC5DV`*WM:S 3IBcϯ`֦OknHGlcb<}A eݪ_:l?x\V*~9cWY\ \R.j)/hy Tغ?+LϽo(8uQ)$bű ?!+l ,w}jZdX}9ɇ`/Dm4ww+9ٛ L& ^|ˌ0:70h %v?E[GQ _- h9w-44k\#76r3ǜ u )5;ZؚNm=YNX⧣mPxgMɀuo"*q;͆Gk|;x%K Q8eL-XZ/ kNlkba#aYچkr|MR$j6u,Ly[kATHήzW- .W !<NڌSQ%w^x.o_ׂA@Ǐ, !,qaN8I8KL(@E?fjcm/JÌUN<2@PѲ 7}ر]wR0~\y_=RB6OGhneMG=}F0fQB0H@QޠC<[zy/k"~z\|hj g[~('|;3eXYnYr;Ix͑8ЖG4 G?7AҬ@Lx)..uC'tBmQLܔ_h ܮс106lh(ӹї˷litɻb6KX \$r-Nd"f"7L nqlF++P<@-orN,_an * ,x{X/; Ϗmmx}.NIsNTZX;JM{A=k<{mg.\v붽~WvQ3pg^{Cݬtƙ㡧@=zܷsFphWd Oۿp/{fe#[G뭾ޛ?CNK;,#bLZ*θtEV7'^{XwٟoݫU٥^'/Qys}}z_nYyHkĪCI0FHk"hI