tukit-4.1.6-150400.3.6.1 >  A e#,p9|Z J+x$L5@e'z'q P192UQ 1nPHTIvYVt7.R(JGc!&{}qQN$׹?I8 hG$=J{߉ YǎCA˂||+4.rʖzcТ^SKOWBqyP|NGɛ6ZGjws$vL†?[/K@F8f9bcdccade8110a0c82bb4b315d0d240d4ae7d2b1eebcce6a9942013b453a0ddd2b62bcea3ebcbce36842a7dfd41db6f1881b5c(e#,p9|e~Q.d5Sߞޒ\YkF4^D+t2&MǛޕ_: {/Im* †8ˢcɐ+}xDgkszűʑQcil z?y>B,+윿xDǑw{ 2kDX`lNR|aW - %*BXqC4 ]ff7',$hElmD]>1PAٛJ{Z'E>pIp?`d  V )5flt  |            0 b  p,tx(8{9{:t{=V>^?f@nFvG H I XY\ ]D ^b`c deflu vwX x yz\Ctukit4.1.6150400.3.6.1Tool 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.e#h01-armsrv1SUSE 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 "/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큤e#e#e#e#eIeIe#eIeIe#33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e611f0a33957be143163866cfc6ee00611c4d330c4421078dda687a1dbf3550c3a90010a2b65e70e7e2950845ae9a76470de61bba949e9ff1a2a654bee811d02e48219ef8c377ae316a01bfc558440e4c018e7323f985734b529c8763cc6f60fdda5d09450b2c0293d56567f7e25af230e0b57f89dea487b5250ee055e12aa0c334ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc7380e9e14e45c77fcdd27b5e6179dbc7a07479cddf326eaae3c598acbe43dbf384rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.6-150400.3.6.1.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.6.13.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3e@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.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/shh01-armsrv1 1696851476 4.1.6-150400.3.6.14.1.6-150400.3.6.1create-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:30989/SUSE_SLE-15-SP4_Update_Products_Micro53_Update/e77f9178c1c7bf97b71b50b0659a86b6-transactional-update.SUSE_SLE-15-SP4_Update_Products_Micro53_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]=bdc65c3d9cb8cd0dfc7a2482a1d04bdb5ccdebb8, 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]=867c7d5d86945c3d26e425e6de3e9c3ac245388b, 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 RRRZ Ü5utf-8408570f2edab4f8348005a3b76bfd7fc8c79291d94a5188d1eaf47c2d8f80883?p7zXZ !t/] crv(vX0q8ev Jsyi󞬤q,]Cx&qH)JZ2ӇnL(#⦋uʺW.DRi~Qbu7ڂQNA zзk_m9`;|C ?RCi-ےG1wٵn )XY4gPE#c3Sr{;Ē}xuRlو{>ZzPFA%8^XE:R0Mw=- 1=WD"7پ:)Hw(َo3O~peB=_~ eji`9x5 E$"K2]_s̒֟e DRLp5vF=nټEídeKo)X$;=ݽѧ>\@Au젮4q\`KFhV[hJx7hϭ5G#i z,gN:FK7F_ڕ' ]9֍˂T{KqRMS'^P+Q5V8bws1z;Niu#FxʄoSU㴶ť Gv \`*/LG{.q?d9&cCE֯I6A/>1qZSvG0}" HFl/,"}JU<:d$ͷt}]ɷ$0~XQ%*pV/[X$23AVǑ!{f0,~Ƿ &W؉c| M˘#_ 'qHjj{VT#S:gO⪐RKUZh8O 4`HQ&2߹wu}屄ǰ6IOwe5vR"OO5&&t8I#\6lp9ҍ Vl{ ^TJ'޴?ϧڽ({_@{/XfXqlVu: U={8eG̞aI0Gnw.@ .T$tmĥ%nb 2M*K`4Α˘!+:w4NG^f&Pr)䙗ǩU+2F5>Q:i@m!8AWTT?'?a1XT]"<~caqP<ѕWVeϦ٦b-+VXIgDI2R(G3\8A^cf[MmKrcn>dk= U AI/9hҺ.: w1V);.pI#ʞV-G^DGcPȂ@{,5qq $3柠>+SOY¤8$Iq-h+dǂ3 d(\mSZVFT>o_i[kXuI g8`hMث~֨A'Q cczq!cm,MeGC31{easҕ$NOjxYG/<#u(Fmz\R?mt-D-`5=גoN-hyQ[i`ЫfY0f,Q6n6~W#vEwL3h;hLb> |PZ209E]PF^&Bߣ&镫1*YTcLB4n&Fwupx4X6 @}n/%bG$c#9,8 'N`*&n=3u=߄­I+Ǜ&wj@C bPa  z C+Iٙ٣_ ;nm+_$`;b4:K5nj4a.7v/l Ui6p^:m3XW@7ZYxI!x$T\Ûo ʿl6[ ?*͟Hϵ%" nDM'IUrԎxr6^&U_!Cn`#6)=dYq1KZ&RAIKC+ xepҮޔ [YVw Q%>TlaWtE2?nl05:E3\ɻhqW($ƺ.e?ս/"nw_F R1,Y?n+_7@oCWӗz4FAZXiV{_q M*$ּ/5e|4{9GP5@pICVVD_KחCȏQq,<+,d2%,t :2M0R<{(-#8IkO ICע1*n]Dw:D}ӫe\dA)0;=؟ *kejy䗗HcE}ma +  fG85 &7|p0,-g#z;ȾW_hrvhCa jO{tj*ꏿx>Uj])mzxFߧD84k0*6ݡW /=dc`3-z;Q Dh^J_֕b`#]e! a;R)N+;X|6&6>HH*+fV]QBsky#K~<ەG5;mm;nS] >eN%h^,f埮{1APϗhmT**^%SZMdQ㉤Jn3 mEc`pG'`;CRC/x 9n=4[D_ q/ gFE&PG ]i@6=7D֬Vz =4HB\;rߨQbe=1]g5/D+}`x}6*0lv,K0b4X]h+ QڋPv)` 1Pц--7{qt vA=G 5MGcԈ\ѧB? ɔa룓nkO¡Y2kwchf =Y۳vfy<\'}9ĐiDuxc^K˓)JGoAR%" de곣|mvΘAw%Zq+$5iwV> !5Tfke)1]ǶqR]O4'Ђ8DrrՔ^n7W^u2MZgas!R`wLc[|%ةWevܩhĿE@QB7 Gyڜl.lKbBe܈q*[07HyQŬW&?[q,vIq9E|$r"H&)ruc%:O!xV0-@h @~pa[A*k#enrFQ>桦gAW<+հkA݅{ATnGOB#Y;7&T4j\PFu wN̪4A祃EФ5HP0i+pydMs&M8Oēv{|bY&[]vP&<quEUzG`5n{*>ǏE8b PdVSgrߺN:})s^3;;>[:=t3ZkUV9O5}*C(=)P<,h9;mrlRW\&[)vFޥЖ=85 +UzyjIMeuH`dM2yN}aVs Ѣ;DȄE!W@6\""|p p#F6H(6سU-%ΣVg1샾NRmUX6%keTP+l9RBZbrYAGXyC㟃0h:YSn ]9p,/{MZ$Bvp> ^|\aJPmXVRwq)p&/SoRsM nzg=IzEB\=Ӹ+s [D j,jD9+=2WV 8A8۩Pe{f>9m(tu-7rEt&ȃW|#N-^nyzW@]#IXj!ZA;ЃANxa*D~VATXUVc:Ib_! ˆ#h6qmrx0:{\h,Au_Q5 k0m IdԿ'8AU酂7a"h#%W΄n[^,f9#BG~/(h`XTMSb[@vEq `z74x`٬M+ֵeAhֺ('=<YwW#>k$AȘ0Q D=Be_AW?dӁ wsenx NhxiRVȃSuK⣦0P*7T=g~jsDB2d/‘)uW u"^n`[YNR: Wv⹩8KkHWCU)8d={xx;\դq7YX":Y%K{LemKHwoRP~t} 9Oe):RE<`'Oju:15ݞC͍3wv#2>8}%+Rt>İjR& ͻ& @*@S9&EG!LkLz:23g7i Z2~hRWiGtoa*Ycm e,+ΏW6 Z`I94'IWˁ+o=jOh~{x{RSF*X[E#14QV ])(8z  Хy=JUv8=)1dKYF7kGWζ{(q,ܻ ?( L]Iƾv+oMp;ӗ&gP>§MTma{PjQt;1]J)J90iji_0!FnF13EFּ}pxR8Y$ϻ~e\ !xa]:Od߆X3skdm>VHMV#⃩e-4ZHH&Awl\dA8c;Bꌒ)!`Lij>*0piӵt%k^ Uuy3WFAqȝAnMZu_2tJ1{bWPy9Sa[?gk#8[W3鐛t#ܶrqA~gH^"\מO⮨#&SwҪ:y˓)z\(^GV1#N\8onbPYXeAbhYTTo04@xaY:CoIMdmڧ.E(TU=.:Ƒ&~ݪSp؍c:/P>3WEᭇ<s6(ޠyh;`vƀk` $ #ZCT_ ƀl̖7cҹfP QHk*2@չԂGWne LPxI.֑~Dȉ?er,/Q\ݔ&g DD:z:c zdB'_oϲ4rud>Pw9!FNGu=X&/-W^{t)EThXxF!) ԢyuqDw*l?hq)E3}Q6U2'VPիw:j|6E=/+ȁN޲/P3@#^y8O4SazT7{I2LS#$hS~njh3m@3S^Z)EB/wZzO;xVe*ǟb/[)֎[NAkEj' Vws&$جd_aրX~g,L)y݄:gtX?҆({#?ǷU?I\}Jѯ.Pqts{P >oӍƧ|M&oԣ}hl!AnI+bq=#_CH}re­1"4Aԧ>'@WA%*%t1exX䢚%'~&%;C}u6Ilבꈑ0f\d LJ=!".AN_|\tM8"yUTO0@uæ=IiB6❘FZGßCԼ6y`{Q| 8k<|?Y\F5WYe6uS9iαZV jHbU^'Z%|Gbzbݩ*DBޥV w nr]O8X,I(EUK t,&g \Oɪc:ښ,[se=.مNhurP ߎsW& m5.DX3z-m !XW׍FKkW }hXugGWD7XyI趶*@ y->mx8뱳B8#0^ABo_y'oDV}l@2Rn-/:]3E#T!߆vTwW/M H3ntd1kcG%<``Ib{XQ\oۚpmBb 4 7勼QQ%n9)!HWFw hvjހCD+>`Cg].eM0P@?=ӛu0iO5^44ZRQn$9ƈrԫSH`׀f AU:_H's0t줪F%WjR=lXl9x(THhVd%-O¼`AW肛ÚvxR_-=ld` .|q`9(sEÐ4QhG im1B(Bc$~6tܒW#H~S\8]wO]i) Kuׁi)vF\Z/W$se|DI8W& :=o+F(^s{)>8ԢH:W9[M.tg#'q[-#|)Cޟ;]0 WeK5ƂF!gpet wf-f/%50|" 2s13HvSLG+3U rnM-n{@by1-=RK Pyo}!R\F #l$ ~Y TP8[“ q+E 4wM?5tnx t![ ϑ*T+<:xu_NgلO9RRaUtw!T;L!1W'uVD?QcSc)8<&ރP$ ckBJ$~B4Q',jiG4uX%g?T  ]+ Bp渏vk9t-%;JR \]U'{G /o$\ejz^`*,UFXRO(k!IS%_,:щh}=*ś]Лiާ܋]g68OA^iwgM]!?IOb;/FξOmBSG)H*,JlLzfwa; 0C 拐TPxIU]{؁2J\wjTAۈ#%fh(Ift;X(j^5̫IZbd7Q7-t[bX.ncࢆ.@bO}ߍaɲU=9 B޶g=e6#I2ǜXЋ9uzu+3zUmf D)ՆsZPoa={<{L=oq=?*?'I小JCiM62Š[ȂMx2!T=u˺CSy±!kDyO֐Hm qdܯö̬ʮԛzRȯA*Hü:~@vvTp Q򀑻+vpVqB2hif2ǪkcaS c+SBYeƖ^VEuŶ%0 'IT%(<ڳ| pOwyB v 1]w4$^2*,, CBhe``^(}^+8K1^෡sv +>N6?5cAl/;X7Q'f. OBU=gsUx`c}⊌ ӝC]m%E5'v WtJwɶgٯHȽ~9^!G%?#5ݼ^6K܍sjR^<| EI@֗#:=PH߾ZƍV@Nw"P nK'$x:UZh1t~fk>H~$H3""sW9h` eEhʭ@Ci-ƽ sg4ȲRP(d3`m0#Z vx4Z'*bVztD4h_>±{?uN~Lʣ62& ݮÂ5Q_ifVk<@P9W/KYG0t&5LG)TOU\) Ef.v9!ԞƭjP F[W8:dYqf|GggցNwkbb4N氟Ax^.x%R9юŤ[)<6R6eix}ա@INyT'E$J(ȋg/, E.agHI}UNY[ D+/^{=gλ㈄ D-]~sSrWaǯelV3t5!B,1)`N~(,f\b-L WȻ:2^GВfcl͂#S(K*"3|P#ihK}>K͟rjW°pLw0vU<^gc+LbZx8 w}J- OO>)j4W077Y%R";W7ÐI_)ʚv$<0`W[pvScjM[URoaju3ݖ aL9gY*%^<\ 𶠬|n*(Nd_veKy%slIo6|:͑L F]êv[kڛ\G4uD?w!͝ah衬 MM) vk"dC,W#R/NA/Tp*X23؞L VFߋ*=^r";3P~`(We>=?G l,LG~/aY[iaxݛYZzќS~dd$O)%$ޥ ̔;Zx^ݒMl{BcٟIKhJgB(Pc5pQH-m6`uX+)|%wCÊh \DQ˻p73275ۀ+inmɆc"PᢋThtw S;QxCˌg%G4|CTf‚P @IMȱk<-B\ 96'(i5 ,:++wV@mqQ$=D2d!"2Yx!\d6QsPqb;a!Ǔ .cl;qJy^!9Ź v\-~hW[ 0 U g iM]{uyQkw JGrpT$kht,*{4+@WW*+2|f}9ՆVz=$'FeK#bmH:@VHHj22`\ђgQ#7=ub:74Zg[C]Ox 9> 8]^-eګ{:4[1ȠC /[,ab;yh` W+ .vԦ ]\hOa_1P qgWamѶJI@E#89 PkohO)* }RVz[uI} qC$ OZK?p k= cgzH]+ǚ(IiEg%0.`::#9b# YPy >4:2)?ɫ1ՕQ*! ng"a̽iZi eyԎ.N_I%xDꆨX:n:v@5ɵI t+.\⃸(]F {J/e~. N-uz3D掂'$]uX0{l_,jyQ̺6IͿT3ݸe$:]<1&)\bR9A ;ـϜmO^XvE%|d.cʯ4=xr Z8z,p E"ۙG\v߉rR5\\[ O۩ӊF6wElW* ۖ(K ҢK6u'+{bF$9$]I'{g@Ql$s~RkILq,ŬM npgCSVgsɫxs&MՎ>>8ɜ9fݻcc2LTnlbtB655EM+~85I۴bT9YXG!YN ![umjZܻJ 8PI݄oWDr[Wg#STR<(I upn%/ 5bGj)E2CIv V{lٛwY4 ͖_B8Dy$J_=nc< !^Gar !L'QZƁs1أa)Xa+ӣƝȋmVAfa/|NػraNy-y}أ0cl< F⛘&tofW*~QߧVbrn==5b3R8-u|6 ]9ht/JR>{ ;\|PDҞY4i1on5LiYn#mG(LEBZJ7 &޼B64 t06>od7ZR"zEҟ+%Ye e<ì*6ʛ]ڴI|7jkNs>T3Vτǃt>M9eA;D*9؁3&klhjˌ܂>s]Rm+6(qǘMFɴppU\FvKG{!!SwU'SrZA.DDk6kN=FKV`^@ |\ r̫b6b'NVT#Z-_:]$LX2| ż2\Q24Tf3{~VV'uǮ45{`%!6;\&'QN"qT^ڠ9ij-2Q#*ɟWLQ'ٔFR 1y$UR`D>xޑt=/Lz)Bg@Ֆ64y * zrC>F$~j^i`'6TXOSŲ>߭ лUCL3;̼#{=CL?6FԬ=Z㌎=p/rmc}9 WYEa]<%~P~uAEA @ 6Ch#SflI4׾i krJh@rmd4[}n˱p_`V1 V"\Q)kDyG-=?  hAW% ზAVHK46 FXD7W~&yǪKtgd s< ԭ l3Id@c%>{$M/~+˝ad=18\ɟdD ڨ@|j!QA҉fOB5'C_X3c0%s|ƴ.zi5Δ8킦o'pc;_f5ZndH RU n"`q݊ʀ7g4R@ΡLɘ+߉4hkleA \p)R<$X G404|uUMahlWP,FdMZ]dVT;!8ύÏC-vII.~CĴS#46ȋqRscfj+DdGlZ5eu+Z2޵IwIղҏy]aK!gvtuT}I׾]F{k[-H+qĩam@7*g2ggpG" */m;P ILP&`^@Qɟ8 rJ%%t@E?|jRD-8ɻ:hΣ\0Tn0iEcҮY.+ %'pU2UGD+CgObIUFώ'Z`ljR KI(%G>񐋊$h u\wðF&lZ}du( nX0d%Q: 6iE,/(j6*`\anr9 sqw1?:hfsw \U_Iqs3'Ԙ؅ VoRXJGVlh1:o| w"6*'{WcCwAp8_p3TH[73̈́r$8oSAed^>lBܨHZtKZ..9"3 gV Ars9QO*!RЙ-y@ [%'&/ەW_Ty8Iw*IK6(Qs/3PS0\ꘀ>Q lukI"֏IOzO:F_ߍo0yf$[)ʁ}Qx>>2)WA9rXChjOdosLNo/X+O3k%s8L6༪C[]: :kWZ9}W:{da]VYgZ;{!R#=VGѯ T)!&R<ZX9'#eAv/`(:?7-JLd.IH 2 |7l7-T-kvk*>ܵK@k'xF}i)/mh1Ǡo.7c"#ŗY2 : 6jY[|$#" ʜn7hdx`9dSz(IJr wQ;DΑq;mh7jkeݎ'g-%]Tn(: ˖ &@#QzaBcUc2lިZu0rrnR^Vz, _`x˽>ZQbнn>,^EK/e$m9B%jA@@RUEe)lR,?g}=p(n lC>ZZoi AJ'W5sgbo}to3=nA_# 'sK(7;K[Y^2A'ݍٷkr/Yox<\ReӫkR$gd!)";~yc*J!n+n OzUt7o#prnb zzN7G5duqam8_7L ݐtBQ0 ta>o;2MOzmC5bpDv8C7)vM,9N /ǟ{/)ȕ„ yL:eWGpF`Knq_S-c'JQ*|LM,{s*ޜ)ϱNp:#/|ӝI裼-!E'[s?u+\ NӆL}տS+Rԯ԰CxղeUϺUvh "frꑤJ}2LBʰjt^fCP}髀=K~_b)cω{@]։ Mհ[|՛Ղ 8V+gang!k I9m4vMeKFmɣlbFhwZ5h*p)%2꛳h.Qzr > j=.fKC7erdbu̳c?էԁ 0;.:iKg4Հꙹ1 ׆ #q-6N&d֪4UKDE9:=PY`<AB}UcmDe`Ŕ7UEv,8H4yzaY:$KM^1\C$DC0&7 7J`&G\K(TO<R׬f*")wOtIg1#"hM`!$jrɒIC9^{֩n*&wIl94- s" TMyk`W6L.AzZfeWod'{d>_LZ|\\/u=w\:2S]0tqA_}a FOE2F&T)~E5PgqBd$}co*=2H]'Jڼ8P2"8k@*AFԹhtUTim Ѣf Hn`EqUZSÉEXxuB9~ѝ``BpU=3YE>Cn,_XzǰyC$b~Mmfnʉ3TwS'a'Dܙc2sAI`QD >ŋis2|xӦηKvO o*>ӪoE7ޟԴu"۵eo;B~3 py)pjXĔ={q7- L4nYp֋.. AN8XY`GQ8%M=6|h̄Raeq %;R27}Sܗ6u_?O| +o5uj7N0ZQeXno]۟#Jݛz ݋Wl~"0Q&0^6Z1 9U1k? ,6 jy\5Ѫ]W쾯d>.U+ jYȱzb: #9"9X:uwض?i'l?!nŰA)8;FqN'g9Q%SʒɴƜiC g7];4Ҭx.!;Jw).^ f:LoǿEm%'5#I,L.{/Bඐ=T#W]h^eTl{YB˄zhs(nLAV[kA zR䟦OH`1]E/K. )ԘX q?k)=2t9k ϲ^c?̩ex ?vl Sek*wmܡ T)mB2 N}#C "ЯW`A r33"mQpw&U >Dxs{H? #I+qZ!$'L[h\iCK z W0Gќ(g<|\H,# Z?.5x|ЀTӷpDA;Hَ+Kt!<)hBH "n;:]%[U>*|$oh h%$$#eupj05nn*)G>5N}치ET)ƺ_5HlKqU7 Tɾ`F yD>u[*[.!r:JAM@}yt(Yu}Z<+cc": f>9Z咱B EC)FuQ"1Vin ;$ޖLVCJ#{MEX|b8n-c8*^PX_jm6!CCZf5Kul"VD purؘƛ% svzgc",k~*"r&uD-RR_U6 Jo*BvxҁJpz] ?P2x9_gi71>XSr<59Թ_tXRbdS9-ٷQj:y ]&*)jk_2$zYnĪo En0ŘO@.s^]MPH_^{dـvՏCi~,F#&¤A'ҿש֔b ~ڑee$|8 ˈϒn 5DS9Hv| RmUTn/A uYƤ6;yb 5P&gg,;nս_`Fn+TOl|_UBճБjX}㉒o] 8re_oC5ǰ?EœI@o:Q מ8Sl,ZcВAo`Ь'p,T[ T(F]( K_f&1`J<6/\.5dyCG9x*DB&]DL O#sy>ǏHXЀvY,ȽB'K_UH2?hɋs yϦұW]o¸4 X jA}rbZu= ^fe+L0qS2';SM ckd[[/.nH,2XtU-j6|m[ք,P).!q'Ru,hA7\|Kxc Py/+^TX}kgmbQw^Җbg1ZYQ{q4λvү`;H[U+BK *((B>/8WhTu*\R?NR5Z7xo1+^:DR)Bh+**JnaK<BQ4\Xj^z4843Jߜ)=OqaD|f<"ples>yG).$R#R/˺4Tc"*SiU+Mdyabf[eX 5 nŭN_0:14qJU e/#*6+eG>RѡaF]W^nQxXF&κ5ΩJIOto#%SCBRHk5u$KG֬fR֒3Z8pi.jHؠ9ȁC$.Ϛ-@ؖYcJOG$WtW(ûFq75j&"_[8kQ3#7?E]@㇓I|##4doJME c<("Ay؄RuVaw|lCn,`8 [<$1\R"#шu\B&8\ #oZYYDvܶT]  TI,AZ4 Tr1%CRyp#wW cfCU#M%? 3]+,YKJݯ% -(`^{BIW^&qRnyK7&P_' -bݤ""ھY)H*|7,Uv3Vh- #Rp_p*u%kQ"jW(6U3WA^.)^WiP/zDimu '/mai_cy q;R*-"d/r}]3k{/??er*}_8Bhnܳ8nBl3r7(ܓD36h"s`.aQy [8n$ VwZ $%DLTECX 7QkB.V^Gj}40mq!\ GX$cJ*8,% ;z04x:+*r* yi6z8:}EӭVGx5+{W78<ǪJ6T=K.3 8E,AlBgr zm>c=OOS&W6O1lt(q&4;J3ӫIAbn<,?@`VςRy`BE& MUE0;i_cz9`5ܑOIrf&G>\,r8Qy^^r&Pe׏^-ƭ{9'3`k 4dsg[X뾜}mMhP# SE4{Qq`{ȉe"բ>yӗЖ_eMS+*j٢pT@ ̄"XbC$;$ۯwpsLL|bsYnp،gKH8`8P d,)]\H" )է-~Y_0ƆxE2I)2tBm:; oYU(𐇦l Sݦ6ۄS !<(޺iW ˱pg󆾎6&GCj86|ǁCڍkm2K-VKcE1>#x͠0dx>(T;!9#ZW p?_Кʰ!ʱBhJoe(lm.6#Sip #01axŎz}M.E"&$D:%ڭ|P`S)uGo*& &2{c:>g=D|=].G Ľ ހ`:g&xl* &^u|KQ"xz<="2/7V!mEdA) k~PHC==ƾY!ܜ>MQ'vu.tck &o G; 2RmRn/߭vh(zo3im[\bbYI|jIoқk@vwa?\buAatNks )6awp鮃GzHbeeTndbT"쾚)p4%+ /?Pok5.9j:y-*gN%0|ې\ygA5&OWU9F_ sO<!8?Xx+qɨviC5ONv[FJ"VYG39,c ?gzpY/Y 3k&? g޳/RI҅tѤUaU5& {M{㇍G#qkDTyXY5qL 26YeU.ѠnYFOr{= 7,9rݤho%o<̴3W\ 20Zz~~bY=hٲq00[b{{س\; kKӆP*n4B?(5 `mAn`5.2M(^1 EI&/ t=D _9K4U:K&`X8%%)kc173I>r?Ƚ=Ax=\?-8O.M?Χ.O@ XM]r+(o\*sjnݪu hxU(&-Ch[n@'b𦈷5{ fr }iYtħVnz>7SѭDԛq kIm'9o*O@]K~<mWuUJ`*HK*RD#x T%XZgDG^` Q`-l YCRYO.5ؿVH ޯaTh]4&|3.Kݙ!l"!ݯ1(IS1 7=+pj[WTV{ON/!dyMsFD6~{/͏=5͢C0̱+Bz7~Y*B=jAژkP|?#N-SM16vPjD7K6V7!!]Uͳ 5M$GHYp>- ;ZZ 3JnQri8n\w f?LMO:֦B}b2)N99K\}S{ef~HfY0_d~ކxӡ"&ܫFAשxYő6an2&:p!_IH"9yँ׆/<#i%M[E'&NyяJ}} > =}i݉hmqhąqt V?* y] ;݀ nvпU=.Dd9[AE=<{XI$X#fWm2º͛ԚuxFZ `Ąi;7v*v.$_ \8R,*+SFG9ZqLfm^5h%}16Y&Qğf6,NogƜǒpG@Di[5syB%#+BڈJت+iC3NXND~6Ln j|!JowFƫͷaGv Tx.Z?аq:1$gƘvM @# nٟkXVtYYOҔȑ*(>E%bY64(d& YSVmqmb+ֿW"y&dvn0\H+i%3*#MUĕyE>aVXIZޥm򶷜$>d(; /2c J}UFƉq5"|oQlqvm d(!;c3~${`ד 28Syϔ,fn[ Me=,aLS!gV6Vu=O5rFRናB 7D|= Y_f 6J&:!D'+(.x3M NL~{6fm,U`Ȉ)#$ppZ۶@H@!E0@HSf\`dڤKi^?1@ 3ioșl|[͂Ĕ}Q ~иz<&T!R[77:ݧ%TG% %.#m^'f3#kxp-nsru!ݚ]\ -dqa?:vI{%l5LJ5 d,E (po?JӺF&{ +-Oly"mV^#peI 0X /CH{w[N+Qq<)yGI X]F*ilk *>ԫ9qqZmU4|: f85 #' 򹧪mtvRC>@4`tmI1+vO,bA`<ԁGWXא p=E7n䞮T_հDŽJ$yi'kur4W9o@ (&r#4xw9@ߋixf+(Zf;ST=GCA tCh!D&^\S(1Xg{UwoUogǾ-G.΅YwsEv@8p9Ydظ1ζMCq-] hJz1GVbKV)&-흰iu05Cΰ6Wfpp=iO'Fmg+ȃ`VͯP@O>L)PޘTĆ"OPL MM#b#uQ4tv[~%NN*3/;Iu f`鸞hg(WDxWقiGKa_fJFh/H:d1мx[. @"&q+ON$BM P|KW! 0hq>g ,Jd}>_qOA%YOL)ٛHQ:D oweδ t{Ohz\%=d4璋ϠZiCWwb:7SaZjBMn$dq~7>cgUvehBhٶ>Z+; iCw~7uOb$/Ibˣ)٠Fh~ !q#]ڨp+Rzc~}"L{7ɭU[%yelr sZnY|2H+%7bq+*sA>8` tEHȣ2TW}~ HDeu3k7k|{xM]{YI.A <Żc*ě!hyW q/ϼ Udlx0xMy{ԉ ?FJ㞄| 2vSNxY]lMrUچ^k܁O\N4KFb>tt)5z]TC8x@4I1 ,E.@ _| ِY/"I /AaW Y8 ΓG̭2u/U㙘 I$25a`Kۨv+}pSc6wIllt/wOhb@j(DX[*5 kN09 o"Ggv;oUMq` S~5̯TR,B(jK(|-Po* 7C _%7\߈a&%4/У!1vK.Ԭ!'[K/h[.@V^ç-IK\ E#=Ium5y jzfM?L!z!Fs[W&(y @C`gLٹk(.W~튄\=} Ͻ:l8.O6Twϩ y j& r"-04fr$0G21# ޣ54_lkvrD$gV:Ae\ys& r>& 4Mt 52XŲnN]d׊uL+L"q)N2:!ط%˰^]u1GFN\kyeRVF.x*C$(n+F_&mLwP l>P0J-dW;HDW9q߭ 9@K;x T5/DŠNis%)ljvqi;xbΥBqU.|9 :"drgni)Pr ~peR[H3s0.۾ؾၾ[Y򮢷Tas5VZhcC|ȝ$U'? \2CyNw/c53mt6U6JE+m#X OOS"jQ{5 iOZd-of^A֯-Sb"z{?@Z]0A~F>+ F҈x[?:IVԞI*/8wTG'%Ik-^Rm_5IP!K3^˅pX˯ @Zdwµ>{=C7oOlS2p|ݩjc[ >!DaFs{+GKN p( zcv.ZeP@ `U,]Tfj[Zć+S=iwf҃ʭ _h6$ e!GQSt$>ls YZ6RUCH JN$uuo:pFHmm1&[hd_ 5Yh{_M%MgJyM`"ߝ RO`o  ə[,uE`A?A,|MC)f]ds6oҝ  YZ