gnome-remote-desktop-45.1-150600.3.6.1<>,5ip9|1ӉYkxsK&K1j@Ck<(s_ ؄.?[ aB(ObW4Av`,"@̺\}#oɴݍȕyc}x[?JEg-e<^NxV@m$9Ѱw7dg׌v95 02@ܺ=ew"X {BXsTUu`H;k[G ;ofqW7鷾hyT+@7she>HT?Dd ) U  1Cw}x             % f && \&( 8 (9 H(:a(>?FG H I X,Y4\X ] ^ bcqdefl u vPw x y-z@Cgnome-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.ih04-ch1a |SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Managementhttps://gitlab.gnome.org/GNOME/gnome-remote-desktoplinuxx86_64 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큤iiiie53qie53qie53qe53qie53qi5e49744b6f6ecf365a16089b6aca05c2e2f7438ab149129d70c42b996b2a9a7ae8c949e61ee67365615c3d377fd5d2948eb23c07aaa6f4c30be7af222a55d86537f05cddc7d365ab51387a7ee62fb422fcbd3f365656cee9b08353b24a4684db7b0cac82fd5de487a8891f57363e68c928e81695b9be1b94496f0a41c019c6d128f297a4fac8e1a69c57f95b0998ce388c03e558084992f88e4cfeedc57a03755ca973a36124c0fe2dfb9b6187d472fd41ee0b808d0960c8e280cefa765851bb9acf8e89e82e92dd9fa676369d63b6abcfc6d8456dc0bd6c8f4c2a62c8c03a2b9fe5fe044708165643aaf3ef4d53b9a6c613129a4b3b2a3789e44dd8f1be17408177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b88064338ae508d3aa4bcfe981d1deac27a0b208c80abc3584b4379a4fef52eef9d441erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootgnome-remote-desktop-45.1-150600.3.6.1.src.rpmgnome-remote-desktopgnome-remote-desktop(x86-64) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     /bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.4)(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/shh04-ch1a 1772198687 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_Updatedrpmxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8ac750987c03773f16a8e568fc3e0c851ba885eb, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d34ed31fbd457f40d94c59e97ef1c8f10be48c57, 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)R RRRRRRRRRRRRRRR RRR RRRRRR RRRRR RR RRRRRRRRRRR RR$VJ5P`+/isystemdsystemdsystemd-sysvcompatutf-893d8307980d4d81c4be69607fcde013c77ea663c703c1d1dfa3493374fb4336c?7zXZ !t/V]"k%!<|dg`Xh Ӛ U24lpST&Pꍏµv+N?d؀s9Ud1 ]kğUup rpoҭ6)U?I~Bc[W:$6mbg]af~;BbD<+3L'U ./8z/i ;/:%ijV{{l+Ko4>|r x#Lla7%3LHͽ`VQ1${N2<1&KWS4 Ga:aLFpXzg8D$ջ{W1yO٧j{)0H7vH%(L1kCgeVE;WbܖI ROVBbKw|B}{jo{Oy&Qkq4?6-q2 bKRxtqfS" &)Slf%!ڙ6ʇIKpZ\Xvyg'"/`궖L\].ޣg"yu?pi8ˡ p(tsQ͞ށL~o13GQW򯾺| W2`V0NJsKl+ _b41Pm BF!-}֒.#h>ѫʹRsl Uz?QMz4jZϵ,JV J(wgwTX(& F,OxDS2 \(xzF!\V/5N8oďwa}@Bhm 6V'cuO_EM,i#Pg.+RڗJa;qy7XuaW,1R:n~= AMl2r0_B2]seU'ÿr.P(39|iNfWLnU)hg֛o)Cߏݬ&Sg>BFo(i1f\a_cI)oi`Qhohv}N M F(tp M?GfbW_>b <<#(Z+y؟ۏb#9}|(g>Ȃª65IV(H"R6G5@|a0%Жvhn8V^QzfVlqBP,#@v1ЖˆLw`?PFClt%k!?EfjJJ[dSTLl,GE5eO/mb/NP.Tz1̹Km'ЗY+\\v>ha{&K0CUҭ݂:A &f-2=js_|:Fm@YD}p|arނ.W]=^+ačf{JbR?)XT.M{.D}֙ؓm03%D3r!u/b/jI%8h;@B+W3G>VFxov!0f1_AfJ“a+kjDsׇcu'iϻ\vIJ2Pu)^}Ơ1W)HuS_wS &ZíLdFS*]H~v"RьkEgG9\=HcOzpDNTu&צ{O\BBbay5#NWCX~$KX*0)׹0X'NWzyk^5" &By]Mk^SyTYm0z"6j!65-l#! bMT8KNzKxVwLߛl/@zr3¥aN#Z|}z+K2Lˈ%iR]F2b\K4Վ,G*EM8[ D,#{M[6:P+QoUz\T!(%}ګmt{XnwO:8$iJ3"Mzzȑ \ЩC^w ñ3Cjl.;C&4,kՄ {aM2< s+,5tYk79-(e^tAYNf))f j v h,ӀPOT_M՞[p ?4 _*A@s,ڲf~P%-3i]]s.uQj;FY:;nPwHFeɗmoo,l.&+7zzQV@:ʙ:GO^KjF[ RđdL;"t嵐Q:w'xNF1t|kɺοڮ8br~)F 6tT B'.^aؕ s"Bz[4Bο(nOL6'9K}+=C\3Z- $@4(`lE3ϑ}JATv=2=5F H ֤ڑ4ƄbʿGq8nXVS/6Nml U/ dfK\ԀlBzq9/i 2%0cO5*oH݊Zu=(1yq9-6WA2bm M:E ^-Tq)5N凒pd9 K)yq ƓYs EABYfS.*ӓ0*y+~Y}sqĢ[H̽׳uYcW{Eʙk)% EDPE!3|DeRMx>6?ehߤDŽcOzB [4=S0#Qλhw+pSG/dۀ(oOQԊ*`_Ϩ-xLqY/CTXnV3_N ҽ AK0/?/lk2݋5Jp?Z]]6P)-w~rp1ܖ=! 'F|{ k2_$ea >Ccǫyzc3rz BAl`jL !p_C}6z:U>*Z@c_d)x'C+k R]֛ XTwd>XgVO,1 n)$]8zfY#wJظ}BilX?E]mmQ?$T/fɟs≚-(wԲxfQMHV}vӌ0">wX i VCN db 9\Z몑+ܾ3EDK `O6.Dnlc9ן M[.H*!A/,-9ioV&jٍy$͒kOnƆ~,Zr$ec>K RAPm4*(dw/ϔń Tu_fxlYa0Ԑ)-:pS2. ZDxH&YH“<;l%!F΄ϼDko@̙ʚ@ Cii#_Orvbe? k 'I ?z{+ e~Ugck5PO/69 cb ҢR$~͹}+Sg+ݪ1q$H<;y9Q6X/?vRKڊT֪dk'#n1̱8UpӚ5g =Ց 44=/`r@jjyo2<?Ff[Y84,littEֺ@!!x Pݨ"c*Νlz,6Kga/Xܳ'c@Wͥnj hū^v/.=3Q|Ԑ ϠR5* ʣ$co&:tv {L[޳ef `Q+>)49Ǣƿ-B&}`[` bjE˨Y ` d1&i=AHQ1=-{継 x4SmCmp4)g7j! Xzc >fqͲUH{}hSo'f,?xf!r*!E):pCG]HnNp]$d{ǹD7A&CQ0ȷhmVD$ y^0S]/7sY gB=.֝;K, uY 2Dn#S#r8;G,~wQOb7Rj½4煊?2EJ]4 ?re!ו65QuJ16BK R^gX (ZS.MmiYdF,Uk z&(0,&if#0گ. ¦`cX6Vi&rVJ9(nv`F42]i=s&clH#2IhaiPK7LnSx#C?H50ỏĎke5%O\p{#Ĉ`cQb@"wP_xby #2&d%2 Yha\ 6 !$X9"02J5*;gʁhSZq2C:lf2 ӽS_'zW7/kV+"}G*leݒ@;2FfT3ZZdrBb$˺V"'|MkꧭGQeHh(ԡߓ!ЄΏSX}u&%8=OP+BXt[7Q Lن^Ir F; %%eM&R7pVrݩ8ֹ (S^^PpwԞpŁ(7 їP *zk-'"\S1 2I^Q64"oSxō4͡ s`2boWfBzG.{D_r]K 7Ux;j?Vγ52RMEIe6 OPKa- _. /^ 1)l} Tʒ<_a5VNiYit̾m)WCpjU- ;V{N )[gE~\a5WV-SדJ}yFfp -;pU !lv Mu%>]0ur٪oj{ pߢQkj !ЇLv aVY=ՖTݵ5,B\8B^!R rԥ x@%S{i]:41`8Kkz;qc)Sf{0Qp)>XAz\RHDO/&<|Jx;H𘖪@|/Gn)/;cK`[CLp!ӱBk{KQb`` G%)he=3Rp.%pEj2YG'x7Fr+!یD ~MmW-4[6S8\+ ^_}@f,x|hB1yة}J]oܜm)}@uHb4H=hMqy\̲X/֏P4q`K5 nEV¥!dF!̂4~2`~|ȅT_LhC]S`pQ$3pSMZ`#. e{ /#%l%p+AIe cM8@U, Mrw,SZ+}O,c٧wB{M'~ÊA[E~.K3M)yjQ->蝤vzzq"vQのspEEIoCo<1u7}J[šӂ>hmbRǜ3 >#IMOp=(N/m_#%5*jj fx? ]10w]0G!XĪD^ yBh &൴gIS"w^O) Il?X@ L'!PSzmRN2I7#Lq[:/_ʿCڄM42f`yԿ *21ڣ1_v>P;rzL wd`Yd^í/ՏgomyLa/?*dkw9+k/hu3#F"ir Yxp)..n@l"8S2)3-I)]€#t5vM-'G03suΘ3M`{<4 3i0/O)J Hx'swVY%A˄=+ 4L\␹Hdt  1*3E s)bC 4NOU߲\;l3?ڸ-M!d2>rƢ#`O`Pi"ZˣKs ߄07z cX!2_7 q7b#>+-r.CWG.jSL4IL0NX,aTX(EM2|s~i|⏴Vy3+M?:ESf}>Kn+σaR?~YX5x@0 =hTŻMqa$Ej.Lb/c#Js.&?Y=Af7EyQ|?|tT*QR8KZ>MByO$P"ŔM%&lGpQ4\6Pۺʱ^jwύ#c{XɪHlX Y@4M r/Sچ/*k<@qDbÝ 6@0e敖xc 7ssB^ w?p)kЊ4 G$B]6B# zJHv;q hw2Sa,/8vOJ2^jݮ8)l'a8XjNr j. +n UfUB:=^x0h]F|ގ/ *5Y_Iy6Zp:qrizNt_NlW(0 ) ƃoDG6}s|&E2kDx9봘\8#Ӷ|uYٰ.y3i.>V* UEܲ&5F_AYS(=!8i?hbUD= Ya-Ѝb0g[] ^fR 'Nbrڊ؟ٽG#zgi}քsϤm3ydPHZQЖ #WYuz$hkzIh&$Q"Rf= ? Ӝ[VִTt5-81ݿ× p# (y x}k%ebܮ4WZI[gtAQ^]@|qoqI-XwNu6i7RqM>LϣnR2 EH436/4b #R@~W" Gx P][&@[ߌ㽄yj" (k ЉY}LmBd1ݸ:nnIQpʹ燐S\Nq~?ץIܞS׏jυP03䱧Eڜ/UZP0rX%])ڈb: fH8` N]l'jr~U5۫QWsּpQn_=Gh"<к_J%:e^:1 dDPوcu/YsKy9){.8V=&]۷lR%ڜHQAxx׾u|wEg83)Z|Aiiw;d:~8yOjp aBkMewcm)o .EP:,Iz}]Ez岀 x=ڭx̴=Bn K{aY] GXB[ëdTO$Q0C^-e':|sǟbD?{RˌRå'B30 !}dC5;p46YRN,_=;ޗp>~ɩrn,.:ލ6DLe:{SHltڏ@l#)f^"lC4].0zҜzh7(S"޲ Bd>:\9K>p]kNѵ` +6P'mrK@x@s\LN iX/[fbvf g2zݓ(4K4""m$z<7cIS՜j Uwtր#SAe*)`$u5\oL@?lHMh^^:u?wT N|* <\N 6 6Sm"۳@ /LHTI`cҐ+ߓdO<E\R9N Mֵ/|bq,\ x@LߙgHO56coVpnLߡ] JH-Ū7Kmb!ԎʯYCr Y &&?!y-f*15FD-YN]>buǩ`MJ\ J%ŸuYs7KaoFnSHXg6#EԞγ[]į[kmM(3wP)- ws B/wpn'<񈧟zIuHP)(XO ôcFh5GZS=hx򶒌`Td8q OMLf",Ȅ7HzTWOaڷlK]VhF~d:ќ9Fc T}}L:xҒ2}NB5sqi GǽZv&iӮHm2O.2-]PejƱa%d͝sUcM޲Еm Bڒs^,7Tz˔5xeP|ah!Z纤d?6+;aA--p#S@Kŀ>*6;RXa+ztmuIFyH6y]ɲX./^DƠ$^k)T_ZztonRɣ_?VxD* .LΩ.fI(Щsډt'9j.ja>-) sS7;:A G}?7O*䆏Uk( #trt7io_? -<=&_K#"ڇΓo"-aEKC2t#;Q i9@  |q7Xl6A$.r6_s>2sP.Oz47hJ]XU+* I C|[L*-Ztj{(aSdtU*znG p4?T8פ`~$I{ءg$Ө,PTI90VHd22l~ ;1i_ =7珞xd #ݷŔMm+iܷI4NEOBAk;vqPͼ/LBM}xFwˇL%~ a8zP¾{)@#x󚵓A!i$(D4#X98MeD:^0e)G,bd[Jk9`S\u[L QUd^Dk-l *!$hgi+ Ł0 @-<QhcE-㐚6>7.#R;I^撫E^01zwEE+ rN멕8*ܗ\$H(,!zŮĴB2篐DzTM%J!6pJt0GS.+ݩL 6," bo݁U{Z0.T?/Zm2͘#8-`9N{wmsq5,? WI[je?b̧Kb4Pܮ~Atz#u!(|Q97p$JO<"&7GKV#i~%3'h7iȁ !lǢ|sYalԧ5bZlnEnN.y) VYb6~9 /k4Vin8XW<6BFu)KjjRI׆THnݰZwGsvTJžs,l rKB"Zm&ׯ{ "-gW?:2O42jWK]> @FXRIbvkF"9 tQ~tC8d'`Ff@ bRoXɂ`4>0h BυuZ_4]}WСT]DCŜ[F;ƳϪ |QϨ+En1WPpzk U>X>#<mEx]+aAFR_>Vcs NE'P2]鲮*Jjm>Mc#f1c#דٖLL' U v< 0IgoO`IT\x%Ձ,*l8 >SzluI6>8+s) '/!5$'X4jsdPӮ{Qnȋ8Y&.eN^2"܂bo5qKbSћ^^V0lz$/i+~ A:I'w=#<z4UJt?VcdYm.pqq$YwQ%ANF1z'2q-Qd~toD\9= yq, ٭t'g& {/j%S%<^v?6 0 dr@E~A嶁R]:6DU" mK3OI"@d4IGEptD&>.mZ;IdPxW -:izx& -S+Ͳ^OZ8 Oe|ZNN}7L{`E}c |+x,}wt 6Xuuژ=-Jhw XW裣JLcK66ߣnLx{#ix{U1i 1"e ~죐'#ܳKsyAә4{*smڸVJw޺1DBٍ >OfkVl^GNQ2-CRW LābX&a9WBuI|B٭#y@s||2 rpUvK{/%nܗ6ƄqEʆ2'D#/q+~2- -mιw8  =GI8~R@{(k5LjܽMp,Y_,ҹYg"|eJ5 Dln'-fT%ǧ$(gpp[AgIC "5\ ;H(HGy47˰<@}VY8&^4ޫw@yoD>.p['xM>d7^ hL;=km4y@_93_bByfad^W+c *>p#]`Ue߄@v=|6HG/㧺3rꊣqk=-O e2 M{|K^skb"wg7&j]2,LK#T@q@:ӦqG)! g6s} w?q9D r|MGf~?ӳ9=O@ntb"f\\C2P"~OM`p7Kو Q=Xm0~Lp+-Ϋ x?I H@~O{.57@*RIu3g֤ԠUBզ8cGXuze{t' q4fKIo#BHܼ D !=,#w_o`6$jD%ҧFw׀qӯsZS.hoO/hu<ƿ),{t!pAѫ4'޼@vO i]eo8۬1[pMA^k Ƴ2QcYlCkjtO"=/wЊ @YՃw׉Vsτ$N-2~ \hA.8v HQw3;4@$ٱIzY9D-(EoDH S}\# 6RNws@'5RV4eʏ)@)W}:)[q5ufh&*YdRpWJ!):n=2yf &8 Cu %[uOI/}5Wu(kKd@¿D2M70[+GTUWjGm}^{%;ryr6zi;FٰGc/z >/j(־n/RŀE`fLRNK'dⰈ"B0mR\`6q{ S&V|3ђmVN?k.Ɇ Rۻɒ#pABŰ79[Rja#5UN}{T]KuȬQ5O6^bZ+A YlY 2QfkT1AUߚIT"V 5DK:;8-%'JTmטGc$Ήɩf.ID Jx}pJKKe's<~vNE趢 (^cϻCWM-_%LKr1QuL)3QjhؼbԦ.X[m_:6k9$ vGaITDࣼQn*X&KxmHj< Q9%I5 ~3,?x; tK#)Sb y]oN~ n _->X8atp7{n& TZ;H8 {H9pn)/E%aE%*׌ISw5WVB]-E̗ul*Ԁ8eqx8g#bƎ˅zRK7>[ڤn`JW15쟾MUwnGQIDžc ȧn쩞< Īht7z7|:2,K7z:yha NpR2im }Doxˊ1rW;1[ J u"N"^h !Y,r@pgD71sJI]+$Qؖl?iPos]nؙ9\b# *糡A ~; y`dy8wa=l+%Z0uq9H tw$JI@n;(>(c&ios(@P"LMg\JE@"H AY,3u߰bcX)gu,e ['U3mrE5s=2{wv'< _6؂7y)^yq%ň (UW4qхOnu yrAQ*tKqP A/PPϵA|[ Aze5UlZHS Vdz'_y9:5y[6?2E`z0 RT@;vccdng?^ah+`)d*dJo !%m ȩiMqe]r(9ns5<&33Bl9C4I#K`?HI]?o#b{UptJU:K9Z;3KGlgj(‡#lE,!:›IY*ry?!3#-e$J,< ?+̃7(KbF3~n-tlzCeU,&\,(N‹{|>Bdf#}􂳶u]Xv5^34;Gd픠L5ܺ֜HCOb6z$rO.U *O[kR& اd51Nh=U%lt&!?>3h[}?}ޢCaa P$ !Ms5k;ޑmi_g(`9ـcxM/F1$ `M. Z/Z/lqsB<pJ̒-!~)ݶG2!;0t R)wA>ϙD.I,^ʑ|˞DԖ@N*K>Α&oE-q8M-SE9zSS2!ΩWaHn!uM(0w.&{] G(=,dVAD༐GƁѵ_E`8!㽵gPNeTŨxe1-}&"F/do'Iv57 I$cbGPfv@trc<FȼyhPIMl겭"^\_``WKEÑo+e^Њ MWzo!8#ϐֱ'dAl_aW?tRV:7AcJ'lΖM"PtУ]^O+u-SΗ 2/:aG.ڐii33 XU:/HSaCA<2vA^MOJ>:-(c*6BRl_'e5Ep ^h.LnV4Vg,Lt4dOpYupHF9` w>S>)$5Fq%kELR0>gha|IPK[rq:}{Z3xʦn@{]Ӽ78A]PbGpLajTŤ\l}̎\,xЊͨN4l<UrV{YF/WfM~ĽoU?{VD5U¿о n5}s *Y7ؒIAmw!&m@774݈Ns]/GM h7J;v?:PaU-*Ypcj 3g>Be}\xek䤵6X #XؚrFֆNZRڔPTIUEsT:> Z0H{|cʀ[--…m|r7E͵P I.XWxc9YM} l6sHcH\:2X9JkRܵ*)ʐzh8Hsf>$p@Gϡ^򂸊"K>:z>yqrR>%^;$MGbUƹ,eklM&V,OƄ Xпgy[gLu2Etux/&-8`Y$㗓@b:%fM 1{#D 9YU$4xSW /K-e&f=0KBRH-πY>3|#Y2d`ٍ—:mVE.VmX.Ic@{P)Ȼ&T 8%! @$#3=*z]",쀷1]h.}#:R=UDnޖ8brW6DpdŲeЉp5Vu(KiBO1Ll4 gKdg<@euR闼#)Nd:|~qܷE^j#SmQPtr';%r\Z}MS38f=P\ 'ܠb?f"%l^#xU heщAKi6?+t)^!24~ղ^ѽo"E]x]9}Bm9` ۴$Idψn4[GG;(!79Sm[!ɤ0~0'Ђqf25f]˖1ٻߡR:w <ƻG*6 qI[fE%tʽӳ39723^`_cEޟ]ǨU_'xJUt@'儇Q i$tYg+=xY((P4ӿ Ze:=ֆ#<(@Sǵ%sʰ< bͼ^ֳ%riRusp F|jL* NK>xCٝR, uk$|FPk&Kk\_dv eg; o~a4ֈ0XƀqVv=|o`b{kgcT]Jۊ4 ,3fgwivz$]c0$tɯbA`h1byB~wTV/g,`j߫c!{D , s= aBNm`6:Rv.w6얝P>|G ~*g S $;nr;G"Mv4 g ENQWEmN#owxo8*\H"$)hgdzW2I=v)T }"'kduϸ &#0 іHst~|RX?UTZL[bG0k:$ȹ3jafͼYc@vC$Y5;yy#z =F[$-ӁMT@v }`zu{qhhRuȌՋE7ݞ[/dgNɪ"wM.<=$CS<!w%ͳqR5ʇzwh" n}s%SjjHM P_&5J%ә,: )' PԡtXqH M:ݪeR :.:qKOʙ<ciHǏ(zH>UJ(`>ٖ52/$Ezf&U5ׁC`#9  \nroqZl喛V:i?!> 1.L+6S U,a6E'?4K0u}T^aXhż4 %v & f+~k TO=q:Nw2L,Mif*"n([%X)l 6-9U+-b['sdV}׬iN0mH EhcCx:QxIAe(G,$sW-B:+xlvSN ;3<"RW}=< q@YcI6|i|+sd❂(*xIG}V>"icpI7ybmHngd>i{z(uj Zt&@ ܿ5ܩHH'x*|1hV}RDh΢NLew$xyB.Îlurj;~bp_0$XuW$Qv| ȟo .9'4*iI L֧ M -Qc񣥧q/Mcy9T1;Xrz/ ~hFzZ~>DPU>~]ZxuT3i$<ة*>xƤU ?u Ă' V ΜF$kis~=3], A2vhֈ)Mb/m{Il 3̱q GfS4^_9>QGS|$C,wS2Cxjgjĭf:6O1v:nW_g(NMb,0;"@#ܡ0u8Dktt4UŠzpO1L-K5'"^QGSEQ Y ^M:vy~ )jg{KR,6Y'R6t9+qΉ۪4snjPJٌĕi!hq 䐌Mp?QGz\(x0c:m vk҄}F$f9pA쎰g{_EiVNMCS'KEDn u>AŇ𕃢ǀRŎcpqtmSon'A||Z .@0 XU%Qx67WE<ⶆ/X  &l:[v:@/c"Q73}kU.|jSBÆf6xOM񢴯(x4v*@Z"w#2bH¹ rTEz`=ʳf/m9kz(4yhc[T Ov1WÙWoUn29+.brj-ܕQmRIʜo.]:×^>=:h,[ .;#1wtHתf 2AE Gԅ:q2wׂ%,vevY}dK7m*`mz[O 5|jA |KfqH|##{T%9{HF6mUOi3ڀ($i*|[0ˤ R$KM6npMojd!סհJIh-T28l֜7Q3OILYy\rCI,Oc r"uJ!aʦ(tcю:kQ̑ba@$55Ip}#$/L$3À QVANG;̥jP*uL2ƴDSX=Ezg>#F|2QX?mrΩL*8s4^g}=k+P>|jpM."2Y`1țѤTGm{F ~JI+Rޛp,M閰tSuSp.n|m _({M5PGئb3*ZF j7ŀeD|`it@97Dm}@q}L/jU" qW O w+I!^7ujH C^ (a3 i ;xIh!; F*Uĝw6I\}?d8i W2f a:U%i@q\aϒ53]zt_l/#PS1Pd(Q@X{9oz TanC^K+4E2c-/o&ǭ'{ͬu4/ˬHp>d uȕ$;`[;.bwoMej 2FQCk %TC"2;`\d!嗲-nF-ck`tu%q]m6炆/%%,fi*Y@cMuA-m}W('ևGDfN8J费l℠pvW$tˊ%tP`}XŤtp΅B Ҙ J2)O{D.2;y@ꍥo(Z/Yso8޽$XseEE Iǃ"|Ü~ٙ MQܑk"6`Q#s)^us/5BIvMVYD\)J\7;2$lt~W/9_-I9['U\$n벰F1HE6T{Owǁf}G!F{17>6_GjGvݥjb.mP4/"ڻÑTrb.!ծgڜNFޛ@`.zhu5dDYOC-3OӜ5/EO\f3˵)9+KFHM%xh=z՝ pZ"k, Z :  8Z)<2IxG֭ ༛}{bY{By '%BR(Us<(#cB2V *wt|ܞ vrq4<`a/\BGy'EyF}Xu%g^8ChSj0!ҏ1uZdbciK85A`BR\.g P|UiF+Ɩlt],V-dPߠy T.XS#ӜFRvY^NRq.Ώ}XLe%b7o/MO8&y7v + ۯ' wwrΛ8/ 3ǤV7'T.rXr-5gr>2 'l'{\T޼Z})'(Aۺ6雅Q^G;49I(T(P :Lmf/ST 6w' &i.Yf/nyVFS,rZce =.r2& Rü}$Wb'˒"`nQJ9dra 277xœ^jH@7;_~}Ҋ_ -$+o<[ŵEE6`ʄo7؀QN E1X[S`oylvh=O~>b-wldhIB#6g`S}"~siqB{FQ.-\Z7νa?BPNw.rɐ t/?u”lb[pcsdx}~;tfY,ʞY(/8E%EXJ#ZiKHjR|  2hV_-yGeӑlsP^rh(`XhҶۺp GpĿ"2Y~շp b6{av @TRB- Sk[G]:YdIY0Ԡ,FNx.ܢO ;EJg~p4Abu#µ$ფ E7 8_6Í:{< @ylޔc拐Gl)yX4\8C*ٔ˹6C^˲IlT7'$SJ "^26E`Q-0mY^+P7hCgk}$ ~>jNxg Ĺ!~BC ZˎxљWT#4rJ$Eweܜɗ(+.G>[GP8,d>G6P6i,zhkn$HGz0TYX`=_vƹ7N[w"K(T+u[3[5ƝHOXgBN@; Z0D/=8h"vkjO}vr< <-{z=> H>'?`)tPKMfz2p.⸞`j>o!QD/7NVJRBگ@r\e7pYw FȹL ^zJCo =_^P?//uR@?VjΦ`]}QN_+`\7mАW=w0J5׿1MWJ>eT"Wt2^m>/Ӑ7GOҪm!L-vl:c^82hT&?|3GR8|Gcަb{f5o1ƙ beyO(,~z(HN>#*ʌ)s߃&!;* ŝԯi)*0o\HxHR~ N]. m>!:7\lY5֫)2z>sR/gW?ONrJS~yL.Q咻b!^tIR? k*6jk]{(mwC>\Cb_7f>ο@7$OpSmL>;$ ?nKҁh2IPBSSF%M{qu&C?b1F)O*#1Ca* `{ )t~^iQaw]Qʳ7f2Sce݁Rz=Lcw8V} ~(S,?icl+x̸[zv:Jr'%o48ś%}  %O`OO<KMʟ'V8{y,ϨЧY]롃APBEWaBT)Q2p_5n-)M+H>D2ЍXgR]ω wC"etE}`  '7QZx ~-(674]!nsr ΖO1د<; ~)|3Nf_=R49S ׀e;J iNN2SF$7鲰Ht>Nxzã >VEOK #!@^^:}ZywFQG(ط  y6ejz;KD/a`RO-!FZ *#꣥%w|T1#MS].m0/IMYDi%P4o74F`RI 2VPB 3\-u_)zpw/-(*bTsӍaDSƌ%-2 n\I', >82?1 $:ҽx`A*3vzEp?t.H'-I/wG}b ISM,W\O8G!{]H !=|V& K{2\3'?kys8,?{QW[mtՀ#G~zd\NQZCd&7qb#1F~wŲy.IψYigkׁ Z~|v<CΗ찻OCCݽ9MH߶[Z3tK=LυyB4(œTi۠qBi;%ilO*m Ww pb~4|y"rs9C;Tmop/?|ҞSN?\|t0]+ V4ki=-?oڨQuFac%dl>jAflKm( |cަkTxM_2q/!QuQU}c뒑g%('ꃈPQH"|,ιkk$GKw'J:wm+Ѭ^+3Pn"7/$6 "3oj_VBHTi1p l\%Ժ8'&%xdqf6.!)7aK+2fu7,Mta˾UApA`{i>F1) <'$oEE_m*ζ/cOqIKÙ{|_Dk267s?^Q[2wk= 4E=+Ȭj ^MN3IUWolȆ0xҦ*j'3fiɫhxqyM\1e'qS^mB+W& !o:h^&c[%?D*eYbt(\ىv>P'](sDE\.c~Tl<7pzԂgmx |<{pј$3t#ܹ (w&߀| A:LGoEo.A6#iv9g/\+1q%VD\+LNtPgRoA#=go RfbF;S~2~Lt]i8bcO~ަVN{C sg8_מ Oi]ө]*o.[m{zQffE`$u5lS̹,0{7G-z#2 K"`i[^I/`T5HDhUzŲ54("(4.|kd|l$gS,e(gf<(-&qf, yˊ`p]?Vq91cP ħؚ"5ns`u0^.^'hP97[\^/cI@!Y!w'2M K$Ӻ^F!8Ex] m\#:QTx67pqxj)":zŝ mzvvOIHPh9jY ܃eŸ[/v_d%lMEB_T]r3[/S;qya_~i7J5CrzO.&fF3K[C`SL[!+73$:ov9yHW^DAP ,fI5ԒǏxlGDyf3Բ-֮ϟy}k&r6ʸW3".kL]GV\Wg"7ȢYFJGrEM ؇U` +Z6/: \Ntab,)LXE?sUYSdg~/%d^BxUZ3h:/- L΍ۡ7BɝVh#REOjx1Ǥro)T'C7I=#P&2vMUږ NS?? ҼLPx @`},@S wrnb}>+y̞ȦqJ Cӈ*?#IGd um*SWNxāLg^g;̰gi2e@^T{ц3htIĔ,L _U"I\QWN>zW $\0Rn,]xf]1 zcF9?32y3aM3&a ~~n%'g+bpYm:@u8]p%l<0ig -!xL|I7kTU+GIS`Jm{8W:(>ЫE@H) b/rӵ,Oj9abVeWul_X1I[ pՎw4ief_2Hp}Vb6]CL&OoòqG*ؐwWż^? HE^idcFp"zS7#fu"5H1)KHvį2D!aX^j7Q;g;Մ$^nIЎӜkdpyp+ p*>,ĊVkD%ߔ5&y&ʽq|X7+@Dt-jc5HJjIkj&U@<+s0KZ](ҔPhݘr>^p/Ka|_n/ /oעH8j8t))qJr#lH~no.RMP` ]" 3 Cg#,7硈F{4ȖW#)uRó\9:;BХW ^|#?x% )Tŭfb׮dsdД0V)V53mǑM~$ś>smv=p^)XhhI-EeDa}Yݢ '<~hvپ\H0 Ox bͦbZSE0Dlye `]{&3>7G3?Йlmve >oiRYR\,aW>1ԤmE{w|%>F\G@pNrBN/׽bG:[)wb +z.ricMKl }(ޝ8dc`ֲGb3|#S} 6P?1I˼ƫԂ1 횂[ /,jn-=KӼ9uK;yLj(wxt#AuXe(- `HubaTZ߀bB^8XϨḚ!;C {JYwle?>d̩#ƹVTCr/,`u.몹mzwFsUIY,y eA;UYkʻP9 6bx#LM]]0Q(|P\AshF7Fzǯ<;+s5V'k tGׯDӼ04UlsTy:FpbsfGo=9S1g>e ac&{/ &]681K5}\D2?De<6Q^:}g xajZ~Sv}P@#p7oQ`~?ٮyư ANk+.c#dw-=" tW)tqia.'2mֶWִWp9F@?I$@h.o wˌc g`5UJɪ@T_s+-#]I}lb({¨PTߦ:8rA^Rc;ULv#+ȇ,|z!Mahl_ Dͭ5C${5sLI8{k˾7+7 a\<ΧZn9|$ PN?bP }m'i⍔ uZqK)AFmcyi%ɼ(?~E:p#7g}a[ؐTs~MZ!" -Nm+6a/P[% MW-J5o\ݱ%;rbUP  }8{y/5AȣQc)b&K(KDŽSz)S1a2|,{GΏ=uNkCd٪D\fHx1^p E󘅵loA_;NtZjP۶lDO]D:aK?[.~p)>|JnÎ ]: dEܭP = hg.Bv߭x kC%$~!:ERq7(gx-%70bXр +͍u{V*r! m!et([SEPxSVϹ@`RكBQ'a6ę#14n< 6p.v :vG Q(Wc6(C$^n嘻&*r9Xچ%6sF[.J4@C`4]ܞ L7p̿d_h+Ϟ"9uC>QenWB#УvKᜲ{|S!Ccיa##3 #Ej~Xаg2UyPK04C5y瑁9O>1x-/\O }Q(<̾=#mtk!1ƸiϫF~gs\v ;0~[":nC*[6Ca"7i$>&8&F7} vlԺiw*w'"fT+tAkLB|"~SXA1 F|C@Y1:BkcRis `w y9~?Bi2u@j gᖹդf~Sg9^wx_Kg⊀:#Ӄgo.3=nn!8 *r"5}S僙$Rnwĝ͓|<-w͇K_č[ۭ v}RS"%bֲcbZWxgyаKz+u9&-~ K{NT<~uY^FQt/ƵȀA!]z%g{TyCJAH8$JD=BU S[ı)I 1zxZzj A9CLrX e#uz4gxؒZWqex!IgFQHxz%ii-̛fV#Eaw>c U;#RAgilڊw6(KiMOo9O& ʭu76` 0 $B mg9כ^YΓ}^\ (bf\̷DQ=LVedO5[ `5yQAWDeNV/&kP/CkT{NH_ NqϲZBY^cGF&]PO.Z~CcFh>57!|;úAS,^ X\հ s  7kg׊5.S9dp:$ QmAzR%ٮp_zpC= r[7C njÝ m+g널!&lȄ(t!?,HI lz֚S4>yҷ*:䱮H"7A,7kR2&~A177+wjglɤF2r?ܣW13׊rT3#irڼY6W,H&͓WsWFh@)A 3Bǀ'L Q;G*Ux=Ք}ua3C,W:΂/}oo܎T-/N8-2Td{m[?뾥L*ܼjb[̙͢Z^'ӽ珧d56\ ,0D7C!}WHB.|W{,3` G$5ߵՌ#O<藛XXz8*]Y&?IclGmQxw+ 5dGL]\7AٟiZy]D&[jlÔωa`sorp#kj%^]$)ђ٦`;CpH:Dq ֌pΰph$)kDRMr=QX.x^A;F8LWԪLNgu46r/exhiO?ȹ:,sK/pfB!rBS-ŚlKCtëA!W@=؊,J= M_MJn< 5Om<*wWmμ>yufe J,,6%˵G:O:/"n/M\ YZ