gnome-remote-desktop-45.1-150600.3.6.1<>,L̉iHp9|^}q.Q:ؽsJ o2QDfU=bEEyvȝ)UQL`;λd!JaX"K/6FH?d ) U 5G{             - n ## #( @8 H(9 (:(>-?5F=GX H I XY\ ]0 ^\ blcdeflu vwP x y'zTdhptxCgnome-remote-desktop45.1150600.3.6.1GNOME Remote Desktop screen sharing serviceGNOME Remote Desktop is a remote desktop and screen sharing service for the GNOME desktop environment.iHibs-power9-22 SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Managementhttps://gitlab.gnome.org/GNOME/gnome-remote-desktoplinuxppc64le if [ -x /usr/bin/systemctl ]; then for service in gnome-remote-desktop.service ; do if [ -e "/run/systemd/rpm/needs-user-preset/$service" ]; then /usr/bin/systemctl --global preset "$service" || : rm "/run/systemd/rpm/needs-user-preset/$service" || : fi done fi if [ $1 -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --global disable gnome-remote-desktop.service || : fi@ HXF큤A큤A큤A큤iGiGi@iGe53qiDe53qiFe53qe53qiGe53qiE8b517d7c8d90d95a2d4a9cb360df6435a32fd69136f525fef5e04586e297ff0759320d8415712cbba55706a15dd69ae29b22662976530d3ce7ea506d36e53a3337f05cddc7d365ab51387a7ee62fb422fcbd3f365656cee9b08353b24a4684db7b0cac82fd5de487a8891f57363e68c928e81695b9be1b94496f0a41c019c6d128f297a4fac8e1a69c57f95b0998ce388c03e558084992f88e4cfeedc57a03755ca973a36124c0fe2dfb9b6187d472fd41ee0b808d0960c8e280cefa765851bb9acf8e89e82e92dd9fa676369d63b6abcfc6d8456dc0bd6c8f4c2a62c8c03a2b9fe5fe044708165643aaf3ef4d53b9a6c613129a4b3b2a3789e44dd8f1be17408177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b88064338ae508d3aa4bcfe981d1deac27a0b208c80abc3584b4379a4fef52eef9d441erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootgnome-remote-desktop-45.1-150600.3.6.1.src.rpmgnome-remote-desktopgnome-remote-desktop(ppc-64) @@@@@@@@@@@@@@@@@@@@@@@@@@@@     /bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libcairo.so.2()(64bit)libei.so.1()(64bit)libepoxy.so.0()(64bit)libfdk-aac.so.2()(64bit)libfreerdp-server2.so.2()(64bit)libfreerdp2.so.2()(64bit)libfuse3.so.3()(64bit)libfuse3.so.3(FUSE_3.0)(64bit)libgio-2.0.so.0()(64bit)libglib-2.0.so.0()(64bit)libgobject-2.0.so.0()(64bit)libnotify.so.4()(64bit)libpipewire-0.3.so.0()(64bit)libsecret-1.so.0()(64bit)libtss2-esys.so.0()(64bit)libtss2-mu.so.0()(64bit)libtss2-rc.so.0()(64bit)libtss2-tctildr.so.0()(64bit)libvncserver.so.1()(64bit)libwinpr2.so.2()(64bit)libxkbcommon.so.0()(64bit)libxkbcommon.so.0(V_0.5.0)(64bit)libxkbcommon.so.0(V_1.0.0)(64bit)pipewirerpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)0.3.03.0.4-14.6.0-14.0-15.2-14.14.3io@gee5ejdd.@d@dsB@df@dC@d@dcl@cS@ctcV~@c'@c@bbbbbi0@bf@b9@b8hb'E@b @aa}3aHwaA@aA@`W5@_I@^wS@]@[tZnmgorse@suse.comjoan.torres@suse.comyfjiang@suse.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comluc14n0@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comdimstar@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comluc14n0@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comdimstar@opensuse.orgbjorn.lie@gmail.comdimstar@opensuse.orgfcrozat@suse.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comhpj@suse.com- Backport connection throttling (bsc#1244053 CVE-2025-5024 glgo#GNOME/gnome-desktop!321): + 0002-daemon-Use-GError-auto-pointer.patch + 0004-rdp-sam-Dup-fd-kept-in-struct.patch + 0006-utils-Add-some-time-conversion-helpers.patch + 0007-utils-Add-helper-to-close-connection-and-notify.patch + 0008-Introduce-throttler-class.patch + 0010-throttler-Introduce-limits-struct.patch + 0011-vnc-server-Hook-up-VNC-server-to-the-throttler.patch + 0013-throttler-Allow-overriding-hard-coded-parallel-conne.patch- Ensure PIE (bsc#1235929)- Explict require higher version of gcc on SLE/Leap.- Update to version 45.1: + session: - Assert region size to be greater than 0 - Add debug message to also output new EI regions - Scale absolute pointer position with respect to the EI region - Clear all EI related instances before dbus session stop call - Only notify keysym when EI keyboard is available - Add struct for absolute pointer motion events + vnc-pipewire-stream: Don't remove buffer while dequeueing it + rdp-pipewire-stream: Don't remove buffer while dequeueing it + Adapt usage of abs pointer motion events to GrdEventPointerMotionAbs + Updated translations.- Update to version 45.0: + vnc: Also include DRM format modifiers when resizing PipeWire stream. + rdp: Also include DRM format modifiers when resizing PipeWire stream. + Updated translations. - Change compression of tarball in service and spec to zst from xz. - Drop dbus-1-daemon Requires, only needed for tests, and we are not building them currently.- Update to version 45.rc: * Use default RDP and VNC ports again. * Use libei for input event plumbing. * Updated translations. - Add pkgconfig(libei-1.0) BuildRequires: New dependency.- Update to version 45.beta: * build: - Add an option to enable or disable tests - Use meson to setup tests environment * ci: Simplify test code by just running meson test * context: Add getter for runtime mode * daemon: Fix acquiring screen_cast & remote_desktop proxies * egl-thread: Properly initialize egl_image * rdp-audio-playback: Fix type of PCM samples * rdp-dsp: Fix error condition when AAC encoder could not be created * rdp-fuse-clipboard: Check data size before dereferencing pointer * rdp-gfx-surface: Stop direct usage of RDP surface attributes * rdp-graphics-pipeline: - Always reset RFX context - Remove superfluous condition check - Use surface mapping to map surface to output * rdp-layout-manager: - Add API to invalidate surfaces - Also set surface mapping - Always invalidate surfaces when changing the layout - Duplicate virtual monitor in surface context - Ensure that the correct desktop size is always used - Fix calculation of surface position - Output debug message when disposing virtual monitors - Output debug message when preparing virtual monitor * rdp-monitor-config: - Also determine layout offset - Remove superfluous size sanitization - Short a few lines a bit - Tighten up primary monitor determination * rdp: - Move surface resize handling to stream class - Simplify encode handling - Use virtual monitor size instead of surface size for layout updates * rdp-pipewire-stream: - Add signal to indicate that video size changed - Fix race condition when stream is destroyed - Remove superfluous attribute set - Remove superfluous condition * rdp-surface: - Add APIs to set and get surface mapping - Add API to invalidate surface - Remove unused output_origin_[x,y] attributes * session-rdp: - Adapt to the new invalidate_surface API - Add API to notify a new frame - Add API to notify new desktop size - Allow multimonitor configs in headless sessions - Don't advertise handling for the RefreshRect - Fix incomplete warning message - Ignore SuppressOutput PDUs when session is not ready yet - Reduce direct usage of surface attributes a bit - Remove checks that are never hit - Remove duplicated handling for resizing the desktop - Pass tests=false to meson, do not build tests (brings in a lot of dependencies we can avoid with not building it).- Update to version 45.alpha: * clipboard: Add suffix to MAX_READ_TIME indicating the time unit * clipboard-rdp: Add suffix to MAX_WAIT_TIME indicating the time unit * daemon: Make daemon an abstract class * daemon-user: Remove unnecessary includes * dbus: Add prefix Mutter to dbus names * rdp: - Adapt to layout manager - Add layout manager - Add stream owner class - Do not include monitor config header in session-rdp header - Ensure PipeWire buffers to be queued before destroying them - Fix assertion hit, when monitor layout PDU contains no monitors * rdp-audio-playback: Don't dereference RDPSND context when it is NULL * rdp-fuse-clipboard: Remove duplicate assignment * rdp-gfx-frame-controller: Use render GSource of surface * rdp-layout-manager: - Fix render sources not being triggered when wanted - Handle surface reduction in layout changes - Recreate mirror-primary streams when streams close * rdp-monitor-config: - Fix calculation of the desktop size - Fix naming of the graphics output buffer size * rdp-pipewire-stream: - Emit closed signal when source node is removed - Lock buffer mutex before removing buffer entry - Use error signal on PipeWire core errors * rdp-surface: - Add APIs to allow inhibit rendering - Add API to set surface size - Add API to trigger pending render operations - Add getter for width and height - Specify target refresh rate directly at surface creation * rdp-telemetry: Remove protocol timeout source * session: - Add debug message when remote desktop session is closed - Move stream management to backends * session-rdp: - Add APIs to acquire and release stream ids - Add error info for failed stream creations - Handle pointer cache size properly - Rename take_or_encode_frame - Stop ignoring mouse movement on mouse button presses - Zero initialize events array * session: - Silence failed message when mutter vanishes - Use stream path instead of stream for abs pointer motion events * settings: Make settings an abstract class * settings-user: Fix copyright year * stream: - Also save stream id for easier identification - Remove unused context argument - Remove unused signal * tests: - Also output return value of test client, in case of an error - Do not attempt to wait twice on test client * vnc: Ensure PipeWire buffers to be queued before destroying them * vnc-pipewire-stream: Lock buffer mutex before removing buffer entry * Updated translations.- Update to version 44.2: + vnc-pipewire-stream and rdp-pipewire-stream: Lock buffer mutex before removing buffer entry. + vnc and rdp: Ensure PipeWire buffers to be queued before destroying them. + Updated translations.- Drop %systemd_user_postun_with_restart macro from the %postun directive. It's been deprecated and emptied (expands to nil) on both Tumbleweed and Leap already.- Update to version 44.1: * daemon: Stop and clear rdp/vnc servers when start fails * session-rdp: - Prevent DVC reinitializations on session shutdown - Fix small style issue * rdp/rdpgfx: Use correct GMainContext for protocol reset source * clipboard-rdp: Make warnings more explicit on content conversion failure- Update to version 44.0: * rdp-audio-playback: - Fix typo in debug message - Also output client version, when version is too old - Add SVC fallback, when DVC is unavailable * session-rdp: Disable audio output redirection for mobile clients * build: Bump FreeRDP version requirement * rdp-dsp: Fix typo in error message * vnc-pipewire-stream: Acquire EGL slot for transfer tasks * Updated translations.- Update to version 44.rc: * build: Bump FreeRDP version requirement * clipboard: Always call g_task_return_pointer() after reading content * egl: Release current context before destroying it in error paths * egl-thread: Add ability to replace transfer tasks * hwaccel-nvidia: Replace deprecated function cuDeviceComputeCapability * pipewire-utils: Fix a few style issues * rdp: - Be more strict with invalid monitor layouts - Stop dequeuing PipeWire buffers while destroying the stream - Only invoke frame source, when previous operation was successful * rdp-audio-output-stream: Destroy the stream before clearing its pointer * rdp-audio-playback: - Add SVC fallback, when DVC is unavailable - Also output client version, when version is too old - Fix typo in debug message * rdp-display-control: Disconnect clients, that violate message order * rdp-dsp: Fix typo in error message * rdp-fuse-clipboard: Rely on include dir in pkgconfig file * rdp-pipewire-stream: - Acquire EGL slot for transfer tasks - Remove code path, that is not hit any more - Remove superfluous condition * session: Fix a small style issue * session-rdp: - Add error info for invalid monitor layouts - Also advertise RemoteFX in image mode - Disable audio output redirection for mobile clients * vnc: - Stop dequeuing PipeWire buffers while destroying the stream - Only invoke frame source, when previous operation was successful * vnc-pipewire-stream: - Acquire EGL slot for transfer tasks - Remove code path, that is not hit any more - Remove superfluous condition * Updated translations.- Update to version 44.alpha: * build: Use schemadir variable for installed enums * clipboard-rdp: Also check for / separator when preparing uri-list * egl-thread: - Remove unused callback context - Remove unused typedef * rdp: - Avoid direct usage of the attributes of RDP buffers - Deprecate the legacy graphics path * rdp-buffer: - Add API to actually unmap the CUDA resource - Add API to map CUDA resource - Add API to register read-only GL buffer - Add getters to retrieve buffer attributes - Make buffer struct private - Rename unmap_resources to queue_resource_unmap * rdp-pipewire-stream: - Assert buffer types to be either MemFds or DmaBufs - Decouple pointer updates from frame updates - Ignore frame data, when mapping memfd fails * rdp-server: Remove stray new line * vnc-pipewire-stream: - Assert buffer types to be either MemFds or DmaBufs - Decouple pointer updates from frame updates - Don't pass NULL as frame to on_frame_ready * Updated translations.- Update to version 43.3: + Updated translations.- Update to version 43.2: + vnc-pipewire-stream: - Don't pass NULL as frame to on_frame_ready - Assert buffer types to be either MemFds or DmaBufs + rdp-pipewire-stream: Assert buffer types to be either MemFds or DmaBufs + rdp-server: Remove stray new line + Updated translations.- Update to version 43.1: + clipboard: Always clear mime type tables when updating clients clipboard + hwaccel-nvidia: - Also output actual NVENC errors when API calls fail - Always output CUDA errors when API calls fail - Fix small style issue + man: Only include man page content for compiled-in backends + rdp-audio-output-stream: Set stream inactive before destroying it + rdp-monitor-config: Fix typo in verify_monitor_config + rdp/nw-auto: Fix crash when updating unchanged ping source + rdp: - Suspend PipeWire stream on exit instead of flushing it - Unlock stream lock mutex while suspending other audio streams + session-rdp: - Also check VCM handle when clearing it - Fix check when creation of virtual channel manager fails - Only print colour depth fix message when situation applies + vnc: Suspend PipeWire stream on exit instead of flushing it + Updated translations.- Update to version 43.0: + Updated translations.- Update to version 43.rc: + Many small fixes and improvements. + Updated translations. - Add explicit pkgconfig(gio-2.0) as build requirement to align with what Meson searches. It was already being pulled to the build by its siblings (gio-unix-2.0/glib-2.0) since they come from the same package. - Add explicit pkgconfig modules as build requirements: tss2-mu, tss2-rc, and tss2-tctildr. Same reason as gio-2.0 above, but this time pkgconfig(tss2-esys) was the one helping the others being pulled. - Pass 1.4 and 11.1.5.0 as minimum requirement versions for epoxy and ffnvcodec respectively to ensure the package uses the minimum that upstream recommends using.- Update to version 43.beta: + Add man page + Add TPM 2.0 helper class + Add TPM credentials using headless runtime mode + build: - Bump FreeRDP version requirement - Bump version to 43.alpha - Disable VNC support by default - List credentials dependencies separately - Sort dependencies alphabetically - Sort sources alphabetically + ci: - Add tss2 related devel packages - Build with VNC backend + context: Move out debug flags + Convert README data/README to MD + credentials: - Add TPM 2.0 backend - Do not crash when deleting non-existent credentials + credentials-libsecret: Do not crash, when deleting legacy VNC password + ctl: - Add support for TPM credentials - Fix error messages + egl-thread: Release EGL context before destroying it + hwaccel-nvidia: Don't dereference NULL pointer in assertion + Introduce GrdCredentials + pipewire-utils: - Add helper function for creating PipeWire source - Remove grd_maybe_initialize_pipewire() + rdp: - Add API to tear down channels during a session - Add classes for audio output forwarding - Add RDP DSP class - Add support for audio output forwarding - Combine buffer creation and resize operations - Don't dereference NULL pointer when parent dir cannot be found + rdp-event-queue: Correctly clean up resources + rdp-gfx-surface: Delete GFX surface before clearing its members + rdp-graphics-pipeline: - Extend comment with documentation reference - Fix uninitialized caps mutex - Measure bandwidth when sending frame updates + rdp/nw-auto: - Add APIs for bandwidth measurement - Also notify client about network characteristics results - Assert RTT consumer != NONE, when removing RTT consumer - Disallow unqueued bandwidth measure stops - Fix initial ping source not being created - Remove superfluous if condition - Turn assertion into normal conditional statement - Turn ping info condition into assertion + rdp-pipewire-stream: - Properly deinitialize PipeWire upon destruction - Remove unused SPA_DATA_MemPtr path - Use common helper for PipeWire source creation + rdp/rdpgfx: - Create RTT pause source while GFX mutex is locked - Only clear unacked frames when surface has frame controller + session-rdp: - Add API to subscribe to DVC creation statuses - Do not crash, when credentials are not set - Handle queued bandwidth measure stop operations - Stop leaking session sources when session creation fails - Stop leaking the event queue, when session creation fails - Use trivial boolean value for condition in graphics thread + session-vnc: - Add support for sessions with virtual monitors - Do not crash, when password is not set + settings: - Add new screenshare mode setting for the VNC backend - Fix title of specification in setting description - Remove a doubled 'to' + tests: Add test for the RDP backend + tests/egl: Replace tautologies with actual modifier checks + tests/rdp: - Add additional debug messages to RDP test - Add missing NULL check on stop_event + tests/tpm: Skip tests when TPM module not compatible + tests/vnc: Use mutter headless backend + tpm: - Add ability to do capability check - Make tss2 log into /dev/null + types: Sort typedefs alphabetically + vnc: - Add ability to resize virtual monitors during a session - Add VNC virtual monitor config - Allow passing virtual monitor settings to pipewire-stream instance + vnc-pipewire-stream: - Properly deinitialize PipeWire upon destruction - Remove unused SPA_DATA_MemPtr path - Use common helper for PipeWire source creation + Updated translations. - Add asciidoc, pkgconfig(fdk-aac) and pkgconfig(tss2-esys) BuildRequires: New dependencies. - Pass vnc=true to meson, build vnc support even if disabled by default upstream. We are not quite ready to drop that support yet.- Update to version 42.4: + ctl: - Do not crash, when deleting non-existent credentials - Fix error messages + rdp: Don't dereference NULL pointer when parent dir cannot be found + rdp-gfx-surface: Delete GFX surface before clearing its members + rdp-graphics-pipeline: Extend comment with documentation reference + rdp/nw-auto: Disallow unqueued bandwidth measure stops + rdp/rdpgfx: Only clear unacked frames when surface has frame controller + session-rdp: - Do not crash, when credentials are not set - Stop leaking session sources when session creation fails - Stop leaking the event queue, when session creation fails + session-vnc: Do not crash, when password is not set + settings: Do not set error twice when secret_password_lookup_sync fails + tests/egl: Replace tautologies with actual modifier checks- Update to version 42.3: + egl-thread: Release EGL context before destroying it. + rdp-graphics-pipeline: Fix uninitialized caps mutex. + session-rdp: Use trivial boolean value for condition in graphics thread. + rdp/nw-auto: Turn assertion into normal conditional statement.- Update to version 42.2: + rdp-graphics-pipeline: Measure bandwidth when sending frame updates. + session-rdp: Handle queued bandwidth measure stop operations. + rdp/nw-auto: Add APIs for bandwidth measurement. + rdp/nw-auto: Also notify client about network characteristics results. + rdp/nw-auto: Turn ping info condition into assertion. + rdp/nw-auto: Assert RTT consumer != NONE, when removing RTT consumer. + rdp/nw-auto: Remove superfluous if condition. + rdp/nw-auto: Fix initial ping source not being created. + rdp/rdpgfx: Create RTT pause source while GFX mutex is locked. + Updated translations.- Update to version 42.1.1: + session-vnc: Don't leak the socket source + hwaccel-nvidia: Degrade a warning to a normal message + context: Initialize EGL thread when daemon is ready + rdp: Perform basic error checking in SAM file creation + session-rdp: Always check return values of API calls + Updated translations.- Update to version 42.1: + vnc: Retrieve frame members before stealing frame pointer. + rdp: Retrieve frame members before stealing frame pointer. + daemon: Only start servers, when they are not started yet. + settings: Don't crash, when parsing the credentials string fails. + egl: Use Wayland platform instead of surfaceless. + session-rdp: Only show NSC disable message, when NSC is available. + session-rdp: Fix typo in warning message. + systemd: Autostart as part of gnome-session.target. + daemon: Handle SIGINT and SIGTERM signals properly. + Updated translations.- Add explicit pkgconfig(libdrm), pgkconfig(gbm), and pkgconfig(gudev-1.0) BuildRequires: meson checks for them. We should not rely on any other package pulling it in.- Update to version 42.0: * Updated translations.- Update to version 42.rc: * Add 'grdctl' * build: - Bump nv-codec-headers version requirement - Stop making the nv-codec-headers optional * Cleanup server stopping * ctl: - Add --show-credentials to status - Add 'status' command * egl-thread: - Add methods to upload data to the GPU - Also allow bound dma-bufs to be mapped - Don't require callback function for custom tasks * Explicitly enable/disable backends via a setting * hwaccel-nvidia: - Add APIs to allocate and free device memory - Add CUDA kernels for damage region detection - Add methods to get CUDA functions and damage-kernels - Add utility functions for accessing GL resources - Also return aligned size when creating NVENC session - Load extra CUDA functions for GL PBO mappings - Push and pop CUDA context to and from the EGL thread - Reduce global memory access in BGRX_TO_YUV420 kernel - Unload modules before releasing CUDA context - Use a block dim of 16x16x1 for BGRX_TO_YUV420 kernel - Use mapped CUDA pointer for AVC420 encodings * pipewire-utils: Add functions to check whether PipeWire buffer has data * rdp: - Adapt to GrdRdpBuffer - Adapt to GrdRdpDamageDetector - Adapt to RDP buffer pool - Add classes for damage region detection - Add CUDA damage detector class - Add display control class - Add RDP buffer - Add RDP buffer pool - Add RDP monitor config - Allocate and register GL resources for each RDP buffer - Allow dma-bufs again when CUDA is available - Allow passing virtual monitor settings to pipewire-stream instance - Always upload frame data to framebuffer on GPU, if possible - Avoid local copy if possible - Defer cairo region creation if possible - Disable dma-buf support for now, if CUDA is supported - Only initialize clipboard if CLIPRDR channel is joined - Split up AVC420 encoding - Stop reallocating NV12 buffer every frame - Track and use rdp_surface reference in stream class - Unref frame when success is FALSE - Use internal enum for RDP errors * rdp-buffer: Add API to unmap resources * rdp-buffer-pool: - Prefer buffers without mapped resources - Unmap buffer resources with low priority GSource * rdp-gfx-surface: Add way to override the render surface * rdp-graphics-pipeline: Create separate render surface when needed * rdp-pipewire-stream: - Add API to resize stream - Don't miss any buffer data - Don't queue chosen PipeWire buffer * rdp/rdpgfx: - Adapt to RDPGFX frame controller - Add RDPGFX frame controller - Allow GFX surfaces to have their own aligned size - Allow surfaces to be created without an hwaccel session - Forbid protocol resets without AVC support by the client - Target render surface, when encoding data with AVC * rdp-server: - Cleanup resources directly when stopping the server - Tear down NVENC after sessions * rdp-surface: Create CUDA damage detector, if CUDA is available * session: Also clear signal handler, when the session proxy is closed * session-rdp: - Add API to submit new monitor configurations - Add support for monitor layout changes during a session - Add support for sessions with virtual monitors * settings: - Add new screenshare mode setting for the RDP backend - Move Secret schemas into a separate file * utils: Add helper to calculate aligned sizes * vnc-pipewire-stream: - Don't miss any buffer data - Don't queue chosen PipeWire buffer * vnc-server: Cleanup resources directly when stopping the server * vnc: Unref frame when success is FALSE * Updated translations.- Update to version 42.beta: * Add DMA buffer downloading support to EGL thread * Add grd-utils * build: Bump FreeRDP version requirement * ci: - Build mutter from git to have the updated screen cast API - Install soon to be needed dependencies * context: Hook up the EGL thread * cuda: Fix out-of-bounds source read in BGRX_TO_YUV420 kernel * egl-thread: - Add API to query format modifiers - Add API to run external functions in EGL thread - Add fallback with EGL_PLATFORM_DEVICE_EXT - Add sync function * hwaccel-nvidia: Use compute devices retrieved from EGL thread * Introduce an EGL thread * pipewire-utils: Remove unused sync function * rdp-gfx-surface: Don't forget to set the surface serial * rdp-pipewire-stream: - Add support for explicit DMA buffer modifiers - Fetch cursor state before framebuffer content - Make buffer processing a bit more async - Make GrdRdpFrame ref counted - Move pixel copy loop to a helper - Use a helper variable for the pending frame - Use EGL thread for DMA buffer downloads * remote-desktop: Synchronize remote-desktop API with API in mutter * Remove semi colon after GType macros * Rename GrdRdpNvEnc to GrdHwAccelNvidia * screen-cast: Synchronize screencast API with API in mutter * session: - Add methods to create streams on-the-fly - Add method to notify subclasses when session is started - Port record behaviour to new API - Require stream for absolute pointer motion events * session-rdp: Move on_pipewire_stream_closed() down a bit * settings: - Fix test RDP username override - Unify code style in gsettings schema * vnc-pipewire-stream: - Add support for explicit DMA buffer modifiers - Do not allocate frame data twice - Do not leak pending frame, when destroying stream - Do not resize framebuffer when client is gone - Make buffer processing callback based - Make GrdVncFrame reference counted - Move format details helper to common area - Simplify buffer merging - Use EGL thread to download DMA buffers - Use GSource to invoke main thread * vnc-server: Make refusing VNC clients more explicit * Updated translations. - Add pkgconfig(epoxy) BuildRequires: New dependency.- Update to version 41.2: + stream: Add method to disconnect proxy signals + session: - Stop trying to stop the session, when it is already destroyed - Disconnect num/caps lock changed signals when stopping - Fix small style issue - Only handle Selection* signals when clipboard is enabled + settings: - Clear settings of type string before setting new values - Don't leak credentials, when username or password is NULL - Set error if username or password is NULL + clipboard-rdp: - Make a warning message a little bit more explicit - Make SelectionTransfer requests async - Fix error message, when runtime directory creation fails - Fix small style issues + clipboard: - Split up SelectionTransfer handling - Also clear GMutexes and GConds on destruction + context: Clear proxies before setting new proxies + daemon: Also clear context on destruction + rdp/nw-auto: - Only create ping source if required and non-existent - Also clear GMutexes on destruction + rdp-graphics-pipeline: Also clear gfx_mutex on destruction + rdp-fuse-clipboard: Also clear GMutexes on destruction + rdp-event-queue: Also clear event_mutex on destruction + rdp-pipewire-stream: Also clear frame_mutex on destruction + session-rdp: Also clear GMutexes and GConds on destruction + Updated translations.- Update to version 41.1: + vnc-pipewire-stream: Take frame data from pending frame, when needed + rdp-pipewire-stream: Take frame data from pending frame, when needed + rdp/rdpgfx: Unref surface serial after looking up surface context + rdp-graphics-pipeline: Fix small style issue + rdp-fuse-clipboard: - Fix potential race when accessing FuseFile path - Fix small style issue + clipboard-rdp: Always check return value of ConvertFromUnicode + session-rdp: Only signal GCond, when all encode jobs are complete- Update to version 41.0: + Updated translations. - Set .changes to be filled via service file, since upstream fails to provide a changelog/NEWS file.- Update to version 41.rc: + No changelog provided by upstream. - Add pkgconfig(ffnvcodec) BuildRequires: new dependency.- Update to version 40.2: + rdp-fuse-clipboard: Handle FUSE lifetime object in FUSE thread + tests: Use bash from environment instead of hardcoded path - Changes from version 40.1: + clipboard-rdp: - Also output client capabilities - Add dummy handling for the Temporary Directory PDU - Advertise clipboard data locking - Adapt to data locking changes - Add APIs to lock/unlock the clients clipboard data - Implement clipboard data locking - clipboard-rdp: Use g_idle_add() instead of g_timeout_add() + rdp: Allow submitting clipDataIds for FileContentsRequests + rdp-fuse-clipboard: - Remove the old API - Use notify_delete() instead of notify_inval_entry() - Be more verbose with file range requests - Read files until the very end - Handle all file lists via clipDataIds + rdp-sam: Remove stray trailing whitespaces + pipewire-stream: Don't leak GSource's + build: - Add missing new line - Explicitly depend on glib >= 2.68- Update to version 40.0: + rdp: Add support for FreeRDP 2.3, support 2.3, requires at least 2.2. + Manu bugfixes. - Add pkgconfig(freerdp-client2), pkgconfig(freerdp-server2), pkgconfig(fuse3), pkgconfig(libvncclient), pkgconfig(libvncserver), and pkgconfig(xkbcommon) BuildRequires: better align with what meson looks for. - Change _service file to point to the proper upstream git repo (gitlab.gnome.org/GNOME/gnome-remote-desktop). - Drop gnutls-anontls.patch, 0001-vnc-Copy-pixels-using-the-right-destination-stride.patch 0001-vnc-Drop-frames-if-client-is-gone.patch: fixed upstream: fixed upstream.- Update to version 0.1.9: + add support for RDP (requires freerdp2) + many bugfixes - Add pkgconfig(freerdp2), pkgconfig(winpr2), pkgconfig(cairo) as BuildRequires. - Bump pipewire minimum version to 0.3.0. - Update url to GNOME main project. - Add0001-vnc-Drop-frames-if-client-is-gone.patch Avoid race condition on disconnect (glgo#GNOME/gnome-remote-desktop#43) - Add gnutls-anontls.patch (Fedora), requires patched libVNCServer. - Add 0001-vnc-Copy-pixels-using-the-right-destination-stride.patch: Copy using the right destination stride (glgo#GNOME/gnome-remote-desktop!21)- Update to version 0.1.8: + Port to pipewire-0.3. - Replace pkgconfig(libpipewire-0.2) with pkgconfig(libpipewire-0.3) BuildRequires.- Update to version 0.1.7: + vnc-pipewire-stream: - Assume no bitmap offset means no bitmap change. - Close session when disconnected. + vnc: - Request cursor sprite as PipeWire metadata. - Detach source when client is gone. + session/vnc: - Set rfbScreenPtr pointer earlier. - Update server format earlier too. - Always set pixel format translate functions. - Don't requeue close session idle. + Use type safety feature of glib 2.58. + meson.build: Use default C standard. + Remove autogen.sh and Makefile. + meson.build: Bump pipewire requirement to 0.2.2. - Drop pipewire-bump.patch: Fixed upstream.- Update to version 0.1.6: + Please see https://gitlab.gnome.org/jadahl/gnome-remote-desktop - Add pkgconfig(libnotify), pkgconfig(libpipewire-0.2) and pkgconfig(libsecret-1) BuildRequires: New dependencies. - Drop gnome-remote-desktop-bad-meson-option.patch: Fixed upstream. - Add pipewire-bump.patch: Fix build with new pipewire.- Initial package./bin/sh/bin/shibs-power9-22 1772198728 45.1-150600.3.6.145.1-150600.3.6.1 grdctlgnome-remote-desktop-daemongnome-remote-desktop.servicegnome-remote-desktopREADME.mdorg.gnome.desktop.remote-desktop.enums.xmlorg.gnome.desktop.remote-desktop.gschema.xmlgnome-remote-desktopgrd-cuda-avc-utils_30.ptxgrd-cuda-damage-utils_30.ptxgnome-remote-desktopCOPYINGgrdctl.1.gz/usr/bin//usr/lib//usr/lib/systemd/user//usr/share/doc/packages//usr/share/doc/packages/gnome-remote-desktop//usr/share/glib-2.0/schemas//usr/share//usr/share/gnome-remote-desktop//usr/share/licenses//usr/share/licenses/gnome-remote-desktop//usr/share/man/man1/-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:42946/SUSE_SLE-15-SP6_Update/21e43a74d16352f9f8ad0bfc7c6aa605-gnome-remote-desktop.SUSE_SLE-15-SP6_Updatedrpmxz5ppc64le-suse-linuxELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=20b734f8e36151b7c021339567347295acef5025, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=b37b27d88b163502d3abe5f3a1ac55087974da3d, for GNU/Linux 4.3.0, strippedASCII textdirectoryexported SGML document, ASCII texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix) RRRRRRRRRRRRRRRRRRRRRRRRRR RRRRRR R R RRR RRa$yĪ)`| ~#/systemdsystemdsystemd-sysvcompatutf-87eb6466174ac710c78cb4e9f20104051d327921d0e8f6211c0608b36094d08e3?7zXZ !t/ۿ]"k%!<|dg`Xh Ӛ U24lpST&PAyL*QA&)bڴib@w~Ґ Utyu$#~m5o J!qsjhJWy m'$ ۛ@5ivi "Dfg̃(?:ĎjAYDY D,%dZG_P lK֟P\XZH3W7/@J3Z/?iOUyzH9 fs;?KJH$sY6r"D2(7r P9r\ϻ&uAq`/_&J'co59V6F!܍<9SإE4 )0 \ͮLE ^TX3E!e3#ܸbfTZIu@b8 @a !ܕf @\:AObs"w`Jm+x@l5$zZ]mIL RET yxO'UR6f,^ 8O0[y֛Qۖ5<"NOEi85ؚRqt)ya=TGXS-Q*Ctp4njI> &"J jy܍H|Iz' GÔ?nc 9A+ȨK5qRya5ˋ36aqM5S%>3gkL9LoboJƲЬ3\悆(^&<q>5) ǫu8r#"+P\VD}:}e˼reR䘑{CMȕ:>iiDm3am|n$8Wʡ DSYho[tW* V;$.9 D߫oI-~W͟J?*PiŬNl 0!?i<M{.IjlBsҒ|V׳{c[ u?EY[$Y~tDPAk GmU=coZ em"Sn,9L82ΘNf==j2% *=i,O_4d+bF剦}|$L?g^i4jkס[Ő1Ep' lb3 p/μ3N/jc8EOBH\UW+:h ^z <,Nc=ǽpZ4KQݜ 8xt $dpZ&{$I* ~H˺o;e|a͉AkhW5E; K#=iߓ ReΡշśW w:oCS>rj=YOa̰FXP{U[[ޥRIӿY4S@ô`p>w)t;ze釹8QE0DY!$GxfhaՂJaDv$XnCkC_4H4n޿_'P,3xLFdzI;UqF7$ICY92_'kbM%oٛ msi]ǘcPh:٨٤] 4WM;OVapxbJ"alp$t+1p!ڣ}> ?Q/?po=l=0ы)zFVЃZ 4ůdQ +սD4̫ҽ54K9tQ>vGfIbCyFoCWQ ݓ5Q8/=0=Eu34UA rԦ5U33H6J=}df`j9kARX R  DZ0 4: F/lˍ&~ `F[rU6}@P[+WIEa=' MZxwfr ۿyjv0ElpNrTK+Z+h(:5IM350-[ެ?SZ{M-lnE|i2{.@jH}2!zOV !XӠ 5Ğ-^5DD@;o '4`A&`_T!o >Yk/T Ye!oFMi~v\%I^tbB<p@9“5F5DWش4 hw9T>"vE[4;jsnu~9Ln1&{S n^78Ϗ Mf^"a&;ulʶ{]CoMMYl6\Z0lgE0 v׷(HeH+}l25[f q'Rle*3{ ロ~pi5tQ@)%?fP/awr* HR<7a܄D '{zP\ Q!"㤧(BoY*A:|tC{c6-E>ȼڛΩ%Љ#YU)Uƒ,#0e0"(eS> "9;Ck_&aXpdHذ;Hz҈, K%S!IJ-ؤ *wU"]  I6 Vu=-}/^B@OVj*Hyc1$D<0%gV&%gTrhqe~;J0[p={pgUšL:&`%N{E ?@k}mF?Y(F>tO8K% |wj QH2Dg&8C(nsin Wd,g EKTwÉGLDz=P\m>m87Bí+O8JFtC3c AM(dOog(rse7x1a!m5'^@^۱{𠲱n-fFPxWR`IUZxj uۥ~`J۫]?8Դ"·IzM7EaiѴ_n !l==uqpDgyNz)|ѽIE CX;t di aH6?ϥیz*on5I_'st)}R(dO' SO,wZ!:痁X*Б6 khȟcɰ{F\E@E/0]`ޝ%|uP\,Di=k]֐B :]myxV#ЋW ŴYCh*4zk|҈쵝{9R@m)8j U&ٛo;Fb "PC@u`1\]MﴚJ<'ib52!Xmy:,ykU/\ħ11s =7=ow]"^]3@0฽`܇"K9pMݟ@#`hIm;oy U<ٛ5JK,'1)TDz4& ! $tD+Gى;9mySU]t3") sV+E |s ^~ܶeA_|h+̃>g/ׂsxF?Qc]8db֗g9MO9r1 PDwpHId﹋L25w,b/J$?SYe[W49PHj52EP\<6ԥoB s|շ!!0Bðy^3^ D!hьn2ȟ1bYf?C[3TUKjH8Cp ׈1eSp+J~tm㔯=Bg5O떜#me)dh 6|YhN5 ) =I(]ũ{醇LS✄OX 71`h;x,cT،-9ԑ IYr?L.ӡPA>#c?kځĞbOdU }&UVR22}DMo.\Pq L+NuU=dYr¸.Y')ɡa4؈Y Te]? =w;~` 2:a@$SrekT"-H2ahn4IkI Qk"HRNCU1IM~SS |u~|8=g5;Ii]e2bW(뫆[,fi7S+=kHk~N[{XtT1С؂^Ӽ.A;;[A&rdI2!"[6i2ţ]Oʮ; Gpz0wJh^'t?..2նu_-s[ jPO&`W=^^R4z@]7B#]N_rӱNМӷFxŽe ^x,f^d6G/?j1鼥ا:1~X8|tJv){6n$MP/O2@6zrDIƷᢪL=TƏp#C5r3ճuf=C@j@DXR?b_%;FF`~ )pY@U^ϷP8αN}Y̭7F-Y9{Ԉ 9)XtvxعP#a5|MxT F<3G0鵝,vz8 ج;~mG< bww`eBl{|V JOMTO $ B1D"/N5{Cwr6mމvFb!G7 8Ƭ=^lR\ ܻ>Y;u8ۆA$up:DZyK93$KN~ߗ0V_S{[pj0j^D,s"/}FAy2ԔX%Mnb* ^,߮T.fZTK"t\/;fTku}p+[bU{DnIʳ(Z(]JޖO~17z|+S% pIKba_a0 A4#/Yd'$b1խIܩBBaIjkDA`2f( f$xA)`MXJjQ#]x&5 |Z.qK@qa0ֲtEij_%[:D`*5W6>=lTj;i ݧQ:il!e ೩u{S R9-Ph^L~]ʑ5xE0YPuD.AK`(5&-V\濼qĽ5ǚ[1} )rO28,u zy`Õ#my;?7P8XI2™gX#L~:t)՗a wKܶ\[G1dxk7Uэ u){nQFМ>eaXslk~2f~҃Qdĸ.pXf+wͳW'taJK uY9JpƷ=R#TiQ%0'}NI"i|hVf9RiHJD)H!]]<+8ygЯ]٢fͻ"%)H'ɄE4{@|@LZKMDu}BcG'Y7#踥%Ͼg~Zu'c(IXNݙ6ߓܹDXSs=Z50+ 3&)u$xrC3K]B| 4b]gh#2) |Bc_ڲ*UJ-+S|*fbc]T&Đݧ"wbܜ(d5JaS^|9w q.#%w}pMx="&&5+R5 ת >\];n&K/크Lۑ X* hu`iq`%)3bJ 4Q*LFJE7\1\4@C|!Lux9s_{`aq-B~`7vAjM?={_sc~ ABOc{M81 ǽ’XE<=ahMן@Bx|D <3gSpmeJo36Jh=e$vsт)*tE`af@@˯a޹ς40 =,lGgنIW [#`n4h fmZ̄+Q'O/ʴ5e _dȕ kMgF߶٭kȳP3 S%;n 'ڇ mAƗV"9̮= :=Z= VMOɲcVlp(frS1l{A} )dR~eڷ?蠮_] zQ j=XWS4rEO2Mlv A[1/@1E-vNm (ERa>AL]V1hEz ]iQH7ACpE U5 &H<1Ib6S;ُO%# Z,zmoUU`Urs.zv,[t 2ln/vfL c(+16U 1G𙾩E$W2|hUص?D^Z>ͯj7(k*gS?۵6ln$F5+J7n0tDyx.Tиi4)0Sg59(P5_w8I h^H䌻P([·j DG- Ia*Y9 *xP!Z+Н)UA`(=)]^#Hn7$v(lClbЖcX1u ù1=X9)$q\16AՁӒQ3x-~z?$-eF~Lo }蔻Ae:F^nЍ˰KHsltc"Cޓ.H:qzpi/ 1Ω<a5Yuܤ,ݏeQ5r1Je uvθ@(*wt2cGVN7Ursj k#Z2jO{iȑ~qgI*e8ZNOR=ɇhժBDn|icq/}BpK!rQjT5|o1͖uV,t$#qCHMx4ȅ!q=8sĶ)!!ܥ9hq9٪Ė"uYw?u6/e6D:,u&xcTf@Upo?F g!'uO;I&~F=.R1i0 ?1"R Sa1o++Ƥ ;[;UO^TbXgG#)J]"._y1VLMȟ,ҟ4y<Ze/azҲkǛ6̈́7F =tq!mL]d׬ƗA {B5J zb.i%9pUq߽l>MKu75҉rI'$bo+JCYն/ uְWK*eIoC6,xj$r3Z (V ㄏXZR4cwݣ:hs2E`qHr5(rr7[ľP:-">mSDA@g RXu?oB 1=b]-. psj9 <8NjLmQ>^8u;ވ t0Ie0/( ͗=zXc0[‰cI34Jȕڇ< P}DjМ: )$wqeٮFlيx[35*EDuҼ.Ɩ5Bh 8)֐xh=oݛEj<ө,4}f D#G|]QZC r{FqQJ rq4nR`T}^Hj(/}Vq-P l1(i+b,2L3VALUdxrk7Ů@.xSS)NԧR$Yz m )0tPěKAL _ }!GGZujl:XkWg;{ oVY -~^/ NI{quRXO u QW[E9z/2ݳn4uR!<jW\MZli |8Vױ,}}iaP aUeg}X{b >MXci8FED͊*أCȮgN߅?hٶцTsp/C#%SjL  dם8?8E_.H{?((+0ؚݐrܨ!Q bx}x ͞/?OPtZ~s)Cccih&(*òBCtu=DCh '6'J#$Lyj6g767R!S3"mCDIus9ufh k YxAt,?ݣ0^kӻM-!zeƐ 9pt/c[`?|!j=?@=H#R.; -ZkD.qaR3JIc̽q00n 6=0ɐ :3>m4!7٩v#qR&6FcL"T  ϋ_/v1z28r25mߗe4`~KGVń80|H0 ɘ ,Ht臂_z5jR78}?B\)u ?(v wzFjtHLvWr 56ʔ6\6csOlb/QgqG!,_ cбAPkWwlRi!s.gbDSV-*=!*ǪV 5`+p輍;Y:2l;{Ƨ2>w}Jo6Q=JBV#53 4x+TBB0EWm:-+mBJcaUt3hYX}ʳC͂`"7DHm]O]#x2.a0>i4-$s0߲dݛm^krnLr}_4 k ErƼiTJE< npϢLWRoE=RP0ryjfHZ9GGKa adxh:SAI,@*.p }a / ef[bxoOm H1"qWrvqnf>$q֐O{E߁-#`-[]J,'?A !^e8+b/ІO5Ih*Mt}UQmk*ڋ\y\ D:ipLFO3@Gwtrڕ:pSwW_a e+YXLќg='QfMD)`Ee8f!b:IؐW+=izGlO ĉ厔Q(_ CCn4ݢBBj -27}YMDܻm؆5Ǒ7v(3Hb5@nvŧi\ }tərc}[n1ZO5\u7Ba7ś%Q!^hu/21q%r2: GHqYI+nT87FQQy8'*cLݡ[4ϻ{kNMyfxppGFVx Hi9z#sXs.9TϤGRwҏ(ݑ|Y(w}` Ƨo$&p*w]%;5"3E,NE'SV: Y]x–C8Cy7 5Zdj/GOҊȪ4u\^5ͧV ܶhFwG3K?b-^˟w=<y` )A bAq _$id2鸓Cʷ22J`TDXjT qtijj w'[XL#e0aT5 C V NOXӱ8g&ڴ7ɂQeXi e%J-%يߕf^VPU~#3V }ũL^?*"Ҕ ;wsAڭɉTYFlEboyP\oNIC1ߥ&߭ P)l֒ |RR0%B:?4r[ h[5ZG252O]'wJ"14h<iqxKW"*{SyiR&탱W^퀃0k߈? ,K›m(%(1wZtsp[s뿕 H#g4.7a JݡE6|WPoVa^ rL3/nj>eD%'f>V%0o 5uB.t]Nމ]njӆ{==*1F!WƱɦ9ie[^b1IR(xmӣbCl7eFk#S ӚTȘ$#RX}(LiW 2#ard7w+OEfҐ>sNoW:d@RRs+$P x#5YpgnS ~]_X";ILoX!e}mݨཊӲ>KжKtitc #UWٷ*"vfC[>-eAlpgnyϬJdct})!Cr,4]зlL7hBt|3*;Y~Ik"NF]>xm xl)W+>rtl`08# Tlh7&|bsn_ bL"L'{DTo\*[&!.ОNo7A ]_-=ಁ6Dhz)EqW1W6<ɄåK4) JГ# GR3 HXn0#yȋGq OzxS"{L+^g}9s8Ll;)"܇5 n4ۙ^Ӊߎ mxik %F{?9Nax0|"1<4P͕p zbg!czn{f?ĕTD j ;]@S_2J$Cw' m"dbuZIO`F3(Hd7?fzE LҚ .b!hUO)91bD5x e_mmw\f\bΎ ZZ⩻bPdP%.&u3w!Gr> $_+Ii>0j9S%_Q>1 jAɘy D꿢1;Y}`pF)sCH *|9: P5.6ehlFoBN/wQ-|lѓ3ovH!1pU\ 4A/$"@05Wh%TZ:+D"zޥ `EO;o|6#F~}\. 駓d9IB2݄xll1v—嫑d_I{Ԏs1?UkaqWd@U=!r)DmD8(o%j9X ]sXcBPk "3qHkDXȱ$`X&S#d٧VO "EfWĖ>@cwt&ӑK$CQ,c#vr9J~/!ܒi~dRhky.D4 ͸3(TZ0G^sBlҫѫ>@" Z s|;D^5hJf $%BL]e==ZȞ䌖RB&$ [ĉh-amjÖv>FKiᓠ9]w{{hI2[>zLK;P  X-0fJpdszѮM^y˧f4fkv2eAF>]3G(. E.'~+ ]ǵ|`mt{J%Ʀb,f V+ڱjXxc{7@VsuC /;be9:\ ~cB4CI.uHJDZј;B &pN[dZh5=I!S~[|1\|)m6NpYh#ӨD2G-If/58w-K)tr~^3r]0~>ֈLoxM?Dm0IRG -t*3:4.Gi_$^o93:sb+K6]]y%ąDD;A$aiЗJf-_7.=ߦ7õ?擰G6pzu!u>)Z ^݅3T*`]n8qkO_ /:v_}>.[Luh3b503)Akq`Г$1۳ ×s^l\2Yk(JFt( Y<Lc(S/c,bE{/>zD$V bδ &_ʇ.%miZŦcػxϩwl3*d? $Z(Jpɰ`cjr>&2/E׉8+ƌյ_OElH&-crBr dǡ]#I h{yg덒Kh:3?D^iL`v-ڧW0|봉e g{aqȄwݣ B&#͏A敵-Bf]T(8Yر}=mKJ C 4@OMόo!t>Dos\zrN0>|2 $*z C:cVwd9rf9K 'D{)>Qߟ&ÁMA9ğz"AAQ_֕K&rD;'^L5a)L%D7( bcp=,1L̥BZxd809ZA"<Q|`F-䑤PRgO`gugeeSVc*t{ѿO|!eoԻtY,~/z.&_/f'}L* ҢmaFvtvV|!c'T5݁fe QI]z@ H8e")qSOYR<=k8QDK;[mPO4uIEd\yR\V_3j@}z_KHu[_ont7k[Bh5ecod2ҥ$(~]3?1a6KAI21npѼǞdTb'1KV wS Ij˂6GYkq 5GCFAу@-bI{JPUdKG8_H\1OOt7SF&^f7኿gégwWg|†13FܣAXC'ǷIL|u7k##b21f;9=UaS cp5`fA0I*-'{t`ĝ{YnQe._C42_Z]}8<`|z}usJ2&_L{ulÙ@>tNWo%R>#:eukV_C,6X1'p ?z"'4z=| f޼ƶu\xwȏg/H.+d+-H{)GbI= j?$>Tqq K[ӣwl\IW*܅ rA: P06BXyW)eu=@hSHYn*#`D\XqE ?jW|}qV決Y1G39Nυ >A6t-Z?Vr3ޖFI@w nDz-CuCL,[BΥ'!C.37I}6Pb߃3m pOO뒌@m/p)mZ T& }u E2uW:`+8}NAjG,Dd;W5U.7-FX<0ߤ$Tz}g~vvNlƣ >-`05a `lv)oHa[[S+j*+G˷A]!R"1>7(X>_81h@T/Ǎ8܀EJQ'1[ZW̸'19hW=Rv%&UHj.R,EU> zy&EFn<wXۯvнj ,{.38VzYC. +&j Pu]ūZMf*ZNiúg/rns1sBk&knMЫqO H?jdtwiaXXu2#s*KWn K;mHftǐunגrH5zRKUm5뿄p5hE OwC|r+_րg691PvEl~  ҈ R+<şxUu/+X!7 30MJjC, _/2=HL!HsG J޽Z|3,WlO=b>a"]DMVn.ou&VU.8By45N:R )V ф7=x6tN&L7U@ʹ@.5*?9pE2`U!Z)4"q'7Rd!N\Z&P BiIInE4su^'a %-,ۮ Npޞĭ}eV;Tt}H+dZez](.|#UYzs>O>1'Ϊn㳯9$E&lcHDuc]`v!\g{P `߬|7;E|WӤ/7mPu0DMV m0̭߬{;s۴9ZR#j7뒵B|ݥ^Tem@AR~.uZ#4(Fůհ:kYLTxlxc_}MBfǚ*Xڎ#ƴѪA_j]KKq!l/RE9Q`T؁"8iMfz'(罄Ű`&0ٷOQDQ9X˂Z<,ڡ{u_-y6P_QJ"G?Y\oXb6wrhL(V҉qЯd?Jnm⮒׿f} Tqc EOh\$fJp0O`6~w [n-„M 9?xd;6\kpW".-]l8!`&7vd\Uf@[;?UP~ֺVk=9g={9bm[}xd\,*o`l*:_.z1qxܫtѣ5> C %tӶ`]g]Ml&O r>:~ejP\`1[gkd֥6@rorXe,gE‘+,A +儛 J%*je1cD7x[0fU3EvsMh1 qZ9ҴAM=D}/Tգ`vZ}9I%C~I2D)W-)(BY H"fjsT'N̥#:^nURS:,7R[)y- "rJnV-sI.b?XG|K~+uv>ȍɧj$_hN3-cU:ϗnfFF4Y&vs*ei:ڟ.m (?+釩,U\T 8gzdz+-d;:A!hm[%YZ#k6%k4 "UHrrN!!='DoT :kf;s,b7w]yę]Tki`AihxjFRth d"9.R1Z ytP:X6+Sk+a 5He7nʲ@*5dBni0mPN_<T+򮳻kY"\$9<= k_kk\n 4 ˀnǩ :4#6zpq|A[MYIR~\ "[O s=іKjQaɢƉHSˆ9g`x |t.&&kEI%# ߱5Û(]=Q@hDZn+N^61맯_I}Mn!nASyumAW[2vįG;hpZQ+t{QjyP!j3AXzMDvbVFEΰͪvmC 8(c 9X'fYpZk|c&rob#eTGXFc~mR'ՠCbI?7F؜}X`lmҦ}麞)HX Ě6EɂIنJ^,vc+hjgY;{Pz?M S95M=zi:K0Ӛ!{FE>e+ڰA*pFL=G'8ur?L~m_.K=Ma{ 3Oѷ\sQR;13-\>rU -{oen<2.āJ6 r;MrP|ԳHP$))JbFO}Q!8靓>k*%#=ܾSq 4.IWK}NIXjmYzIiP'FbVa̡X[᫋|ŒnAH:SK>UeB}#rfLz[M|Jm6iG\SeR f7guIl}܃OF0WWh4Hޣ lҊx*Aʠ@ۨq/[0V`@q^ tE䪽m,R{VtyyO޿ܑ1TI5|lV:Sz-I}~ߪޞ^Y.|"[ܗ8usl,b:G*?opȅ%+yrۚ'+ hњ0VlC`'Ģ ߗ3ʏ7[seb{Gx}ebgUr@8qtf*KT溷XDOQ` )R%}=<е%+J/E|Z2vݐ.ou:̢d >V/DK , & IOD{>]ۓԓ|1l/ sWHe^G2Õ_>x!#1Vk3':пγ E"8FzY. C1}"x8 @j!(aߌOx0l"i^'ȭy)e!QJ'aZr֐,d!E؊dg{5RVK'`l*uyX-KxEZAVātI53YeVYn VvXpc!wBFtER|͉6G.p#Ot R -aL`sHcαG9(9`>RZQ,inp?DUypa~ qF<~k$[tGmu-=#gk;~%ʔ"VMN\4ە vյ7ruQiWWUj=lo|z8GUF&g0 g?.\UNI殮s-ecib0+,ΑOJHq Ji̜1+wT+XKbvffӡ-io꒓SMҁW? Eы:wT$!KNܓdl:+)T#A';fTCv+W>4%ɷr W4PjNmj[KgEv) (ėZpNy9!0ׁs$UGv]`㳟w7' svqɋ[jp<&㾬ERlAaQpW;{d2|Q0m۲2S,n=DvJw*FB`Y̫w/# LA`u\^Tď l褂}Brm2&@lJ2+53D&. δLWP`ƹ|]bRrx#:Еt-;beLZ@dgPYjqc9]H-..p:Q*ј&MyHE=9yf cȗ6h=3}Hg[>{>KfAS ?r0-t Hjs+MݓeE2>qt.uR-0҄0NحRu=&f#REۺr~{pw}ʼiٱN{tߍcY-7$KH]ĐiPg\Ph/?18I ed9߆V hZc5N`t fJzT#/deGdt[6rgMV]<EĔ목Wel1T,̟Fgb^dy3׉\/Hzs7yzD&; dx9hW!1"q-4f861C+ E䯾y I* +wԙKmB񗩦]\X]D+޸o8`I{clqDYNETb.!fH8=?,ۀ3Fo+Z!1!g"a jp;(Dm^mg'(0dJYE9>/ܣO?)ɥ_ˡoZS`kx'vD.OI'F.r%ZcqǷ1 E]Y픉)_1,3yɫ hE[陷7ڞKV|)d_g nxn[ST5u.-f2lrSbÀqHF@qSeݍ>Uf 2xZSx5S@=Fa)f!q5)Q O>IYF גx.!IA<v2,۪iQ)e>tUٰK`E;5BDZs8,hf &(UIIгnjr\[ǐI#7>&Q:ʄ^}K +G[ jsӆ!zGOH=$5FC/0R\J<ٔSV Tr<@+cXr"v$B[Dt ql* F=Ģ**Qr9ziR%"Sӻ4}VթTSL>+R7>[4j4agB0}lcĴxC<(aY-zϖr/J;R~Gn JONhC9X?l-Hs1Z}辫 _%ƃSud\4Z`c\>|W9o6,;9è7=g}IHl5@|zOd[/Y5\ꓘ i=I &fdI4!3*.(T -+vOI뚧[%br?DR0a%@BD:Dm6Ns4|54Jн0nC$k$5M|_?mtL2D/B,l h7~E!Adh;*͎!y;\0 JIfҧ[&X#:F'3`#vB!P i/cUUI>띩8˃T欪#qR d! ְ%<KA}'>|<^hVaa9P eOs \pqo XL0]6D[.3ȷw |aҷuZx Z;մ3 ^Xϓ2 d B9&^kv^G;u:AA{)Z"ijlz'׋c05'ܺGwC-obu :VKHdҬ|+Rx+MK $Spĸ*Tv]="O{1Cz\+F1YlH!kCfD7r0bQ! Am'{`9F폡HӇQv7<%ft?'TYl!TƮROa )h\Z}%wh(VVU^kWp8*E֙FX\>_qVrVuGKZx͸ii܃zofyeX3Q*@+& {)rub !`(uLqGNTU;}@#~uH 끱UyɪǬf2gKЋ:S$ [[RJ/G/7_DzM`jMv_kNe\ V &%w[@4 HB\;XrRZc|d2>_9fU-[Τ#W8 Jb7I&m9*!RZ'?viNuTv0H/s9Y~7~ö8 h Ȯ! 8g݆$oTQU+Q9vc0 Q`+^kΎMyFꬦ }, LEwZic*@2=n3|rR揜@8GnY Zʧ2`鰶ګ 50GRGUf+Gd˲@d&QমF@wF87ģ4r'Mg%PAfQh;~<4쓆FKd -+ڦ3pb#(\AdMܫI/O(V\\87Ko;>#^f08$&?Ol&{Yvo?GQg~r\p_ A{D_pˤҞCE1gyN(w=E~IHVS2ᧀUQ/3qѩa0yY32I]іni/ 4vޑ l݋<qϰFɭyʢ*IdbmǶϩ<஫> ~{r9  #+KT:!fRro-) 6q!½m'E:MBo:9/r]h=w%qW_)9]]3Km`/,|Mq_N f|I EX\?\6(H|(4a}jz>HӹCKTw}YO6:6+2?ky|@ff7.'=~dE [IN~ˡX&T|!I;2UwFfM`W!PrэtjJ>.\®@rJ lg1k[6{(m$J9)HօDem]:.)}%]KfGW[6 (dv ϓRDԸ zV8o5Ré fYwħL'|+h̙g~ >F.;ęNDâIm`,iԀAs&yNDRfHN D X$O!JmIЪ25o@Pfm3*JUQe0$l!ЯDn/6x;}EQOG9\m ?wlFPRA,mfj]M]ܭzDh~KɗBb5UPc|97Ӎ.Am XG{>I,Q޷45n`L▓bI"„< _pԨ<鬚[h;K/[ν-l4eW(|U膙:lajEe^ps X|x} :SѨGƢi%F6;Y=X2C(nemԂxeVDVrX#2_Xtyٜ4N CacUcU2=T7nmq_BF!j[Wb&PծJj\;a>Ҏ>JZVEL.g lӝw17o&~Pbd[,4BRݽXv&bΕRܰ7E}bYeräτhK0`4k)uk/E7*a)J]'l/]Q$nr}s,p׹$p%@'1 ϣ&GOd5pX56[/\ C?{eLD ȅ)+8f4hJ%,Z(Rj+DF=0d9@@*z2p4D7pQ PVܼ7'MplIJ&@Klw}Y"}NR'DJͿqcfhT(KG<% h l[X(aeTL˅9ii jd5¿abJ4|P)6d7L?LˉlqlV5Ri2b~:Hp*I_uE/D3L\rgkcXk@\ F4$' J=z;n~!bH4"_(wnP>1uEa½(GS[Tt%.?rmU!sN0NsE&cmԲlr/Tx{gow{.7S/ <6P.>3)\2k؉𲖚+MlO ̚(?ow}-#|[XiWJMv˷Vke#8^5턥F4fViEc@B` Y=4یE|JV"ogi,݌\ _YYˢm8t`OgnF,~+3er115Ћބ1f{åwXc0YpcpވH5ωEiEiq4ve C(hVŹ-y?Nu esvqhő7-Gh87=,""<# "{*5z7ZZGСo~Ԇ<3y z9&kŏa>[ѧo[jЕ:Rђޮ_PV'6CL]!jpݝ0"nfձX@XQ鯈 I#rk2@kBZӀκ)͐LH5 C#:!V/sweQ$-CYPh@mxqW bzggNʧ{r\[yll˛YKMn !&͉IqM@CarLPbx⽘K]M^u;vuMHHX:_)YToo=JA 0׉W_-KV!VUgp<[S)G S 057QM &RIppڞ)>JL~2C=MDw'(YUH9SjW@!P\!%C3<"KP;#qU<+ƟuC, ɽIq 6oMϮit|b9V3Aq8Wo!C6 @F1>&! , @׾^t-ut;Cb\m[|;8 %!y@jgHoT= <\K9'GwފNY2KٷrsGJugo4)+2YA^mCŝ\^1iee`i+0-j3҇g-Ct>RYkJ(H.[ .f%kk֠zWƊD?"ON 2"{7]#y"ymR q-'ӭ 1&KuglxLf#@51ZH. DcYgX\P!OgXφ^*Z=Y }[cdɰJœO?z*jGmR̉^}:qIB}:z&s(Ix1TEgH+ae 6ŬD\W|^qO'L%)6y0dvu0;s۬cͤ#/ uJ5. /y%Iȡ>eԒcMkRgڨK:}Pe0 '$ggcg[!π}aS7k5;2Rz}:cD.Rϵ .Ce$37X$7ob!McPNZ bh / l| B+-P w)O}l%cJJ[ ANGbչcִRcv~޺xs*. G,g 2!wz.PFÔ޿>;S/c :{ qȈX&kJϏ*I9Iuip~Vo/Q.f1髱Oelíb~l9(_0K&Fl(ikh׼9OA\,x.iEPx):P7us)M 7`2KA4 |Eo { ~voS5nQ.Yߞ)l P W)b 2x!2>\憎! ~R}>CxH75TLǬuxjtBLnm'+baĊMW-Ky~Ŷm g5Hɿ?ʩdu"yKYSB}uApeRWv'a.C ZuaR ߘpPX"^7d23t#} vLm;x5rkT(STbbuI7*g}HVMY>ZbJhe-U<^WtjS2+_K0۝3S"w^Xeq &"&4#$cʳh1?6,ysS8U.hQ7bZJCtosHFcR)?8G딿wR3vr?'y _)Zd6ge;],c*| ]qL\:⍟0鎃-[5JPApsdؗY.|pRa;&$O ⁁upD}# h>db6kdH-4MZ _WBl|si7.h!VܴLDceckbZ: f._']1lp8t [JzKAѶ'mm#x.(cU\_7'ȆnK*`# RxTԹ!2,fR^5+=Tb@fq!gת3q#Gقg]Kycn203:[:+2/EvJ) j#\)_.r-/9p$zz⣬>0Bs[%3$*|ôpFsŢ8C׹bœ<6̍nF[ (6YS^!gT,CQs7Kէ rb?52t[.AL,Pc!MwxQSkNI2>!C>)zjsǭy9 >޿cc=w9/TuQKmJ 'H>ĄNf ^D"U'J>فGpƙFrW@i6c4>Lu2Y:ck!&)`%gkjC&r懵Nr7H% 9G[$+l=@3/죃 W_FSugg]:%Ck\dYjB?XSPfU0-_pR]729Rq}r]T,%\K J̈́|@=nJn V"tЪ, uV up>mg@A\AgտH)/0mxNS,9bv3-ӗC:+b3)x ^6 UMF)K2&wYTC"\Rjpl;b yy1=:c~TvE'Gm[LHQjwP5Tl]Σ4JY|Wst(p>!/,~65sC "!E(qj Y8n5|DaBة_GFQ͙"lÑ@%i9)f[|!p/;<ۤghmXTgXKi@@ƻ/3fkrSGƿcY{GwE),inOt@H>t~ ~)O )f}Jmaڏ)=0%߆6B\EmXc?[Շ9cC{mm#V*ÿ0r랥 f{>DB_ Z!Y1#/5+ÞfA[_9 ܨ`hrzϖ#A}wU'Ik MtqJKff#O#z+ Prƈcj``=dJPJ> >TuCpu/  r69%nm>Ed W W[c i'X7@eA,Oz=}ǡ;V$HC̨~Qs2Io4A &oP…Z3 J(66FWϡr~!ZpeGG,UR>)of٩ɕfOKEԑND=.d`vy B~BIw9#HQo%=Wݝ*\B{.A6@PHCv}^ 껯>K#.Q#$W7!T/hgDmWCAۺ-CJM䥡wwL&]Cb=O$Ի;ZNGHEV"~ÎGRKJՍ\~Cm_6}NqB@ 1H[3Wd.ǐ b{^]WM&d+Ί7{Q>MLyQ[,6d ϱ ^XJԀ (o Z|E7k4!eP_]xH ij&2l8.w&lyy'+6yئ3 ,ZGߧ qsh X{=\7/m0^Hv me:g ml&%1-kZ3"nAzC149̛Gl5*Igي55 mЉPXwB P-׮T%q衫HaPȭ;n1sI^yoc񳰛LzAv~^Nmjx$> V_%ǮZ SQ,n c-/UD',q$}rr e5~"=nDJsS1KBSu?N\S`ƅ[X8(tCU\mm 9.TD䄞sPZ%9E$j ZvrU|9(kX@p-u6Vs<2T, -7EB,h=\&p:RD4!0yxoOf̙|{f$f޶-d+H>(=D~Ԑ H_rx0fP8@ʜ>v$SP 1'D.@ew*5:N3f=;mG7-&Xqk+kޚI-o1ÚS9ҹ~ggG[~Jk%nV%倱^1qX,8O|߸ 'Į21·کzc {tYSQD?%] .\E,a{_2S/zZ-O ]lhky#ZC&Zic8^:M@+g?WBbD ޑ>FJD<[4]۷rזwViXN!>4 LhzŶG\k_CmGk*x&S*X;(2vN2䨵ƟSٌjQ/EP66J7Ԣ{F~SERZ1[uݩbk QYdv.w >y0ż[-V fo+"}{$bEo뿔~Z-QG)@NT7ӱEg52$b#aRYk.(U-R1K[(V EƂow!hcWGrO f*|H"z{3b wMGY=ebxV|1Pۖ%"TQ<5o(Cc`bMcbFL[ԛ)YGEA|.o:[a _mjB}Kq5ACMM%C~t*ƲJ+(zP6,`hT{( ";rR!\X}[=gv[tQ# $EQ4},V}Q^J K_05 A-sX,$S$6>9N s'$\eQUQ{NvS 耺IRO$|dH{c &yT(ɮ*g>h!&Z{}nzj\΁]q6~>,]c4v%9O r"A"G64Vu41 >Es&WX3a𕄔#e[8oZ7q|C|G^;,4$' ^$* T8H!r? _G 8F&s45MwB Ee٠.>u4vOS=kZ&%ON-(c"đ/1.KtF CoջxbhǨic>;"2 px}qj{˺"Yq;T1dLPV݆iVkm摇*Ɋ9g8 h62lglҨl_(pcoG5DE% }ԡV4}~j.W..#i)9yiBz\/P-բy'|bSK:{E!sWj\P6]G> s 6I<;C⟛`C-AX+z2~3Rw夘-NmRҚ֐:MK"ls$gG>FHek)@~J\vC -EbOHjC“bc,ZVϕ#%q1wIȺbl_k= {>lu\SIoIK\֑R>l̢Ԫ M'V\=a*E&85& Rzsȴt Gd3 ޭ$pp:K݊o/T4t. Lu{@yɋJV(1[C7 ;{uɾl'-&kٗi.3׽n ҽ\Ct9Ѕ:-aqAIy_o\|B-sJmoĎWԳNŠ\860lN;Ad-6krK/ת.EںGP*{|4*B@x2]'D5WB/Ȇ\'6W/qlM6HE37lˬŒ\uV&jٕ+}ò7dpHzMKҡ6`[IL}%Ĕop,g,Z%`)kiPW_k5w)3Rݳ0ru'U+v:mG@FHY*dK\iyNjjRۻ(5z᪰Sͻ0@"1*A+7vBXpWsFiSO  ţ認543*NXh0bQH_yywFDf*ÝB[L+^5ABƟ?IIoޑT _oFʍxdL^&qwPp1H׍9o7CШ6ٌ{8ֵXmơQ;ɔ (DyB˺DGTb md3ѼVM⛖0PK|;* YZ