plplay-4.208.0-bp155.1.8 >  A dkFaI%z  1m-br.P`p#~Ky}hb0D{bGae)ٞnn'pj;Tђ;%|bv{wRm+a;RIk`6Pϵ0X.=?тڊZd^P%F;OGci%My<[dNQOXBj0fR%h^(@ diUEgm.)+;i+ȍkNjIT0NaۅD}-w3<4F#q~Tn畼_w|"6w {2[^5I0>I̾ %2 j)WɱN~ ֵv9z8o5uYXBW'v `|l =$(8\T]=J\YRz̵\ y?xrk@AɯGqdTp*/`v+;miW.On= j2l;-z?|Ԩd6cd8291927d98a3993957fb6bd4f8de8c7cfcf5ea3eaae8eb2d46819a738ec6e0aba6ab7799b3eefc0bac25f7f1b0d19f7976944dkFaI%z a`KNJeN ʆk#Ьv=Q(~wSIGȌUH3e49^?{㟣h&XI 'pZc %Ɲ5*6όyN~-8Rfe/ufu~zn=.1 TP b(XwvQT%I>!I)(4S 1SOUJWgVl}ٙƭpj*7:\%{Ӽ>CfiEp3j']nrC`2MX#yƶ]z*il 8 |Т[إsw=Nq)ҖKjqbK|皴p%S|U~ ?$;Hъb@@Z";-Q]>5AGbCj*ڎ 3&lnԁTp zҘZ( xGmx uwB ;_/' \>p>?d   D04DHen     I LPUZR(89:pFGHIXY\]^bcd eflu(v,wxy zP`djCplplay4.208.0bp155.1.8Example video player based on libplaceboA small example video player based on libplacebo and FFmpeg. This provides little more than the ability to display video files, and rather serves as a tool to help understand and demonstrate the various options provided by libplacebo.dkFOobs-power8-01 `SUSE Linux Enterprise 15 SP5openSUSELGPL-2.1-or-laterhttps://bugs.opensuse.orgProductivity/Multimedia/Video/Playershttps://code.videolan.org/videolan/libplacebolinuxppc64le `dkFLbdf52fa3339a060fbb3350df64604a36c8812892c9af92d04a3f72c252570a19rootrootlibplacebo-4.208.0-bp155.1.8.src.rpmplplayplplay(ppc-64)@@@@@@@@@@@@@@@@@    libSDL2-2.0.so.0()(64bit)libSDL2-2.0.so.0(SUSE_2.0.6)(64bit)libavcodec.so.58.134()(64bit)libavcodec.so.58.134(LIBAVCODEC_58)(64bit)libavformat.so.58.76()(64bit)libavformat.so.58.76(LIBAVFORMAT_58)(64bit)libavutil.so.56.70()(64bit)libavutil.so.56.70(LIBAVUTIL_56)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libglfw.so.3()(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.17)(64bit)libm.so.6(GLIBC_2.29)(64bit)libplacebo.so.208()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3bVaa}a@a7T@`+`}p`lM@`g@__R^@^^@^^@]\u*@\>@[[]@[@[5@Niklas Haas Niklas Haas Enrico Belleri Niklas Haas Niklas Haas Niklas Haas Niklas Haas Niklas Haas Niklas Haas Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>jengelh@inai.de9+suse@cirno.systems9+suse@cirno.systems- Update libplacebo to version 4.208.0. See details in: https://code.videolan.org/videolan/libplacebo/-/tags/v4.208.0- Update libplacebo to version 4.192.1. See details in: https://code.videolan.org/videolan/libplacebo/-/tags/v4.192.1- Update nuklear.h to 4.9.5 - Add dav1d dependency- Update libplacebo to version 4.192.0. See details in: https://code.videolan.org/videolan/libplacebo/-/tags/v4.192.0 - Add libunwind dependency - Bump meson dependency version to match upstream- Update libplacebo to version 4.157.0: This is a major new release involving a significant overhaul of the public API, full thread safety, support for Direct3D 11 / Win32 / MSVC, native HDR output, and more. The primary way of accessing most libplacebo objects has been revamped. Rather than writing e.g. `const struct pl_tex *image`, users now simply write `pl_tex image`. In addition, the `struct pl_context *ctx` was universally refactored and replaced by `pl_log log`, with no concern besides logging. Direct3D 11 is now natively supported by libplacebo, and compiling on Windows in general has been made more straightforward. The entire API was revamped to be thread safe by default, even when using OpenGL (assuming the user provides the appropriate context binding callbacks). Accompanying this change, the `pl_queue` has been rewritten with multi-threaded decoding loops in mind. See the accompanying `plplay` demo for an illustration. Finally, this release brings with it a lot of features for feature parity with mpv, such as the ability to get pass stats / timings, oversample scaling, and more. Additions: - add a `void *user_data` field to `pl_frame`, with no further interpretation by libplacebo - add `pl_queue_push_block`, useful for multi-threaded decoding loops - add a `uint64_t timeout` to `pl_queue_update`, allowing it to block until frames are available even when not using a `get_frame` callback - make `pl_queue_update` also return valid data when failing with PL_QUEUE_MORE, allowing access to partial/incomplete mix outputs - allow calling `pl_render_image` on `image == NULL`, to render overlays only - add `pl_get_buffer2`, API-compatible with AVCodecContext.get_buffer2 - add support for blitting from/to several obscure formats such as a1rgb5 or 64-bit integer formats - add `pl_tex_clear_ex` to support clearing integer textures - add `pl_render_params.ignore_icc_profiles`, for debugging - add `pl_queue_params.interpolation_threshold`, to allow disabling frame mixing when the source FPS approximately matches the display FPS - always accept DRM_FORMAT_MOD_INVALID for texture imports - add extra windowing functions to - add the `pl_fmt.gatherable` capability - add `pl_shader_sample_oversample`, a variant of nearest-neighbour that preserves pixel aspect ratios - good for pixel art - add `pl_scale_filters` alongside `pl_frame_mixers` - add support for compile-time specialization constants (`pl_constant`), and use them to speed up recompilation of shaders with hard-coded constants - add `pl_render_params.dynamic_constants`, which lifts hard-coded constants to dynamic variables - useful for scenarios in which render parameters are expected to change very frequently - add more PL_COLOR_TRC_GAMMAxx definitions - implement full black point adaptation, even when not using ICC profiles, and infer this black-point-adapted BT.1886 instead of gamma 2.2 as the default gamma curve for SDR files. - add `pl_shader_res.description` and `pl_shader_res.steps`, containing more friendly names for shaders plus a detailed list of operations that shader is performing - add callbacks to `pl_dispatch` and `pl_renderer` for informing users of executed passes and their execution times - add support for the Direct3D 11 graphics API - add `pl_swapchain_colorspace_hint`, replacing `pl_swapchain_hdr_metadata` as the new way to update swapchain colorspace metadata at runtime. This can be used to e.g. switch between HDR and SDR mode, for supported swapchains - add `pl_peak_detect_params.minimum_peak`, allowing users to constrain the detected peak values to only be sensible (e.g. above 1.0) Changes: - simplify the `shaderc` pkg-config check - rather than querying for `shaderc_shared.pc`, `shaderc_combined.pc` etc, simply check for `shaderc.pc`, matching upstream - make almost everything thread-safe, and document the parts that aren't. In particular, almost all GPU state access is now thread safe, freeing up users to access `pl_gpu` instances from multiple threads, even when the underlying API is OpenGL - deprecate `disable_overlay_sampling`, now effectively always true - `struct pl_overlay` has been refactored completely to allow for overlays with more than one part per texture. The only way of using this struct is deprecated - prefix `enum pl_queue_status` members by `PL_`, fixing an oversight in the previous version of this API - make `pl_renderer` automatically clear the target image, freeing users from the responsibility of calling `pl_frame_clear` themselves. This can be controlled via three new fields in `pl_render_params`: `background_color`, `background_transparency` and `skip_target_clearing` - rename `pl_context` to `pl_log`, and make its use optional. The old names have been deprecated. It now lives inside - add `typedefs` to all public-facing object types, o make them shorter to reference. For example, `const struct pl_tex *tex` is now simply `pl_tex tex`. This change affects almost every type of object in libplacebo. The old way of referencing these objects is still possible, but considered deprecated. Note that due to C++-specific reasons, C++ users *must* upgrade their codeto the new API style - remove PL_PRIM_TRIANGLE_FAN - remove support for 64-bit float formats, which probably don't work on any Vulkan implementation - stop contrast-limiting ICC profiles, instead assuming perceptual profiles have infinite contrast - remove `pl_shader_signature` for being necessarily unsafe - require Vulkan 1.1 as the minimum vulkan version - rename `pl_oversample_frame_mixer` to `pl_filter_oversample`, and allow using it for image scaling as well - change `pl_color_space_monitor` from PL_COLOR_TRC_GAMMA22 to UNKNOWN - change the signature of `pl_shader_(de)linearize` slightly - significantly increase the default strengths of the desaturation settings in`pl_color_map_params`, to mimic the hollywood feel - refactor `pl_glsl_desc` and `pl_gpu_caps` completely, in favor of the new structs `pl_glsl_version` and `pl_gpu_limits`, with new members. The old API is still available for the time being, but deprecated Fixes and performance improvements: - fix possible use-after-free in `plplay` - don't explode `pl_queue` on NaN/Infinity/weird PTS values - fix edge case involving plane merging for cropped images - improve `plplay` by using threaded libplacebo APIs - several fixes for edge cases in helpers - several fixes for 32-bit platforms (e.g. integer overflows) - fix blending edge cases involving overlays and alpha channels - skip some unnecessary matrix multiplications for RGB content - allow for some small backwards PTS jumps in `pl_queue_update` - fix drawing overlays to subsampled targets - `pl_dispatch` now garbage collects old, unused passes to free up RAM - various improvements to debug/diagnonstic printouts - allow blitting from e.g. 2D to 3D textures - slightly improve small texture transfers in some emulated edge cases - fix several possible hash collisions for generated shaders, making the shader dispatch mechanism significantly more robust - properly allow building against vulkan headers without linking to the vulkan loader - C++ compatibility for public headers - improve performance of textureGather-based polar sampling, especially for radius 2 and 4 - fix vulkan texture handle capabilities check, again - don't include superfluous pNext chains, fixes undefined behavior - fix crash on edge case when shader compilation fails - infer unsampled alpha channels as 1.0, rather than 0.0 - properly infer `target->color` in `pl_render_image` - properly tag the OpenGL swapchain as pl_color_space_monitor - fix possible crash in pl_get_detected_peak - fix several edge cases in pl_render_image_mix relating to LUTs, 3DLUTs, HDR peak detection and so on - fix sig_peak inferral for HLG content - several compatibility fixes for older GLSL, and GLES 2.0 - fix possible use-after-free in pl_shader_custom - fix `pl_color_map_params.gamut_clipping` for HDR targets - reduce the number of redundant color space transformations required for frame mixing - fix edge case in pl_dispatch_save for some ancient GL drivers - several fixes for LLVM/MinGW/MSVC - fix bug where pl_pass_run incorrectly invalidated/accessed `params->target` even for compute shaders - add windows compatibility to several demo programs - fix the pl_fmt <-> DRM fourcc format mapping table - fix inappropriate texture access function for generated samplers with the sampler2D API - avoid generating spurious EGL errors when probing for EGL format modifiers - fix various typis in the documentation- Update libplacebo to version 3.120.3: This minor release fixes a number of regressions surrounding memory imports and DRM modifiers, specifically aimed at issues that arose with mpv's --hwdec=vaapi. Changes: - `pl_fmt.modifiers` now always includes DRM_FORMAT_MOD_INVALID on OpenGL, which instructs the implementation to not specify modifiers - passing a DRM modifier not in the list of supported modifiers is now considered a hard error, to rule out non-working hwaccel formats Fixes: - fix a crash when using sampling shaders on textures with unknown formats - fix improperly specified SDL header imports in the demos - fix an issue where the vulkan texture handle capabilities were testing for presence of the wrong extension - fix an issue where non-enabled DRM modifier structs were accidentally linked into the pNext chain, causing issues with some drivers- Update libplacebo to version 3.120.2: This minor release fixes a number of additional bugs related to the thread queue, included demos, included helpers, and build system. Changes: - replace the `shaderc` library checks by pkg-config checks - `pl_dispatch` no longer grows infinitely, but prunes stale cache entries after a certain threshold - improve logging of GPU capabilities (including format capabilities) Fixes and performance improvements: - fix a typo on an error message - fix a use-after-free edge case in `plplay` - filter out Infinity, NaN and other values from fps/vps estimates - add several warnings for suspected frame queue API misuses - fix a crash when combining pl_render_image_mix with cropped frames - fix a crash on AV_PIX_FMT_NONE in the libav helpers - fix the loading of overlays in the `sdlimage` demo - fix a number of potential overflows on 32-bit platforms - omit redundant identity matrices in pl_shader_decode_color - fix crash in frame queue with certain out-of-order PTS sequences - add missing link to vulkan dependency in the `video-filtering` demo - correctly shift overlays when drawing to subsampled YCbCr planes - add missing check for PL_GPU_CAP_CALLBACKS in `utils/{libav,dav1d}.h` - improve handling of asynchronous texture uploads in `utils/libav.h`- Update libplacebo to version 3.120.1: This hotfix release fixes a number of minor issues with the v3.120.0 release, and also modularizes the included demo programs to cut down on the number of compiled binaries. Changes: - hexadecimal strings in custom shaders may now include whitespace - added 16-bit half float formats to the dummy pl_gpu - significantly reduced verbosity of the included demo programs - merged all of the demo program variants into a single binary that picks the best windowing system / graphical API at runtime - install `plplay` when demos are enabled Fixes and performance improvements: - fixed an integer overflow in a texture bounds check - fixed a false positive error in the test framework on 32-bit platforms - fixed some minor issues with various outdated comments - fixed a potential use-after-free in the `plplay` demo program when playing files containing embedded ICC profiles- Update libplacebo to version 3.120.0. (Upstream changelog appended) - Create a new package `plplay` for the included demo program. This requires bundling a copy of `nuklear.h`, which is single-header library not included as part of the libplacebo source distribution. This is a feature release, introducing frame mixing, DRM format modifiers, and support for custom LUTs -, while also greatly expanding the available demo programs, in particular the `plplay` video player. The main highlight is the new `pl_queue` abstraction living in . This greatly simplifies the core of a libplacebo-based video renderer by translating a stream of input frames into an array of GPU-mapped textures suitable for frame mixing, given a corresponding vsync timestamp. New frames can be delivered to this API using a push or pull model, and they are lazily uploaded on an as-needed basis as well as internally garbage collected when no longer needed. This abstraction also contains all needed machinery for estimating source/display framerates by comparing and averaging timestamps, freeing users from the burden of having to accurately determine this information a priori. Also worth mentioning is the addition of support for custom LUTs, currently only in Adobe's .cube format. They can be applied flexibly at a number of locations in the video processing pipeline, including as a replacement for YUV<->RGB conversion or tone/gamut mapping, and fed with either normalized linear light or native-gamma values. Among the included demo programs, the `plplay` example video player has been greatly expanded - adding support for a settings GUI (based on nuklear), frame timing and mixing, custom shaders, and more. This example video player now serves as a convenient platform to demonstrate all of libplacebo's advanced rendering features. Finally, all of libplacebo now contains only code written entirely from scratch (rather than deriving from mpv), opening up the possibility to explore different licenses besides the current LGPLv2.1+. In particular, permissive (MIT/BSD-style) licenses are being considered. Additions: - add asynchronous GPU callbacks, specifically to `pl_tex_transfer`, allowing for non-blocking host memory transfer operations - add `pl_shared_mem.stride_w/h` to control dmabuf pitch - add `pl_render_image_mix` to blend multiple frames into a single output image, given relative timestamp information - add the `pl_filter_mitchell_clamp` filter preset - add `pl_render_params.preserve_mixing_cache` to speed up redraws after renderer size changes when frame mixing is active - add to help with Dav1dPicture mapping - implement `PL_HANDLE_HOST_PTR` for the OpenGL backend - implement drm format modifiers for vulkan - add a new field `pl_fmt.modifiers` for DRM format modifier negotiation - add new header to load custom LUTs (currently only supporting the .cube format) - add `index_data/buf` to `pl_pass_run_params`, adding support for indexed vertex data when dispatching shader passes - add `pl_dispatch_vertex` to allow dispatching fragment shaders using a list of custom vertices with custom vertex attributes - add `pl_frame_recreate_from_avframe` and `pl_download_avframe` to help downloading GPU textures back into AVFrame form - add a new header to assist in taking a stream of (Frame, PTS) pairs as well as a list of VSync times and turning them into a stream of `pl_frame_mix` structs - add `pl_white_from_temp` and `pl_color_adjustment.temperature` to apply white point adjustments between correlated color temperatures (K) - add `pl_filter_preset.description` containing a longer, human-readable name for a given filter preset Changes: - `pl_3dlut_params` has been renamed `pl_icc_params` - `pl_render_params.force_3dlut` has been renamed `force_icc_lut` - `pl_3dlut_update/apply` have been renamed to `pl_icc_update/apply` and moved to a (conditionally installed) new header - `pl_upload_plane` no longer initializes `out_plane->shift_x/y` to 0, instead leaving them unmodified (to avoid clobbering existing shift data) - `pl_filter_box` has been renamed to `pl_filter_nearest` - `pl_filter_triangle` has been renamed to `pl_filter_bilinear` - `pl_render_params.frame_mixer = NULL` now disables frame mixing - to get back the old behaviour, set this to `&pl_oversample_frame_mixer`. - `pl_color_map_params.gamut_warning` now highlights out-of-gamut colors in bright pink, rather than the old (ill-defined) inversion behaviour - `pl_named_filter_config` has been renamed to `pl_filter_preset` - `pl_find_named_filter` has been renamed to `pl_find_filter_preset` - ditto for `pl_named_filter_function` and `pl_filter_function_preset` Fixes and performance improvements: - fix buffer overflow in custom shader STORAGE blocks - fix include path for glslang >= 11.0.0 - actually enable shader subgroup operations for HDR peak detection - fix locale dependence of shader parsing primitives - fix AVCOL_SPC_SMPTE170M mapping - fix wrong color space selection in `pl_vulkan_create_swapchain` - work-around low UBO size limits on some platforms - fix compilation issues on C++ due to the use of reserved identifiers - fix `pl_get_detected_peak` on platforms without host-visible SSBOs - fix edge case in vulkan texture handle capabilities check - fix suboptimal mutex destruction code - skip peak detection when outputting to HDR displays - fix edge cases in shader LUT type selection logic - avoid redundant scaling passes when scaling anamorphic content - merge similar planes before dispatching heavy shaders (e.g. debanding, hooks) - avoid scaling passes for certain small fractional scaling steps - entirely avoid processing unneeded components when dispatching scalers - avoid using more components than necessary for intermediate FBOs - fix out-of-bounds read for small non-cropped emulated textures - avoid thrashing the shader cache when reinitializing OpenGL FBOs - fix incorrect include in - fix vk.xml priority issue on windows - fix undefined behaviour / GPU hangs in HDR peak detection shader - fix incorrect forwarding of DRM modifiers to the OpenGL backend - fix crash on AV_PIX_FMT_FLAG_BAYER - fix various compilation issues on certain platforms - fix obscure edge-case in floating point printing routine - `pl_render_params.force_icc_lut` now excludes no-op cases - fix handling of custom shader COMPUTE blocks - correctly apply hue and saturation controls for non-YCbCr color spaces- Update to version 3.104.0 This is a major release, introducing many new features and modifications. Most importantly, libplacebo now interoperates well with FFmpeg's libav* abstractions. This is primarily exposed via a new set of helpers, , implemented as a single header library. In addition to this, a number of other supporting changes have been made to the API, most notably the unification of `pl_image` and `pl_render_target` into a single `pl_frame` concept, similar in spirit to AVFrame. As such, libplacebo now supports **rendering to planar targets**, including subsampled YCbCr. Besides the libav* compatibility changes, this release also brings with it a new feature for custom shaders: buffer blocks, and persistent storage. This can be used by third parties to implement stateful shaders (e.g. motion interpolation or temporal deinterlacing), or be leveraged to speed up some shaders by combining multiple passes into one. Finally, various import/export procedures have been expanded, including the ability to import host pointers and real-world DMABUFs. Additions: * add `pl_memory_qualifiers`, plus a corresponding `pl_shader_desc.memory`, to allow attaching GLSL memory qualifiers (coherent, volatile etc.) to shader descriptors * add functions `pl_dispatch_save` and `pl_dispatch_load` to allow saving/restoring the contents of an entire `pl_dispatch`'s cache * add functions `pl_renderer_save` and `pl_renderer_load` to allow saving/restoring the contents of an entire `pl_renderer`'s cache * add `pl_vulkan_swapchain_params.prefer_hdr`, which will cause the surface format selection logic to try HDR output formats first * add `pl_buf_copy` to copy from one buffer to another * add `pl_get_detected_peak`, to read back the result of peak detection * add `pl_primaries_superset` to test if one set of primaries is fully enclosed by another * add `pl_color_map_params.gamut_clipping`, which will colorimetrically clip any out-of-gamut colors by desaturating them towards neutral gray until they're in-gamut, rather than clipping per channel as before * add `PL_GPU_CAP_SUBGROUPS` and `pl_gpu_limits.subgroup_size`, to expose GLSL subgroup functionality via the `pl_gpu` interface * add `pl_gpu_is_failed`, to query at a high level whether the `pl_gpu` is in some internal failure state. GPUs in this state should be recreated, using the appropriate mechanism * add `pl_shader_custom`, to allow injecting arbitrary custom GLSL code into a `pl_shader`. * add `pl_buf_params.import_handle` to allow importing buffers * add `PL_HANDLE_HOST_POTR`, to allow importing arbitrary host pointers * add `pl_pass_run_params.vertex_buf`, to allow drawing vertex data directly from a `pl_buf`, guarded by `pl_gpu_limits.max_vbo_size` * add `_COUNT` members to all public enums, for consistency * add `pl_shared_mem.drm_format_mod`, to allow communicating DRM format modifiers when importing/exporting textures * add support for importing DMABUFs via EGL, via the new fields `pl_opengl_params.egl_display/context` * add `pl_fmt.fourcc` to facilitate mapping between `pl_fmt` and DRM * add the missing `pl_var_*` helpers, for consistency * add `pl_plane_data_align` to help with aligning `pl_plane_data` structs to byte boundaries * add support for STORAGE textures in user shaders, which can be used to persist data across separate invocations of the shader * add support for BUFFER blocks in user shaders, which can be used to create UBOs or SSBOs for use inside shaders, the latter of which can also persist across frames and be used to store persistent state * add PL_COLOR_PRIM_EBU_3213 and PL_COLOR_PRIM_FILM_C * add a new header , containing a variety of helper functions for interoperating between libav* and libplacebo * add `demos/plplay.c` to serve as a demonstration of how to make a trivial playback loop with libavcodec and libplacebo * add `pl_sample_src.component_mask` to allow sampling an arbitrary subset of the available components from a plane * add `pl_frame_is_cropped` and `pl_frame_clear` to assist in properly clearing frames before rendering to them * add `pl_tex_poll` to assist in interoperating with some external APIs * add `pl_render_params.blend_params` to allow blending the final output Changes: * remove `pl_image.signature` and `pl_render_params.skip_redraw_caching` * change vulkan surface format selection to prioritize formats by 'score', preferring higher depth integer formats * `pl_fmt` may now have PL_FMT_CAP_STORABLE even when `glsl_format` is NULL, in which case formatless image storage must be used * `pl_buf_read` no longer requires `buf_offset` be a multiple of 4 * `pl_buf_*` commands are now synchronized internally: * `pl_buf_write` and `pl_buf_read` now block while the buffer is in use Note: for this reason, `pl_buf_write` should not be used in loops * `pl_tex_upload/download` may now be called on in-use buffers * allow `pl_dispatch_compute` on shaders with outputs, including the ability to automatically determine the number of work groups based on the shader output resolution * remove `pl_buf_params.type`, and the concept of buffer types in general. `pl_buf` is now a generic catch-all for any type of buffer, with individual capabilities in `pl_buf_params` determinig what type of shader operations it can be used for * relax the alignment requirements on `pl_tex_transfer_params` * change `pl_opengl_wrap_params` to allow directly importing framebuffers in addition to textures * rename `pl_color_levels` members for clarity * make `pl_opengl` ignore software rasterizers by default, unless the new field `pl_opengl_params.allow_software` is set * add `pl_av1_grain_params.luma_comp` to allow drawing the luma component from a channel with nonzero index * `pl_renderer` now supports rendering to planar targets, including subsampled targets * `pl_image` and `pl_render_target` have been removed and unified into a single `pl_frame` concept * remove `pl_tex_params.sample_mode/address_mode` and move them to `pl_desc_binding` instead, to decouple them from texture creation * refactor the signature of `pl_tex_blit` Fixes and performance improvements: * fix an oversight where `pl_buf_destroy` delayed some buffer destructions unnecessarily * fix a limitation where `pl_tex_destroy` sometimes delayed destroying textures unnecessarily * improve the performance of `pl_dispatch`'s code for assembling UBOs * improve the performance of `pl_shader_av1_grain` by switching from SSBOs to texture LUTs, also improving compatibility with older GL * improve the performance of `pl_shader_detect_peak` on GPUs with access to subgroups operations * fix an issue where reinitializing shader state objects with different settings sometimes resulted in undefined behaviour * fix some GLSL backwards compatibility issues * slightly cut down on unnecessary image layout transitions * add some miscellaneous debug print-outs, and improve the legibility of some existing log messages * fix an issue where freeing buffer variables from shader descriptors could result in use-after-free * add support for vulkan memory imports requiring dedication allocations * slightly improve, and fix, the vulkan memory placement logic * significantly improve the performance of `pl_tex_download` by importing the target host pointer directly * improve the performance of small LUTs, especially for the non-compute polar fallback path * prevent `pl_renderer` from unneccessarily applying a 3DLUT when both the input and output frames have the same ICC profile * fix the behaviour of partially specified `pl_bit_encoding` structs * fix the component ordering on some odd packed vulkan formats * fix an issue where `pl_plane_data_from_mask` broke for high bit depths * make `pl_renderer` consult the dither bit depth from the texture precision, if absent from `pl_bit_encoding` * fix the behaviour of `pl_renderer` when sampling from textures with swapped component orders * fix the implementation of PL_COLOR_SYSTEM_BT_2100_HLG * fix some issues relating to missing includes * enforce legality of image usage parameters on `pl_vulkan_wrap` * fix an undesired shader double-compilation when using orthogonal scalers with subsampled chroma planes * fix an issue where application of a 3DLUT cleared the alpha channel * add a missing extension to `pl_vulkan_recommended_extensions` * fix the plane alignment code for oddly sized subsampled chroma * fix the poor precision of `pl_shader_dither` for high bit depths * fix several possible overflows in the BT.2390 shader * fix a bug where using a polar sampler to draw a scaled overlay onto a non-storable target neglected to disable compute shaders * fix a bug where the renderer could sometimes alias when downscaling, in particular if both the upsampler and downsampler are set to bicubic * improve performance of scalers by avoiding bilinear filtering * reduce verbosity of memory allocations * fix missing PL_FMT_CAP_BLENDABLE on opengl fbos * significantly improve precision of float literals in shaders * add better error checking to gl_pass_create- Update to version 2.72.2 This hotfix release fixes an additional glslang linking/build issue that was missed in v2.72.1. Bug fixes: * fix linking issue with some installations of glslang >= 11.0.0 Changes for 2.72.1: This release backports a number of bug fixes from master affecting the v2.72.0 release, most notably extending the range of supported glslang versions, as well as fixing the 3DLUT/ICC generation code. Bug fixes: * compatibility with glslang >= 8.13.3743 * compatibility with new glslang semantic versioning scheme * fix broken shaders on some versions of GLES by defaulting to 32-bit precision for floating point math * fix the vulkan API version passed to shaderc * fix the extension check for glInvalidateTexImage * fix pl_tex_create on older GLES versions * fix OpenGL logging thread safety * fix undefined memcmp() in pl_shader_av1_grain * fix pl_render_target.repr being ignored by pl_render_image * fix 3DLUT generation code (generated corrupt LUTs in all cases) * fix symbol visibility on some versions of GCC * fix potential overflow in BT.2390 shader * properly restrict pl_shader_sample_polar to GLSL >= 130 * fix vulkan function loading of promoted core functions Other changes: * tiny performance gain in 3DLUT generation * pl_opengl_create now logs GL_EXTENSIONS * log some additional VkResult enum members * improve several vulkan log messages by using friendly names of enums * add a copy of the config.h variables to the libplacebo.pc file- Update to version 2.72.0 This is a major release with several key additions, most notably being the support for custom, mpv-style "user shaders" (.hook), giving us access to a large variety of pre-existing user shaders such as RAVU, FSRCNNX, Anime4K, SSimSuperRes, KrigBilateral, NNEDI3, and more. In addition to this, major additions include a completely refactored and fixed AV1 grain generation shader, support for Vulkan versions higher than 1.0, support for GPU-based timers, and improved interop APIs for both Vulkan and OpenGL, and new and improved aspect ratio handling. Finally, this release also brings with it a major change to the way HDR and SDR content are mapped between each other, including a new tone-mapping function based on the industry-standard ITU-R BT.2390 EETF. Additions: * add pl_swapchain_hdr_metadata, to set HDR metadata on supported swapchains (currently only vulkan with VK_EXT_hdr_metadata) * add support for vulkan versions higher than 1.0, communicated via the new fields api_version and max_api_version * add support for GPU-assisted validation and best practices layers, via the new field pl_vk_inst_params.debug_extra * add helper functions for working with pl_rects, including new aspect ratio handling helpers (pl_rect2df_aspect_*) * add field pl_vulkan_params.device_uuid to allow choosing the vulkan device by its UUID * add function pl_vulkan_hold_raw, to hold images without actually transitioning its layout and access mode * add function pl_vulkan_import, to allow directly re-using an existing VkDevice rather than creating a new one; this requires communicating metadata about how the device was created * add field pl_vulkan_params.features to allow loading optional extra device features at device creation time * add support for mpv-style custom user shaders (.hook), using the set of functions in * add pl_render_high_quality_params, enabling debanding and EWA scaling * add pl_timer GPU resource type and associated API functions, allowing the GPU execution time of shaders and texture transfer operations to be measured directly * add PL_SHADER_SIG_SAMPLER, allowing generated sampling shaders to directly accept the sampler to use as function parameters * add pl_image_set_chroma_location to automatically apply the correct chroma location to any subsampled planes * add PL_TONE_MAPPING_BT_2390, a tone mapping function based on the EETF from ITU-R Report BT.2390 (and make it the default) * add pl_peak_detect_params.overshoot_margin to help combat clipping on certain types of rapid scene fade-ins * add pl_sampler_type to allow encoding non-standard sampler types such as sampler2DRect, and also generalize samplers to allow e.g. usampler2D or isampler3D * add pl_opengl_wrap and pl_opengl_unwrap, to allow directly mapping between OpenGL textures and the pl_tex abstraction Changes: * deprecate pl_image.width/height, which are now inferred automatically from the actual planes * pl_vulkan_wrap now takes a pl_vulkan_wrap_params struct instead of directly accepting its parameters, including new fields sample_mode and address_mode to configure the created sampler * change pl_dispatch_compute to allow optionally passing in a simulated framebuffer width/height, which will be used to translate vertex attributes (if any) * undefine disabled config.h features, instead of defining them as 0 * remove debanding from pl_render_default_params * refactor HDR<->SDR mapping; PL_COLOR_REF_WHITE has been removed and replaced by PL_COLOR_SDR_WHITE (203 cd/m^2) and PL_COLOR_SDR_WHITE_HLG (75% HLG), respectively * completely refactor pl_shader_av1_grain`, which now samples directly from the passed texture rather than requiring the color be pre-sampled * pl_render_image now infers the image primaries based on resolution, rather than always hard-coding PL_COLOR_SPACE_UNKNOWN as BT.709 * change pl_render_target.dst_rect from pl_rect2d to pl_rect2df, allowing more accurate aspect ratio handling, and correctly compensate for subpixel scaling ratios * require python3-mako as a dependency of the vulkan feature * pl_chroma_location_offset now treats PL_CHROMA_UNKNOWN as PL_CHROMA_LEFT, the de-facto standard chroma location * the default value of pl_color_map_params.tone_mapping_algo is now PL_TONE_MAPPING_BT_2390 Fixes and performance improvements: * fix shader generation when the GLSL version is explicitly overridden * properly mark some shader failures (pl_shader_is_failed) * fix texture invalidation on OpenGL * correctly respect pl_swapchain_frame.flipped in pl_render_target_from_swapchain * correctly validate descriptor uniqueness in pl_pass_create * skip redundant matrix multiplication in pl_shader_encode_color wherever possible * work around driver bugs w.r.t out-of-order buffer offsets by sorting all buffer variables by offset * fix edge cases in vulkan swapchain usage flag checks * fix excessive CPU usage in pl_tex_download * reduce the number of unnecessary GPU flushes caused by pl_buf_poll * fix issue where blending did not work on some drivers (e.g. nvidia) * make the framebuffer discard check more aggressive * fix computation of anti-aliased resizable orthogonal filters, e.g. when downscaling using pl_filter_lanczos * fix external image memory barriers for exclusive mode images * fix failure path of pl_swapchain_submit_frame * fix various GLSL compatibility issues with av1 grain generation * reduce maximum vulkan memory allocation slab size to conform to AMD recommendations * fix build error when lcms is not available * fix double-application of texture scale for e.g. 10-bit content when using separable scalers * fix a multitude of bugs affecting av1 grain generation, especially for chroma planes * fix segfault on vulkan device oom * fix invalid shader generation on some platforms * fix a multitude of bugs, edge cases and subtle off-by-ones related to chroma scaling and plane alignment * add fallback code for edge case w.r.t chroma scaling and gpu resource exhaustion * correctly load VK_KHR_swapchain in all circumstances that require accessing its functions * minimize fbo usage inside pl_renderer, by re-using unused fbos * tweak the work group size for polar scaling to perform better on modern GPUs (tested on RDNA) * transparently upgrade fragment shaders to compute shaders on environments with async compute * pick a more reasonable size for the dummy gpu's max_group_threads * forbid 10-bit linear transfer functions from vulkan swapchains * fix segfault when re-executing previously failed shaders * fix swapchain creation errors on GLES 2 * explicitly mark all shader resources as non-aliased * correctly specify shader storage buffers as coherent for shaders that require them * fix various memory barrier synchronization issues for opengl- Update to version 2.43.1 This release backports a number of bug fixes from master affecting the v2.43.0 release, and also slightly extends the range of backwards compatibility with respect to vulkan-headers versions. (This change is not on master, so this can be seen as a compatibility release) Bug fixes: * fix GLSL version checks when overriding GLSL versions with pl_shader_params.glsl * fix minor order-of-operations issue in AV1 grain synthesis * fix glInvalidate* backwards compatibility issue * fix compilation with older vulkan-headers (e.g. ubuntu 18.04) * fix a bug where pl_shader_encode_color sometimes uploaded and applied an identity matrix unnecessarily * work around upstream issues with MSL shader compilation by ensuring all buffer elements are sorted by offset * fix hypothetical edge case with swapchain image usages forbidden by the swapchain image format * fix an issue where blending overlays caused the rest of the image to be discarded Other changes: * log the vulkan surface selection choices * log the overall library version on initialization * add a few more pl_gpu validation checks * significantly reduce the CPU consumpation of blocking texture downloads- Add libepoxy to BuildRequires - Enable test suite - Update to version 2.43.0 The major highlight of this release is the introduction of a new OpenGL backend, documented in , which is also the reason for the major version bump. Apart from the addition of OpenGL support, this release brings with it a large number of fixes for backwards compatibility with older versions of GLSL and GLES, allowing libplacebo to be used to generate legal shaders for virtually any GLSL version in existence. Supporting these changes, the test framework has been expanded considerably to allow for automated testing of older OpenGL context versions and older GLSL versions. Additions: * add pl_gpu.pci, containing the PCI address of the underlying GPU * add pl_image.av1_grain, allowing pl_renderer to add AV1 grain * add pl_opengl backend (see ) * add pl_color_levels_guess, to infer color levels from pl_color_repr * pl_shader_encode_color now handles non-linear color systems * add pl_render_params.force_dither, to force use of the dither code * add pl_render_params.disable_fbos, to forcibly disable FBOs * add pl_vk_inst_params.layers, to allow loading extra vulkan layers * add a way to restrict the maximum GLSL version provided by the various pl_gpu backends, for testing purposes Changes: * load all vulkan function pointers indirectly, using a user-provided vkGetInstanceProcAddr function * vulkan can now be built without linking against libvulkan.so * refactor av1 grain data struct, splitting it up into "grain metadata" and "shader params" * pl_swapchain_resize now recreates suboptimal swapchains even if the size does not change * pl_tex_blit now requires the new cap PL_GPU_CAP_BLITTABLE_1D_3D for 1D/3D textures * pl_tex_params.host_readable now requires the new cap PL_FMT_CAP_HOST_READABLE on the chosen format * pl_vk_inst_create will now automatically load any layers needed for extensions specified by the user Fixes and performance improvements: * make pl_color_adjustment.gamma actually do something * fix av1 grain shader for separated planes * fix memory corruption in pl_vulkan_swapchain_suboptimal * fix access mask on API writes to read-writable vulkan buffers * fix some instances of undefined behavior in av1 grain synthesis * fix av1 grain scale for PL_COLOR_LEVELS_UNKNOWN * fix use of local #include for config.h in installed headers * fix various incorrect literals for compatibility with older GLSL * fix potential type error in XYZ input handling * fix numerous backwards compatibility issues for older GLSL and GLES versions, across the board * quench some meson warnings, as well as some compiler warnings- Update to version 1.29.1 This is a minor bug fix follow-up, to address one major and two minor issues with the v1.29.0 release. Fixes: * segfault in the test framework on platforms without vulkan * error message spam when rendering to minimized/hidden windows * compilation on certain glslang versions- Update to version 1.29.0 The key highlights of this release are the change of pl_gpu API semantics to use explicit erroring instead of implicit undefined behavior, and several important bug fixes related to swapchain resizing (in particular, handling of suboptimal swapchains); as well as other minor utility changes, bug fixes and performance improvements. The new pl_gpu API allows clients to duplicate less code related to checking parameters and capabilities, as long as they're fine with the resulting error messages they might receive. In particular, libplacebo no longer aborts on invalid parameters - which helped during initial development, but is now suffocating clients more than it's helping. Additions: * add a new field pl_fmt.internal_size, which can differ from texel_size for emulated formats * add 16f / 64f texture formats with host-emulated 32f representation * expose a pl_vulkan_choose_device helper function * add a mechanism for allowing the user to explicitly resize suboptimal swapchains rather than having libplacebo take care of it Changes: * make pl_gpu log and error gracefully on illegal parameters rather than doing undefined behavior (i.e. aborting) * creating a host_mapped buffer now requires PL_GPU_CAP_MAPPED_BUFFERS * drop priv fields from public structs Fixes and performance improvements: * make libplacebo slightly less log spammy in general * skip the creation/use of semaphores for single-queue usage * fix several bugs related to swapchain recreation and image acquisition * fix creation of non-renderable but storable vulkan textures * fix several bugs related to emulated texture downloads * fix pl_fmt capabilities for some emulated formats * fix stride/alignment of std430 vectors/matrices * use push constants more aggressively, whenever possible * slightly improve accurate of BT.2100 matrices * fix overzealous rotation of vulkan queues * fix dangling validation layer suppression in rare cases * fix possible swapchain deadlock on VK_SUBOPTIMAL_KHR * handle VK_SUBOPTIMAL_KHR more gracefully / efficiently- Update to version 1.21.0 This is a minor / house-keeping release, mostly to get some important fixes into distros while also getting support for iGPUs requiring non-coherent memory into a "stable" release. Additions: * shaders.h API users can now override the GLSL version * add support for vulkan platforms with non-coherent memory (e.g. iGPUs) Changes: * default GLSL version is now 130 unless otherwise specified * signature of pl_shader_alloc now uses a params struct * PL_FIX_VER / PL_VERSION are no longer header constants * the renderer will now automatically adjust deband grain scale for HDR Fixes and performance improvements: * on GLSL < 130, shaders now correctly use texture2D etc. * fix a bug where async transfer was never actually used, due to incorrect alignment checks * fixed some issues that could lead to symbol conflicts * don't require large vertex buffers be host-visible (usually impossible) * correctly detect swapchain image feature flags * turned a few 1ms busy loops into infinite waits * fix compilation on some platforms that require SPIRV-Tools * fix vkCreateEvent error spam on MoltenVK * bump queued command limit from 64 to 1024- Build with (preferred) shaderc now that it’s packaged in TW - Update to version 1.18.0 The major changes of this release include a new and completely overhauled HDR tone mapping algorithm, support for importing backing memory for textures and buffers (such as via dmabuf fds), as well as a swapchain resizing API that, among other benefits, allows libplacebo to function properly on Wayland. There is also now support for generating CPU-backed "dummy resources" for things like lookup tables or convolution kernels, for users who prefer managing their own GPU resources. This allows pl_shader-level API users to access the full host of libplacebo shaders without being restricted the lack of a pl_gpu. Additions: * pl_color_space now has a sig_scale field, which allows modifying the signal range without affecting the transfer function's shape. (Effectively, by "stretching" it). This can be useful when dealing with HDR material encoded in a non-HDR curve such as linear light. * Add support for importing handles (including pl_sync objects and pl_shared_mem). Currently, only memory can be imported. * Add partial support for dmabuf fd interop. Currently does not support dma layout modifiers, so the usefulness of this feature is limited. * Allow importing external memory when creating textures. * Add a way to overexpose HDR material to bring its brightness up to more easily viewable levels. * Add pl_var_int to go alongside the other gpu.h helpers. * Add a way to create CPU-backed "dummy" instances of pl_gpu. These are not capable of compiling or executing any shaders, so they're only useful for users who want to generate and compile their own shaders. All GPU resources (textures, buffers) are backed by malloc. * Add a new field to pl_tex/buf_params allowing users to attach arbitrary references (void*) that libplacebo will ignore. * Add a function for changing the pl_context_params after creation. * Add a new API function for dealing with swapchain resize events. This function can be used to both query and update the swapchain size, based on the usage. Not all platforms support all operations. * Add new demo/skeleton based on GLFW. Changes: * Remove the hdr_simulation field from pl_color_map_params. Use signal_scale on the target color space instead. * Subdivide handle capabilities based on object type (texture vs buffer). * Completely redesign the HDR tone mapping algorithm. Most members of pl_tone_mapping_params have been updated, in particular the options related to desaturation and peak detection. * Split up the HDR peak detection API into a "detection" and "application" stage, which can run independently. This avoids the one-frame delay inherent with the previous API, and thus allows tone mapping to be frame perfect. * Remove superfluous field from pl_shader_reset left behind from a previous version of the API. Fixes and performance improvements: * Correctly apply the OOTF before performing linear colorspace operations on scene-referred content. * Avoid clipping when tone-mapping out of gamut content by tone mapping before gamut mapping. * Correctly reset the peak detection buffer state when running pl_renderer_flush_cache. * Correctly use the image's original color space as the reference space when the content is prelinearized by the renderer. Fixes some cases where libplacebo could end up defaulting PL_COLOR_TRC_AUTO to a suboptimal curve. * Correctly track the lifetime and ownership of individual vulkan buffer objects. Fixes some synchronization issues when attempting to use the same buffer from multiple different queue families. * Fix integer overflow on implementations with very large texture size limits. * Fix building against static libshaderc.- Remove baselibs.conf since nothing needs it - Fix build due to missing shaderc, which is optional - Switch to new upstream URL - Update to version 1.7.0 This release marks the first major release of libplacebo, in tune with the release of VLC 4, which will be the first major project using it. Apart from API stability going forwards, this release brings with it a new AV1 film grain shader, better interoperability between libplacebo and external APIs like CUDA (via shared buffers and shared textures), and ICtCp support. While not strictly part of libplacebo, one of the highlights since the previous release includes the existence of a new example file demos/video-filtering.c which illustrates how one would use libplacebo to do GPU-based image filtering in something like FFmpeg or mpv. Additions: * Add a new function pl_gpu_finish which blocks until all oustanding rendering on this pl_gpu is finished. * Add new functions pl_tex_recreate and pl_buf_recreate, which work like pl_tex/buf_create but take a pointer to an existing tex/buf that will get destroyed + recreated only when necessary * Add a new function pl_shader_is_failed which will return true if a given shader is in a "failed" state. Shaders will be marked as failed on any internal/usage error, rather than them being silently ignored. * Add a new enum pl_channel to clarify and encode friendly names for the often-referenced "canonical channel order". * Add a new header libplacebo/shaders/av1.h which currently contains a function pl_shader_av1_grain for applying AV1 film grain on the GPU. * Add a new concept of an "exportable" object (buffers and textures). Exportable objects can be exported using a handle and imported into other foreign APIs such as CUDA. The new functions pl_buf_export and pl_tex_export must be used to correctly synchronize access to the object. This also adds new fields uuid and handle_caps to pl_gpu. * Supporting the previous feature, add a new field memory_type to pl_buf_params which can be used to influence what type of memory to allocate a buffer from. Currently only works for texture transfer buffers, since allocating uniform/storage buffers from non-VRAM makes little sense. * Add a new synchronization primitive wrapper, pl_sync, which wraps a semaphore pair and must be used to synchronize access to textures with external, asynchronous APIs. * Implement the ITU-R BT.2100 ICtCp color system. Since the libplacebo color systems are not strictly tied to any particular transfer function, we must explicitly mark which flavor of ICtCp is meant. * Add a new field instance_params which can be used to influence the parameters used when pl_vulkan_create ends up creating an internal instance. * Add a new function pl_vulkan_unwrap which allows users to unwrap a vulkan-baed pl_tex to expose the internal VkImage, allowing simultaneous use (via pl_vulkan_hold/release) similar to wrapped external images. * Add new generic helper functions pl_std430_layout and pl_std140_layout which replace the old pl_buf_uniform_layout, pl_buf_storage_layout and pl_push_constant_layout. Changes: * Empty device names ("") can now be passed to pl_vulkan_create. They will be treated as if NULL was passed. * The out_plane parameter of pl_upload_plane is now optional. * Clarify/Relax the restrictions on pl_buf usage and polling. Users are technically free to use pl_buf for multiple simultaneous libplacebo operations. Buffer polling is only needed for accesses by the host. * pl_vulkan_hold now returns a bool indicating success. * pl_buffer_var has been moved from gpu.h's pl_desc to shaders.h's pl_shader_desc. Describing the individual variables of a descriptor binding had zero practical application. * pl_buf_uniform_layout, pl_buf_storage_layout and pl_push_constant_layout are now macros for pl_std140_layout and pl_std430_layout (respectively). This changed the signature to drop the pl_gpu parameter. * The buf_offset parameter to pl_tex_transfer no longer needs to be strictly aligned to a multiple of 4. The minimum alignment is now 1, however users are strongly recommended to stick to the multiple-of-4 alignment (or ideally align_tex_xfer_offset) for performance reasons. * The chromatic adaptation method in pl_get_color_mapping_matrix has been adjusted. We now use an LMS model derived from CIECAM97's revised linear Bradford matrix, rather than the non-linear matrix that was being used previously (incorrectly so, due to the lack of the required nonlinearity). * The order of fields in pl_rect3d has been changed for consistency with the other rect types. Fixes and performance improvements: * Fix std140/std430 packing errors for vec3. * Skip unnecessary flush in pl_buf_poll noop cases. * Fix variable collision in sh_prng. * Don't leak glslang internal symbols on supported platforms. * Fix an issue where pl_pass_run was stricter than intended about compatibility with between target and target_dummy. * Fix an issue where pl_dispatch could sometimes try dispatching shaders with an incompatible target. * Fix an error in the heuristic for choosing the optimal image layout for vulkan render passes. * Improved debugging messages in several places. * Slightly speed up lookups from texture LUTs. * Fix the addressing of shader LUTs in some hypothetical cases. * Correctly flush the contents of host-readable buffers after modifications made by the GPU. * Fix synchronization on pl_buf_write with non-mapped buffers. * Fix undefined behavior when using push descriptors. * Slightly speed up some texture recreate operations by invalidating re-used textures. * Fix an issue when trying to update large (>64k) VRAM-resident buffers. * Fix two address calculation bugs in pl_tex_blit. * Fix an over-read bug when the size of the vertex data changed for otherwise identical passes. * Fix a misalignment that could theoretically happen with some combinations of (odd) texel sizes and device alignment requirements. * Fix UB when creating "useless" images (without any usage flags) * Fix a vulkan device memory leak when destroying large textures. * Fix an alignment issue that could happen sometimes with pl_buf_write for odd write sizes. * Fix an alignment bug when uploading partial textures when async transfer is enabled on some devices. * Fix crash in pl_color_primaries_is_wide_gamut on DISPLAY_P3. * Fix an error when re-using shader objects between polar and non-polar samplers. This is now safe to do.- Add C/C++ compilers, glslang and lcms2 to BuildRequires - Update to version 0.6.0 This release brings with it a number of minor fixes and changes, as well as a new feature for simulating, and partially counteracting, various forms of color blindness. For more information see the new pl_cone_params structure and pl_get_cone_matrix function. Additions: * VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR is now supported, and gets treated as PL_ALPHA_UNKNOWN. * Add a new feature for simulating various forms of color blindness (based on the LMS color model). Changes: * Setting pl_render_params.upscaler/downscaler to NULL no longer allows automatically choosing bicubic, since this breaks various other optimizations that are only possible when using the built-in GPU sampling. This now only chooses bilinear/nearest depending on the texture/hardware capabilities * The public API of pl_shader_alloc was changed: the uint8_t ident field was removed. This makes no real sense to expose publicly, since users had no legitimate use for it other than setting it to 0. Fixes and performance improvements: * The pl_dither_params.lut_size now gets correctly defaulted to 6 * Fixed some use-after-scope bugs in the renderer * Fixed colorspace selection when using user-specified swapchain formats * Peak detection is now correctly disabled if the buffer size is set to 0. (Before, it would default back to 63 in that case) * Fix the out-of-gamut warning feature. This previously stopped working for out-of-range tone mapped values.- Fix RPM groups.- Update to 0.5.0 This release brings with it greatly improved support for HDR (including HDR-in-SDR emulation, native HDR passthrough and improvements to the HDR->SDR tone mapping algorithm), as well as support for ICC profiles and external VkImage interop (needed for e.g. hardware decoding). Additions: * Add support for treating an SDR curve as an HDR curve by overriding/providing the true target peak. This essentially allows you to calibrate a true HDR device to a typical SDR curve and use it to display HDR media, at the cost of bit precision * Add more values to enum pl_chroma_location * Add a scale factor to struct pl_sample_src, which is useful for e.g. debanding on bit-shifted inputs * Add a new function to infer/guess unknown pl_color_space fields * Add support for 3DLUTs / ICC profiles (via LittleCMS), including support for assigning ICC profiles to the `pl_render_image` and `pl_render_target` structs * Allow enabling optional extra vulkan device/instance extensions, as well as listing what extensions were actually loaded * Add an API for VkImage interop with user code, e.g. to wrap mapped hardware decoding planes into `pl_tex`, plus all synchronization code and extra metadata necessary to make this interop safe * Implement support for native HDR output on supported platforms Changes: * Separate the texture from the plane data struct in `pl_upload_plane` * Swapchain FBOs are now guaranteed to be blittable (e.g. pl_tex_clear) * Tone mapping is no longer done for desaturation steps. Users wanting high quality desaturation should use ICC profiles * Change the types of various fields in struct pl_gpu_limits * Slightly relax the sizing requirements of pl_tex_transfer * Change the default value for pl_tex_transfer_params.stride_w/h. Instead of defaulting to the image size, they now default to the rect to be transferred * Texture transfer buffer offsets must (now) be aligned to the texel size, in addition to being a multiple of 4 * Change the API of `pl_color_space_equal` to be consistent with the rest of the colorspace APIs * Allow the `pl_upload_plane` helpers to upload from buffers as well * Switch the type of mapped buffer pointers from char* to uint8_t* * Rename DCI_P3 to Display_P3, and add DCI_P3 (using the actual DCI white point) Fixes and performance improvements: * Fix some compatibility issues with GLSL 120 * Prevent desaturation from exploding when tone mapping to HDR, or when tone mapping a very bright HDR scene to SDR * Implement the fully parametrized BT.2100 (HLG) OOTF in both directions, based on the tagged/inferred signal peak * Fix an issue preventing the out-of-gamut feature from working correctly on HDR displays * Fix a segfault that occurs when instance creation fails * Fix an issue where `peak_detect_frames` was sometimes too low * Allow debanding to take care of implicit bilinear sampling in cases where no other scaler is requested, thus avoiding an unnecessary FBO indirection * Only run the debanding algorithm on the parts of the image we will actually be displaying. This is relevant when cropping * Fix an issue where PL_TONE_MAPPINg_MOBIUS could fail in certain (unrealistic) scenarios involving HDR-in-SDR emulation * Fix an issue where vulkan could sometimes modify commands after submitting them, when recreating vertex buffers * Make an effort to reuse the same vertex buffer when the contents don't change from the previous invocation * Fix the glslang locale work-arounds on windows * Fix an issue where trying to upload from a too-large texel buffer results in an assertion failure rather than a clean error * Fix an issue where the usage of VkEvents prevented libplacebo from working on platforms where they were unsupported (e.g. MoltenVK) * Support and use vulkan push descriptors where supported. This avoids having to maintain, update and synchronize descriptor sets * Correctly disable signal linearization on low-bit depth FBOs * Prevent a crash on the (pathological) case of a shader with no descriptors * Fix a bug in the size limit calculations for 2D/3D LUTs * Use optimization level "performance" instead of "size" for shader compilation * Fix an abort() when trying to render to a non-storable FBO when using a final pass that requires compute shaders (e.g. HDR peak detection)- Init, 0.4.0obs-power8-01 16847519514.208.0-bp155.1.84.208.0-bp155.1.8plplay/usr/bin/-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.opensuse.org/openSUSE:Backports:SLE-15-SP5/standard/a8bc0f248a13f23e58a50ee41661ee62-libplacebocpioxz5ppc64le-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]=e09e62c73f9fafa4fb8f8628589e56c1bb465190, for GNU/Linux 3.10.0, strippedRRR R RRR RRRRRR R RRR>aSrTϺ,utf-8fa389abec09acca1330f68b6dca636beab295d97d6088b6a8ec2ec4fa52041f1? 7zXZ !t/?] crv9w ?u<á.>a|wPޟX!Ǘ:=|eԹi2i^ { X>4ע7MK#Zp:kk}E՟j~qe6.M˟ _01-v&[ [Yshж\V<@y_cNZ:\CoůV,S?F͒\i^s9UА >q(\∆ 53A5DkkWvq8-$+<C2GoU_Dkιa蟼쁪ڍs\骝%};;οob KďT]ވlJG?{s_4.ۡ2es5^]}^Cxְ}֥H/S`ZaMBʇ]e Fsk)-j@wW[l n.A] 7] 4pʙwh:Hw5"F:+BIT=лYβ5)%YM $Dۛ0%lUm@fرܴ Xq>˽Φq:ɥ/dG,2ܵ2Ŗ>KC\PV_k ͨ7Dǥ@n R͓jmed W{V=^HϋÄBz(l=110ڐcuT<6UT&bNJiRUyk6B,vG~x۷.l>v\XdsOOu|5hh_m\v6>M-5+h+c-qx.>JWM^=)1*Q]N*M}l*EEk5X+`C(#y:wi |,2C^ 黂p7m#Avpi<|,C M9C| V`z=qe K 3yòOi 48N<"Wvg(P,Gx}NtOw[xc&J)~|k^52TTǒx2R<0nSuSh$E>rbZ Mk֐ h:Ɨ!}Jv`5"lcRnkxcY rϠvN k:McūջȁW9g$IJnJMܸ! q{Ct s&k{ t=kЩ ^+H%6a4鰌=#`6Ebk_1dOwa<W%MHI~q7n30e<$>\.WS™CO7ܛf*E> 5:E6ãoK@YåVR`\oIϧK\Ʀ!~ lN*y;b>!y=<*¸dcb&6 z}NIak da'?ß oǐ3AX%Rx lu{fx~=O6 hKNÉyܧS'tl&#P.Aǥ~H[} $Yvo^ fZnG+jRJ'q9hl*.8XX⢿/5WF O[`M3&;#_@ԏ$ڦĦȿ^y-V:=Xތ39oTa04Rv#riVkٿiZ9t9FWͭg>(o  X>_C4C33[X%* J}#io ^t,>ئ+C Odշ{ 0yC]=|}G@DŽZtL QҟZIH'IPa@L )1)WH[?nJ6iʈ_=N-'|רc-f?{p#ËB%cULaneW9 ׯ'Yº3kV6FSν)t2#h !f=O~.5,k,BD>cM/Y/{J7H8_-T 0PT` 'FH*|I H헖Veq$PBc?AT|COnVT#6&,S"nS!i$Hgq>-j>/؄\%6>Td,F/2G&կv/TM: 놰 X$|hEHM0塟{<ӮNsMcgkӌJ`DJjO} GJ [MoVLFH͍ 潂ܛy>jI؟e( vk LBn|Xx4e{V| }3;$lbPM&ϓI+oJU8}v)LTTUcXؙ9{煉B>YK0wCd(㣈GA9T+ʗW 'xvUY1f$)Xh K/)7N; mv,F276/O{~j6dGFd!Q0B:+WɃ;Σ܏j( x>rtO rI8 -lSA0ՍUvMy?Ҟ\s oZBG7t$6$>G=#l4I7ρsE.8G0U^/ 4k83WJu|{氲 !Lcnқn6hPaenn_nHG;'K|6jnkbx'rQTnhKʢH=$V@:k=NO2bg.>D}Us*,Sof\f2'{_uE-wtaLGOY~SE-@H߃ǼJ+)ҷ _qsE#x C\+N*okK|r Fd"V}rN-7&h 0Jöu?򡛑{HY [lmUrG۵?:?hj7q/{tR=Yu*k}gc}(9E>tV'1^Ku׳Yd3>ӛvoZV U) +4]DLHZ.#A4l6CL%D*b{QQ)a6oM8#V)z<#䑘F[n*dH TSˍ=_/rYrV9i(һ p UӸ 3J]A E9e._ ;XT`.5X0xzVKfR*Pa 2e+?^ӕV2޽i"8geEGn~;VbeB/G?*@sE\)cȐG_:&,6ib}U`SUz9[E j{nJA(b8OlybM}j`iMd- Qå9c <\r6ߧ}pִE._̅d_U.P\'?tJa3=K=.,(a[nu~M?n rdm4g[ܩ@#?t#cPNw2؇M_!5 }ylxڣېSn=ţyy [0{2  z&׏)@Wgu%=}ٹH[h\ll:W:'H}? T|MJ?PZG}Rȳݶf,[$ ioG$:(uY7G)7mX(:Q-`\k_M)FVR/(d YT<=S Aw3(|;KArȩ;gH2DkUfhމvSIjˍn Wsc[74t2銸wԓv1qkt.y& a:zO6-c"jyƵ |.D1;ց!o𑎇EQ[&VtXx2^zÒ#$ҦD^ I-w:[@}KI;QA4:B᪘/s"LK/ H-qͨg nzC#ֶi+#!g# ~d!X/N3۳ "PN^T&9}F3?A+Zgk5t\gJ}yH5/Wu.ǟ`XȔ()Ϙ*bѬ/=vd r&|ag8, vLȃV}b0N$9虻)xc7FՏ6Tt$+NK @ʭ,BPTounqPٰ .aЌrCa89}Ɉ~nhĆ]M0s[QV,`ytgU}/'n2M$Tf!dڠdO`' pCm*k[b16o߲sbObh2}P-fd:)N@]j㫯\Ƚ:}zwG4@-\FZ8hǢM`羠ڍQ[p]&YzpD bXDNdòNvOki=da-WCi#m-#8Wl{]W"d 01w'Ya{S] ~\wb)jLc x̙&C򌅳#T` ߋ,ye D4Ӆ8enNg5b9p)vAH5]/ 8}FRR0OUi³{GT_ij>K-6<m/=3q^@_5}J'PAmwi9@2o3hͥ2l(P)7[ɴѭMlal/r+ŮBT͈1vh]n[bD<@rD ֩r녏m9Xzkqm0۽ S`DeB|iG Q{HtDHK,ŶGr2^":yP׎ ᫳ /J[7S['~ol`T켁\P9N!ml G3++3Yْ~ik"a䯚vlp1h"V',B= UТ4 ׎G{L*"k?TP8:Y*޳(ޏt"ޞ\&,  ;Rvaxo]UC7p3UNt݇vPB"4#nhfRvba9Ny1mw4$͆dSnq8%-kcМQq9ƕ&bś̐|Qܒlk!@>21_8A\T4+ga,-N'ޤW/ jsRSSK;QOJe-+\dGb8F }BS"r j?C۾8 E˽ H!QXǙ)Bh-'M |/l0_PSzR{Ʊ,NX[B^ {c"*GVw|GΏS &^r/}(|aTɽY57Ai1KK .ÀA'un"j2MiI7Itټ.MbUa?/[mWJ/HX\FdF+ +dY%¼q1]V~`n3KrGc̾Mʏ&nvufw4oi74+N1҄D_B4K#B%RIL]mgBjf!y#k|9ce\;%tE_3ZϠQqĴVG.wGpL"hC0&p'.#҂k$W:9, s§|0`[ISnbZfzYR6+oFG%K*]^iU& ^ü8c*r*!AL5:HI7pO_8|D'(JT G ^d}d(FShW7RO!tt7 #NJd@#nb}w f'd})P2]I-ciY{ zH"0[jSOPz,Z=CmPDbo!IԿ踸hc`3|s"˸k70x{HW5YAW\.o 뿹=uWV]j8)N ~ ؒ¥sdIkjʓ`2֩ 6JģE~jm j~iW/&^Vtw!c4e[ϡb.qhLE*jJ6 sjč:8UtPp7)" ./(M$@_H̳W#9{EG̙(S$ qus^م7KO`||ɇ }ĸM&8KVHi{_/bӨaA#kS-m9ÅR.ژ\[p P1O2XB(Uaa_WV@2 XRLtZ0xv-ެt2K )LbӟmG*ɚv"@3yK3IBnMm:̹+Dq ވWg1 ЩlUmj|_bVǛN?Aq"-8Ēj=a(C\3hfk- ֈX :[/이@b&Unz-Y#+o{u1P02LÃ?bIy]ΤW fk\L!gɘ@:-'#4/rA"=(q&gh=/dԴoC2jIzkI gh2xF ɈL@CA!}$G88q5š^LNF!nx=E}U)ͳDɭ2$ T]%6G#,E*$mߥMY7#կ)?*\UjM 7{Py* -qiTz͎Ka:!P攦!Yw X#1:݈4Ĺv9yXnPc/Mʑ_ۭںDz~q+6Oo Wi69z^#q$9v|*G{ ?\PlSoQ=GGkYU-X#(i Dnr-6 {-aq,лAXw%3G7gTH\7IB*2g9*qbC-Q}JQecT у3Jֽs`V^̖c0$ V>*dD l.j}qc{Y ptyreBr}S:N^h% Fcϯҥ%ps ʌFI D6>gTTS<+iZa/#M+ (5\qq*Xi:QJPhמ=˧z9='ڡKvoI >[Nm"nh="+y1}1U@P!!U%PYMc w زpBdz.iJk?qgW: H6v"(}U݈E”6O A&z}Srŷb ON0sեN %* wXtіd}0/5^5_A?8?{KXZ==Gy💚ȯEi'04z8(Y%+_4=@ [M82C}e]}^I @k$~޵ ӟCu`N4m y撶S=@uLkSOar9*p@6H:pP`q[l։d?n|'3{VTde 8:#dP@6`nPs hذŚI4LX>x2~ d~Kbb BF2~|? $d`1G1OFYfwm/G 6gk}cZ`t :ӹ]Z=8lE6Z{Y/QM#u#E> f6x˛3 zf`iXF,.B5Ss茜*YYmc#!8$dREƣҪJ3:D1e)=Hk!M8TمLV e8R+Lx# +7qt~SӷD_{P\FFUKn4 vr/Z'a8S}>)!Hx_?Cz$WFdp)g1me`PG8fWF &PiQfh)o f g:Ml(;wLkN_ 0ٴk6kHw(S.0ͶQ.C}Mx>^<ܢ-ϊ>@{EUTr:A۾@d6.ʌP2<" <&4rlQ\'Jzgyx8=g# H^O&8!\2c"*w"TE)btOmd -'^*RAe呚m"^rHzX{D=vRh5]7<vd)ORi%#9Elx\]j| g^>F4&@S  j;K2#)sX ɋXXήJRcK1Wy\ IӳV#^VDŽ+ eעgJ /] *4휳W~ lb-(z9^e %%+n.en"rǒr7i7*ò)"80At ,#.U{:I˕a=vsfV#wDSX`#yN\[5bs6hyoh g9ޣE=9f4p YHpg]e])3b \Cө^if+ög/0w'oRHvxeȉ>? M`>*cqI-%uq=}iѸymp)§ו]\@l;Npa[DNRvex"U97hU;AȲq>bTo;A!Pq跮i 92GUdtUs00WЈo{\R=f}f|T?eq'Z}5׷Y0 ҹoMOK͗ˍgM&eacEMTww>Wsc{ 7*n~wS5[s(!)2':P*/'71k.>tD4Įeyo(O;]O@z> "ߣujpM]xyRGԋƖC@C4~ ZrU'^$?1Y'0LyBzz ŒʷSA_O ͮ0-ZĜ,L?VR9ždj;evGZn"f8 0}Q-mҎZ~杰e+Gd,Bq7mhWzt_U|it_9B~7^`e x-u ~VOhz50 NO ~8p8$ޠۇP8K3I~n3ED 0,G3Mv'=P73j ɬ%U IA 6  b4;e2+m> 52z)MZ͒͐[M3Wn dE Ec|RHLghZcikԖ*aYL$뼝ga OeVyrHzdS?JI1)*R 3D8ԣVPu%Mw#촮=*r?s?b16xXKedE1p_Nɠ)t0Xw`k+?3::Bd$n#(w,cS̏!Ugb"Tx'sfǡAhLyYQ##YuXncHfe@c6&ƈ)H#mԗ9g@C*Þu[eKD?g(ėĭ7$5^*Drn@m }d4/9c14tG䭚?G2ƥI5K)ᾼ=mŃbA&1%Z1[mOqQӶkU>6r1OuN&?ZlhW}~;.gScCQs/JЅ7v.˃=>;|ryoGΈ`:e6HyO=ؿ{X~p:fUJ!%mxخ`u5O7S ہRg^}E^ʿ+Fy@4&B)zݗD9]n%.I|k:l_ Rc+ 'Ao0ӛֺ)1k2w>C;~n!b$geڽhΗIO99/wqʝ<|R:ƖܥR*g#WߚR)uIWA[X.=X˟"N i.Cբ_)c)#v y)z7,12kXa[^Q>Wݽ٥qNP4 SkvMM],|KEK;o; bP.馣 =J(EN+ RlLsvk?dɾծaxbe"u߮ or:"=VU"IwheMsXGYV>*h $8rPe@/IxE"`ktIwT ѨwjXarFY/ =ES{e3fO{v3E?hr b ϝ.ٓ_X+9]g]}Aם¨isOEA"<=Z{}`x/OYchx4_uV/!_Dfݰ&ǙbhYnx) KUO9Pc3щKJӒP <xŪdmtYEoV\". 0 =П#߆Md΀,kQMt,ܤ]]}_t^HcC ݄)#}ME$.x s+isRcżks11q/Bz,#iK*["ž{i/bUf7#) 1ʯc#Vh=~'0VY%mBw%B ´쎐M%G-S\v]S.tzkuv9Z-IV;I)4`q529Ʊ<ШEvDucгcs1-!9J)iVǾ%Lg)_S,Vu0 m&\_uF8Ӻ7J H]kx2N+`gb] y7.:Ν+I x.Օ4qDF*B˪mUFuN4W8;,;P<i0@sXԬ*4߅>Eɉj_?1_si\.Mm5jXIzZ\+{y Yk ͆hcg.z2vlQ3ZV_;kQؘХT>c>n@q$CF,ŵKeWC!妸½[,57+܌8xvt9' MI2u"-ec|#abj_,:N\L4P'^D&S#iYVXd@BРOT)i<*b;*D? ς%.&Nj\S~ fl)e)6!6.WlJ_^C66nץ m'~uL/sl5?g"liՋA!aDRJ#D<( {ɸ&()ƌrGp4,.% SQ0xF6kh&=-:=7L3бs4|0!% {eoiMمKϼ!au8!/x]]DWX֕j6gd Ə;zϏ'%.-w˧:l۽+%۲Dg?iK0Ӧ3k& 'oԪU{%c5d=N~#'nYЇ xU QکY6fR,W.wV,;Ӂ)1$wk_gj(9;)_岧cƔy2kIÒ H̞yBj]S#zMΥ[Uӭ BZHFn`Vp1v"f޼ y>Z&6fꯖL*;CcB1? pcL #sȺ~u-x㥨n JSp[C29{퐰Oz?vd\djvRE]1w`,I#۫Yx.ܭE5 `RssעupO9mB88wٮ]D^bk^b /Ǘ/JI=]RznjannL`IE/EkXs"9,޿ܬD{'3̜L&NbI@j@! :y %LfwV.ز-Tgr 6BU*Pf\FĒk=ˢfdL~d0`e%j]0Eڃ]vT=N=@Zl?92 (̵ׁ֓,ah2B֨ZɅIzO\}p=b4..!3L@X %. #HkF d8l5ޟґ.G)yڪo϶DI5Uq 7z\jLZ㺥/, =i ǻkMyAߣ%?bQ6(6+:aVT,7.iW1Ӽ7M+|6%O!PsCA|}$*_-&הz+4 O jhAK?l rX֏(q1'Xm 0Y{jo{Ti:V3kN-g32EPL `Y1s<9NҶuX`CDy?]wk mN.ܺ G# xWB]< "Sy<EdDu}@=pOpq)f zޒG {w/>I\k HVtOՃ˲q\-:Pw11qzFVUe>3wq9BZlV5\EFG S_E_Q@l-!ԑEv}@0C?ђ~#g~c'?(BԷUS)ZX`cdq(k#=h9RFRp)O37ld;/A&^GVsuL+]mY.1WU`9D}܀0y(s*m'B";q>2#;=# u$;Bh"=>yrqVld9YSʓ E,벰gmyY\($SЎǒGXP!F:&T|o-i\XMpǸ z-+/kxeZW:Gh,K#N:,Fs%{l [Hg̽:h*٠ mAMZn;I#@ߒ~{ͭ ƎI4tHvFsΦ\}+B74@-!I$5l0Q–ݾxW>ϼd'.{{zt|Z2~M?8`NDػO)]5äA!K瞺e%--*f>"PR4!l38ǯ$'ϰ*[35)2R?zuX{p*Xz" cGr۱% ,nZӵQ}3d@驿i[)b `+:,ғO!6lK/{ =6kHۊ(}/d,f¸TkAX6%9;wF3J4`5ߵl@]xE^p)%E䠴Oj't`:@I$LڎsKǙ.7 YR%vNAұtP,?xY*khs| piƠR$=!geĽ@g;U%; iCgn̊ 줙95gVu&MVE.`৶=g4y{} fE҃yZtڕ'߸_f[K%RN:>#Li9O]OWБ\|$h%Fhs mx`p)> Jawu+Y YT1'E;4>f=f:QٴYNY|P') jѯq4it#m]@jn,l!|D|nm_oI`Ć0l:W/NEgS8$U*=IL@PW2RblUe6"vHX[)f@ …N(eŒ):˱"Xhm5#w=vՓDa}P(n^w)č'h@pvD@i'NS~OްuL!dbX:0ä ~5ώ>"1.94\GԻJi3L 3,6dE==Yz+[a/X"Ơ6 q{liaPE*.䦴&\9-+S*[1T9Fے)u =`$Ux:L?O)kGL&h[ş]jQ8ÔqWNջZ9?5G'-0 mcrb&;_S? N0ăoh&HA T]ُKZDOZ7K>B\4W۴ف]nUC3d)A)i pؐ3ҵ=@41"ȔJ-}L.W\jyPFe4N>7H9:_BkI8Z@m0fv%lJDY$,D*rɐeUcy@BIlzF{g,W@"yP|xu0z4߽x<[煼 GOJjC\1Y7N}=a (qaHj,x\xVFotcX0l@1)eqU">MJB:$3 MBr[M{}@.B݁'^kZYn^wf8J%`Ԑ_( iM: \ -vm Qs- P0033nm|+-5]/- éod mpe/TOҐ~v̨s+gqG_w:i┄7ܫ{1eO^>Mȶ,G6N^D vϞr6M}v+߸́,`FT:7#S6=0#ީv]epYGm?[y}1d||~KBSoR,i|]U܎e\o=P{Ma +%1Y*nPsfyXDj4lr/ oz9ȵJsR,kvn49rR"USw'ӯ[y53C'~VKN!;;rN )~d;S(*Y'k"99uAnɫ=_*\)c~W xl\S-#eyͶq)E5xTRw86R0\4RdJ?y:,8!ծS'0趟oRfN 0XƗU \MNpsyt-.ow΄؋VPX> xs =rr(M y/]DN?[YP O rj X2>>dQ\Cjn Y 2U0[=9}Xҩ`nH)1\ToC9)Ha˕YRrHJf$y 1H|k5WM %N1x\?P4KR՞%FS4 1ˮ 5d7єx#ݷDF9:x r%)hLi)}N`"Rf}kNC"PS*z#ϐ{;In;^(m-y2[5^}X 8'33Tؖ;̙Pq@WVE<=Mb)곙/9Ӯb(4 1WY˞wU] Ep@sRF! 6ڵ2t nxݷ[< RkKRuwCSV}JP0ƕL+'ەnq&S #/[e\e?0X3`*D8|wffyelFD_!yrضӁ#1jk.#Fz#AGBvsPxST.iܔPCBe+WeEtd:Nld#aw|)eBbCw_9{^5W#T0C[֎(y\J4Bj)m*3uM oWHr3oĭ[l`?qCIߡ쨕f~f#6Xj~jxB'87A묷m0V;MW)r!-P6Z7iRS]!!0BsH@r[ƒT^.iH. bbIz™$HW 79:mbώz2=UY}Cx1ZcZT™Y vR$gKkmqA&&z9d Sujfo4i-ZV:K:qS6(qtcr.N#Sl-,, %¥رꤣ/47%aSj魲]`Eq3 9b>e92o@A!îܸ`1LV.Q99(^(v>j] ـ=SݛЏg~*^@ˑۆOOl]kF}De3eQ4_e6PqSd-w3ԋHu'

