tukit-4.1.6-150400.3.3.2 >  A eq*p9|A^%+~g D cTW.~L=CEުnZT4O~SGV TiIfjazwT܍dY$QX!KЬVt %TV2~|5,^!-46:Ζ1%+UrB AWy,}ݦW|e&6 @ cbK3 Gi nf;˔UJu)AmI'3׍63b8e903d01225b3b04f03d9b650fdaa5a3cd3e7b193029ae75adfcf13a5c0fd93a4fd7154782e5c4a20965324baab31f318a30c3(Xeq*p9| 袃b˺϶c4l䁦A"oI}`Tm̥$fl܂] aGt,'GEh* PSO?]MH'mYje@]z7.xvIònjGaH?،\gq&դ(ͧx×ޟjX&Fz$\Q"\@J.g'72  a9-ZUCm{!P@1(Fߜ͇FcA>pI?xd  V )5flt             4 f  t0x|(8|9|:|=p>x?@FG H I XY \4 ]\ ^bxc!deflu v(wp x yz(,2tCtukit4.1.6150400.3.3.2Tool for doing transactional updates using Btrfs snapshotstukit is a simple tool to make changes to a system in an atomic way with btrfs and snapshots.eqh04-armsrv2SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Basehttps://github.com/openSUSE/transactional-updatelinuxaarch64: if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in create-dirs-from-rpmdb.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi: if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in create-dirs-from-rpmdb.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable create-dirs-from-rpmdb.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop create-dirs-from-rpmdb.service ) || : fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in create-dirs-from-rpmdb.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart create-dirs-from-rpmdb.service ) || : fi fik  `*F~A큤A큤eqeqeqeqeIeIeqeIeIeq33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e69afa2eba24278994ae724ab923a8845825996461a8bbee21c7b036b06ff39ffa2834bea3c152a1c7639e8f2e9a0e569280b5de4b04b9f36c7b119e48f26f0cb38219ef8c377ae316a01bfc558440e4c018e7323f985734b529c8763cc6f60fdda5d09450b2c0293d56567f7e25af230e0b57f89dea487b5250ee055e12aa0c334ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc7380e9e14e45c77fcdd27b5e6179dbc7a07479cddf326eaae3c598acbe43dbf384rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.6-150400.3.3.2.src.rpmtukittukit(aarch-64) @@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)librpm.so.8()(64bit)libselinux.so.1()(64bit)libselinux.so.1(LIBSELINUX_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libtukit.so.4()(64bit)libtukit4rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.6-150400.3.3.23.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3e@d ccvc@c6@ccobbb@bq@b$@a@aa@araexaLl@aD@a<@a6a,@a /a /a@`@`\{@`KW`KW`H`H`>(`-@`*b@`&m`"y@`>`@`@`@`U_/@_@__t@_@_o-@_h_h_3_+_$_{^^^@^|@^ku^^F^V]^r]X]V]v>\\@\@\\\}@\eX@\eX@\N[[k@[[z@[#@[{@Zz@Z@Z@Z@Z@ZlZ@ZkZZ@ZqZTZ&@Z@Z@YYYV=@YS@YRHYP@Y0X@XX @XXXXX*X@X@X~@XWXRXN@XF@X5X2X2X-X@X@Xx@iforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comschubi@suse.comfvogt@suse.comiforster@suse.comschubi@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comaplanas@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comngompa13@gmail.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comiforster@suse.comjengelh@inai.deiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derbrown@suse.comrbrown@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.de- Version 4.1.6 - Use permissions of real /etc when creating overlay [bsc#1215878] - Version 4.1.5 - Add support for configuration file snippets- Version 4.1.4 - Workaround for broken Tumbleweed package libfdisk1- Version 4.1.3 - Suppress SELinux relabelling output in quiet mode - Documentation readability improvements- Version 4.1.2 - Don't try to mount user mounts if they don't exist [boo#1207366]- Version 4.1.1 - Mount user specific binddirs last: Prevously the internal mounts would potentially overwrite user bind mounts [boo#1205011] - selinux: Relabel shadowed /var files during update to make sure they don't interfere with the update [boo#1205937] - Clean up /var/lib/overlay more aggressively [boo#1206947] - tukit: Merge /etc overlay into parent if --discard is used together with --continue - previously the files were incorrectly always merged with the currently running system - status: do not execute the status command if experimental - Don't delete created mount point dirs any more - Small code optimizations- Version 4.1.0 - t-u: Add a "setup-kdump" command; implements [jsc#PED-1441] - Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in the update environment; implements [jsc#PED-1078] - Add support for "notify" reboot method for desktop use [gh#openSUSE/transactional-update#93] - Fix kdump initrd recreation detection; the check was performed in the active snapshot instead of the target snapshot - Document register command [bsc#1202900] - Avoid unnecessary snapshots for register command [bsc#1202901] - Various optimizations for register command - Remove bogus error message when triggering reboot - Rework /etc overlay documentation in "The Transactional Update Guide" - Fix incorrect manpage formatting - Remove leftover "salt" reboot method in configuration example file - Replace deprecated std::mem_fn with lambdas- Migration of logrotate configuration to /usr/etc: Saving user changed configuration files in /etc and restoring them while an RPM update.- Version 4.0.1 - create_dirs_from_rpmdb: Just warn if no default SELinux context found [gh#openSUSE/transactional-update#88], [bsc#1188215] - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure [gh#openSUSE/transactional-update#88] - Handle directories owned by multiple packages [gh#openSUSE/transactional-update#90], [bsc#1188215]- Version 4.0.0 - Last minute interface change: Changed "List" method of Snapshot D-Bus interface to return a map of properties instead of a comma separated list of strings; this will allow retrieving the snapshot properties even if they contain a comma in their value [boo#1202147] - Remove "Snapshot.hpp" as a public API for now - all public functionality is part of SnapshotManager.hpp - Add header file documentation for SnapshotManager.hpp - Add method to delete snapshot [gh#openSUSE/transactional-update#52] - Allow setting description of snapshot [gh#openSUSE/transactional-update#55] - create_dirs_from_rpmdb: set SELinux file context of missing directories [gh#openSUSE/transactional-update#84], [bsc#1197242] - Fix broken logrotate due to typo in config file [gh#openSUSE/transactional-update#87] - create_dirs_from_rpmdb: Fix handling return code of create_dirs() [gh#openSUSE/transactional-update#86] - Fix broken "shell" prompt after selfupdate - Add documented D-Bus interface definition files - Add tukit_sm_get_current and tukit_sm_get_default to C interface - Fixed typos- Moved logrotate files from user specific directory /etc/logrotate.d to vendor specific directory /usr/etc/logrotate.d.- Version 4.0.0~rc4 - Fix building with GCC 12 - Fix stack overflow with very long commands / ids [bsc#1196149] - Use separate mount namespace for chroot, allowing overwriting the bind mounts from the update environment - this could have lead to data loss of the bind mount previously - Fix C error and exception handling for snapshots- Version 4.0.0~rc3 - Add Snapshot interface - Reworked signal handling: All public signals are sent from the main thread now, keeping the same sender for everything - Implement D-Bus call "Execute" for Transactions - Implement interface for listing Snapshots - Implement Reboot interface - Fix bug when using --continue on old snapshots - Fix hypothetical integer overflow in snapshot list [bsc#1196826] - Fix wrong sort order in status command [gh#openSUSE/transactional-update#80]- Version 4.0.0~rc2 - Fix missing prompt in "shell" command [bsc#1196580] - Add output of tukit commands to log file - Fix compilation error with GCC12 [boo#1194876] - Fixed (non-critical) security review comments [boo#1196149] - Fixed selfupdate - Code cleanup- Version 4.0.0~rc1 This release is API, but not ABI compatible with previous releases; existing applications will have to be recompiled against this new version. Major features: - Introduces a D-Bus service to access the libtukit API via the org.opensuse.tukit.Transaction interface - Introduces a C binding via libtukit.h. Other changes: - t-u: Rework --quiet handling to make sure no output is shown even in error cases; this is necessary for automation, e.g. with Salt. [gh#openSUSE/transactional-update#73] - tukit: Allow storing command output into variable by introducing a new optional parameter for "execute" and "callExt". - Replace multiple and non-standalone occurenses of {} in "callExt" argument. - Split transactional-update.timer into transactional-update.timer and transactional-update-cleanup.timer; the later will clean up old snapshots even when the system does not do automatic updates. - tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged". - Throw exception if snapshot is not found. - Fix various compiler warnings - Update spec file: - Include tukitd D-Bus daemon - Only install one version of the library (as there are no breaking API changes yet) - Add %pre scriplets for systemd services - Replace %systemd_postun scriptlets with %systemd_postun_with_restart to satisfy rpmlint checks - Add transactional-update log file as %ghost file- Version 3.6.2 - Bind mount root file system snapshot on itself, this makes the temporary directory in /tmp unnecessary; also fixes [boo#1188110] to return the correct snapshot's working directory via API call. - Use separate mount namespace for transactional-update; this should fix several applications that fail to run if a mount point has the 'unbindable' mount flag set- Version 3.6.1 - Fix rsyncing /etc into the running system with - -drop-if-no-change [bsc#1192242]- Version 3.6.0 - Simplify mount hierarchy by just using a single slave bind mount as the root of the update environment; this may avoid the error messages of failed unmounts May fix [boo#1191945]- Version 3.5.7 Various fixes affecting Salt support: - t-u: Don't squash stderr messages into stdout - t-u: Correctly handle case when the snapshot has been deleted due to using --drop-if-no-change: Don't show reboot messages and avoid an awk error message [bsc#1191475] - tukit: Make inotify handler less sensitive / ignore more directories [bsc#1191475]- Version 3.5.6 - tukit: Add S/390 bootloader support [bsc#1189807] - t-u: support purge-kernels with t-u patch [bsc#1190788]- Version 3.5.5 - t-u: Use tukit for SUSEConnect call [bsc#1190574] Correctly registers repositories- Version 3.5.4 - tukit: Fix resolved support [boo#1190383]- Version 3.5.3 - t-u: Purge kernels as part of package operations Required for live patching support [bsc#1189728]- Version 3.5.2 - tukit: Fix overlay syncing errors with SELinux [bsc#1188648] - Don't print message for `shell` with --quiet [gh#openSUSE/transactional-update#69]- Version 3.5.1 - t-u: Disable status file generation by default The new experimental `status` command requires the availability of /etc/YaST2/control.xml, which is not present on all systems. Hide the creation of the corresponding status file behind a new EXPERIMENTAL_STATUS option to try out this functionality. - Increase library version- Add tukit.conf to spec file- Version 3.5.0 - Add alias setDiscardIfUnchanged for setDiscard. The old method name wasn't really clear and will be removed if we should have an API break in the future - Replace mkinitrd with direct dracut call [boo#1186213] - tukit: Add configuration file support (/etc/tukit.conf) - Allow users to configure additional bind mounts (see /usr/etc/tukit.conf for an example and limitations) [bsc#1188322] - Add 'transactional-update status' call. This is a POC for obtaining a hash of a system to verify its integrity. The functionality is still experimental! - Internal bugfixes / optimizations- Version 3.4.0 - Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766] [bsc#1186842], [boo#1186775] - Implement inotify handling in C instead of Bash; this makes the - -drop-if-no-change option work on SLE Micro [bsc#1184529] - Use `tukit call` for up, dup and patch to allow resuming an update after zypper updated itself in the snapshot [bsc#1185226] - Fix obsolete output type messages in initrd [boo#1177149] - Make different base snapshot warning more visible [bsc#1185224]- Version 3.3.0 - Add support for more package managers by bind mounting their directories - Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539] - Link RPM database correctly with older zypper versions [boo#1183521] - Don't discard manual changes in fstab [boo#1183856], [bsc#1192302]- Revert inotify-tools dependency: The package is not available in SLE. This will probably have to be implemented as a native C version.- Version 3.2.2 - Don't skip patches with rebootSuggested flag [bsc#1183442]- Version 3.2.1 - t-u: Forward --quiet option to tukit - Regression: Add /opt as bind mount into update environment - Remove output indicators of the called command to not tamper the result line - Fix /etc syncing with --drop-if-no-change- Requires inotify-tool to have --drop-if-no-change available- Version 3.2.0 - tukit: Add new command 'callext' to execute an application while the snapshot is mounted. '{}' as a parameter will be replaced with the path of the bind mount. - Fix --drop-if-no-change [boo#1182525] - Check whether self-updated version is executable (e.g. on noexec /tmp) [bsc#1173842] - Fix overlay synchronisation with SELinux (again) - Always overwrite supplemental files (e.g. for network configuration) even if they exist in the snapshot already [boo#1182544] - Improve logging and error messages- Version 3.1.4 - SELinux: Fix syncing of SELinux attributes when using overlays - SELinux: Tag the overlay directory itself (again)- Version 3.1.3 - Fix overlay syncing on SELinux systems - Fix resuming transactions where the parent does not exist any more- Version 3.1.2 - libtukit: Report when application was terminated due to a signal, and return the signal number as a return value. This will cause the transaction to be aborted when called via `execute`. - libtukit: Set PATH variable for internal commands to fixed value to find the helper applications, as in some environments such as PolicyKit PATH wouldn't be set. - Fix compiler warnings- Version 3.1.1 - Fix hang in tukit on aarch64 [bsc#1181844] - Prevent deletion of snapshots when resuming a snapshot where no transaction is open - Make tukit work in non-dbus environments [boo#1181934]- Version 3.1.0 - t-u: Support installing RPMs from the user's directory again - Adapt selfupdate to new packaging - Implement signal handling - Remove empty text files- Add libselinux build time dependency - Remove RPM version check- Fix libstdc++ filesystem ABI incompatibility by using newer gcc version on old distributions. [boo#1181582]- Rework packaging based on Fedora packaging to separate all the components to remove the intrinsic requirement for Zypper- Version 3.0.0 - This release changes the internal structure, but should be identical to the previous release feature wise. - Major parts of the previous Bash only application have been rewritten in C++ with the goal to provide an API around transactions; the transactional-update script is using that new interface internally already, however the API should be considered experimental for now - if you are interested to use it, please notify us in https://github.com/openSUSE/transactional-update/issues/52 - A new tool called "tukit" provides a C++ tool that can be wrapped by scripts to leverage the functionality. Please consider it experimental for now, the commands may still change. - Bugfixes: - Implement support for system offline update [boo#1180808] - Add statistics files to update environment [boo#1173282]- Version 2.38.3 - SELinux: Make synchronisation work for both pre-SELinux snapshots and later snapshots; SELinux support should be ready for most tasks now.- Version 2.28.2 - SELinux: Exclude security.selinux attribute from rsyncing (again)- Version 2.28.1 - SELinux: Fixed changing the wrong grub configuration file - SELinux: Move /.autorelabel file to writeable location- Version 2.28 - Add 'setup-selinux' command for easy setup of a SELinux system - Allow complex commands for the 'run' command - SELinux: Fix /etc / overlay labeling- Version 2.27 - Add support for network systemd-resolvd network connections in t-u environment - Mount /var/lib/ca-certificates read-write to prevent SELinux error - Prevent calling transactional-update from within transactional-update- Version 2.26 - Fix broken sync for second snapshot [boo#1176989] - Add new options to allow separate cleanup of snapshots and overlays - Check for existence of inotifywait before using it - Check that mount options don't exceed maximum length- Version 2.25.1 - Fix inotify watcher setup - Use log_{info,error} for more messages to avoid messing up Salt logs- Version 2.25 - Reduce number of overlays: Instead of using transparent overlays for all previous layers only add the previous snapshot's overlay; this will greatly reduce the number of overlays while still making sure that /etc changes in the running system will be visible in the next snapshot - When using --drop-if-no-change synchronize potential /etc changes with running system - Exclude all non-root-fs mounts from inotify watcher- Version 2.24.1 - SELinux: adjust labels for etc, fstab and grub.cfg- Version 2.24 - Add partial SELinux support- Version 2.23 - Add "run" command to be able to execute a single command in a new snapshot - Add "--drop-if-no-change" option to discard snapshots if no changes were perfomed (BETA, required for Salt integration) - Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33) - Avoid "file not found" message on systems without /var subvol- Remove unused attr requires - Change bc to file requires- Version 2.22 - Use pkgconf to determine installation paths - Enable SSL connections in update shell [boo#1149131] & [boo#1133891] & [boo#1192078]- Version 2.21.1 - Rework error messages on failing umount [boo#1168389]- Update to version 2.21 - Use slave mounts for /proc, /sys & /dev- Update to version 2.20.4 - Mount efivarfs on EFI systems to make sure the bootloader will be installed correctly [boo#1162320] - Fix removal of existing overlay directories- Add dependencies to btrfsprogs, zypper and snapper - most of the functionality is not usable if those applications are not installed. [boo#1166502]- Update to version 2.20.3 - Reintroduce compatibility with RPM < 4.15 for inclusion in SLE / Leap 15.2 - Prepare for removal of /var/lib/alternatives [jsc#SLE-9101]- Update to version 2.20.2 - Use full names for zypper options [bsc#1164543] - Ignore /var/lib/rpm in shadowed file output - Optimize create-dirs-from-rpmdb- Update to version 2.20.1 - Add missing documentation about --continue option - Avoid error message about missing fstab file on first snapshot creation. [boo#1160213]- Update to version 2.20 - Add the option `--continue` to extend an existing snapshot. This can be used to perform multiple operations before rebooting into the new state. [gh#openSUSE/transactional-update#16] - Make sure the dracut service to print warnings on /etc overlay conflicts also runs in the pre-made images. - Add "none" reboot method - Remove conflicting overlay artifacts in case an existing overlay directory will be reused- Update to version 2.17 - Provide network in shell on systems where resolv.conf is pointing to /run directly [boo#1151081] - Print new snapshot number at the end - Always mount /root subvolume when using shell command to preserve history- Update to version 2.16 - Use default command if options, but no command was given [boo#1146116] - Make sure only one process appears in `ps` output [boo#1111897] - Move update check: If a new repository is added (and ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail any more - Avoid unnecessary snapshots / reboots by detecting zypper operations without changes more reliably (e.g. when installing an already installed package) - Update the manpage accordingly - Bugfixes: - Ignore commented lines in fstab when checking for shadowed files - Avoid warning when copying network config - Remove Perl dependency - Building documentation requires Python 3 now- Update to version 2.15 - Move description of interactiveness [boo#1132438] - Enable network during update [boo#1137890] - Add compatibilty with new overlayfs versions [boo#1140057] - Allow updates of the bootloader on EFI systems [boo#1139015] - Add support for /boot/writable [boo#1138725]- Update to version 2.14.2 - Prevent unnecessary error message on systems not installed with YaST (e.g. KIWI)- Add requires for bc, needed for some calculations- Update to version 2.14.1 - Improve non-root fs changes checker based on feedback - Disable snapper's zypper plugin during transactional-update run - Allow parallel installation with snapper's zypper plugin (useful on read-write systems).- Update to version 2.14 - Warn user if contents of /var have been changed during update - Noteworthy: swapped position of upperdir and lowerdir in fstab for better readability - Major update to the transactional-update guide- Update to version 2.13.2 - add hooks for telemetrics- Update to version 2.13.1 - Bugfix: Clean up empty /etc snapshot directories again - Use official release files from GitHub for building- Update to version 2.13 - Fix a serious data loss problem (deleting all files in /etc overlays) in case /var/lib/overlay/etc is not part of any snapshot any more. - Avoid error message in case a system has no /etc/fstab.sys- Update to version 2.12 - Implements support for needs-restart (Fate#326451) - Adds easy rollback to last known working snapshot by using "last" as the snapshot number - Migrate /etc/fstab.sys entires to /etc/fstab for systemd being able to create mount units; this will prevent errors on unmount - Remove implicit --no-allow-vendor-change - this option can be configured in zypper's configuration file now - Add support for mounting the /etc overlay file system as a systemd unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys in the long run) - Various bugfixes: - Only remove /etc overlays on read-only root file systems [boo#1122455] - Disable "Persistent" flag in systemd timer unit to prevent updates during or immediately after the boot phase - Don't set global zypper options during migration - this is not supported by the migration plugin - Fix error handling when interrupting while rsync is running - Filter out security.selinux attributes during rsync- Use noun phrase in summary.- Update to version 2.11 - Update man page to explain new /etc overlay handling - Add special handling for migrating away from old overlay directory - Read default update method for systemd service from config file - Add package "transactional-update-zypp-config" to prevent accidental transactional-update uninstallation on transactional systems (boo#1111319) - Use "up" for systemd service on non-rolling release distributions (boo#1111321)- Update to version 2.10 - Introduce /etc overlays - Each root file system snapshot now has a dedicated /etc overlay in /var/lib/snapshots//etc - Changes in older snapshots will be visible in newer snapshots (if the file hasn't been changed in both snapshots), but not the other way around; this makes it possible to roll back to a previous snapshot even if the configuration is broken - The /etc state of the oldest active snapshot will be synchronized into the new snapshot to prevent ever growing overlays - Removed creation of /etc backup snapshots - Removed complex overlayfs cleanup handling during dracut early boot; only thing left is to output a warning if files have been changed in old and new overlay after snapshot creation - Unused overlays will be removed during "cleanup" operation - Add compatibility with snapper >= 0.7.0 - Correctly detect BTRFS ID when using multiple snapper configurations - Fix disappearing prompt in "shell" command when application was updated - Prevent accidental rollback on fast reboots (boo#1111786) - Use zypper attribute packages-to-change if available (boo#1105992 & boo#1097619) - Add kexec as reboot alternative - Added explicit --with-doc / --without-doc build configure opttions for enforcing or excluding documentation build - Removed precompiled documentation (boo#1088676) - Added more dependency checks to configure script - Small improvements to documentation - Restored compatibility with older rsync versions not supporting the -x filter - Small bugfixes for cleanup in error situations - Fix possible incorrect detection of snapshots numbers during cleanup - Mention parent in snapshot description - Add dependencies for documentation build (boo#1088676)- Update to version 2.6 - Add --interactive and --non-interactive options to change the default interactivity for zypper calls. For previously non-interactive calls (e.g. dup) these options makes it possible to pick the correct solution in case of conflicts or make sure that a script will never be stuck at an input prompt. - Add kured reboot support - Tries to clean up temporary files and mount points if transactional-update quits unexpectedly - Remove trancactional-update-helper (replaced by zypper options) - Create /var/lib/zypp if not available (boo#1104452) - Robustify parsing zypper output (boo#1105992) - Various small fixes - Changed permissions of systemd script again- Update to version 2.5 - Support for overlayfs attributes like trusted.overlay.opaque - this will avoid disappearing configuration files on system updates - Documentation update - Only sync /etc if it's on an overlayfs mount - Use correct locale for zypper - thus updating locale specific packages and avoiding "empty" updates where transactional-update didn't see the change - Add dependency to attr - Fix permissions of systemd script- Update to version 2.4 - Bug fix release- Update to version 2.3 - Reformat help text / synopsis - More detailled output (use --quiet for less output) - Log all error messages into log file - Avoid potential lock file race condition on self update - Accept package names with whitespace - Don't wait for user input during self-update - Fix broken error message output when creating new snapshot without reboot - Fix erroneous mounting of stale grub mounts- Update to version 2.2 - Fix security issue in self update [boo#1091316] - Create dirs in /var more reliably by sorting the list - Rebuild initrd (needed since 2.0)- Update to version 2.1 - Cleanup the code cleaning up /etc- Update to version 2.0 - Create missing directories from rpm database during boot - Merge /etc overlay with root subvolume during update- Update to version 1.29 - Implement self-update - Disable optical media on dup - Ignore certain zypper return codes- Add conflicts with snapper-zypp-plugin- Require perl-HTML-Parser (needed since 1.26) [boo#1085764]- Update to version 1.28 - Adjust for latest grub2- Update to version 1.27 - Fallback to snapper without dbus support if dbus fails - Add workaround for update-alternatives - Add support for /usr/etc/transactional-update.conf- Use %license instead of %doc [bsc#1082318]- Update to version 1.26 - Auto accept repo keys config option - Detect broken snapshots after abort - Ignore user deleted snapshots - Include all error messages in main log file - Add configuration file - Correctly implement migration of major OS versions - Default reboot strategy is configuration option - Salt option is deprecated- Update to version 1.25 - preliminary SELinux support - support for seperate /var subvolume- Update to version 1.24 - Don't save unused snapshots if we may delete them again. Partly fixes [bsc#1071038] - Copy passwd, group and shadow to /usr/etc if modified- Update to version 1.23 - Fix re-registration in rollback case - Fix problems with updating the grub2 bootloader - Add support for migration of products with SCC/SMT - Re-add support to re-write bootloader [bsc#1068933]- Update to version 1.22 - Rewrite cleanup code to be more aggressive- Update to version 1.21 - Reset salt grains even if no update was found- Update to version 1.20 - Improve documentation - Add pkg update option- Update to version 1.19 - Add 'shell' option for debugging and testing- Update to version 1.18 - Auto accept product license in non-interactive mode- Update to version 1.17 - copy modified bootloader config into snapshot - unit file cleanup, no change of behavior- Update to version 1.16 - internal changes [bsc#1045942]- Update to version 1.15 - Rename option ptf to pkg - Add option to set salt grains- Update to version 1.14 - Fix check of return values of commands in pipes [bsc#1034900]- Update to version 1.12 - minor bug fixes- Update to version 1.11 - use --no-allow-vendor-change with "zypper dup" - update manual page- Update to version 1.10 - implement and document rollback option- Update to version 1.9 - fix umounting of special filesystems and subvolumes - fix interactive installation of PTFs [bsc#1023026] - fix dependencies of systemd service- Add Requires for lsof and fuser- Update to version 1.8 - fix references in html docu - build kdump initrd if we build standard initrd, too- Update to version 1.7 - build html docu, too- Update to version 1.6 - Add support for kdump [bsc#1018098]- Update to version 1.5 - Install PTFs in interactive mode - Sync state file between current and new snapshot- Update to version 1.4 - Fix wrong error messages - More debug output if umount fails - Try a second time if umount fails- Update to version 1.3 - Add initrd option- Do some spec file cleanup- Update to version 1.2 - suppport ro-subvolume with overlayfs- Update to version 1.1 - bug fix release - implement lock- Update to version 1.0 - implement and document PTF options- Update to version 0.99 - Support for rebootmgr - Write real manual page- Add empty directory /etc/systemd/system/transactional-update.timer.d/ so to make it easier to override transactional-update.timer entries.- Update to version 0.90 - Finish normal options - Implement support for PTFs- Disable restart on update for post install scripts- Implement activating the new snapshot as new root filesystem- Initial version/bin/sh/bin/sh/bin/sh/bin/shh04-armsrv2 1701960722 4.1.6-150400.3.3.24.1.6-150400.3.3.2create-dirs-from-rpmdb.servicecreate_dirs_from_rpmdbtukittukitNEWSREADME.mdtukitCOPYINGgpl-2.0.txttukit.conf.5.gz/usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/tukit//usr/share/licenses//usr/share/licenses/tukit//usr/share/man/man5/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:31250/SUSE_SLE-15-SP4_Update_Products_Micro54_Update/f6614e6846c868bc37fdf8e3d6d74e12-transactional-update.SUSE_SLE-15-SP4_Update_Products_Micro54_Updatecpioxz5aarch64-suse-linuxASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=82c27e6588aefe0654c718046bd8b81ca720d7f5, for GNU/Linux 3.7.0, strippedELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=aa265f6a4b79b8327590a137e4e60b4a51b88100, for GNU/Linux 3.7.0, strippeddirectoryASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)RRR R R RRR RRRRRRRRRRR RRRo8k^butf-878df488d28deed03093c2eac7446be4b51513b064d44341af74ffd5f7efbf4e8?p7zXZ !t/] crv(vX0yVah{1uUl!0ԩea<&Ęפ{ $ ^'(M"p+m6Zhstʔ MppNz/,@NlMC?_۲r ¸C~{mbV8]J]\ۯr ԣTk,TK'vBnG,abookDiQT;dᙾiAar{?Fp`N v7eT;_j=p/Hby YGVѓ3>RG(mAYW;x\bӰL P"HXd Y"nk\qFF-2E1D ,2~J'Z *ڎyf@>% =2ZIw}1[Pg|*X, Mo0>h-WRp?*dӵ3j"?XI?;ذen9JCCw'Xdp1e8?;ؾd#S3=*pEp\|}hϷۢگ@8zBi?{S("~z1;EI e![uwg&뙛( A s6?ȋF?=CVkZMۓS8ng7&rэƄ-.owŻx.~&;rO{w[9ME3hbUxzҗb ,H.mPi4c)[x" E CY?hbݟ` O'_(㛓XLvÛ FgqGӄT 8_ʈKFP>}7֌.ibUFlGV27EC:"< D fq؞O2 / [o6+)Ub6ZwtC&Rh𩬲^ OJelIeDW4Z-<咰XMon'fSײnAb_Aōq+Hm0sW9A ӝ;HsoSJpXO(@w!b[2e68u7e.sۛA-1j>POP1.R,s&PS2=GUzZ*rJ=rF%>3D|"EwTfDod@iHK!?xDGXz=6.Ю ةM? /ۤ pDyF+7m.Z֐?>dbHHw[Cki^#4nf> p[ &0pS$F8nR #p+L?88zEs@~< u dG:YN>61%F$x [H\G 6gY(Q IOg 8K@ZPZ~yHZkFRHd46}ExjQaT6&EW%zHEFs p" i_7;>*@~p^-?!@\j,>,G!#PG.Z茲 )u@܈: nԧ #u6S,zD~ Yv^'} sDK9; x (lj(l?Pe]T^;>R>*@|x-Xt*yҋR,P; ;ByX՚1ٔ\2O72webc,i8PbZ )d^ZY= Ciu MFt g +4l_8Ω6N^8"47ꁚh9lLeWdy\IC XZBy¤ 1fKˇ vpڪA:[C`Ml83V)\xw$%(I#kUS**2<ǚX]}abjXC%1{fR#R-"~dŲ5)|n8TJ'?mF@7"sb8hyNT)yto[|1;G/ГY)-ZnFj2}ؠYӅQ{{{p~R=v4 ',]Ef6Ч;ӭ\#уN^?*hΪ2x{ڠE)o˞^(f#4!yuZv/TQ`Z%0(}lP!yHku"z1I U.9}TVõ hlF-w3!hke A`͐$t:,Gu8A6 `W&#\؀ T3# Y~qs5㪔a_ٿ8?>tXEKijl灾ll b8ȭZx& J9V2 }#sD:op._tϩjK66Elp%shJ۠l.U r/GH C\(4PIukR8'&4WIK'nrji@)G8q-۪J$HEOnLbWLe2ra!5䥨"*xer"6čPƀ6*4MA"SnϼIaڈJOoX a!lΟ`N[FQľPVPjܼF;_ 0B/9k $.w U T3(Lrv} xI_S֞~wѶ+dFmsm˵@)A_qU 1Rs5 "Qst ]B&U?h< <ng3 \ʍ0=Xlwܼ#_M ET|^k1{$juҲ㠊W[<Ǵ`@~C()^rRҞb5 mk Y凧C|A u. .wp$ 3)Tx iPm&/\+kª-R@>P{jwg%eq{G)'~ bg)tt**(Mau5Wf ndP+LsҋwУ^\Z4MX 4A8'7˟͎XpbR~:֬_"qwsHk P P* /GF:8y^v=E M3#5 1—V"!9_Z OPc!p^Hl1㻓;࠘VT=/ՕȠ:#;H6?њT/bd:6T)~Dnt% =^Eu=ھ6Da B@m)XR& 4-gm\|5nR0CXfLd?q\]+3tAvڡOEqwtB[pe;9@5ُ\W CHH{^p$< XaQ$1biH.H.Tis58aZE 2oac&I WSK=sq~˷6AoD[_{DހNp*/tW7RXO̴?[^U-M`C< pbw 'R>au- Cele^!tLGnW~s._ >9lHnl| O ] $;SG@;UQdX /nmpHn: rtNfiw6o{ jh*ʵJXj.>gspAiùviX #bѿL s`CTa8IˁDphyOl fvjO?pαv"3DPP:/i4̐x6S>R<)ls %{%O'J~rJj}Rvm"nPS-/ex70q\o#wx kB00?pA> fWhԗz rۂ `3!HxUf[S޵I8>R)484*wIotÌPmT+q8cxfCn|N&0bT4>@SGL]2+}%xZ2y26-IKWYN^GSfA;YR?gi&r̙Pkv`*xpK'-Qɶ h 7 ;9̈]@#?5Lth DؾW6]A٪:il_%6.bA6թϋ)_Z}JhHB;F8t5z>QbHa_X;uL3_gg '=BV :%&|-Q zq5 \`v8[CتHMgg˭@վe"wa°AAԑ[7C0]byDzU8άu2I %v&vO0RvxlɴG)>th;\[xlL|@(&Ʀe;K3>:͜zB qCۑ))G!Jj6t9 @Pif܎-*Qar~P$duV DpȌ;-͡{LhwnB=w/ R[7A(>`uZ QYvDT@?wڵ ]MX|xɎcA,X+e59ͲuUV9osiHhA(:|.nM ]j䑞{&e'h|_6XS0c ^W!k.&")KgQo1*w (a{symd B3L/٠oӆ eck;>5KXi-A,v/Ks1,bpoK.; /.5ԈiO22짘{{T*%&:ֿ*]cP1]#'2ɟa>i 0.*o26d_`cTTߍ[G\(z)|vT6C?]Q!NN[y)0rQ,.la)hwYKNWsAȬ {K>]gLZQy~ۊxRGlf% 'ۣxL)40,6D%:_4#B&OΑ \pNf!R(m0f% 9hԚ3e㓱Ĥ(N{sP& xb=O͵33) l%~AXmIk6?2[ hpƍiNc~&1lPMVbRo|n#Yb(Ԗ"!F٪e[bfb]w~w$jtF/S%/ $27e(O^Ay?˫'* `n'R$!+ӹJ> ebGQNO;cMHoJť#~8bh|S(J3GSc5Q8r9QSf`bgΪ#ILJ,#Ø=졆FAwhuzi^W}[B @H=p!r5Q#EETy =;QuQ26dwmc>V4=xյ5;x ?OوP\Z,';P4F0}9~Y6(+Ear*n}(?v_ų:u$<_3 9]KL@>9CJrZCZz%؊ݦ}q ׃w ֹ4m{FAe"wۮ/:0ak+ӉpZATQ;Ð 3S)9 UP% LJj4?GȾ=AkԂDky6rqAz4D]T?&"r쾢Fa_8VWҒZhZ7|P4u"_Fpi sn*,g@yld!k!/jlf[)f;] ±?+,tȶMw>0}Fr],A :AXibǹ)g,f e?du++JLKUz`0Nwaܐ=N˜66 L;DmR^iqr,IMD<Ȁڂ4z)r7.{|hX>éO!zM~@ t3И)*X &W\U|H bD\JEEDn׏4;!$:qIJ0Dj?Lq&Wj$x|oqaIEǤѭ*v-߬-W5|Ƀ6=ʹQ.s2jkBç|P0F{Wgzl F9L݌ykVZ!0,p&Jv?'`u`a; EEB*+DnAt`IKjqXBቃ`- JӸϿk$N(;$ɈVzGH"nGz=+ EK0W2${Jq`{&wL׉9eo!O/bR3[GKNJWp|JkQTB &[}<#G%M 4}(06nC_x 9}X ™uRSZ>;GKI/B" { Dp^RLB N6_!ҠEAhD'LQҦ]n]P%gT}+Y)gK{UiPlkLO9'q~Ȣ}2KI`6"@jOuq:,g< #ذR4ޒf% 0&,.TA%(e͟H'jIOA>,H!Xe? dg4#6F7T)zxмIlj[*zТ~:mS!@ߗ^L#ّϡ# 2ĒV ЙtM6fNGיn>yrܨ}lav[K=)3p=]FXvq?MDOdNxG`u_>הC<$}e6C~Z?FV >- #m[U'. FZ.{RWy9,6ry:iHW#Uf(& M1AIiXͩ:t@]D,(6F+R4̎ZG[}Z"6sj_֪nrkɆ\p*e/C& |Y (46 &ŶrcBt~wlN!*&S=/NvGl+5|j>L ԺL8of۞Y#TؔIɖlӯ q]\RI:E9Y靦]Kb[D.'*MYM.{%hjLxsX& T3# P%np-⍶rRlW#k9L )k}O(:CG:˫>8 &r!TPGWcmig/c4܌E]lP@ꈾ{ {^I˃m[.z qO=NJ4!3VWApY r6חx!cY B7aId̈f+}P}kqԧ]\v#5S!#3 (Iym{\og=nq_ۄtG^'ƢFX#j^ȼc GuKt0LLյe`D],,CHX)x{28W7RK돵DvJW gxi-*H W;DlW88Nf\y}[f].ZOo;(i!-Ypc5PPƺQ7%a;)"!$صbwegbӢEu40W-D'P#rI4_1Ӌn $g&T * s$L*""69HZ^̙SXrϟv$sgqP%\1N JI sB/{*'c,Qk&7`uzy% 굧r05m`\'?+g@af nrbB5 l.fJilnx0~.wnC'?:2$nuy*]x6Jdkz=x4;Qm:XWJѲCR6() WS!;`/!UX;Wc.Stv!؍QPֽ$ ʆT`!M@0U-v;~rÝ0k^'v.ٴfiVCRr7mtkziRbqR (lQ,d^JRWÃOw?8ujA:BX,9;f/Hxc2_mAm|SXB5>} UFޤ<^KcÉ{C J$nC9tt*`,x@99Ue;ܧT'{Q=#U/KF]L'^8q 6DJ^lt:qz:?mOBTt˨sF2g_BқwUI.ipgy*WUܢ(tu}*c?<0F#X oXa6VZ%;{VnQA[g'AΈc/ ^x3Ir0ވUz! Uf)%4ׅVx.*Y /ĨVq@֩\t0Z[8Bq/pS҂5YRGfr]N{q4 뼲(/&^_4 4?C"bk" ϭm)jgDߩZo{';6):ףDl.l= |HDv=t#TvTe}nzxF9j_01CU͙L+K&e;:2e҈;+AxLA)Ov5R'o1U=(=# B!М dUIo÷7ɠy1@AԴ}#AT[Lz,A1Kkz:s6 ('A?@/qv@-,b:5A[Oh8>?nt;cGCŒt-CWNl6K$[ڰ`e"}bfZaĚP—\#n޾jPݹk1JKyTK/߅`Pl|k?q 1$/5ق^ykH`xMCm &Vs|l{TD~1V1oωc7azdH*wMA2/ޭ~;[K}\Z뚭dQY.揺u^Sn- T3݊[ ow[y\`?EuO@z%1CDY^١ZAX:^g73?6yޔ8&+~5 y'& .b@#aNTv/Y3O։kqgn;+eФ N=6vTpKͷQkܯqYeu&@ͮP+ WƵT?},UO(fev@ð3^5m7:S%Ǯ7 8hıL d3U2D7HĐʒ_1 sHxO6@U4N$=~yÌX.p6ǓřAq z I:NZDjCW\qY6ֱHl\ž-": |_Fϰ8(Jg/z닝?<"2P9=)GR8P8>w 2R:x ٩转Hvq=dY_ځB9cz= k5e(_UD6$lv>ܾJ\(>Ac.6-4>iIЕS>lŻ>|&*cVTK9=o`.ϱNSGO8 %A X@FU*-x̪P(ڢ{~64DiTM$]&Fme"Xe9;fVaK,65||,$WR_Z59v|;UxGUId@9Q?>GZ&]78\ggNs?ՠ,sF ByƢed sɁId(_v* *rZ}ha+B2ȭZ0$ ePMngʲ@hőM=|0\ #;y0adĉ윻Y+$"#o5 ո9_FPܰڵjt?재]60+$;i 5 Y^)I΄m\T9ve7D[u(g;sg5fЮunޛn2TeڡóB]]&]UaҁGC?EmՁ#}Ճ4af\{I, ¶~d 6QVPhש-`8<Si)Q)5 A5% }0 M` i?P`+mPt2 lJPJ UcAҒZ\_-i$JqLϋfw   v* b%r+_fpΤ \?t4>E/ˉR2_(<$0SLq60!,H]yTMF3bjq,UIO#U)kxoa-9EV9@o%+*P2>UsX-` 7{|| X0x30+]89]&~Jv_vO:]ۓh4q=~ON;2v|Nyc6ۮa}hϵBNqf M%oX yX|ޙݽ^2JB@3+`',e&EO%]Y) 7bѯ쩪ڟ߁>G[,+O<mu~CߖZN15 zړ' ߊx*$x nv:4rwΖNWmd]aj,P<—U N А<5.U⇡i,/3Pv,^B!qUOE7$e1\ȆWf6Ix 5,/Ѹ@N6,}" _s.e\P TIb=@CZ0[+ Œ+0FkR,QZiP;ҩr Sϣ*ZPi1%#>2HT&(hslfm([9MA-!t\$+eO6ڭlm/m!DRQtA$}9CxO躪$W8 :$wRjPa$&)kr zSh.ۭ!)iO{翛,Aw[ףr'$EfTV\Dr9]]cm 3;( 5's%d<{;B)-ßqݢэʆړׅ^Jdnndr:=ҘsT҄UK PAQi8}vgwO!C䠼ʉ}Ajszҏ?,T t2Y386S6<v)ƎRt\v;Gd^ 1بQoj0\ 939(dڙwdΎUCzwuKZP?!B<fK[x:F% 1CJ>y;a{_+4m灃,}էF}iYsmXs+>/y7I'|pÖA&v9 - =vOkrR*WBW0Y!˔▴lf9zf|ݘ3s˝!s7 5?FXlu>g_ȫiaEbYB#q:gT?cOM3*|85Ot{wE,kXLprDm+J mwaK*U5=$T-PGwf_||Ihr/x9[6[ҤE+́;PeGw;Մ9( u2ҏMj_qW/*bsW =3V4WJ=8O>dls rO9nc521ڇd{<ښc4̌gFe>&z \LNFbo (  >к{#AufȈxLj80W¹k#:t]Y nӑ}6a2"5x]*Pr`9/Jt|RWԍ#$Qm;nTfuVVju@gu࡜O_JR—i!MɛXBvW H$HoiGp}yJNpj2A[Z .OK#!{OpjO!n.o,I,R\LD,7n&?MfC<"$!k?e^àw&tTO7IG9DEW_0H/u0ivXT`c(3\W0k]z8%NB;<2rxUtkgD 5ҢnKmeJ%_TQOT]v:+TrWgx2ե0{Hf][/lK%]u?Z2,.|b mҵ7[߹[F tӅzd y d_a4D: 5j͚B(7R $AG~";քK=2= }Kh3y̦VDXL*jC멺GUücSП0Lg>FMnq^ܦɵ̎wGT,!{B,!\Rhճ4 )z!䥁@>"@2B:Sh[d.tWey50uEsyitæމKr,<#%W:F23ZgL\[ּGQZQ^ly*c'' {pgoeG!.~s)E":xa6~ese,s?4c#UFFFϜ%CT ӟ@!X3:P["ȅpiJ풻0-gho#M^1,7Ixv \zZ<l4;{٣O8T'("3|RHG[9f$ lneYqb\&`Tc+ \[T-˻*SƊ 0 'hfsèt]xsi;nqwX-s+Xiy SbkN^܅-ӳWZ\GOTm3]*8/Z ˬ|IMH4QG7^<˓TxַakAP:1|q.lq h?9ZwN]~nO=+eȓ7Ԇ|6\zEr¿Iů@zyEwX鲡"nHT,MHp3 b YzgOϝ8WPЇwǦ2{Qׅ[{`ͯyOH+T<W{# kd ̢4075['irȸ"AB &5ҟ/o!?(]k-WG޳OlO5zj{7T详׍v[xqc\Ѭ'Jh95A+*7-BYo .0e[t+nP ۸Mb!>L-ƹ-L7!)5f)APuUA0W8 mYJW\q ;6d%* J'rz96a[zM["rU3-_d~f?Iŕ=i~ލݧS; vK'yh)46n$0RgDKI"âH)Z1!UYHE)X@EE+%Z 䗘:l*P e`6?/ٵ NJ[Z~©dwޒp7!"<iGOG`t[i9$pq>L]%1);9J!K TݰSy^^o%s_Zss#[xX~"JWo@k\4'N& cķ5Z~W0_V!-20ܓ_R#`(ؿfN+Aoyf. EV!6= 6^~M%8Mɬceɏ9<AXJpR|bЀPy~v8"㎣t3u/ ;Jd{xrpAW>:(8 sKy-7Pd%[^ŷKU>X4r%w@cG,0= :8o @^ R_4vRc'v i~q6mi)wp֧y@$e0]> 0dY-5:0FYN θ.#<hd_D9;lY}H R#~V1)E{s\,DچэU/16/b[[!ɒP,gg>:wC+phűP>3Pv ,dGL7&7 <ߌ9 E-#gctZ.0Mr@KߺCTڬ&_{iPgY VSJHk(Bw7xak89ڴ[A* Td&+T ō{9؈MF. ݫy+CYM z\ΏKޗڬiz\zⅤ7ˬ $fiNy}# ŹaMX I5S*b_6ķaUͤ)_^6]?Ֆx, =bk+6yJ׏;g9Hк Rq-^B> nd Ý AO TrY=&Y.9_J Sdlc\Q6>:N@ Ke4 `r8t:wЪ ۍ]Y ۹;qQҀ_)F(P3#݊n6zV85;&h$=瑩qӲ#;O@o>XGQvb9>6Anj_*8]:C0_95 R9 xG )PXhP=VHx"ngE5[ gt 9h U%0+FeV-Ҏ390R1.p0V2.]zϕĶ9II얮Jħrx|)Wi|R[.|A| @zTOmbŐ)9y^^70do'q-jWg~6ٯeht@e0LC~sШ4\IX!aWp9Q<_gs2mw-䑿*9_5ג0v4yX1ƕ Ô]2HZ v1ܱRV QмWPcs͹2=oec@rA8@m~4|YT$nA{ުR?/5?$Ȯ6H+Tׂ*f[Sf/78߄H1L_dLfO*߻^hCŃnZ6Qظs[g~hb!KO0; #)2]='\іW]ye©Qb/}@^W='5Bgm\>3k:@qWX􀃂1vŢ ݶf)>&;~)0Zw 2^ Y|2RFG$r/сszX^(1k"_ `   FcVB}*i@0Ar:'ҦT.+Ɇsŏ^)U3~UՎ{RώNϟ =m/dBTWr cs:l0KdsR秃1RklM\Ms7oM#%$ ߽C~jϵ>qӀC6"۹[ 2QR鰽# %P+?qF>[Ҁ+s@Y$g"aZPEn#{)ΟCht#&s*ƤI_0B stkBx[IJ"ZnhCiM`c8N2 $cj|]qox *ZQTP}tⳭs$|m 8yG-[e-ze^9!@x8 @3嚢6O Vtr4?ˁzHC'X^W‚^3re>9}&Y)i;p{.Myf`-;N]U8>:j K:d{wX9I+ -Elun(e[bU"L :кK?b7\`ɉ4|NPahb"_v mSDϜ[2O7m2TgtIգ؋)HSSG5Q M1Huag=Z:`sW8HF8I]hϗݓ,"4@®}A"ȁ;< )b2cu۵ {Pd3 EA@~㛟&3AT0 HЃϷAJ$ :Y֮Ydg{HM&:,n).+)XCTlGjZ9*=rb- Πr5o@,V*VQP.*_G9+-ؤ;/V?݂N< @XFc%,~=L3an&Y'{|Pضa3J֟d-* 4!ON"ڠh(T6[tՆУiv*sM]xB!ALĔjX7 &Tc(]KnD "B<&QHEu(Ea+kM\*EOdpg.d6Z-BqyRϓpy%ܔ/C*#Ej *8'CΖ 0 [7P: -@;yf AC$)HDxkdP =SrFI8.pue.[T*q8[,zI祾!N;a|+FͿ4+Jx&`-R9]wC>`^VS* ;wU}y!k̚1oiN`Kt"$iou_.`-,|%Hxs=zN4XS7< 713 s1u(1dpz}>q%G}_=-٩i%UQ Ae Cc~0vc̊ŚX;vNgSAD[ejPߟqϪK ZT|u?U_MT[yw3YLo&ӯvf`)<} jY,yP2Z`]T$`s$2(qzw# dJVz G++;䉃GP־&uWwH\-!Ķ?%ZhG`- ؜X1ͻQοlx5]Fk7+CQL3+PB7&Ջ_%:Ŗ^tHWOx\< }p`ݒy~ݙHG[fF%=^P@`6RU,@P}^c>ɑI{_BZ k'fmK1m-%?^dž30:1/RhBS,=q7 {V?VK@aTGB矡̬[ѳX64@~v\kttv &p R |C>csiH䱅c]}m+<4zt'=% ΝI&6]p,E3ۿMA C°d7nOny%jj)Bq˨^+hoRP ӞIS+vj`sy΄eT`V8n+Ӻ1} < FD zw(AΥ4)? C8}uXG2x4Z1;`XT a"dI P 7M[2 s֚c,Q^0PcX$7ͲsD qxmTG DO_%66;[dE%uko1a e;zNgSǗo52[>BQ.KY'2F Qq]`w5vw! 'b5@Zx!ZO ȀqD#5] |孞)N B! 'ZT𔨶EnSAZrїvT];[J2>)kO,TVaBLJӿ]P)h$m(a^*kBfN4gy>%'^HPI<\Gc ow*yomK3YpP|1s> N ͂p]oV?Q$/ZlL=^Y@Fg՗oxcb?aN%M]EM;v4V;Z K_ʉ`,=Gc0s{qLG C};ܒct}[~fMN%?Ap^*OBœ3 .)0BU IKp"ZeSxR ǬyGҺ%?a N۷o<"g%%UwE +l-+ŭkS7T ZR4=7F CX[W10"7IiI?Mœ8ibN!|`gG)Z$QI< !0Fpx Zq~7O枡S{u J%R|W 7 dF TjLQ5޸IYT|{5Ɉ{t\3UT0)P.McW9ςAl=Q\Sf`3ܧ6;L7 9G%|@@Z:d#='ezR^f?L}xVEg&9 5?.>(|2(άy"W_s"L:nIS :om=:ūe:OfTıOٿCK34W:)SB2O"])d,Ңlq@U̡ߺE->aĕ[fPl9u T+juPȽz.=,;Nj亸 <y)' iiM Efzp_Z-3:k^nqi%oG[*΍KxqG;_LREO 2YgʯkE23YP WQ϶-NR>l&pU0m߆@2vnJ-)l㯏#B{2.,; =*L|]ᄈiI*贙:g :Zс8tN|( ]%NL2,+UVf|jMq<\!HGOISRyر\ҹ1S6{z@Q(5۹ʥDw%1?vrN{N1>Qo$uEOb!qnBgXq#3;#vM]DTZF8Rr !)9'I16 uz Rvct +divd$}ZAoCV57-Vw%2nEeTdZ\be-1Qpte+uW')׽\j93~{~?0a5s/~e04FaS滁S.D+ɣk;c-\P_kL:OQzJ9J _zAjc:"{B5Le4l}hy/L2~GEo][sKcM$GדcDPIItXl% 4(QߑT# #$6BfSx%SML/)/NͭA7G(m T$i*70}8=(swTE-邌C#maŒƹwtz>c- NL\͓S@H8)=V4c=;eӉB˺_j"WHo?up.^/ 3Q4&욲 b}ɄP䍢: \NTٹ-N :K4:k."xv=kT-n %OL+& W$CcTfϙ?n3F= %XjC+v/o]7#-Z$[OvIC?:'p3Ղjp-v 2ټoC{#;fǻDnTDÚ !Xj*QyQx@*Bv'[͐]N3mqPCۜ*?5w@`] b"~t:UE9?D^٤6*~|z>]~m;?cegHنJ0_Ox5gTzpۑO4s fZ\j.Шyw:gĴs^vpS ilRㄡgtq\M:@cg|3Ts5Xpmx?x"AG*?[`7FT<4%ng~RIwt6Wv , `{GIp! 5'wXi(evt|ξK٣;t_]b(dnZ-U׏"+K~r4X[ÊD<}+2;@@˼ntZKrc 994@$.ӟWFv:3+&7Z#Ȫ3),9SE6D܁are=dB+R= x ^gteCEՒ"f[(8}9 ZzI?hB~գZfHɛf5WF& 1kUqELBG=+/b;,$DӃR.1`h( 21r۞+물ɐD+i]k  D:au:XmPpO q 0!:XC 0Oa.>CWOL]Q$P3'0Z^epJ蘟-2{`U{1kjtZ6Uba*_*'^W)P`q=.-F w=U`!yօi;Lv`r :cVy`Ɣ!Ҭ@:ZYݢޚ8j-y0xHFςŽ2yy2B6ѯmMpu?U vQ{ruapޏ&Se5'w7sX/$5ۘBGXhL-I/Adn HKF«q K柁^ЭPv C+-PAjRQ;s<̡ɎU {HNkQ/Lˢo _ZTo,FhCg{C{TNݹު;%٬^}:tṟR? _M1/K.Aʤ_S!,3El^}e+9z̝W+?tHFCkJfci"ȼa2 /& 8UiC< Mя T܋>B\:Ib;O-Pc(7K5kPC!U?A ALx )8tm k8vYr lܚ>oNfBB!|M(NHVMLLB A i%~EOȞhEBS'YB(T&ҩ'~G1I{X5`#>=H8ku`H3y vҜgJQIC`el)6#<ܻ:!+#og)akU}߼[`qk~# _T~ΤY!wHpvPnkȒLv7_pgV6! ;D 4?LSEk  }Oԑ4fFܻXX9yN'1ϧFj"3PS'bj\|Z"d} V% d>oZ,LMEs)l]u? lB ={ඌotLnuZ i#@s?W^E~p票OG\^+am΃r5sgŜs ;G2nTԧ[cb.Ue1X?V-/AKI`C=\U3/󉟖G#B3maIA|}g^L x!|Ns"yo&֒=0!Fzg LplyN# gـ;3èGx+_V5q#b'hW'E I·>c::󮐍P.&uk@+ikvXhQʚfbP˥1a}㸹I&fЭ`'!Dv0Wfo} 3`ĂC`҄5"+ڧ+ #sT-Fir<!ѶzNS$ r(*i1G[ZJ \qHǣ/ٱN!.nDЋ ܇';'iCqM,Q4> HٕQUia% v6<SLǙ2NA'|rJ]i֨;IU|4s%e< I8 8&VD Süba+8-&obon* c1"}*>SDD4_hb]{֎)awxPҁCi;noAǶUjmk4YiT;1LF3&=vlȔ j)Ţ]->LQJ5A,TzNNQ2 e0/bvE}7AF|+]Jh7I8YvX, 4h2?W<4<.az&۰ރ~{2s~E1cD4z_x97ipzMaiI6Q,L& ZUGS-?>Zb0`b?6ZƪڄhP+xɆg,ۃ>W|ā2Pp .#0{tSz  J^~WMBLl8(*!յzG Hd,ru̝٥$oRe OQ͘ҳ.4=c.딀u !(T('sBR҆o nKM2}+B/Za)K} B2pLwpȪzt,Gk=Z@0Z`l# 7d>\SHEWχ7-`>SLl [A ;DTo)I3)_3^/jMm:1jh6FDH)Ger;PkBsVlWmSH(e.k1v-,m uiǪW[ B$_Tit%p/xr{]+xWE`xy)Iگ{0~4U,}7F~5nF,{QS,E,O]0YBsEQ2Č#T_J v`KE?ǝՆroI)7wL삗mO]Fs*cG{`Yp[ģEf7:MN.܀IX tbdܙ\&g]¤qĪoRh{vʒW _հo厣$oi,(V8<,M+5fyٜC[yᙼmS $E&{7(X8 lqͽmㅵ@|Vk?uzv|<]TlpmOyLd_8 a.IA'{sC8ZD|#CZϒ07˻@Ͷ[|LoP`=ǠCmr"NPK+$f[7S4 oVOixv `.0T#nE@ *0K@HPRWʋ듒d:n-8h5)Zp U).sY Iat%9ƅ:v@χ?ϵ߂FgѠ*a|*ٗVhL nni?Wfqe9®əHIȎ.e9°;| :n$5)jOuz+Q =Qa`%0;'3-Nd騵4]g73}}*v*tD Lm؀*cd$S"W1u(/BmeijSTMSl~?pZ傺Lĉ!A_gfn*{u^#\縧Tx(yGoM ʳ~ YZ