spfs-debugsource-0.09.0012-1.vz8 >    `A  }Dͭ*'p=f"VIZkPRg? z6`p@-@j= ^Nh1{zFZȃmJʩ\๾EFT7JB tGșֿ_gd35d779b2aaa74631ebe05e89c8fb1f7487f0fc1ce9571f294c38775b5f5cf7e76bbdeebf58cea8adcbdabe895092802afc88cbc܈`A  }Dͭ*^s 3ã$>)6[Yz9tg5yբ3_Hڈ맑=_5 Nkҕ0oHR](K#%OK4w6d2V49+[̯t>p9?d # B  HZCC &C C C ;C CCC*HCT(8S9dS:.SGpCH|CICXY\C]C^ubdeflt Cu,Cv8X\bCspfs-debugsource0.09.00121.vz8Debug sources for package spfsThis package provides debug sources for package spfs. Debug sources are useful when developing applications that use this package or when debugging this package.`Abuilder8.eng.sw.ruVirtuozzoVirtuozzoGPLv3Virtuozzo (http://www.virtuozzo.com/support/)Development/Debughttps://git.sw.ru/projects/VZS/repos/spfs/linuxx86_64*, cG; S$'k$V<c e0gN 0r QT4*CKi~J)h.*>C  >) OAA큤A큤A큤A큤A큤`A`A`Aj`A`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`A`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`A`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`A`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj`Aj017233f3231f33a5688ee304da7c9e735157c93794118de3ffe9b45993283d11996e047b7490bfd1c0d024813368148227d5eb9a379cc549958a7bf236327ecef8d9d9bacdce54e3adb44209c5152df1182466e7359af24b2ec7f4ae5f3b24f8412180f26f7fbe9bc21c1de0424df57b7f3c220a2f5e7c08dcab889d09fa001dd4c47078d3267be19f02b716433190efc7ef4f8c34c22097d4449f05c9f98a0edd7704e7a3541a9c132ddd71c2fabeef6d81967c34a5a9f4107cf2219b63dca1ea48b4f5177d31991b5c4b815eeea04d8296aaec83c74eb634a218b6ca2d7723d412ac14440413d5887a50c47d530a3b1c47d1d603bc96df86d78a67ccdfaae7add47e3af4cb2762471cc80beac3b57695ea1a6d274d9509278555c9e334aa55d9e973ed80919cbb3a97190ba668605b1b45b2ada79198c5cf2bdb6b9753ae528c228eb06b8ed2ad1b128096971dac5bee01b016613d875a87695ee6c9dd60acfc953d72db043b3989b9eaaf9136d651fc79af286a8b4f4a9b894b84a465614497b595374d64789279cc13ac7d22fa1c37824c02daf288a3c00a86b6268b0ce11d05630b19e3515a49f04436fac8bea39180711b053d9ed3df6b8c4ce17f82d4797d7ec7171fb3c893aa1c2b6f2ff4e2adaf55520cd02c0047167a6ca0b408db62cd2e2fddcfa70c1a9e98c0d8e8b5fb9ac2ceeb918fa73e144a2b58b630554624ff43df5119817804c01428717a09819827f3f4df322433e5a733817a7ffb71545633d3d86859dcbae6ba9e451080131162c891031e322e58e7c965ee2a7c1d7fd6b6f30ee8df1dbca41003524853b6a04957f5747ce7f0cc6334331653a8418fdaf1b95059293e6e19dec49b98608767fa7692b2ed9034b3448e15c3e0ef27633aa42955afe136dba0bd064f7c10295d755d817bd905be5026b11d7207c718f1d909acdb6e6785e55e5ab019ba0e231f64b31ff259e46ee14176c0d3a3a54bf88122a8e49f440b7128edd138e92db7245ea96face46c5a75ebab8d25b3939cf95bfab10127f664cde9fbedd801d360a3ad0e9f4081fb8419da18833c29c3e764db229b11ad6713cfae2a977d45cf1c83245033f55859f503151a3b884a9e419deab0eda6577e543a742f8df36bfe53eb82cb9a1629ec2d5a48a0aec57ad1faea43d892fd130496c1aa5b28339388d84a9f89a1b7e1aa204ed79d1435d510c586f6f84b657e62b3104307a3097310947c8b95e33ea8dc4dd749e1a1a9cdd351184e859d5b7440ecc65563ae7f940a2f3ba49d627507c5f46fc5cbb34075109759b66803239d864b8734254bf39fb941a81562b8ff4006b5c5306439ae61691e088b9a10de221c79bb4ae191c9bd0dce707ba4d46c15300036784bfba54603eb241b461f722336cd684d208ad6540dc53585e27e0e98c8085b8a05aae3c4eb270fdd896481c4e9a01234eccf667b3303dda681beb290d67e8448c20050eba868ea60a8d0945493c01acb5b8f2d94d4bd4990e2a1582925bb1b7da0f2ffd26dea1acdec6014a70e9fb34b58ba64c88ed964cf08d1f5ad831fffbb284f3c8617a3c49662966f2d59fbe648d9d391a7df26a32b3ef051fe88c7a553911cf437c2daf8740d170821a698b15c423b7d30d46345613d502e82143bda2ccd29ba37b6be3c52d0056eb3d078595e5721a1e3d7c0ebc61e0fc22d5168b3cc1891666d0935cd443fb34d4b0833f54cba556003ae8e2c547a111b8bdbfe7260b6db862b07d940344b35c7f4877625b2fd8bfd0d5c56bb7784d1de809db3f10165747d058419426465435c475ba3f734849fe78b0d7bf38c6e074e7395278cd9696d0a3222da41162cd20aedc8fc3a9bdbdc36e4490d91e40904608f20856dbabfbee158edbe5f32523a8be44fbb2af74b28d602e23ec28e1c703e871e6893ee61271e1df12d381abb87952ea8b61e30fb9475a33456c1fae12f3e1f3a96cff087ed0306bfd844a85a026bb654039bd6af0f9e5e91cfd812a929693ba2975c72fffb4901d0a080e2325f948e179616c0f0b940d7962f5f5788fefa88501f14312862d50ce436ba2f30fa66b934de8279433bfc77508f90b48e7ec3d18dacc28c4ba748c990ce73e02af6910684f2a7d6f7e22fcebc6dbea01575414bdc22c1cd6af2ed96362c1f8ac32b0472a60ce573f96a8e8cf80c193b4441dcf36047f54f5a6a73d517330c619a5ae14b377dd31e4a6e079c6e207624fcef7a332bf1062789cb20a0f8ea3284b53db9910fbb7a9cd3fffebee73e71e0e74069ff7c05ee7aab4a29ff9dc44e08ee500cb2b5da5b20626fe41d786e609a37b82d3f8d87f715fa255bebaa4ce2791d736df77355f899a9a9874ce6ed33b2e40cda013736183fec3465248b84bdf1983b6ee01285dd57bd0fbdf65ccadae017b86330575188e11b45b637c32163fab9f8011687c151138b0936a0094e52e2d20a8fd0acf4aa6ee7a1a1f463d47ceb587e30a5eb92b2583aae638061de50c17c1fd669c779f662f909afce95fb40447a7cf1d6ff7502db6e3679bec4eb3019cf80799369a66372d2587d179c8d4606aa99230325c96d244dc7d32625caa9acc651247609a70f1b0d184c96899b135f2250708275b64ba1c0392c18dc5f31692aefab0fe712ff55b004a47235bfd409f4eb55692398a1cdc7c1cb565f496f9096242b0b011b03aa7dd040075583c8fbc53db7484fe2e31d090bac76b8f33dfe3ff3954c6c36b3bc3882527a129crootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootspfs-0.09.0012-1.vz8.src.rpmspfs-debugsourcespfs-debugsource(x86-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3`s^`Zg#Z 0.09.0012VZ Auto Builder 0.09.0011Kirill Tkhai 0.09.0010Stanislav Kinsburskiy 0.09.009Stanislav Kinsburskiy 0.09.008Stanislav Kinsburskiy 0.09.007Stanislav Kinsburskiy 0.09.006Stanislav Kinsburskiy 0.09.005Stanislav Kinsburskiy 0.09.004Stanislav Kinsburskiy 0.09.003Stanislav Kinsburskiy 0.09.002Stanislav Kinsburskiy 0.09.001Stanislav Kinsburskiy 0.09.000Andrey Bondrov 0.08.024-2Stanislav Kinsburskiy 0.08.024Stanislav Kinsburskiy 0.08.023Stanislav Kinsburskiy 0.08.022Stanislav Kinsburskiy 0.08.021Stanislav Kinsburskiy 0.08.020Konstantin Volkov 0.08.019-2Stanislav Kinsburskiy 0.08.019Stanislav Kinsburskiy 0.08.018Stanislav Kinsburskiy 0.08.017Stanislav Kinsburskiy 0.08.016Stanislav Kinsburskiy 0.08.015Stanislav Kinsburskiy 0.08.014Stanislav Kinsburskiy 0.08.013Stanislav Kinsburskiy 0.08.012Stanislav Kinsburskiy 0.08.011Stanislav Kinsburskiy 0.08.010Stanislav Kinsburskiy 0.08.09Stanislav Kinsburskiy 0.08.08Stanislav Kinsburskiy 0.08.07Stanislav Kinsburskiy 0.08.06Stanislav Kinsburskiy 0.08.05Stanislav Kinsburskiy 0.08.04Stanislav Kinsburskiy 0.08.03Stanislav Kinsburskiy 0.08.02Stanislav Kinsburskiy 0.08.01Stanislav Kinsburskiy 0.08.00Stanislav Kinsburskiy 0.07.06Stanislav Kinsburskiy 0.07.05Stanislav Kinsburskiy 0.07.04Stanislav Kinsburskiy 0.07.03Stanislav Kinsburskiy 0.07.02Stanislav Kinsburskiy 0.07.01Stanislav Kinsburskiy 0.07.00Stanislav Kinsburskiy 0.06.19Stanislav Kinsburskiy 0.06.18Stanislav Kinsburskiy 0.06.17Stanislav Kinsburskiy 0.06.16Stanislav Kinsburskiy 0.06.15Stanislav Kinsburskiy 0.06.14Stanislav Kinsburskiy 0.06.13Stanislav Kinsburskiy 0.06.12Stanislav Kinsburskiy 0.06.11Stanislav Kinsburskiy 0.06.10Stanislav Kinsburskiy 0.06.9Stanislav Kinsburskiy 0.06.8Stanislav Kinsburskiy 0.06.7Stanislav Kinsburskiy 0.06.6Stanislav Kinsburskiy 0.06.5Stanislav Kinsburskiy 0.06.4Stanislav Kinsburskiy 0.06.3Stanislav Kinsburskiy 0.06.2Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.0Stanislav Kinsburskiy 0.05.3Stanislav Kinsburskiy 0.05.2Stanislav Kinsburskiy 0.05.1Stanislav Kinsburskiy 0.05.0Stanislav Kinsburskiy 0.04.0Stanislav Kinsburskiy 0.03.2Stanislav Kinsburskiy 0.03.1Konstantin Volkov 0.03.0Stanislav Kinsburskiy 0.02.2Stanislav Kinsburskiy 0.02.1Stanislav Kinsburskiy 0.02.0Stanislav Kinsburskiy 0.01.5Stanislav Kinsburskiy 0.01.4Andrey Bondrov 0.01-2Andrey Bondrov 0.01-1- vz7/vz8: add targets.list to build both spfs versions from same code branch (Pavel Tikhomirov ) (#PSBM-102629) - manager: don't reuse readlink path as buffer (Pavel Tikhomirov ) (#PSBM-102629) - list.h: replace libio.h with stddef.h (Pavel Tikhomirov ) (#PSBM-102629)- PSBM-101521 (Alexander Mikhalitsyn ) (#PSBM-101521)- spfs: Main process wakes and kills its children on exit (#PSBM-80055) - spfs: Handle non-zero exit status in cleanup_spfs_mount()- manager: use join_namespaces() to enter container (#PSBM-79733) - manager: join_namespaces() helper introduced- manager: use mount ID when available for resources matching - manager: pass replace info structure to is_mnt_file() - manager: store mount ID on "replace info" structure - manager: collect SPFS mount ID - manager: extract mnt_id when parsing fdinfo - manager: discover fd link early - manager: improve debugging and add more error messages- manager: move main process to freezer root cgroup- manager: disable readahead for SPFS "restore" mode (#PSBM-73023) - manager: improve debug prints in content copying - manager: improve work mode change prints - manager: add error prints to work mode creation - manager: do not try to detach from unattached process - manager: improve error print on status open fail - fixed issues with inclusion spfs_config.h (Grigoriy Melnikov )- spfs: check system call was interrupted while waiting mode change in Stub mode (#PSBM-72314) - futex: don't print error in case of timeout - manager: mount spfs in interruptible mode- manager: treat refused connection as temporary error on mount attempt- manager: do not examine threads - manager: simplify iterate_dir_name() helper- manager: treat timeout as temporary error on mount attempt - spfs: fix shutdown procedure - spfs: switch to mount namespace context only when provided - manager: remove obsolete "mountpoint" mention from help- manager: remove temporary original mountpoint dentry when replaced - manager: unmount SPFS manually only if daemon was killed by a signal - spfs: remove access check for proxy directory in gateway_full_path- manager: use ns_mountpoint when replacing resources (#PSBM-66944) - manager: add support for "ns_pid" option in SPFS change mode request - manager: pass mount namespace pid to spfs as a parameter - manager: add "ns_mountpoint" option to mount request - spfs: open proxy directory in child is namespace pid is provided - spfs: improve debug in case of work mode change failure - spfs: mount namespace pid as "Mode change" command parameter introduced - spfs: minor error messages cleanup - spfs: wrap paths in debug prints - spfs: fix proxy attributes initialization in create_work_mode - spfs: switch to mount namespace in proxy mode when opening proxy directory - spfs: pass mount namespace pid for proxy mode to work mode creation - spfs: "--proxy-mntns-pid" option added - spfs: switch to "mnt_ns_pid" mount namespace on actual mount if provided - spfs: mount_fuse() helper introduced - spfs: store current mount namespace in context - spfs: "--mntns-pid" option added - spfs: fix stale_work_mode() helper - spfs: simplify gateway_stale_fh by comparing work modes addresses - spfs: use /proc path to proxy directory fd as base path. - spfs: take proxy directory reference - spfs: fix debug print - spfs: optimize work mode update on restartable operations - spfs: get work mode instead of copying - namespace: set_ns() helper added - namespaces: pass binary type to open_ns() - configure: remove "tags" redefinition - spfs: print error if root directory is unaccessible in proxy mode- Enable hardened build, see #PSBM-58107 - Make build verbose- manager: create new path if "link-remap"'ed exists (#PSBM-64299) - manager: don't close file object fd if negative- nfs tests: add "sk-unix01" to supported list - unix sockets: restore socket rqueue even if already opened - unix sockets: restore DGRAM socket connections properly (#PSBM-65010) - manager: unix_dgram_peer() helper added - manager: move DGRAM sockets handling to separated helper - manager: open unix sockets in corresponding handlers - manager: return socket fd, if already set - unix sockets: alloc_unix_sk() helper introduced - unix-sockets: do not try to delete already unlinked socket- manager: use current directory as logging directory, if not provided - manager: add "log-dir" option- manager: move to target VE on init - manager: revert commit ce578e797811554ae693d9b76fde67326ccbc16c- manager: allow SPFS mount on top on non-empty directory - spfs: add carriage return to error message - manager: move SPFS process to target VE (#PSBM-58606)- Rebuild in 7.3 environment- spfs: replace error with warning in case of system call interruption- ptrace: fix ax register value check for "in system call" status (#PSBM-53384)- swapfd: sync all the private file mappings (#PSBM-53303) - Makefile: remove explicit path to libnl3 headers from flags - autoconf.sh: new helper to configure and build with libnl3 - configure: add check for libnl3/netlink/msg.h header - configure: add check for sys/capability.h header- swapfd: check, that mapping is accessible ater replace - swapfd: mem_read helper introduced - swapfd: open_pid_mem helper introduced- manager: check that private file mappings content is equal after copy - manager: copy content of writable mappings only (#PSBM-53249)- manager: copy swapped pages for private mappings (#PSBM-53161)- manager: expose process state if seize has failed (#PSBM-53092) - manager: expose process internals in case detach has failed - swapfd: create a helper for ptrace detach- manager: remove per-process share_resources flag - manager: do not detach from a task even if it doesn't use resources- manager: do not duplicate OVZ id per SPFS instance - manager: aling debug print for better output log - manager: restore cwd on return from SPFS context - manager: spfs context leaving helper introduced - manager: do not duplicate manager namespaces descriptors numbers - manager: mgr_work_dir helper introduced- manager: skip resources swap handlers call if nothing to do - manager: do not detach from a task, if it doesn't need resources swap (#PSBM-52883) - manager: use add/del_parasite helper - ptrace: simplify "in syscall" check - ptrace: fix error prints in fd sending helpers - swapfd: Add errno print to recvmsg() - manager: fix error print in transfer_local_fd- ptrace: adjust ip in case of process was traped in syscall (#PSBM-52809) - manager: add debug to fd transfer helper - swapfd: Add errno print to sendmsg() - vz: increase spfs exit timeout to 20 seconds- manager: detach from process on release (#PSBM-52700)- magaer: revert multiple integration of parasite- manager: detach from process after examine and attach again for swap (#PSBM-50800) - swapfd: return error from destroy_parasite_ctl if failed - processes: add/del_parasite helpers introduced - swap: do not postpone exe link swap - process: remove empty process from the list early - processes: inject parasite just before process examening - manager: reduce spfs log to NOTICE level- processes: fix size check in fixup_source_path- unix sockets: fix possible write beyond memory border in unix_bind_socket - shm: simplify shmem data pointer assignment - namespaces: initialize return code in set_namespaces - xattr: fix dereference of freed xattr in spfs_removexattr - unix-sockets: do not close socket in unix_listen_socket - unix_sockets: fix typo in error print in unix_bind_socket - trees: fix null pointer derefernce on error path in collect_fd - swapfd: fix various leaks on error paths in set_parasite_ctl - swapfd: fix close of invalit file descriptors in copy_private_content - swap: fix handler check in process_do_swap_handler - manager: fix uninitialized resulting variables usage in replace_resources - manager: unlock cgroup in any case (including error) in replace_resources - replace: fix fork switch - processes: initialize path to empty array in collect_process_cwd_root - processes: initialize return varibale in iterate_dir_name - processes: check source size in fixup_source_path - processes: check, that readlink returned non-empty path - processes: close fd info stream in parse_fdinfo - manager: use xtoi instead of atol for all 32-bit variables - util: xatoi helper introduced - util: make xatol_base static - manager: lseek freezer state fd instead of reopening in freezer_set_state - file_obj: fix leaked fd in case of fifo_file_fill error in fifo_file_open - manager: check unlink result in cleanup_spfs_mount- vz: add static/seccomp_strict to tests list (#PSBM-50020)- swapfd: Suspend seccomp while changing resources - swapfd: Parse seccomp state- vz: move static/unlink_mmap02 to supported list (#PSBM-49205) - swapfd: Test for private content copying - swapfd: Copy only present pages of private mappings - swapfd: Fail copy_private_content() if size is not aligned - swapfd: Use pread() and pwrite() in copy_private_content() - swapfd: Make available /proc/pid/pagemap file- vz: add socket tests to supported list (#PSBM-47017) - manager: support for unix sockets added - porcesses tries - porcesses: some precursor work to handle sockets - manager: unix sockets facility introduced - trees: add sockets tree and helpers - file_obj: early_open operation callback introduced - file_obj: always unlink path if silly-renamed - manager: fd_skip_fast helper introduced - manager: some swap debug cleanup - manager: small nits here and there - manager: use get_file_obj to collect fs - manager: use get_file_obj to collect exe link - manager: remove obsolete file object helpers - manager: use get_file_obj to collect file mappings - manager: use get_file_obj to collect file descriptors - manager: new file object related helpers introduced - manager: drop process_info argument from is_mnt_file and is_mnt_map - manager: cleanup create_map_obj usage - manager: move create_file_obj to file_obj.c - manager: move handle_sillyrenamed to link_remap.c - manager: export fixup_source_path - manager: include to processes.h - util: fix sillyrenamed_path int case no slash is present in path - manager: netlink diag interface support introduced - parasite: keep service socket inode on parasite_ctl structure- manager: disable timestamp print in signal handler - log: add timestamp print control toggle- manager: close spfs namespaces after environment cleanup- manager: do not detach from processes on resources release- manager: always cleanup spfs directory on its exit - manager: improve startup logging a bit - vz: update unsupported tests list - manager: fix spfs release on repalced exit or master was killed - manager: cleanup messages log level - log: print file and line in error messages - processes: pass received file descriptor to create_file_obj - vz: stop command sequence execution in case of error - processes: keep received file fd while collecting - processes: split collect_process_fd- spfs: remove bogus error print from gateway_real_path - vz: toss tests a bit- swap: remove excessive debug print from do_swap_exe_resources - trees: destroy file object on cleanup - manager: fix unmount of SPFS in case of error in mount_spfs() - manager: unmount spfs wokr directory unconditionally - vz: increase wait for spfs exit timeout to 10 seconds - link_remap: fix and simplify links deletion- manager: added support for unlinked files (#PSBM-47074) - vz: add "unlinked files" tests to tests list - vz: add support for multiple sequential jobs to nfs_tests.sh - vz: set running_tests to test_list in empty in nfs_tests.sh - vz: make "kill" faster in nfs_tests.sh - vz: fix "test is running" check - repalce: added TODO comment how to replace monut point properly - processes: add support for "link-remapped" files - processes: improve error message in transform_path - trees: fix memory leak in collect_path - manager: new "link_remap" facility introduced - file_obj: destroy_fd_obj helper introduced - trees: simplify collect_map_fd interface - processes.h: remove redundant struct replace_fd declaration - swapfd: select only private mappings for syscall injection - processes: add "replaced" tag to fd and map structures - trees: rename collect_map_fd internals - trees: hide replace_fd structure in trees.c - processes: collect only unique fs - processes: collect "exe" object with maps - processes: collect only unique maps - trees: collect_mm helper introduced - trees: fix NULL pointer dereference in collect_fd_table - trees: return pid of the fd owner from fd_table_exists - processes: use create_file_obj to collect mappings - processes: split collect_process_fd - trees: simplify collect_fs_struct prototype - trees: pass file object to collect_fd - processes: rename map_open_mode into map_open_flags - processes: rename release/destroy functions - processes: rename "mfd" into "pm" - file_obj: pass "void *file_obj" to create_fd_obj - processes.h: align structures - processes: rename create_file_obj into create_fd_obj - swap: change exe link after all other resources have changed - processes: improve fixup_source_path - processes: small optimisation to get_fd_info - spfs: check link_remap attribute for any file - manager: spfs_link_remap helper introduced - manager: simplify do_replace_spfs a bit - util: sillyrenamed_path helper introduced - manager: pass source mount reference to replace routine - manager: carry spfs reference during replacements - replace: collect process pid on spfs info structure - manager: return handler result from spfs_manager_handle_packet - manager; rename mounts_info_s into replace_info_s - manager: rename orig_ns_fds info mgr_ns_fds - manager: move cleanup_spfs_mount to context.c - manager: update_spfs_info helper introduced - replace: use generic examine_processes instead of deducated helpers - processes: export examine_processes - processes: treat mounts_info object as const - replace: remove unused ns_pid from __replace_resources declaration- processes: carry original process state during replacement - swapfd: Add debug print of used mapping (Kirill Tkhai ) - swapfd: Pull SIGSTOP handling from criu (Kirill Tkhai )- manager: do not stat mountpoint in init_mount_info- replace: use context namespaces instead opening new in do_replace_resources - namespaces: treat ns_fds as const in set_namespaces - manager: ctx_ns_fds helper introduced - manager: close spfs namespaces upon deletion - trees: release fifo paths on trees destroy - processes: destroy processes object trees on release - processes: destroy processes objects on release - processes: release process maps in case of error - processes: release process fds in case of error - processes: pass fd_info_s to process_add_fd instead of it's parts - vz: fix process search in vz/nfs_test.sh - scripts: add more useful logic to nfs_test - processes: remove "unlinked" from fd_info_s as unused - autogen.sh: add "x" bit to owner- swap: fix root and cwd checks in do_swap_process_fs - replace: fix code execution in case of error in do_replace_resources- swapfd: remove redundant code pieces and debug - swap: pass file pos to swapfd routines - processes: collect file offset during fd parsing - manager: remove excessive debug - swapfd: format debug - manager: remove mappings collecting from swapfd.c - manager: remove unused code from swapfd.c - manager: use swam_map helper for mappings - manager: swap_map helper introduced - manager: collect all mapping attributes- manager: use new swap_{fds,maps,exe,cwd,root} helpers - manager: swap_{fds,maps,exe,cwd,root} helpers introduced - manager: remove debug print from get_fd_flags - vz: some improvements to nfs_test - swapfd: Do not force a change of mappings during fd change - swapfd: Print error message in case of memfd_create() fail- manager: split resources replacement into thre different functions - manager: remove obsolete and outdated fifo code - vz: make nfs_test.sh executable - vz: add additional cleanup after tests to nfs_test.sh - vz: improve test script output - vz: improve nfs test script- swapfd: Pull compat mode of parasite from criu- manager: provide O_CLOEXEC to fd swap routine - swapfd: Allow to fcntl::F_SETFD - swapfd: Check retval in change_fd() - vz: nfs_tests script added- utils: strip_deleted() helper introduced - manager: ressurect get_fd_flags and use it to obtain file flags - manager: improve error prints in files opening - manager: fix print typo in iterate_dir_name - spfs: improve gateway prints - spfs: do not remove xattrs for hidden files on file release - spfs: take link remap attribute into account when path is hidden - spfs: fix attrbutes comparison in find_xattr- spfs: fix debug print condition in spfs_getxattr - manager: colelct map file open from from /proc//map_files- manager: teporary patch to fix fifo migration- manager: remove freezer open_cgroup_state helper - manager: cleanup resources replace helpers- manager: drop redundant "ns_list" option from mount command - manager: remove unused join_one_namespace helper - manager: use set_namespaces instead of join_namespaces - manager: replace spfs mounts without ct_run macro - manager: mount target wihtout using ct_run macro - manager: prepare and cleanup spfs environment by using join_spfs_context - manager: pass ns fds to __replace_resources - manager: join_spfs_context helper introduced - manager: split enter_spfs_context into namespaces and chroot parts - manager: move mount-related code to mount.c - manager: cleanup interface functions - namespaces: treat empty ns_mask as error in set_namespaces - namespaces: open namespaces with O_CLOEXEC - manager: create all spfs-related object in child on mount - manager: pass string agruments as consts to mount_spfs - manager: store init namespaces and pass to SPFS info structure - namespaces: remove unused change_namespaces helper - manager: store ns fds on spfs structure - processes: collect fd wisely - gateway: return spfs xattr if match - spfs: xattrs support introduced - list.h: include libio.h- processes: use fd_info_s contents in collect_process_fd - processe: get_fd_info helper inroduced - file object: discover process mode outside create_file_obj - processes: small cleanup to is_mnt_file - utils: unlinked_path helper introduced - spfs: do not treat gateway file operation result as error - spfs: handle only existent cur_wm in set_work_mode- processes: pass process info to is_mnt_file helper - pie-util-fd.h: include stdbool.h and include/ptrace.h - ptrace.h: drop bool declaration - processes: skip anonymous map examining - manager: infect processes right after seize - manager: seize processes before examining - processes: rename processes_collection_s into mounts_info_s - processes: collect_processes helper introduced - processes: rename collect_*_processes into examine_processes_by_*- manager: collect process root path string - swapfd: Use transfer_local_fd() in change_cwd() - swapfd: Chroot after chdir on given cwd - swapfd: Implement and use transfer_local_fd() - swapfd: Implement fchdir_seized() - swapfd: Implement close_seized() - swapfd: Export set_parasite_ctl() and destroy_parasite_ctl() - swapfd: Fully support seized send_fd() and recv_fd() - swapfd: Implement sendmsg_seized() and recvmsg_seized() - swapfd: Refactor recv_fd() - swapfd: Refactor send_fd() - swapfd: Cleanup: use mmap_seized() - swapfd: Bind local socket - swapfd: Cleanup rename parasite_ctl::addr{,len} to remote_addr{,len} - swapfd: Add chroot support- manager: mount spfs with "-o no_remote_lock"- manager: fix typo in error print in prepare_mount_env_ct- manager: fix typo in error print in prepare_mount_env_ct- manager: print fd open flags in collect_process_fd - manager: collect fifo file to avoid multiple content restore - manager: collect_fifo() helper introduced - manager: "fill" callback for fifo introduced - manager: remove get_target_fd() helper - manager: fifo file object added - manager: "file object" introduced - soruces: move namespace code to src/namespaces.c- manager: move process need replace check to separated function- manager: improve debug output - util: simplify create_dir helper - manager: toss fd open code a bit - print: print_on_level_ts introduced - print: remove print_on_level_va declaration - manager: check either process is kthread in actor instead of loop - manager: try to find search fd table before fd collecting- manager: collect map fd which parsing processes info - manager: map fd tree introduced - manager: collect map files via /proc//maps - manager: split read link and actual fix of the path to open - manager: fix print typo in iterate_pids_list_name- manager: ignore collect process fs struct is shared - manager: fs tree introduced - manager: split collecting of process struct fs and exe - manager: split process_env into fs struct and exe fd - manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: reopen freezer state file on each state check (Stanislav Kinsburskiy ) - manager: trim '\n" from current freezer state in freezer_set_state (Stanislav Kinsburskiy ) - manager: return actual result in spfs_freeze_and_lock (Stanislav Kinsburskiy ) - manager: try to rollback freezer state in case of set error (Stanislav Kinsburskiy ) - manager: wait for freeze cgroup changed the state (Stanislav Kinsburskiy ) - manager: freeze processes in replace_resources (Stanislav Kinsburskiy ) - manager: convert mount paths to canonical view (Stanislav Kinsburskiy ) - manager: open map file with correct access mode (Stanislav Kinsburskiy ) - manager: adjust patch by source mount in is_mnt_fd (Stanislav Kinsburskiy ) - manager: fix strsep usage (Stanislav Kinsburskiy ) - manager: do not try to manage namepaces without pid (Stanislav Kinsburskiy ) - manager: "switch" command added to interface (Stanislav Kinsburskiy ) - manager: make repalce fully independent from spfs internals (Stanislav Kinsburskiy ) - manager: cleanup and rename processes fd info (Stanislav Kinsburskiy ) - manager: move all spfs-related code to spfs.c (Stanislav Kinsburskiy ) - manager: make replace interfaces more abstract (Stanislav Kinsburskiy ) - manager: move cgroup pids read routine to freeze.c (Stanislav Kinsburskiy ) - manager: untie processes info from spfs (Stanislav Kinsburskiy ) - manager: "mount" object introduced (Stanislav Kinsburskiy ) - manager: rename mount.{c,h} into replace.{c.h} (Stanislav Kinsburskiy ) - manager: set SIG_CHLD handle to SIG_DFL in mount replace handler (Stanislav Kinsburskiy )- manager: lazily unmount spfs working directory - manager: do not close fd in move_to_cgroup_fd- manager: do not close fd in move_to_cgroup_fd- Makefile: make swapfd "noinst" program - spec: fix repo path- sources: remove spfs-change-mode.sh - spec: fix repo path- manager: try to unmount spfs working directory few times before give up- Add swapfd and spfs-change-mode.sh to package files- Initial package  !"#$%&'()*+,-./0123456789:;<=>?@ABC0.09.0012-1.vz80.09.0012-1.vz8spfs-0.09.0012-1.vz8.x86_64clientmain.cincludefutex.hipc.hlist.hlog.hnamespaces.hnetlink.hpie-util-fd.hptrace.hshm.hsocket.hutil.hmanagercgroup.ccgroup.hcontext.ccontext.hfile_obj.cfile_obj.hfreeze.cfreeze.hinterface.cinterface.hlink_remap.clink_remap.hmain.cmount.cmount.hprocesses.cprocesses.hreplace.creplace.hspfs.cspfs.hswap.cswap.hswapfd.cswapfd.htrees.ctrees.hunix-sockets.cunix-sockets.hspfscontext.ccontext.hgateway.cinterface.cinterface.hmain.cproxy.cstub.cxattr.cxattr.hsrcfutex.cipc.clog.cnamespaces.cnetlink.cpie-util-fd.cptrace.cshm.csocket.cutil.c/usr/src/debug//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64/client//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64/include//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64/manager//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64/spfs//usr/src/debug/spfs-0.09.0012-1.vz8.x86_64/src/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpioxz2x86_64-redhat-linux-gnudirectoryC source, ASCII textutf-8a213695728162d562d8fe003002306a54aabe267803480a252aee01caab74eef?p7zXZ !#,S] b2u jӫ`(y,x۝gfR\70k1C x֕qfS]:"DՃdp si[#4S*wi+5=0U0Pu%NF>!̱/uTCBfX4EXz9BZS |U =Q1l,&1N:8\Q;5ȿǐT-QcglYImX #LEȱ!)KL;KRؼ/FQ=gatp0$084>/ $!Qž&t)-^xF焖@dOWlt͘h;ַKS}7h#|TVfLEJS P5H2_bk0)D? 艼S%: e@7x?? a)SfnWoZ7 }iv1m~FЌk/ 0{m݄@D7%qi.vL&}%OILydw.;D,u G dY]߯Ĥ=@[ĞnkqA;_@`:姟%S?S.V`ke0wBDYhg0wčnfm@-%\r~\[rrr|jgXWj^\|lq Ml庰y":-g7~ om{="Ϟ͜fi,éPw/K#? Fj#T!$rrg96>ҙi^["1@TxLB,6&7LV9ݲw"@XcrA1cq H{Pnw7OZT͠[}}B]4%Qj~O eFݡ^ 6<ýkk<;]!m09-zkBvREǃm, asDiAAljMO6CY ä}@Zgw.HG 5t'`Ԣ : gn\m{^ A1ywKGfpt.hAHUʜ戇&iUﴷ3~hBc4+HD1`Ao!w')D. ),Ρ{E0hBrפÌ`mmU +bao#mSe0myoȻn{09%-N{S{4l h:Xgäu1:0Ω(B5 B[ZB靤r_eXT,Oe#1kۗqaZtӲtȬϝS 'MT0;d`QO;lڎ7:R"Wg(210OMK={H{ h }]b3f>Wq-B݉U;gJ!ԮYEH)Q? Gx["2~ n1m}|O|Vkɕua%bB ?I"hFJ{NT2؎L;#h):F|`A%>ʙUϓn[Geў&񬋓&|(S >1IZG͚@ 60S@<ȝY<霨4AAdIQ% A!XLeSDCfѤf9UFXJ`V@ZP l%jVŽ=^v!rtz[Y4ߜsj}%ܲ_jw~$=&Xд,@? Ґ[~S/G9 } "00@ z`2MĆ \bqO}CXJl?cUYfEг9`'wiC/2괡 V|`5O֡q"%7u]Ѫ}N6IK._EWx]_ƅohsap1KuzhV gPi#,wV\+0& f$)Sƪww #g# rWQ[~,Bـ>_2ƃj98a.ǝi%aJ4M1 MR{? τIq:4NTBT7^텂2S';R[ |v'~Y]l:JY5ٮ " VǂzN'R9_'~K“T-:ޠbhfBa&xt f/OE}OdxPXV(T?:'}i06HLt0XC}ׁ Fg R(n&.Z$'YC&hQ[(;0PgS9z >+ͺ8^(Vl^NJM?BD? b q5gĹw~HJ&]AgK!:If_`ڝ[mqix~ҝde8!5G5WVf`P%?O;BWܣ1݉llb@_nʧS;䖎~d;|h?w*T6ScǦR 2궲pb#L?Ie2̹?ݿ:_s?Z!Ɍr慓{PQszV]/ ~ ~&hɽSM3g_h>@z' =RT&˷nl4SMvklF6v:_ =A28>o/)1Ձ*AݬSX-WՀ7oSE{z/ڀ[@kxqmr⍤LPL,Ĥm$rE勆97+{CjCUxnB^25- gfţS:gi{OՌ+ITo=w$gRe'㤪`?* TX)g_8z9׵r)[+GM&jR)>ڧ74Ϥ|QNJAߕ3,Hg"gycۼ.K/ :^GSdhCҔNaNh: ~.I8ME3Ri.^Z $L@+vT//#gn 1{$=H P) }46 _vR b8čԼ' n%;ɲgazXdRPtG{3sj,)6CCDb#Z5ҷ)ЇL7 =QᅓҖ>l& xK $^!r=CN(ʝ nfV#sR^TnF݉7S*V|{kk%E NeZs^ҐJ+_cr Ku7,)P(b!k>d܋M:S\%D=$vs뻢n^&?NrxWxa}RtsbԮֶc;?*o\R=h]cu:BՍ$ 4i$,AjݔEͥ5Eb}L3g 0]uy((XHko!mH6`16e(.ת qk D)Y @ xF8a5I",~bIZz0Zȿ(ʏ^ o|p]DkZmk>=N7'@ !j׆l ~gN۔t"H  5tT=FchYj ht]_aMr vLcp`7XIcǒJw1d\_ShjԍmMF*@qEbR Q=P|l/OUgwP$If\  ׈s>?U3QOnt5; (`;}VoB^crwA"7'9Qli^uf&]Y+C(Q&7 AR_ۥ2jTx.P(.^U'lS"2F XF{!DEv}ԶxoՍij\Tr\;, uL rżB㑺Ffq*Uwo='T>~bL=2#L1!gKSB(O /x ies"U$0+ؚ1l@`,ʥ_k0CK-N7]H 5 72DjȪ7麩8G3k R@$TNw مEeر$Pf5+ r@ ?lCze!8eѤ0? %\N|RN STwVy#+2E8v`߷k#c]o7>Alr! ̃՘ytZ;ę 3YnNO܊*`ucJm\[]9{Up҄G4B8`vJ-LpeN]ZnmpF1wη>~ == LB?X]MXkN/\5 5#mh $KoǂtMKJElDQFQl?^=.MW|ZEҿs{@Ļ"¨1{b 8כd2;{&aoecufK j?U/)e̊Ǔ&W GU ^y߈.Jy; 8zNKcѫ1?qv]馹{б-&1=$yCC'\*CfCاָr*7Xuܵs%}r;@,2 >dZwDF$**5Ƭ3J^y%BE;8zh" |f=7SEYĥ)T5V^z7hu E͙_kN:X ::`hbzҿ '&e.` #sdMMӍ67Koj ]ѴwRdLU3ݯq+JI~95c~JgQY?yۅG`T~!>_VDVIJ"*R\wb<0Iawz&;|Y.p( Ih (7iX0G :biQӼ=upō @TF(Cq%uD\u:# Ohp4hkUi\dnLUqѫx)gUF3' gaEF{ 'w D5_1k'kѩX;1E-tafWLyn0z|Q$`?ѓ 0K@^cgӠĒ =ذ4&ؖ@JGB5oK8P-]4 `tþ!v9sB +yPNmpH_ 0;{+|_XNv{SA}}Ns %hώKڏw q]]wfB?fCXm9X@ZBF{7Q4nXʿ.EI3&λ$q',7].~jϻMjɍ _#I>@CPgo t;۩:QUmDWfg<.qԛ+GFO|;6+y.iH>צ6ӀaBC1ΰ+|A?q/iRT4м7Ab  5PI`Ttxh!5y؏d q>֥mh:ʪ !ظBe@w]J@6nSxZ-h`%سePp fWn5uTZ3Ъht m.p/30Ő BNPC)%e"G8i!.S |o0_7 7&ު,"Fb#LVGLHb9,[g!$]ɞ-@et"݅OkQ=/<@b2A\ZWޓ@TSHE#]a&*%cMJcʳ&o^&adj>ǚ#&Q-[KhkTLgbPtJ{ T ּv8 .G*gDjiT3c?55UQ9gRECT@ t fgN6bfR_]PdK@HoVl{%\x(MY ZY+6}-Ý.TRz>@tvm%N|L*)Rjꃒ=DЏ" 0pf'{IvάT3ъk%gXr2ˀ6x/|n$&ݲD !hسqݘ&!OFV`^^6Ij7Q{ ߛD99HөoP|Iu}\P=Q)x /i?*gɇB+銭+/y>TZ?Ah겧A"D頶&q~S3Ŋkы-PUNZ;ԔҽD\'$Bw`nqPʙ\,7 )~8 PNH J<`8dM>LAFvbXbe1 TMEb&Y N˿߹`bf< L +wzp-OP#*׋R\@2O`H6 ^ٮ0 xN ǒG!:Bѿlr2|^etP̄yU[.&V}OУPrfy^ƻ\:qD[4qPsUM F녙/F4UTgAnۿu;Ђ<&wLU!P+UF6ZAFy36um@Df 1MUlMS-M%xzhYe$,`doy6]%C`7t( ~Y sobŨw#ʮ%[A{VAI;2 akT0۵B@`Be./ƵǬ<}HA1#濟D9ڤٯ]_VlcskpSMƒGI[kcIeG;~hv%Q,%i;:V_FGrL=~-GefQݡ`x]zߟ-EeN UipM0hڕ2@&a8LfV뫱 =(k?;ء}w1 i_j Y!nrՆ]+.2dbYݽdҩ^ FF17o#O$z4$<^6Z@JH'Y8oAy<UE+m ᱨD\.,6^l^s.0ӴVҼ,гf,Q_ -'Y1dqc Dw㾱.wy%fH}8:3ܚIQCJ"X8"H0[yȵHB԰8ï.Yk \68 :aP7@W({r+w񊧌C=f"ϰyvZtQ {n^U$Bp'!(T}hK%IP(tX6D?[=ue(9gHnNa0vH::79,&bv16&pzPUk P-!ãLu8AnHC#L5F+zQ8E`⫎k6 \ ) Q ~AQWjXn ^IaOH>^Pj6t5:#0B3hsY~5.UA!ӯ"~;< e:]+sXVRnˤ{O!lH_&!Jiz_9QzPҹ䬶 Be85#v4C{^No˞, -f35V}NdYLgkFV>lq*#HV;5sq5)Qª'@jZ;L`TwyCz)'ɋ@75xZ&[x9>} 퀦^ҨcS4ITʭ_6skN'ޤ/օOI&dQ W3Y;~k&ܟ|ƠP{G7?<^wrl[멮ئu;{K&q\e%ʠB.Lhkfe-\$q@y{qRM\fYڃ>#Qʺvj:SKgf>3 4a mMs|\jcF^YjtXF~`"tN]vO;yrxм$b e7Eґe'CQȖK/e͑~ՔI N9Dw>opbV#] 3@/҆bDQ8-4Ll<{=SLrv }[֩R?YyȑmY=H謏J79p/3@zk#3W Gd )`Kk3'uJ@Q6=2݁1凅E䓔OEfC"A9ĝ2mV?BYE>dY$ȟ''̚R dq_Ҵ{W.;Ooז$@LrDl$j˄ 0,^$QG'> \.|iEdJ:]=3VTt-ڹ{ﭏ%e}.Ir)<=(CN*F{_¸bXeбW`f4;,Dlcv FUq[r\߽?~^pgLvmG,a:\yhWDz=Y"ӴJ ?cnwG͵ZzOhwнlOj-lOP@GNJW7TN8POӸi4KtlR">4ȅ,pO|:Nl"eW[5ێZYAE᥎L@cWŵD$2bTxR>qj#KAF֟gb*t/ TB4a?U>p\BCGa0pSZFôc Y (h2:dgh(,8+JT>R\:mVj6"/Km<.ԎV6 OOPfgW1fOlB V^;`8yvPmP[(!ϭj3'x\1_5fqȧVl{fO %餥ےvW!]tv(^Jmj EkRr xCJcn(&JTShA:\nS1絙\Io@"J;Oz.&~pYQ kn39uc#/mһN3(C$)/7Oz24Oh ̠ߌ]u^ӠGm<@j+@#q!f"K]󾰷屏^y=m7#גJY]մlq7ad͠&`@Y"yE1L3i2>5 :^[Rq]h'2:\6B3Y76זsw4lfCA݌eNo fƵ|Zs 2,{BVfP-{}@` ;yv("@( ~A *=ӟTFj6⢆2sWPxD8fC=3,r l, : $r_b>*}0ʉƅ80F]HsR~,d𓼋=n}ccvg@+ 2<;V]zA9,@~? <6y6M PM_4mvob,)ANpv ߄EXaFZKЯ5$MSng+>7(=v,r2λE4CeWdr옉D4؍`)UHAsLϱf /J#= %t-uƪGrO([t<BA,9 6}Kv7zס7h2+9ۿM s;7[!wڣR/enTs|i7־xqp^`;; c&! LHF2Ԁ)o[5;$ng q,r0<`ƘdV&[ RV: Je$NM)Mkx= ZqU15j=˹{30zfߎ 3}x3D5C:ĺ`{_[7 >GLArcآ&{M_VYnHEMҩa`Jڃ TED\Iف,`{#OkL}7ڣ{?4 0P{\e1\-=`I#GTb?!CXPn,j[?j:s)1P!P sT2KT(v-zI}x{H 2Y lE5G[ cJG 6-(ʣlgH NbV;Ԁqm c++_c&]'T+ɓ[%^̽ټ>a(W5}IqMLܓHG6م%6hqJ AaN7%Fi!#R5gN)/-Wz/915x\ޙz@ZN YH AI ؏7D/4 ;:Uun=W*ut4߮d%v ; R%MU/4~v t'kSߪ>\riD@}')%7E8W kn m iG+|Xӆėn:DLF+0ȵaXv*WU>z(A>Uл DpB:}&7>[ LGmWHE$}1[" i _GG9 ]:0tFcXΥ< 7쐾?Qi;vCWuk?έCSrp^+ANpn"" gьcsPdF`xqJT4I1DJuj&#;I&m lzd`:M&GuBh`BitrV.֒Y.Dh0[PF-4txb"jZCD;;u`Oue|l>!R@/Ei_ςf$ eSRi#:G(2ɹ^$(G~m~|͐hq{iA*IER $ӕVc+@_<4(9y5 ư"b^^2 >mrAޚh1UvRxP ZNAND2&0.#3kl{T6rUk>\PNv[*2tNi:5Ld/5?R=F bȁ"v!E!R(As~ZR Ll]dR+ShCN gx J}[G\S"Y6鈌Ƈہd(˥\BOLOw-ث&}ׂj S+yH.eX"2UNّ^3ЬP϶z}Č-h4P3@3m@`x7^lCs)x-gRګ'mJ.>%긡ZB^w3i]sFooW?piF+!T0Gj黁N 1×.1CAdesZ01hDqqmmD`_6cW|j&c^"n.F ToT2G6zD$6."XFg)W*(tT@bJ#9{TuK?ٌs{gv k9! Q&t9:Jއ؋s==+PPZeeB[Fq j=iI ¸k.kh (<-I[}PQLӽ؃$\G!̿Lm,&`ӖE-8?$xdQZi<\i6'\iB>hb-ܲbX{mGj2znPLKӇ[ (fѕ8e[iݴ-nu6G{8*kLtެBѨTX!tk !tZN-LAP 7!xd6@ at[1&VBAܬj\ m#_Wc[k.$dXQK)!_ގ߂<9'\ӺhJSH'kmHO/9fBt<4T̵7B9x,v6]Һr4HޮLHMiO+\%någ=_V `xZ".GVA |Cy66sfc4YbBvzx_!^ܺg"ofMi\MG N S 2$]Yp0 t)[zWdqd{!c.D *.|K0,) ļ˗>:ʫR*Q-vl {~pg-q..k߇cNVS֢SA0lhN;"g#Ӱ-NՋHd@;VxmRTY4E۴ISQ;$'Ň OEZ &]9%pfchkI]$v2e聬-3AUږhs0rJ10f;$'1*᮶*7Gɹr_n iR·+]Qwl<4=KVV7s!h=|SnKezdv$_=OTmt*gW.V&Mݸ3g?!t@ jˠ2y]_!SFfB%6YkdYUȊebxv;:Ð'5_t1Ebk#*K`<~UC;e܃>>LOD[])/nZ4:9Ì&?fx,y(%;֞.H2xq -,YsE;$erheNv[k(5'{@Lom\^vBdj)x[z,qAfyp A0$A#1mgñ"AO“6"l\&,t gՔ[*j. ݺXf7(% GM^4A,CM3oh [L4KAWGqg#Mƀ*Rxʦu Hn_#L7!QBA9"tJو9;&GF!c"٦ny,LY1Rv]Fi-Yg恠95ɕ `AJ?n(JⲂG o2l1WU[{+"sPhiw2~cƠO($XZG&"9mu1hPj5_y}O8#EK>ș`Cě+9-2ߗNXz=c|nlє+ڦߦ$@2`wDx)ŖHAGyVNc&OtqǢ=3#\܋^(uUy7̫o|<0Wpms7M_L+=\ e:|MIUkfgc 5K wx`VH0uN ѥlbIMQX pch]v*'fX=ofGT(TFbI5 N1 Q:$ǓbrSS;mdJ|" ,NIsyd<з66ODCu+ Cmc4qؓL0Hpq `6[tбϽ(RS 鵭~,yo0ųPn2iv6ⵧ*duPҒG1(qja?YIWV{ysKˢbǥVPJ^Z~n #o6%(uf{cY+&@3w@fH@Gdv |0SFX^DS ĈBkHX9.3vY H< \8TA7Lk-z#B1U"Fq58Ke&,=.c-ދ:ͺ<˫P kopx<]b1vfXqNB ¥4J+w7[0x^Y4H=Put|"9/ n z4TlS+!o%R%rp4Ax i,R){heѡQq(Ed%By܆Rei( ,H=_iDua׸gCu1ªFW^[[Rkwa׬r+iU1wnUQԈhDCK/ƖWIw<RJ.˗@~kYSHZY wE | ؂Zex5sa`EB/,-}.x'+dy,eKbĪ:xTb}I: ť4 4T!T &}~4NlFIƁ?'x~!]]h2RYGoDe1.R"&Z>\'jz(?MMUgu?rյAfD>J}F̡ҭy )qC-dʉ*n* .͂3SC w ;Vnw0 zM+";3gJ32Th^^Eb`Ka7RcNrɹk/mC܁lZE­$ΎИLR[u R{>XYV|e2s9nz .@o@w~W#4J씢Lcx[9K V=\Ezr̪3z)=NJ}'q,*iRad DMz8 дyKorXJcVDh3_}"/#qIRΘ>=Kd NX h5b}kFT~uueզ[%}ndmܲf-& @fD~2\i$lD3uiWE{q\Cw#^]|,G82|j16+nO8~:Ŵ_?|Pl4Vw}0 =bd4.GBJ{(P ~`2%ë;M1fzEJƾIPu5+/sp=l "oۀ2d',MU d'l7>t|֒A]5l2Em+u5HGkYkxnuc>ry vGatu_cz\D`ڵ_%97߂L[$ql wZdɆ&.Gfݨ<:Y\Aİ.*92WX!W2l*^aHꚂCn/Y"O0 kpg]t"[Sc Qg9m\R!z7T^<\dW]$dNT ALp+•)^UcP;CeX[0嗁b IDz/dNnC<0ќ)0៩t.z-I|*ު3d6UeU.Zz1-ZC\O+V45!U4C[Xk7x;B,e=MKf̞rXi0)}re2+d ]xѤT]@#b~B=GF撋q'Y~/պ^ZccμOZ!A[)Ij>6iz9uq򅙊i}s;L2er2!vFG4 M0E/m U fyle5R$zi=Ig`W-pk -S_ʐؔ6p-P{fLC$dDX$*\*;UQm Z pAe{z&9o^N̲e8h!2P+5-?ځ0V [X,WjJ?D<-.Prbˆ'oKm9: gawC$(V>+KOVe TZ5@aϬpI/6ƅGen&):)1N ϹjwϤfL#y>9BjO9=e2mP|߼9^xeYL L(JI4joMM:Ր I 58d,رҢ3>U,Nf+ԹZ<[+%j$W~5~ <i㒓4`#oh ɑ$,9Ũ6",p^"Z.4mKW_L_i=\ b~&i{}9XDy#XQ"{`s~*ݖ%Ns2WP 9wnb'j*))Ed>]{H/@n˼Wwyzd7 (,Tk ل8$\  |Q f'2':s`AZ}>6nXhߠ.S;yt!gf݀R+6eF;wvHM/r?ݟF=vgܺ7C"]Z6B.79Cj_ylQRID*9 mDYb^b#ŷ5Bkڅ.'}QS,Eg_Gz\6Q@>3*DjBnፀ/O& /wF-/9c7#mֵ5N(Buf+)->wYwCc&z /?uC4pNo(3gȚBxIvS}Ebڃ"xN\Ea}6JjTZYD pI{%U:ԘمXƄ݂kzv-DjFky'DT{k4Ui&:(2Lz@ɏ8_sAa7QێF2, G]w題8fXK8/( eۅȠ0b %wF꺡vj4^&ޒ?, } KE+_I]|S|(0FL47qs^H~I<1%}NY58}#*]*!}"t6Yu-8yӞr_nn(@R@QH1zsOYO1u1Z6ufcJ!J4GW9 /T(ajQFdqUfqy}/w׼1//^:QwS6L@߿ yᕜ._eKw. 2}ǁ fRђGPuwJ!#S\/Q{_ mV0Pǭ"N/.so#h gAx\~şA|Ve~r=zXrVjzYS ]M6i"4,HytN18+H+`"$C0!`gx~'М;,#279|~!b+[շY9t8C2"ᖡT==híb H5.㳕&zy7BåH/.ɕ!M eЁ">eVxKnm%!չzfKJZvjKY3=x/f?,w{r"8q᜶Vۣy%N})8ߐc_x޵Q̟kj5;_ԌHm)T׊H"(,_2$|>਻Gs Ϋ:zfr"2FxB㫱3r_rkX!O`T Lor::q&#2`ƒWCvSxZۘKi/2Ԫџi݅4ڇ]{" ThL+z>nU-ZAIëCkD9Ew͔#td:g 4{L?h *ut$":caࢧ?B611 ɺ˴'sPd=FB d:'l'I" ˗Rk/|(C논X{_]+FD/|hZW){y,n*?ĈPؙ+NB[%÷|k`Lةb;`5i=!36/5 w(ˉC DD*$`xr03}=M/ Gp hnm~H˂ %y?:!Da]H`8wC{Lc ]i/#) +7Ͱ6 th=f]d2tn?XZ/xF)\oD][u>_lӫ{2 x8>:Iv$*uDN'g]vba5-g:'4PS [kꑆ&̓ZAe8)XA\G3Fu*þz- 6GBs J eS' 32RꇤdkM3lF`Rz%G][v~b pWʩ{V;sP ilO$x8%~Pm1uI \5^+ojTjў~3&hSMc`B!>"ո\爚73d##viœhǾbSU'=@!_DI6#v:2/ч>v7ն~gҨ*\"hg7b(N~s->Jj>iJ>#~<:eڻ'oc!U߽p!7QjleNu6+n{bY&1%pwR@h'v#uP jx҆ *Uhl˞+OSb[tŊz ]/6{1,Gq E Ђ73H@9Zq=Aޛ2FOG3`gO2ėX\€ )A T_p3''EN;HIb4XQyB @RE^Q+'"0hvoˑL3SfBQIrB{3Q Bh̓(wͬN?cֶc8&Rb˽dg mVx=J%bɛ dBՂ݃s]G.ʕ0|ڜ1 2% 1p/6]ML‡fs o23\1gvd?ʋ!3V g\![,aXN|+G^>/'yeG* 3>·m]!2OB`p:f9~+s7 FHYdz~^8"kzzi4YU=XV\`jR//maHS xo|rb>>Cf t{D6THL&bKST_B!o]H!yЭ u'gRWߕLtk j[ݛqPe"jIC[l 6w\fDm)d~N!]Z@//[8x燐3n&!t㮛,c{{|q!Ϧ$Ϋs :s֕"/R;2(S& 6&-Ur,DP/zݢg`Wg|iB P m"*4A'^6xo`Vҫ}$* $)o*G]|(,FY2¯8J2p Q ctXF82JJ8l. 3E>v4GꦢۛE|@VʛO"US6XȎ#ZYRhPd8O렦MHSn9|'y : T׽h؈lY"mE]^0sr`nnԬ9:8I1SWT`Sg ]ܰz̖0+{@ȼO AI1DBĚB@ꛯ 6"L'e PzEÈxO5q Q@*IDM9}sԍ$sOpv1?/J j&f55~OOar,c\2 a}_mI6y =ai^١W%~{' 0vqe_ش;fG|L JE. &Z +D*Α'6kS --8#@CI?aB`&*rb;|Zȶ-B}ơ`^;kKWO/hFEϚ;4~׫cL>c̖MIbSj'~ s !ro>kmإwu.j?@hճH!!光fQc88vkxb/cks&֟4%_Xm(9(6`[ F%8yT;1Ͼ"yl!='1[b:KT+a4.Ifq_ mrq8Q)]xW鼣Y5?$#ѐ~pe0,"ݐlGR9H٩z\\Pt1#GI e\`E IQTQft]LmR B UsV%kLK%3+nenZ4B,ah}З(1Fq%gle7ڹβ$ 8 >1I<`h2ډdH !9Fc`:׮@ܒzXJ\7}|F&a؛E*05GD!ʄё1Y`GI6Dž lc$ b{R꽄S)#}ƂILF?鏞E~+bRX 7Q~,ܼqj%^d; #* Bq9ڄT~*UA85ΐ& OL7m#\ҡj8rw*ɟ!,^ 퓽GS(o˒vAr:rM'y L*9IMD$CnX~\)Lv=wŐ8xtAX ;`jvR{_!a?й'[b?] F_Y-bs\*| x2#) p@chVl/g&KkǺhd'1bWlύR}š>{wD˲ά9'u:o4&ju8RK7nܜP? H㸚$[ `ͫbAkW\D]ioXmOU-fNˁN_4&ǂ8]n&@:ݵ,9>`|h19C@آ,!%Hl~+S 9~u6Lٴ)3J~#)D{H>1}ddcPq$fmTx#&k3-cKY$ V9vcL8z1T¡w%utuB>s=*sU2ǁ[[Aj$VXdž~FC ߝЍf֥ȦW Jkʯ؃,(*ҟ4ۡkNy(XsnRPkcf|.Vf' Jwo$ԥ#_s5o/0{? i#~`Bjg}u_2rdz8d($1 @݂cRul 6;sځrڛ.hl Dtb;#"TɈ B3Hc?NrTh+ ܴGQGk*NVWEqhsDMS6IYcd  ]"ҮJ+Ii 1#J)~o~QI^PSlǻbL+:#7&{ SoPp-,~M귯fǀAq}(RY/rD?U 9L4a@ @v!MԚbF n ? gY\G-O$E={e 2pY:)m:!(Ay9  Z3v))\)KC\L_/Ƈ ^eAsJ"Ytx9mҀdviXҭ{'T<"V s.Fx <0󆢢 F?YsokXK+KII̍f.`Uzw .5КݏC3]Mo) As_!o_cl5"1=MqkT2? E+JW.4->/xnmvQA$.q\b95EKVd냌LAL} w-[ j2ix rK=wquUQmjs΢.n(f⮹\ņ!Fi]<]u[C{kX?c6)GW䅀O|##F;Aoj_wuZZR;V!k'5/|ۅT8 .JEcqX-uuJ[յǏA)c&?|r&=[!!QU=™لV 6܇9%frEfe}Ub!yYt 񞀱ZWgLŅfz옟\w{.#~1M&SZ3$7s_Lfg ET ?>:”Pc\/?cf%dK,U۳n-=)SPS]G[ta>x~ya|88&;s/.8Zdnpy0s/}T//U' 33Ҙ8Hġkm"b0yaa;bx_vTG *?Gg4T*u]cJiVAe?tvIQz|;p)i*sg)k !܎bzNaIBC[\ѠJqhBP,lRG@/g^T:+yzY rZG4k">\17Q4K#qpaUPH i0$@\ovp_1$V#iqm~<=1)GiQa7[}Q|s C܄dNwY\BCmT&TQھ^l.bBWpW ׾=}PH'W#EښTlJVgbu!p`F,}/qi}:BT,mÜljDSS۳vLgYFf+oxet 9`@FF> lpCX:EFdkӮItɀ"8R_86AS^6)| c/#")SDg돎{S], HYyn,' G$8D{* I,Zx=dԳdƐ ƒ g,b ra T\M9ԍ 4^Vо"[k*[4T90S߬Ylsh Rk d,~S&Kiضd*Ģ HFnXKD&E`Rka-iTU0/j谐sɈƄ'+-lYi@&t[e4d90xE\@7x2U^Q+JI@ps/.X BR9-,u_6\,2ǩN*&w44LXcJI+Y<=_'`;Pr~ e҉ܐ%w.O;͘ox[$&b>f_~3Iy)%V8zI%-GY(ܳ^I2PmZe'c:ele}z3W "t9{MELHL<z%q@Csidzqf&c#koAN†%(Z*}Zb>F1Olo^.:̕8_5̶G#A85 $ftj$IsA4Dl,}E'|XݳwkxE@x:h ʧJ1Lւn C\Ht{,R@Kxֻ=ᶠe;axh5Va\G .o11BUGE;P`}3'N/D0Cy*;K8l 5#y`$SsB[gVJ:Cwj[Ɂ7:Rw@ +Ǭ\'WQk7ȥ$a6P|#>CI^ 8eߣL;ރlɜ!z}Z,ILA.L/q3N5UMw))U:m \rz}ј+Fk[m  9W&&ո;nHݛlFrW'Ea<:3 -ɡ9Mj\a0_HpU }3ER-˪-K~-@5*q* /Cjo?<>X)C]p \]K= 6=s" R!f"F,ZWu*/ƿhΝK|-;ЁM>If{*cbGU4nާ˫ܚ:8UF#Nuk,1fҐ[.P; mP ͑q 9DJ A|e>~ vdUP/!GĊ]0XAư.\mBЉ|?m7:nG~|}XqqFu9p,fAEjKZa)0y }^И!ݪ\sc}l\́v3fR?73)ņ@˕ Vhl:Ӏzq@]K θp.{Skhj`\'{@bڟ9GWjn*9 DʫHw]K+?36mFJ;2ۤ&X!s.Pڷŋm$ Qp7Tg$Mb@p~6\fO>E}*\\I›gSϮiVϢw[B1\-g ( .'3ӥ*jk?3 kEyTe:=x'zz,{U/Ok{)"}zYӚ]H {ŊjztޘrQ 8z&EnN:I+rXgjYhb<9"?9ܿkG}XJ`aRѦc"ZR`n~}T&\\Ey iU/C?5SSJRV!)t5h gDH:]tSʑYRщAtq?H(#>F$@z{nL #E(RyKS]%Wǟ&]F(#C(@ elNL `4_PW\0MjPoaB0_KdqI|&}ߵ&uϿڤ~Ъ[v@Ӷ3UH> W;'!,fu||1н$3p_FU5B9l@^QVZ*E >zE8,"rgA(W2D x-wh>TZY}O:O3 [`8~b W1xE\0ܽ^vG7/ o:Pc0/[rr6n!&GI;eJWցzp 5MwzLVP/&^_֬izL-<ř #C_H!AB Jz" ^F;9^^&&Cӓ*!Gc [7+ǧ_JsBv~z{e jLGKED47`f(1/bA"cD'_C>mExE %[psuDKH>ho4Tv"7%h oN5i$Lقz{]5þۖ'AxEsY$îڌUc1|CKN7fw?~.7 rI-JamrBzr Nc!ONt˖J3IϘ`yQzIΣIicg:r7{ܵ(m2w["]^|wJՅYh_@L/;CCW?=fbQ^ .5&Z ލ$i4 #/[(<42Ҍ$ik溯{޽ --Ba|̞[\TWC!]/Xvw9c?{9gyL0_l2?@GrCA6elxq^dy5C7> AR1#a 5?QS 6ni{}뀒w<9Ŝ|6W-J@\l뙘)ib0/aГ7!'i[%PhGy?/-pme*,^URlnq|k $qg۱_V_yD1("Ru$%O&y;"Ҍ \PQ@t\MkBP}e'A&Fc4IGwjQokENeVt9ũ/'_ĐHIz:jѕ$qWϋ쥕M K_ L%sʾn,nrEaMjOaQʖMjRj ]?:8Otek 6s1X$+GAgPNjv{Ft0G >K4B62l-{w*MON V۞ bF]yNΦ HiDQ:whuwdw[+=B)l17˿0m -TEӽcSƛ.|"$X_?N ~I(IcBQN4;kxر} 8:\ VKutyr  3Ah }9lv__juo4Hr]?~pƮl[ P؎mk<6{- w鳺u2…Q_9~nN4*/P2+aYVOrUjhVҽ!xpjѵj7+(~J]^0Qv.f /P^źS1n\ح w{yK"@I0orݷC )(27Fçz9,nbUfao:QiwnO o3'Nuo]cAf)wpPE{L+C0N}]`> e.Q@tۺV}t_W ^~r\eLܤZHx΀R:PwuPt 1gzq; c rxaxHK1D1 b#BL%GݲG \ Zӥ3qd4"*H~~Q+Jk^2~KV&h0qߪVz6EJ׷n4T*{KK\.mgW aIXK2>M/e 1qe:/sI69fZ "\j\XY?s?\a/AD 1؜h KĝW)cwotS=,mGF[('[ 굺׭ItM=AzZ`}O{C^ߵ#F]S ء^\Ry|V;jNUVP9%NQ˨,t{o&::|piBH{-…gKH J f7)L8κꯍ qYՃ2'CTnluj+|bH͘S[e onXT)!|hdlMuwB1Y?j:Rj}޹b ;؇ @`u+uRNR~)rLGý`-ԝ='?C~!bom݆TDgL@2y8nfxt]h>1?!й0+p 3Dml)jЌushh\Rej{EB˥|ͿUpIPpVByFCڬ&e_ޖ ན;n>l]EL>c 1s| UYPt D'8 >d:\&}@ȥYE=a-5~=DniI Q-Lՠv~J*geB.MZk }n5 0ƓivS&ٍ4LXGDͱ C/oJ $ [CjCs;CJkګ@$=zXNN3٪oVm{NBt(!sLچK9zcѧsf'x}1:YXhwi?3b;`cowKr]C_MW䐉\Y1>rw~(.Pibmr7>T(5 7H<@7BFf,/~(%vix?']<{˕qwUzI]W@HV(*$Yе_U8Sgr5458wpm)n jx5uvag | jրk/&T) 0b(a8mxڱ`$K;)lECcEPwG&n+/oV(%|gt(_v'/oBE|PFQd"&{13FݐΩZl:J`~)HWrќƓc9 |T}&|$fm߫T/d@!:VnQ !a 5#~xˋ8-16893h*BY7CHt4ߎ<:O3B85PR\ƭd .abNЛqߍ'OT:\ORy^.`NʧWiwy_ؙB!/аЩH8ۚ5lޖeâhxN}qB#j,Rj,Dև*O"h;&TU6}ЅBNXf( Oq~(ሆSݝlvvI|_+(ix&kkY#*]߀e vG-)Ii9ĵ8Dpg!c0TcArI_CTj]euNmb"+FPs2% k_]}0#g|4y=4K]'CSժ}X?!Kg,`dG]3~> LwxlaK_+:ٜ肬h{2:T3Td!k@`LpԧL ܻ$AA6\&g bk UYjQ(%ߕY1]gn.@50fãLYjG Uofۗp5h0X}usB+[qC2 XI~$%ʃXXM!Ao^}o[aN}L( TC 130f`s[跌!3ZKgvin. Sx?|G4Ԓqr_|" ٨ \H)Kr-@LlL(I//3 jj_I܄$SO #%"Rh`ɁIIڕ˜໏ nt!o nKͤE lgjii)%0Ar6[(q &cށ,ks}^RR!!eg4 XsOB lE.hXurawDKjen'U> 4Uڀgѵf&D)80*\fjxóL6nNmP1Ӧ ɵWo%;wՈ]wc|zb!岽>z,:;#vU+Bq!H> d}P:R]+!]Ӽ} Ax*qisx 5+0n^҆=׸h_ϲdJ?3 BiQͻDl*}9wkgJb^]GԢYgɦcEo:!b V5jec{qm@T_#hetEV [ޅ; >Vk2\?4#*x&Le<"IGBC+AQ]+G WdIƩGa#p#} Fz)aTcTq F8 1' Y'Vrad~_ߒj$*BxuMZlxN(;7ɨܧ{l 7wDzT'BG:.`FQ.f +10 $W|bc>M`+l^|8KQ7c֢-^>^qrr$lAqƎJVU?{,y&r 4 R{2_'8?6k{\rEL q*~ER*JbDak8T9j;?] } ѬtV+&>X4h6Iv5Fr;Gzǰx\Q|GL<--dR;!V@TOȪIMo), ڨmZCO Ko]'UW72׺]ܯ[@E{F3#ƙZukO9/BϸdC5TG}B]#m2oEجu S73;?8(5֜6  Tس. <^c Ǥf;Ǵi%I, D:Tgf[ }tS.]Mq95`EJ8}>ù<&6~eP+݇#Mϩ3hā\<)c3ډ[:JOb#^? b&^& ຄ5sl!Xv+wt] ̟yn0aCB;Xlͦ/Q4ܷ;6@([b[#{<ԙ(8@LJ_8RQC0k.1o_>WN`N ;?+=ؔGC/60d'.lSHrZɃ'e-z۱uޫ}`gcN5jLC`$0 : B+VcL\_qcyG\X* e\#%koiX 1~h2e}@/Eb1!W&U ^W2o Њ1nT#9OFmp̪_gPg~A6DN[H-.޿RI(u$27{9WD{t(3C2Y_J.pt-lg7g1giYr^vrB<:~:@g5 0[yEI-iTX3&Qwe;Hc[nB [~$:C/}Cؗ\&G XJlVZ"{%"9F˰\Ap*ڋ+pMb*a=tdJȃ-|hy`HR_jG+F\$wkSx}Yw,ommC{oΆfa- Q.B~AHV8EHfÍbu{gڦl#t#"v*S{дae ʤϸ8%N]L2\w;F=L2.LݕckhYd9a _" ΄nZ]"Es3f9/8!k03I}"l\+ T?S# D m=Mxdkcۮm%G^?ޞ6.='nvP,^o[ 訿^[oOi%}US(Y-]T!%HBm! f3}k /}aXy[ypvx҇SV ,\weIND3 {b'Jߡ2u}/12HbT=̡%DB_i(XP?YV1(5$9t4ke"Y-fDCA83q3f B!=𷝞τ}y9<\+uMEk]ۯ=e̐?sbQCTc74hZz`®r5Ynh*SiT~MF)؛-p4E ſW Lک˔eYXnn^ cy%kԓ cmd8VN&85DT~Z"\˂scvvw828N-̱/2$Q;V8ѠP[(p#sSB<уnaDkb30gUT/n`2WQVx9C o81 DR]}J >#5IBҶQA{m%JpX`CNR駝U@SM%ؼqͩ=Kז\:) m^zSxE/ڄ2vt-,]ڇN{^SLd\w'l˖ gjM\ ǰjV\΋ы!wzkWeW  ` (Ws j@)_ $a؀lf8rU80~iX 2t"tKy@CZi38d(d}8*2DŽ ,fCCδ H4z{TCe\)$*kͩ|2+S0wgaӓ4Nd3أTxI9΍1#7p,PD7$ (ɍf(/݃cŸS~>;c܀Gм] ^R)UQ7&=cɀq׏0uL 57vPv5!E}cWyՈl3bD咓n#EWS0qq7[/)TC m"zT]~LZר^x۩Fs?Yut9+,ERݕ7YJMkY b+}ֳj4{p&}>fW]EdݪaЦtC>WIyDo1(:!kք"qsx`6"ddQiח]nڥŴ{ψҩ5%;iC" 2B8 btnț</@}+TC/F ez.ߵǸ8靚7eۣewuCB{ۓd'}ϛ垃180O\*P\('iqA C_VdE@H2C0]\M;9SB~]N<3A=82|e(᨞8G@uwe龼E٨R!a:@ ) (ɉJl:Rb;6'GJM-iKO Ӆ˥5S0-2$ !Ϡ"Њ&ߝu4uIZ*,Hdw?9;0yq`ѿ:zƒ4xPW7I=ikvkDwtDU-;aG[ -捖rwZO|= gza@j3`$yb媚9;A;i/*;a8/ȒJbBV1 tlg@,6a?_$JTZۇFYc5`lw6醮 +DlݫBuV|]bFFjO^ȅŜȣʰQ`m*j x`"P~YnSyv^"%+5uR}uVs)^P |4( wsˉpPEZn,8 MYFz Ifs_PfS(\eV;;ƄXOt*Kovg3r8优oOf ]=O/IT6T7d|ͬӯP6+Lvb>B {-ӡW{~*~Y\eL=R; jIbLg 62]ޥQ|uOWbeZ1\0T.f ubKM,]RԸwjXjkq_#DY!5W'qXb(]*.@oIa>!~: LxjXCk0Z{ύv4@`&vEQC\D8t `v_ +I}z[4Z)I->6(Smф려{uj}T65@2-HN١2a~0n9akb̥ լa%kaeboһ𦩏)= aș֖2+eX˭,O-sX{!vK {zhV~c/"M$B8=1]ִjOTyj֎ ~N7GƤSї3:GC ʜc*RFQi6-y5Iu 4Ɏ|FT>-ws݄wJ2]!ڐ:xp+?i мo \ rIX ooا| 4ѽQamzv9q}n]4ss/*F&&7~'U~>3XdXފ9 ZȺecA* ='\ =< T}߲!{ s#Or&P׺^MOũ/Mhj{2.V0n 5=`onLV̼pR})vAZOcF rxԣ$[Znިa@7Js.9LRJ[sN6l7 ښA0ѸHFi}mv_ {R@qBjk:CC0h@r38kշ=io*b2Უ4Xܹ(-JMcΥ!Uk0L% amWkSZЁx$U5P \nՙT҂!u/-+ֲAJs1C'zi&d39bt¯b~uVg8C=aKXoõPOȚ/B40C/v=?uЌMM֌p,>h˩{,/)r{Tv/3d-H%{jed%\H.IfeH9+td &ٽ[mD.-b@3 2h\FNN˫pWEڵobӳo⎚2W77NKe[YH0"˺G*]\V͑_)l`&z]'I;e>Ӫ}׶k)JX*@:# z|>h+!!E+㈉)\Bg>q*DV"s+V^ b?`7\HxkO2v,W…_!}Wi1]%[^#[&e eSjpHeT/dE~V\1i;οYX69"F+>=,=PIL'.H3&.V}>k Z7LʠuV2NKB~IcP`:n@%2pFOb5ZQRf],Y@Rݘ?%p\8C(RXMeHJfQ414+ ܤ^}r:5ZPJ*iqWfɐ  E"01VPjA Tvtن}tcCV=w_EnNc'Dxp!@s۷P.4:`2LR8_ lAer&UfOߥiXF jjW/no`Od߸biRyq$INiV5㡖%A3h7HfDqXZտM8D@C}k^iuʳ_A/X~P.xoaP_ay R2ͺX \u{ 9 B=2/z#m"1R$X -2EZ-0O~7o51'w_ymKQ7P0"7?okz8}S 'e\XIy`&ʀtWQ 0\_xRc1!^kgv֡ŸWEX zZDӞb1+@$f^`Tg퇄o1Qj6*p7cT77L}HkH1gȴf_v~ܣWn  Fw?K0^J!bbT{|$dD~bgZr2#Ή[lHP‚]R`ϼ%蕖gagbqvb`€)EgZNI.X6^#P7@#xtWc:vxK4t.=yhf+/<Z/*~o$ r³;en6® 2y9iDh d~-g>T8hkG͋7UfF/2\ zcƠP"J1;@G_chkj۷'ZYɵ=فg<%!U'ôɩo\"f&zSBi8{2-mGD\NC+KVNP.^6m9YINBHɓWRI ,[0T^O{Ybu.荮,leS1wJ:1c]Td`V$ A?$2U.Mr ڻZHnBvx\3:ZdIQ*%54O<8]A Њ?SmYF`|9xS^vYVۖӊa9r*Gls5{3H"2ooq@m "G*v %UvCl40QBDSCc"[z`">*@5wQ7 SaGog<=C34}a9)q ;j7GjKz J+N[7j/8Ӝ{ ryz b2<%s-;an$]I=h='cTTJ)0kU.aam*\k]޹FV0@@fF%Yp0AE(Q6}^= ҅L8A|/D^ Mj/o✀y=Ax yyǚYԤɄuכbzke.t ɝ*|sg?b஼>U;h1on;A&-'W25UvZV;@V-~gД(+L]먝L;99٘iG<,ܕp"ey>_b#cLNXhUlxRFPn7ugWL3i'~.ӝlŭsC9M"{<RaG&7܁R@KqjX.҂#LS]yD~bY-'fy3Q ;dXGMPy2ҦX.ϑJ(ӴdOwp[)nY XGIˇ䨴N:%̽Z}1$d?V_5\WP0ז>61i[P[EF rG+G*98@RFn ǤgtO^0zdZ#J; =ӟ_9NIN!jviMܟ=J Կ;V^FNwG>\e J[/fysSQ:oysj_:~3:~g Sܘ1ZOL]6sSՑQ{vO OjhLo ŢE#8T j: rWn,3G ⧾ܪE,U$ԛw(%Z A/pCIN)YlwZѸ{ UU(hWɶ'0:+oVۓ5%OƹZ1ohv_o2D=s\=\6$Gf`۵Gjd"$#79 ~chűmtSJYP]M+vd~mfk 1e3K?,=ݖşG^ D!D=sRJ͓e[j`=C&_D{ w%Hf~YD[F WO"kLRC-2_ݬ&$ !!&%ү/PÂră ͟f*T\JxbZ4ɂbw]1f = 4Q_Gt5b"5Gs7@NEJc=;;ֳ;0 'U?5ݑ`D`|2ܔO)D*/v?cߛ5?}=G"C SD='SsO^ ԕ 8 vf/΀/o/ߝ`+d>V~xˁslmIbb )g<s\o+?p- P;Vdm@w>x0Bc'Xl И븆>'Ğ<5v!9C?>/c(ŝ'%.5Lo GPQF ;Rt {JɼLA7:Uգ}3XX/[&~Jwt3(L!uR[ XPK:Fx_2nLGE№H|7ɠ[\8g-Pյӓ޷xV\Vp*{Z{1:ufֻӮ704,q}F;@h\5w؎Q vJQ U~µ[`$zӡt E;^[ZI~a8V; ۵J372pcA3(R G`@#]0~Xt5<ב+l$,Ay\D"92eV/9=okи)EV|JYwVCz!z}UtQ;|j(6sDr#v$LJ0𕾐E47~2EO4pgtCj(Jםt glcH5īh42T "yW'i٩7#ףS\j#cfy^ a6S /\gOo.bfk=|Eh^9\B8IM*OJWIU!f86Sl-0[/`B`u:2/QCoyh ׏3C#dKzJh!{~c_K<VcXhJ{[Qp-C)k)%28XEඉ;(+bVOhnӼ)up>v wt૯V$&>zcM> 9_3'OYH i)yQBqy< B g3zF&/E,>P_ 9 c9$ҸI3!YtU='w\%㗯@BKgh|k 75!i<^~;HpfCw,3DjWnxd5o/ۭPK cNZiCG-HRATua:xV20E JUŌ=3bܡU { e eDվ&0oDZO"xx5$s\67X=_ }|njvj>4)sDW*BؘdVWX鞌***eW23P1_˞{k!TDwj9 睆>j:]_&P() h>^ln^H$֛PLnnE?u*s.0(7yleq$~W3Q" %c/0*4eĐEL=|&@R,%V"T+߹O T!&,T^ ֱ0#*K1%l#1KTߵ3 Y~Ó?vl[ʔ@ך`>XOlӑAK'?#%/sԡ`esM'%xrm翱a .My Igh|M)UvIYa3h )BKGO`5)A=qe$= 'ɏ:NbP(@⥽i855wTL-\.qcr ^yZ5) %w|gYړ<d 直l<^[fRM0nR1-YSA>ɀ'nc=^G *ww^;|O QpS_K8z3ܓiw址$Gq'DV3,qθH\0Kk')7Ub=촿DSnY0+FWAei!.1"DHO5w\b?Ȃ6 [ٻ?)@'1#HW^x^&h rHo\g_ 5 ?ك%v՗\M?DBpJ⓮IU !; qCr#&"켙`Nf9s C|qz<5\v݋ g(!&Kjcg<2?QO`&;]Rz:tT)$=[ .?@Ý MQ$p'FD=5ten۸'`@i(=If9'Ftl-XXtIǎ.~h]HA&7ZXz[@e5o] j)JƜ<#s雸}r)I&U R. >GwMAYK{wJAEAJFLTRܡ"&3%.Fp& w1d"zں"n_L35 P}+w L"QR0i't5h JD -lb Iaa?X,CBYll9$М'6E>%]'zrs!ųvްӐLONYVJ{ov4-(E`1QtDU_D`z&*uz š;kٍTݦ:/ ]|cπִZ d/q5L|ДQ[(?Hl!7#@&H Srظ^pxN>GʼnƝ:uI.0W醟ՙOTn۩6KNJv,/b9rR?"\4Q\ϝi`35j5X{Pxd|s=Cf[] #ެdmm*c.G1ɥT"ewPq~7U<(}(@xţ> g3ګ $B5q&@1>\"־(;mBf ^8&[^F_ b"uN!fؽ"DB]0fM?ue^MdRr[e4q!ot1K,8s |@|UfA$y؃]T$EO{̻I}md YZזpOZd^m6TL?Y %uͮv#l!&ԔF> K*IS?$'<^ r\xȌqga@*:J%Xn NPDg O5k c 5PXx9,5Œ3#M3Y .wEk\djFelzN"OTDsM-#HnZMyG&%W76G#Lv^?DQw7կp{r7.3$ `  8Z70 Gy>!B'r=N~ -GHFO:V}iQpEFqݹ>IJr`#|RKt4fϳb> 5Ki-~ŀ%ʆĒ4Aq IK$JK pAٽT"|@ˎ&AuMu$)6`A`chiȅ>\&WAYyumJxEG7`.wʬ=vF}f38[$!L1fk)k/)CQdm Ν5X:ӵ><ZaAk1 &z64 X x/FL䂴)[/V.·:Ĉ3&?4K )&** HK/. G==T$ɕSTQU9ȣj\>Dy3YCS!O^> 8Z[5 Vc^,/J%XI:i1XMD=a?;""n${ǎwGlu;^h su>@ϗ=&GNV0=Jp Gs뷜NINr03C$*;7ڻY-Ċ .跬M#J^̥|pk#[CClkw{7#qRFH_#QAoԁO)R/l{kԾR{CoL\BP̅᭙;5@C%Gfnxjyp)7!W?*Q7~̭QFiɯ3dӤ3=,8k(xZ|H͂훳N73.Am}0ؙdKV\E5 ٥t"Y>0 #1Əӿ!,‰Fe !{R˜Kfu'#Y+NUe#s!M. VD&RnJ3yN*|~dYװCT GɌ`;\R6Īi.Ov61;[߽w32΋ݛ􌪉cBlސ XDs34ADUepw oRKbޮ+OFU"A # VB%ifpQY$h 䳃`H iytPˉ7^4c(;bKJ?=u޸U 2ȭ[d,ujg}LQfdfGŦyr3Jf(ze .Jw#TkV"}Ǔ㇯o<~|VZS#/$#"B8@<W_5r5;M\ i >>7+_F{-qYN~4>28B^LϽl!m9BktDPä[pot24Pv&dm7"U+M ̇M ߴr4ոV07Fhf^LߞO YZ