G4t37>x~dDߝBaupe~|q0>g.e\hVa|^-YdbOOhi-B(Pqlhq-|;'Sҗ#  laty~ZsCh6h`~ ?UVN AyLbǖ|m4#˨iBʅZq4э)]}ku&&ud҃=]DBfnǗ&=7yGL3FKE/*CRP~EXn|]XHv0MҦׂOrIAd#\Gcnu6`DV6'\ʰ d ^F~^ꖺ-PVJR8H5T*.t;ōH3[ _RqJ<ȧp"n&`{4ݽŌ'+%2x.`ѱп W~e>y_o}d}] j]E)v*Jd#$\yI9boЈϏ@m:K/ӡShbt薔/ˈH!cQljdwQCe֩2)@!]U9o ObP z<6&%C"mCvU>Dx8y(RϬդszÚ C&"Oh9YǍ K8l( |)1ꭧ#/!j]wWyvuUw#lSO!WRY>Th0Uq͠+m%RmE: L@4ŶCoJevX R'rCή1vHy^rg[yƾh3<4{Up  ށ"P >d0\Y\Kdʏq5)i䁰Pt1$p$&aOׯҏp.>Ƴ ^) "-A\ ,EāpssxC P²2梪ᛢTa p TCmwvta;4+^[2ق\nH7MFWk»wkT{ڼڡjMV>(p9_K:vٴ9N;֮( 00;PE%? n;1oN6 C~Bo:/&(|a&tEn&78RN&0QDspG;_HkX"}MۿCNLS+CI}qQ|{Norl/>rW#V#YRH;cYT xjXLՈKJSq φ(% Z jJPdz6Yl'N!P굲\FtGYe#I"قy8pw]ec5͖xT.gGX/jΜ٥xxp^/]Ĉgwxqc_6c^ N̐4 ҔU5db1Mϓ=AnVDl囯*|Tqj®viS6pfqa[FC֊QQ7kȟyi0oi lF')5_1cQ8;򅍪Ӫ3\16mAICwrpߴxSq?)V: |]W _Jg.(F~`d0[#6G]"*z=-lv*x9eC҃ ,$:~f^(v{oH̾/º[`|؂ ]U] cJ- 1LW^#6G^Z 0H 1׷a'V;.-qIcg"Bun7P<oݕ)醳 +HdS*&)~$PcM7B̬+O@m@^%Q{iW&MU5Pfw=!/[!w -K4s>I{5'i 1YL+yZ9I@BAU .cHTa;S4lD.yNGNPr'WAmKLl *9NV7:P7p;3*#K;` 1INN&DCQX\C1bȍOUHerA'} v( ~i{EJ囋rX@ _%0Iճ[ ;E,V0GVs?6b)ήFZ^x:cWi%TL= G]cZ䛌ƓKٟ&#JSJqZ+Ǧ_QD?i*64hc~N XIݙupXAAHK>2@j ¿m<ί cl#Kl_N`Zy\Kr 1aʡO@X[d>|C^:%GC9Ȅ Ss%e .osТ^CaJ&B|1ʾoZgf ^aS) OEU-\)Qm%ex8A]x-lU'`00g~uKRPhE~0ۍ`+%Sp8VCb:_x`Sm(6Y9XHx#qޕ9>'z?``'a#50.%&>zΉؓSWPirwଗ;<C `oā)Tw)0i*C`R{#Ìͬ30y}֑"ۙ$bBW>\a>mHP_7թq3C zyiYIv`Rdc_:!JƎChϨ&J0o!Ά{|~P5fk[\p'gunyKǞH v~9J@vY~{P ]o߱BN`0w#8T"InU(l셉$F:/ wW`?Oߨ \` >=~7Lv0]5lyсTh#!4{ڨGpf ] #jǾQ㫩\# 'F|2%ϥWt) ֣c, 0&+]|z,iEI *읢Rۉk En_F\02slѓ,3 Eeyl~zx_F}e%wr)X %eÉ>]} Uj伙vG>+p餾ZU45A ve#CH*>|N!FW@{b߃oC`O7I`RbJg{V)^=pQULA[hd-D }HG,)=T ՗$X7paWQo)hF- r!,\#{~Z` 5vXFDVC*bmll$͘' /ji0f]*U. "C#Q}^@ W)Kxo=9>R<3Ɵ䤇^` \6e{ V&8צ@@OA~rUb{["w?^<: :m5侦 "Л&1EkumÕPgҌ~j#3@s4j{ړvq%θ%bV_6'"'X~G/vkhFkO5o_B)Թ^}ItXpڎƍB/,clݨƴFY P={ZC̢ocwrA?Z $8TEp!KRR{6Mq8Ӓ2]R$B -_$WE܀]'+PIpuvٴs@L?֕|+edx Yø}]]< B)fЫ]|gmՇ/Ł6YᄒDBudP:P 1n"b\_q!r ߸g^~Pf[]P  u&Nid@kbwYN`tNƕu}p*z28ה@4Qؾ\v4GH&JɖF ܽJ.e9)e(1װDR,b݁tY:7 8ؖ1&a~G?T1[@Wo6^t:ೆO݀ Y c`'UٟUYU5IC~>/KQ ٯu0Z*N7yH侔6T xuPGi>ːJAOzM{S4"귿DB3j{{!(t1m5Kݸ=N=i,NYut{QꙠgu l rE*z^ GvB:.d&d>џL̼QHy]Re`4F7:oh⶚ %{`h(WԼ QҚW䟳h#Co42EQN퓘[XWKzi󢣺:89ꐴJVVۓ%+kC ){}3@I|3D}x8WÁs-B|F%-)5l۰ foJjȺ,ȎPX>E@BD=#S9^=Z-G%(Ę Gg;t,^idQ=\ ۚvh-=]PR>ݐAg),(eq>o~PPC1)o= 淄7'vG^ ;b~C}_ZrvZLd둟ݖRHKJP}K+IS&:)}zl^ؙFx|S'B7#<6!")d.XP^̣DʺU `#Q-{^;kx(6㤈 |y:E$zQCM`kݔz L|TyySEW3%s}a^4Dd)47'~!7zKֿe"'̞` :e5S2@zkG m/,޻j]ߐ>v.n`Liv>`.d}х7v\+'\k`)|V ث[s \zQi)vpp4%s+ԴL{oHHub[PG;/FyzGu-'$Y(oQ!@'RUd)G5he{"h-+fbT]6c'a=둘x>J_у=WTq1a4-̑~<3p}4dlOہt)-- Hi-<^ngvW1zXQ0oCd& (I0Ǧ9) :;Zt? 3]~nN> şv@hs i& $?j oҶmۗs"|( ]hŖeZ[?zpG3ն6tCX@b.= (夓= г8ޕ;h)' +o Et^ Dڦՙ^WDobm0M|Bj6`: N5DD #,-X"@{9cۍPnA3L秓G:5ZlFXXX<9D@6Nk腖|r 8U= ?1CV# xÄA ry8Yejod:7q9e1Bn{E~kUPutz5-be{h 0!]r;@1?K5FMҸ*$2vH5xЪҗpPGgpP*]=Ʌ彌yOA1f ϰ r7dh FX$C(~ķP%9ܢ6O"f %zM{T?nc;~;r]\ρ2y/=\z=X%Όq7r%E7&;+7߾Xnm)JVtH8=Hgb,2X7D(S{KTi@]ጴ5OUP9I<@X6ޤ +̞p.1QOa蚘s}ii먳Nfo>Jcl`>G2(ԃ=<pv{׉jy蔏f\9ЬGX @?7{߮#gr@wfhBIdÜ=Y {P&(g_셍 cS;\Gzk-8a<'ݜ\2evS4V$a[u liq_!sč;4ST򌝈}licն-ԙ~ r|t(0D!֥ߊ*KOb>Scb`$6 S!=-f뙋S?Jd&ZJϨ;\me:<\n+۟ qJAT[>Y.=Q̉v F @1f^k9tyј%DYTz^{oD QD'(f/Y_M۵$oݻdӎ&\ak SiF_릉oiG"c(ymC",^°Gi#>ÀqA. BFnq]<ܒU} ;eMH_}-jGn-5ڠs coc) `V6d@1ӳ)rpyu4[ K)PR:ð_+ cQ˱q8: \g+{pzyx)*J o2RY/= ~s,al8 <4a4wzk}XFSwh>oR f.NI ̈́'\[~One]AAacu3iz\#Q1N$|?=a[Z*JBZ/X8 ʕ |$aS~e(~$.R%&R֫]R- \!OJ͕Z+2!I>3Q Wk&¥@y$ehXq`U֩CHoFq+䌁 *k"pGRZ\N7_k %z]Va6uM|qeNRQ2bHG{T<'>/m#fŒ`*{1>Qr|bۦn6"A vb<Ԏ!P; s'g.eQ;'E*f-3j'vJ>(gDz*P%K{ R~O6&}&WY1U -luH݇T>;p0A.;)EŞN4D4<'hNHΎFh n89g)J)i}hcFfK4bnjfeՍ"$طQ4T'5b:<+^z^ŗ1>Ta"/sZȵb7ğf8iuHFeg|ŶkOTJѓElˤ r[ UAq\Qu%Er5fl&ȉmP;B/R6h9u._ Xۘp;;AK`QSFn=A51P|ElEYȷA*̪L_N42˕Y4_ua0!RkEC]6 Kv ;@mIY3ǖ- Mȸ8RR(?EQE*.Mwz{a5UiKqȻ=o*It4R7 "pF[ ]uZʔ~gJrnց5-CJ[z.1xat-MnE}Os[ɦen{mQ0_61-uiRm';ܾ)]J:Kc^(|_mF΂}oc(eXv뵊2Ӿv5HMP dg.氺 ;khKh9؃:+^NH/E4_~1cT9wEe'T:5~/Nkt4ݒ#z{\ {I5Z|Gh~h~>N j(LQu<8x%s]%ajAnjղ5'q<*٦V\B<7xFI/p3料IH,(>)ObPRVͤT_ I_r|]?!GHqhDl xzeYzWҭ,Х n^R{=|`F*VdUn9\CV>HX'q$~|U(8, 1|.rז 5[Db4}!idѬCEK Fv@+$.nthVEXl8f)63G}36'5ē[g .Yc%)ieSzar.D ``չ;4-Dv*CN]D[)`X:y~=2@ p:]^va{kS3C[38JO5,w䂾pYī> %.,yQF>٩)LkKN4W5>@m}r8 5Na)[li4!'7,bdžP<_ڑE*ðq/duǸC Eܒ'+qYj UR^acxc狪L;rrH,j>Y.Wl`g!M/'&i9i5ppCҏԼvհ<΅|^,^'#dK (Y%Z߄?ɩ+(PV1!!^U V,EMY2ꕭDlud$`S1e`Q޽a _Rep01[Jѭ#)z1z:Т1[W.0>@NL=loBy{֟ZnY p(BZ$jW8V;P4#nG - YX*#㡄wkNfi:1UtMfx= jǰL=tSWZf0~\l9 鹞w•7>={Ut@s}WEtˆ }&@D&If"{ ΰe( ڌ < +4="jçom7Ұz,wQY0h2jT˅#B +"I!yG&QNN$+us/O{VMFNO dIB`"&iᵬZOyJQYp+dmFYo9r)&Ʋ=yذϪio#]0{`L b}@Jպ _\yC5,t//ZQEU+YSsKy zpFgZƶBXE-?aeh\l/,%X$kXǷLur=~^"9>).Rhq)-й!yqh*ð 2?/I͖qDfk~OA|@Gq"Xzǟ^:*M IKƺą-i @'f8٬kP h.~h)Er:R:N>, A9XM.UȟA 6qX\9Ns)+3o"B,"HTI0bÓj6#n?. s8m4@|9".]aBwH6 `$G'sϸfkUC~㛝iGfˆrPv}P1;߮-g`q=tndRũQ|$#ɜmd +$/EXyx{bʁ0j_HH;0÷AX+@+>j7?J2#d׊۷,|]KUfqxU"3r54 ._鱆l)wy8%H'gasMر=te`bZߎI+oKњb6hذi .ׂax7)J1v8Hjw1AA^qK@T>S$f{K6V)5Q̖j{6EblH_G阳S?;Z{PۥX'ܙ|yJ[|@QNi @G8:Î)V%u1@ JF}wiOIi)#p6lNg-4j'fa1V- ܖǥvUNNPTOkk:v/Z@+-T.yp ӿwy4Q?)_ohRC_hMrV#uwjfL!UM9;)-pJlx?a`gNux:WD1lgP(cVxŌA&ftL2 y0CĀVm28as:fh <2[Ҕ&cW &2G2..cOAO:33AƟ@$}֢L!(Ѷ4Y`lT-? 2De|y~5E䖺L4M 1S=+` ?1Ӽy^z3y ~5̺΢X;7HTRGJ;Jᵞ [q+ܽƯ2T08&Ћt.]#FcsL_%ž9Q:qCl˫}I3&Љ̼#vͰCN&fgMks/QkǓ(4?ة]xNκ]D9fh'hjJ^ʒiIqMHPluC]JlLaim"\sWZ笒>6ka9XebE6/ =}/\Y{YO=ٛkQO6Mt"3"J6!l{c3D_Tt]#*&ZQ:[sD\җ1 Es,"L$n3 -lo.Udt?HpC[;Puq+7MbL Ӊ4DNKn2|r_/6֣My0NaN9trjXl;qʹۓ_\q_6A!{_Yŧ䔧Gk != $s.2Fz \xq5H"0$9fR^ ,WG|!aVJYwqSQj F)WɱwKc(}(.7J#)ƚR/ҴPv0$:_v4rO6+2v6Nuη!t(>8UWT3G p[dD l2\s'/˕t*#3zD1-s9ZΔ1:,6}FFv"QJ7W;3 M6q&$yeȉZ|"t˫FƛPۥ^rr86A2Ę]od@}wK }jG9[UH3*kcT6IEzIzNvoKpXE0T MUI%3fry^ITiA9=.41aJ|nhPnejo?!Lob΢b2SysԺб2"_U<1_^Oz8SX/Flnx { j=jdoHMyaʁI80SgQ;4)lɈ:-ݣe3 ,^Znעk^)/]zX>a@-+z R&VGA_F\ʪy5ͷ\6 ,wߴ'j4mPhkD,cT  &FSO0)Mm:AA6qZ,垕Z߲M{eWHz]bAe%lXϕ؉CPb@HpSJ:D]hjQWAJtK2% Q6UIvja59#޵ʰ3gOj1* SjWiC4CEMס. 0*^I&?;PL Mwb%c Jkx֢ sa 򘆔:/AnU-\H٨K8(گsȦI&GVHRdlxnHKi PZ!BIl˜.z0uCbK>t9wѶ.JkJYY*!!HDB6pmƓVw5N0RsԿlqՖ_p3}Lo_"^Hxw)7wm*z.[z5]g  dtw+,%]f_9{;qOj]Q;"{VـlM@Y%u:Zq̠(._钵7瓹1]ػ5.Dh(g(܌*":n=O1|*nNu ( 1vvTcb`+AcґA&y,ovȂL;ʆ]p.t ++3%eOB!M!yp<>K&0ˮVoSRzd[\e&ɐc @̈$HݏaCVĮR4NxrI J\8lv:\C~~α: 9%&T$f%l-a=#kR:Af Cy;VL udzc_"fQpT6Tr>@(9pL>o ے.l]@Y Kj1jHu[J 2xcB|ߢ!TcCb365%SX?:L oY AH)~8R ]RYInEB6/]Z"G|MȳUTɦ^81g\XBJfcތHp`&/`T(yMu eSqV_ Gu(eJB޻%kJO 9稿UAlQҭȀ`er>svU=G2(o ?0/!?| [LؘA ,b9'M#iVAd*#'UjnF> [Q8q/Y3SDO[m\T=,x} *q6 9+BXQl~92 ՛4i dӇ_:Ho e󔮓@:hv! G ,8Y!qBt5ql*mW@˹vbNlC=4 +RR}` b}3VvxKYWh6VHW$!e"m ՇvO,(:>YUK;;N3O f`~j[\j 4mV وGCC}ZaEV"&o+Q&f (ZtM&vن2k 08ͻ?;5nTvV 2q .Af1/rOx#x@ +ᢁ$&rzȖ$oC4 v8b>;,*/0ָeL3G,k$ =| nknzD40.ۛYO>HGsga2[ԷJ#߁Ǘy۩³ړIJ, ;N{;zR,LL_ ߯k|ʃ'$E: `Q~Yl\Q3P"ndI /xYa^\Pp؍ɠZ%)>ErǃlOktwF*<*nCNMY\͏؏@^gU7}ٿF%ڪ$SA(7A[@ܐYd SɕKU@;4q/)2Ѫ5IH3`5I۴Q)q]4 !L.x\6uDx gc)"tk3vDB_'=8Ǽ;Y#ۆYY+ =}p::? u6!b):BC1 fEںjoR+'sE"9URe׏yd#w|zemK=uqх;P31se"\~x9ai @:|.ҙ{K <$p [E0ʥݔf YdhgmNΖGBbTnb|o5&LC Z#o!TJ(jE$M*N8r2ۖ8=# F&d"mX40CqڇlE.w*:fbOQ4P>}LOhO`&e3A-/cn>&B?3#mNK!Fr?:o X=,`‰Rpִq;m 3(r1Ia$HI½ȶ( vw&Gf|ٶbafpH6o~S1 rC3"$iId+4iM?O1ޱ>i> M4 K(.^88iۓj=8qAA4s[]%}xYܥC>i$1u29pʒzxɞa6N{.ۂd++?'ռ>W%Hx @Ì&_ JhYyTzP%WP6b$.jVw+ŊjJΧ4m<_yϿPth ؘx X3C{ ȾOӤ?`r{_B\ 5 67q.zP6wJ8`iE^e IT }o۾UycDT'4j#>t"Ș2MijR)kVa9#:@6lƸ^/;T:<4?͹Es8_SWׂao[l* z kai{.)-|SGufNFWEbA6>P‘C:W059)}V ܐ7&Y 8i3zVv* 85xfgQyɝ|ֽ.RK9buw,pX?.*w!{dnHgkH|=iv:&9]>$؝)|P$|GRq@]]X7 ٮWD06dUh.^)H*=QޘN!V9v2gsJ"N#:$uS6wjRɰP5?q?g Oa=4^d")¿@ Pfx"s`4`aj6 \L,l턡LRQ/غ8 f4Qw0kme=r%}kqC"_"I>_(M޽J0J\ct}pT8L/ ̕G~Rm^BP:H#-D -GEd]Et97[pbj*Ec #ҴuC+-Fcy%7rjX3x(J9I]a x-j:X/*T&hf:YOQL=1Y]:w}_NSZ jb+n9/AǙՕ_R_J5_M |eqUq2 bf=ayȠO ƖGp bZ=X,/>{(K]&+2r r$/#A5:̍Ζδ?ְ HᢌRyHQsk s/}E)gӍ/-+6_8_Ŝh 9{T-hNJVHdTp52R~\@[%bCQO(Xvr-%D!ׯ;i,g_[n% n=,f:PXHF6/۝7x FhA4%J};I +ANRO f*k 3a]!*N{VK)x-Xp:msnLUO|T*b֟J~mW)*w=k?3+fڨ!*m--֤'~Ϻ1|W/k:!5%Cf z|Iuo/&?7]kge "!,g,bJV?NL UXre:/3Ik'/ιa-C'z5pJn3`߰QE@BԢ1#I$lfdSU~VX/aRϹaW_6̵/ n7nLk4Ef(vD&#=b@֛LK 5jnfDv>ļq3D]F R>,\))lA,*.at*pjH`|lfC)ulfeXF:K]kU4f 4H,4'=mwWnN'7 T4>* E*ejJboǦL ?X.04n"49 Ou`. Eg67m5͌8Y Q}͝Rqkn{S^mfEr0 SB;>#jC@۸ rȯm*D]T>} L3(ԣmm|SgS"Ǻ#)}=J 0z|_̢[W58Aמnbj &HVs @Tn%i(m?!<&% X,UWm |݆3$֫C$?,)tL78a湻4=$;D,Gƶuo^:Q\Y[}gӽ<\zu6dVH<`i -wjEK`,KC)&ʌ- hbPHZ|욌N![c (qC !%Rv .9EhMЌȁڻ\_jXko W߫]\_[uyI oLZ["1d55Y2Mh+m06G)#}朢P':Ļe&AZO?15= "I8W NLL7:,)$de72?a↎(ݙe6AP:Pf\F5y4a^R{]A|8?*^cGIܑJXo]PɎAsf TRhw ;R>@]1Nr{K|}l-~[^ :V Uf#xe-nA}Ρ޾`iYH:;JGOcTaĔS[V^Z1fT7gS;mG) +8$&u^6$q\axSY,u)_ YU7rdD,-gM3F A |PW~O4aFs"'Cգ)JSO-X9yɃitg$(˒"Wuњb,+Jo? , to;T7߃(P'US.#T$Lo~{UZ}I;ec=Ӻ8Jlkj vFCw$n=Ъމr N3[,_FΤFD Ft834ACWW fWhOF ouDaލO^ԎQVG^a'd L9ep]+0$JdM'GyBXO~,(G8'0k`ȟt-0خt`&i~U;;TDFKR; 6ҭ,>aub[gӜ)JOmsտ6ޤ|>_gkR*ݺ`D2i 5l>^~q( jcr~V;f0šiANf1"Cd:T.j:-T~/dh7)(pa{(qrKMFG%Q^m]*Ǥ-BBpXw)e TOB]/ʛ97#AGG^zx9ks6.>}S4#-ߵ-6^1FZ&'b)*>ӘNF@iw1={ǀE(T$vUX%;_!*j>)Ks .1៌c7i pm>E'>Xf$yk6h*n{)]L8@/5vw6IJ{%|GSǾb`۪e `o^SZ pu$g'GL_ 6+ʟxnLRN 4~>.1ʢZdӄeL,zs3k8uhَKS$cϵz-A^Dԅp~[%̙ey`΢[FG2st6bX?i6jdI=Pُ6qD㚫zq z}r\gu϶iS7Ueg67ᛯOf(G!hk& z *w#r}mjks%lO )$U{:S7xvۮc6nrq6e |;D6:~~>[u\f^MٛŲcޫHF4:UH!K6hgs|PL€8EszPҿ^ bדg*S>3 qbhLjҔd[ (N#a E;C).uuN:ԱI QoV;B ͈WLRh3VĂDoVzc7v:mD7Nb7~:?|1Cl~_!OT34gܣ[ȝMec)]]ZoPArX2ȁL9e?`kH"+H?8Η^{ 0^C㛻|0ܧ[m;BGBL99.FYNf 7fwQvUH)o;! $˥%cr I6<|:3=U AIj&^^U½RR* eKS6VڵhpbcNO3G] 5Jq@Lٱ <|=j^4Z١/]P*b/!66#Mnc\`gM=]2ҁm'U 2JB*9 q\)Kׂ,YN-]x `YjI:ѠVRָQYz괠!E[ĊjKuV>R :c$J$QR5,ej&-alOBoaٌ  Ý)E^DƔl=+7a/E :t 4j9NM]U2f@ ^qXO{Erh%s^!P嚽ƨ6W= 2|8[X+g+=zlƛBMV^iu.mZf!>)\aEZ$4~{>L+RMmsُƒ쏔4%ǵ.=ca{{8k ]ԏ6 ,uHYIM-Quqکrӣ(SL̒珴 xT( "JŒ>I 5WewHnj=ZɆn74mFfg? 1Ofԟjzi'L>oƘSY+k3HJ]*N3[&RqF<ŭo(Sb¥9bq q@]c,ЃtiE2a7'7GlUCZ& 3:CsKLƖ_e^[:3 s+2Ϻ5XLQA**ZK(ÿ5U>x4WƆ.wպOˢ iO#F"s Ԫ:6>)+=NHctZӒ@>ͷsBq7*n`.Jo}Dܶ3)&R21:QQAi5Ax動{ 0L^̈+`ߜӼھ Ab^oʑtv Khi'suisH˺xeDz(ZP[]Y-~=RάH2FL7↩XS_A`Mp&fDz*D1J43V>VM Ef,o(HW!a4]CSbB(JDwX~cߢ~:iɚ9u n=m#jXl{WNgY}qAByQW+B3e;,$Tm-c/iꙢm TӨ $B>35KuG!2~FEENUV1_fQy'ڥeFZ#_a}v/A(0*gI77Cm9apdz5 |Tnp`kX(Oi13eoWvGn- ʚ-q[\V&)q#S1Qaqdaby8V(vOӝ6(1]j~twq8YcZgꃃ\rVq1]؈#M3' D~&Mlh 8Эđ/eq oG#K2M8 o՚N"4E,itzbdƓIXP8d/HMK !. rSjh;얾b>$JֽN&[x]`Otz}~RD_nYY1\RSzR0Q-!ퟠu~2 tǚ,-cޏz-2 Z3sLJs2>s%[-$=ОL$M+5:;i3թUA8:,bBjF}s6'j\z}zgL 9{L|!^ ySc5 F0uVG `5R z06670jx;Mus:OoNH#K}ZU>#0RIj*E"nWo#knp$̹vKZfS(i O3l0N ̔nflLRP>\AI:Gofl`uAq*Y,xZ)7oO[l~sپB/u^j3En~ uBl:Df@6'7(WWt;kDDtz2Þ{ogaa'@iitz~ˁLۗnN\r\XeEJ&;ny?$S8Ԉ~CT|: OSm\gy@09[= Ͻ]~8vYiw]^_4 d&Ԛm b6nQmoE{1'oMO.Uyqh?Y4ԹumV%]!?T#Іg:OeR^-}g{hMUhef@_x.G葻69ȍP l]@ZF]XG]n V_t^ 򍦭9SE~L7(A=ZU7RsնCָVm u{ o"@BƖ/PiL5zy*CƻQ=/M!FĚʷn_lEzmLueng2@6? Mw|t":Q1^l mWK#rpi7S `~!Hl;`tc7^"0 YhX&1׸ֿ>: l"ɱZN\"| DzLJeyM ۶}_A"ͭ{>W+qlCPlHxMO|ֻ?>-QulN2Jo8@Ͽė>N;]ބ0IL褃l%oš@Pc?aGIچEK`4:UUOȭWȦ?bN^R2Qwv_V|iSƙfYf' AϾ{vuVwK)(/i8-վ8z#jw a`fSa0{AWnQR&\ވ4}PjG$AM(7Wxaf"j%Rm<#NDjD0Ľ4'W]m&d)U=4G8S1kF#?LQu-v.Po#XKģZ]G??ڠ#U w1s; MVHT=^Ü pO%lG&VI[<`w9jFjqo̬]h4~ygL/o'QO?/$zlbH|?1<6VWvN,BX]R*‘>m?pqs oAJef ^~pv>/-0|Б&qfp%蝁RAP!h.f.dYog*3U&$Bn~gMY COu#a˛j"(nuJ \w٢]d/?]X&)W{Ƅ&yrtj3)*RB4Gt8[`p#5M (sY:4T \2;ju]|]E.HNT y$銣#ժO:f 4e"S[:Q|A`t,D'cͯ9(x9&*%u3,o W!^D|V3";pz%~dwHZ%sC ˯~Hf?,4*5 %6iEݣU+?c\B|442Nf(?c]>@} 9@(퇉3eOKx=5rwPR@ܯL|#y9Qd!ғ(6_Yͦ8,o\"ism/o#-LfUiQ*AC[ Qؗai ({f[ɬe}0t5&k陣OP; >-*P1iw{yUٱ\ 8@oC% s(C,;ƕˇsΰvw{ 0hi #5gMW'R*rWPI|"9)&bR.8ㄤ+,ʰsn!.Op&2p<` nc^1@Xn[ގFd~dt5X*a-d-?# >aB h.a-3홇1vAk/o(eٗvC(o:DQw}~IH$+pΘ(PH`{YvJL c| j)e,YHш"% QڶL@ouv%:{]=p*hug'eq"H\x6km_,k(udԴ]ѱIX;1Pʹ4­?h(8f zM6ǔ/ޥ0'ɟ["/xyu4/>:qZ|6OY zưɟ Q%ҧ%t?8gJ" 4XY<|J9iDe9"sGPj<  (%$6*z9*!JL&ҋǾ|@X||G;_ T,EBFsQ43]Fز6)Zń [bFRyO(]F9<*kޱ:SXEnyI~q7.+6$ʇ6ZqK.=Sn=zqj 'Sva(,g9M(֘qD;M 2~*]`FBXΎV ]>^oF8ɑX$v3@cG,@\&D!ЗPxɇ?[Ecڑ3+^;;D(Q@  (ISkO(\ZlͭEr߈ý~^': ^Z܊rU 4 aM -Qs)R!2#a)usk /bcFLS\4cРʞk0᱖m9={NQjUb~\037<<6R}?zV%HT>W6/T/}RJc7mM+ɲŸ9vk,R]˝NFMWJ5WVBHN !Fuü-}P|]Cvc ݱ {{_48ڷWj(cpZ #o{QޚE Ak `IMC02a]13=ݿLK%u_6̰8AȣV1*lobSR8v^o{@q:r宯C%|t+}` @J=ǻ-M3Ճ/s׍\p>iFz\_ dw!8җ -XD~>>.'?vyQ/9VccI*Hˣpx 67@q,$,PZ̶")h˵:RmD3 u&(N9սt/;LJI$I;`@;ʸ`# iڶŭ{no )WlӕTijYLb_Ux~zc_S8 Nȁc$yXӲ7HMTvJ)eaLъn xu(bԙM>VPOqޟ DSϑEzk'/TAq\`,2_0q0TaXOë)+65NEL6Ku*ul>3<(wO?Ku+c]C?{}ӂ=Dx@-_7 K5έRj6VQrYqY8([p=M۸!*ΒED:gj{R| wa0ӫQM}ڕsx蘦κUÈљb\DvCkP1TuB$̧ZrUzXxG2Lک\edEaiW-Jݽ0WKUKϵϼqUDON9g,ɗ/{W`W7iH1&kV̓'0M)@kn9 Me=/-A۸1פp%cYK*jg&`Yڌ X&&7.4a͛}5y">;dyPjnc-Dx0Tk6( ĥ%F&tGpBjxbZ5:Bc7.|=1\0 5T )Mrͧ|E?!j3 *n7r9P$ǐkNg&Wwj7EAnd,>XnzimjNU钬NDKԼɢFĠB4^&ʰkʽV6ǁд}8YGVW? *C!ɧ>Xf*gێFu.O 8WZ v]8^B]vAE'X;J{s EVOe9ڡT&jOQ%N\,O13ӭ򟮣65p،7ڳY2C"'4p !|9Q>"]Ez`[0t~ÑYBWr r+ee% ɻǓnf5QXO5̔12+i,ݝ鿀W5XЋlpr获p.d_ OT  㬍?v2~DZš.=J}5EB ?z9{mm( ͖P;Bro!O=vr{ Xny o/Z,~[V&# Ioճ%_%v EGxXL0ZPhvMsB> p}^ ]T )ʮ8GܲR ]̭Q&a Vgzr̍Yb_vŶ7{7iL/c tuʰ)62ݞ)4s0P;(9b~_z;nj,>TQ).Gն)#ɣѼѬ?#-r HAeCgc[hij!m߅׺&L̄@<(V!Ix) o\+oL@shNŶce_TXlFE|.}Um5GG 0xDNhZnu-YIo0D<%ܑ OF5xJg>XM}y{+mWt1VS"U5ł"7WmI.0qm7MӾX6DiQ/8+ښZ~,^TXtnn-]\3"Sˉ#Jtj OAt-W(##\n\۽NjGS^$fl,"LmV^\=z}AІci0!o-`Mq.a3Bj%Na"E)6܆d7h-_ ͳŀBꗔsK$`'YZ0)TxN.t\OQ")Qy(e5v8i=?"/_P _dV_t}- V;ׯ̥u Lؿm[lՒoUp!C<]Q}߆'87Nkw";{ "Lȴef,-l@57p7Q69)'$ZWbf?P.Ç~ ۡz:&$ ,x 2zK|뀶R/"/8&tbeohbzt_Mxͬӹ'GՊdu`3Q53D;iVӎ hv81ZģY_z~اGk-@Vi`tYG #ZfW9-Uבo1ccLf%-k[g*qM&Ew)R%Nw}}yPYEX#ZC_e+d^Gkyw΃,:zYwwVm~K KsbCxk̿E8fF":wJ+ӺZЯ0j獘PWB 97N(Or֟hEd)K>@Sow"X`XK&dWX̫Pt嫨f|rn}z'ɽ\S;f١fm׵A(L-W,JiozIJ yMH{2%2\g`ꬕϧi8 /Z.б{;_e ~{?-tbNc/pY?ˡ/H,V-þ{2b&KؾFm4JFqVdpS~D I© ~5?p$~w_!eb#vX5*OQdkfg_i4]7d>i8l5k0i)sz\Zr ;eDb]ب\7O]:l~˺3揰-4E/EV%sNY;^o&Mx慷fW8Wy#^ +t9g㰛OopQ٩/xR.IG,.(ҳjԘ+E?R|pm0m!9 dFqgKeo0SEB5zo2T e+cY #k j%WKrUfqS;Rl$KkD#[ (uZnW;U m,A iI<4#4an@Hy𥔕JHTǶלROxe$8Aek% +i#+Gy[j 9L GPj~}R:35|x$ۂ^NҞvua9/FE.s?*;WXs'*厥]ywy2_W9;ev*D "gN>nЌsgB4Ul>Z5?K ~c#'t C{q^]TɅbxk.s:p ^wZ$}~uF< Lx6TA3blo< %}M,lITɫb$Ehj}nKSpng55J<"&4z]y2_ZM@^b28?p}J˕ OvN5p'(Iف&wy ]Y}$S[.^p5xEQxy=t_\3#$bq-OZ[Xi!FD*Y}Wt*$kdʲa IY'p;gXzVǼ{ M&(>QVc RkT Ѥ!Gas:`0p&#SK 1d]K|YU1\}ă82ڈsyڬ$+A.c) ~T߰@/H2`F)ՈodiI @UHymQ KSSg±g!4ꘗ#]S` rP`peo]Vx *?k>*1`.w`q1` B3N، K <hLm tHςhW)I[X ;DTv6tMlG©-kf5VLZ19ǚ?鎁7DZ&+qghkg~jك.fs[0Ik$8]Mrs$viߤMY/)Tqo|IWlHv̎ͳXC|^E'W)r 6[ͥ)eba:p&y^OJ9#1 ;@mcZwւZ?ɦ>FfOq%%QSC JkFf+P(d3QL6UFN%2wGCOӈgvo5ѰVuXwgC2qÀ+,r$P:[s +l.yj "juuq<'8hO=nsf;"Rߖs!ayzSBƂJ^XsmՊGMΙ^$fԯ}k 믧pxq/.S8w]1:j~$GȕoCx R 34=Wrr!g@g`~1VO/=:UQ{yGO}yNKYqm"FA<}Are̶< (m+&_3wlĩbos TI'\uvƽxr;l}8+ۊowãԴ_ԧr+n g7%Ogu6T·`+*׹.BXA̚H-Q/'yX1\ډ~D #pQ?6vT *u>߼ y1K>6jB:F($uI]et󃂵#]"_Y6x}W:rHoM `{d}0n5ٵpz~)= l>۬Eer4UEϳoX먖YB찖9e VbJ[w8ƄwRbۤyK|77{X'KC oU}wӅ-  ،NC|_Oq{@P qղK8nE$ҟE_ڪ쓹\FK<-̷_0O$/^q\L2N.}ƞgAgAgxTPdYdEMϑo-ŧN-wI fX4MkCVr:GDYbmϒLVdKkHCb)/2OnvjZɭE>ƀD'm{:֩_ nn tWe&bI ^TxH,a7)C}L+fQ@ÀzdʮΠ4*t9I.]ae0ILEϿ= a'.@S2+n4ueINT r%g""+hVJSMJԀ O*< 0ûR vHYiQ1 9[mW|WXAmX(Ӟk.T]o>i$d v!YX׹3Ͳ 'cm='seue}3@~wI5^unFi">ik Bw)kr d#]nuU!9au4[{̷7hnH ]e耾&$h ɘox)?; 9,F-sXaz9_cۮ{Eԏeg`H!ۄ=\\6U};B4^ܫ7g$&9 x8]O6FѼRo1'Q:F2jDaޱa Ҙ ufjK^jݸP=uj t1Yެ>K}uib)1Kf_Tmyࡕ:8O{H]`}1y4qy߭kBl}JXw¸ eNvOyg W)د5H5EaNMPξLqI΢Qި= uDBbÛ!PY27u4seE3T 'tLw2&<ӭ1lbu;N"- KذxiWd铯e_RtWL<}#Z*iVT/I gq('O):9}:+QVڬu_g0h5L۩'HҢv-B#a'r'%Ro&kk$X;nqxt>E)̑Tn""N3< ;L)%Cca5vl `; Ig RaR3WfzFVmAz1ֺÝ˅@YW$C4)Ȁ=~<@>aeU?VI:b[}qݕz!F+uSifjc W;tSu/ P%Z9-gJX#ҭWQDbz\NW$]bԕ7exek™\|]64 "KmrC]TJ?[E}" (7OqvMKk*X3T|`7sje[cogn)ldfc?]7@mb~ NԱ w@pSgm#.fqlG־]ed#%d Od Kjټ3݈ c*a+NL,G M*74 K)k :xf0罰5 Y`AV7{ac<#8e_>7bĽ r'D%w#'scHg%6rse;D2ŏ?M)|Y\;O5 KY{iW/6qG~S1x$"SI'/( 1EdI=F쵡+eҒU =[rV>3񐻜񳁐-b&SG`ncӬ| zdX9a2/a>)} \ӕy ʪd:us9-sC"sȤRe$EQQhB 5$ˤ6w;`K]mOki[ڦ% cŁ\5ui&g/dN`Idjy Vjz^D,Y%Ǧ\ė2vV_O6$-q(@鸜vZL {ܯxPQYNa/60E0TJ񁾎NSۥP< zyHxo G6@|QA~OlZmzmpyuˏadnJCURgVgoQIjr,`:iхm}1V&% ~)i$44Z k5qM{o{ҁ}ZR@yZc/T0JAV4(}LZ,И:mL1nc9 h5M_Gዽ|LFQǸ,QFHX(JT=ۉY.4ۑ-wE8txYz] syvw ^[sLb!~<[EZmo? & i^{۠y'G :({"H.uE`,RhBVF0(Z:/g^f53WJx8r;XZ,ppEQq$]L| =zlN>$g^Wʙ.4ây!,΅m|"ptZMm8#4davJ3SNJƊmURyUWIWGUD8¶1EZ9z6o| Zcq[q/ڍ?J g Ibeag:R>}?+DHɒdGJB"N (7> (gckM/G9.WgkMgY@6zʝc7xt/{4z?W`uCT]Tu̦g8Q8pԴ3}'ɗ&ek=%alrRE4!x"iQȤn9$c>;6r[3]Ao~ ʠBf(8{BKEHme) !AaNuLņ9C]YE{F`jH8à[$ZK_k+z"tKy@}16AiЎ3w<+GDG:uҚ[cnqNKB^^hyzt[PkV*Fdd2R/0A?t'Iw8w /@m>xJ^htox0C,T-$>[%pݢgZ~Ex1n9*-`t/ @ +aE艂 lT '׻ .Ru'naJғ=nbS)Vk^'iAXkzA8߭UPh)f7ܺm̊ T2 d`':*% ֐=hy_DQƋ---E}IATH^\C jfv)kZpCTOe2Z;VYT_3q4!u:RgTYUjY=j.=\PZgn.=ط@bA&N&rbFBNPs{YS0r0|Nb_ abOb|b=&H\EqIE%a#AVOä|2A%]dNhe^9@U^QI+eeVhF=ך@0}+̟m3G1ʽޚ̍K_.$̾l*0|n@|C.,T {Rq滁mjv?'Y@[#7r :!pCng~Ki)s7 ǫUC3Qd\|]jnT$uz v?jʩRŕ]NUwSy ,tfݦmN &ƱMv줮ܱ׳,EWquT\RUpK/A[-64Vw"{q#5._W #߷T(&86A̜;ަъcNUJl~=?_JX*:xrUI}ƽ="+׮ ־Xcl*xqch/Ⱦ-oz}QihR@On0ool 0brۂ7-1ǖĶ4o/11S=Ƨa țOǽrRU8{#/9S'cA8v넪EˉW#Fh>, +8OǔvA>LQLmV*"Ayxr|+)7yq#LۥaH"qt 6Bo7[t9JR; `װKXoi`( ,/&"G_oаr8t lL#/$`Pj|h<3~QvPn5 -#:n,iT94u'cRSnV?Bzz0␹KhV' sXZ/Ը?R/_O`֘3)ԒtFw&CTȅsؠ 8bD^\@uK@;B {Bjv1{BJM9b>AV>Wf-?dň5#qwI שHӾ#BZ},#U1c~-c]i{d2r56H_4?cg12,,F{`Ԕv/wA#]CuM6RTͰŪ4u =/Z f؛*w(ok#~Yx~&Y -]6asU=WklZgz3tltSvLte J>*Z0 rq~Bׁ`H#;I! w ek%Auл>sXPiWĽXPVoG6v5MY~%i+WDԒ$pP-a wڿ5!6z-d.zql&d|ͻ l7UzE &eMFc5qOD'V;Ӗzw?d+lq+'ub߲e.oFD{H;`q:o"8=)_Ŭܫн1i9,b!Y6b+MYT ] %n **2 ش}HDWNvVnKmJ`/T粱 ݄Pop߷?50Cf6}ķŪ|/n9}^wq 2zSj̭j+MO5([Ge6sK1wr]@P?7i%c޶+h<=k,E烚[0e4*c&sZ E`|7dUl2-#C[gMΓE5H%xzZ5{vm|B#(6 X>_%b`l],h/.2'Urs`'6n7%Y{.GKū2)JG&%\<Ƶm<깐hiByp=M 5tC0%\4;}B|>5UMئ4:洀SAm`Ҍ|! /~^Y(bu?%}Tҋe%0ϸuXZ ]~5e?0Gx) _Xqw1lTa|vG. ,@L\yhqIdP 9Hqz:*>vxHٛL8j% 0ӌYFgQT==ptGC5[|]<nad 8 M_g|ݔkB蕯ŴnS<nH0h͔m\ҋ9<'UHGc^gbThQml #L nOW5a2i[]}<ܐuX2pvOmZ_Pja^X V8:BHu8QgzX*eSV L(t} :U'#{W|1R{OZZv ,yfl;˗NgBhɽp(C~C"_Fey#U;S'r[BƸǍ i'e"#gymǽÎ~XsUn`[OO{ޅ2dz9u'v >^ Gf"V[6"ϛ2#g08 U{!2CiuXq.Yg}FMl1:ywʱU_ @%#~贺 fldVfbJI`=yn^ IŔЁ@0v :a9ƞ.e$+@>Ssǻ%t6SEPzOb$F"N.p6sp{xjTo6{PeҠ>I/ Jm-4vҋ Z$EH$ otlv|K@C#=<|ltFPyKtۛ;#4ޖֻj%ƕWM]R2tql<-3&P%MMn6 Rgf'gS"2:$ PneN(ˋcFK~^cQvc Rv.QO}\楕Y?:cٺ= 40{$“ !^伬b8jeDhomGAozQذVǀ~-m)$`7XmK"M ngZRn0%6 2['S6dҧ]G[(vnƴdհf~y^yFNdk=p:, W^ӄduj_ˉU#_ tB )sh~ =&ySᤴVD#2N.067Ntڰt8(%)^-our٦3fA68k%{uއ G뾾Q}ʻkm0lNh)c=<IZ^wL"^PTI3~^l\eLҽ&?PsU4dW%"ۇ!qMqgޝ~Gz4D+`U ~‘uE+[ۮ ņ]Y!9x=5.)(s.0ld-Wf0,-Mz3tZf_?sv~e9 ׭5JX,a>nW}r=bQzShjdRiWRs{ ML]YZ'ceF Uz݋Z\_ *~1/9-轆fS01j(zJZ,;OVh?ĘxR%~A<1-UgOi%Yyݘ5j8R=a~zf//dq3d @.f+kgh@m̥ppK"ɚ ƕr`M _蕕Nâ_P9zo!5٫G)++TmА2S9bV $=+|(/h$ӌH%X /O⹛Yw Tie"ư,[(ꓣG+^9:i =cOQiFl\Cb$P⛕uctd.qidl.i\6d!2 3`bSӋ  $=BKMhCiRG5 vg4%w2zՕXs \,=]i2i[i{;.讏MV>x svRr mpX r0AzJ!zkƽU˥d:9lج/EAoXelK5e 3T2Pkヘ8Ș 2 #ZUo !I3?ϴS _ax|ccVa㇗ҶhJ'7WޅZmRAIլ$Tnɽ]oB--!Gw{Mߣ~M{z9o|[h.3r;n(LǠErD1e͸;nvO#+DƝM!POOHJK}܄֧_[Bo_F3Vh~w"HY/R[cf^@ftg@ӳƵ1Տe.pBpR&Ux̺?%(ד=}Ǹ8Arw7x';&wxӲr'Q{Uv$$bl\0PxgMboW]C.ZN!'䲈z0J(2JGEk{QGG hUnܭ7Ip`$YHS~3ĸI tSȏlO:VkBԄU+\@շQ.^F|Xv_:GY K6\&%,^b @dΉYa!l9 | 52ZW.54ڸSi1!_[:\@wZKT +/s45?-$>V4IF5U艇d>}'OPGaRL;dVICWN;@C&2D8l٠s(\kT7lI68~qK#c Oyf*a)}{pm5~ šqʖye7傕E]0tjҁ<s')ުߞ}WJUv g$bW Sb̭ v>G; I2__YXN3^iWrtU}(\ܲ+~iGPanoøz6h_MzގrRu:PȂ]@BQvLnJ5KEKphfOL$DCx0){N)(=E.'~5Y=Q>{ns%e0S0CR=Ja gܩ-p/M ?c0=_۔eسlR!?k,2x?ޗbס3I=++b;gVУdi(Ǧ +e"9}bxƯX짲;'l]ߩ]gqo 9iL)jatȊq<-ye &T?+t]CMeC] -K6_C]tֆH6XGy5i j;W2e˧9 aީQ0;0!Lɩ*R$36!$Py#O2^ 6"tJ=8QULKe(iq t)MHӮ=%r?05MQ;Տg\_JXD {yw]A@JW{+Brҍa,*5?nH2N=aݷwc8~ 4,-!=g{G1GP%ٛ[+ 8-B4<[~Uk$TZ`+>DXu2Yhwf{9D?NJqPKV>h"Ә:sSCV`ϔJ~VjT$G(nzKKW~E\ߨ^o{K`Z['Z JIӘr,bŔ7Rі ˆ+75Z J_&ҡs900WHf#T+Imu<﫥 %\IWF(m`P4]&VJ3m>-<3\86kڏyV߅~Łq?"nc&O%Me;J&, v`sԇ}`D!F"N`4t 읬vZ 1PGWʟg;Ʒ{ o.- x&;4i1D`ʒ ax:Dk~g,aFg#w53~23-x:C-iFBkKbݒ^g,Z[R l}sFQC9ЎU_)VxiZB7QPz*,4e+ r~˧LG5M~  kӐ̫5Q xX k!nr!#s <+H7Fm* ʜY'qcbGE5w2:wtK Cu=7Gƴ01|S2 6>|bLf 7k?k"m2 ጫuYP|v 5ŏ&N|ۥ0Qs€ ¤MWZ۳6|ˤtm}u)~Upb,0S5+JA Ul Cd&KղQV</g(PY^<je3EMMYķb0*%@eJ,J-B6y>[=mJbN CBXl6Iq4Vvkv$1}A6Z#"|-)A07I,<0ZV7r7xCL>%oH Gb\rh'M3L0=L0|v@'”JDՊ{''so䒉ޅ`zd1& ):566 Yx.U2l01z]X:lx/@Ss/ZƁ 8 *R ]R} /C:m48#jU)J mmB t N7yQbppDq 1VS\#fcMEb8ԁqJa&Rx&DY(A&gFI:}}fI-.#q%}[ܰ $1+ ʢH" O˧(h#ܓk@@J ϴMqе}iK"LAGm/j)8<2D ̎%Bg4pZ R.b^2] CSy)]Fem`tN:uV hPd1?MY mT!G=X4+wvv_xNp[wM0㛾3&T\|gk4 N $sY~f&N)$hOfڝcN[Dq7i~Peh%ql!.ϡ dBq2c\wR8ꗶ Jg\[>*G# 5^@=a!qzJL}B;%ȼaF,RbB8HNkF;Dhn̤?V:!P<`]R O-6i@w<7/ky~ *rN]= ǟ;>[D8/C,-}< ~~;oaY.e܇XibZ!,/&>lp^)Wi F1+&@94HکoDK92ǹPs鎭K^uw&J ,-&TQUbH0r׫9p׽Y_,Uúx~ ~upH<=MY9/G  ؆dzhhmABoh?`4 OƟA9ſL7Lm8bJ|9Cw,j @ȫ ױr̨f|WjEl>%Ń+ߏeTeB 6Ը,2 <Ӟ?Qr֬f|AsApL>!6J!]]^/x. #\;3ؽtNWTY{9٦TAkVW1|\p h}P*Ŋ>I NN-1eC~}fHIH/RSAٟ-Rj}iޙK SU[,8w C;F(yT迖A2Ds3k76kfr Hʨ5[<+[5jeF_ eZ#Fh5)>z; rf5`M@t1c2E5k7'Lk=kue)($#A2otD"Ƅ&I&qrO_)BjБ2ovz-G;f5C͔" Y9B(/5` Kzz,P-D>zmq҉%g_8 s6[6_ } '2\[i\H~t\SI#9VwɺX)qo.OX]5=g*otO( cGN",K5|ؘ|mz:}h| dXɳ0ogM@ +ZL0'[Ex]9w/?S1Ebؔ|'Hɫy5}wcgF?"Ur@Ӷgz7Ǚm2E%T1!Pt)idذ٨ő>hu0^o!{QG"q,ֵXԵq+2_g u`vpLˍFq|ƈkB-"'htg~JuL2tUŽ eG#cbE9 F_b@TɑㆂwD|"hnOvKx MFuNP;- xVU JϰKɮ,fLL$}Id4T@8` tHx޺XO@2ͽSA<2ĆF)5>qzjW Lyƅ435^P T%_ﻱ+ *@;bwAfòx!S 1\H:zQH ^h^YN<]f.ľQF~ZՅ"oഫɐ'.zTLf}tDž-C=QlW5pf=aSOD|wšaW/MإF3 pΓڈ(̓!+ .:v8+ܪܼ:<~Ѵv=nA8h>:;ppF2 un^qӾB9n ~]HE z\4c`c paqkغJ4,BՙWU(p#iA }CB1Ź`ְAlbcM)}?ߚ*,TOuc&,^ZWWzֿwHGV 1c<0iRc<>[c74n?U F7gW;dsZ-IqXYXѫ9Q&aNa["+ ls$nbAj0§llgDyq,4(!P(ZBcgxL0rR2N]/l@YiϬg/EJ;b`Kbx" y{3ZD-,xaIXk,q.ڄxGu,"'S}YȥYjC,`?{tnVmQEKQ yH/W{49xq!nko3n!#n[_㸆vHV2 ~暘ٺg_|g'會[3FfbS#5z!n hZʇ Un׸$-fҥkYq#tP*IUA)\F[XF%Wρ#F /A:c!NP1xW6tSF{hqx-N~5Q?x[]LhD8 #{'d(0h蝞 8%^a欴p03~#E}d! DO.FN NuyGX]TZ" VV#W '8fȯFkb 8?r ^jPЇ͡N۰zi CP0 X|o]7hb99iwk _}N'~5%jpGߢ$Xŕmb5Y.adKw (sȰƋܛH 3`y3Zϟ==FX?Rv [O|Aē_k>2P`[Wϟ ((Ek!V^IQd'yQ%Tz/x6Afkt?>1W$jQ-ȧ/f8wU$ٌX"l%}ǜ 7^bsC?t4/Y uw篘1꺧v6%pߐ"%J6Tq_F3Ud|vċbo4@nI^*db%W)=Tys{N`dQ˰oq u l֣AT82o"2Z~('Gys춧VsQ~Uo1?Ա4x- (*#gsy!(n\&}!E`ۛht PR$m;BIÑ0[3i7zҬRVS04ݓx (lJQg?:?e˼!bsZQV2\쿖(X. DqeHsv^3mZ.\)ȶI3;IrkUZRc/8}VD}K _#xKs֞Mrqp/kO+N;)Tl1ݩ|I׼5̭qX*Ѱ4)0 .lPz.[)M0iKPṞ:%peyO!d휿H^F[gP"kbT>8SQk*B$fQ"9e0] @pN12 oPKj"Q.;L} gv;ʠ ODU!?|5qB~Dwa;5C&U]BսeJHu K&+iI\,M6KnF*x;<:#"; HZXȾ*1wbOnS;O/O?;J ܪ4$@ < #pGӑJ0==SQ )X*vaJ"Vtuޅo_\5KAWV9b\ΤvIt=3+0tG&2JZ@0/o܍^rEP1c(h,#|IY}K_Rϟ^f2KS/AmkOK瞐uQ?{|S\:yz&Iv7࢒6ni>oeRH_M8us^] :fbF$;Jr5!D,_殡 Ep" /N>tn/$;! z%[w'jo2K>f٧uR1,RڡKgTM|[E%QSЉͨٝi{ Uw,w,7$\nS]-HuE[@/~+Tjf.}W`tɣLIU}Iڠr8 2vukAe[ܜga_.ٽ',Xf[J.щ,1iR;)@qE7$Kp)]֑%d"𡙯 YB #l EnPnZXS3Uvb&Gfk;8WXC/c }߻qɼQWBE;=ZѬKnȯn_:P#˩p+ }#OȐޒčێ9hve 8\J\.H?󝟽!X-%uq3C Gg{aWlֱ2 ͖c&2Sr4ZZ88 JJ_]E6خSj ~5cOI0{5ТA># R]k|bD_^Uuh]pC(-n?h͙^&ƻ ("*nD!L,φ²}IX;#z=JJ /לg릭nOyu n u (_" _F1DŽf56@eϦo8F>:s}; v4z #ZyY2T<ɾ'yُq(_ˀϨ+ʋmRFnǀ[|)1wgńVDZ<8+G'9$ܥ?~rݶ 8 T,&+ j|IJ+sv<%m[Ʈ5@532`0pfmISx'KbB*/o";/6KvD嬲' ZՊSN:[ +~>i/:]I3O<;h]i]ccmn>߫IZnFӍݫ J-ZfVIc FI"~F#~:?vxHW+absIC zK kkA2'~C𣏕M頺Hxw}JrK :%"74s= `Ԡ)a( ip 3VV!J_&Z]KIn>$  u(sC#RBG3 8iKBKAP/N|54EJ ԑJs6vG1n?c7./ jf2j{?lC]ڕ@thVH%|q 7xZ䆘֎Tޏi75KZ):Q;8!&#Vd$}%1塓RRsP\pw]la @:R)!^R6^޲zkW4y>iYv8Y Iϲϊ)6Τ. |GH˭N@T/Bh(r^ef-^(|{k0=E1:}[? t,^fWtUa ԂVYZ6GKOior(GC87lOd`@ǙDF4M=95VGJkOsX룖q6[+ZGx)/O$/ٜ}uC\2n+5qr~&1UoY:{{.SUּM 8GZ9*G+o$fW,@}A OФkbw]WA񒵽4{(yI| n@c \r!a?}<7{A9Q,z7+)5[7Ӛ||F->NxC%@"E1Q$ zlNvJEZ6aWTw,Nc*)՘`.ȘG$kF(6cPxd}\fM v" 6!pI9xrZ|BF ;}T6o>4( 5s1$_i;TQLBa+ CÙQ/O*ڻS6>` 6os~ɯWn,ǁa˷g>{g}n[6cTsrNl2p&&4pZl-= Z6G ; -=NC_&?3Xnbt5mGG4C#v8rS+(>t xZ9Ţ3CXtz&a!Vs5]XI.42+Έ*{b EFYǸ Nf*}I,Rv(E N72^O ǍF7_EA(mmP[p(/G1!(FV0e1F.ܭlY0JՎ9w~VƗ$MKqQҘsH;q: 0V9'9v3|Vۏ a e*_H }#eŰ~*u?Gm _+ TԯnÜiD#??u;Mo3e4(6(W#ï+)i^'h7Vǯ\SN \M醌 /}` 䴐rnW}xƉwwfs2楯~[z4s"CR;p qz(4ȭ87#絓*"'~ sӪ/M^؞x9Ą*!v.Rd=@pg!>#o`m*7ayEJ+t^56|X 7-5QUyN*Pz`K뀎+Ӣ:Fr s\ z"6, xFjvd*:L&1%*^CwFshIhiu)cqF`ءPSz[]W-bg<@lծt?#~1)N;FcKh1m3Tb,q$K^.]H`|rnHI-G/<$>6,&îdoN!C,Uct>RnS&gJc7D @OWdB|ܟq2LBm 0,'m)e$D6O P'<א* E )=-ْP1bo> STYwߺYĘ={ 'C).IWOF:;lpep8eux#(:uw8]ƣו‡t!'?W;b *[W;['nymʪp#$꟢cQq|ܰ |d0"AĊʃ?Ac ih\EuWf)ePzF wؠͽ(4gvpv{nL" %L.߰B= TDRZ4`ݿ?W3HA:;-ƶ~xԛh7ۢʍ'9kc|oD*xCc`ɹUίMMS6ubIl8dHb"nyFQ)p1ʤll_ݗn] ܳQt}/ʔS9R7=bezʪT!N lV$@gj3:äT` QRxW#/H]cdz7kd39w8`ra/j%AllաDf^s \"v%noB~uݢ %IyW` wM!44]I!2\es8Т6b}՛q]d/V!l;L1_e-/m"z2kM$yH*wpJJIv YM۰&jeʅ w=, Y\{Xf<& _6aPVIhi0IJAQFa$c=-hanѹ4KG04lܒٳPm!=dB7JA9 n†;|]й7-jꑸ$zǎ*DYCEw7lvW`# }kmј{lޟS&SW⎛,P?Oa<-ug)Dj!\b\E9o[}r>.y"a۹sH=t}q4٨Z&VŻOz`XW՘qj0e! v74h֣|xY͆C`#$vN](NLJ҈' G bz~H )ESUĘXe]}5YOe'ͩ@ԗW4LAaufGh'lnI>X]\7ED\,$?wU&{< PBE ZN)n(L7-<^xr/D@3hN7(2jt ߱&g_x ]VTP*YMB:><~5L0bjUlUdSZ[h%jE""p{arbKR"w|E7yry% +0ҍMm0H$`=/-ΟOV7|cJj;Lo5דg%7m\ex͔ ig/c;`9KA~|NlOHL%S%0N}\,PtbnK%&XBZ03)R HqU1r?'DܶiQE9pcfVDaki8@t*ʪRL1Ha)#u#`+G(_ ]3 F^3FTz!˒+#̃7 1,nj_\2ZjE i#T{qAuJH!q{ ;}KL-ba>6oya#Zqr6mM7oc#UH&hY\bx?i|Tr֜^5<8uu?8<pNX|wS/|rݼ8HZYN \gju%c `)"9`t}=EQ,7%ȻXIYMVDTzb'20/Ɠݧw|͈]{-[~{$k]GE"5q\=%dV\*Gb]3H嵁Mev\aSh\w}Z10wA" =QFemKÑ藀4g/*ӷ3bep +j-Қbd) srˀLDe1ڪ "4, ^ k%jɤ#$M8wkZ^%+j&5;fnV v*l}~f5]Gnk&Ʃ4kKgۜ1@{PUIn %) .KҥXW! کZ*A@Sn 3QtwjES =̬r V)"Bo&ML͘ I9. C?^ce-, cl} S%?XYJgJ͊dpP *wٳ 7jQaLR-KMu27p8ˢ6]q  U~ޫ y &66okX,6xkblҤDkg__.ͥx@|'dHø̛9aRB  GdPIX=>@N(,Z짛կX9oS>g<6"+`G;eҶQ8ۼGxl.9\&PdC#æFD07.ࡸQsn/#[͸.w-F ŧ^rێ5?3(ѐ[<CfFƲΉ?SC{oYe UׁysTATHSS=7^ z !hP\6e9w" :,h@`WU<';1l wkpQSDdU$v몪yH^)Kmbf!Q&x\~^B͟'@K-ӑ 2(䀸\~͌ҲyH#E'3fwrAVzоG!Ŷȓ и5:ݓO#1}5w* vdPz-3 .{-w0~F@nutJ\X}GnId=x50lB!ߣ%kJdLصո.bWks$N(v`ӆQ֖}oCu Rk>\Uvs˫wqEa,{)MMiEEaG2U o¬?GdkiE+<;i%HS~o; rB\o]&3ђH\L5KD,'1>ė\(q2; k\\J]Nڼ3- EmM! c~]F5,NîtIJ>zKC :.d}\_؛ke~=b ^Ȅut+ u7h:!YOY1 L5x82q4\vկVw#Tݡ5$m-!ow8N.yah@->n_.CF"l.VMcz~?Щe$*%3b/Za|FH3}Kg ;n >.o'P/ͽArH p~IDt;Aq齩c*b[R'JF}5{xeMo7/c⬉,Z0|zsSmwWΙin,X^Yh3WgnQz6̖T:&QF73ʰx@BEjQUsP{Ds(͙̎y!_=%>|,RWy6f"?wY{2~ssV}5%oG[TYAC52Ƈ%#Qhb uĸ9 4rݕAg%vb t ܮFV&GDR#8KC/&ׄ2?="uۑKɑ#2tak8{K)e 7(QZ=ʩGX Ų +Jչ4rq$C#$ ~Wk*#Pnjh$T£qOcj60&@5#i)cbmw1n $P]mtq"J>=ú%ofWbG(6`=M(;߫e p;ҀaF,jY)(-]-. tz:+9WS P#~' B CBK{^3eNJj ٨BT;tr:[z}&;REzps [hNz O8GMr_*dil 5)QQzv2 77K,TLӕxi qӭq4:D8--gwZ(x+E!t\s:EYlT?;4eM9t2TiUF}pY:Yag^nY62d=!=1DsE S_b۬;A(HI{% ёE71]sG"J B=^i&N&΍ gAT̞Qe053lEAn>WD|nBe`'S!`knAJ5 dy?qV@*l/VtQh+.DX/ՇD3f-֪]nR5w 8(uߖ| *Km"`iҝi/صc7$wB2%] %r0QB/ @Y+v@iW,C# -8 e_Xu+;S}*& +>Vw9v~j0Yp uϷ!Z9\3!~r f_s׫[@`h!+#Rt-81#:@f#йi:Pe*31 sYR.f&)%ivnz5-joZp5Ok^t>5S6 $qTZ8B/**yKh{2$YeEW̔fYl^pGܶ~02``6kc7f z̜)cB'b)fdy+ה`cK! k+s/z `ɨjZ4 :nx.J˶3g%JB%er.&YWV' "er("s#\+:<㏡ a F|a -₞~^cIXy1eQT: !g-*m>7c8*\34qۏ ِTJEn{YhƿFRk^y#%R0+>zplF@Y`_.C#X!٥,FYy#p QʩCOFѦc"[~ B@s 2,NLtTra. eӅ5SvNpjtyYŮٹ~POLDaCbQ wVMW=*=8ڥSdjϔ(ע=`X4%˷:jqJb`;6}*:T,,V,'15LA{ZDxRrDKF3K$'12 ;ҔD(>\c(.S$?歖oM0ݴA>^;A@ jze~|;^~$e;!==Q~cAO4zn}Z* (+viVe[D/ ;4sK,H8['=- })X?)Ln}>h pE=5 ]jg2{i*+@23] +"ig 0(W>(Q .Uc0!ȉ54XLBHq<w*>mLI6}"VÝ#p]Xn7}e=Hj{+@ Bcq*{ IDln1Q@4 yGP D V jFa<Q"!ZY'/{|h;¢4[p@-:|ۙ4%NZo؏x`6KaȊ( Lm(PU1RZk'#]' |6@,` [jc}-]!{?.2щ4\Ya^%:: C>ԋ F ;JrY:>1G,MD ]P*~#N) Mݙ9YCwј{zxM;/Ж|V?Mcat8RM 7|Ѻ(laSͮ63|(+9u Ѩjn,hm%ȱA/p))8?` (ϼL{ Zb*-Eb0z]v@ ~;# tP)1CvF5y tJ#τW} é,S/K(~Ԇ=~6E}js ~DK";DGcPddSz]8u>%*p"iǗS4 u&\^o+y{ J1 K+ ]H;1 (~xNHy O(UUk{| 'N+p^ NdIIr$eeebaʆ;eߩғ8?א%Iᧇ4;&tIM ,Zx.102!Lyz 3'2jL nm-l~ *Ԁj0]c?]]!`*ijp<';u5K*}ZR5vƖ!sfa`]tϟ=Mvr~,d*_dӻ.?9Qvuf0~ɘ0η.yz5 MԜNG,-/޸Zb6cќhr+TLbأG:X, +}6y~EG5iG -W0*{"M„1[U.2·.r>9_4#aIJϧ`T!%'ea.U;?< @bCή&$(sh"/H^ǡ Se{jW!_rV2 G6X{ޥe ! oz׮#0m̃;iXO0"0yuuy81+̏谄p8;E91u@n1(4 isF+sY&^p)U=p6 75mmOT^t\zn҄µZ[ U뉵Iz:f|(<:(~Aywf?0$Hi g+[Dhj\u>g0 9!]%SyӺƍ]Ci<Ek&-ۧ`ӄ/^B]Gpgݹ><ʑfm0/悕#=.~ 06[Eoik?fbNWմo|T8@?=#61 4j8m%%. ̽?w)`!>*_(-Q=i4)(M4a~ABfx.{+g.Z* mwV4! Ks}j8½MG&rOWs'}Ƈ+WKbWݎ:.=ٿR~ z/b'q)/ſGDEd6̈p/A۟ 2Y̖ A|bE"uF.rXhMSv1O1U%5Gt"Mne-Y_c-P4zGx;ṵqx+'\#oE|h&'L[^^hPkp 6n/)c¸!qÈ_}A=H8&RlRuy>S14IHIGfz.[ż442 u=N*s]W ]>tO]`X1K˛E5l8t/+hōN%✢wk;i0T66K4s׭̕x ڈVT1. lC-J A/P 8M]P簧vኙPY%gvJz``)x;yZ㾽2|{^GD8Ra=!>s_^m?_BѶv饴qG$9xOI%,_a@]1?i3RR&Y6pQ..{jYhSE bM!n \bswu5\czd[ M߹ RǶWf{I,jh)h1ViC>`V|6@=!y_KACyNe>KO[Y (Nt ̉BIt(сjWW~l~6ru~ė,r=&55;8~*܎!tTO/G܆0Pӛzh抲[YB~fD{/qWzseOKne~~x/[){鿮Y\?{0GYk F_T3Ԛ%c1ʩ !pOI V8,FCN"{~riʴvv-8NX͜Oh]|)T<˛J٫φ΅N>J,gY[BX3b=BNõG}h}dž !Yb:>}\s'vӤv޴U9}ʴ'?`d) :Hݸfnk)*9I I;Nj݁lnL9WֽQW;8NIׁI߆Jfw+a|H@( - ل_oZh%)6}eQL E\M2Co LwL-՞g:G7T矶g&u/F8VOLuc֎CVXoHMK%I?^|~>"Us}ɲWEn_{ <ᖏ@d<*RE,w8H<\[͊ ULm {hj&!>6_TK=+V=ZA <'%?^! rl*PK JZtߨ*;2-o%R*dw뻝(uʢlOHWz]Ҟ㒦~-sth ?qet2]fz˴cWŀSLpEq {q<fvvn-x25'[LmZkL9됧2:<}TxWގժ.pKEFM[G#{ J=Xʏ 5Ʀ}]=BR5%]X)_፞nдZzdEL 31-+h E}o/BLbƉ~Ry|hFO6͍"熮6wU|U iu= EPvj}:5^ HV 3˭}z4NXLNj\2@6ɓ4 c 6yܻ [7hGS--T.}W=)@P%.6 93eJD-kg=剥<蔧^0:|X#s УO-EDzҝ|S"O/s&M0 Q_tuB=8f樤$# tF'&#c~d?.֛|ދ:* Z8pۘ3ÆtEȓ]U%Bԋz5j(.'_>PR9ϝ%8<m7!5<~{!Ǐ T> LD8"-8t@QE 6rOXS9Ȃv?0|$q⯗}r(9xc``/^띍׫ uB gn}fs$hɬ-+kTn@_[t[.x- 2Ok#%=Iդ39^U!֜gb2CAe]5"g X8Fk8NL.qG82H<>g Z\'=jFK)$c2シk1 lM~!ETwFLjWM~P5IT8, ^Ś(͗Y<1CPPr^:>hV53gRN~(A03%pd.ր6ܡ7HyF\5+ г w '"^1 h3b1>9D| qJǦ+~5abk;Oki;6&/DZՖz/YkoMSt2wM c^sM3Ga]_oлf/7^W+W%]n!=\tʟpx%$\.#PC'˜pvn㚓% Y*Nu8HbZ$~:;?V{60()[pس;TK?D)BNr\̆:P!( R'Yb}o۪MwIx+OYcT~`>`J)72"׀0OGE(M֞2Y|i"U$Kn\6v8Ȁ afj.5<( 18U|Ϥ"6w,C`0gh8p{`v"]CVxwV]oqbnbhS9O5b![ЀF7 4%lz`K&g"A 'TA}UL3JӲA3i[p^S1םn%Q309(C@Ge hKf2ܣ=FI"h |K[P M;G! t5+stSİU)Pк)5K/u*x %q%=5 y}`r ;>35Wi+"'2ȇ=#:ĎZcC ^o*sHU>Sf^R:4}o~g"OtY6j 9\ {A_ʢe0Ԕդ H`ͷQo>!2&g~(D`puo9H+@hE!"j̍xo"e-I:So?%{Xߩx" (3##fa>}x{e";83#rC%'M p"C}YG6-EmlҦyx8g>G|LݔhYޙ\V>[! I%nKdpJ6Pi;hzVĎy}&0l`Eˌ72#}3L>q vpFe?)Qc/%t;{{09O̽ M Fz-ӮS< I@ y${DWs{]Czk9ܯMj94xM5['9'YzA'B+)}~D!mvFBߠJ}F?Rc}5c َ7R3I\{mW8sI_a]ހqBqv)4IsZ2#ibzSR4G (z3yٵyrsu4J Ȫ+$R ԢX%Y-?p'U(yTuĉbZSOß\jWZeXuqϢ\P-`;°!௳jj1Q +}{ȷNWT'A=9 LJT?b"p8cQ0g_j2y97cBiSAtJְj:%[i]ih^_bsxUj.g֠ލ&1CrU{$9-'/ǹ%gR@Cj0Vf{v!Ӯ!Ǟ>ǢQOR%ƫn `cWo;ao!v ۈ2n0x"9Z0A3[Ң}MB@wYV]l4T|bs̊zي9ΐrtBDCیodS?:Ym(Sv/jn8̖*I"L ؤF870!ĄI)`s!-7pBk!A\SKzFJqk>n:9:L6dҕB_]#3*Rbuv?0S,-p?VAS&URg^8tCp ̓L"͎LS4|8["u Lx,h.cLsaPBIy$MBm쳹iŧoš`Ϡ:yk;* WĖA! ;CjdQΫ2vw4 SM0ak\ "ՂDԩI}o;Yo+7+jq086:s'q"=4; _27ז:J;od`~s0UgIו _x+gVt7vn07 C67JLə>g#ՙl#wq"=xyҦqT@uSGJ^QKڡo$=Mw$\)jӐQ 8͆@w=%rГArrn*;4H-آ iGnC_4ur!nkzb *m3}vT[>xK+_ (tsQjCLk'(_m2x4 N\k͓1Zq(*Jm{L*"| ;i'irX*kmbpпm~֦K +Eo  ú3׮ cliLk)0yu:=g@On75lG}4`he9#\PrtE6Qf] j (m^A'A.T3h(| M%&$-mIV4IC!{+' -Ś[eړqAXŽ>_fu8]*qR&-!22l˞S\- !sRWYw o8!ݧoD/{yMg!Z|$tx3F&|ir߯ y=|?W@ 85[\t741RQϓP3#+VCLۋsH  ҂ǰHVz]}UFgZ2yVYJ6)IB+Vj'JX:r}m!Z+f9cGs V/KH"jXp.L _,+'zId0d4DTvCrY4f?ĿB+u 37.\Xo`gIJZ50h#S,{o„ F·jZKR|Iun(=.cEZu5'`?`fR)n¼Q!m@^>$%j1.l5O:IYKxTMHtf#65ΙꚠgpXFihͿ60~2mαݛTMEB]Q{~D;4$d 찡$:)PPӬ`Ҕ[("HJװKv2r^[-Xu3#~s_GR3[*m E9e9 pC=TPX kȥD3o۶ZWBm'ul4HO7'r:k=ٵ^Ee&B?:KFWS>z -[?amV"CUd[FDHoFAv\Cs{)弨 9bds\y P<&_So:'뾘Բre&;4eEf@y޹ x#bGYWiw 4>/@6b!I(2G wE\R-tuG'F~/ݾڟ5d7KD$@xj*ǑS*\_JX] rg5]f_k^ ;@쨆YKR }/-?-iqԔ3+,ce``+ |L2v3e}=]?P^"}uYTaPo8+wWEU>zV r[Fw>+g @B0Ͻ;œtdC~Ըiz)ec2_b|'k1x'|B...p v2eU$,(TEdIe^\{;p{@a,rkU+ƒŘ4L"uj9wHpa _x%-z${l #քX$Iؓ¯RSXOPi c)^?Fň|2-(@vA`Rzq= ez Κ&Dy%2uف32CpBiQ,%ؕ+< h;Kr2B}łZρAz4@=Mije4Q/iY3 Ji*E@>I"ZdTSRs3?}@Q+ꥠ$Kިfeh`Ŋ6,I0XA>537)ݰ0V>>ª?L`놏c8)E1}#⼥jډ,DZW4XE}2ϏgL?Dk},]H?{DI.~OLJҺmghW_6(j2q€K:p}SE+%7+9C ufN9:=4 ,Ayܤ|=樂]Z!R:hHdRtt{Sr'̉kv@tH սM qGv9!׿2C<{ #\HHC90gulW*rQٔ:czoRKqL!QG |ASW(jo o:ju\eΆ{)=o?-% r|nW\>cL 6l8H% "qW!d> ,~?H2)_g' g!TBT~ .S2ÿW1jupYslS+36gofmi羺8xwoEUrٿ{#ۇ286P1f`U{OB;AuF| ^8{nύ v/XDp8=Qӄb8䢝/ZB /}{,rF6 B?%Q⛖o?a77Nop0/ݏR"t&k5QP\-a5B~R!_|ͯzlbG=-C=yւE.ݬpՊ .w5RF}+%_)E"yQPa| @=ЧM-`2{~Ia}w0L{՚k!R.PpsbmT?e˸p VƴMy3\сt@8Uɱ~mP'T#yzJU.6/Ӣ/{?tD"r?B E=(P:uSMB1p3XšIkV20ͨ'E- \t*mk'7:):0[tDjyG<$QfrI ^~X9O+]'WEw̨#ܖYk;t+c@cJhk-a.[-w\ @0߁lط숶Qw/~KhojV1T~=H?zmQ2c"Hg ȸ"A༔hR1?I\Mg(X"d0%dAK~*@]VҭNw6\VεMN9|1 EhGs98 ϐ5~W'F΂@na,wB``Oq@K˂ΨRyΊ)B>ʠRoHvؗ,ЃubOÅ4|tT|D^VF'~~!gg@@hWo +np7RҰeM4:F .@KMS5'BFvYP(dF 0fdLel YuCQ>6ı9_Nz9aSqްIvzGAb *rE`EbصAHs$%Bcڈ _Äxnq;<װ Cq gӦ2QA|)BUtGK! ?諰Cʥ1/dXz@xpWVΟ+tm.=( \Ԣ1ML k822Ƿ"ue,b 8'~ t  )A !+䠯d HDrɿ!W}W %MU@J jbIHo @eI>ĮS}/ps#5a 9g5>J!w"EWJ:5tʤr׸7\}Z"I`i{!+KqBTn ]>1]gGV#)g<]q_uwr@I~+Nh3n4y5MkQηm-y젃FߞژXj:Ѹ*dXiޑz✯5>d$ ַh*2:K.H☴AgdY5ĉVڒC[ |$te/E( R*)L̬F#c8SG*i'wG:ax7J ̕r-{whI3] ܁OduOP]!"OC'I^|RJsga=Id-ϗK ?T*[9Vkκ 2 o~xe`92JGrFrl7Iٯ1R{. i/`}Wc"A½krE8Î)ljawDj;Vd8vi@왜y"3ਟ>)ld%Xs(~2\mg1vfQvX_sm?7z% 7&k3hv0p ɽf3H9< >)ImS>>ie>3Yt< esx6J-Eٵ)SǛ5n"01%cҷ_=49H'բuI =y?>L١ ;= u}2O>L ;5(5΢9ߢ Gސ,am1FV{j"ijc/QI}h LZ^N$0S5UP6U3`3\tu΂:|_5}q2EO~(N]B- MT^J .e/LOH $K6Qr25ex6]n#qz5Ui|E\`?o,ΈwLt7fC~kSy e+3f\H޳(-v3ua9e`s޲7mCd[UO fK TW1n# 5Ė$;lk=KKXtW%.A{ Jj?jY5i=b<#H}x/!j<iD6 .0F| sE!D¾L>vq9͡T5&{ˍ`4aiQa_,F|8[V ތP;3<5Z)3]ŰqβJ7bLӎF=/R62 +̈GأvvR4Ly|$'98$e{ӬDEs(nڹy7mӚ!Pr{ n R}YEe+A5Hœ4oJ௔. FwΞwU~ALoYH%~@vA@%FG!8 i. <6hg=a۷Ƒz_;TX i@&u6l` HSWtA@L$%=:UW8?JtΉyp[Ejb@kQtdٲj|}-nIx|nt(9 SݸYRN2s<[Nle^Ⱦa{ca[J|&㳶mb 4u}p4Pe8v-pC) OLB hpD I}W {|> r0@ *1#z~ߎ qkgaڽ,43k{we37U 3HPVu/bAr *l5W R59oq;y E0t.R&Ih'Q'~J7WْEi Xǧ,G*4f`]o%jzoZM\WafC(n/bxj &?HEq@>═՛N~ƒ@qfl(f5xX\=c("|4rIwFw;0?ǽyQ Wݾ \A'۠=$9ѹ몇4Nj)BK}:F;'F,XEMU0y Bľ3n8vUbp tsݒ-un%uA@P>Qog BHف -HZa1fu]>r>;HC@Gʮ *:2۫!`oY8`O'G\—kX5Sz4h-S95Y.:дX5qAPJk_RVfLa<brݳCR-?Tx_#k'.M p;xaܮ%!WtphCg*:71_˖ y[KŶ9!BKS/`ܣN%80D[kIZAIʊ9, :oocGN.=Ϝ:K<&B4T{OC=63ՏH-NJvy^O2!ݙF^p_/7LJb#Ρ>$ÉZHI5k9D)@kBq7-vѫyţ>ѯ'c;Gkf#'] "l.WQIautpz5;VYPܲ2S ۤG@_"qcGxV:؅ɶVdrk)c_b!,]Rfq=>f"$绊P.)>rq3PǸkzt|Qf+>r~7G2!:e$Svhsܿ~=-մHz~go2ZAUǯ+C|"~5ѫg7ԑ+kRx3T>kN%jm-h) oZCvY'NH4Kw6t۷ЖmUY7?s=>ؚj}+$Hc2\^`h(di# ~GӁA#Jf'_ {*J ShU>r+|٥LD0b΋>7㼑R' t:?hxt' p@!G953q:;u28m;c,w|i'Ҏ-4 dґ&M&8A\X N}AFW 4){. >'ْe s0wc(nL-0y0:BZ"õr:x|)tRq9`I4s)sѡWSi,\0D^<CR9Н We2#:_| x\Ū/Y- (-gblqٴ+g(ve- ЦmLuX &Hc HDݶ> ҚDmLx2Yx5)Jl#C:yUqpOuw%"=ܱ$Gщfl`;qBSmgth*h؜ ǩğ4>5c5P4cH9,QYS ESG mǏn-hV$TP@7Ao(OiNd`wzk݇~/a8Ʃ}Iz#Z|T墨@媾Ok,>c('ZPslk؀7~Y5t'T12݅nB\9K'*W'/Qa(9(4-Ʃm#t)j[tO-J3zcN1SWU~TXsUq**=lQ a`"hͅުړD ;,3UwL͵fl#Hokcb[#\0rG HӺŐqrkW8u`I}̗1p|83UoAzt` ~p>_GgXҢ*桳2pwc* #V=[uN%ɴ脜66&8_^ HM!s|P?4j =zJ.&$c85zDko d1;/qWaŻ͇~W('&+Ȧt&3Ywvڕ: x8Ozn:(@7A# j?8{"7r;h7V'ssž=X`z;@(_џ є(ojكW2ė/$sH=C< oDFSH#{Kz&E ._E*>4&A*{0 E)HeD*kRfDB8J >HUr$<5_nb! oEvH] ){&U 86Edf6l6ۖ84eOdS03XMh&vR eW [9E=}ݥH|x, /pPC]bk|awl-NCZlL x"ET)>N^Ƨpj$P [EŻgtFJӛNw=Mpնc*%kxue{EFhѦ_W[Ll\FqӪD0ɾxJgx3NFb p{M] §_ b]pėr ɔnsQlK73Y+^=.i31zRĖ @+Xp֚Ƈ(CnbC<|4JsM;F%\ݰ胴ת9DReSX(/Y_*rwÕ5QP.,&y>sv3ߔ?|Zl$LdPd@--S\ڦYM%)Nځߪʛ ~gaνiV F=m˷V5m Y?aSdܹ^Zn>*u'QWBdW)VO_}F`7Ġ0vmVXť_C* o:oA 5 UF_L_iz̓4;J+Lyj+ԗx^IR wfWBT(1RAXx0#q{6.`au ]k^3LHK9Ƒp⫕ǰhgD&[}(6qO{+Ş9b "*E08߳ +%}dA%Ul`͚O1B}}e } &x@tӪl'&n>(&PŪl̀3\YPoɞKFwЧfI [0ӊj$~%5Ve:~ O] xz4D1x4i311*:ɧ*]}^I JWwD@t~ 4q9ZhoܫQULє;q"J4_uy&/jhSL[:\E3^n^u8L5Pu* u0;qbWK)}]Y03v3?qj Vf7EmW- ]iX,8dC$8mei \7 о!=/-@H胚໰~ Z,~9PzXuhk8|-!8&kiK6"΀7'Q_M-{CE'(P2Ik8^l8pO#byNݤfI;*l艙u\ETus <*fAXATY[LEt 'ME4׽}u xQ3T W9WI59,Ҳ2/b%[7 Y1\K8êHYύ^{Gcw;蛎`W5^(ܛ~/HT k ,2nWY?yFn myg4u!,-UgHV.TԛCߢz#U"3v)M:A~ec@=ΒX#^Q4"VKA@ MES>m԰9xi[i}XҷSr?",t|Y!/>AVc j)Hj G&sp[oWMaFY dk!õ4M(, 3yT925)xf0K<&B X7, Z0u:)i4[d!ф DG1 )e!ޙK`; ӻv@|C0{~Tzq.'a8{ K-Z5΋鐞XQ0Uv N!q;M#bTVJz"3\7ےRϤe㽩  Zv{>Çػ],#sNяv'5^1Bk#i^r p$ P?| n$oX*_ZtĊo=Roa63PPNjc$c8X{K, )\C~Ok{ub%MVt)ʞbܚX(lΟ3? ll :MF,ϻ-q}^7L-fs`94E#=T^~'3eRĦZstlxjtumT@ fx+W֦v,XmbPRG*.ƀQQV)13.\0(gq!-6*VE(ogF1AWK?YMn\s6u-]&"WhW?r3L!P9馭ۥ_`8IxMKsT](-fZ'ܥG289 E͐8c?l ,g\_by,:ÈRMx)ױ7|hN2'iOv~л^k*q3чs K]1`-ߩFoi:fjvc'g\8pՉt. &^6^l#_܀|;l;MZtfDJYJqmX{4!#P9 y4˓u؜@{Nq.m¥#;`+>zKzx:`WFv2z0ͣ%51ŀ勨r.i#-٘RiηƓCy==p8UC* 5l KH( -Nz,&>|L0oJIJHLHA}ajv{j8xŠ]oX&i,/.5TP6ʾ70]R(kG˺:_`YX+S>.?Ġ+Ҁa=u:PO-.8KXdTJUp^%CL }uHeRHb8aVk6qcir[qYBT8F=Btu+{MbXP|f KŸ?&|Z0TqV _qߪX &7 (l#D7w[ d1RfćkQѮUo+ӌ,7%vv *嘹L#`NBXa|FZW{'.ssPS"]< 1A 4an1}$P\|e,jH'f8"AuDZAc%rnK@ƷVVO쐕.(m~ R̐҈c}2`2C8-<#BoW2NOSEƹ ;ipƐOء:m5۔sx;T %]e! ̇PߗH-f8r6 K;<ɼy)PBdyjjƍԴ`e'B%Vdb.$beg\Ѩɧ4cTDoݐ 2 _5OwZ4d WUG }oOK"& +wҁK^F^s؛0!wβT5£*Ft''0Ap4v^JK~fw\͎`>!@4{3~`V{5X Zr #k,XAK2)3Jibv<#%n:CM@L^zvCy]Cfj3|F S e]d/ Ql O4^NOٞ%og$$ǂ~^&S;x_ڕt5wU"|_મܛ _cX~asU˦gym1&ɞMѽϡ(>ٳjK{0b¦Oyp--kT_94N?tLn#Tu2J !Fz$ٕtp ^&d 9 -G8\ը]|+){:CY<9Y\Ѵ79-h]V|5?;-e'2Ok)(6kZjH:`c쒔B@L:xnX:+V8䩩ma[rnׇn\zOkashgX3?E IbgtHjQ n=]c$.Fڬr6}5}/]Ӝ>=X6u)?:YR"is ]>0^-.jL R (c9C2 ;Z7 7Q×}U 8Y{1 b9 }\FD#=!avߺT'[4gOdr ؗ_JԈGU汒o1E\Y[S;u&8+$T DvhԔ!ػWc; y\1&!b_ߎ=M+hLEӸ IP~iyng 1U6N1dو VLIȽ$9k결p H| S6prMyIMc<s2ĉnkq^l.q^yYwPn_䍼. yMf]&.ep:1eE>I3 ؐ퀦VD$3}&Cޞ5BsjGߊC:=Ip~wCclx!'Zq)@9VaN~^Lj9+<:%T(v۟Xﬞ.dsg4.Q1˞1MbA /] p`&>%_NMU(+:j (3cޫ\DaY~)Lu^( јr>3%H=Rs0Fc ʱ]JFtJTΊ"J%O} e-\pzjkR|-&3F7O^3I3= Gh%(XVLtK;mƔb姦*VxW冇G0̢Eޭ\p(@rȦ Гf!zm{Zݴ/_5u6OBl~$LFz>_~qui] ,[|E'/``@<{;SRz}jG%ql5rl]dR:g0I4V6~kO*QpZˤjAh;AC^iЦ;pGTP"Y{4$an bu2"/B[9@N0)%)s: -^I_ҁ Y ` `YԽD`[!v|בyp]%=*xVnVM,s9ihe4 ˽"lS`ӆmA*!lh:08r?O%3uoS# t5/OK@fUGfmįo *S"݃&B=%do6µhD'ɂiB 8 0a湦"b&χ &?0yN{qF݈Ht4 *6ꊧ]M! P:[6Ts4j\ϴ߅B&!ڪ=(""J p/lZ=F.n0 w;Jҭ0H0gKˤJ(2p6UX1xSowI}{~>Mn@.gmgɽU 8nxЈA ptu4kw[v}-XT(O^s EVis7Oڏz2.i[]̓f@ig 0q5JH4yQa1\iZ!'[+%z; mɓ < Wk,q/ɖ]3x4+ v=ˍlٿ-#|-`N7+7<qsxqwLN[Yf}K,=ƾ% HE]4!h;KO}8+Ԁ3=0cliQd{J"RD)/!v.zUa&6n#TR{[#`BF5aZ Ɣy."Zߌ|m௬`5\HDCtѮ>d0FHIu*ku"{iu#_{¸P 9 r>'Y $#j_jc(L.bm$Yr612] Pj9p*2,~>͘ 2zL ]V8B'>P44[ÑhCsP̾ q0]$4V&)%AR%0 /Ε'/8m%-y$eȶv׼Ӻ:^,wpb2ۮ Ο7XΘK 7,v+# n! \E/eg\s`@%ifV:wꥐ.ݯB;k^QSBd=#\L8CFVX-;o.:$]d> DC+v<^gMakgD ݋2G_K} Ъ`=-7` =2!CQCݢTʭA+{%EFU13VUu$kBƢ:&-V F~p2v]|Xjz0&܁,Hrۿ J`ӏTMA8-$cTgn/|ꙪƄf'\O-~~Z*~5ssF TN ͩB~}CYx/F:(#fOR 4x o"i4@8)AzBjBzS5hח[NtElAO)M3 Rh~%w WFd5>ӭmu ]ƗSzo NHET uEJ@wp=碵A'4r Se;8S-Rc6Ǣ"AP@YV=fbXoZLF_wB?XwG)zbvdK2.m4k8nnԬEXe'rȜJ&tg/ڻzљ>;?rAi`H^lb3zmvu 7iN`}>ճ|fYB:\icQ]c5bo&""5~ chw!Z- gX|n4z$>14wFWUt'waIq!WӘf ?%D܆ t/T@o#!Ѿohv6BͺXor!=55|Uai8)I!'˄nCbIf{#c\,aU~p-] kkV*ZYe6ΕLša.h83-TynjV b%3*O>~1}Zw 3ZtIy%5_5ZDזQ ѨGm/ex>Wp}FmL20)'*և3V:$k #G>95̜$.RVcb1[,yb6ܣ•R7 BNX̑N#h-S]]!A1]TPL3_#rKeWaG'Y җx9~jU~xy@6нӡ h'ƀ"{Τ SJ<';$pP=;]nD!&TJfcdq.m5O j~d[eCuqs)` x 8㊠nc1mBNMHd8?hMztގHbxhKGB)Z4l}^u:o5lSa Eh.DXQ\O[pEOo*Pu-n yxba Fj@fDZ3RKH$i$f =+6XݭƐD{@?GH+2<ܻ =ۊ-?al-&L Jo9:p ]uUn4=a 𘖊:jX`Zw^:c$a/WFt2@?Ck5FJrā*zbE0͗l觖VQԪ·%T%q0 g."Nd-˖ oRhq@`Z!t Y7sāt Դ\~ ; ۘVnPy"瓘^*Al Ddf?٫>毠fA ϛZo]Qq' (s.r֩ 62&7: LPd*"#,`68fVs9w -:7e%H,wXc~IΒPO۾B:=vJ)|>ð-gW%A[0'Y^ m-]QHY#Q:Fep=jrsA!tTiϗ8d DUbb2 qp32FpʂXzN(o̹AxioZ$v&$ev.;i9`PQ0jNā'b1b1(A#&5.?TaؓF!ڕ3Gdigb[! &N$BjKuqj\<7A?#Q3kIUh/5u''ͦ˟gKeW_z'۪Da>B KbC8U-+IJBqXV̺Z,vDĹT0mJE\eL'^T!d^ j Ls~CzHPt$:p`W<$sEqQOL2DНԐP˧]jI| W TrOtXmL7V冘R \T!>rrR#Yؖip BEduSxWe"̘8Ք ݔ5ca|9OwWk~]70\,%9K[D>Zv"ʽ{4Juc?.B&y|$Ӕ)i4NpzгQԞ߼|@0Vݲ46: [+yS¬k~: ,0n2Ă@7hMڸK^7dN̊ vʹuNgwz+,cʄP~"EI *}VSF( Va[:틜tl u8G$5cGE${d7^_6b\- *vᰭ|L7*'PੌO<*Gt_@VKN;5댽byeaE~zPۅ(%#78mGaUayckQs*ssw"HP_㋳hRd–( xR~=$]d}ѻO\!U! qx?WD;^H"䧇ӏi71SJ֌=טQi[kG"IӡtloZg\~m# ^/e }ׁdx,aQds+V?}2)” K #慄S5*)FKݖ|@jF"/>-R}j3Rn\9ĈH@E=κ!YJR:y=_{ukt 8Z(0{0J0{LA"O]x:Ir?]NVJI3Z #xQ?:HQ0I DEdQV`_բ1vm|ҿզ@}3ΛN䠴_g‹3E2mz@,vyw}]k7 7dGM.CE7)X]P<]I\Rħ\>Zޅ= /R1*f'[ǐZtZOnr_ b$l^- UEp7-MDF.v'$3/5:dF<횇"9L@jؽ qT]sV,NbSX>֧ 4X/ Q#֢b5ަ"T켪~eƾBc \U-1gR-SaFIjxB? ד }1xs>9-'Ch{톏]cOŮaNk-t @BX6mujbJ4&Y!<xOi6˵Cli]4F9 $D@,B+WwB6bDfFPU\rl?^!Pml0mp9-<>:a^xǪ1bĆeFP%}&< 9$ cئ+ +W(@Ϊ N}i3I[Bz~Ӷ厎gD3v2͑BŊ \}E~| +n~s !]ݍ >ЛpUC@s_ b-(}]iNԏƽ ~^XahRYttnNSqz 08 XHۍغtgW[Q :U=uzts-7"VAM9 ob~U_ase=%(T aQMW;9z'&Dhae/ !d /b}:&d n̓qܟeIp쾺E}ͱTc8R.-JEA"DU}1ۑ"J|Y_:Şe0I4kLi*\v %qS5`G[JAo; TqK87:8fѵ %k =^~e*[iVI5$KQ:% Q9Oo!b?vM3?vFGE6emW"5M_Lp-JMo?u&ksڿYUPvQ+Ǔ|ǑT84N v~=Sx8lHeπqtmIqbKz9Yo u4.A#s,R5HH.<0J0_a4%h#14ru C~!drp)dH{˷CX\2w wIrC^ Iׁ[1l!=B^mTb IEyn1VWSK:vz5=3 yr2k}a<\DFw78uXφa0#=;2Ќ]2Z~ZpA{ q_ԏ{"n%.=vya5Xᄕ(:W5Jll4*uvmcEl~>1)e~[}^KkMAqhCѧj7s{F~O#$NY ΢9w2*&e~D,-qxR'X3é0XCGڃ e?b]I"l(? PGO=fm+BwH6FC!cZ$i3;%Oe ct&!D&t[¢p5R6D͐(#dg)M̈́BtD25rR.<Dt點FTS`#o1P5\)0S/k<>h8yʉN.bX|T9moN!ԥXg'g>Papj-tQM<a9ׂm~|,5 Ңr-,7D/Pf(8SPIMթCĽd׈w~J Q v[EGgm晾Mj#ގpIy/E"~0VPɈET[P24oC>BB,)ur4㠱"w &[k{6<FDK}bPxe>[ $ pXoJH7TkMOO 4$bXN¯uBsȣ^Ū]0.2Zk@K=25wډXhd1tEJXvP04g DpCI5$5y )yfl~Ii(NNtވz,^vhʥևKYMvJKϼumqI|J/G>cH+U:uё+zblQxq6V D.I)Low`2@|OFƧ]_lP yB*r"aK\qT5(_kĢa\=;gsO7 a}"l`Pp¤PgcyyPw?\м!7UQ5n@DKM UPLzØ|B[kѐ9+S0$/u6c~[O a2 ]KJ!!8ܾ_]G.0?SNH+a;oYδwla%dwe`pѧn  ;/R{ IfKR+aiې|%Kl%5'+.s=_\hv$!8!P@ y>O S۴?.LsżDSma_] N c[fL$䨸Mp"ĒDXGK7eo66uJ/.uYqkN2irJw1(k:*FQ8 {Lp{_f>x`zhQW ƺ~M:LE#-!TIM683Q8h~ 5ڈҀ^3 8U_嚼.TMFscKO)%] )6#zs,r|7ͩ\L #aV/MGSN ?Řr*`bWAE:=ǹ-5K(ԮL}43aζz/ZQEIPL] hI]-C~c<|z[cݒQì4\%<7八}H'm^-6jH4q7g`cŎпz} E=,]uo9:_htxU7whjv≼wG}]V(%> DQ[eÆ>MÁ2YwyP%XZnWO ?a%D{d뀠/0^R[eQFX\PD0gT^m0޹6Jsxm!F|Tx3㣣%!GUѰمS}b~mȓHi/(dy}8 \xxLKXwj3Vn"%aA=hD!PxT; 0CϤohD ,wh38Wy8o[-[??ą G(?aipD@\#eWpQi|_+n/g#91Savw//ϕ>X޸J4zo%;`DRdl8wmoR).{ B_@֘<ܑQ8S'dm j.Y[e&EY-+ `:ӼrX9YqR6A'}zN@;{-a>"R:oE΢!znQ8e|J;s*!؉bJA3DM>S) !'@B,N@,ݘ!͉mi?sJ%QR{81fV{gdV*~V]=)wPf| A@#ZFhHoSMuQM*dFBm pԏ=lKqP<:&rK+1':LH$XŖJaer)2^2!e_Yc U%{4s;Y9H,/n)\,mA^gU?907cر1Q5@Q5lovU|'fb|ux饌27P*xxǏ4z(U–5v`'Bg4.9m9Ð<ӡ0Lݯ{Y,B6k, o7$m,Xϴ9P3 <%/dvOM_|\#x)L/mg^B?7h>%jJ\zڏVvAwͼW (b8-~*79l̾|IHc2~|=z⍎O@s9H9J|6m{"OnmxQt |Z8^"PO)2͟~E_nQz1=iU農\V*"ӼyhpQXTB&zoL0ҩovQǚ knٴ -)чcEFI_9>qC^ZhG>[Qlz93,෩o<D09 jI鎧 6ӭF3뿟,w'hݚMN9:l^hs}iz< 0ՂiW.I3HiϢb6AEI:fR ?\R*=OՐMg2f-%y^f(eYf36χfr^1hƧKHb3 |(Zhwx=y|QNxW 5x#EլO kmZ糓?3J)0=$ӻ]_"ĒE:7”k[`/q]=-xcAQᭆeXf}heʤ}&жĘx}16yF$g\5#:mj)-ޮu`cFc;XHpeJ5Db;5snRHQ_[a{e>9*/"dYˋkv'OYmnuxekKeّ= &}U&'l=ro2!۫sdǭ,9#U 3zy 3KʋzXo~[>UPMPT8^MxRvi`ݽ!B21^5^3 ,N]|W1㔳xRe8tt=0N֮5TS(:d~$*DA$3o(2}οdwȊ&U9}dU:3}y^W ŁDN'[]Omo]Wqϥw4 Y)3<@,yr%p R nDOPeDd6@eIl ݀.,/1l;nП)zҳc9-*oQZrWe5аxj+/Vwt?^>A7bu1J6Gf- hc0p 3p'l{lM/ˠ*<ص:ozC&ΡaB ^KZ}7G#fա~6 10K]p笡Z (MrD}9T$$taAT"ED kN4QG5`2+rvMߦJ7x|RHs"c:&?$}xs|#vI}֙3vď.K<ط \#;,'Ǧﻄ^w8a"a t6vÊqSy :Rwˣ>M;RSSN6ysψl `lvVĵwؑ3{?EX81ADId!v-S{=jqҸ %Z55<HaE JtyYu-ʪbWF7Ic+3=!aZaՒ_A>*.f%3녉xX75kNn "1@$^-$2[`C0{r6MHeۑo\N-8Cj}1B/ܥh xZ@oPqj9-Qti-z+{c`xl۔(wr(Œ M̰Q:#Ph9KP>M6ܨ=b"Hu7/CN9$|o]_;9YޣFYGdkAqL PtݕXWL 0 卌Y/rNfܼ ;n]ߞ?I 6Dj4:`Je:=RtA3U~VZ҄vG7h6Ժ۱.=1!\ h\5|ng o+g J!ږKAL#eD<~rqƷ'Pe"@)l)~F;F'.{Gw{_U@\Un6arwNr:ߏl{Ubp駳H# w`UuSVP}y#],0$mN7(񠭙 J1E3ZՔGz]kޫZWmr WjMܙ8v<=57@c;dq:yoIoG00UW A 6wh}xC٦J.@NeTCe!XgDG+9%Y"S[öI&%0]?,1.P Tw!?gƯT:؃j wAM2j{&Y L[+ ,"*s/=V$ +0M|ZSȇ`K;BDt.o\ P6]$愩%'䬎Z$Hp4*֊0b'8m)*܉ j@fD"a5yw n٘JQ%%|vʽ"囂VdDʈ)N{Wh9^ۤN,|/Mu,o-@Ij0[CvLظH5/Y׋HCQvJL9c[V,Hft(9 .m' mpʆ.I[by)rNA&440mM<f4otس:DyQul bvIf E).|R7TzC5C=V&>䲈׼ϑzl[ˉ,3ik0B5%+&5 8:3ŏ⻹[),@DKBc#$,7pcQU#Ϥ蚷hŤh ģUM!_QtNrGIc03Zk'̤žZ&PT*)ؕ!뷌IMAT[]=0ya_ B|ШFV]'B1~Zzp>G%9 A'6:Zƅ]Dmt$b,OR +dHȬ>sR5XkqQ o#뾇rQ*MTqbŌt\btfW!«YjCf3'=6_&9pdCJ!s+;GC V \sl4<ߢ KP@f2UKfٚ,&pw,.с d4:~"Oֳſ$޺2ini_N>肅W|J5DFct?ћd_O\b7W a >cԀeHJџ(hi*{yO{ mN/gF*e Dq{I&'\Y01]yaRDJ9MJ^Dׄ潡t enDgVlBc .:N4F,_N!W8۠v_Buj${:|ɕ|VG譴ݭEh2kjdT5Q@9˻qvZ*_%t)b.') wL4B^NjzBR-YzY4w/Pv ;L|Ff.4;qYWqw4/@wDKksU- {M~b %PnSZFJ`D*9~6.׭=͡wUo%H^Џ[siqW74iQayHƜYQϕ>.EVK "dz <_JsRurqFi>rA'.*m7:[yiP dnY:cRP5t hpsb9Pˎ絍W,ګ oq.ذ(eM.` C ݴ?Eh@^}%w͇T VE[n;Q8"w3%UZG.5atkm3qtΑ;H9W hdX %E 7y z`bwhnT,K9GˠAsSwStQuaԖYN4 _H"@ڽ?oX'p$Š;2[Kq"n;h&Rf0]e'в֝yjcEwTVW-FQƻ6j2]b;%_aU/\DὈn(}^ ޙvLtpAE,c]Bv^,0ǧo| }6HFa uxv3^st`6A$q;G٬rdfrZt>yvy[\ 9_(}r<* y6Q%ޅSzuOH; oC+yGAB,l 2 Yئ7\6?n/iu{ pILeS!B)0x(9invsW %$FHl7+z9jxҔQ{Zޝ g*Í:3 W`OnU'6\b T$ry.Zhdwc_ih8"̅ړ\ޱʽ/"jpoI2_lOU݋?%d̈́zvmbi\ _Z0^P\Á:78p_ 8k =$>v3+3֬3 ;X4"P@:a̻gͪ>SB]Aܤ1sh$֮N ]lCRBz 4 ZB>"H☵GrK ;Fzh>6Q-A㒓Y9UׅYKq+gTrK1 xJȾJ=5/G·&/?(!{^tsPՊ32;{1d;y w1!|"^Ah:]aC~Cu&5 %s7{Ut$}j^j)[܈%ߝ'4Gtz3y&|{7hZܝ1pS2,>b 93G aOhN_D<_>*D;x%%/HsߑtVo=b!jR._rcSE;;oLˈ{@LSr(/SZ͈̮^Ȍ7|V3"6Dn-/9<!3ZG7Q!hcByHTފ؆\_gu &>@0(Aϡ93[7?䠩jensM@bP׮/p9؞*$%M0M$ 3؋bzw*֮ywD0BU2\v#RP2fwLAe?dDonZ7C2@D^.{ 1bg0ش3MS:.{xXL(}y|B6`W/Mf|MZ&qY G.e{_@ODfLI/}A7ۦ0[AQ\5ɶ!FaI~tl6׶~?rf8Zh6Hϩ&! hHSs"O=+E8dj7#%'+)fWjE\)֮͆CV6g|*D;_0`>DjR@^תwC5w0L!-acDکzq.*T= zY&/b.JU{σm0,j5pEJЧl_cPt=6ئNIl^! -dBWn/d؝tJn? {5`@z(DOH3jԢ`sU<lsǾkbI\rNL+*)JG"乨i#ѕS4 kLRB6(Y&Wlݫ-zw?WLytJ5)IZ&$/#|2U:u. f68Y[⾌z \̛ 11be&kE Yg'# t2w}hnFaإ8<kWV**k-jzⷤrk[~zKiq& x>L2ctUkYVzSgEHa8n|lK%4CצiNo6a i[߮g |;!↢r;m 0B^A-l jp4h~|ΗYYw@$O`I#mnwk3L.2i(T$.vf!uu–cmS+f-}jh[?EW_ ^7R _#sgR KX%†擁)ڑn\cd^\dB\q" y?H!? ˋ7U,w2;tF:q-%npߠ>m4HU{TCj4 A+$37ݥuni;ͅ6^IwGP3?T[P~+PM]@4Z~QlA%ʓr\'hEV)굓J %.P @BK&lOnD+<┠7m҃K8*e*t*Ӱ5vlYMȾXj%>ed Mc!6UfreMZ0u3'w۰Թ|pA(u79;>b.6BJ}J{G'KRuHZjfbLZt9t[' fwŚ͂~wr2B8;Ty V8Call'b=F[ܗ$At>GvhXq;Gz;{Bw֐n@ഋ< ~!@cϪ oޟ(Q@ϏlpJu|̦~P̈&`[bCĴIٍ=_%Ț1MfN׋33\ࢻOiJ1}Qi-Ö|_R+<A u߉|,!:@wpg~W0 ;/.ZOaO]+㜗9* k[+Jj5NacD^H U|6QL? s@+ ݙ 9evp_s@4O}i ?:/X"5 O7=h 75ק̡AAAN_q0?X~֧y>536$m9[=JNKW!;q 7|$Z@t4UtتRUPVP7kz,!S9hj>OKۿPJ䳅~ 7sL(z؟Gd:0:߽`'f8Y&'d%z$5.;}Q$V$1 At5N:J13wE}FͳUZJ\՘Q9w_#@ 4aȴB[7`u㡟Ay1+Q†B#6RB8N H?]y20a{8.lc WN{r!(iVa%TXMlޝrC |JOM%а0cŽ KD9c?dW͌0v+\yV}wlƤ5ǀX'ܙy2d: z=H>ׅ㯜2@(8] h,gⷰvjd(q)T`]o|avC :T?²ئ}nAбK9rRέư:pvEdWАa=,;*ƽByeru^4P Y͓:wV tV'{zɇcʂ9ZKM4, ؏X5KG.qp¢nj njRĨJ-0ߕШ/s@>񩥤/Q!%$i9􂹬M`MT):<2ZL':ݢhDY^2ۡxrg-gNI̓XsS|eΆWa àIX} O:!Y,3Vzn SZ㙲22dZ$.R;Xi+n (X\FY!-MCL7_`lڐ(Ӯ`ٻAT=~ KH='Zk"BUh~w%IZ D>㜾y93o*;}[Ռz2i5]BŜ ]옼9 eMI#!Իz9 .<|Q){y%|x )ݤы&' $%he*8N! 8VD6=p2֏&6ڑ=% NZG}O3qEAա#S+a.BmfX%EFM:v-< ӣu. cjdpl5$!),Ϧ$@^n}Gb8]T{dsPg|C1(e٬ ]p<.|>r3qTP~oG0+MZ >M~3=:BSs\ץ>B^ !0 5m~I& <ۆ"^v٣Om;Z^IQ*p8 )@O$!\U!Zh8f?B )ի} ,i-d#]^:Kld>nt`hc_5z\%Z S!meD&ܦsff͵Yl 1UEMTy-e-Y%TSI4S0iLFs wa("BщY_CGe9ۨO&eGTu.; Ծg4tY0'^PqrDR,&`xrWAc O`2| !VQ"Qz _!!I~183dPioD]Fn<3L e<Cg )^m͏+h^ M:פ &UҼq.']}_2^Ow\7lj`T/f-8RC%2XEmsFOJ"ӡ9hs>軉2lbr{sD %N!zzZoS{]N*$ ɞW;r)[q=4gM78? {~jos8tķ>@ .#VNu qlIp(2[+W4!CVD?}i \Iop\ΩHfv&f̹Hg՚6/6uqIlgc|D*Ïȡ(y;s{]:P)X@.]}E3lԻGjIuh5"Bn >7y'ZgJC`uXMXv@ؖ MJ>S[?M%^rp˵SL$DpZ .lR)b{AS㦷j˙[l})V_2GrYJ9KTJ`׭1UbVj6=鑑e 2a[1Ǥa!!x}^1B*3Pq~hRHR+ҬC9u?-\@O?0 #/Cfnw<[jQ Q<'3cf~c%iX&M^^K^) Y q1UsO'4C iJw4%P{sm[6pp֪N_6.f&&ҍ7?}:{Wp'̺R.nk2fH >W)GvQ5tЁaOwɡr Z2p} M`@0<6ZUʅM{䬜ECY缚t4M cݴ#쾯b>| c!,Ź$8^mY9122.W>dae}2yDFgD242vӅZcT%*J]M}>Y5hxsSXa݃F& g{7ޜmuU[a6ony[!" x-/@P΄p6X4Ak m[m s@L$YHiB-.o(a7ǒvL>+ObkCȍJ !3m9UfLϨfc,iIZ- ldD]>E|zed1LZsvAMO:w# H6f_#TUD@; !ta#(2%UYhn1/ [C`* r*7 ըϦSV–NO&5'h>/Gސ{(l&(ދ ٤od'\'av %Us|=C}G}͂V9dhd-5‘)xɑkk~扂kkRc{f|1 @ #M<q\a.!5}VX)W6Ojn$Vz%U$ƀwe򞆏wvO9^qITF ɭ^.\bѺ;Owm,x{$G 96/F!%h=t9<_D$cn8'xGvc HW %en%Ą\;s "\2 |J8b ˽:G:};t1b6`;"a3؏*֟tҳ6_^HLFə9Y lw(8E6lQ/]յڗ6ID;Ty$ߴATzԅ2^(뙷m.EON=A:8*/8Ih)8H ط=CV0lŶq>mvz9,cDm ׻>_?hfspf8&HG%ӱ|@pqʽV=gցh* )pi!9\3^ȀS@Z) 5Nxvnvt,ޡ֪c %&J͉Y\Q=}Kѝe#_ :1ȆCR ^*CS0yYQ/|vD "-Ԩ"zw^\J'k'Ӌ{x,jL)PoA 嚀70nPjQx#PHDsN /_f#``\p)u܁.oΏiW,vЩ``$J}ogϮMwT5zL_cQǞs8J5%\h4= jS=Ap$taaSU ʵk V2ӶuMYb̛P"'[ ՛oy~Sk',Cva 'aD\'7ɖ( VG{&Y/tR%ux o+YHT +9.x(LPD,gcHD^4WJ摂zI/$r"ƿ{G+TnȪ:!=SNk Q M;ج` d#rpK)SOt)u^ YefXeDh](͗J7}׈;W@yJ*ަ9D+4IIy1JWK%9FȀy"q?_:PNJIg QD`h聻պ`hE'E@/+^UMJTxӿϵqQVDEa6WwN89aAN{Z/z(IVJp(?x*)o[ 8}YE LdA=Mziy(\)/O#W>ݛrA i Ygrg y;w_xNQ~] ry4.F"mvTRGrFTn:- WN@'M:.>/nkkq|w\Q(༄iZq(' $GuT8@6>eHڡAٙf5͝[/ĨOJhGio(ߛ>vN#\U$ݷ:KC:n[W^lfm.3) j.yG-U=D. 5_SB:cLUwCx}~ZԼBrv}› "+ *P,'!$tV.kCڵH|9LdI4$Wq߮[m]U v9Bho]#Aü-nH:t+vҧo?`]ઙ ._ȭmTW\6,ꏼOG%6b ~p)CɄFQT`XwھJ{tjn;P1rAɕ3LUG܋$O,ogݳDS RWEΣ΁ !>F"/Ao5wWvb?T+r9l{6rN)R? a߶G捈{<z5lNk˜~3i$p U;mS̟4-1C7kY(c `7rxk^ipRæ(݇؃rD^ _EGe,^<)F'yA6>| } ׫B*Ď-V$@}&btϴ.[ּ]sAԯ/b%ZjYQۏv-1iJK[>xʂ -Yjp(~MU>k=CP3XMd&oq>&pI럀a#S}BK%vEMmj|Ւ f`EQvb3 2cp7AO4B%!v-;+NKϱ > X:=GKz! "0!׬>B!4LݭHY$s_o,i#QŧZRBNNMDb¢V [i'yz1Pw) JB9uH 4J`'C8~_;>әacrc/!7j%mmaBK3t#.X ecUA*nEps \