tukit-4.1.0-150500.1.4 >  A dRZp9|{x_nDT@4"HJ@ :ֳ0zX?Ur}k]67SĐ{R!-w՚[Mr㒪`h~34 _ Tf..@&Di+Kd'B-τҖLfP`C>7R-èyLP0߹t8zKʪ*lqna790bd73617799cc77929a8956e1818479814fb00ca6ea3e8d846caf681d815bbf412e0135ef8049812b94b929d836603750a40d!؉dRZp9|X'-38ցQa6B+Zǎl.1k02 Tw`]_}b:59::wbJ]|۸I|) L9!!ڜ6ڃ/RAwP 1d**'L{Sn~W sVe}$D km p:.3 s3ҝ؆=ɩp=R=p̠+KΆ '[ƂߐRrrXeu,Y{@v2xayN `Ox|}k>pI|?ld  T )5flt             4 f  t0tx(8w9xw:w=>?@FG H$ IL XXY`\ ] ^'bcqdeflu vwd x yz  &hCtukit4.1.0150500.1.4Tool 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.dRibs-arm-3ϷSUSE 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큤dRdRdRdRcYICcYICdRcYICcYICdR33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e6510041f9a23eda89cdfd1c9363f0e4d93310e20e9d3ef409d52770197f096062aced4bce3e31667121996a1f71a72f3f972120ef54a81d9fc0f1c0ba4e8009d5ddee4b41be333a00e70e2e40d53975a3d483a340ffe377a90f1ab6c05867aba59370537fecd78c68361a12bdda1827e52d49ef2fda8fe997cb328d991862c19f4ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73335f1b01381697728151e4466fccfc606566e0182809fcfeeceb1ed02c645f43rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.0-150500.1.4.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.0-150500.1.43.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3c6@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.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.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/shibs-arm-3 1683129878 4.1.0-150500.1.44.1.0-150500.1.4create-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:SLE-15-SP5:GA/standard/ca17255e3778f6783b6ed44c65a94c3e-transactional-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]=956c250bbbcc9e2e5379db08c1d3c54d3f6a386e, 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]=5fb96d7d16c2fb0e326a204d189f696c5425492a, 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 RRRztќ ]2|,utf-896f8a8fa9220a0e97529dfc72764c9c35b0f12b8d1e3f8add24ce87d3eea681a?p7zXZ !t/c] crv(vX0 ۥ07rD љ`8G}U`R`爔g%(sC) g-yjf<] LU# ~*Um3iG0Pd^`Em(qn9zgm)('"72|/p_#Bi?@Ot5N|UD>A˕}͏Qtpc`ZvNӰTACr УeI>M}" 0ztqT'Yg۫\#,3AЉWR#-bss^WNΌMzgPJ,ӆ+~CUW'fՓ[!a'5\9*zG"aU,'jkmϝ"5"݈Y%KeZ;4(^(>c9FEHnW}eg# GHaDq"m1ƷyͿ5O01.uK ;萭|xb>#3B?ޥ*QAyJ/-d>G#TLaRɹ+Gimi"}|J{uc _ݸ;Ff8Kܭ + n~Wߤpb"8FkGY0<~(8cB&y@#Q܅z3\`ִ 2W?sYLNEN*j8&-0{JI+ J^FTS˩yƷ "AcH}qJYRY#Ւ\/m@ZS#>DkcO5]F ,2?+1˪hx9=nYK"?'kOkH̀7?-Q[ehwDNԦ0s9i3O1<״{Zߵד{KyEnieGxڔpV+75#oVߏ椇ʷn\ b|;ް9xF|uy'-gld4LgIEk,oqAoǸy9~!UyrY"D-hc8\`? ''k$‰!CˬҤl0\bJSB71;da@D]fxTmnrkjymUI{@N5E>owk-|- jPv&U j}`qgkx2psmXe']0L'GSt,cO8E]ΡgDOMU_9W1KYЯ.QnK!@NxG[8=|Dmqa+*,VǐlzC_q6>[=DQ lkwO n"&ě=ms! T8* AAEPm3BBUM=O5%󊉽rnLƙ1nkۍX\ɦۻjM=&ب&T5”٥7FouTu\;Nh95`7I&e%Mk?|AZHB"=A:PhqT>fb)zi.]DGZʸj_1b'羿s`.9&__cN{(坡$?ɦ@J:陾GDycS!v5ӌ2QKWPt|g ||܋Sr[2}ŚoN!?^3Q,󵸈(vȳ\NWrŨ4o< zOqhHޝ~li:q J_;NVϸ[i\/gRy$Gv`mBԕ7~tZG>6 !]--Ax" fY^OfeYͭlҽ%[82ΊA`hf\ i0Ve7woWc?FqL&ZE**>^Y#ׇ-Q+ _ŜW%lE)X|+[;/ &eu; ,!n ? :H30ʐFIJC*f6) "[j߿vM{sjfHն4 "U-=2+p3DpZ[8 =N8Wڞ%ռ| a&w 1 zw~n 3j ?24[څ9Ey#V%-B^-9l5(m4=C6[p*YįAIi`k t)+4Tibޖ^aY@ JtmEӫ2"+<B4S$WLhмJ '̏KaA6VR33Sރ!N>ΰ lv-++$fkxތf=?y21lEQ cgJе]%efGEKPqÏܦs^o( 9]z&>W֊T-?ߍC2YvdB\B :<?z?DGEzJXY5A=:)`/o.gD烘>&b~ R(]`&%ZZ,S:KҘِuؖZT'& x0*v%]Y0WPatԗ1|,3 M4.! Ώ~=i|Er^.;-*A»HJ1儗^}JlOojj* 2յu6%[ɥ9ގceI?E݈33^kaS2{='2  9أ\j[s:EF.s k>{Sp[V C" 4h'5;`G,@5ѓ86')Um*H sU1e|wnŕڠNpsP^Vu1%De11'&GG>GtsR 8>X m%6Wǧá֗M'g109eQԅ~ ;%Scǐ0!hc>tik@`]z*WLy]T5Qz$!i9<%W#Kr~m]0qX2]W<|="5l4[bp|_׋i~atx[́rIi97n;k[8QvmwQ"qxHyJ mmqb+Iw,LHKOatw2qh["w,tY4 ޖ{D.65u(0FǧXpnNeD'= Vwh~:9[Soy`q%kN<:Yt WO@^+u~Yo:;tӕs=R2I~*'O χ[aRak8Wf48Agip%Lļ(4 h<ímȁ8ooKUW'G+K%DcD{q_d #C"<<Wⰳ k,Ўd*5"E?Dj]u%R\Kz, rz:KT %4 ŴcH}-ɿ$ŸLV 6taFr&\ ]gt0 Lz Ey˨љ2 0˷)f9=rĶ-NBIXJAr}@ktӆⴂ,ގx?M9K䤞R9 < :OIG`P)a#b_FֳKʎ07288':JZ,&v1K %7E%.EO&>8mu[lEm1nۅTyK(o\Uuԗ#E, 9/]!R}  TdzgQRjrw)GK oY$%H{i }2;#ZzF* Y Ib:0Ao~ VUs27>Zo,2BbjG^2y9꿽&̭弬 ?{ խGWQvTL}-3ЍAwjay#|_!辜 %'Ӝك]ftnJSC ZǪU59WQ+ց+N,nlκa./aɿQm.y Dq$usde BkaY=Cݎ +X,- #Fh' ԇB|^ wF#p )]dQfت!Y1*.+کCeBk_Udr"3\pA:Ͳ_ 3{?2}n$A nvl.f9fּEX *A8WHA_?2JG V 1F0haZ&f]_\z}ve_ W^-Ū/ (rpWd74^NN4;_mXǕ4n 3ca##aO|t#_ʢYÝۊk.\wdWa1LQ%?D~ow`p}Gu*zylrc5j>U;HJ7FoX HKSmT"(yC)xUޞ=N^0[X#%;$E[fE*W`RvqQ%-RϾ#N6}fX' 8!vQzŸd&Sz$vߨmL7dU&͙.T[8OwL_QFQ$jDH$_gx Dtk~QIFzlG_Q?`Vs>`U= iU6CҎ9eNzSL,'dLZ,+ffUhdyٳS!`!oBUo]Nܨx%^JenFu}5= Qnho5DPC(DfU"(o;w؉9<΋6=-clre-}weNbKߎ9DUuWr NHrS}1d WSi2ݦEqqZzOwa^~LnϭeMпSZi=1^/ӷDQ3]9e2ک$+)c@*~)뮑(a`2$?ea_IH q.CU^#9G.Ǽn"9-3 wCLO,Dx[[΢F$B=Xt&)>3~>̓Nu {Lv^&ʬC{sM@e']Es_n鎺Ӊɖ$Rr<<ݍ5kg_j"$+[^Hm;@1t&nGc旹K,o\m'SzMw]d " PD:D- ik>K${yb1 \R]&=Q)Tp##W&3j3WHcik }58B1}Bnޓ?34_ljpIbZ=d00`Y;̶\.}ׅ 7WloE쁶y\1"{RE _@6- OH, պǘ%H_w<:O +skI6PArY5_V:{x ʦy5YoQ`!lnsd惨Z$[oSvY(Ҭ P;#&ZII@˟9b@"T .(fޒ~HTwzu6$KjVjݻ0}K\YM&*;H_ 1%l)\@Uq`-*߹̝+(`I 5|7> kE y[2p6-\t,[`'OVRC4f %f8@1r緺 "(9JZjG黟Cupu2UH`yzd; {Ew |}dRNB5^PyXlZ]k""H#ӪMڮ߄-+_$@vzVzEMF-pe=\B}?~d:MaD2 sjMWmCE5Vo^<#1xVZ$ddiZ%M&[)V㧩r${]Xw+f8|o ֹ(_)Q!(Q$6`J*EssQ^Gyf8+Pݙy֨S<{Cs2[҅^ÁXN)xzs@gAu&)hco~+E#~ w0)Ɏ/#|ε{z%B:w;O]7eӞpgܭu9'Չ`<( QWj_T~>FΓB;zjJ`Pd 7d?fSFdrV-鋬Nb`k|JBGB2"^*U`LW Oe6R VO04B"%AG8ԄN]ҩ_3iBRRیNF0.X.Z~ylK&p3ш0]_.٠`R[eM7TWe fm0'tf#3ӗ lh'00c~ib&WU?$O v⦆V1*C] &}vd$u [s:L0]6>.Gm'Q%b+g>1E_: >nO(Z]̏҉@,P4)Q-u*n:\}4!nm:${CݛSkL@7C ri(^Qqo+sp{URA",NG]|j=+uT 9 L;׷/C?%Ad򙛛cO #Xv̂t(@}6eNZ^2o\I٨Xs~m>'mr|,PmWKtst5 F.@_."u'9;Rc TK^P #LG==+5y2L힎Q {vغQrn3V0F_{ŋB*iKԾB~Dqǀ._:dУc+~"iLwqse-lR϶DzxzmˣF%3ಖ 3C%;{Rf)_[LA {4Y A"vkrK8mt̎k.,nBxQ:-G.pQrVK WP A (1CHt*˂*~3;Ax5ih`o:Ba< i=$1ckDt*Q5Dzؽ4MgXE T4L zO7Ma*_8@ `5ջ-Jp.la]2Mlk4H m/kY,͡?nzaqxpψC@Z-&.Q^"H$j{?8Ezc9CHoO0(E*yqWm"5,JH^G9D ]O. Sg0%y\yY^qhϘ $eCiCdP>b&>2ak@3^0*e20yyoCNoS _\U}M\g FcM\G\%#iA1߹${ldŹ$;k?-8p7X Bl XFt |NÙBI(ḍ'( ¸Bؤ8L4c`bƚг>ih;mڍ~['U;,E͖L!c0ɵ!T_͊."5So.^RF5y@} ոpmCYUg<.qߪIvl_釔 %'}E),{"Kg6e`|0cr:ount; eK[xfʎ" 2gUixUcҢe7@KKWˡK5SBh{ z:}A[XOAvh4?O)J>=EǯL?F(w@i!0Yq,޼D_0_8Q`?" =QojO~R4T3yVNNhDA{>FFVTe}:#՟A)Y[pQX`Q38}dCm>LX]K2o\&R+.2S pnb' i(ɵG04vח':3:5Zles_FúCdSǺtǸ )ŀߡ c^.Z8qCPV{/iw ް#iǫؑS?&m71ҷz"OÜ휧Nڪ\ *:,=zwn_:o9,2=Nڅz"ZqvEpyީ-53 >Ja\mu-2~+*<͜DGvai%$ Ax*s(M c"sTvӯՀc`z a:l7:39Gmѳh59_+W⮻PլT\NOɥV % l`{HH+ bQ@g,°%1g",фIzXAëkiM&[my3E4)Ni%2ڏ>yΌHo4G ^dPQ/傛hNN\@460L $] pqHF9ҞbT8gi Ct)Jxf-qGݩ*m Bt]3mBBT볉#S@,hM?"+热3Zb`<ͮ}d Ës$e+4 \e񳛡P|cA }s ߘd`9 7˞is&U{'ȧi͏Gv'dsJm=:¤ K5!)(w:0`+c]|lhTqP)Wpzl yb薰.v "'Ǡ9A+N绉]nj z8q{[V!eFpulo2K:iw".֚o<{M 2r$`ч3G;nkh!fH_G1AwY;#|~ "tXU5/☼ B!vk\}TP3%trYj ~0/g'N 0z2ÍNgb0RiwlTmO!Q˷64)dlOdXA+= ?ϐ1,!!߂F:H`J+&`IDI[ߡW?N:4!bi1GƎThsvO#I꒐1VGLdL5ő9Hv Qt_df qd]PyC$6V)@&Hʝ=$-Z2&(İ~冗ɛ,1C0([}j'w{?(6j*kdEXj0żEِl^yU+*o+mw,$ڰtȠ鞨fEŐLюMLܝ`ܵ#AB1* d+o U0;'Rf#{yKد8xP 7θ@akˣDi]V| Bݲ%-g5㧬~al,}L νPSd, " k6]0'9';^`n9PK 2?$S:|ۦ."G'rq/g-dT1e[I':sYmA`mh"_}ەsv*}iEaBʪ ETI2B`YsЂvy*GT0]V ڧ94 cvIś<<N$BbKWK⡫t&񥵖#,2ڭ?#k@&FYqL:{Ӏ'G@g‹b5`&]+% WцY<Z+n~?=t_[kgwD 3t,x,:aΨ:|แ6V=FW](s^";=:@CsylqV%~nB#BLZSl;pWhZ|{n@4_>͜^]WY5{!Օ"E>w #K'h³\A_5 Ƙ8;HMj+Q3{_ie%~0 > W>;G}hE`̏dta"2fŸ-6Wr8Yw\N'W,.'WQ˚ҮFYU"'2tĘBԀ0uw)ef/Ais.esV?mD[ܐ}jpkQ'.ǜ?eqEjG)tvL]3jl7C3`}eFg/ոNGU M.]KH\7x 0QKV1 h(F7٠S"/w'72*r&/f{LϴDAڱA+zbX,d!"ZNZ<\&KR;4SҸoD0Gl<nrDcrSY\|2+ShzWgu@/5M!OVO!xGm@ P4k"\.:Z(3jKHB>CWНcbnVG^Ǖ#WDKVކկڻ)+_X&NI^?thGVcǑDhieQz`0txewG GWT9$E VfԺ04MC @9'@03Fbb3dNW l 3Ü(U w)wEq(YHnCp?u_+Dm=M#V\k HL8Rp^Ʈo<Ay;3^je! b A)%۷>'m? ZD`.*tn=I8Nme*Ya-j*6"ImdvU&P{/Y!rr7"yVeSc"l€ /rk]Ou n䲃Kg,^X\-?h^ Qa&VL}YF"7e3H6[*KhI\?"ˠl2Jғ[WxBz= #z\NE4Mns_OQfA b "|@>q~iI[JyeOh"gMD6a7g4wZyu$K1,!(YFN걙+b9%]ZՊzcoD$ Q}b3ͪ'Oy&5*=هL˥Z w#" 8p(L֯Z;ʌ|2<뱎NS㩕E9ه?JAdsod>+o:u~1 A7Ԛ!mm nGY n%|AbZH{^u:Ў$ȽtT\v r1zwBxL_v]4=z9{ḄYq$,U?R4HnxS;=xB8%fm߭qg` @2ӂӭ!|#= z֘7mJt"N&)[ͳLJOu$-ǫ}%[뼓P(/ݫǭb|y!G||4BC*FԻ~R`mxF3M0Qj U `.m.GG{׬& f^]6,;W`X+&fWA3X`;." UU LLH{" -cSVJ>&>| 2>P˧FwdYϩ+3|C|}m7-1+pv(" ^dx\<2]g.)<$6jڊ0T\3 y|޵+%Qmo'nN~d&K,tF[VM\Y2JҍbS:Y- >3Wo:1wj}Sق S#&FIHLm`QՓb-6Ah>J\YqE(JJXo=&NQ{0q$-l~{l@t DLx.̬;sU* vhWّrF*@&w4e!Ί &GvɗA@?΢W@g8-ʥW<{\ 0ObHRN$=\8hEn{9?o饳ze#-d7euJ9qEؤ7tI9x4hjTܨ> "kҷ$iIi-4r,PM=2Z@gIR Ed<KG^`Ͷո& j9q'XUr#"a2Gsjrkt:_F'8BA_h6DM>8˜{0)Dkqʃ 8IfPh%@wQMtXIɳ'9w}36-;%F ZbNfC&֢~)_)7\d:¥b& )YP'Dvn. ͊`p.LasfcJ#(3 jyFrZY12-`(]{ 2g\cVq45y ^yHF_~(tJ/6AϺ^eFBv7} ((`S =_gۺx'%%y7Ƶ4d vpý="LVWJ2Fȫ#bi>smt3; &pvZ@~–t>눔Mp PJWB*tRI]OCGS*;%N4u~f ?.e~ܑWض#XO ﹚Z)Nodٌ%g+QϬ_0O'!Ƽ+z[|q+,Y뽝WtPCK=2BE$XѨCn(cƊoѸP0év1TnHo'^}kP&/(\s@y֚ۨcJ-Ty>J^ڡMcγ 4%{kFh c7u֛3b}ۼj.M|1ox^q T- {hb d|A߀d^EDd{XAfj_0"7>}^o~SB /#X6:,u<=1UA l=?ۚN x$[bz$N5ayeͷ~8rkQ&P`9[=m$cW1);Y2@36?sS~m3{HҤgFgT &Dhv97`yJTYw' JJ߁I㧎OH 0A [!~BqE/]9Ncj@{@ƍ : iNu7Ur䜕B]Y6;#MQ)k/*b.U!R۟GT`9T>n'Qge7@yH+wا.BpCsVM:fmrj3 Wf3UYqWje3ͭ_vJd#yDEgIҊo $qx E\a3fU̢'wBVL 1XsZcliĉhkܓ/v[DfWB*?feԳ`%N q@! M %74\<^Mٵ7@\lj2D50֜sڧ<97RNp24 FK(Z(|gKs{cu>mwxdp>t`w-: ݸ+9rP-t/iޯk9ʡ(U&:F^ ru"Ab„e]Ux[ rJL |1aQAS PОFj]K0ƀð67l^)M(r{>iGAeFiɻiO96:nlA։"5vVِl(Րw#cN3 ׆AcXh'28ntٟ#b,ҥo2.(c c 9}ҲVXfPtJ h|8d K|yꍖsI$ap+$lo_ɣP\sV"~MM^ۺswr8+Q2ԉT)Koɧc*C`%*V kBm.e9FuOpKrl)1%JMm/[gkɖ=|:+6E⦡a//EjH ~q-Aph݊h"V*^VPֳ=?)o8= qc>_1 =.>r͌A.ӈNr$DaWPBLܬEZ`@! M{ntюBzNJ+0ýRueӜ2-xv̉ `]WGztr6&| F`Z!%2NJns~gGDm0I--߉9CEaÒӄ^ a:} /[Q2@? {mcu}.f}O:D(vE1p#KOSOgբ0Nf*ÖTxv.j?<^4H9܈R7[XkɅ|(BԢŒr9,+Uw婶z2]s])v9>6΅aZ0WGw٘X2~XKC&#}j$#3.ijr5AtJOHۋ|'X\A2ekӨL?'F~beQ\m\ϢfЬaNdVތZG>ZEUm'tm̛BuYLߖ"hf۲l$d<.ȟYC[LR8foBV6tf5K`ytB6s9KK;g*??Ц+UEnJB ;댗"CLeR*n0חJD-/ Dғ[n[pp!wk3]G5^c Wmh.vS/TZC*DM-rG%b6(fg]pǠhPEYjѹ[ 7жiyM41¢U~ kcaYG[S֜T=PH 4+މކH?8Nl-`)+v*$n? ƌ͗Aow0zKFςUxma;Ʒv4'V"-Ʌ[t9(6ksTi Iߗ.қ!_2.w͎ߍCT * X'cx }qxbfȩ[{,Kfy1QͶ鼹ЋRK2kvS{{ lJ%NݝQ堝0rSQ:ZM*^ ·;Qhy+|Z*?gPI)-l׸W֤R)r03cS(?vX12!4wޑi{`K; ͠0W@ e6i3ɑ"#E+tip~=ު OjKϽ.I: ۑ7|/v6mXhGEΙ"d}-+'u4Vɳ]&#F"9Z_ ٩gQ@@Z͹G,$mY+ʦ}' $=$T!=CM~XLdD@ cS%I>F 9+li>䬞!yR/ߣYX6tfeDC` ̎ NGS0 \)?jV;QiD ӝV6$3Yn`(f%q+X_R'ײp,|F.2[‘VkN[^&i m޺Ⱥ{ZdA)fD OS&V(|Ny^Sxj mƹwf@ܹOǢ3e&>'5xDZPO~4vco(ߙKck[ܮzGċ1=m匷6g;rPE~dp\i3|- %J};X93hW9Ӟš֕ChOcq7 ']s쮺)V8ڲbz[A:R'-+r7֐CM[('G0+g}IY'螠3ӕ%M/?lCk3DLkLO  ǝPh/w.*ƥo ͫ}.dz:kJ09OVu%pyi=Ql{ꣿH a\ˏ,ڃ 7 PC'1_$"88D⣤{p$;*oTSq$ tYi)6}(&9pGvo+!Vl"yMՆPnM'_jZx+-/2k8:8)S?M,b/[=NAyV(~xqX r7mtZ+(rWWտGu#72$#E:EJp@`:n{Cv_"_Rќ ^BĖgDmwuNOD|+(>Oۃ8 @|H(A6%GUͽW^q!PfjeP5·$Jp(.o9pOӂjEvV)#.,tGyL_6hc]nd2ZW ؞9 .\"#~Q'ѰQH$J:-R)*SX8&H-ad1Eo!f˿J]V#¬aW hͩ4ظf -/B4yVťPZk/#E}ξ}f9Xk4Css3{%X^R!CczK{LgĝG;[:ǽBxڝ;jeUTf6۽Ht bt?&4N&og0CDŽ`x]Eǚ<ewK׌Jc@2\`Ua蝆{GܭvFTer^MeReDhO [UTjpHoځV˗Yx'L iEK~LS4TxSSТn IRA6W,CPE>Wr\ٓda6:ӄ<NZE@"oO(T*Y|]P#g]GQ [B`Z Mm[u7Txߓ^jV ĎSęBr]mrs:< ?᭩e6wVJ(Os.oZιS*~GD^-us"ޫhmTeT񇻲)_rH4=%1x%Ҳ Vx<^|`{tfX_O@ ~,O*Fsj*c'Kq)- d+A:薫8Vc}# &9Үа0 Cm^k >}ղ8Iܓ7sIm_γ\NTAMipRʤ']>(t/erU=?iWЉiHqalU)7DҭK@x ?XJSALV6 WgIJ[2MY|.]ǶM-ضyrO>nLIJ 4B~mw6AfuY fwst_-t)DnW5-HBXc7+jD[ X*X{QT˟uOb]zpASMR h`Nt2\pZAgqLLV+kxwSXE\3c^0Z񓨑ȳ1xR@> r06l)PpZ6 'OT! 5q2.S?,j3\`* "ҀdQҚ%$sFbgXeuC&/m>] .H߳kgvC3j-aYHQ6Rb+̂`%6GjBvGb,8m(U9#T?|iɩAGT=B(]<܍͔w 4"ZyšCCr7l:s,91i4'rN尳!ysD!@&#R a3(& $uTρKĹw 뺅T^I2Y:ޯS1̑xpїdCԵe549$M]5Dǖ8JF}:ĦE;^lƍwre({\m6ѹr \{Sǹ$r:uآs4ɚj;;Q񛍱"}vM!ܠqJPӤ)7s@J#[D̨V`~1M  ±K> B};xWBmoHVe h}$v  0'IPGk-o@j. 'Y+ɫ,^%PQq_l>߷8vn#ԅtt1sT?֟JDNN[>܆$[|-*$Zh͉@/aR-UvmƊ)ͱ^HIcF۲Y@PՍ7|epl֘*h|.:0:JI&:%t{3;W Z.a CQRXO8G\nFLV.꣑?BhĔ缜ȼ9!p -S:RXg ,u@&߃ N jfF2k5'wY4wBT#UvAljc…+Amb5Nk>&? srpެ7Qɽ%c'u q9N瀈^`/nABRPu,#L2yKmAAEyR$Bm{=]0@ݪ5Af~/Z{q5S4ߟJ  =MbuY].u2I7B!@qZUc:9ywI)r Drmkfm~gqB9b ap=iKS"H:CGⶮCm5*O0K>IJ0+/{Ew)>R` f)T،O1D%"'$~hԺ9K|3C= Qw9_i=.ZDȇt?ʙD,'7±rI$(: #$jO*bdǨ΅(pι`J- 0\ {w<xZ52mQ,hb7;\d:1pxܨ0\xSY_  v3%xb ikD8T,u0%Uj9plAhh,F]#vȈiHG;dYa_hi/}rղ'Ft!J I#k RXSR^yMeCmy{C=^2aQQJe;sև,JTBuVK~ g'aR)Y؋] L:xFmf?J2"c{uBUIvޟ<]9YED:W=tH`zKwзNݢd)SLGqϓ8L,hxuR]i)*Z'AF }dasE: ,t'O]` |sȏw${HyJ?~f8dq !sǰ=vf+T,8SõvFw榜-pݱ"a~Ԥ@r3p7%ôrP:?8GufK|2X;%r6n?`LwB, `~ GC p'E1_0gj} 8I;Uӑ>¯ބLZ,R|a[y5E@_V>4DT!z(VYdCs[Dxɞ1^$hUR~_ϥ#f"t[(p%Xz0we$ĕge EJV_g}'@JhoDAKn}wLqz7x!M(sՃm t.HQ 0qe3n^ v~\Zj{s굝aѦ5:~@d=H /{k!:& \h),/}vX#4' ^iYݕJ4hL$Ƅ((>I^)s?2)]i0={EW<#aXag/3cH2h)rSqu9(?()5uev!oSZI0ze)ق0~+Q`6yXGqW4C7jlxMDڑHhF] F&TҒ!aA5M.g2,mˊ };|A[Tμ_bi8^p^ڄ^-V+uhj4?PHi`d,YeM EhWDƂ*Ssge`Ҍ%Ѳ1&Eq_> 04dq;#fibNÒX9nXʯA583]لBz rC07ZGE1*{f x3 n %V5J iH@ X  鷼.>P )^Kc|\XPJq(8ZԚQ8HkHٰEItkBH>*v<9f ORyrkhބ{9[0// cХ\ÓzT!UatEaԙg'N|TKKQ%V#.u rp 3ڔ_[@kOb9r=f00H?tY%B\Y[M;~ֺC\Kێ( J`qo#*W,Fja)e=<&k {b)&Mm~Q >T=SS>nB)2]>\5<ywo tePƼi$]8DX5b95 YO;2/(T+R.za&@W糰9ڃd@*MCxMȕ j9fhc,f6F3> ?RfQlJZl5uI3'$ ;} v 3j? h|M໙dFѮE M5ᬷ?&2 !lV砒/daW8r.HI<Ϫ)*X 6Qww;RwJ+ݬ$G-,< ]VFK"6ᐪ+բK ظ5TF8 O{ٻ:5^Me|[*Ȭ_KxϰcLL Lڠg9"4Ob]fZVYzvp#5cD6BpaJE}%TeP`l!/)Zj5o(:cS$2BC4I*Ll.2j_{/Şŏ7'0-xyY{p6?(TWS)ѱ0{eBD- )<1dn#/Lwz/,ߙ@ߞ5tj`|oC/ iG1&_6t&2 fB3ꏇO+GӺ~F*8@^ah?Tj׋a~6FHr3\Ӛǯﰘ}캯=.oyˋھ a5ej~hㅶJyE44lq#Ki&&107ңfi>/AIbIW0!DJkZJ\,Tc4t؛Mj[hZ"G.W_r]@AgX%d4 1/l'jf0I Xڀ$x)z ۞u1gm}"0o#)@'g%[ԇC wK3K^:p{OCWvYy Dq/6O"#)mi*l͇N]`.2L1MB2HLs\s퐷腇Il+DA2:p^ $j6BeL{'=C(&4vBC#k?u!"ԕIGmeۣGkxƗ v UGUCpQ$#̻ݯCJc0jދǗWhBC :4΅$ӟb)9f(Zx fH>DAj^fJ*˩ORAr7@骂nv$U<^7cyYdQ)ؾ7JB~ABoKARDnYWtƩ_\1?ÌH [jx!(ӽdg'O:ilF/lsU Y>xv 7qOizϛ gHOqh5̰p۱'W;c&v`d5\7p)I,}$I8qaupEV:j OIKk Aw y|LHEMa<ʼv|(!BטJWcG5Q:cugg!CWYM_u'(saŭ!~0}Xe/b߀2 eڍQɎ(^eơ@~&BαVk@i[;m7 lyM9E֣tb]Qm}x"I4I}ޮ&͇Y%[Umrޱ#I;+՛j-퇯phjGT}[TϵصB7 4Zl{׋Lh=BU}'YA#bGb렽W;f ( E˨{5gT^$@PRv0'*cl rw( &de#[#dji_rrB7^`K`M 4d~'~628xѤ,rjf\DAY?Ռ{Ga +f~h)%b3gK#‘bB՚_kDĀbT=UrBܘOaaa[_ێXqHGJϩElKVSk{\aw_(XJN<,2a9BĠ9@)ů*Uη^`*4O 6fRxʞ$-}' O Xi+Ju!3+i9xeNrU#Trt^ZȕPN.ٖٙzr=Zw"Sk\YLH [sN$Q:<sYnL(ZY0p*h7+F|/.Kj!ZakUAY k6ynO:GfVHEm=0|aEGf@xlrP͔ $ʹ'N4>×"?S A' d"ψhȂy/C2Ȍ䛒ѹF.".u@5XXv["(|kM`+GLźW|&x{)mB.;HI]h|1ɥ`<$b=p5_E10e:7Lm0~nˌ]g .T N \ ;Rni͎ c0 8#Z8K Mp0qm =y80[!@03W\joyZ*jB'cu0C|سl Sm:_9Gy2ʁ- BRB*$1CYDdK c )!DŽÌiDڰ~څoA|T}6qؖ1}+%vXX%Lgȗ燦!I9,dZ܆wg朮/U(:+(;Gt|_$Aoɶe먠syb,;Y&>_h%2\ʺ{*'Div)tV61Me-sc@B#Ͷ1@e{rn 0|HJ{*HB_s*Y0ߣ *8VUIF^ОWLf9L֠n;C}Eޜ$ a]zDr3F()]fuhq ŕ 6.Cܦ`x>Κ\, B[t/#iU&9+Kk]¿e>TDܧDO[qNĒRdNvm>ee4}ȃUGm?w#Ƶr8\`!v8k/{y̬^gξmƫiěsq|m!7ܪ  *2W_T'y:2Gq >󣞆/( K.0a#AjUsE˜)rvbi2tG3 y'uL-4ngP˝滝:zVkY1 !K23whXC s*^`<|CrSn.؋"*܇?#V,# B\U(Y_ y+T1|\V*3l7Z|7~:eڶ CO;wzXzMW9)40׻zw?S8{@}^k1x61KVAhS5޶7gpo]싾Eͨ; ubY̐D5oX[ bLi¨1F?^3ڗ"w& +@Q Na;}wEǾjtht)5s ߜmS© =BYgOWCYj|^DRڹAqF O`XBhc 6m &[ΖV+G@$~{W#yLS xMQJӒ/axg&ZjC3;eEIɼ.dTƵ@߃Qk9cTq-Չȑ_s򊷗[_{)mu΍w2-@S=@㬜 f,>T^~w&=ڗ,T>;1DkdnGӫ=>ĈvE_ eߍ~o̤B*G&I3 a#&-*WM$:T+(v OxnSi]w->C.?sHCi̍ya $e, 6=AN@~ՁgNw|x@ n YZ