From 333fa3d8e09c2e3d84580bc07654e7c68a31f19d Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Tue, 21 Nov 2023 08:59:09 +0100 Subject: [PATCH] Import libde265_1.0.13-1.debian.tar.xz [dgit import tarball libde265 1.0.13-1 libde265_1.0.13-1.debian.tar.xz] --- .gitlab-ci.yml | 3 + changelog | 204 +++++++++++ clean | 3 + control | 60 ++++ copyright | 170 +++++++++ gbp.conf | 2 + libde265-0.install | 1 + libde265-0.symbols | 76 ++++ libde265-dev.docs | 1 + libde265-dev.install | 3 + libde265-examples.install | 1 + not-installed | 2 + patches/disable_tools.patch | 19 + patches/only_export_decoder_api.patch | 285 +++++++++++++++ patches/recycle_sps_if_possible.patch | 340 ++++++++++++++++++ ...ct_reference_pics_from_different_sps.patch | 54 +++ patches/series | 5 + patches/use_sps_from_the_image.patch | 62 ++++ rules | 20 ++ source/format | 1 + source/include-binaries | 1 + tests/control | 3 + tests/test-decode | 23 ++ tests/tree.h265 | Bin 0 -> 122475 bytes upstream/metadata | 4 + watch | 4 + 26 files changed, 1347 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 changelog create mode 100644 clean create mode 100644 control create mode 100644 copyright create mode 100644 gbp.conf create mode 100644 libde265-0.install create mode 100644 libde265-0.symbols create mode 100644 libde265-dev.docs create mode 100644 libde265-dev.install create mode 100644 libde265-examples.install create mode 100644 not-installed create mode 100644 patches/disable_tools.patch create mode 100644 patches/only_export_decoder_api.patch create mode 100644 patches/recycle_sps_if_possible.patch create mode 100644 patches/reject_reference_pics_from_different_sps.patch create mode 100644 patches/series create mode 100644 patches/use_sps_from_the_image.patch create mode 100755 rules create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 tests/control create mode 100755 tests/test-decode create mode 100644 tests/tree.h265 create mode 100644 upstream/metadata create mode 100644 watch diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2b1e2ef --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,3 @@ +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml + diff --git a/changelog b/changelog new file mode 100644 index 0000000..2390280 --- /dev/null +++ b/changelog @@ -0,0 +1,204 @@ +libde265 (1.0.13-1) unstable; urgency=medium + + * New upstream version 1.0.13 + * Fixes CVE-2023-47471 (Closes: #1056187), CVE-2023-43887. + * Update patches for new upstream version. + * d/control: Upstream switched examples to SDL2 (Closes: #1038097). + * Update symbols for new upstream version. + + -- Joachim Bauch Tue, 21 Nov 2023 08:59:09 +0100 + +libde265 (1.0.12-2) unstable; urgency=medium + + * Team upload + * Clean Makefiles (Closes: #1047354) + + [ Vladimir Petko ] + * add libde265 decoder smoke test (Closes: #1052214) + + -- Bastian Germann Tue, 19 Sep 2023 08:20:11 +0000 + +libde265 (1.0.12-1) unstable; urgency=medium + + * New upstream version 1.0.12 + * Fixes CVE-2023-27102, CVE-2023-27103 + + -- Joachim Bauch Tue, 20 Jun 2023 09:10:00 +0200 + +libde265 (1.0.11-1) unstable; urgency=medium + + [ Tobias Frost ] + * Make my patch less noisy. + + [ Joachim Bauch ] + * New upstream version 1.0.11 + * Unpackaged upstream version 1.0.10 fixes the following CVEs, most caused + by the same underlying issue: + CVE-2020-21594, CVE-2020-21595, CVE-2020-21596, CVE-2020-21597, + CVE-2020-21598, CVE-2020-21599, CVE-2020-21600, CVE-2020-21601, + CVE-2020-21602, CVE-2020-21603, CVE-2020-21604, CVE-2020-21605, + CVE-2020-21606, CVE-2022-1253, CVE-2022-43236, CVE-2022-43237, + CVE-2022-43238, CVE-2022-43239, CVE-2022-43240, CVE-2022-43241, + CVE-2022-43242, CVE-2022-43243, CVE-2022-43244, CVE-2022-43245, + CVE-2022-43248, CVE-2022-43249, CVE-2022-43250, CVE-2022-43252, + CVE-2022-43253, CVE-2022-47655 + * Remove patch applied upstream. + * Update patches for new upstream version. + * Remove copyright entry for file no longer present in upstream. + * Update symbols for new upstream version. + * Bump "Standards-Version" to 4.6.2 + + -- Joachim Bauch Thu, 02 Feb 2023 16:06:20 +0100 + +libde265 (1.0.9-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Apply patches to mitigate asan failures: + reject_reference_pics_from_different_sps.patch and + use_sps_from_the_image.patch. + * Combined, this two patches fixes: + - CVE-2022-43243, CVE-2022-43248, CVE-2022-43253 (Closes: #1025816) + - CVE-2022-43235, CVE-2022-43236, CVE-2022-43237, CVE-2022-43238, + CVE-2022-43239, CVE-2022-43240, CVE-2022-43241, CVE-2022-43242, + CVE-2022-43244, CVE-2022-43250, CVE-2022-43252 (Closes: #1027179) + - CVE-2022-47655 + * Additional patch recycle_sps_if_possible.patch to avoid over-rejecting + valid video streams due to reject_reference_pics_from_different_sps.patch. + * Modifying past changelog entries to indicate when vulnerabilities were + fixed: + - In 1.0.9-1, in total 11 CVE's. see #1004963 and #1014999 + - In 1.0.3-1, 1 CVE, see #1029396 + * drop unused Build-Depends: libjpeg-dev, libpng-dev and libxv-dev + (Closes: #981260) + + -- Tobias Frost Sun, 22 Jan 2023 13:19:20 +0100 + +libde265 (1.0.9-1) unstable; urgency=medium + + * Add "Rules-Requires-Root: no". + * New upstream version 1.0.9. + Bisecting shows that this version fixed this CVES: + - CVE-2020-21598, CVE-2020-21600, CVE-2020-21602 (Closes: #1004963) + - CVE-2020-21595, CVE-2020-21597, CVE-2020-21599, CVE-2020-21601, + CVE-2020-21603, CVE-2020-21604, CVE-2020-21605, CVE-2020-21606 + (Closes: #1014999) + * Remove patches now part of upstream release. + * Bump "Standards-Version" to 4.6.1 + * Add patch to provide "gl_VISIBILITY" macro. + * Update symbols for new upstream version. + + -- Joachim Bauch Tue, 25 Oct 2022 10:15:37 +0200 + +libde265 (1.0.8-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Import upstream fixes for CVE-tracked vulnerabilities + (Closes: #1014977) + - CVE-2022-1253 + - CVE-2021-36411 + - CVE-2021-36410 + - CVE-2021-36409 + - CVE-2021-36408 + - CVE-2021-35452 + + -- Philipp Kern Sun, 16 Oct 2022 15:26:20 +0200 + +libde265 (1.0.8-1) unstable; urgency=medium + + * Update to debhelper compat level 13 and add debian/not-installed + * Imported Upstream version 1.0.8 + * Remove patch applied upstream. + * Bump "Standards-Version" to 4.5.1 + + -- Joachim Bauch Wed, 16 Dec 2020 16:32:29 +0100 + +libde265 (1.0.7-1) unstable; urgency=medium + + [ Debian Janitor ] + * Set upstream metadata fields: Bug-Submit. + + [ Joachim Bauch ] + * Imported Upstream version 1.0.7 + * Update patches for new upstream version. + * Update symbols for new upstream version. + * Bump "Standards-Version" to 4.5.0 + + -- Joachim Bauch Fri, 25 Sep 2020 13:00:59 +0200 + +libde265 (1.0.4-1) unstable; urgency=medium + + [ Ondřej Nový ] + * Use debhelper-compat instead of debian/compat + + [ Joachim Bauch ] + * Imported Upstream version 1.0.4 + * Enable hardening. + * Specify Build-Depends-Package in symbols. + * Ignore more internal STL symbols. + * Bump "Standards-Version" to 4.4.1 + * Update to debhelper compat level 12. + + [ Debian Janitor ] + * Set upstream metadata fields: Bug-Database, Repository, Repository- + Browse. + + [ Sebastian Ramacher ] + * debian/rules: Remove obsolete dh_strip override + + -- Joachim Bauch Fri, 20 Dec 2019 12:17:15 +0100 + +libde265 (1.0.3-1) unstable; urgency=medium + + [ Ondřej Nový ] + * d/copyright: Use https protocol in Format field + * d/control: Set Vcs-* to salsa.debian.org + + [ Felipe Sateler ] + * Change maintainer address to debian-multimedia@lists.debian.org + + [ Joachim Bauch ] + * Imported Upstream version 1.0.3 + This version fixes CVE-2020-21594. (Closes: #1029396) + * Update patches for new upstream version. + * Update symbols for new upstream version. + * Update standards version and switch to debhelper 10. + + -- Joachim Bauch Thu, 19 Apr 2018 11:44:40 +0200 + +libde265 (1.0.2-2) unstable; urgency=low + + [ Joachim Bauch ] + * Added patch by Andreas Cadhalpun to fix compilation with FFmpeg 2.9 + (Closes: #803834) + * Updated symbols file for new C++11 symbols. + + [ Sebastian Ramacher ] + * Migrate to automatic dbg packages. + * debian/control: Remove some unnecessary Build-Depends. + + -- Joachim Bauch Mon, 11 Jan 2016 19:12:19 +0100 + +libde265 (1.0.2-1) unstable; urgency=low + + * Imported Upstream version 1.0.2 + * Added new files to copyright information. + * Only export decoder API and update symbols for new version. + + -- Joachim Bauch Thu, 16 Jul 2015 11:07:46 +0200 + +libde265 (0.9-1) unstable; urgency=low + + * Updated symbols to make all "std::vector" symbols optional. + * Imported Upstream version 0.9 + * Removed deprecated patch to update symbols visibility. Changes were + applied upstream. + * Upstream supports compiling against Qt5, prefer that over Qt4. + * Added new symbols from new upstream release. + + -- Joachim Bauch Tue, 16 Sep 2014 18:47:14 +0200 + +libde265 (0.8-1) unstable; urgency=low + + * Initial release. (Closes: #744190) + + -- Joachim Bauch Fri, 08 Aug 2014 17:23:37 +0200 diff --git a/clean b/clean new file mode 100644 index 0000000..ceffb41 --- /dev/null +++ b/clean @@ -0,0 +1,3 @@ +acceleration-speed/Makefile +enc265/Makefile +tools/Makefile diff --git a/control b/control new file mode 100644 index 0000000..2c1cc29 --- /dev/null +++ b/control @@ -0,0 +1,60 @@ +Source: libde265 +Section: libs +Priority: optional +Maintainer: Debian Multimedia Maintainers +Uploaders: + Alessio Treglia , + Joachim Bauch +Build-Depends: + debhelper-compat (= 13), + qtbase5-dev | libqt4-dev, + libsdl2-dev, + libswscale-dev, + libx11-dev, + libxext-dev, + pkg-config +Rules-Requires-Root: no +Standards-Version: 4.6.2 +Homepage: https://github.com/strukturag/libde265 +Vcs-Git: https://salsa.debian.org/multimedia-team/libde265.git +Vcs-Browser: https://salsa.debian.org/multimedia-team/libde265 + +Package: libde265-0 +Architecture: any +Multi-Arch: same +Depends: + ${misc:Depends}, + ${shlibs:Depends} +Description: Open H.265 video codec implementation + libde265 is an open source implementation of the H.265 video codec. + It is written from scratch in plain C for simplicity and efficiency. + Its simple API makes it easy to integrate it into other software. + +Package: libde265-dev +Section: libdevel +Multi-Arch: same +Architecture: any +Depends: + libde265-0 (= ${binary:Version}), + ${misc:Depends} +Description: Open H.265 video codec implementation - development files + libde265 is an open source implementation of the H.265 video codec. + It is written from scratch in plain C for simplicity and efficiency. + Its simple API makes it easy to integrate it into other software. + . + The development headers for compiling programs that use libde265 + are provided by this package. + +Package: libde265-examples +Section: video +Architecture: any +Depends: + libde265-0 (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Description: Open H.265 video codec implementation - examples + libde265 is an open source implementation of the H.265 video codec. + It is written from scratch in plain C for simplicity and efficiency. + Its simple API makes it easy to integrate it into other software. + . + Sample applications using libde265 are provided by this package. diff --git a/copyright b/copyright new file mode 100644 index 0000000..091f5f7 --- /dev/null +++ b/copyright @@ -0,0 +1,170 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libde265 +Upstream-Contact: struktur AG +Source: https://github.com/strukturag/libde265 + +Files: * +Copyright: + 2013-2014 struktur AG, Dirk Farin + 2013 openHEVC contributors +License: LGPL-3+ + +Files: dec265/dec265.cc + dec265/hdrcopy.cc + dec265/sdl.cc + dec265/sdl.hh + enc265/enc265.cc + sherlock265/VideoDecoder.cc + sherlock265/VideoDecoder.hh + sherlock265/VideoPlayer.cc + sherlock265/VideoPlayer.hh + sherlock265/VideoWidget.cc + sherlock265/VideoWidget.hh + sherlock265/sherlock265.cc + tools/bjoentegaard.cc + tools/block-rate-estim.cc + tools/gen-entropy-table.cc + tools/rd-curves.cc + tools/tests.cc + tools/yuv-distortion.cc +Copyright: + 2013-2014 struktur AG, Dirk Farin + 2013-2014 struktur AG, Joachim Bauch + 1998-2013 Free Software Foundation, Inc +License: GPL-3+ +Comment: Please note that only the sample applications are GPL-3+ while + the decoding library itself is licensed as LGPL-3+. + +Files: extra/getopt.c + extra/getopt.h + extra/getopt_long.c +Copyright: 1987-1996 The Regents of the University of California +License: BSD-4-clause + +Files: libde265/md5.cc + libde265/md5.h +Copyright: No copyright holder +License: public-domain-1 + This software was written by Alexander Peslyak in 2001. No copyright is + claimed, and the software is hereby placed in the public domain. + In case this attempt to disclaim copyright and place the software in the + public domain is deemed null and void, then the software is + Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + general public under the following terms: + . + Redistribution and use in source and binary forms, with or without + modification, are permitted. + . + There's ABSOLUTELY NO WARRANTY, express or implied. + . + (This is a heavily cut-down "BSD license".) + . + This differs from Colin Plumb's older public domain implementation in that + no exactly 32-bit integer data type is required (any 32-bit or wider + unsigned integer data type will do), there's no compile-time endianness + configuration, and the function prototypes match OpenSSL's. No code from + Colin Plumb's implementation has been reused; this comment merely compares + the properties of the two independent implementations. + . + The primary goals of this implementation are portability and ease of use. + It is meant to be fast, but not as fast as possible. Some known + optimizations are not included to reduce source code size and avoid + compile-time configuration. + +Files: extra/win32cond.c + extra/win32cond.h +Copyright: + 1993-2009 Douglas C. Schmidt and his research group at + Washington University, University of California, Irvine, and + Vanderbilt University +License: other-1 + ACE(TM), TAO(TM), CIAO(TM), DAnCE>(TM), and CoSMIC(TM) (henceforth + referred to as "DOC software") are copyrighted by Douglas C. Schmidt + and his research group at Washington University, University of California, + Irvine, and Vanderbilt University, Copyright (c) 1993-2009, all rights + reserved. + . + Since DOC software is open-source, freely available software, you are free + to use, modify, copy, and distribute--perpetually and irrevocably--the DOC + software source code and object code produced from the source, as well as + copy and distribute modified versions of this software. You must, however, + include this copyright statement along with any code built using DOC + software that you release. + . + No copyright statement needs to be provided if you just ship binary + executables of your software products. + . + See "Strategies for Implementing POSIX Condition Variables on Win32" at + http://www.cs.wustl.edu/~schmidt/win32-cv-1.html + +Files: debian/* +Copyright: + 2014-2023 Joachim Bauch + 2014 Alessio Treglia +License: LGPL-3+ + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + On Debian systems the complete text of the GNU General Public License + can be found in the `/usr/share/common-licenses/GPL-3' file. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +License: LGPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + On Debian systems the complete text of the GNU Lesser General Public + License can be found in the `/usr/share/common-licenses/LGPL-3' file. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +License: BSD-4-clause + Copyright (c) 1987, 1993, 1994 + The Regents of the University of California. All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..cec628c --- /dev/null +++ b/gbp.conf @@ -0,0 +1,2 @@ +[DEFAULT] +pristine-tar = True diff --git a/libde265-0.install b/libde265-0.install new file mode 100644 index 0000000..3de3b10 --- /dev/null +++ b/libde265-0.install @@ -0,0 +1 @@ +usr/lib/*/*.so.* diff --git a/libde265-0.symbols b/libde265-0.symbols new file mode 100644 index 0000000..3dec241 --- /dev/null +++ b/libde265-0.symbols @@ -0,0 +1,76 @@ +libde265.so.0 libde265-0 #MINVER# +* Build-Depends-Package: libde265-dev + (optional|c++|regex)"^std::_Sp_counted_base<.*@Base$" 1.0.2 + (optional|c++|regex)"^std::_Sp_counted_ptr<.*@Base$" 1.0.3 + (optional|c++|regex)"^std::_Sp_make_shared_tag.*@Base$" 1.0.4 + (optional|c++|regex)"^std::__cxx11::basic_stringbuf<.*@Base$" 1.0.2 + (optional|c++|regex)"^std::vector<.*@Base$" 1.0.2 + (optional|c++|regex)"^typeinfo for std::.*@Base$" 1.0.2 + (optional|c++|regex)"^typeinfo name for std::.*@Base$" 1.0.2 + (optional|c++|regex)"^void std::vector<.*@Base$" 1.0.2 + (optional=only used internally by dec265|c++)"MSE(unsigned char const*, int, unsigned char const*, int, int, int)@Base" 1.0.2 + (optional=only used internally by dec265|c++)"PSNR(double)@Base" 1.0.2 + (optional=only used by the non-final encoder api)de265_alloc_image_plane@Base 1.0.2 + de265_change_framerate@Base 0.8 + de265_decode@Base 0.8 + de265_decode_data@Base 0.8 + de265_disable_logging@Base 0.8 + de265_flush_data@Base 0.8 + de265_free@Base 0.8 + de265_free_decoder@Base 0.8 + (optional=only used by the non-final encoder api)de265_free_image_plane@Base 1.0.2 + de265_get_bits_per_pixel@Base 1.0.2 + de265_get_chroma_format@Base 0.8 + de265_get_current_TID@Base 0.8 + de265_get_default_image_allocation_functions@Base 0.8 + de265_get_error_text@Base 0.8 + de265_get_highest_TID@Base 0.8 + de265_get_image_NAL_header@Base 0.8 + de265_get_image_PTS@Base 0.8 + de265_get_image_colour_primaries@Base 1.0.7 + de265_get_image_full_range_flag@Base 1.0.7 + de265_get_image_height@Base 0.8 + de265_get_image_matrix_coefficients@Base 1.0.7 + de265_get_image_plane@Base 0.8 + de265_get_image_plane_user_data@Base 0.8 + de265_get_image_transfer_characteristics@Base 1.0.7 + de265_get_image_user_data@Base 0.8 + de265_get_image_width@Base 0.8 + de265_get_next_picture@Base 0.8 + de265_get_number_of_NAL_units_pending@Base 0.8 + de265_get_number_of_input_bytes_pending@Base 0.8 + de265_get_parameter_bool@Base 0.8 + de265_get_version@Base 0.8 + de265_get_version_number@Base 0.8 + de265_get_version_number_maintenance@Base 1.0.2 + de265_get_version_number_major@Base 1.0.2 + de265_get_version_number_minor@Base 1.0.2 + de265_get_warning@Base 0.8 + de265_init@Base 0.8 + de265_isOK@Base 0.8 + de265_new_decoder@Base 0.8 + de265_peek_next_picture@Base 0.8 + de265_push_NAL@Base 0.8 + de265_push_data@Base 0.8 + de265_push_end_of_NAL@Base 0.8 + de265_push_end_of_frame@Base 0.9 + de265_release_next_picture@Base 0.8 + de265_reset@Base 0.8 + de265_set_framerate_ratio@Base 0.8 + de265_set_image_allocation_functions@Base 0.8 + de265_set_image_plane@Base 0.8 + de265_set_image_user_data@Base 0.9 + de265_set_limit_TID@Base 0.8 + de265_set_parameter_bool@Base 0.8 + de265_set_parameter_int@Base 0.8 + de265_set_verbosity@Base 0.8 + de265_start_worker_threads@Base 0.8 + (optional=only used internally by sherlock265)draw_CB_grid@Base 0.8 + (optional=only used internally by sherlock265)draw_Motion@Base 0.8 + (optional=only used internally by sherlock265)draw_PB_grid@Base 0.8 + (optional=only used internally by sherlock265)draw_PB_pred_modes@Base 0.8 + (optional=only used internally by sherlock265)draw_QuantPY@Base 0.8 + (optional=only used internally by sherlock265)draw_Slices@Base 0.8 + (optional=only used internally by sherlock265)draw_TB_grid@Base 0.8 + (optional=only used internally by sherlock265)draw_Tiles@Base 0.8 + (optional=only used internally by sherlock265)draw_intra_pred_modes@Base 0.8 diff --git a/libde265-dev.docs b/libde265-dev.docs new file mode 100644 index 0000000..b43bf86 --- /dev/null +++ b/libde265-dev.docs @@ -0,0 +1 @@ +README.md diff --git a/libde265-dev.install b/libde265-dev.install new file mode 100644 index 0000000..60fe5cb --- /dev/null +++ b/libde265-dev.install @@ -0,0 +1,3 @@ +usr/include/* +usr/lib/*/*.so +usr/lib/*/pkgconfig/* diff --git a/libde265-examples.install b/libde265-examples.install new file mode 100644 index 0000000..1df36c6 --- /dev/null +++ b/libde265-examples.install @@ -0,0 +1 @@ +usr/bin/* diff --git a/not-installed b/not-installed new file mode 100644 index 0000000..86d06e2 --- /dev/null +++ b/not-installed @@ -0,0 +1,2 @@ +usr/lib/*/libde265.a +usr/lib/*/libde265.la diff --git a/patches/disable_tools.patch b/patches/disable_tools.patch new file mode 100644 index 0000000..a2016bc --- /dev/null +++ b/patches/disable_tools.patch @@ -0,0 +1,19 @@ +Description: Disable building of some internal tools that no longer link + because internal symbols are no longer exported. +Author: Joachim Bauch +--- a/Makefile.am ++++ b/Makefile.am +@@ -8,13 +8,6 @@ + SUBDIRS+=dec265 + endif + +-if ENABLE_ENCODER +-SUBDIRS+=enc265 +-endif +- +-SUBDIRS+=tools +-SUBDIRS+=acceleration-speed +- + if ENABLE_SHERLOCK265 + SUBDIRS+=sherlock265 + endif diff --git a/patches/only_export_decoder_api.patch b/patches/only_export_decoder_api.patch new file mode 100644 index 0000000..53b25ce --- /dev/null +++ b/patches/only_export_decoder_api.patch @@ -0,0 +1,285 @@ +Description: Only export symbols defined in the decoder API. + The encoder API is not final yet, so upstream exports all symbols to make + development easier. For packaging we only want to expose the public API. +Author: Joachim Bauch +--- a/libde265/encoder/Makefile.am ++++ b/libde265/encoder/Makefile.am +@@ -12,6 +12,18 @@ + encpicbuf.h encpicbuf.cc \ + sop.h sop.cc + ++libde265_encoder_la_CFLAGS = \ ++ $(CFLAG_VISIBILITY) \ ++ -DLIBDE265_EXPORTS ++libde265_encoder_la_CXXFLAGS += \ ++ $(CFLAG_VISIBILITY) \ ++ -DLIBDE265_EXPORTS ++ ++if HAVE_VISIBILITY ++ libde265_encoder_la_CFLAGS += -DHAVE_VISIBILITY ++ libde265_encoder_la_CXXFLAGS += -DHAVE_VISIBILITY ++endif ++ + SUBDIRS=algo + libde265_encoder_la_LIBADD = algo/libde265_encoder_algo.la + +--- a/libde265/encoder/algo/Makefile.am ++++ b/libde265/encoder/algo/Makefile.am +@@ -17,5 +17,13 @@ + tb-rateestim.h tb-rateestim.cc \ + pb-mv.h pb-mv.cc + ++libde265_encoder_algo_la_CXXFLAGS += \ ++ $(CFLAG_VISIBILITY) \ ++ -DLIBDE265_EXPORTS ++ ++if HAVE_VISIBILITY ++ libde265_encoder_algo_la_CXXFLAGS += -DHAVE_VISIBILITY ++endif ++ + EXTRA_DIST = \ + CMakeLists.txt +--- a/configure.ac ++++ b/configure.ac +@@ -56,9 +56,7 @@ + fi + changequote([,])dnl + +-dnl gl_VISIBILITY +-dnl : In encoder branch, we still export all library symbols : +-HAVE_VISIBILITY=0 ++gl_VISIBILITY + AM_CONDITIONAL([HAVE_VISIBILITY], [test "x$HAVE_VISIBILITY" != "x0"]) + + # Checks for header files. +--- a/libde265/image-io.cc ++++ b/libde265/image-io.cc +@@ -186,7 +186,7 @@ + } + + +-LIBDE265_API PacketSink_File::~PacketSink_File() ++PacketSink_File::~PacketSink_File() + { + if (mFH) { + fclose(mFH); +@@ -194,7 +194,7 @@ + } + + +-LIBDE265_API void PacketSink_File::set_filename(const char* filename) ++void PacketSink_File::set_filename(const char* filename) + { + assert(mFH==NULL); + +@@ -202,7 +202,7 @@ + } + + +-LIBDE265_API void PacketSink_File::send_packet(const uint8_t* data, int n) ++void PacketSink_File::send_packet(const uint8_t* data, int n) + { + uint8_t startCode[3]; + startCode[0] = 0; +--- a/libde265/image-io.h ++++ b/libde265/image-io.h +@@ -30,17 +30,17 @@ + class ImageSource + { + public: +- LIBDE265_API ImageSource(); +- virtual LIBDE265_API ~ImageSource() { } ++ ImageSource(); ++ virtual ~ImageSource() { } + + //enum ImageStatus { Available, Waiting, EndOfVideo }; + + //virtual ImageStatus get_status() = 0; +- virtual LIBDE265_API de265_image* get_image(bool block=true) = 0; +- virtual LIBDE265_API void skip_frames(int n) = 0; ++ virtual de265_image* get_image(bool block=true) = 0; ++ virtual void skip_frames(int n) = 0; + +- virtual LIBDE265_API int get_width() const = 0; +- virtual LIBDE265_API int get_height() const = 0; ++ virtual int get_width() const = 0; ++ virtual int get_height() const = 0; + }; + + +@@ -48,17 +48,17 @@ + class ImageSource_YUV : public ImageSource + { + public: +- LIBDE265_API ImageSource_YUV(); +- virtual LIBDE265_API ~ImageSource_YUV(); ++ ImageSource_YUV(); ++ virtual ~ImageSource_YUV(); + +- bool LIBDE265_API set_input_file(const char* filename, int w,int h); ++ bool set_input_file(const char* filename, int w,int h); + + //virtual ImageStatus get_status(); +- virtual LIBDE265_API de265_image* get_image(bool block=true); +- virtual LIBDE265_API void skip_frames(int n); ++ virtual de265_image* get_image(bool block=true); ++ virtual void skip_frames(int n); + +- virtual LIBDE265_API int get_width() const { return width; } +- virtual LIBDE265_API int get_height() const { return height; } ++ virtual int get_width() const { return width; } ++ virtual int get_height() const { return height; } + + private: + FILE* mFH; +@@ -74,20 +74,20 @@ + class ImageSink + { + public: +- virtual LIBDE265_API ~ImageSink() { } ++ virtual ~ImageSink() { } + +- virtual LIBDE265_API void send_image(const de265_image* img) = 0; ++ virtual void send_image(const de265_image* img) = 0; + }; + + class ImageSink_YUV : public ImageSink + { + public: +- LIBDE265_API ImageSink_YUV() : mFH(NULL) { } +- LIBDE265_API ~ImageSink_YUV(); ++ ImageSink_YUV() : mFH(NULL) { } ++ ~ImageSink_YUV(); + +- bool LIBDE265_API set_filename(const char* filename); ++ bool set_filename(const char* filename); + +- virtual LIBDE265_API void send_image(const de265_image* img); ++ virtual void send_image(const de265_image* img); + + private: + FILE* mFH; +@@ -98,21 +98,21 @@ + class PacketSink + { + public: +- virtual LIBDE265_API ~PacketSink() { } ++ virtual ~PacketSink() { } + +- virtual LIBDE265_API void send_packet(const uint8_t* data, int n) = 0; ++ virtual void send_packet(const uint8_t* data, int n) = 0; + }; + + + class PacketSink_File : public PacketSink + { + public: +- LIBDE265_API PacketSink_File(); +- virtual LIBDE265_API ~PacketSink_File(); ++ PacketSink_File(); ++ virtual ~PacketSink_File(); + +- LIBDE265_API void set_filename(const char* filename); ++ void set_filename(const char* filename); + +- virtual LIBDE265_API void send_packet(const uint8_t* data, int n); ++ virtual void send_packet(const uint8_t* data, int n); + + private: + FILE* mFH; +--- a/libde265/configparam.h ++++ b/libde265/configparam.h +@@ -95,7 +95,7 @@ + bool hasLongOption() const { return true; } //mLongOption!=NULL; } + std::string getLongOption() const { return mLongOption ? std::string(mLongOption) : get_name(); } + +- virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx) { return false; } ++ virtual bool processCmdLineArguments(char** argv, int* argc, int idx) { return false; } + + + +@@ -132,7 +132,7 @@ + virtual std::string get_default_string() const { return default_value ? "true":"false"; } + + virtual std::string getTypeDescr() const { return "(boolean)"; } +- virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx) { set(true); return true; } ++ virtual bool processCmdLineArguments(char** argv, int* argc, int idx) { set(true); return true; } + + bool set(bool v) { value_set=true; value=v; return true; } + +@@ -162,10 +162,10 @@ + virtual bool has_default() const { return default_set; } + + void set_default(std::string v) { default_value=v; default_set=true; } +- virtual LIBDE265_API std::string get_default_string() const { return default_value; } ++ virtual std::string get_default_string() const { return default_value; } + +- virtual LIBDE265_API std::string getTypeDescr() const { return "(string)"; } +- virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx); ++ virtual std::string getTypeDescr() const { return "(string)"; } ++ virtual bool processCmdLineArguments(char** argv, int* argc, int idx); + + bool set(std::string v) { value_set=true; value=v; return true; } + +@@ -201,10 +201,10 @@ + virtual bool has_default() const { return default_set; } + + void set_default(int v) { default_value=v; default_set=true; } +- virtual LIBDE265_API std::string get_default_string() const; ++ virtual std::string get_default_string() const; + +- virtual LIBDE265_API std::string getTypeDescr() const; +- virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx); ++ virtual std::string getTypeDescr() const; ++ virtual bool processCmdLineArguments(char** argv, int* argc, int idx); + + bool set(int v) { + if (is_valid(v)) { value_set=true; value=v; return true; } +@@ -239,7 +239,7 @@ + virtual std::vector get_choice_names() const = 0; + + virtual std::string getTypeDescr() const; +- virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx); ++ virtual bool processCmdLineArguments(char** argv, int* argc, int idx); + + const char** get_choices_string_table() const; + +@@ -368,10 +368,10 @@ + config_parameters() : param_string_table(NULL) { } + ~config_parameters() { delete[] param_string_table; } + +- void LIBDE265_API add_option(option_base* o); ++ void add_option(option_base* o); + +- void LIBDE265_API print_params() const; +- bool LIBDE265_API parse_command_line_params(int* argc, char** argv, int* first_idx=NULL, ++ void print_params() const; ++ bool parse_command_line_params(int* argc, char** argv, int* first_idx=NULL, + bool ignore_unknown_options=false); + + +--- a/libde265/quality.h ++++ b/libde265/quality.h +@@ -26,11 +26,11 @@ + #include + + +-LIBDE265_API uint32_t SSD(const uint8_t* img, int imgStride, ++uint32_t SSD(const uint8_t* img, int imgStride, + const uint8_t* ref, int refStride, + int width, int height); + +-LIBDE265_API uint32_t SAD(const uint8_t* img, int imgStride, ++uint32_t SAD(const uint8_t* img, int imgStride, + const uint8_t* ref, int refStride, + int width, int height); + +@@ -41,7 +41,7 @@ + LIBDE265_API double PSNR(double mse); + + +-LIBDE265_API uint32_t compute_distortion_ssd(const de265_image* img1, const de265_image* img2, ++uint32_t compute_distortion_ssd(const de265_image* img1, const de265_image* img2, + int x0, int y0, int log2size, int cIdx); + + #endif diff --git a/patches/recycle_sps_if_possible.patch b/patches/recycle_sps_if_possible.patch new file mode 100644 index 0000000..dda9fc7 --- /dev/null +++ b/patches/recycle_sps_if_possible.patch @@ -0,0 +1,340 @@ +Description: Don't update sps if they are only repeated +Origin: https://github.com/strukturag/libde265/pull/372 +From 51f07f132f29832e025a8b913b61cbd20257c5fc Mon Sep 17 00:00:00 2001 +From: Tobias Frost +Date: Fri, 13 Jan 2023 12:22:45 +0100 +Subject: [PATCH] Don't update sps if they are only repeated + +This is an attempt to improve the mitigations from #365 and #366 and picks up an idea I described at #345: + +> One way would be just to look at the pointers of the SPS (fast and easy, but +> may reject more than required), or investigate if the SPS used for the image +> generations are "compatible". + +This changes do exactly this: It (very conservativly) checks if the old and new sps have +identical information -- except the reference picture set, which I believe is supposed +to be updated by new sps'). If they are basically identical, the old sps will be +used instead of the new one, (of course, reference image set is updated from the new one) + +I'm using standalone operator== and helper functions to avoid changing ABI of the library; +if an ABI bump would be done, of course this should go to the respective classes. +--- + libde265/decctx.cc | 273 +++++++++++++++++++++++++++++++++++++++++++++ + libde265/sps.cc | 6 + + 2 files changed, 279 insertions(+) + +Index: libde265/libde265/decctx.cc +=================================================================== +--- libde265.orig/libde265/decctx.cc ++++ libde265/libde265/decctx.cc +@@ -546,6 +546,263 @@ de265_error decoder_context::read_vps_NA + return DE265_OK; + } + ++// implemented as freestanding functions to avoid changing API ++ ++bool operator==(const profile_data &lhs, const profile_data &rhs) { ++ if(&lhs == &rhs) return true; ++ if(lhs.profile_present_flag != rhs.profile_present_flag ) return false; ++ if(lhs.profile_present_flag) { ++ if(lhs.profile_space != rhs.profile_space ) return false; ++ if(lhs.tier_flag != rhs.tier_flag ) return false; ++ if(lhs.profile_idc != rhs.profile_idc ) return false; ++ ++ if(memcmp(lhs.profile_compatibility_flag, rhs.profile_compatibility_flag, sizeof(rhs.profile_compatibility_flag)) ) return false; ++ ++ if(lhs.progressive_source_flag != rhs.progressive_source_flag ) return false; ++ if(lhs.interlaced_source_flag != rhs.interlaced_source_flag ) return false; ++ if(lhs.non_packed_constraint_flag != rhs.non_packed_constraint_flag ) return false; ++ if(lhs.frame_only_constraint_flag != rhs.frame_only_constraint_flag ) return false; ++ } ++ ++ if(lhs.level_present_flag != rhs.level_present_flag) return false; ++ if(lhs.level_present_flag && lhs.level_idc != rhs.level_idc ) return false; ++ ++ return true; ++} ++ ++bool operator!=(const profile_data &lhs, const profile_data &rhs) { ++ if(&lhs == &rhs) return false; ++ return (!(lhs==rhs)); ++} ++ ++// class does not store max_sub_layers, so operator == cannot be done. ++bool isEqual(const profile_tier_level &lhs , const profile_tier_level &rhs, int sps_max_sub_layers ) { ++ if(&lhs == &rhs) return true; ++ ++ if(lhs.general != rhs.general ) return false; ++ for(int i = 0 ; i < sps_max_sub_layers; i++ ) { ++ if(lhs.sub_layer[i] != rhs.sub_layer[i]) return false; ++ } ++ return true; ++} ++ ++bool isEqual(const video_usability_information &lhs, const video_usability_information &rhs, const seq_parameter_set &sps) { ++ if(&lhs == &rhs) return true; ++ ++ // not seen yet if(lhs.nal_hrd_parameters_present_flag != rhs.nal_hrd_parameters_present_flag ) return false; ++ ++ // populated by video_usability_information::read() ++ if(lhs.aspect_ratio_info_present_flag != rhs.aspect_ratio_info_present_flag ) return false; ++ if(lhs.aspect_ratio_info_present_flag) { ++ if(lhs.sar_width != rhs.sar_width ) return false; ++ if(lhs.sar_height != rhs.sar_height ) return false; ++ } ++ ++ if(lhs.overscan_info_present_flag != rhs.overscan_info_present_flag ) return false; ++ if(lhs.overscan_info_present_flag) { ++ if(lhs.overscan_appropriate_flag != rhs.overscan_appropriate_flag ) return false; ++ } ++ ++ if(lhs.video_signal_type_present_flag != rhs.video_signal_type_present_flag ) return false; ++ if(lhs.video_signal_type_present_flag) { ++ if(lhs.video_format != rhs.video_format ) return false; ++ if(lhs.video_full_range_flag != rhs.video_full_range_flag) return false; ++ if(lhs.colour_description_present_flag != rhs.colour_description_present_flag) return false; ++ if(lhs.colour_primaries != rhs.colour_primaries ) return false; ++ if(lhs.transfer_characteristics != rhs.transfer_characteristics ) return false; ++ if(lhs.matrix_coeffs != rhs.matrix_coeffs ) return false; ++ } ++ ++ if(lhs.chroma_loc_info_present_flag != rhs.chroma_loc_info_present_flag ) return false; ++ if(lhs.chroma_loc_info_present_flag) { ++ if(lhs.chroma_sample_loc_type_top_field != rhs.chroma_sample_loc_type_top_field ) return false; ++ if(lhs.chroma_sample_loc_type_bottom_field != rhs.chroma_sample_loc_type_bottom_field ) return false; ++ } ++ if(lhs.neutral_chroma_indication_flag != rhs.neutral_chroma_indication_flag ) return false; ++ if(lhs.field_seq_flag != rhs.field_seq_flag ) return false; ++ if(lhs.frame_field_info_present_flag != rhs.frame_field_info_present_flag ) return false; ++ ++ if(lhs.default_display_window_flag != rhs.default_display_window_flag ) return false; ++ if(lhs.default_display_window_flag) { ++ if(lhs.def_disp_win_left_offset != rhs.def_disp_win_left_offset ) return false; ++ if(lhs.def_disp_win_right_offset != rhs.def_disp_win_right_offset ) return false; ++ if(lhs.def_disp_win_top_offset != rhs.def_disp_win_top_offset ) return false; ++ if(lhs.def_disp_win_bottom_offset != rhs.def_disp_win_bottom_offset ) return false; ++ } ++ ++ if(lhs.vui_timing_info_present_flag != rhs.vui_timing_info_present_flag ) return false; ++ if(lhs.vui_timing_info_present_flag) { ++ if(lhs.vui_num_units_in_tick != rhs.vui_num_units_in_tick ) return false; ++ if(lhs.vui_time_scale != rhs.vui_time_scale ) return false; ++ if(lhs.vui_timing_info_present_flag != rhs.vui_timing_info_present_flag ) return false; ++ if(lhs.vui_timing_info_present_flag) { ++ if(lhs.vui_num_ticks_poc_diff_one != rhs.vui_num_ticks_poc_diff_one ) return false; ++ } ++ } ++ ++ if(lhs.vui_hrd_parameters_present_flag != rhs.vui_hrd_parameters_present_flag ) return false; ++ ++ ++ if(lhs.vui_hrd_parameters_present_flag) { ++ // check things made by hrd_parametes ++ ++ if(lhs.vui_hrd_parameters_present_flag != rhs.vui_hrd_parameters_present_flag ) return false; ++ if(lhs.vcl_hrd_parameters_present_flag != rhs.vcl_hrd_parameters_present_flag ) return false; ++ ++ if(lhs.nal_hrd_parameters_present_flag || lhs.vcl_hrd_parameters_present_flag) { ++ if(lhs.sub_pic_hrd_params_present_flag != rhs.sub_pic_hrd_params_present_flag ) return false; ++ if(lhs.sub_pic_hrd_params_present_flag) { ++ if(lhs.tick_divisor_minus2 != rhs.tick_divisor_minus2 ) return false; ++ if(lhs.du_cpb_removal_delay_increment_length_minus1 != rhs.du_cpb_removal_delay_increment_length_minus1 ) return false; ++ if(lhs.sub_pic_cpb_params_in_pic_timing_sei_flag != rhs.sub_pic_cpb_params_in_pic_timing_sei_flag ) return false; ++ if(lhs.dpb_output_delay_du_length_minus1 != rhs.dpb_output_delay_du_length_minus1 ) return false; ++ } ++ if(lhs.bit_rate_scale != rhs.bit_rate_scale ) return false; ++ if(lhs.cpb_size_scale != rhs.cpb_size_scale ) return false; ++ if(lhs.sub_pic_hrd_params_present_flag) { ++ if(lhs.cpb_size_du_scale != rhs.cpb_size_du_scale ) return false; ++ } ++ if(lhs.initial_cpb_removal_delay_length_minus1 != rhs.initial_cpb_removal_delay_length_minus1 ) return false; ++ if(lhs.au_cpb_removal_delay_length_minus1 != rhs.au_cpb_removal_delay_length_minus1 ) return false; ++ if(lhs.dpb_output_delay_length_minus1 != rhs.dpb_output_delay_length_minus1 ) return false; ++ } ++ ++ int i; ++ unsigned int j, nalOrVcl; ++ ++ for (i = 0; i < sps.sps_max_sub_layers; i++) { ++ if(lhs.fixed_pic_rate_general_flag[i] != rhs.fixed_pic_rate_general_flag[i] ) return false; ++ if(lhs.fixed_pic_rate_general_flag[i]) { ++ if(lhs.elemental_duration_in_tc_minus1[i] != rhs.elemental_duration_in_tc_minus1[i] ) return false; ++ } ++ if(lhs.low_delay_hrd_flag[i] != rhs.low_delay_hrd_flag[i] ) return false; ++ if(lhs.cpb_cnt_minus1[i] != rhs.cpb_cnt_minus1[i] ) return false; ++ ++ for (nalOrVcl = 0; nalOrVcl < 2; nalOrVcl++) { ++ if (((nalOrVcl == 0) && lhs.nal_hrd_parameters_present_flag) || ((nalOrVcl == 1) && lhs.vcl_hrd_parameters_present_flag)) { ++ for (j = 0; j <= lhs.cpb_cnt_minus1[i]; j++) { ++ if(lhs.bit_rate_value_minus1[i][j][nalOrVcl] != rhs.bit_rate_value_minus1[i][j][nalOrVcl]) return false; ++ if(lhs.cpb_size_value_minus1[i][j][nalOrVcl] != rhs.cpb_size_value_minus1[i][j][nalOrVcl]) return false; ++ ++ if (lhs.sub_pic_hrd_params_present_flag) { ++ if(lhs.cpb_size_du_value_minus1[i][j][nalOrVcl] != rhs.cpb_size_du_value_minus1[i][j][nalOrVcl]) return false; ++ if(lhs.bit_rate_du_value_minus1[i][j][nalOrVcl] != rhs.bit_rate_du_value_minus1[i][j][nalOrVcl]) return false; ++ } ++ if( lhs.cbr_flag[i][j][nalOrVcl] != rhs.cbr_flag[i][j][nalOrVcl]) return false; ++ } ++ } ++ } ++ } ++ } ++ return true; ++} ++ ++bool operator==(const sps_range_extension &lhs, const sps_range_extension &rhs) { ++ if(&lhs == &rhs) return true; ++ if(lhs.transform_skip_rotation_enabled_flag != rhs.transform_skip_rotation_enabled_flag ) return false; ++ if(lhs.transform_skip_context_enabled_flag != rhs.transform_skip_context_enabled_flag ) return false; ++ if(lhs.implicit_rdpcm_enabled_flag != rhs.implicit_rdpcm_enabled_flag ) return false; ++ if(lhs.explicit_rdpcm_enabled_flag != rhs.explicit_rdpcm_enabled_flag ) return false; ++ if(lhs.extended_precision_processing_flag != rhs.extended_precision_processing_flag ) return false; ++ if(lhs.intra_smoothing_disabled_flag != rhs.intra_smoothing_disabled_flag ) return false; ++ if(lhs.high_precision_offsets_enabled_flag != rhs.high_precision_offsets_enabled_flag ) return false; ++ if(lhs.persistent_rice_adaptation_enabled_flag != rhs.persistent_rice_adaptation_enabled_flag ) return false; ++ if(lhs.cabac_bypass_alignment_enabled_flag != rhs.cabac_bypass_alignment_enabled_flag ) return false; ++ return true; ++} ++ ++bool operator!=(const sps_range_extension &lhs, const sps_range_extension &rhs) { ++ if(&lhs == &rhs) return false; ++ return !(lhs==rhs); ++} ++ ++ ++bool operator==(const seq_parameter_set &lhs, const seq_parameter_set &rhs) { ++ ++ if(&lhs== &rhs) return true; ++ ++ if(lhs.sps_read != rhs.sps_read) return false; ++ ++ if(lhs.video_parameter_set_id != rhs.video_parameter_set_id) return false; ++ if(lhs.sps_max_sub_layers != rhs.sps_max_sub_layers) return false; ++ if(lhs.sps_temporal_id_nesting_flag != rhs.sps_temporal_id_nesting_flag) return false; ++ ++ if(!isEqual(lhs.profile_tier_level_, rhs.profile_tier_level_, lhs.sps_max_sub_layers)) return false; ++ ++ if(lhs.seq_parameter_set_id != rhs.seq_parameter_set_id) return false; ++ if(lhs.chroma_format_idc != rhs.chroma_format_idc) return false; ++ ++ if(lhs.separate_colour_plane_flag != rhs.separate_colour_plane_flag) return false; ++ if(lhs.pic_width_in_luma_samples != rhs.pic_width_in_luma_samples) return false; ++ if(lhs.pic_height_in_luma_samples != rhs.pic_height_in_luma_samples) return false; ++ if(lhs.conformance_window_flag != rhs.conformance_window_flag) return false; ++ ++ if(lhs.conformance_window_flag) { ++ if(lhs.conf_win_left_offset != rhs.conf_win_left_offset) return false; ++ if(lhs.conf_win_right_offset != rhs.conf_win_right_offset) return false; ++ if(lhs.conf_win_top_offset != rhs.conf_win_top_offset) return false; ++ if(lhs.conf_win_bottom_offset != rhs.conf_win_bottom_offset) return false; ++ } ++ ++ if(lhs.bit_depth_luma != rhs.bit_depth_luma) return false; ++ if(lhs.bit_depth_chroma != rhs.bit_depth_chroma) return false; ++ ++ if(lhs.log2_max_pic_order_cnt_lsb != rhs.log2_max_pic_order_cnt_lsb) return false; ++ if(lhs.sps_sub_layer_ordering_info_present_flag != rhs.sps_sub_layer_ordering_info_present_flag) return false; ++ ++ if(memcmp(lhs.sps_max_dec_pic_buffering, rhs.sps_max_dec_pic_buffering, sizeof(rhs.sps_max_dec_pic_buffering))) return false; ++ if(memcmp(lhs.sps_max_num_reorder_pics, rhs.sps_max_num_reorder_pics, sizeof(rhs.sps_max_num_reorder_pics))) return false; ++ if(memcmp(lhs.sps_max_latency_increase_plus1, rhs.sps_max_latency_increase_plus1, sizeof(rhs.sps_max_latency_increase_plus1))) return false; ++ ++ if(lhs.log2_min_luma_coding_block_size != rhs.log2_min_luma_coding_block_size) return false; ++ if(lhs.log2_diff_max_min_luma_coding_block_size != rhs.log2_diff_max_min_luma_coding_block_size) return false; ++ if(lhs.log2_min_transform_block_size != rhs.log2_min_transform_block_size) return false; ++ if(lhs.log2_diff_max_min_transform_block_size != rhs.log2_diff_max_min_transform_block_size) return false; ++ if(lhs.max_transform_hierarchy_depth_inter != rhs.max_transform_hierarchy_depth_inter) return false; ++ if(lhs.max_transform_hierarchy_depth_intra != rhs.max_transform_hierarchy_depth_intra) return false; ++ ++ if(lhs.scaling_list_enable_flag != rhs.scaling_list_enable_flag) return false; ++ if(lhs.scaling_list_enable_flag) { ++ if(lhs.sps_scaling_list_data_present_flag != rhs.sps_scaling_list_data_present_flag) return false; ++ if(lhs.sps_scaling_list_data_present_flag) { ++ // compare only needed if present, otherwise it is the default scaling list. ++ if(memcmp(&lhs.scaling_list, &rhs.scaling_list, sizeof(rhs.scaling_list))) return false; ++ } ++ } ++ ++ if(lhs.amp_enabled_flag != rhs.amp_enabled_flag) return false; ++ if(lhs.sample_adaptive_offset_enabled_flag != rhs.sample_adaptive_offset_enabled_flag) return false; ++ if(lhs.pcm_enabled_flag != rhs.pcm_enabled_flag) return false; ++ ++ if(lhs.pcm_enabled_flag) { ++ if(lhs.pcm_sample_bit_depth_luma != rhs.pcm_sample_bit_depth_luma) return false; ++ if(lhs.pcm_sample_bit_depth_chroma != rhs.pcm_sample_bit_depth_chroma) return false; ++ if(lhs.log2_min_pcm_luma_coding_block_size != rhs.log2_min_pcm_luma_coding_block_size) return false; ++ if(lhs.log2_diff_max_min_pcm_luma_coding_block_size != rhs.log2_diff_max_min_pcm_luma_coding_block_size) return false; ++ if(lhs.pcm_loop_filter_disable_flag != rhs.pcm_loop_filter_disable_flag) return false; ++ } ++ ++ // (longterm) reference pics likely to change with a new sps, so ignored here. ++ ++ if(lhs.sps_temporal_mvp_enabled_flag != rhs.sps_temporal_mvp_enabled_flag) return false; ++ if(lhs.strong_intra_smoothing_enable_flag != rhs.strong_intra_smoothing_enable_flag) return false; ++ ++ if(lhs.vui_parameters_present_flag != rhs.vui_parameters_present_flag) return false; ++ if(lhs.vui_parameters_present_flag) { ++ if(!isEqual(lhs.vui, rhs.vui, lhs )) return false; ++ } ++ ++ if(lhs.sps_extension_present_flag != rhs.sps_extension_present_flag ) return false; ++ if(lhs.sps_extension_present_flag) { ++ if(lhs.sps_range_extension_flag != rhs.sps_range_extension_flag ) return false; ++ if(lhs.sps_multilayer_extension_flag != rhs.sps_multilayer_extension_flag ) return false; ++ if(lhs.sps_extension_6bits != rhs.sps_extension_6bits ) return false; ++ if(lhs.range_extension != rhs.range_extension) return false; ++ } ++ ++ return true; ++} ++ + de265_error decoder_context::read_sps_NAL(bitreader& reader) + { + logdebug(LogHeaders,"----> read SPS\n"); +@@ -561,6 +818,22 @@ de265_error decoder_context::read_sps_NA + new_sps->dump(param_sps_headers_fd); + } + ++ if ( sps[ new_sps->seq_parameter_set_id ] ) { ++ auto old_sps = sps[ new_sps->seq_parameter_set_id ].get(); ++ if ( *old_sps == *new_sps ) { ++ // printf(" **** keeping sps *****\n"); ++ // the new sps is identical to the old one, so no replacing needed. ++ // however, reference pics and long-term reference pics might need updating. ++ old_sps->ref_pic_sets = new_sps->ref_pic_sets; ++ old_sps->long_term_ref_pics_present_flag = new_sps->long_term_ref_pics_present_flag; ++ memcpy(old_sps->lt_ref_pic_poc_lsb_sps, new_sps->lt_ref_pic_poc_lsb_sps, sizeof(old_sps->lt_ref_pic_poc_lsb_sps)); ++ memcpy(old_sps->used_by_curr_pic_lt_sps_flag, new_sps->used_by_curr_pic_lt_sps_flag, sizeof(old_sps->used_by_curr_pic_lt_sps_flag)); ++ return DE265_OK; ++ } ++ //printf(" **** replacing sps *****\n"); ++ ++ } ++ + sps[ new_sps->seq_parameter_set_id ] = new_sps; + + // Remove the all PPS that referenced the old SPS because parameters may have changed and we do not want to +Index: libde265/libde265/sps.cc +=================================================================== +--- libde265.orig/libde265/sps.cc ++++ libde265/libde265/sps.cc +@@ -287,6 +287,11 @@ de265_error seq_parameter_set::read(erro + int firstLayer = (sps_sub_layer_ordering_info_present_flag ? + 0 : sps_max_sub_layers-1 ); + ++ // zero out so that comparing is easier. ++ memset(sps_max_dec_pic_buffering, 0 , sizeof(sps_max_dec_pic_buffering)); ++ memset(sps_max_num_reorder_pics, 0 , sizeof(sps_max_num_reorder_pics)); ++ memset(sps_max_latency_increase_plus1, 0 , sizeof(sps_max_latency_increase_plus1)); ++ + for (int i=firstLayer ; i <= sps_max_sub_layers-1; i++ ) { + + // sps_max_dec_pic_buffering[i] +@@ -347,6 +352,7 @@ de265_error seq_parameter_set::read(erro + if (sps_scaling_list_data_present_flag) { + + de265_error err; ++ memset(&scaling_list, 0 , sizeof(scaling_list)); // zero out, so that memcmp will do it to check for equality. + if ((err=read_scaling_list(br,this, &scaling_list, false)) != DE265_OK) { + return err; + } diff --git a/patches/reject_reference_pics_from_different_sps.patch b/patches/reject_reference_pics_from_different_sps.patch new file mode 100644 index 0000000..f0beac6 --- /dev/null +++ b/patches/reject_reference_pics_from_different_sps.patch @@ -0,0 +1,54 @@ +Description: Try to mitigate asan failures by rejecting reference pictures not created with the same sps. + The reference images might have different parameters (size, pixel depth, etc) and so different memory allocations, + leading to out of bound memory reads and writes. +Origin: https://github.com/strukturag/libde265/pull/365 +Comment: Analysis of issue https://github.com/strukturag/libde265/issues/345#issuecomment-1346406079 +From 97dd15303085eae2695a511717bf3239e209df96 Mon Sep 17 00:00:00 2001 +From: Tobias Frost +Date: Mon, 12 Dec 2022 14:03:12 +0100 +Subject: [PATCH] Try to mitigate asan failures. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +See #345 for my analysis and details… + +(This PR is just for discussion.) + +(The CVE references are obtained from the Debian security tracker, +which links the issues.) + +This makes the following POCs stop failing: + +- poc3 (#337) +- poc7-1 (#341) CVE-2022-43239 (note: does NOT fix poc7-2) +- poc8-2, poc8-3, poc8-4 (#342) CVE-2022-43244 (note: does NOT fix poc8-1) +- poc11-1, poc11-2 (#345) CVE-2022-43249 +- poc12 (#346) +- poc13 (#347) CVE-2022-43252 +- poc16 (#350) +--- + libde265/motion.cc | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +Index: libde265/libde265/motion.cc +=================================================================== +--- libde265.orig/libde265/motion.cc ++++ libde265/libde265/motion.cc +@@ -361,6 +361,16 @@ void generate_inter_prediction_samples(b + + logtrace(LogMotion, "refIdx: %d -> dpb[%d]\n", vi->refIdx[l], shdr->RefPicList[l][vi->refIdx[l]]); + ++ if (refPic) { ++ auto nonconst_refPic = const_cast(refPic); /* shared_ptr.get() chokes on const.*/ ++ auto refsps = nonconst_refPic->get_shared_sps().get(); ++ auto imgsps = img->get_shared_sps().get(); ++ if(refsps != imgsps) { ++ // rejecting reference image created with different sps. ++ refPic = nullptr; ++ } ++ } ++ + if (!refPic || refPic->PicState == UnusedForReference) { + img->integrity = INTEGRITY_DECODING_ERRORS; + ctx->add_warning(DE265_WARNING_NONEXISTING_REFERENCE_PICTURE_ACCESSED, false); diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..d7f7424 --- /dev/null +++ b/patches/series @@ -0,0 +1,5 @@ +only_export_decoder_api.patch +disable_tools.patch +reject_reference_pics_from_different_sps.patch +use_sps_from_the_image.patch +recycle_sps_if_possible.patch diff --git a/patches/use_sps_from_the_image.patch b/patches/use_sps_from_the_image.patch new file mode 100644 index 0000000..63bd704 --- /dev/null +++ b/patches/use_sps_from_the_image.patch @@ -0,0 +1,62 @@ +Description: Use sps of the image, not the sps of the pic parameter set (pps) + When decoding a slice, all decoding functions are using the sps of the target + image to determine the image properties, which are in the seqquence parameter + set) -- execpt generate_inter_prediction_samples(), which uses the sps from the + pps, which might have different properties and trick the decode to out-of-bound + memory accesses, leading to crashes. +Origin: https://github.com/strukturag/libde265/pull/366 +From 36391cda3d4e4fb3269a2ce310e6e0f634729f0b Mon Sep 17 00:00:00 2001 +From: Tobias Frost +Date: Mon, 12 Dec 2022 14:33:40 +0100 +Subject: [PATCH] Use the sps from the image + +(as e.g mc_chroma is using the sps to determine +picture properties, like pic_width_in_luma_samples +and pic_height_in_luma_samples, I *think* this is +more correct. + +This PR is for discussion. (See #345.) +It makes the failures go away, but that does not mean it's correct :) + +The following poc will be stop failing if (only) this +patch is applied: + + - poc2 #336 - CVE-2022-43238 + - poc4 #338 - CVE-2022-43241 + - poc6-1, poc6-2 #340 - CVE-2022-43242 + - poc7-1, poc7-2 #341 - CVE-2022-43239 + - poc8-1 #342 - CVE-2022-43244 + - poc9-3 #343 - CVE-2022-43236 + - poc10-2, poc10-3 #344 - CVE-2022-43237 + - poc16 #350 + - poc19 #353 + +The following are still failing if only this patch is +applied, but they stop failing if #365 is applied as well, but will +still fail with ONLY #365 applied (IOW, both are needed) + + - poc1 #335 - CVE-2022-43240 + - poc3 #337 - CVE-2022-43235 + - poc5 #339 - CVE-2022-43423 + - poc9-1,poc9-2, poc9-4 #343 - CVE-2022-43236 + - poc14 #348 - CVE-2022-43253 + - poc15 #349 - CVE-2022-43248 + - poc17-1, poc17-2 #351 + - poc18 #352 - CVE-2022-43245 +--- + libde265/motion.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: libde265/libde265/motion.cc +=================================================================== +--- libde265.orig/libde265/motion.cc ++++ libde265/libde265/motion.cc +@@ -290,7 +290,7 @@ void generate_inter_prediction_samples(b + int stride[3]; + + const pic_parameter_set* pps = shdr->pps.get(); +- const seq_parameter_set* sps = pps->sps.get(); ++ const seq_parameter_set* sps = img->get_shared_sps().get(); + + if (sps->BitDepth_Y != img->get_bit_depth(0) || + sps->BitDepth_C != img->get_bit_depth(1)) { diff --git a/rules b/rules new file mode 100755 index 0000000..a87ebe9 --- /dev/null +++ b/rules @@ -0,0 +1,20 @@ +#!/usr/bin/make -f +#export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ + + +override_dh_auto_test: + ./debian/tests/test-decode + dh_auto_test + +override_dh_auto_install: + dh_auto_install + cd $(CURDIR)/debian/tmp/usr/bin/ && mv dec265 libde265-dec265 + if [ -e "$(CURDIR)/debian/tmp/usr/bin/sherlock265" ]; then \ + cd $(CURDIR)/debian/tmp/usr/bin/ && mv sherlock265 \ + libde265-sherlock265; \ + fi diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 0000000..47c3d4b --- /dev/null +++ b/source/include-binaries @@ -0,0 +1 @@ +debian/tests/tree.h265 diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..63d807f --- /dev/null +++ b/tests/control @@ -0,0 +1,3 @@ +Tests: test-decode +Depends: @ +Restrictions: \ No newline at end of file diff --git a/tests/test-decode b/tests/test-decode new file mode 100755 index 0000000..99726c0 --- /dev/null +++ b/tests/test-decode @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +DECODE=/usr/bin/libde265-dec265 +if [ ! -f /usr/bin/libde265-dec265 ]; then + DECODE=./dec265/dec265 +fi + +if [ ! -f $DECODE ]; then + echo Decode utility not found + exit 1 +fi + +output=`mktemp` + +$DECODE -q -c -t 2 ./debian/tests/tree.h265 > $output 2>&1 + +if ! grep -L "nFrames decoded: 31" $output; then + echo Decoding failed + cat $output + exit 255 +fi diff --git a/tests/tree.h265 b/tests/tree.h265 new file mode 100644 index 0000000000000000000000000000000000000000..79e5e34ac2603e2fe6392e879c712e17c572f440 GIT binary patch literal 122475 zcmZ_01yEdD6E2Dbhaka&hT!h*5ZoPt3@|thFt}?VIKefzLvRo79z3|ad(b!Jod4YW zUe%*gdw2I*y>@qhU-uqJ0TdJzv^mzIo?jGc*-o|Vyz#e|iGjm?;gPfy;`&e=_0PfA>zjFpv% zjfq8HkBfuM*wRU#j0bY1XJz?&WrJKH?$S(N( z=m<0uWPgnVU}FPvWwZm?F`9tv%s`H|06UYvfjR>1fdD5)3rIRZM=%+{&JO5i{MW{nr3F z^nV5$OIu4Ph|6mNrXYuZ;b$Q;b+?1$Xu{|SDFYMB-*UcE1fr9HEzRvLEdODV6WH1k z!YjvrLVb<@uLuG6uL}f2FeC*_JD}-5JIEj^$j%l7{U-pUjOK?yakil0wFfAvoYk(22mUVb`Td%ZnFQNwsnDo1Nw(~jHb?i6$@J+ znJe(M!~UxOi2rcM4q)T%0b~S2z_YhB0h5^mjcq_C)`Bd25VQcG*P|e}zkK|62~s9V zj9{P*r0SL~5LW<5kb?{eaI|q}{96pie@X(00RTbxFNCkh{H@eq+p7iv&;|qs+W^5} z2%-Ml^a{O`qv^i~nL_vquyJyS)Y2a8{t5+Ty8KTDIs69PC$D|GGHfw6PVG}(bDO) zmH*LR#|T8Rw08tR#*H8=6NJL{#{W~;S;znmjIR(uV1Y;wl!12Ukm14l8Zd1t<4*Zn02WRs-{WUd%Hk~x_F!)FL(At^w>Fn=WtBq9i(1-W=%1xvesy#7*( z(Z$#Wg3l|eetPRM~-qF$)VuNte4r~TtC)Yn_ zTL2^mH^_pCg(Juo0D&Gtum5C5ClI7G|CeqIa&iLMLQJNX5TpR^jINe;rXbhXJvNZ$ zWnlT+oHow30Ep?e75|ECoSd(dm5uS$Vh@6h39vDwb6uP*A!87d*K0RG=GLnY8Djq^ z|Bj5m{D%y9MhAOFdwcL}ab7hD+K{e*u*>FemH)S7`})FQvj1cG`-mh6fTp$_zGhJSL{dM&fiGS@N z*T0oCg$&n!-Tw>Q$=&|7GfW^a?$@yadB7{Q0O!}4{J-!Z%>P@U|IN|=8Wapc9FoOr zd0xv3bTNSx`c(wG{4J@OB@psy0|NNp7tU+9*)jgh<=1BV4^hDD#{vjaf-L{noAO^q zGQKuG&Ea3?${6>tWGeu3}TdX@iI^Hj^Tz+$5m(~+++{P*< zi3y+mvDHL_T%u~MFmXc#{zy1P$E7q+;#R$v-fEq$P*wC>h$;^C(-c#0LhNAicj^;! zS~U?M2D?E$HZUNJQa$abE?%HXLdkwuWBnUjAEhgOWJf`3J9V99hB3CA6a3I)Bd8+; zrQxMe=Unju?!m|6FB9ThE3f zz|P@HI~IJ*=vVQ3Z<&xz zhQc!G`nT@5(4n8>Pr`Y0+GO&EahTYZaMB*)*szJ1&mO6E>@vtd7lb}hYU3O=iB9$o-invB(whj(k`u{Aj+^8CZr;*8%%-q#un7 zMg#zY(Po!Vaw4ChV0?+6aE{fUOV_*IMf-kv=^9DF?p% z@%<&Sdy;l!O9Z#-2(3p<@y4SF`6s=ptbROS8xfr!l6yBRCI`AAi6Yqn&^_flzbB`L zp*gECCB?U2w<6q;_WR<0cIXs;FFc-R<9KutHsanDa1w5zezU z$0)uM77>=RH3zY|NGqkSFkM7$l%gEjSo4RlziB{{DHHrRMa+DX=t=+lTlZR+PSUky zi|BjN*z@l zuJs=nXn(*|o=&dJk;n~|FYvbTjn$h7UcQgiEOOfvA@J>FulB0t$HiFGkAz-YfA~T| z%rR}!c6U9(yiFAlb^LZB8a}M1hXuwzMMX|qaw3usET=%a zorEudP99ce7{NG0JF7r0FX~%C6QEvXwZE6AuB~S&%cc8?IS4qWPvN2%;cWm`74}bu z8WRd+t0&Vo?Q}}_xkv(64LB=j!Z9mF<-v~=@kChgY%yLI-eJN8Rnd@Ox zk6LHt?veA{8-?}Oya67eoK*s5 zt#h+gLNF$>>f>$tbFzq5F#(SQ!AAyd0NT?9R+z1^v9XxP^SY)8smmVoiX(M?VjN~4 zUzYu<(77nB`a8|M%J6wTp6VDYzuka&3QlE%--f#%_~y)?46H zQiN1`4F&xtaqU;|A3!yUaUt;0oFdGyL`~!Z17B0dd8%?uLShJfcKG@8w#()XuS(^= zpKac1CVWYV_WMKh=(6A484FXg3?PgB(c+8qS*&E^!PRvshJd>p)kyRiSqM6Qd zhGIS}88#d4;Rv-Vj=z6REfMKG!I`dJ;fHUPI}Y1*>=xOjzLknf2H~yy=r7-%)5SSs zA2uukkS+tDh4HE{&J>4a-cbP6vx%Tzu%y~=t%mD}EQ&ihu~4~t{JXk- zRcfQ~ci?P?+zl~F{pmm}saivknP) z*A!O<({b8%Jy1kDAo8Hj=@eYYh~DxUy_|nUL7RN3OFy0`T9?E@le~>_&z9b+WWKfq zY!l?CjgrhpOYsQ>v_c^Kgu_iBh!+1XH+#xUfpTTt$G_FGQW5u-)?|&S9sVd|eP}!4 z*K*)6jm?)I(gZUp-rgWXP8Q#w%~th9KI~4;gW zU$dD)xJdoqzZG_fpnjqj3zAG#&vOeNg8j^+6pE*g7$;1Z?k3C*<+5Zm`U%uM@ryC^ zsWtJgKcIM`Ox#w=A-^T9{v|OyqV{bRy^z-KjJ`c-Onu&A7Se&3FENDPxuM^4O8oh;!b?x4)P#WO___L zg12SmHm#(lG4&>Qb5B2tJ64T?auuqu{bxocI;DCRp#4UdXD8e6nWve@?9gU95oJ0$ z*xs+J%(LRiJ*q}GE5hQ8tjgucha9=G>-TA#?6RY*L{p@N;Aj=4OYQh+lQgedgmk&M zQbV1PA0t`~QKt`E2%Pun<@&M-2Vy?oDB{xkj-RW1ozXWo>Af|N(kIr7RZ=ppPLIH< zIC)1ADQe}8jL^Ml`rS^dtXzkNd>y!cqDn~1S^isnyPj_g)4WKw$Lo!tc6IlUVOe4K zlC8uv=s?|l%UUzGZNGe%U=F~E3FoA`BC~(oc|%BR1)*|yrc6<#A7`t&W&|RR%zh)C zVOk$^eqG?4d^n%L5ju5rR#a1C?RcSaa|fjq?S0llW8=BZVf(JDOO~2NGwme1{La{) zSrtZfoB#rqNXrMli`v_}@) zX+zP|nE_0<+=dAc)LZV(7NZ5v`%*wBPisj~hQmy%-1^#RVY|6tRKM?1w3+_t+qpI7YSTx{ z`NELuq~1|I>uFV`aDJtZo-Nd9I#BGV&eSE`$fyT+29%OJJDC_B?|dvX(5;Tgzseow z3w8DhmrHP-e1-|t^k-n8m=-z<{>kW3JBoGqVExW+Ji9|F2Km@lx*nx?pklCZ4t)og zD2O>GsySzIR?!vbq}bSXABL2^QyRl11u@D&(6QoB?2H~xYQ78R{5QkRNXShmw4{@D z_pyTGS3qJev)F+1Jew`lcMG`kfoEZJ*Q)W*TGC<}3chDrVMEDr9#qdIWv*hJbx=nM zu;L&lfC+~TfeNpmQ!R;R+Pp$=QrG_n%_*8Pl^BV8;t~p|UUb~%X)(>`nAWRUKZ6Hb za5jhH#v()}ugF57F>TC@=8LNPzTmSf@wsDouWw&CqV4)liKi_tL0OVOu% z@20m7n&Oe0Nk63BB|>;yd4&0MO_>0OZyGb}BogS&K05q}8N?BAKoyk9eecEsbbl0I ztY))5KA?q78~XC4cFmwUgYCd!%30l*w4uWl^;aVAtkj;uN=fFZhLqZfS!;L~ljEAY zCsKOiMBqKT<<-&v{oV?>eRV3YMlF0L*DvQ7x#_4Tw&wa)86KK8WR?uh<0|9a^;NFn z)Nq;~jZA)HJ4f$ePrI-)^_q^ByxDP(R-pMjm-y)eiBJ6* zie{q1`Zp=)vS`YtO)FS9wkFnZoG3jHiAXwk1%hddKdOv=ZIXGDZ!#ddUwF=>H%)i& zsC^8&0JgtSxsewyzt;@NzzaMt zok8b`d~>im7-x%J#~bslrZd&5=-RNE6L3_aiF)GTIZxQn(VXJ&D+?2}|NRr2A`PxMcYf1+&Lb2BevX z7c0|fEdmR@_(=c2yNYGF289Z$i9QhuK7qvA<WIX zn9^y7J0wF4MN`3_5AZzTT;`>3BJI@z8M-Q&3xHli&L1ZqRw#d3XNkEnZPq1C6r<5T z`@wwI6+IhN9KxH4El1mIcm9xu4}Hy+#A8-jcw8#dx#p^<`jdX*aqSahVtTnsU1a^r?g zYSFk>HXS`X6co-|t+(;dm!z_i%+dSlN{3fOH%it#er5R;`o@j2%S~2>f*|b=Yzfs& zPIqTd0>ITpotPRwbgxi6(f^r#)^Ua7SBnu9hug^SeS*{etmlBTeg(m%_dux}bQ-bf zH|?QmhzXjtE8JNqNlJElCj=6jc9x!--nzS66LG_U;z44vmPq-d!Sk!2uEL5>odHzv z6eDljlA5DS+ox4ntS0pO-&A>(!l*l0;tG_2SC|15x$rtenZCNMq0dr0lgOSrCL58agNTd|To9T2 z3nl4FwQH-^Ph<)}pBw4#wgIS?rVUHVAEj?|&pP*O)3KXwN;rpNB%QQ(kuNkjuuk|p zICtwh0&2`(uY@kJTsH^v>rw_=>?747{t8BF{a}oy?!$-EgR3dTNq()RIj=8dBxzit zWz!!hN7R4%DptNX(xf!M9fXq9kGNiFG$pu6-3)99D>E3P)z~uCNn19Z-UIo61mjde zx9d3*kfhG6F7UQ*`9^ESvu8xz2P^pc!fpFKN&Viz6v1VFqo$AELbQ6i3_SZvkW9_9 zeGG&PS4$`BGbYkVnYa1*BSVc%r8JiVFVF8yC9?EZ!pz--*|jElEG+{0y-a9ZgNL-a zrfG-9(OwDZF)7T@Ce(d{KI|C`&Nrx>kuqBIy3NqjmkK~**b}>;OBa`wNQT*|b4SkX$vOo8 zz*%Uu((RqWzv4W38A-w~3^U&7yG7F!-$G%IcUjN^qrLg08dn1#{nG6Q4p)!J+Cw?N zu8YRQg6kI_>$$&E9n_KbaIR;Hd1(^utVMDT>+&KUcBicLN-=0xXmCDNaX-PAwE8Mg zY0Ww2VQhT%;Ba@^dvkUn>&p0naKY7?rjd*d$wG}t|J#ofq14RDHnCH6Y3l8ooT2!j zNC6A1KjABEn2szJ#-{F(TT}&!H%zrcM-SXn%k3_p0?hh@lf*>ba5u{gomJOU0BN2{+gpgP2|#DIHb6BhC|tN zHx7x9Q=iRkQRY=2%*_KppO3K{B27k(i}Uzc&r+DswCw9W4_AMpxXFS`uhtbk*gl~) z`MOFk-kocdk&h zZr8%2COHev==UDFRbJYUjP%4NEC1Uu_-em|9<1i@V-vSF2U(!K1cYSnPWzAL@TGq;;@~%MMMlHlSNWoG8;V zaQ3v6RYiU7VQ1aXjpboeDAyk1%%$MbWC%fZUj(&npFGtPxYAEJO1a&09^RR=Tpfuz zzBGSJ8bL+fLF*83S+$exH_s;5V=HxLA^(jI7WtK}@^WxX$Lzg)WByPlFksY-Kx#kR zV%Bu~>Gx@r9C@z0*GkE@N+Wi#>zi(jJ-kqd^=0uUl1P49SyBYaHhz7?)0SA%UF*Ns}<`l$sZ#3CF;voH}Fy z`)CaZqsL~Gf=_!&=mA5)9aqy)7oBAW-&EpM>g|-nA~t`|HrMrJs}_qe<&J#OhnDZ{ z&4ag2CWg}Z@Q#pl?~GqjcZbl$VAiUuNj`Fg2XBWVlQzpNnGl7QctB{OTWI85b|2R1 zC&QnJd!n5KyQQ#q>zw}V6!J}FcACEp`-Q2puq3$_T~_>`b_GeQmC#3l$%sBH61If7 zr6QEzuWJuN(m2pFLXV7}&Iq#M4h&5Cy0VFSu;vrnelqwie^J@W{Ok7+ z)Pu4dk)^9oM&g`lQbLfpq#&(?UqgtxXph8n^&=hqg4Kt7!{{2;R;K)d3B+!Bmdqlb z@Y$y2-$@SzvprahAErG!2|MP#%tzYpZ3cCI-KnH`v*jBzB6<;fb=Q|L`$5$zqTG)< zoZNr(=dVX2mBI`LtT}xsmM{(z$+m_lST4;*gx>2PPRw6LpfqT2{azaVPn&ptT7HA+ zc|iu;ztH#tdo@RWZda984u|!c8xX&jyNvG392Wmt$)z)?K@#=Dshdqaq|`8#BC8zb zbx*u_yOxTplzUJ9Wj3OQXXy#AWZ%xmn2Dy+W>XFUC8ux;$Afha4`Z?16CsR$S4%_d z!CsjJXL_oU5`{jD1*>%h>2Wz;(Y@?*kAJA>;*)AcS+zsuFC%*sDXTS6rmSK|sw}{VpW6VsqUMz%>wb&raP9An)w^B*rd>9%A5L({3s+6&&u$7%;!DSB}R}NpDQrC)R7(sxa!j&9`F}uh5Zd-oCOk zvr6$U5bLa$Mdh}&bjO&#PyV?P{9)Q&b!z#A>&t0k8rQAeFrheHV4V!P?0D110dW15 z!zVgg%PY@INd_VxnW+JP6_SI2e&3NeLQ?Ucp`7BNlopf3;yk#}go?h3AYcCRFUH)a zhPp|~x9%~+`X?JUazP^b=as1wB7=b?xo`MK8fp$Z!Qy==27aipNz=HAuUnd^98?)a|oVG_; zOe}=}8w8i9tH__6Xa~0K!%?M>HMzs2q7e2?+Ixzsa=kX4&(exeR@~}yMK{XgHvP;@ zR1-0|mm5<872lcZX*rU;U+%}{?FTDFB$fVE zk=i%RS(cbs&C1?#p{U~(8{mgFuYkL7&t#U(-3seDhvC-bGP1)`qoW_(6ysW7qQ%D`@mg7e!Vl1> zzMI?_eN$-KdgDWrT-iMqj(b@7;pdj3$(bi0kOQp=h}+fwBTt4vNI!ENex^W5Gc<@6 zw^8<`fcx8Nv2nVqkP{8m0wW??IPTzc6sy#1IzpOpU~_${?7bv1JFFM_HCszw4+h1j zqE56x&5KcojbVyDA#mrP-64NOI{pESApTtnUpS#`G3=oan(NAUI#O*2g$-mqm@cWTUsR3e zo5RXx!DP;KBLIIBuMYW;x)UxA6WisMnMQ*-u#p#AvcvXgV%32xx#`O{oqeYv8SA-j zmK0UOh*d83Bg}r-4x=xn+S4#Z!3-8~X`|j^)2Tx}*x@TTulR5@cIx4{kNbAC5b;P=@-l+r_ zNP~LK(b@X$?`tyV={iemv9tdaJg9^-e|oa{OlP0hD%_bn6ggv<{!Jz?wJo||o`*xv zRJNS@2*yf|^;phw9FJrtJMQW8BwQxP(&t$gGM3&mi*pNabTT;!NJ#5|)0o3FC!JVvcY0Lcu?e5wT_ zbZ+;>-uN%vnp^3u&z!uk7TTupJn9!6h$zShU}MBF-%nXgU4aId`1j)6zyyfR)(xVM z;yIU<_KLlTlAK8@3w%TS)85ko1+pWQ&e@!`v-X?W_PV-k@If)7ZSQ51;+QU+y!Lof zS(dKy(`Mtn2HC-pEhYNeLO4J*vh6U7qlwJLdHM+_%}c8y-lIXWQsirO#nGCi+g(5F zhTt|>Pqj<;3H$yZ$ic-;sp`OW1QZ%ULFxo{8SF5k8R>nVF{O2Dj2gBwzlhq{tolmI z8i)F9>0`=y-^R@$pn!eS8VNRZIcIVB)xIKnY6ybpXXS)KTK)txc?(H*Ohkf!o}}{9 ze!(d}<+yHZ(`1dHaJ>fn-xr#nu_HNjq7xcc?b;E&@*~1r;?og}YDnxh zKNNycefZ6U-p7wtv7k31kk=MlY%Z{2MYY>UzH(6co!aE8V!XGA&du=-`7|jiR{%+b zSYveEi`}tL8Enj0rc>p18>;nTSncQw;m;^MLX!rA*52!CpE+6$p(Dn`WGWj01OuB;gQ+ztg@x=gH%5qK2j@}Ck<_!1#-^q5bMz+WAtCF>iEVGnXs8kD+>G3SL{@7 znO&Cs*x18zPIO_)hKuG_<(+sLe0SX}Da2=uW~FV$AGdOy9l`&ulpJoYfgAnMQa?wi z>PSq*ObY9s^bOa^)G+6#aEGyKzLU?rr7&99U1)sLVzgIduHF7=XZvD>l;&cBbt(C5 z`kx=MLnQd|+26ngb$#*zIZ!v+PYc$%8}E8+K^HyXs@<5g`A{%i``zOYb%nDp6x+A8 z79_pDtv{a(BCbwr)!2Qo3!{L096PH$$%G55xh<}FFv3u8^%;`G6&~UWnB8&7p=99U}We7i>@Q2T*^()tN zDRFs-Z~?OFgluBp+@9M$tYDoTq_xn@Fk4U{_d&fVWio)nbi04TCBj)Yv=)c9 z&#I;*9a|>2sN57Mb7$eVl0fIpE)gj?yT$HySkL8+e5dTI+ZNQuCRawmsE=jW|wGL!aDt z%;wY_RuVK;TH^!#r>~wzW%vPk+;z7iu7}SzRd_b}Na~t*@)zirCiTZ7OqJ!&C z&T}X;?1b$10hsp~A^slRQT)zT*%&Tr0~H^fOcW}Yo7u+t$%XA3q})g>4M8>w0ft9f)uJjfu-W``{F3o#A$~0(~r!L z@ijkmHg}9Qb#euv6Fs{`3op{HTv*wzzRIdb(I?iMKN z{n0&a8%Nj9bjLTAc&~g6rGkMG(R;{7)CIkY3)26tUYXP)R(Zh8jccXqmxBiQsf{Zq zJ}!?4r7cA|iNN){fR@d+wYP%9QWN2Fsyq?k%;Us#+55(d6}^8#(z1SMCB=Y7^`>WJ z+|c?D;8v?dT9jQ)o{&pkr;LZ->C*6?z|*lIO=qJFZeu7J-k| zc41C*LlwDdg}y-x%)c2CPFygk@0S>`DqVy7a?Rw&E<@X-CNI!_=_wKCAi9i5d^ZR= z8G{Y$(Mkft?<5`Xw|g=8WxER7+e$Hrr%=Z40#&d^wv2;WF)a_~`H3ap=fdEcKDJM7 zM1p8&@})eLQj8q2zJ4eDQfGuS?VHCW1X!DFLn&AYVabFeuV(BNH0yoa%z#uAq$f3> z0{O`bMH)+Ob6iY)YT<}ejOw4{LZnr|GxGy;zV{oZbhuF*J?ok8$3(*`Ta(8kToeYk zHSVMBoWfnJ2_l~5YE8H8G9DNSc$ssEOY4S&j5^w4s({+f)o#MtG52c1=6o}Y%1TyL z(8H$CpZN6@T6W_g9o94pxU-sq{aD-J297^&8UoFltL~?}Gf*eXe;EdtDQ z3#M*==`gcT?xQYRdrVn5ZYsNv`Cd#vA)>MoOmm=Am&?v$GN%4|-<#*Yj%fel{^x4S z0{*C}&+mRlzf)sX(w<1*;NE%UhWctw-ulR_=1uEhzKUT>I;;#7loB?da@H0757sPN z-cRo8_kB~-YIuDD4#xNKMs1&Sct3#;9w!Ry*N_-PZM-RNB$MCDoTn4Y6KYK999cI> zDe>rA@}F}}RkP-ye8z%f_9zMhA_Cg=hLgxG zjyx+%#{F|??``l_BR;vB3;b}1jd4d70d-o-ciPM4qp?ktWO^~*4K8?&M-Lnu}8qSmiVOI5i9%sHqi zKr!5kt?XHrb|g|YMYHQrYim-vR^|u6rbT|2v;6fHC!8}_6)CnBd|a9x3R2{m%_Dd( zX);qNm^3rzlFyD3?Gna<`?yt;g?zxp~etN2}oxHjHp^NqlfWPKi z;N{G6eBYx+FkJJQO^oJKDn;zVF&ozdu7T6_&^jQ9dhTJLF7buOEH%Y}t(7&Z$-u`} z2I=+}T~3Y3TRU_(ufz``sOL(XuF_fWejzAvJULola0Uqw4pByv@T^(!_(!rfhg*HQ zi-f^7pF7~*J4c+aIzu^jSKKx#H|xG9YHUNbm*4d1?aeRw99Y`h)BipsGdTlI7FyGF z@396?0j7k6slJvwRp=G+RX}zuy$lGj)gpl z$Z_5yO0^U8PgEW67^GGwaBQxI7O3yg+XmDQUHPA_@{bH@Mn}~*Xet;~ed?ofWPg^e z<6TS|CViDbrTD5;#((@ewCnc+l6s(adEoKo;PIOoe+Tom-ai1gZ$z%(~p_JxBfW5%f2Xb$0M$O z>7`iPUHW%)a;4Y|WQe9}cv0A+q$=lCliLqNbjRKlc?APu{S<6ReK1(D1f$|`aFW`x z-WXz_zE;=op*`p!NYLnET_vVD4J8b@%y&fOb5pG0P(KNTe|@o3CoB6bWaaZNZ0s%)4$@ji}%?S&?k61|2bt25eh!6?bw3 z@s#AhsJ421=Rr*9*>3U;C|Z_}P^S8n(X{V!J2+qN==9{(O*G#+%IHd#sEk4!F?}+Z zL2`ci`20X-al0ut&Drs;)q&XG>u_+YvS<@cmt$)gRnd{_Ubx}A80iF#yvRA4wjzzS zx~u!7R7d2zfhShLWp|A+R}cFw0KEP}y+% z8Wra^>FMrl00(jEj<9-;QB7fx6Mht{TBD=jVXw_tnt4!cZT3%{;gg*R3>Z0ORbBm# z$@bG0!&)6+)PL_DmloARs^S+*=c5a7E1au=c7BXm- z!T^7^&&ta*5khaTv*JT^Q0%@+W^)Cxf~N4<&{fYnjQMH!>FW*6!zsKYL>&D5n0l&x ziM}li8_z`HAkV6fU`Z#Zb$`yBM27dc<#cZlQzt{5eiXP^y0lssMf7i0ymazB^;O?c z^zBN2=YWFrTNOqHy(YCRu9tCDe$K^m5~Wm`;bgPz*HP$#ziw0(%i_!narYI5N-x#4 zL1F@u;fl1kynfV)1Q;{nZYVq)8p{gTys~1S825mHLhc0*`$Z{dK~Y+)<3KJ>BhsY_uerT@NwQ;c1w<}yHZ`^8M zlG4s~-vUPsZY0gaSk5-OFTPt8l>4%K%mflW0J0zdj&XIFfF76gDQNYm_|6h8&Jql? zfuj9NP*Zj=N-gM-eA9zl>Qo?#MN9c@bjzo`DLau8Z^~HdE7<#_zp(h?<%VXJN3HZD zpsl(+p*@s&R+;yizNau+($_1a&~9%|b<-TTFqQ}TjsEr_D`8vJA@ z+eM$+LZxg7-%JmB58a;Zzc-l6`09DKnLF(^z)z9-n<#YO%}Q_Kg(bQ_hc;by9bt$H z3)7RZ7Qv?1TP4D}a3|n{i8*FuquiA4ReEQDhU~?>^##M?&6@C8jSbV-hiX2ag!>% z_1Whjs(b2bMW@I){ahNK$tmmPr5N5mPUEiW!zftIY}hO2@vh$kf7&1VJ$_k#IO))) zyF?fK+Ur&*KRS`$CGTl|tzb6R>`{39wiSho0F5y&0qe$lB%KP68qO}fm`Id#*)Ruy z8)`L0FE#!=R6=(YeYFw~u;;Ss48$_H*>K0NcpDU*ne(MW|E>qbiU1QxG?Nu|`vi51 z-c~!kHSUM#`qndts2bkK$b@bf1t#$Oi(FCM)myD1$NA5lUN-My?m9^R^yn7DV4)k0 zNc)V}{T}Qxt*X8`@@qpHNlpZ(95|J5uK5w6F zG$Dliy(wnuh}%GOHP*c$a!y+Tfy83c+@T8c-;LF`J;J~^H{24TWWUc zo4bH-K!GRfvqx`Wh5MEHUQ<(aYE@AL#Wx1lWr_v($D~HQ@I1aY%+A3yWEF85Dob|MQMkR*= zLg(q2c!-oh%(hT{^Sge`wbtKyrUVGVld@=8)s9;~+PFAMF@Td=qKUa)8ulu;%G6yj z&p@$7=l5i%@4^a5m(hKy`t5^qV2HQB;yPu)?6;{Xmr{${OKx)^VI4lMNmY6rgeX^( zQ%nuW_uGGBeKXUK*v09YGvGHco;;G(46VTwopSR4)dl3*Wh<8F4SmfgOaF7MKN;`+wOMmu z8_ZYiFewc3BkwZKVID?3_m@z|NgfCL3Qdq!8LF|Qvr2wy&z=+SBKKqlMj&mO4m(GP zwfSgc@OPcjgzk)f-q(;uGroE621Ylk zL-!^DOBh@WOWDTdOvh|eT z2P{8mwnZ+c^}Q;|QU0$h1<2Sv~b@=v1 zomPr+j>C3-oo^^Z{;TjpEO}N@CSkw`#qMLr%Tg!H21~x(oXS*|!3t}wl$_flkKKdD zpsWe&gxZAxTAL^VpZZp?*~V10ujB95IzDiyYVw7pr%ZgPYCZGzop&^Dd+!m~?wT3W z@6NE*q5x%&%L1~T-{MOe4WSMo@;ciT)tzNDgvzNklfpgBeJR|q&zuH=SHBFj@(TH@ zylY~n)2GKXr{~6!k%vefrVz|R#-6s>)`o$y7i^W~K_AJB&Njv6*N-`=w+DOp!2IND zG)D1>0kl>IK)5I(IZ*?bYNMkF1D0Zs#cO0wJ;lkWH80F#{ZDn)0QMZ2h#K`zR@K)o zLn%E7Lhtz8%iEmTrt^*2qwoi7ZDgm_B3EqRt*o%G-{%}7nSWD$c~ViD`eoe=95YPc zSch*QEIN>h1|UwryG^p^4{uB-&MU3Db+OI4Tb#d0Xw$#*&vmQAXy-(UK+>R+bF+zKPxQeY~~njz6QS-ty5eYV3p$XXuQ`bmF$ zTkcD$X2n1kPHa)n9|`>mp9JX)-GEGC-m z!&OD%YByYph)NvT&q(z}{d)YKGW(K<0w)YPdEXE9Mq@LoX4J85ksqXh%xGH{z>nI?)auz30$()*guvfik^Nn8f4w#7}Evva;V+rseuLSy+2)W=dkMXiM?Op zTymudD!B^fT5&I5(IAYU)Wjo834yg9+li_9^&L46^VA#i4W3ju-z9&`++4|YbVj0I z)5RhWJC`69cw$Kkc0P8F<)x9^-i7SBpi}ZGoKUBV@h;AEi(;1OV!hLy2D+f!KnI(j`>E~J zm;u}pHIL}a z05jn7Ez^?Izn!Kkm0Ub}_S<^ypXZ*_r5R4{Y1cS-@xrZC21;oJb+z(L6q@%aZU^Qj zLli#pz-a}EXIC%Nh-v`M8s={o1*$)RG~yy|S2km3RIoDJi+TK>)R7kOQh>U-n#;kdZoNtalL2-f6|r;(#Zs{3;zSlzhSj2I!7jM#?!NCq|Wk#xdtg z&;4&C%svW0%bT~&by$S-cH!ERQx+2Dd7)OC={fYg(N)li;f#LK#@jM@&f`hPwiq0d zMWgD5azafLk8&v3^lJy8Y0@iyu5coi!*DVLy?ug%k4qWE3!>{I7> zoanU|`X${g7STdlP)Lm^p*+g+$uXH3*`q%XLlOoq3eRy{rgk3LLREshpat*^ZS~|6DEJ}8|qA3A?yzG&X z-hF>fx&?z2&+e#_o8_oK`Tkj6xu#HkkUv1N3p+JUs%@)cIjta5Df#_Fh90YdQPtA0 z?;CN)<_-5bMc2N^kh08gw0wsRXsw*bPdircn0zg{w^zDCkCpFu?hGC+&9+S1_0Ke0ufvg^z*bEr1a>v$n&@FnWohQF+=D zCH~h_`(<_SJWnv&Hlx_LJ{@TnUkwRIQ#e)*wXg>aNb$M2scg#=G>Vf|c03$%$ zzgZ^vm;2gJ#f-lmb$ybFFJo-ME4%ngKF3B{jyY=CNHv=kaxFI*Fs-yOjvNZVfT{lS z_@H?g8Cm&>ak3u>(SjQAN-}*%YrJZsM$K`O+WczG5yY!namT!*vTmLKH3L*enL6Go zA)S!FW5j%AuFB_jZZ~&JMtTi?VZTJEflqRTf5f`@eAfP3Eg0q8FU|A zHj|5g7-~RSSnq`PSWi`=>Ey3@x`1YcE4&vaw8($P)wY`97Y|$-J)zsAhU^-ZyhPC3 zP#IDQC)c97>fqk9#g!~YH0Bi`6+53Xo+zaO1@vekuRorYwqjL^4^?Y$Yv(gRG9EiJ zGES^ms&+ef4EWj0Vo;e;U{qKsbHD7@`{4KjM+w#M|Ksxevi~831eCCHlslteKyzwZ zV;WFkOsVe{Q&p*TU51McVn0YsL-@=}2=Bv@DYa7G`y&FwlG^ZxM%?c%OT20Gdxf>Z zt zfjvLbt=s+>@*u_jyK~nqXS;nqQ-!z>DoDsrw=H4)B1;8Jf(5!q$b=hMu|sH!qtzF_ z*tTq*UW_r6PszQojt6veILyMsY-WHj@_!sn+C zKX35;*VhcrNI8%zhyT%=CB-E@s(5*(=GThSl2)F9n{ns(wz;6l-Ui3pCalu&meO!g z6{O6SE5dM+8tY;-C64RZH>0lkAe#7`oyLfp=7E^bjo-Wxv4JpJ%2Wn#~XMFUg4C>TD?WK+u3D;$O(y#2j7E+wNY&W43eVAp=D4}eT(NVj^*8}Y0f{q{(u zWIVwyoscN+Vtc(`k~8e1M%Ns1&v>H-iVnGor{MBZ-?Bkw$)EFks4Dz<|IJP}!bSB* zr;a%qdcr_Vas8iJTT567W%t>QFNQb^dpE6RNSre(Qc~|Uq2gZFeG~CmmE@P=r50%# z50IZ)s}%a%KDo~G`E!3RZEe4TNS|)-=`eax!f+iT1X(RQy1P?wud5qnkd~5%`r-2} zZelh37bA@H_*!RB9+*T%o1~Gs5|N}dYT;n^L5?=(n8G&I zc4amxLgDQlb)Ij}`zTfpeL~Gs#Qv#H6}&A<7n5O3aIKSG$B!%W-OiU0YkUC>B%l?o zMnZhjLxcWq&Q}d%3t{mgW?(~4nRPQ+x`x0qpOHGJKFtfXqA*4D%$i=F@L&QGL9zSx z3YjG8ti@WmuqT&LuGyhbg4JF zAia3Er?FG6u&svjuUF)#``8sOrAMg<+r^Spk0rsX`25-qC*+IghIVXmyY1H^GDvv3 zQXPoglfSUxQK^c!Ir|(D)#a33GoQ-i;>I)&C@RuAIkuV~OTO4&h7?XM=U7K2Iqs#PJe6`1}gFz_S znOzpM{ANJr_S{nI(Xb54J%KdGh`7XvJ<0@!mj`~T2P#|TM)F`%(z;Ya*Y?MHd32CM zLb^cL#^SUM$==?}e1go<0$0X)%>(`W&(PBfcsJt{r}Eo*S(7at%UJqakRtPpb13R; zLo&hjxUX%k<9>;0XzbGq%+Gr!i$Egl)g~=Tk=ate<68L-n=jF01;nGB)#JozEQUo* zJT2PcWu^{gPpQ~xFYSzJ3=%4Aecw8-B-pi|#7~N-h z^g}P;nBx>Use--chs7pCZVD8r>slNkx+FW5hnNH^;iPDU9-ll8C)jKIO8PleG&6;e z_BKd!{eEoKQoMd-SuQfo2LX#{c$?@`AY(}+dlR%YY|ad7P?FQE^Cf5wXKm32#D)fl zm&$8P2~q3>U}{XX&u|DP@!uH*I>5ZSB>F}>j-q~@Xt-oo%TbeFFqcwib*fA-WpaOp zWX!Fwj%Vrzyr9=}F7&m-67tJEyq@(@AFeojK+*&9rl>l{mLRCmUSF-cD-iW`_aR(5 z5}o!NpQCOxr+Tm%e-Wi@qcD!qfq5q;e&Lv;qsov#@|}y0``5|$EtYK}B@>GrULv1@ zX#dACFD_uwB?9IJlR($;e^u&JUBE?f)CI-q^SAmozkN+)`Tv){nq@sHbih`Eo`S+? z`p14>$WB!74}Tj%vx_(go2P#x4d4_y&d~OgA|#){5C<>-OWHmk`LI7-5X?~{<_hBKn-T;bNksABWVoKPo(e%r9Xx6sN4VFN}?GPMpPtnPylu^7rmCmj%Q> zJZS%x0vdWD#vjRj;V$~ItDh}nIeZ}vE?TlVe&$Cb34w}^P^QQ%v$}Tus<=ro_=|ps z(bDx5M}klFxaaMoOzFT;o1U58Pc#d7C)Q#|9kBC)Xz!TB!~%#V2|CDlH|I(MR4%yO z*KIY?+Th1jP3-9VkC&x48qU{-ocOR!Ef(MBW+&lKz!~`jpHG{#qO~AJldIZCk95<| zAbFH&$8~UTMIfjhIm8b&!k`iB!Cvtys@UA2CFIr|0IC+I8iIz{P)10AmJn=S(sGn+ z&wx(rskZTKha}TA&mRhZkI9Ry9cqw)1Aw8fRRgw)x@GVNFXe;$M{gnunC($xI-$kb zkSL_j9ON?|MX^Xuy64hZ-70RkZ-;i)+z#wNk%~h!Uwjy7$>?l2_lrwgTYj2Jx52gg zUd-bbs$1mAB|bq}@=f((ouqgiPJ{$q(vxOPX9r+_5^b$i!)78q%e4f}h166_fnc#t zJIk&4=!Y>I0uzf)A!LJnS=g~WMR`;W3Kfyj9DGz#N>F1lzQBhgpmq#a05Hi}I@Zar zoJ^RBm(5V9fM8=={<%$kT1W)n*6V#29V`U71>8{z^-~8Hcs>(Lc;(!6LKCo)D>wE! zFC58kosw%tXd{%wm(V8Ja}TqTb*1!`YgLgYyb{W*npvkO{gR6E1lQEEX+qIC5v?tN zIisbfh{WR@zLabE9*4RZ`ULAf{Ykkdqf|6}gi@$wq`tj9&>+@Es;tdoh0CR?HNalW zJ3@c2sYphdLjB}>o@Q%`0iVNz`K%y;Kff>buCqqtqbko;Fuh;`G~4hLF#evI72fSB zXw_Z%=FI7tQlI}RP((#Oi;8Q7x62B*JfGNem!f=XQSSnRVE?XXWgS&jcX7LL@Ucl zGWI)#N3#l%0=qdO%3%3)>k5nFP?{gG)}AYuR`w6WtT8njrhEVsT8orv9BAi@IawP( zvS9cers7s@MC2EyQU~0d-$v(bhb;G-Xf)7SHNFGkOfv_U5Em%s`nlXF0>VW0C-LzD zOnNQ~Wo}jw?OI_J0cM)`%!MR3n{+x_ss$$Ka6jRhfk^v}Ih~}8t-4{|9e5|gI~s-^ zOIffOMsI`f)elR9^N!$bRccv21_SXQlcrdWmpXr7E;as2&|V=7ntCuaZ@_^5zTyyz!f}(z90Q+K5u3zH3~?1wBA5=TY;vdl;L~!2M%AK$LJehT{0H>B zVvh%04l3s2gni5?OQ`fYlRIN$9?UicN}s68vn(T#2+7fx6`Y-qW`YdbinB;+fm@Vi z3l7xpG?e=@_s}3HBx09mRv>g6%k=&bX(R5o-@^cY@A^0ScHDC^c;DBV+(ct7KMH6Z zKUx6P!XTC(2rmCoI}%(&2l34kIWC+_SXF@q2OwG zn?6~G$fSHleikboy!rT#GX^yQ?(my`iQwY{FC*LvqJ#XtiPerKnaL{cA*O|p`dx^k z4Qc%!_T@?D)@bs+Wfy1t26kXZDs$-Pg@73i3ytB;U6VQN z*tf>rZu2yM`EDuX;7_u)Q`L1GCL4fxG!!a{MM|)&63)Eb(;2{n4U@p0~*d?^)|g| zIHB@iRVGOx&CnHY@~dl!rGDyuHrCL%MlLW#YgR(aP}+H&+OkY27e3IhIa;|DV{&pl zI4kVY4!+V{V{MGb8C#=uHS>8J0$q$Lu?uW6O00Ei@?tq12mzJSD${o4uDWiQ7*tx% z_yZQWqlknmctl^ul47DB3X)@wWW~t^OOo@E+|?mJJn+E|S}mxa>!KY0N^{S9?#Au1 zEh~2dbf#sW;U|9?2Zw83Rxs^W{4)|D!P8q3$E^RLxo)drCpOH#}^W9JxZ#wtf3D_A)fYw&tgT=#wZkbQN9YTq@u( z59j`ueqdhgH~GbH4XHgLqz$>FtMm9o|D=AWfx?oq3l<8=3`yn!M19uM{`4GrwHJIi zipO;~B0`2CnNd%fte`PodXb-+b`QQA%Mfm@Qgej71zX{SHMfmtnIqkFr=n*Vokn6` ztJ?sJWn}~mB?Ah%xZ-lbWHt03vZ^Tw^vWmeCUZ@~e=G3xs zFT^PPU9ivrMYfT?4G`5QvmsWFn z&?B#GgN%&<$wnTaxozPxCWVh~2XdC6UO|^QR|UvLGm)M;X-3W1lM-qN489MJiJI`- zyTjUQjqlLYU>QIumxmG9|MJ$g?4%h)AbQW$l9XQSzmYCZe>tfj4`UTA{J?R}e5@;} zh`ChGi&W893Jh5sLAE0}kCh^p0GO)5XQo!iOP1Y>qn$oddQIJ}sHCPsJ&%?bx?ON> zkTZ{g(678O)XV*^82y4IXaW~}j;Z!;7wFT!nM)4BfuR=7ra1!tIMfhz;g;Sae|3KZ z(MhTrM|b&n+P{Ckq0&wj?yQ5k4%wOX_+F%eZ?_!=EzMb-Uhc-FO=LNkQan?o87-YM zu(HHuSeCcNTNEDbya`&Jle?n#$E$(h=^8vhN8*|aeR&{?^fZ!WT;vYg;+ZB;qAMmF zFT4_X%CQoP2vmQi_;SwiU@|s>9)*Y}Z~#gz`|G@VUyn@)W1Mocx`A3}W2&xILk5-e z{9KvA1oFzC+CU>1=g);;8~uR596SE-L+BI6a}>uak@7{+sX{}RWVEQS*%z5A0VVro zf14dri+TD~=6H?I{usX~9Lxzikrj4vy~eQO+LQ%cWUupefw3AE=`^X7&WOEJF_1-| zE&7?#NViK)Io=rHE=$b7%Y(_RCKf@hT%je5RxQU|J_V>#v@yXK&@P;RLPo()o8Txi z7OpH1T{bz4FxpRlk8Ww;Q)|_`&u*W?`R7l8{AI;XxAoR(qt{Ov>Jk#o z7+V4Q;Oiqy*RCx{OzWyZFi2P3Joh95{RMlV^!Qh z`DKNuN$Yqmqk79|Fqs}3DvHhp>&e|Ri&~wS? zMJm#bD!ZSls~{Yil^pa0m*sgDcT~ZJd>CipP+Ahu_Ji6B>r1|rzn8u-#Fkh-RObxl zPyTckyhMn#;NdD$+8^(qf4$opnxGh^IyauJj>6liItayZsED^5 z+C+L@AmNL_^4TmTn6IB~FS3&7TYk`5Yz7XqkJ3}`Ao`Jx!f-G%HAt$FTTPSnT;fva zs~%=pFU^bDtznE~4#FU=Wne$er7(u(NkIHuWJrC{{*bIEBVPSsO3c)l!vwRO@#yy1 zv6MP+J4HNbwUM#O+TCJU!WaiqMl}m}<#U6=NP7h@M4e!?*q* z3s;T%0vYImX0+4Xn)H>I!(pqG)Jt(d6-gSa@-m*)*d>Sd8x<8UT?zxOy$}?YW`7+| zUIM|WK%1OO=fA<%XLgh*MD!_&DVRls4aHrjr5IySl@BvMAHKy zG7nKiLk3fwnhuN5!D>V#he)r8-d*l&^6pgW7L`a1%B~?H+2++taPn>C*`&GFkwA>a z=fxSP@?|C+5j0Uuwkez?$)|zc1@Ib4G;~79tF=<6{NE>{z zN3Qr{{@$?zxN?kKST+TAW)@KsQ-jWXd)2=)XnlSm(iV-02H_a1nuUBxDY7ELB?F~{ z4**a_cFdfPFiO1yEU-E$4nP8J#_A&6qdFXP|5Alz*dgdOE9Ct z$-n8FTJL4^depNgnTkn&3 z5OM0}(FA$G#dtDqvqHP(aCMK+bfXWK>5^rPV*p1R2Q zNEs;hWUdr?xSwY$%}FLCuU;RSJ`Tmz*^2vrdI}$chiGe`DFCn2hfXm*_bm2viJxe# zXmTQW<(H8m`hTD#OgfFd2DP66m7cJesc{7g6E;+4qu4sD#BPAb)}YCqR1ObrCbMe? z!EpKD+_Ct&Ew9w=-Q9N+PmBV>1Yp{FW%ARA^&2bPp6$A>Fcb5tD7lS8C5f0^; zc-_)Am0a?R%gYM9P(ko|50WxZ*_0Y>(E;GM$l_VM*0zoo-D!$cxH`_D|Ero!fDx+O-FYzJl!8atz8&z=06|qVlQbOUsKr&m?Ije-~ilBCw zjepC|*ZRmefDIZPbzZmmYgc&(GZJ7rHGQAMU49bCIimUj2Gr))hQ&V5z<5lQNC{{t zio_0W3>LPL`Jdmi6!5TOfTTFF(SYtCBm^fS3i>t8 zuqoNGI1kfWe2ZyGV(gbumSqX%<#=^)eT_Ygn0}EnSZa^bcAo$BJd(cw^5O3-p|kBG zeMgxQOj|WW28`xr6+_s#X^n9e;CweD&I2%TsBYQ6)$#DrIO+Yig3zZwev>MUu zhyYMm4aMnI9qA6)Cg1*0Kk?p-Y7w7s@Y{2Xjh;XoI}h8g)iKuIhqLtl8r4jV+&p$> zs78_fX?R(OHpdD<;)GcORCTj*1sN{qJGm#PFF)fbMkW!0iC#+=~)c zPLNB1{~#J^#NkXDJew}H0hCUCV_;@0!sjfbHx9-fr=66n;u#(*_piUn7g)K>*ineT z(}ds4knA=}^_oHAGT6Lzpx>m+fPRKp`8ABSv+u}wf#Ik{_)~Qd^1lv<1&xrhs-f$sAb&kG-IWSR zI4l6*xW9)%w=L2sKxK`*cJ-@~G1n~sc;&}Wrqs4NOArBH84n{EKD{sK{_%}4<9qp2 zmvQ%eWq0(#=olzaNtUvY#4g5x3dpE*0zFwh#-zTi z>Q1|@6f{msRWfhJTpN(9H3JEQp9|+j;J3n>vO`v|+v8)^5o~f(J*FWky3cb~N z&Si+%#51DRPR3O6i#W`9$JvKkSp;7iBQ0-^VsCOMOxv%$fyG9{WZ2({or$jRO&8tE)bHlh zL<=sVJ~`C={}G+6J~jJ(oan zDwS1mXO7&*pki9u;r$D%zyrf-RJmMTjyn$F0}%c5m~#O=&d^a>{}%ZOqKo;|#nQj% z@mh?%-4lXHDmU97OvOtq@i85z(zIIJxy&m?;nN}vy0X;0&_Ly@`xL{wkX1N*)A95s z?=Hl~4_i>KWgc2=Ohy_Nx=D$+3yxLbuvU&v#$QM#Lu7>t5PZkDM;HD3$bLBiXsjbB z4At)CV;EPkwsj$1%SzFt?19AY75d{$|Cx$))UZua2e~;%N2&>?e@1-V*u5qwZJz#Zo)k4--|#VX)6mf z-iH8(NBM(gGMeNZRm^518Y(s=Se0%G1vEw$PG}|fYpUn0fTgx!+?G;34@GI0;2~YX z4Cb!ssJmErZV+&jc&R#`YM??*k2M2o!|c{B41<(CyN7r5*-$M*F$E&BxSJGiwl{!e z9QGc42Q<3W4^on&9&C0cw8tvT1v!_av^i1%=f7{!{Lx(S>DWKa7WbS^yGbM%{^57i zERll$bMo!K*bakJJzW2fstk z)Yi7efne0NE)6$qD*q}8UswaPINfkKJk;7d#!KG?Oe*+DGCGWdjv;ITM`iDAxk6nh z;Be(&q}7Am`#8Yh&iEc487B#_kH_?12n}r@B-+ExZG;np`DjN_s8XAwELLfb2_{Be zupt{}JN?ccWj5iu&m^v3FA{=>vXgL1Qi0@mJR|NCa8ITsM5CN5wK>{xL__;U2t}wd zV`Yn;j3B)n5UHIP zh_=+8optM1VO!;=^_2tTiWWPhVBySoJKg*Yogd-h{M^xX5_D@8++E$#X~@+?5>S}t zj(`(P37l!?A?>Yjs$E-x=@fwyCw`QbQy!~_19}S0x!z!%ooP&>Tw;kF5vbe0ULfVBF{Kchux8o8<+KHaK{PpyuZWG#&C4q> zSn=&^W>HnIEJC6e{rg6`vUcR*M5oY1hCS8$9RT&sz-am*mmzqe*?MtUo@l!sZ{yhg zf9WKn-T%dVOf7mG9xz!yX0L|T{i#4gXP0L@KPd}W5yR6j@C~Ce{O)eH!BK3VXhk4= z0-8&PH`Qe%^v_C=s944$bmGZpeN?;42<9j!(dC)48wNt!aEhS`NBs22%2TOR6t&WM z$f&rgsng;{xLRfuOSTgef3DAMt;5Uf)|V>Q64;XxlwY-5Wk@vdKN!8CT=RiOlS`|w zUqlXEEfU>`d5|jf378B4$oJ<<<^&D}(2{{sFN`PWlZS$E>>AvH%C&e$mFbj$EGFKogz> zEUMI+U0sV;DSbRuqTzHXvfFz@Gxla=e!yTT6h$3ffL~Y!K>2b##hul1`PfJ*T(~^A z^a(+>R~7h^lEp8Ea(8F*tosf(?4!bXPYSWT&=s~Lb33shuqpD#KI#i3q_ZUK&c0ud z0`#<8(P_K(^w%cs~+Kma*t@X%?E6Rh@w)}-zP^JPUXszpOsX{VrhK>CsS(ZFs&cCLq zPhGxujhB3$^)-Jo6f_=t7f%@Kzok#=+Q2klaGbZff-+!hg^!#mKCs$cNQ;V5dMCGK59ly(k)>&O8FQu@~$$4S) zFmP<=ebO#Z(r`Dhv2{_ySZ}r2f37h=4JV1839H2jt^@uP4T_mb_Eak9LzT*oHc+8~ zy!SsmwOI;VJnNl6VrDJqjnuMVcC{nKYx!-vn z9QY#xAD6<})&hLJFg8WE8!@6yye9wkYy%t7I77wUBtP!x@|HRAKP7=B2xXU~4HGdt z6{$x0MM1LuHg7rICaCwh|9Yl6FG;Bg26UyAlhrkc>S}*!eV2ATfyxC}dVf}C-}GfL zVe>vfLdnrg^ICEHU=5mxPX#_xAsQpk{25AvN2lnfY1U%aw|0kTr9&^``ALQ>7g-E= z#p!Izz~68xqgalJGN>`00PA~hhXjBM5b{4sjFUt2mf{+hSHuF&QpvtE9XX4~bvnn! z*b-xS6rBQ#du7cA3%2az9ZxA6`q^4zni1~6AZug5e=e2BZhI3RNg8`e+(UE_Afb1B znhZZ?l3rrRA0$+B%{x8Hvb5EYQb-Xfow4$DRj+peY{Hu&ryGll)m4;9nasdX=`MJM zDT}9DbFnFjTOedKhssVpm3jnNlet9$V5FW7(B2kO%b65vn#x?%j>*?O(Q?jsgYGHq%Do6Bz%Z&Zp| zZ>Wb_Nu}>$f2m%vO-aJBEQ{^Z6BJ3xvL|5pM!QyR)mDguk7x(8OWO!Aw4!-W_C7`@ zhNOj7yOt$YzxZWzLbJAKL%mD+$Ekcu@CneHfvmxlkK&pX^ zQfk?#StaSEbJg2^07qeLB=7tfYc{J`>P5deVPY8M6SR1@7CL-&MxwGvKV5vg;b&if z1YvF0iF$is$6k|kL>J_#D^>W)9d&uHo6NbgFfTe9hZ-fm?2=8Bvv)tWNm$4bj{mg$ z2e|5uEAv41l27N(34+BB?!$YwrTu>jLlcf0g;BH22g;j}J3#Vwv)i$!OE!{Ij zhgRqwo+DIFBEFL(;|GAlOnR`MvSp&d$DzNDw(NE|#9dfVV1s5q#gx7My%+s42QcTB z?3u2=Mg&qX{mG#qPi#xGz!gC;?WE$ibQC`{$eWIUuC<#MOJc*iOtb9h+I)p=Q3u^H zpD5iiJcbLh=2*YJ*6(rj@hIV$E*~$WVhA@qShxty%g z6|heHPV8E`ahM~=DYi0gwL&2m}NSwvP979kRDwLcoM ziIS4Z(x7v}mtzF}J7a>NQqsYLrQj=sM5`&UuZ6h{`7gQ8#fpwsi?9@cuiITMIuOT_ zjzh#IiWQUAS}GCL;h(b<`BH1wjGuW+iX4iOjAA~zRhYs|4roI_I18V zF%_yEAj;fNW&3%mR=x8A%-IMG#?L3ob==(6aq|0^1RZx+9ro*`(pPWKwWsKq3eA-( zjjVj_DIzIngY#o}!i=c$e@WG*bo$^~ZZSM3lC0U%YtMm|qw9fbV1V%K0}8qEi3|9P zyq21O%buEF8;TG<*{v2Y(T`>qaFO#Lr(hu{KnlKJXNcsA8>XpvLcSUE0;-3Pz<7-f zXL{IjeOA334*aQ;vqOppwmsvXvu@#M>ISDizsS8F&ywMWMkLg$^5%Rr*N%!oVIR&G zCTi%>9p1f0HpinHMKn{>XQfHR6Mq$lu^zi!g9ucH{B{r5;drIxvkx#nr#T8j;0Z@mhaL;T4h~LgKOk>`HJfsceL>ebaBQh$mDp zt8}1sDlE>d z@7mTA{9=F&w=T!tI-Ufdv~r?sFuw~tp!smd6xyj%;Nsz&sd-+dZ1MSkAqgm%g17?C z+tRE@*lT0RUn46V49F0)N@!-zzav+eMT=hsEMdL4%JlBooof8M?C@xoUkOuLe|%Gg zFo5tsm;#0nG-)}+(DCu@7G1k0(QmZ-AP<=2YzNnXN6~e2$Uc+|B7FO<7J2N{Ikb=T z*M&xwzpk*(0~?xyI& zdE0E676=d6B9mu5ur|XMUz~yA9LHmfU7J0D)$8*$3byV8G8Widb@Kvd;c0JE&W@sN zp-;GmFZZkg4xE6fu1GF2FTiJ{bfsi_Szahov5wOrpz20dVQwW%L7)&-jJTFEbJY)8 zs;jiOlSk2F3ZO(ebtFnr<&g;+Mh)_11@Ly0=ly^Vxd7S&TD}c{m&EILAFY9)X$Loy zYd2q`)h3#cEuxPeB?B`tk@JI02_~Hpn;RvOcluBB^an2kp6nOeXZi{o=@;p_fk4H^ zckCuF5=1n^8hMxUssh$0nwm~@UcsbqBMOGEB#Ldw&obX{jaF=y*$%~G$9Mg$c#yy@ zC;>%3;B%06B% zUuQ*>UYke%6g{6RUb@$KbJn|X%;U|FQ59ZrYe96qeHQ|MZm&?G=6P(+gna-sF4_UN zjpcBM?@B&4SF649I}*R??s2uy4(Cp`;p5wONd0v?792syj(ca*<>M4)%j1FJ^7AEH zpfoqw7?9`Ua||q!w;IK)ru_2RY&0(d2WDW+9_8Ke*m4FHyBgd7t_@JFoF1hD^~G=b z2=9qa-NNz|nSUqUW-L3hd~^K+rq8_fKL zhtKT!?PZG37veE5VAE`AtcsI_tK`-H0v){0<^`Kfd>_9L^?^5+&>Nqn3BVrIG$E&t z9Q{axbs4XFi!oVRmzB;RE#sf7vg7sfyH0X0V&tsDz;8>Vr{u@e+1Z>LxM>B=fVwOde zM5D`3og<0sQ;T4H2lOiMTV6hJ+^K6#I9aGpsd`l)g?q;bK{a;IgcCoPz0XEQLw)AlZD?-$220)%iA>yWO`IQO+1th zr7dK&6oT$(nVs%u>ZK7(NpPfu3CBVL$QNTRbT}@&mx>{TsG#ibRS7|yT5G6;uzV*8 z`TpywEWR+M%FmVvk(^1ISFt*z>(Ec0K-L}^es0K9TYndfc4D;24O9&r?CSl(hEWqI z`xJXU5)vH=vcJGivS0{)q7~8wj1rWtk@{8MUQjQXHF0Kr5nATy@|E(l1xnZ~yY1K9 zdn1;$5Li>t9raZPnAa&Fa*(ano1wiFB0)96h=(`ZvpU@@(4kiq+v0&$(p9)$gsFcN zTZzC7wtj^cuWT*{rcHz;a z5xlR~qrz|ktoH<%E>Xe>QaS}+*IULgZ(jQo6)^#39rg6yAo{1Ovt(AqUc^>T(2 zjy3IX_&LjcO^8fGXoSo!J{YvF_$0iZ7ZGgTQpbR+} z;c(4VB#xr7-ymk)31|S}Yh49eM3>JhQbFQ`<)nA5v_1SpO4hq{s#*`*1WVzev9U@O z-(ca?D}9ndrCl&cJ05nl#qT~?HMvQh2ZyUzfWz08J=0RN*ek>@mKh}ki zQ?d#8P@(6L(fA$Uez=jMhl67Fnvnb{4H2(nG71`fU9M{$Wo{$FpQ}2Vi+r}{wm*-R zj=gUG=TN0&+U@Azwhkd67Jf7_u_6A=hg@Ml@B=hfK(B@9_o#x@4f`+G}s1 zin)(vDep-KE{zV@m`PH?DEzOy6^?LH zuiK0;sFANSm)}y$vCApRjcvmE4AUr8@|1gxIXfX+>Am!ND0V<>+j8N+IeGjPbdBa| z``s<~L5tr%oLS2?mW{&x3&_=;R%>UxpXZ9KOz1;ouaRhrveqzPkf`ziaSk&iE(x$} zn4+UTu`yX6mo>aGiz@OW3FdH;A;+~?l= z#5@j&pK*e(0%eJ+wTAn`$R|vo^CVg}nXWb9q#~l^o z0<|+^U)$Tp;5*X~kGbEBWjv}{b5J|eD{P`2MXv9WIhOR8{`J|-%Oh+Cp$-CLzO2uv zGZ4#N*<)AiX3mI8J_sAR>j0N_ATC6?Z>%p^%EsGbJxl{|%%$io@TaouAd3P79Z*gC zK`U%dkXH_Fn;5X-bQ-nLX`2udFRIoB#v5C|5HS5^+{t^oUjK4$BWvi6aWp#knNjc6 z3G5ZB=Lu)uG}t)}h53_H1VNCkujd)fh7t3(z=bm*4M(c|4@L(wY(GFE|9xLr-y#6I z``cJY7}kwuI27M`I91bNvMrD+F-OF6vwwv5Dr&$0h(97UOmp9(553CrxkW^TC|U{N zEO$(V%4LsXvkfdKLQ`P+YMbpzD8^u5ec5#mk&hS+GLbPvpjhM|&>ufyZ=XmefRix+ z@jZo<%>2;G_{T21>TuT<*4s5G-_MD!F|k8|7{QV?K~%6HR0k~pC&?d7YG7(R z-dpf%O{GKDj=^IIxf_*4jSP8@pO3T>g*t8yHlN+Xqz*CnlMI~Om|6o}9aub>KeGzZRJT{P=y6%jZ-#8Ip^0lHgOtBtJ!PzUO@I4lThqd7O-5 zKRN&|ftbtLi=E>*U?aTfRAVszd#Wg{cmnN<2l+4pInfsw`DlH$5ihUTe`VLpCaIur@Cy z`(>NIX5KHL{=lpiMT9melQ+@CU}s9J#p%qQRX3(hu75)OvQtn;PR=<@s4VmrbF0U1 z)kfKBAj0jrv0RP1kq()z3?FV&zvp=Zbt1OjwBwY3gTiM+lW-mqe(a>QiNWsYB|4w< zjB7~XAN;agH8hup0=Dzw)FfQ|XB*y4lklE>j>>XGmV*6!N~!_yRvo5MdB{gUe7LPy z8>Jx3`=WB*;_@GSI@Lnt8%vOyO+=F53}>QJEw1Hmos%87g(tNYZyXp}`8RhtqT=L9 z36Jy8Zi>3&ZzseotAtF4^88x|UEon*L!L2Qrg*XiEZpDN^G(XDfwgGS3X5)qB8~?v_fi-sR z6!BckmR$fF^eC&)5NSlJ?|}RJrmGVm{TzD{Z9xKLn%a|yBVE;g9QTEX9J4K6hgKhY zK`y#>d8v`Y6i?;Xc%lnpg=|C!-3Kk_0YjhK$Zw(t9Q&>jN6#gpSN1l%%mq`C_UH1B zLkdv;&X#37wKR9il-xWa9#RT@aPT=(mcxk|a=Se2y$Q#gLv@st3}OA+>Rm1Jtvfi= zbaG8Szsyh97fV%^?njPHZh)uT7dWU|_*hctt+v=gRy#>YTw z0R-6Cr;?Bvy?QYw^dTp1`Rn*XP1vpieVm!pUq#4nt3r~%ed^`R_&$hAebMtq3%?<_ z>mIo*fln~0YTEeIMW?9&KTD@Vnvh8adPW#F`AX}UQ%@$Myc{h z_noHxfHz6*OEN%`^v+1d2K#YldOZ`-(Gyg+&h*vxRDGMMw z3s}fcDGKIUg+_WN`6BfGf4CR_(#|k&0xqA}8P|2$NADbgC2USO#<2WRPtW9Llc$~~ zRaY<1CePC>Zf?p{{c>_b;VRcQ38#w1-Aar!@|?gUtYJh(_g^PtrBSb5&C_HvpcXv` z%F}?8Vje@snMoz>-Y$7wSdRZEEUR25t@S6F7^Gk>k}RQMSOo6%u|h9{Yoe;&)73fo zUz_^i5L&mbiw8M!j4QwJ<2hFpTVvd&NcFrVm;V=%$|#<-y&03u(XIXZOfA_m;`Ip! zO*%W5%s;^?c?%lHN-L>LU&@BXnH#j2hS83=@T{NJp^R?a<4y&S2LlGx!KbjIgFG&CA0kdFuT)V%%h63 zl!@Lroh5$_Q@S@Ku3n^mWdNo4Q^`4z2Wo=JFn{w6;6*IAS@iky?2~wvTe5#~S;j&) zF8j&y6B3UXQ(%xsGwM5Q`X=!er-v_n!DA%5J&rAjGdBGWs$#}~SmeQ-nj&2ds6laM zV@W=Yk^;m*tmHj7pTFUi|!yjA8pS3?ZR5cX^cM?#$>|rxgkO45HXe%R6D<7pG`tX>nXo+m~yAe&b zz*-8%CW`)JSxgPwFUMYVqUbfgwd7Z1-YmAz0P-HonBH_aVbPoawM0FV()Lt-$`EGE zw*`dP-aaPpk5lCSH62+Ozcf!k`i$AO4ONzxA2$eqXX;sfD6u72M@3#btfwwoukHtV zt(Y=bsDUkDf(@v(?VCgGH$&5@#U*$>6$6+h(eTEnZaI~3e23-F^OEJ#1}))U0&KtO zo&lFP@`J#*iytImghguZn&4ndhmF-cq>@gFOivSk5=1H@=rDY0UGhq!K zgf08^`@kpHYI~rdphC>NA~C1zRuj)5EdZNce=d|~Oz;gx3_JwKs;Y>uUJ!w^Bh2nj zUhScGm_c!W=a|Zrb3^NzLeq>Lgq8KCor05tIN%0Z_;E4jqv6~_O|bM6$53~(T>;n8 zhXIBTe&CVP10Ky9IC5%rt-)vA01{Sn#5dkFMZ*>TS6boNDTnzv0AE0$zna#r{BM5+ z7J>Mi+T6xqnyUR@GdK%phPTK|e zydHsHb+$ix7Wm4{NDkN$E$_S5t4ec5wz3Szv{=HUIk|owSmFzd1-fvg8no8l2qvHk z?VRlY1oZU)h9Daeu>O6~@4K64gR>ty*2g{aSVukv(FR746|=@AKy8Vj@gzt(M=8Zy zdoT!Wcb^0rZdrq2YI4oJQhqW1~&>u!0l?4x!eak_0 zCC^_8Br99_@3cm&2T-e$B-oY$K35u<@A@_+iG;?1$7I2mW%^^631Gho4(rTp#B-o&Rcrl5YBdM}m_^j5#l=E<`{0>Bl~vI;p09 zjRT6g-aomNOgaT-^VKgptNufQeHQ0XyC;6S*4j0p3to#!pf{)Wz{6Dm5Rgv9BhGyuW zqSpv5J)A5xu0u<=S{DyCbA5U_7u@j``2rD!Hy%nQ#DbFf*&Qq? z>%-|i?Kfoob=2gxwatzUuFHs%o za4CN~DjA|Fp6Wv)#y4FfzWS9>0=nzBw=RT|%%8fb2mN{7E-T%kW~596x1 zC})vTk~j$>ym}WYRm{y*g4)cS2iF_oqFJpt9<3cO60eOR%9qJo+FQ_{PnRSVDHE#N zvEXw{1uyvDJ9>bpxLE(f}$g=fDUxuvzp-`4%CBAsW;C$;K*7zHeCn zh4xk`ihtV~xCi%dsV#;BmZnCCpU?ytOeJsyF#SJu%c|4p-Hmbqo_!wfnPL}U>^?Jp z;iR+LpelIz*b+xfB65p2{Y%T{oCjOQk8$|-R{f~N_VJ|v1~SGDxk5!?#&zxys}Va- zFv&mU=Jmt&M+Srk<1S>0Dc|40Vs(@LLPQ>^p3s`8x{9;Ks<-iilg)O@ z!pOP_hX<1=^I_0xzsbIOLRZ9!_EU!)m4M*T4x8=ohN;vG8@M>?ES3?rHXM1wZ-JxX z8i5U3|AiokA9soKXtl2kVo7y678yXv} zvFj|$vH*QY@E|yj_wm9Qmod5|ZTIdLLbF2#1%|%6QFeGUd!VVpXre#{&5vU&UoDd6 zhW!#>^drwY%Q^h9riD`dAS{3oprA{~X=1BA15zAxtLDUx&&{c)>enEoMU%)6n;f!q zt~)HVyvrE_C(X~2iQ-j)JSCO)jG;)O@zD$ccXY1jWIvP*)g$Z>wOA%__vz`g=f3)S zio@rOLT>mn)U|mV=V6S}l<-~M7$lYgKk36W2uV~om1B3Ofvlk_Fl`3xN$sTSKNMx- zR*_gT{TM&Iq0{L6!2}C3Y0}wOvF~#=2X;ze000010s+t&UxYD)1{sz4M&|9{21tvmKd;MkDpx$Ip&)2TkwD<3;j))GblvE$qxC}2StGtggnxp)w zTk2L>`flR`QN2q?hB&*rbec`y@t5Js#CNq;Fyf6-hqmD-B_T$G@;r@le|QBib!aMd zC;TSEjn#Tn8z#isJR{5>?ybF+gLDd?=IwV=RsUg=v+$1U)VO{AzRgEV*F}1=XX7sg%Z*PYK0kI7XGyM?18P9Qy zY@zrn3OBFBfezrXXMp@3obTHUBD-G<8OySU`D z;_4jDk_pb33k*Q~|3;EAq9eXD!s`Do3U(a9_+}z;`0I**7wJ@w$lTiQl1AQMdUg%9 zmZHM8f}M3@;sU7+U4Ng?I&lI~*6ttXE<#Z>wKGC;li=pM*Fb+E=M}BXUtE^Lq$6s> z`j!Pz&dpY#&sbd@O9X{Hw(5jiN44~tdd@#U{dhM#Fm-JXxTC*3cMRM zdVy!lQQ~knzN^G9hF84y9EK=NJ6hT4#}Xe?@0n~$6tgpIYj)Z(6tgZQPvZ*!Ar&SfW zL(B~3QxJK|0NOm>xS0sjN*I>cX7gDrHLYhqxT63d+1F@k@|EZ<9EWNSe=GOE$yRQV z>&WRg_k$LojATGQqz)f)Bnkxhnx>bG;~q0%syI4_mT-6rauSHMegHol497a8^O|LKjA<*tApucOu{4RHL9Zht(&s_RaSb2g5sCj} zIpRBmx^q!T*)8l0WK*z}Dp;qpJfEz&`gQ}ufl>Fu1^ufV=HI5WOfv$VpPR>m{@1pf zaoMGzc@u@LO;>m2jNQqvZvK#aE4KW@1AAJCazIMMRm6<1_J3JmCG>*e!5d5)N+!cZ z1AY+wJ*CW*xNZJ{X9yv0&$}vYjVdgAZBzqGeGGl-f%fE--0|uU$y9=>)veJTnB^Cs zMoB1j`sXoZqERb1v~nr7a|WZov^g0{t+4gc=_)H2E$so?O- z_r)i;eaJNeXZx36{l_v*09PU3>ya}&LAYCaOM!BP_lIh6SIRT(OF~zTD8Vi&G}uVH zpPFH38i4d9D=VDS_7r9Ntf9UgEh5lEPO+;dQRN+YT%ymH7SX?gLe5k@>oMnNOLolo<#1cQeY~}?{gD!Y=^AN;f@$GY*NUsgKD2JG<4+jD0GQ;0}LU}+)y4pj!H+TpE&a zbSN(_eh{tk4vkIf#B`Ecl0A*N6jSFxhn4QxgPe^^5aaj9mEb_YeWU}D55UT?ErCWm zfT^G%>6)RG=}zvP_IB>n&Z^|D?SW?$8guH13RfwF+>g)6=U?)A(Q4giNo+Awk8=2N zsx?jePgK*7nn>z7NjEdFz6_N;iLcmNa%Nn`$eQ%3%@o?*=TI$w6 z7|L$6*nO~?trf5`czc$%1wm)QU#-!TD`_v`nTDegG^5``lE4wLXsD@DrJRJ&ddO`~ zbNym<9)@z8CS zamMn!!dcIR=|FMvatsBlWCXR?<-(9^*qb##^6CAY<=CNrp2DtO9hv76Qga^}|1qeX zl){+#PGGZpgsO5mgRW?8$7IeVRpn&NT56V)%JXU*Xez<@%AEm2m(iHB#(pYNzRIh3 zGeSj>aR~X``8S~Q&g%^GE%!bFpIp;5iOQW6<`5$vfj$_rj>3IF4v{fCVVfSE>`5O> zIXei^cHO=Y1LZ8>BCwEjplbPiN+6(L*c%rn?esa*fx6HOH zm@og*%-ANaI$i-r*hho#&zJ22m(+xwcVhw|DLl{u_U-WyC9L*rjqjV)eB{2Gu!g^X zlTVTTCwj#@L_<&e$v=Aw{&H}%InS9hSoFiV8pOPUoLB9*B(x)dAI*#Y^kq0SoxF&y zet)P9w5s*E-|^Us3c_bjNll@ACT+4sGMDF;N%{38+-PY!Xa&qbN|-Bt0ZLRgFKzaR zqVwv?GGe_t0jyWhO7@VoPJujycHvjLB~c@EBT_R_4J>eNYSe^WW^Y&1;}wjf7J3po zE=|&A$19CGL#BX6>^6jeh45wXt;6G6A)QHq5g2{gW7aj!2gk6cCCfCm*N?r`SX8cpE~2SZ z=|byNGMLA#s#6Vv_k{Z0<2X`ATsz{8*A^PAf!b*eh=Wc&54*vI;mYpSqo~>PqLn1e z$6VPLzg$6^A>X@%UU21Lyc}0g!3CQ9^TWG(tL8&@4P-?4U{o%DCZsk$pSzZ5?ss35 zbJ?GsDf3A3m)Fvp!gJ#q6JwIm8VGZfqWq@zD+9x(D*-Go^$pFw2(QGQ=&@0Ks)*ZC zY}}np48Afip6U=Ea*LSgpD-CO9zIFz@EWh=U|`wBQbnQ=YA$_Y#AZ3_#UR=XMN{Qj z`=@HD)VTHb(B7kbJ5s~Q_+{c2#RaM-j+RKF#&t#YqX~LnhmYKevsY8qPsptpGZ@G9 z9a)T>)m4F>SeQY;5W>V<5B+-|syNRD2hReANf28di5SwC+M21OL(GNiKnL&CB0fsJ z?Z^mTrg-I7j!@Lqud$Fzr=rdv*ev~p4b@YUoyGPVn{DxUJ~P&@ZUg{b^dKCuT8zOA z(PL7uR|N>Hk*F>@XBDZa~Vtr=!ATx@(o-S4sgA89}Vxblw)2Blde}alcp(^7v-sMz9f)~IuO?w z{|H4TAx6#{+yWy`=k=Eh#*MB{6cz|l+7;B#U=N&2N4e}?EHm44M0Vl<4Z1*p zq8&~U#h^cdhF^T!h*_7iUU~_1BTXIdD3&`=U=&w)?%Xj>f{02l%(!3q9=Xl3oNsH~CcX8d z*lK_lslu{3(;XU@str*#EeIv02(1x5EQuLjuIJlb=W=PP-z=WLW0A)sp4^?lVMs*b zr1jzuC4z_v+T1-?EARiy69}yI#yZk`QHwmI@7Z8LRsaCF*ZW*STajj@Wf&bfF84%8 z5j`oVLoxd8g0eqQUQ9-a>mo#fd#MnBFZK^Pg?XlyL`B{2FbfFZYD7EtGoiGP`PKi= zBu2c`T`|m)>}#cCzv*j(>IfYjgaYQq*1cJoU=E^ScEmaraa|fNc$sV#u^kgR92C?l ze>{O|GBmVbJ^jA|TNUuACd+q82()!BMkPnW%Cpr_Fdf&GaABTu$IJ?5a>ye@Hmj;t zD3qpJ^>tnFnVe>Q%2&-noLrv(oXwRHD;Qi{x)dLqQs~=ej-rd*Rhay;l0%+rf>#Sðqq!28UsTNHCwX^r3u@PmX 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%0AWC$zxC@`QF+0l zU<{q_7G3fEApKOMj4XmXnLKOb!$nU5^1(vTc!sb^Vm7Fpef5UetT%qdyP%S-H$20U z-~yGIC{rbu6OhZ#nRvC-q1DMi-x=fUA6M{Sq;jbp z%x5P!tcat$enz5;E`X3_63_c45iPy2PWnau`Xzt zWz(NVA1-bKJoa0NJWX}qR=HO_C)aICn7d@`h8s%b=i zadS`D^_pOa(WH5?)$h)zlnVkfJ>!nsikQPjzeFhZcEd_rdWN3o9w~W7F8Ck(Q-L=g zx-Ht5h`RM@6jPBKSwPok9FW<-F-r?HRi`42(o-hRWx>^;>=aVPSt_}QBOc%SMC*t@*92H9C0AMYTPM*lrdvxoS-?` zhPz`@5dY^2hw1jpe>S=6+_U}kH4f%wOeRgtPo~ci^NIe|d+&5G8ayit*{c`4>W?7& zs(tK8GkBnSR_nfa5&%zhQdJp-_K1?-Znlsinab9my_X0sr1V1PmIU9}>WW@&VmhdV zCV|?}4exe{F#X=cjuX}}F`H=ON24kg%##-RRg+c2SE5g!Wfs3W;5WBp!pOzoHXQVo zX7ZM@0bO=iub)YUo}2VqfB9l}VOdgSFo(Kjb3a&wV`)GM2rzDuW&l`rTOz+COlUO(rDGG)AB+QrLt^VWpo=*5x% zQZBizP_}-8W7IWQY94_DH9SyFE-bno9Uo*Y09d)l!JECNAoQ73H;EMx^$IfD-~=HA zvp0{}_1d&q&^mY^B02DJ3BBb$qOYdDiYZufO3bfw9KQ%4-p0A;c3|-hw|Xw|L8!vrNm~xbJUu9$1#LMKx(dJp zn?1huzf74s)p}&Z3o%XIr34$!g@ElL#(Prm@=iA`HGE)%(7v}dMnT{FmyTRMZ_48) zJJ#f(Cxm^U&Ih3^=VSmSLB$W!)M`e)-&-071}}{N*mdKT2lpTC;55lQwNk-e*ugh>)%Gr7C}Vs(ZrWz$3N$HYa>-utd0n=SlhhgMi~PFD0%1 z{%EWh-NpGgaTKh1+2Hfstc1Oqw}pOX2EmdX+>ACJmydXFatiNzcD;4rlm2Y?Q_}B1 z9=<-Qh0)^)Czq-?Xx1^!EFU_1UjfdlVpc+>up87E1@?{VRHAeyb>9*27`f6ob;Y(? z6$sBo@B+7B|IyD|C)N-q2=nyn%x*isu$huWei0meVH=L(A#reJN0>AJiFZyue3s5@ z!k3n7xCf4>@r7=|{Yb+uf_T572AO(PX7RG2RyNnz%+pFSdyy;{yt17sA_P`X(8wTqn?Eb!LTNsBVPE+U9>J$h#f^7*R zf=8EIVXj?N*ZNI50HtXj`eONxl|Zg@|D_~L%$Ek6PgEu+(vnzu`z>mZETV3ga@(Ij zs#12iLyMwbZqOMFl$eGERB-iKGG7=HGo3_#ZUJMa_93n`aNM%1HI(55!Slc1A>jG) zvhCqoWvh0d5ovy>EhcHENgrl)f*@80yj1SefPWlt#b_SsYce$1a7=z7LzYxTGAsWh zpGGIa@Yr$)eDmUUgylYrYoVj$%+cN{^6(snA~w^|YBSL>b?;2m=G}~GkZx@FV>-9z z1u5=icR0}u&fCti{bZ8rqQpTU3xrVHy`s@7DaNQ(nMF7pbwJ;Wy)Fu(M!0FnVSec; zY3-g+`y=66l~i-3LrX{i5{H>aWqaMZbt&zpSgeb{a zqP@%zxGo5hIB9evwYQYwg-EcJt4=3$Lm{M@U`sUWPvqnc3209}!i`~zRP9Bj%z1@Z z!=J+<`&N(vmhu)0^fS$LxQ60F<#>!J&n2E`S&v)k`O92!%W~IlLL2yVROfshd%c)a z^$N<<9zTn~*XgXBw8bt|1dWSimrSwoRy+V%m38t2$5f`?aYpw7ti_R$&EOUEJ^hxe zT3T`@W1A`y=FI9g9T7as_r2B`JrgJSn5O7ptbeZ|y#rx2Km*30c`9moa}yp7(-WvA2gi1s_z7x7%=gwL#(4K^s6E9Ffl z0-9qGdkwP6aO-d<`%6k#D$#K=+~1>+~ht>z|QwmG)-0?t;>2r;skXktNU0y{*@I69oD}YgkZu zgDoU5vK1E!zwTmRk&X1)KBC`)TcM|crjGF-pee^D*1gWTCx0NVTfk-zm{^_yrs5NU zt6>vRCLVV1VKH_3ePk0E1@2c)I6J`roX6bkvQZ|NoULPInP0C5^4Uu?y{3g(=AtZ9 zAm{*y^H8WxVR>H@z2bCZmTyFcqP3ioSf#jgnMB!Xv`lb=0c6BK9Ux8HM(YAxEL2Zm zjro;OR*;Gd^{~J7l3kVA%wz06h7rq(TZoorv83dBoQg64{2c2-9!tU<-=4F6Hjwrl zdhJZeFOI*m#l7)I_MS7bH;P?hZxaBn{x z;bpN2eky7JN_3AT0CbGlOjmH)rZyFy^hgXnjZm-x`Js}B1baAfK5TMzmr}TS>obXW zURgOa1}&}mo=>2w#=ATS9SJ^5GA8dWb1_+)BudDJFj-p7Is@)O?Unb*T|KWL*1H)|1L;~cHMzYpVq)voyqNpv)|0)qQYgR}CaR7qnT^<=JZmc{eemXm=#F6fF zJaEdxQYJY8eEjW)QZW`-2EBzTACKJ2ROJdEUbzWPf~Pzs*vspxRwv=v5ZGvVZ8gh} zME8&#gq;2S0`-U*d@W3F7YR!H)LLpCIt>t|ckLAHgx#S3Unw>+#7zR3woz)yR5{Ac3vGo!$*U#y7(&Q`(LcRRRri_Fj)wVF&*t? zrK8~3D$ry+Th`pWQU#Ju?V0o%*|;;GP}E4k6=XzfWVDM3kN6k`BI-%2knDcaI=!>17)|$#GFo6dHr&RjDP)5%;mw=!K`+HRZO6NGT8rGU=q*a# zo~2sBT4@#mFckR*Y>H{XDzZxx=(7^ze$<*ZA#E{$`jazkK2~1Yd52e$M8|qy&+ArX zkU63muJVmTxSyQ!K1zv*an>Ve_X}r8>k2xWuhV$u6xVv`g-MN;cCP{`d%ANea~3)x zsjC5s1u>us`w%;kH=qwtkx-?;14$7))f(>a{C`iXgxS4uUEg@g86Z*0wyi6=6Z?W# zuLn@nQ*Av6@pF@ON-s!e02lzp{J8PQ6C4|f=;l53%{z~h-Fra0IjZg5rYPw<%R{7q z|H@TSX4tfDIfDPz<5XkQOOmZ)hLs;{*54YTiz7K|Ho$6}s04e2`s!mHUF^<%f=3@0+Gysg2`--cei7{o(B^k5A{eWP0b1 zMmW4ghm^R(n;?keu?X6zQ3jIj>=RdLrFlpe;J85t&BsdfMoJHAW$U#5bYKmSN0$N# z{<2r*X*Ot&MBvPUvDD?xHA>t>Puj2@e_q6mVJ+SFKyP9VDun0ta05%pkpHRV^B9_~ zPaz6Yu_d&>QtU(52nUmRdNars1puwaVHMxn#75z6fPr932T26=9eb=0mi^v~qO8}x zEZZ`g)T-j>mxtl@n)wU{N5fl`#a#0Fkdern75Ng>9`JsS8WjRp@M-Z8AO#i}us8yM zKqREfMqF1qWv}~+K$vr;yyi38I^XHN4l6DEuTnKfeG=M=#PnTucmApgggN|teT%2|$%***#xTBU z8Ay=zdJqD)92ka$N0#wNb<|Yez0of+$WQB0irntr{ruNIYP8br}4(Kc~SLZjuolq{3GUq(cbnmkpr>^Tz_0VBB-v z@r5UC#e%-59$lSjCQO7vBXf_@?0^bxS46dyse)k7uWd%?Bw z-0)#~U~t^yGzd6Qw~cbPyM1E7wbQ(Q&guvf zxB<@l(RwjdFsug~W%PYNzn_cUa7>7WU?>McEwAv(a8|unP5&sIf%X1q zvuxBXq>1g9$X@|gJ^LTvS_g%gLASFMI%5>E2FZ787o~jq{}88e7g3gFcGz;OWo-NI z2+}caIQfrE1mqPN3CzAlo3Gi0ubz+3HT*n~EiOA7``ZJ!2Q1qdBE>bYrP!2U3}#5! zOog5phYK$Zto7JNsmzZHz&xK}uX?Ws=o2pfm@doT(13MPyEFO6(WUkl^2l^&T94c3 za4^OX%eGF_jQFWcoaJ(U4DG->kTN1;^?Ld>=&ckwlcOOkTIB8<1PyJ=)UL^I*yIr8xuNnY9R6t}nb`&LIWp^}j zYXvtO0T5FQ{0fdwbJjMZI=etCcr~Wqw3VKtb&D&(#8bctwvMCC*iFu ztniebhaFXas@SA0j3Dm`fCZh(oj2>k`5o*YEmIA)a`uL2+Ka=O_MhJ5NNxr>t>ix} zj0}N|h@n3#;%LpuZ>EUf`g3R6Z_fa80^X&}e8nZ&tm^R1FN5KQ_^vTg9FGHlf6o+lH&ZwIYQhk*c&Q!01ta=st{h4z%m^Oc~ z8zNaK?Y5($*5e_SNG$?zuu>v%W>`A#=yyZo;7va+H?n*;SJB0nWNmW?Cw`5)8-2uA;0>M48 zI!T0i!z$)X6)quc9Rdbi^wI1IZVL5=bWm=|fF7Z7noyZDJW5u)SZ&L!ls}|6*;tmj zr}~sIgxq+G?I9=WDKy@}(HB(jrxV2 zn&RN|7p5)x?P(u`zk$y=9u$){ogXRwzxF2#j#Gog{j?#<`-TEP(G_FB?(}N7Joy2% z{l!ZfV;C6}Mo8mq5)|5ERJpe&_0lG#(CX)+VWzg5giI6)32#mRp*SbKqI&HB22HLD zV*A@DSIrU+vXcyT++2HkBVXh3k96V9;&ovJ>u)#{o8v7DRmu~WL3hSky*D`QTj+dCb<}GMYH5RqK$scgOD#JN;5Phiw99&K#VG1{MHQxyY0@f0l;}dTr-={4!MfN z=MU3wf%(K!o2R>xpZJoU>85Od;nS(vK!3KAtL1Q+#CGINyxMlfn|%?Rm5ZU6&3bU3 z>t=8Tn3cui|EL!CRXa>{8yXM%F#v2}q0^GI46cZ_x=WB?dLpA7RAFHYwhPvuM=|ZT z1;fYD!Xb&jQCkay%W{k%pci!LWcC9(Khdf+|!7UOC)!*c9RM1ifnLX zATzJ$qajr?3w@1<3o)3hA`BBat`3I2C%4f7M+>iR%k5(NR1ABLzxr$Ggxj39B$BX( z6dQNIihoKNXkO7@H^Q5K!$Xq}V^UNqf7}X;`I;`wyee_rko+^xjRY4nE1hKw9k$1? zpNV6iGXb$2|HYh*L#qP?hPDevhuuVtaCLJ_oJmXp7%<`P^p(uppyV*+GZs}B!5#eU zB$AQbc5ZHQ$uiV~BaTH#lCt|5$-|G*&Mu-DeJ7y6zDGZDai|(p$ta)^IJJXnr9fOo z$V}X(!t-cq2eR5-?dBB6XHtd-ORoCAf5X+D{>M(i8XhFdsJ#3s-2zI=U4Y}LrBeQ> z)@#lIyo39oib?+a^1AD(4XU9UC$98l7T8@gEKcz@0|f(#j;G68b9<*Qd|EF?PqHob z=Z2PNcMLmeOMBL8h=L^Ytjn=U9<#_NN1)wZ)h5kOx9 zn8A2x^k076m1K@A%S}le=bSmyZtoTe(NS^!5N5!p1sS}Kr{xOP@0Ei)MofIKm92M6 z;eap*&el(zpXn{DYq3N;xylYGMVX7uR5-jMYac$zZT_wnuHu}CAu(2|DFjF%JVYs9 zpOBsEU(x*5D~|QVO6Kx`1Vq`NF$J;6g}BKn3FWdnxfDZ zr9ECCFvWM@DF&*uRYrQE{qi^j8CxtXh!M-re;i8`U2t84xX!JEMd>%X5LkWNFEXPl z=5;&L0Y-{~M6*;&6lUJGh83rnWp|W<`7pN}8)HtLfrP^9HR#OC*#K!t*l`;)7hyj? zbf(Pevc8aH5EEk%Rsc8YEVg)kF+?V{4M1rZQQ<*%rieh(UaIo8Awa)Q5uN)yxnF9g zzF%&kUtMEQ8u%(?@S(B>BGh}|0gW1Y{3k0M7uehT!5A#N zDQcLJhhqDA+Gg5LrUmuv7J(NqbvOQYIt{$$zVxw@qQ1>2u(6|Z%j+X&-hikuVrqFE ze%spF6zn8`#fr)=x!ok1S~Jzvs}J*|^Svlhooy(1_$vbG5YP0*Z?+_0Ik4(H`p*Vu z?9@t94)1rv$82gwBf^z2Xj@lxnILSv|Fq?}8B}j2=W#J{6>UuTv`VFV6sA8K>zGtG zDzw7~A;IAlOb-()$$Ir4Iv6{)u*V~ZTXlVUsPhh){|$%G5cbQV-^Rm^msMaGF16-> zBNbg>d>B)7eHE;d57GE>P9=}@lJec=Z-32ew1C8C#H{r3&!z3m)CI9k)OGht5Opk> zGuKiz9u5oB9m{#`;eslAO25&k5NKS7Cx0>Qhh^Ch%i~}`|A1*ttlE)7^TN?9CgsLn zb%U{>um?5*>D(!80Kkmaj6O|dFLn7gz19OAC0_YR0421QvB<3lmp#Y*1yD?hheo~ZLEXyW z2)X7ZD!Fk9@A>g&$RpyhUjWl_o$~!5{sGdp&L+)^>1k+`JYfk|e?SssbD~Nezw@e+ z8SEs@mq7>ce-p79HW+sbe4iHhLGCl)+yMk1Wze-Ls7aNYgsfn=Fp|U2?D}L4Vf!+E z9EZyqLTLe%+q?hq^e)Ui_{Q}4^{Lrg_uWfXSOipvtp8OUN=rJX2{Wk5u%3l(!B~}# zPvJwH0P)_BW@aMgOa|d-A@|BlyyjS&m8IQHWZ16{l0cn=QKkEp$7P|-y9eCJ$>Fnv z!^wYOHI~LLYax2tW;!x7rkt+w2ZdpfBMX<{O8pDozG)wh(@k-9>crm+PowNdgL$81 z%k+5XIDqp#qGZ^1@bF)e!E55x2aCA~walO2_a!X|YlA#j+tKR>yhOfngg&%(9=s>8 zAU|X4WtUQN!X%>&Gx+5;7!2fqFyAJjixy>rSXHsv9~(ZuR65H^1p7J3(|c<=8Yqhc z)l7&1z;6RIcx4L+pd~!BhD1ukME#T(1h`J4Uu2$jQGT`q2*!vfB~3+M>@oMy&Il`{ zRkL~9s3rT|KVMQj)J1oo=ad|@5>o=REWf%gRqTE?xW$((WKV5fZt#SOZ;&N=QkC@* zVCQG)h>TiSb=P{9G{?~o!TH@yq~JIA{5FT|r%=Auuy=YL9_g5m?0!F9a3R!)+lq=v zn8r-6_Tvo73*!78V$sxw!G>ZC}rMDS=&oH=O(z+SiLlqW=T+6vJgFSG*Rrv z)vcW{G)p7eDS*vZRRjk>dqw@csaeRp##igZ7fyB$;y-z{~DU0fQ^jpaDrXGF{ z$mZ~>h1zP)$l0Lm0FD_$wG*N+J^;uoiEl$XGyGN?T9eoXd9m4q0FmrpF6@=Z3Kv65 z&t@`~Kg>bs@r}9f11i^Y89y-OmH*ne1_O#8qm8tWnc=NMd4C-4<=A=v&ZN)Q*fE=9 z;UznIs0;5zq0!YdJ6YJm)6-zr2kxQvYN)EO+l2@dg|kY)$4Lr`h)Z@H{TMXCGDa%4 z&y{h|{Pz3_+Q`y!Rj4&3cAjG8qy71fUKsN`?$~sj?RL+=hPjb}2uBE?{fHiV2FOo= z8TU(1;GdJG{V2IYI(@G3G=x!IM;8A`mww&oWW1R+1E1W;95+z$#)Bu`2b^19roUl$ z_FcLK9TGaP;^14mtR-VgJqok&v@-|YPO_Hx9wOyGo2)j|k*uw{0t1e#sVt)w|M|t% za+6U2C5CMG3A;bN@Uhz1GY7yqI|cCJE@qVo4`@jB!*QcvNed?BT}O&CNd!PWbhko7 zQKApO?j@tN@KJ4~FpcQ|kI%c!`q6~hCv$}e41G*gSpP+q!<~078=pQz5F#7!uo}%W zl+?RfX<=yN>`K)gO-zcZZvy7HH;<2?CcF}wyWr8En^@8?q%?RHyo_@Zp&`VhJ)$KO zaj5e>;FM`9x3Nk*>CrpqS-qo}^Fhel2v=bX6QjSOMp}1Qie#gsqO|#4no6XgGsQL| zJ6^^lhoQ3{NGl{t>8qr-fSyucL(nW$KBJV2-hF&PBge`5wQ@y$WSf87cDSx@;bB4v zMC@OQ`1|AFho>L44u)_k=KN~Ufil>)rbAojy`fnwK_-Q3`-Tt)Ym^tbq=9q*&iQ&F zn`%?zV&H89<;oRVt!+RL>YzM#3- z8xex8)|9b8*(R_LAVnuRJh&Pm6hIJL zj>B$W4B>F+fL+2>Q!@sgC=zzaBEM!-1vZD#Q(*KzkeBlWRJoX_Jx1j6qT%dNVH3h z=@Zc|q|syeMS+=DpotmzSVR#am@C{!gc8LBbBZ6evyl^m3I+LwY*!f&3|~qQi4bJ226@jQ&&AWe+?(kTvwtl&)uN>} zc?00nALpMV<8gCJ*rr0#Jx*PAd(W+ff%4$TwZ=fbz+*V=?MMA&(iV`d`G2J?2Bftf zmrGn`9_>L_nNeFc#xB1ROEZ4c&w}IAQk{p#B1L8Iy?^o_dfl`ze*ESAgBNK2x}$QWzFq!{>K}Vx~=sm>9Dpj zF^1SlJs#eZZ(J_oo{fOa!=7E&*b{~*+zKo@;9P%5Qy}uCUaoDwM@*3>k zJEbS|kWIdqZ@xHQ9j`90uuu&!ax}?BWg^R9<7LTd7XizW6_M(&yGmmeAC(?g;$+xm zqTfk?dbiYiCbdEdbwvOT$wZZQlQ%u4C^5pne#A7k_gQfaRNUR~Vr5xPK(=;$MJ}Ax zpIto3I53Y3;#}|fv)#%e*uu5#yMZ_Y!2DPMi3K7ukaXR;K+_*ULGt)kpc=(8=Pm&B z&o1;sskP!XUvYNA-n+Fu(#S|j{wU(#ePFU|+xHl7;spNGZ_#e~YI}BV-H-LqLe2AL zd62P}*IGOTc>XU7C**9@TG6P98)~OHLKzBIce_rEW0IsL%7xncTZTlteAXerCVy zxk)R$)p&SeuCJeK1RPQBzONrFrF%O=1gp(dY}`XFt&SrPH|)SPJ1DTn1}y<3>N?0$ zgb>Kz9&z#M8DiHwQ1PTKheP$z1M{^gmX7#cu38QxM z(p0r6GHtGY^EQ9|v_&=z9{sxkp0Gt_HFcR78-`RJmQl*)K0N_AK~vB>zB?- zvw=kebt2aD5_=BQE)l{!5`QADV70F}pS_Gc+!ULVXHsFs)t;*?D^W63w3pTfhgBF3?5lvnGZ z3S*@#>6GY`BD$VH>TNcao)&xY6oV+%U|KQidA=&y2MYW|*ETZ4csc&H)054aXDkF3W`D5BQz8@t-O!sMANioUqkVgz$#GHIobD zEu=-I{Bk@DT}=Jdy@e$JGP%ILe^^WJEa;|ECnep(s|z$n57P8j18i|3?e1ZTgE2s8 z1apAQFni1N6A<@}*3O1LvT?}PolE|ZcQitYA&gp{c? zb98!bQm^_c=!!Hoj-rz}2WcKi|Si8N}?*koqCNIy6BM!5#WiDSI7!8V(0k8YWueDomc&XpHU+v>nFn6UegRm5kNHfmTWN3!IRT|)3c z^W(~#K~Fa1d@iEgy)hinu96ULHZxI^s5XxOrf}Qw3o#X_iRA%jS`HERifQLZWIH3w z2nsv%SdB`U9)H-feZSUAld5WOx41%QvN=h71E-1!3zRQgFwzH%E1I>0G|egW>CtCh=2jSWX}VF(fY6K7$cEGj zDAfgMPrlln#2o3Y%@UE!56qi?*eYB=pkC>Ce$e+-GYbuGSl8HM=i zb~6x&luyb(qrwu~!%~(qGt^xDichU3ro7GcU#fur@q;r(DuGKgDXr&!B0p(_V3bwb z>MW~>))Uj?-Q)h4(hruTt=Hy*YV@Qf+Kz~%Qe93KYN7jx- zz@DhNxS6OyOnr^V+mODEq?lVgMrJVv3Pv}`q+uy*y>q3`Kxc)Dl5Sx3-q@wGL5l%W zvigyQV<;sD%7yu4Hu%@yfF2$oAkZrHY^RRjXWP_t>6ABSXYu{pKxTs0!g<{9gbj>t z-s=a~HogIj-OQ312n4l1=`YF{)(LNPcW%j6XQuAKAbDy(Rk_cX3jSaQ(icT!26!lx`Z4CVY#*mY9u0a@TJCM3jH z$KiXr1@Oi`g$c!Y+~pU#l#(BVIW4Ub#7GM+qOMkhjW$@n|HQIxYj9j$SukAody>O= z>GT6ZXJWLvne!FJ-*EfVS+_Y->T*Hs$?{*}NSgfuQkgY@W(F3m=xC%RsO@P*nOmm1 zhcR?wFx8AP8ZU=PL|3qn^ypS)0MRkg@H;>fHx=rvZOUVGUn+-boS3_BDz&a7)W3tW zAtiSO8?u2NQC2eOcYj}bWmnNg1__RRqVBg`jsgfPHd|fYSpQF-t5ovdSTH-;GC!aH zb~1dz@slFTF2rOm83 zT(}`3TMQEfl$XOhF)UK>M^%lUVQSwo&g;QdGS`y{K3s@193M1$0hR!;fYjVQ9Ft6PyfY{SW@eo_WVo~fb`JDgFvoYDmb!1S~zs-V(efs+>vh( zXScTe5t64CbB<(9-E-qgbLJaF?nSSmMS*%3=1xEF%P>xJ`-R_bMf8pxhT#uHq&g$% zYoP5kFm=zG0KS@W<-P@-7EKKZ>?~!+K3h(KT>Hfq_~MrIUUwPZl0A^oDRP~4#(wZv zI?PF)Jd6K#G5_kjhGs@HIoD)xf%vT>+}!b+pIbV#sI zv&i%je2%t)TYuAQxZ?q&v&+v=8(je3Ei0EgY~%8W$+b!kwzC$AGw`2FbGUrL{^KmU z3IgsoHAAd~GDB;CeCK2)QRrNczv}!B?L$A95v%Z4y;=Vu4|9w`R~9>ROQ{)&RdyDZ zu7<|fV-03rg1fMR9}@R0AXuUY-t;Rw87qxp&To*8Rst=3iM*3YYl2x`fN&1;twSc{ zsqB*1VZT#z0nDL)I5+taYoh)~e>;e(VSS*!sA1y@y>Y#aWbvc=yKL=WlGuaOsapQZ zin_gSW0FIE&x-`UMVQBi9OW+c$Y>AGS!Bq)RuLB$yP(@9zhJMF2lg6!Ru>O!_~FF; zkLT>d^pp;eVK#m64w>~=#@YT#SxuZ7zEf3aInb~@%TeIcb(C8y^8lGzPAl7ozPgcc za+2@RHr#+e!-%ZErBmgIwMLd<7d;u60)@iJ@Oo0XXNr?%bZ(I~*9vG18c?mg-iI|( zY?g^X7?dic#1j%m2vMF}WOCNp-!%l9R9WzjMp6?2P2tIz=&)L5VawFc7V0#cu%;;D z-oV2i(J9g;d+Vs>Ik~s^<70vX)gLtp=5tze9ZPxVwlMX&fyo*r&-^}5GmE24@YD&~ z)=;5k&?)S`&G&T=pX0!;hDi!*a;lYL%NJ*J!ypm7L!xe_<>yuhrT#UCLnQtD&RdT$ zHg6P}vG4ZLj-|Y4OAkU%#I9Pb@^CLxHxdMyN8=N|1;!ZoeF3if6t~uvD68dnSkM%$ zdd%P--(p-;7@?u(6s>M9e6kwrL!p=)K)0_c6qTsq3Gu=~(ucB4@alg6#uDtXHjI9Y zhow~qJwNH!dciY4Ct90K^0lasxf4MtfOD97_4%5E_n3xvLuT$badcwd4RYv65` zA6Z#=NL~-qen5^?_c|GMsFbk3ci~LQS|)HFoO{UeZZ+AbaGkeeV?*~b&MmBk9;*Os zQ@7?{xSNx9VF6-VIaJ`9s6EOevCt!GL$Gad0v6ahR?k>A9O7G@5DB3>F-_PD3jo#W zynPOkiDE37-Pt$CuXjdKaApq}>m`ni%-Wg-!{_Es$F||;z6kfI{ zLFYeMGmmOCb01T0XfrkN%*SB*e(q5KNSS2m6XlkQeSSvWpz8hzVx5v__zik8{4Zb0 z5C`hP^0RA5I4xz;jyI;kOaa#vqOW0U!t4DE%?$)+z!oMmdy`d31;h>rh;~r%=#lv7 zg0N2U1L{TC-5drQDgLKW{Wq)s3r4wTubzdK*rtEL000010s-KnCD->DNMSPL0T4(X zfc_NPTt|@u$T8Y!h~zkO_RxS`$hAB8PRpiYS_?yTBo;BXGHEWI??J-c-&lM1?VA_l zmvtSLynx4B)VRc{Zt>C(@J5LXsn{eq_e@!WD0XtGxH6EL7L^`DJs^~4l@5yWr7hM4 z6%Nv=O3xF&=e}doa5_TjqVE?sM??hX60BRUdoX{bqFaqk9wGIvA|~*qA_?8LwiJw( zY{m)1_eshtCB^g+Xt!z2NoX;Z%f-zGAL>B3nnrr&d{h9SgH#D+3Y@p#_ex@1GvHKb z_MKd1cb?w39Ig6Rlarvr@7RBSM5{4br0G>E?kuT>?*zSLRK~~mw%*7H<$_+s@Zs?e zWrXL-4^kQ>6u-i+an;3u_HIE5P*{z(ID1Ym9ru7*!kDxAUD5yRQlB5xsBh#xot;I~7W|`jF3{k67<1&yh+2zs9+C)>kyhmIcPBt>(VgKGgI%ly_z+ z@Q%k%-vq56FIGPxxum+31)%fFz%9&Xa6>x5pu%?hETViukafgv-baDS;97+0mI==* zxMS~B?J#S6AL+A=Qu@XMgaEmvztX+vQ1BYKvxLH zSsROM-HqE5T0$%~Ak;=#^Qc6K2~T&r_cD$O*M*fB_9F_c); zonf4O%_3{C#WN0`IxW6ZHFKkjsAQf0d5%(l^m?~LQ)G1i1Nm=$JHNEs3}JX(o6yT; zadsOf-h$+`jF{JtBXj{3YI7$Zv457d1Cjr4Bv-dfQ1gK6wlYz#Uv<;sFzw$XS=pkR zzX_*k7ye_4(YbUe z)PkSVn=H@(!gbt2#MNf96WEM7?DsD%j}POc%ud`e%v>UsaK$o$M{>l17;siDhc*ft9~pHRfEk{AL7t@cV(3n*h(0Icni^IZBKJv@F4Tr~06^6~5IH zk!5|JELG@t_PT+5x2-69?^loX=PO~Vl1<(l_N{lFN@fF_dWOB!BLhhz$rhRb%{i&u zN=%iPrl>?InkV@~mzSg7WaqH8JZ^*MlTYs#0rtF?lnQpF*I3U7+KHnr;Zk4KW7Fd= zPR6#rp*oNk;P0|Y3^G+ylrScXwVkM%HD&CsJxDEg>OFq%FA1Lo%SCC&$WqL8mjH|L<{>#z zzBOltN#FGIRZ)P5h@e1{5qpY6qj~JWSDVHLK#`#U{VplY`mxa<9-wCT|im8D|1icuX*8Ck6gP7<0MRS`Qn{QGZcI1BnQh2U#}nVL^JmET&0W^ zD_c~$oU}N^Kr+|~5R;dvcJQ`oSqLtg2LVLafvs@rQA)%nti?SR9GFAu-t`M9UwaPm z-emED2K|lF+qgSxhmL{9uUfEAcC?^Wn`@)1AXk=Hhlv=c zV``y-8Gv-QtBdi6C#r`k2e0^zIGUO+*7A;T%QOo(~rk52ZX;S}{_apJHf-H20nt<*!Wmmk{Diw9iz>8MsZO0W$ zZSVfotS86IEvBeFgE{AnyYti-dF|0Qs5^~Go_<)i!F!}`=&b_J-q}n?wEK7Rm5b18 zhJ9lrvV?JCNgc?bvRr^7H-^ZQ*6#Nk6zBvq9lx#9rD?d8o^Gsdn_QA` z+5V>uK+3g?JIE2F7ymSD?n_~aOgzF5N28BTU+fWSV-tN)V8E>p|D5+&&A;7Mdg|QO zGUAl7Qn)4$#urYawbW20oqQiwdba55MS$TVIlVV;n+IRX$$V)Il$DPQMTHU{;##Q${9LW|RQ?;#RP{BwgWt{P+84 z&R7JaUG8|kSNCA6fpElE(S3J$LNpi^d!Wc?6bNcy3leVkil1ov^Cwv}!-YXkHZ}xa zHtZOl$p;QL)(jK|`*; zKVkn}T<;-Aca?G0=z)weicWo_|LZIcU!++~-Y8B(`K`sN9zF%2oQeo=0BJy4o7WCMV z1fh`fr3lev)5`jP{i3Q;IFHlLi36XCRq6j)x_qc1h%3YEY&Sf72Dzd(m4CZTzg-v~ z`Bjn35-{Wvrnzi1b?E4qM9-`#&>%jExeJs$Uq$hx&;`4zW3Z5n@js|v_M)R8;uDb_ zypXDrCY1SWIUl=F-}-&!k~s&3Gj71fn{EY4PXW75WV)1lIS^|7!oGP1odcf<{gyL3 zs&lE7E~bJF&2~D8S-=e}UQztfJPSE#Z6M0Kg~|bi&Z-~%)gae*K)k_HOS(F0l^~7E zu$q5y!#6{pFMTmCS21Ou-rqy$H*^!vO7p~_jiLvk>UgLE4Uw(?Eptam1e2m;D8fG- z#oraHyFQT~yX%-VmzN^HHNw>^u4BeAqFlnS>REa9xT}2@yy62zww01q;0#sJ%>_S+ zCBT(vpnfZ;ncjbq28O$U);b`1gu>qM1W^}+Y)+YQ2dpdnB1~L!hB}F`9-c?K_-jVD zkH(M0XiV)D&L%dU$6?D9vTJ&!tyZ?NNd4Qa9V*)fJ;)x`>06)%UEwrSdH1_nBsE-| z11DJ>&NXyPU(_`E!G>%%W0tJGjpwT4NCx$^_Lbt4S5@rMLg|y6RY}ZhEK(vC=qp9j z6f@7S082x(7D`-Ii3BI3Sn!CK8)rF2pCLG=*yc}Y)`$fe%i#L+DNcg{X zLbOE1z;e7sT-=6?#!-#{S3D*|Mi}F}%NaH+MWn$2g^hx~kPf%Vk&42Js#3XghOS6c zkaVfpzx>0)%)b6+CCN|$GMrwe(OZcl{>=Ey;Y%A#@Di#@mcbb)Nh{^ zc(dGwAWzyw!~`>4J*5fHxF(UR26wzsiaUZ$^@=8Bei=sbI5GgtC;%k@8I8qNh2`|8 zpK@jV*JC7GP0|A*{;FyTh9H)^&e^cVsHcvmkQq9H6NFA#CS!LosUSwv1l{(_IrN6k z4XEfRO0r@CjVX4tKtbStun5$Q9cVrXN{q*HW6#%$V7~ER*L1nt3O%%v1B`!wd;v;R zql0C*WJ5YU#+20TH|@P(Bkj*$!5< zr%xq-q3tY%^InDCXuKbYfGnn0Dg*^t!DBE%p+V|Mx}rc6roip->FTPuip6=Zoqp&|dV zUYTjeUlnTz3H5>RGaJUt6Br=Ahi)3 z0J#F~)dTeJ{mCO-{NOd}TKWF{PYl_w^56mrucUZBmpa6uix*Gaoq#V<3p5fmnLOr; zH0)A7X61PvkP54wz&}A?y_#HuDaRed-DkZ2yy@Yg7 zgIztnsUj=vtH_w57#T}`7?PISS_Q+%WYUNLbUF#2Z)GMDc2sjb_uxdf>_M?C!mx%1 zO2K!+RNbbvuCK#WITg|P3RQA%lISj#Sf-Cewn#tJr4Dm~Fvkd-!SL037bI)rE`kYTwN`6^ zQKAoC)fqHz>z@mTVBYg(5f;4Q=DzJ503g&Qd#Q`s46h9M_yq`PQSbr#n1lxuX!|Vn zr@<_P-&MAf9Bu6JxqtYa5nsI3=&4Ky2huOu+PV=N> zLr)XpOv77>=-UvtI)HK@Za)!e`{uB+%N2w+@NZVmuCwh47huvO(21or`)Qh??^*pE zM+F8*ZWGdk8=u$FSB`yFw(D2-7_9C`U5@#zZG)cqN#)IAVh+bkSSNaGC-pc&z`zYP zfuB-Ei?za--T*~kiAb$B`&2A|2YXc5SdF>Sf37Xn*bQsn1@sdHsFD|&I-Yvkh9B3| z-hnxcK}Ar&FLI^Kg|hGDelOl_)mzp;GsCh8ls9*dkkF)w{hvD|;W%hIy{z93qTu3{ zHOH&rqv-(7I#m))*XaR5Ic~S9rvK`sf9nR971cZrVr=VIPzCb@bL=Mj2tcIJt>DB% zS}!7_fB^t{Z9y-`M&=)jw^-D9ohB#~BWr}}(M^m#`jm}H(CeEpK}B>M zZYhNUz1W=WXvlxAl}v8J1^tWYYy8}y3=_NwKE9%;1l7eW0x1J(BrR{c62Yq%i5wsB zlGWV0Ar*V&h|1=flsg2(c-;Qk<}*kmc%jGjlPTedyQ9sd%y~QT>8@s+II--29|XDb zJkrGrLB-{GFhHFrX-G7SIpYXqjJ3!YFyqBbb8}rVRzS6{8miaiz}ieqYw&E-@^a8N zZr&Td&isXeuBizo%yCr1yfQMmj3zHY`iXdVn4$(XZzFgef{`!f-IBh!J&+unNOYyA zaQn!0K`LUFu*DUIsvz-2^lT*))3#*HZ7zSeqekFsEM-omU=g*FM^}eg)VHXR81tVp z8yUvi`>7QhVuvMPCVn|0?pI!cCw=jT(YMsFcuU=y&0{~tW(F6NzLoN-W&l!*MQX*d zD;NS6q`73y0Lyr&3!%!1?(O-`6yiM2-V}mb&FI})zY4im9wR5Rx z_WKnr*Wrg`gX~&2h$&+G!5AFO)4s!#Z_V?HdYz35riHH0Kbr_&swXqFcJ_5_G#!qo zJb>xeWy_D8VaLk(;XF%2vdWvvBl`yD(eF6cwXhyF;xCdIe}y+jK7c2?52Zf~|AElE z%N2!9_Yx~3tU-2_pE#Tvdb$QY z9~+Wxsq3^{%4J3l;hh92Xff~}1d>q-i9J{C#}{W-yJ zuYxP>4j!~d%o_I#u$piq&qe7Z+ITTJ)<_lrlV9(9`Zyw?%s&^Uj#d?b#8Ga4=uvdG^z@fr3J zmU^Y{i4D^$rNi1B`lT_66o}b=^Q9Sqrb-tEIq5n;ls(6~N*KvXyby&#l_Qi(W(*(} z6xQ=HIMbin7QAZ?pFg1psmlqVH+P~|n0Flty=buqjkNS32Cdm!%oc1M zh2KzgHM)atqdyZnDL%ZQ3H3h}C3j&NQuGk8KO(-Zt|C}h)?NXxLiPxHD_PA?!Py+_ zX^o@n*gIp>?_^pHNnq|%rkCPVDTNvqg{E`s45!h}(hY)i*ckwyAV!7D4LFt#A=yT> zSINV}-cK-ehseHFICr0FMr3KD98VqsV1acXQ+6JsI2u+(AT69lC)YHO08a8HA|VUe zZprPf=dh*WBqA`z8C%zxY$VE`xI%9SI$z8u{$jty>5n$~sS)hI8lqt9!I7-0O^^Id zLMLPBr|<17vmy(T>r*LWY6Ui<&=r76I(alLuUwb`M+2CNq`oxw6B?hMv0Cly<{=>g zh+HbRu8<5?0pIRFrVkojyOm)f-2}dwBw8I!JnHj1lGRN`M40%rc+8V2Hlpy9aC|!a zXb{R=lL%dG9i5Ppx_{mZ{mUZ}#c-aP;vc%K5eS%`!8KA)D+}Kryo3{oN(eE#TwGs^ z`O>rEpMPyp$=~2Qg$T`QLKe(hXo_O0et*Qg)BokWu#d5iVPitz1y6VU0*46N$r0$P z+jUiHp@;&y1=*Md-z+O1^Gnw@1s$Jyrq1*mZymYB%!#Q z4QuojPznLwA#%tv*l-%Oq2`CYsL}y@Vuq-hE*O91x=txPKMSF1B(>=B41E6vYU<=) zf_Iqbgkek3g<2$?xBO$Hp9RM+gw$q?uPiT|5%a9z+5hAY(Xo}s_yTV z67PQB^2F)VCJV zvt@rk&suU?Y+={mirU8ni;=bav>avnO?PuNjwRKes$hX5$#CfhL2h)aAFhu+)vino zgpxKX(eqPjY`ko6jRg5gR^v)wUGZ*!z4MCtRGuS&wZ)z+AOz4o-bJR{IcQu$w>duM zyZhYCe(G{_){Vy3qhZnl-Ct|WUIk$2*3d8Vxb278ev=gIP3ogBt@lQ-vRzs5iO1(AJrc9^vUwCycWmdCX=}! zn8o^ufG+uyB9efx7iISp4##UEq^@>t3o?UULLtxj^9Ix}btI1Za`8ynm&*l3X$TY_ zWx>l3`ygc&p`e53L3D6sa_6PY7Fb&BoUPmG%fsT~JLSHOSHclD;5nqAbpPJKsKpLI zv$zQH6`em2`K-0~Mvbhd$a6GX^pe-v7>k+03($}6SwKSROeaq?_vitEMqvuia}6iF z`OfJZ(Fh2!!!}a3L=sPl7Fv0o5uUm~yD|Xq@7v!0TR{f4&gmOO}dx?5g zo6K_mjl<_)P_htAr{1d$=NA`ZU@%zIF~&EQpV;L*%wbbrN#HM|!n0LCuC?tV;Zt#$ zOX0Zf*^73!SpOWWiS4A#SG%f7JbBw|SyYB|V`!C3OMiYZ(Ymt#YlsACInz3yRi-z2 zTWlwQHwb}%`%J~7EN<82?-cgGph$HP4yd~bp(7&BO=9&v+=igc+Q zH>8Vk#Q;_X^$61{-5aecdhwdgmW+p(!II%A{O4|qhgS-K8}=TPHnB`IH~$L^R#L+7C)3q-4dSuIo+6RJN|htY;CH6pkMx8Xe@&4nm8-AnC;DR zz|N9#!{sJH)7#$Zl!DUiuWzH`O@ezfiXcpck(nA!o%cPwGK!ud4iG%Na_e@lVByXrZYRz(4N%e0?>E>QN=9@;g?}~&b#K7uDpJw zp{3A#oPsfl`JNJdm5nlWiThTf?uC5~&k{3L9fzM7Tpe!zotPU7)hZ5}Q&JnL+u9ps z?qDEZp2U?RH*dE9iWOG(EXbT-d8-|r6xEJeqSAWpz%-UM&^20BE-)=* z*k1`KZ&rZav2dl;=06?Oe#142`6Q*#zmf`C+4tuu*P^=D5jt=c5Jmwh~B9MvPmg7 ziAS5$=6qQGIyerymTGOv>gT)RX5PiXb%`U2Q0q4s_MV|yleBA8S}Dl@3X7KVy0(A1 z&L1r9tFWU$AYRUqm7uzL#rp9j)jL}KG7k_dW*j6>p_wgVd7kSlKo9Uqd9wpWFbzBaKl`vF2BHpk|!pR?sTSJObA5kydTN{OiH2tvyNcArwSr*CHmu%bV ze)hDuDh4txEnRJM>F!n^wb}&U_|37kvhOkJa27}K!oka?`FV(GuJz|-m;VU;SJ z4)doFeur%py46;8P3>Jeu`rmnjSaWLHhZdnIy~JV8xjav3DBnJ4V|5D`@|Ef%fP5; z;t^JOAZY+aCMwLaOl_b3o!N^7Wac6Eg8*fx8XqCv?vlT+bQ3k}er9jI0 zn`BmYMJtt@Q*&G3M9e$3bc%XHaVnDPf!HSrxuwjwZ{}u7Ay<$w13PAsLACE!Ttm6V z=tw}-u{F%mqkx0lGaxC<>8=Xt-j!ekBzAa4u(Vm~n=@ovd$Ht`nO{%-5_YoPx1G!qG+vAEs9t_n^Y z-fQ+r9fai16~jx}Q`9lx`fcOD`>GeH)cK8|Txo7_l0JS;`uUxM#eD2_nTD0yF^B$7 z5>+;^I%u=)`;{i5{PkXNgO$c~$(jk2m)HgWg!PgSbxS1^O*inrLVLg~&P6j=OA2yLJQZdz0cJW%-8 zl-%HNJY+g7%^r%r7q^m-XyEKiM3Sc20Ii;zPV%eq5YZ>i7l5_Hjq1n(pDd+@kRnjH zlfJ-lR>bBRP7@78Q6B|@J;)gm?fWVccPwKiD`~ z&*e`2-QU>~t4=}oW9qOVU0MYM9!?6WzCjoYCo@L%92Sp%*SpA9qKb2zcR4SChkvC{ ziDy~<#luE62MQ!${uplI$fU9_ot8w{lVGX#E9-uQeSCC zyNJdyR2fKr3YxY<0j@OXgy!_5ALpL^m?3SG+?wLd>fyAY=sqXf5qzo#F~amQn+qz( zcK?Y8@m17r@c$drP{~^4QFS^svQQiiz{}VTaJj4NzOc@+*bXqqoX?y^f72}7yv%`z zR4>ZbP6(jvgoPqK<9|hX;7$umdONr3aoaO#{R_PDFhB_3eMzq+YSknZsQR=rwik=Vu~6Yy*Hs&{j9`qt?bdw<7ZqyQM8{Hw zYNMcwKZzV-(vk}`rFgF6OjaCvR~aAi7}uH_yC5# z;njO*lwu0TV2KP5n}2Ftea4NCrNSnqU?X@zJaQ)}j1|%5;h|H0Q;9n+O~P(1?Eq5Y zVb6$6<6I_Qp3@;B$V0yA7+5)f{jlkT0eV!AlgC)4>zPRf>-~q2R9ElQZr^Wb;;jUi zD{t{Ps`s>IL`j~o0fm+CyuKBgbUuh2&eBPcn$(slwtuv~cLl=Kv7Y-0wlioFTt#_l za2A2_hAm>W=-+)64<$k_+ED*XLuJ=?rWiLiOHFi!rOfWPz#*-W zPCijAg^!u1%!8pv|rGzAu(5T zGtS+Qn1hGz}fH^cea0i@ywYUVB-VwaiYKjFR35x9MbThEI2)>=`}V zhmnI2wQ>eYIaa?yN<>Q?hWyzb((V~i67^6mp=PO<0ZY88Ey>z{q1g6|_I6+_RFXa_ zw9(Z|e?XIQ;BhJ?BA^zr6^ZF!g3A&ph)b@4G%^4g2huOt;4Z$~0&*m6>SBtA2jGE4 zRr!g)$6AgAN5s2h6g+ptAbXCDs|Dd6^>wW=d3$8Rf88yd|5rg^#iJ!i**;@Ia63AY zh^Nr%k0Q{!{J_MXDDQ6zV}kD;1>Xu*{BP8oMwx$9r^04ix00HbVI zs|9rnt{}61;;W8muVv5v&hvI7cUdj!smw9OcmLG{Ho1!jwndg2iI$y?)uL9zALlHb zVA*yyD=AD#>Ma%nl4i$t-9ZcNISSj*wY((^lDp8#zRN((>KS?{3%*k`mwKwk|3~C& zQVZHCFMu^=A~?cLRjBkg0dKK?1T|z@hmffxNJ?Iru;-%Yqj-o^j0HPAsMqxz)aZEy zNV0WC8{}m9xZLtRPI7klT%x&nR!fzM({2bwMnnQ?B`b!{)BaI!RIa+k6sFdNVd>yb z5Tpr>v%wrbAEQw~a!pJlL_16sTr6O93ki(-K#2gE_R7iMz{x4f%a_x3;Idx_qCuvk zsj+KR#GuBs00E-Jg{Z44^vjb$xt0RoS{uXAOrB-FCx- z)8;VWo`czX!~0`0YcZgBNSSn6n5()RIr2FLqEWhVp8p0PlaMasMeJx6iGxJ=^sont zPs}cn22N-zpQl^&6J9-$)^%^b3|B#hImdBUkAD9duB#me$8Xe8WF;U%Q>F}jb|&y-;yfD90ctBw+?Q~07aanO3OLL!~zmI@XvwMNYg|*elXJ)0&O#U zBHV`$V^Mlcp1@>$O0OR-J!gva0vWVMM(xQJ*PqC*Jr6Rx#CvM;XstuCwFVtbefaeS zPXGV_0RjQxA}8H_#uAuCD;cp-)czFHClEfZH;@I$f3)}*7Kfw-T&^G!UEmL#Yg&nT z%FMYJFqt-@)@dM^$rYMTJ^#ce^(B!!H27g~JauE(LmvdjZeWmEH@A4#0#&H=x6c)e)_YEoKFUx-W(h^JLTn z7F?~Tc%-;tG-ZRjFl6+WnE#B}GPCNVtt-j9QgZ4x31kHX!W*?DB48bq{CEQk9@#Mn zPWjQlGcE-b(8%hW;%%#2ehZ=tX&*v-UQI5FnA*D`F)ZAyKfL-*48q5~<~Gfj<6N&( z&tncKV2C?7Vz&4Vid)`N@{?uSSSf~N_$eGZ!tA8AhmQEJ;RCbDmuX=lk^ZKKo*z0{ zV2#KE!K!SOa2vH8<)c$9X>ZzT85-LA(DyW1>wp`rK)V_}p4*T-t~&&f2fr~?v$BK+ zPulu-42j_A*qc0prOMZJ&Q)NOKna5qoIzeQ`$a}mJ8F0zg2m1Bke(A6i; zz6oDsuivD^co;EdGM{KHDrgYZLr4W~tlNruP_<6%lJri7gi=)(_UQudQ?;)~yoA(( zQ_a0J@y?=~Eac5*>0Xjvq%*Bil0TOkWI++?&z{{MP>-U&x;2r*nO(l54HrD;ZV3h} z(>kW-d!z&$q-7Kb*g8#WrPexL>bovLCApS?K*91OiWf~ohg#j>lm$Mpr%T1u^+=r; zt*?&|tiS*O00962;O6~T(kv)3@h~V*oY}%?5aHf5{5Hdt!W@3|qdXv;Zu(dc52!Uk z&G_o=Wn;0kGf-+SK*tvO19XF;cH^N*_I0FYMg(0-73w5B7T2oabaC&6l!Kp_Hzn;K z8@ikqZmWrg#gkCfgsX7KVEj=qa6BC%^Uk8_CZ z4%gAQ3-~R`^)R(r2p_VONVw4fa1CvZ&>Kh!AxtQ3Pu8!!-DrH@h=zk1JVRGLn6bcP zM>}2ra>#I@NOaS%P%H*2kIyIvIcM@lQIvo@l0=2tnUK_x*^_(4&G+?&yTj8_bskEk<<)YDK78&&-88XFC5 zONg}d9MAiFFancE?f^Q6x7>qt`pu>FSbJlkVaVV)yxvv3>G4Iq2${DdciYDrkkxHX z%YUl?avla1G!(FYz`yhqtNZy&hFRZadqiUIHG6aL$F-aQa+&yV(z!=xnYIdoE|(l(yYrFKL>r(G_7CL~ z-(t4jc+hGGv(|==;PB!be!m-mvzX2~oFzF+yH92im*&Ujz3pqbgIFfvP96w$81O}X zX8wJ)sB;yG-tXTkig--o$RGd!00962;X*C{++jhC`@{?!{uI-H9yB5Bbr?|liZRe} zho{X__MtgXrg6!wWqMkGJ%A8A+(hU@L{Pu^Hw43?jna*~#+o`o-fyZCcu7D^_(ZLl z6~@jmcC$-_D1(4v9B3E-1qSG+^vFYt|MyJ*000330nli*SN+5=7(ii>r0?o7i-+^D zv=r6q8y<@)yHC3oMfAV9fEXRUq3%JYHtWhqvg&X|-KRVpgCk`T+w>s>{*DDgme^$M z#=Lh-QkV(c;87>MHNfsK+Qsnz+X*4D^W_yDsInj%;P0NTVdE0wOdt(uW0QZ0WT;*L zX<0^kH9T;gAR98)SbQxgeHQdICHINskX;${Y007A8z8xGsI$ciB2uxYznnLn2>*=* zSc902v_#Z7|4Dq_Rrac99w|0(Lclt}iP3X-=zjg&&}J0vcK&?y%L;9j)UQ2%`kr?$ zJsBVty7cx4l-gEUTx#210m+E2^|KQw61fC^PVlO}OwgKvWx;w(-)|2R$|)y6(pb|fO|nMZ*@thIpp#qxC` zt(M%MKYc{zObu2d_4~#CJFdpQylap4dvClM3f-F_4%VnhT23L!^JU3c`t;jtih_3? zatBblpbt5PY(+N?y*?(z)#Hy&BL?FZL5HD_F1;o=Sm#~Kl#ybGVu=6jSe_*JTzvc9 z37VHyEEnAL(l!cs{h9#8f2awFy4$ac4pxQeVK_s@~Bnhh3stQRz88VQrb zWFX`j!L8hbuRy4ag?pa)>vHsIWmdn@JXD>A5U{BAbiiCA0=v{#j0+=l!I*|E+?_W?B1Hm|V#mkkr5ZMncCHH1k`Kj| zx`5PYnvP;COmNtpr@QOJnF?`-E(=xTXxn(1{h1~OCthR#|2pwL5@}eV!Z;^Al8&5i zj7i0y#TI&yIuqVHJg$MQcCBPpKd0>Y$@B$fP4s@ZGMZbQRcM^CbPx(J1JrsO2Pd~e zx*A0{tIDVLu74H*9?>-v7V2Rb_5boMWI7S)ySA2xk#_eeScPvBux$7q_Gf$x_e z?**jms~xxenK8CKA*BUze>De~BK;rzs~MG<m;PK zT1vLSKsQELxO;M{EM@HfjkYV+1<}zDot_6X4nVk9!KlUU$N4?qg6PH0 z=JQmnRsz;W`3pQn@cp@tLZlV2MZc7@*L3%4!>Y=mwJJ5T$|~&w_CUQ9N=UMj%a_hg zztu#OhMQSeLR&A_c@z-83>;XehZr1!LsU7QUAj4Ujimdjn|Il4rCsyh;(#gW z)Jt!gmS$F)3*Z=_p$saw1@Y{{4Oqt?ya{T9t&UL@`>32aq#-tUwzqZvnA0AoZlrec zA+^S1Ge{T#gA-YY#T>1M@sXPi=9BJ-Z{Mzvq5R1gHYxKgp@HP`4P!)uo{}oFk_rpR z^JP7irlaKdW3EBv#X*d~aYLJ%gUG9t6i;AS$MvInH6$9kKySH&>S<`1nX_h|#ssba z1HGsU4^m*PtRpGb+jgXu^sRxwZ#i7^Wye=@g2`R7vtl5iv01P&)bZA^;@B}x>HTEP zkNVvy9@%IsJ3xi6&_dZcRoheL1a2ABR_CflUbndmqZq5b`O&#Q{1SJP8n$>}5lW|> zzVv){tyU4!wHjN(fNO=ZV;oH)pe9-M)&Y~mAg7Ulm)i< z8%^BVAz5Un32gF_f440eTkLL#*zHlx%Ty)O8X7sv3;FHUv^r;As0TchktH4KtiYmb1Ua^>Nvf3YU9>1+kh|g468e49cAK?M z{?|RCXW2gc0hyq-R=%CtY-6AWBJOV7Gu8o>q-{4T5K3tRN;RtM-SZUqMU4Ix(ikX{ z6O6sGw4e?9;6Le;TQU7M`(w)G9ZHAoa7hh{Vk3)KRnLz}uuD*yiGgx`IhU0;p74xj z7RCT8A8hx2E0@9Ddf!pdN!-C7JgzV8W;`v|#*m9SRAba4`_2s6xoJ$U{hL098y{sb z7B4{3s3_PHmFS;>3O4cfX zJX`{lKUsT?&_TIgjKwZ9?QOm#%Lm;Ty84`A!^ZvL7+7Ckxui3ngQFDs7~Snph*Ct! zWr+Y)o5X)IxP%&cvaLQ(Vixm~dqu5wo6$QtR@xe{B>6z9dzmR*$4$CRl}WveD2v7p zd!F`Lf>r&-A$dxJbSc-@P;h$gNdo2lWz!nH{Taq~yx@>PDDZsn7GkXVVjIao*jevpMbkf1d+Z14$j!g}vTn&tKM#MTG|MH9UQYke z?GOH9nzFz_-icxU{zd$2XQDIANE$0ysIjRZWLN+Xf1-Kh>uF+xmNq$5BM1d=9`8V7 zhd*Rr0NErRhvi8W^>l0zclG-~V3c1jtQ%B7q@fOlwsk8jU|7G{6^Xq{Hu5$D(Dpw* zm|BQ>InI1j`kgw&t&F(bN-EJ!|3H4_;7c`(6HvFU4=*qvw_2u*v24s4JvkO9oxdkP zn_TW=`x)nwmiPTjF6kz&|foh__*Ngrq> zt(hPB$IxY*ROvn5mGKJpl9qLZaxy8u8H&?C*})c*YJMgQ;hH6HA`C~LdEm@Lr>yrb)N#NW*qk5^kttrbd)uViOE}iYvji!{=K#~{X z40pfF%O4nOcnHIuXgG#AL9qx}*Q`>j>lf$=ROiSjz4MFI55Uy@a71ejlL&swfKidm zrl-ca<8pfcl4Z_C$CV#!;WqN^$U#y9iLD+bRJfm@d;+(*SR1T0KE%H+~A+V4(;CKSK& zWa-t+h$0APXawG6v{_L{>w!a>;V8X1z;AK&K{A;twc}aoOx_Nlw>NF|MzpOm$MYE? zjm=o9<@2PwEJbtpMC<=2^Nw}zK1u1xCtONv7tI|AqX2+GsxwV^mem@|)=p*Il}&VZ zoYxqNtj9A(l2*A%{OanT=(B!BH5lcmmEG=xLaN(@k3v^=vj+9r5ViyQDbPCv3-3?0 z5u-r=MoR16PwAy|9bR9Hv;pIewxU$OrD*~BWiZE2q{R)72mZKpUGV^Si9V$Y?Q7t0 zGUJOTszn*P74GBR3cnTDSv>X)kDnRX9(H%C+@rTth?<-g(p>>Tjn>GYxiu?B7uf~( z!{@E);$*PL7W7L3IR23)61{WAD$8Edgqu#}biW zpYf>qclD|C+S7_o1@A3w+Y^!Wk(sf;HKnb{n0 z&hpkrE zbXHkWTgc7ORZOg+d~EpyRY;t4yMrENMD%sTR?gDm)?6i(@mTShX#F6 zygTaPGR#$zD_N0Y_!#xI*F5EB34S{n7gRnibBhv^kHm1DUoYdhf493h*H}YPCZL{0 zFXs!#5;l9>AyGe%pRUBh1LnYgx(C{)rBf9!hJYgt_cO;YMWi=29+LLu#RYRmC3=4) z)0#btuJ)wj>SXzAYDx91iYA%n1aMC!xemDsamo!JaJyhRdikQA-J{_{xUc@b!ZwY$ zzX0!Wh)w%+XAr$+gUu2(X&)#a4(F@B<6w(G=FP%6l_HK9Cv`*5l+&r`W3{3Q15&&& zNs!FP;-;12`TDm5Q8BFPXW4hOu3046L`$l438(<=Jp~D@50jYw=kL7+K*sSM6({$Z~lTC@O7l!AcUU)gjT7nR8flMmj#-X?CGlk zCL>Gw_I9*$ta3!fe~z17mRxV1t~VKX+5#)EHFZ;zv$%SHlxHGgg5!NdHD!Ek!?1Xu z9fH|$1sx6bI2xG!-w5v`^72OQP1j(P1L=U0!_H`ON6b;H^;inNxF&LYE3b5zC}>5| zTTzoR2%_OuC(12;(H~r;v^Oi<46iANyhTY%MN{>+s(}$U_s)g38#z_B3ia9i{5oMD zQqkz{H7uvg$clHp8-5Jib}VmJ`$;7r&ERw+U(&a)4%}d}C_n*;iDXLkUiTj!k6(Nn z^1qOzD)E=?1p>}FC6}z}#h!sl?Ku8TywdbMMU5R^yv$f$fbb9tC`YZ*56f*5ec-jAB3 z851xY%6SY>G_{Tq)pRd1Jw60dH7sJJKcy+jrA1D8Xq@R`e-$#mcj&9N&A$_VCz|hI z_YeD8O5&mD)*X`(`OkJw$p=>$fGNakvw7!9*EfoRt|lKJVNr2N83VYLg3ajgpaP(Q zBdAQMkv~MWT7;n3D0^5X>m_n=o|OM(=aU%F;$VwX#lTZWG*x@u*@$T=gJdtQN`pxg zY!1dA^_ICna`X|evMjs<8c}h_Y)QZ?BhkCJlKK`}uVKs(tY~*Aobf=3cJymJ#IXQZ zyKCp3Edd-AQrLEl&8Xz?BKEwudnPKl&)q@Y2n3xRmU$tC_qGK`H=Oo|2O+I1`{sz( z{U6ggLu<NFKuWJ?y_PhHFtPT0A>%$nUO6yY0UW$EtemNV)tnoCPoCL7`LB+ge?CGpn-d&vTG(KadF?n#~G6Ce{d*WC=ldg0g7HGbn=zLS%fJV)MCAk6t^ zbN60)ra*G=Rh80)wj3S3Pd^3V)A%TYjC2zfW4ncNf^1 zk{<>8V_T@#ww!}#)qcUoxi{k2E-{(qh&sJr*SC*&i-y_1r7ON-c@*v#M2atf04Ua3 zul-P# zJ=AVO-D1QD#+jQ2q-QIHXPe$dkfY*2l?4(gWC;hfrCuz}-(Q0T_axioHf2#reiln_ z33gyM4WMg~A;7DCL#^dd+md8c)ZdjKr^qpIeT3^>^ z45W>tOTykS#XGz2&ESB?De71|JrFXox3iMdMtyEQj$etL$vTELL+!lrw$SsV7|^L1 z=2i`gC-f_3Bp0}59FR(K5Cru~zmk0=$ZS4YUdpjEoWEt~m*V_ck~&@Kuw} z_z!`zcWy^=Al2uBGnL0K?Vz<9!(8upPLyFvw+p&UTq6*}jZ zh);HskD_Oo_+sRj#Y%iX+s(;E=0!~^Q+4S0G{8M8&JFzzh9`Q{@F%urGa~lk?=$<# zVaRPGQ@ef4H1lYoCQC;AHkajm0y~f`6YckxC(uLA>Iln1mqsNrt-xpzXlEVS zS&gzW&_IF&yX6l5OVKJ^s^K#n8|%Xp%+r?VFdg0}dm!uGp(kAj2L(>AoMx>osKGdn zR1(6jBxCG@PoUe{g;R@YG7?B`tdUACj5PKguho?dj~6~4V=*W>)8~sNo(jx8Y0d0g z$Y%bP44l9XQ?`z`P|88wR&8AqICL^{;mmIr^nHF2DSSnFMIFM39fAifiQre@;byDoXf@LtBdObIG62 z0Rar(y(o_{H#KR`jVIL?Lot600zl%zkjq2@ruHl@ZM;!4RFg%+H~EuE{Al0i^p3r- z;>aG8h8j~8EwR38GeH7%r3^yd&IupXf#KIsKyTRW%&I$Ay>?1;mOab?ZBqd1F*@YD z!E1T%Hv7Y2|4)~9^daR7Domv*ipV#juA}R-WBw2|;PS(oE!eagg;R9us>w`DCpdVr zaub?!!sMbvpI!N_e>TR{>-Y5oryrkft5B%Z&r{-4Iofj%>Viv4nKCr-PCPB8rrt>W zUy0he95q|^MTTOhzq;3N%`x#oQu2u4u^u~Pa&_xvF0stKJ;5LRrkuu|@JfKeQ??lH z$wC=G(1{k0#4MA4RmB==o-j>z3Hb-I#UiDHbc{YW3OnPFIoJWL%9U^UEklNDh+4P{ z(!9D96=qKe_wAmbqeK(=S*}$36`@i5;VVysG`N-T&f6r;Bm|`OXt3x_n}mrF0C_pR zR2)Ztc=uX7NI;mSLumf4d|PxdLopZ`%7~}-RSV9F$U^Cak-SxOX@=Ob+carSc|=pZ zE@hc=|Hv;APANjPG~~3^!opp(GW$BsXgSjG2?0XKk=lY~q7m&bxFr2RMCt2+2}z~_ zlQ0yYEXVIhv^I`JS41ewdm`P8Sh+Dg7g%z*6#YUIA?728mC#-Z5Aww077sdQLPhOY zpfQ|P)-X6j{)T@BkW=D0=M|``KH~sl`NJ2#WIY@DVLo5S+s)YJk|O;#`ykH4CniXZ z(}cB;V1$K>uKl2s7kBLb(rZ^>dpn7$j-p~FO=8CT;2l0x__!AKl8;xY9GGKDuL(n} zk^@uTM>UcVVdx>r_E$b&S9M4kXUj~h|HYJ??Fx2GjFrK^iS^^%iN=AJ?=S5&pXo77 zg8!P|IWlZ1=qW$N=ii`CMPTNZ5cJp(Ty&Hot-8gRF1V4>IQ`u1Dhq2^Goi2Jb}9Ty z#+5YX+7W4bJpD4W`AN7I_rbO)Fw6JdDty6{q)>l4En79)ok}c(x6o>yv~$xG5R3uD z|EeHIy1iAmGpszNU?K3g=bwAOzjU%b8l-2uM za9fiROt(Nfa({nd^j8NiZ=Wy~WiK1ofzNNg6 zaZz=3Xa+WI&7o9;Gk6R|8^iS0*JXh;Xgk1izZ92k9yoxy~EU25v6upln*thQw3 z!v|{m>r*IE@}J9+e@(#e*G{A_4v7V&TWg`^b8-uJ&1-&SoQF&bd(QvJwPpVJ@teLa_xspLW;@aYI=v#HHuRgXl?zOr*sHxA6nYC+axpFQ` z1D4hJ%B9mo#EY{M--}?U=Y!o%Nx=$ytY3dhLTYG%9M)6nFgVMR{kprB!OH}=VBbX{ z{q%VujWd>8ZyR@1)@$zdr_S*5VFx7FTIm#flT4-wxjEU4Q|v}XQ*R@p{rg?on7e8z zecpFnMG+nvE||WY_J@~k{7DOHjKL?W6qc?Skbz$4G&bRhP>}Wad zSyOm4gx(r-3-;DejYAG7zx*f)eTA=E+<$oKC7tIQv_s!wLdE>9xRNm!O%6vkNX@T( zX_-RS^DH0ie1ag6!d@kEtZs#L{aFy@5>6insI7&Rg*U^=T>C79;fqqwv!R%oiqnGx zOnjc+)iAU`sUJ@_KCB|-VQx>%0ISL5QTI6L{9d+@Omf&FlE6=Dl}x$B%poUNk7;O6 z%ESJj-lW>v#g5yUw>n^M;N2)b*Y5iT4cEX?AsysE_gzKf3lNbJ{^+VD3!Z5X8OfsX zqCe&ZdcGxS4thZ@N>tTof(j0SsX_G5*9ybd=YU-|<2u8Lekg-VV78Njoz9z&Zt6Lo zka~+!0Y?yV^ugU#f`y9wY^;i|uqZ2IDD;rXPWhyFW7t2L%)kHm>_yLkqU;)Usp=n_ zL?S)<^VpI(VkJ(EAKs5)vP?2b&K`OsdLN7`kg(^r z`ILVCv!Uxb3Z6(gwAVn1*#22FE~ zLcJitf%cb1RnR|$#V87=DBp~jc=Xu)6;Sfc7qAbdbE=D*_OZO1Op@^@bR~5|llv<^ zy-(1Kp$6~T8?0lSe-&k}4LiWkR8_%Q$*o=S^!>Q zSTHVEetWf)^L-#Ot)#R;tCRN`#(x!c7XA{zp{Kt(U%&+a;ABmge-v$3U(%2InlFK{pV@prSwe- zb!UVSt!E4cS}xXN7)QJS$}vQqm5dUBjVSL3gy<3atgDoC{#;@bHfQn^KWtmyu3RyrQS0`HAqBZx}d&u0H}Eq zThWsFIR~n+2s}NaI~o&=Gve!MU@pYp#Pbwiyrh2ZlidkPdf$Ydbw@>$%3(@uV&+!= zQ?B`5GQG5r^66^XE zPLYt%oq$s;VT(4zJU^m2jqVc&eiuKRRsGX}L;}5W$v;B`E-0nGo!@1BU>W1uHcDcr z)Ncf*PD&;}Z-lbD-~mXh&$N&w|KV4G?uZ@4BfrpuEgWvX8Hwk(FR6P%yff*De6VN{ zN*KQ$pLuCyJwZ{AT16qQreaeOitT8=7ft{G00962;estm{l*j+vciyP>KM*l7?5&G zzffDWB?C4DpPk8Sbqt|PmZOgf(am1qv#<_^JLGq37Fr9al&wgZZwX^j4#7F5Na_{z zmOwQ$F?k_LN%7YJYOa%-a<0=Tn3w2w-x|3z3e3D%gbQkua-4@j1&xvkWyPc3C_4oLjOh8_JHEY7A5GE#>1e^t}oo^bJ$h~2?Et285X*sime0I z+L3YYHuMr*Orldf;3FsGo=rhe-bu|3(@PAm#fwkZX9_72-(%f`&(v!3FGXkEnDK=5qptK6?zJhG_BBnwWHSvKZ$>s0=0@X2AlM+&1zhdr(N_Q~Af zrl$9aq7;gno&S$QuJLXZy*7t_@EoXcQ ztk6Gbhp*8U4MwJUa)AWC8Lan60gl2(!%=DCuQWTOjgMu{l7}q*5Rck}yC%3e_b~qz z|GOIXh-XosCK8`n0G2gk4kM+c7g8~SlxETs(Jo8l#q)zm;k^4R;TzSiUB1Ek&mk|9 zx~AVqrka!1(fU(iY;1=*@D)pkj9p{#?Bd6nr{)XswzPIAY8K_P#YL4e)D6lObPj<< zK1Q1(REw-g&=Y>BN9`yo8W{iF33II*pDx9$WkA#=fdeH&e%S@F!5X_WB6iW$_XkH( z+{dk*-#YQFR;zB|MO#9*XU#Pfx~isFEX@UyE4t+uf3=M9N|4KEhC@iY_k?UZVn@bD zYk0O@AHNX<7zBSayg9?JQj$(8#;IziC{L)LjF`Lot={_tuj5$m;my3uefJAb4JGnxhtX&`zzc0yos!{5}S6%H46KMsofM4Hh4> z8B1#hl*~I~{a-N9m3BU1Owff7Xc?(Jio>;UJ&!e^e_-I0j>W-TP7X30ac=GVZKdv1 z5<{bgak0(3Ag}_uyRk&!Nh`&w`NT9jM=E5J2Wb};xw1}igcYXYlara?0O9_)iA;2H$_zRybLOzB9(YCQDV=~z z3$CL;uq#wzG|VV^=un(>-+A(E)6Q*?NH70_aE0QVl#E{C2z>U_(xP?h|M5n^2w78k z4H-$@$+>axMEp zDovYP75J!;#2)Kf8gL$FarCA-}AW%+6V!74g5ei{wCMUjQXMppN}_)iY#(2j(&AZZ9eo!mxjpRTr3L=D z?>pxq^e5=Dcr|6D8K@P3{#ybpNX&Ll1G#-zk>#Z=uZC0hRn>TG_>+jQJapW}o(h8@ zQUKl_iVGuSm#yVf7%g;!*+GHae8ch6>TFJ;nl6WkcYr@3sC9*^M8*D z>M0rrji!dqeaJoTn26G~{#n@#dH9UHR@AsuLG(Q--_})u$P74Nfx(mlx@Sb9icO$Y z@lEo>A-=>iT}B`2kr}x?ar4^61RLZWSV0FM(dNc`dPmqf7~;l>3)~kC!Ua4L>w!2{`L{tM+{Ax7DR$ zqhvD|#0+PY3#m6`;ImphwB^{ghZ>(474t_;sTBX(kcRzS`66esdr+>j9Kd3ggd_zb zI?L-*g|DScAXM6*00km7yQH~JW!&<_h2wZK=q7f*uwx(>D{v9Q}t_t%uD4)~s*Zd{lRPDSQ_J&I3M}*?)QDC*^N%ELa!b|hNx^*5} z;N;LsjO9_Lt6D|hbHa)dIW-(U#UIOU%aua4HEwbL+rQCq?MurWn8u0h;M8gf>LtuK z;nhUEE7cb9kdX`=!0DC1GW`uerbW^&r;y$A^+J@HcAt$1RgB>&(f$2@C{@qQf)2)h z)_!g2B7msd(6kp;;0+I3^heoVyv~fA4&PA>v;d@($<*bgSx1!7v^9%e0Tg=<6(gN7 zVQ;EBd_3u(j6|VAe%vVk_yU{pCIY4hNP%7~$|0BbY=WLb`e3zW?B!)1VDJM(5<;{OAY!Bq%o6?B0t5&T$s#18ya9)dZ&ETcml9 zSa|o(*7B;meP4r_Y5AF_=4YJo4t1>xUJNI)=ncYBvcy7`H9GOHs{up!431TzW-+Dk z+|C3n!$wGk2N=q+zh#1W2$~-7W9ihKW@`ZV7jWK^s2JcrJP2x=A}M?qP3ZSAEKvV? zz4mNYQJx;nRvUrg1&?VEw-Pr!qZZve;8911nu!C7^&uqG-=C787HC#y!MoAh6d4&C zd$4pTrt^&TgHi>apr!FPfjR+CcP?AHnPf1V?iq z?Tbndy|Qh7rhbUV%TcY$98)o(gl^S8d=Z{L*&~ewYlV_Bm2F%`gw#(Qa%a+jj_NEm zNse;Ly8k+IEV79fQTcP$?4Gg82?YA_{YK4e&K)4nES5hTH%wazEgAleTAT>NpbX`>z^LaR^8!BtK_6>I{!<5LOzzf=tceaWpBM`76 zc{S0b+^nW&>TC?q)5^A-SPmIc9n%9ef%JTlR{n~%5K6`&OI|l=&!|rd6;U6sfP7Z8 zz~a4-n?Qv6RjIvU!%jA?6e0Ug5wA_Ub?>~HUvPN@zQxw;vNBZ;z#@%`mqZH#b@jDP zU3b`26i8&>Pv7O{9Fk1D38c_DtdJ*kXdPm>gF5Cjzcj5cQsccg6o<{RPh?&7y>!`( zFLc_V@%P#{pG&s#ul+ZCtsx?CeRA58|Jw%iLiaIh%O?XNT|3@%$_j3%oStxSi(0;6??)<&~PkwJRF9l{r{W!q@mi3G}g(BjvhIGs79YZVVu z`t>~RaI)h8C&|9ad$(sIemTD)JIW#GzSGqIbHEk5^{AaB+qu~Be!`|_<%`U~E61r3Dn=y~k9rqS92p8I{WFI{N6-lRlTQ#g}) zfodTg{?DeLF%R9)SM)NsLoUpl(Qu9E$&~e2p#lJF)6|rJ6COD4JwTmX zJp>=TDwfF*oBmsc>SvaW+!qfXFDs5pe;FL~Mme5jF8l_sdE8r;t#Os$#_??#X11>o z%$O>MwT~fZ?(Qx33`ajbnzMdO2d^qS`IWQ$89^s zAZmVgQ*(p;)`Ce|@!B)t#sF_}XZsdEmc&%QsKM+d067jnR?k$L#3`mP<1pe|k%~`G zVb?wo|D+VRJPJS8G7gc((w=x0dAisU1}H2?E61FemxmAPk?0rQ$l0u=5Bm>d&!<25 z(hJTa9Dh(k4G}D}zseO_I+PJar+rm5XpHip9-if)6z$#1XUub4iJo>J=s8`Dv2+pP zJtDN#9|Qr;?jkXg!sAjkaa>AUy2GZg})4?TO^F%q>ZAJ?7a} ziG}u74`fO{jKJM2mpBw&yZg~5t^C%AD=*){`~q6_e6^SC&E=7_`4b{2P0=1O_!1$l zcbbI7fiUA>PQsv%Ye)EN2+w4t(&?`a=lOp zD3yfFQ0J@+r?kbsKT5H-0Wr&rtr9Q&{C=_XhRfHI3o#`orxWoU{-bVLYqFwF!T3^X z=t^~TN)v@s9$4*U8|y+&<`Gij-ko#-*sWzZjIy=C9H6wYbX8RwYMUfCu&||RA+02? zk`O>`B!7Z|*U??e#d~epw(TH!Z8V!bi7d=!5Q?=x2+pvEU`*B@N$IK!I zx*uT_47b=r2wT7ZRd;UhTcX(}V)XTx*mWc2ZoEMs z95obZ#5umE{g?bBqht!C?=TOvnK}=ZS22^UjFUl15K`1c#{(_dsCO_TO_2T5ASxy^m4nMu*GEC1QRoe<>5kJIk zfT9(sZ<<~Mxc8y3NHa&?iUrqfg~_uK`YK8%ki_?l738Z>*iiZqAqG)PXpwT2_fHE~ zUxFo3R?)%2PB!D_V{A!N?N@_!8bhnBwOgL!?HkuPRpPF)a%3MsA3{#c9$Z|!N9O4nHRlZ?V#Xei!*bP_@Ap9tvY*e$WVF5aR=T}uj0pwJ!d(v z)*2+uJhu%gHXY@E1aOuG1FK`^yCnrbZ1Pl==~-RM9vNI6wkh!h3%aw$pz&+dC3-Z! ztW>{_k#wK&(X^A|&@5mHzOK%zxACZU)c)-L;$p-H0N<7RI*gtjO|8wry_N8LyDU)- zs&2bmlzkvBf86v)iweuhkV%Zs^0@rNP2-RK_|5xV(|3Cm(J9u+lTtZ4tDMm>4a}r} z=)v$QCNW6p_?QM%xe%Lop~6x?Iiw=$@&)PAs0@ojoOKjl0w+~|{D)O)whL!0t}F%P z_ZY-DQ-7Q8XEQNe+jrp3w~43odMD-@Hke1R%!C5)0W_UBk z42SbFstRMkx)ON_56r>y)GHj*+yOEb&G$jd;h*~U2nkgk>tJe1*# z;FI4g-yG@!_(RD*i>SPr>_{@0eiPJYtC@_f7EJG(6g^Bj*mJM? zWiyV>VNZUHhwTY=0xnDtm?Nn*38k|`hKogDq*1AICT;&Oe>~Oc$RQpcrj@gS4r6^w zeoCtJ0zZ1fi@--scV2xE0Pd(~P|+q`&YPfK=L2J_${7V!fR{>^`>z-~=-YCF9Vr-* z3IIwKK$VT!NBN4bNy4KR>7YrR$hw%<_d~1flD;8m!BXJbAS>v&m4LmoVuz4r^ezxUpxm#1C$~my~b|P|k*fgPKx;<}?d-2lcb%U=x{n=vM|@ z@tV0P`3#Z%D+0zwO^?)lPXG|$?4FOj`e}FF>@LJRjt#@Uwus~#ohb{o zx>&tN&|t5p2>E2d?s=mc0O1&%J{}y!Dyx;q#U9q>yd09-_7qm%0+i%Z8eHtG)dEMm zv)lSr73kbN7_wW-~kND}V{KFI42jc}WHwjKE6SP6ao)F7~Mh=G1nNAjVs4--@!(w+8& z3OB`Cuw6tQ_9Y}Zc&xQ6+TqC=OLQ=hAF1-jqhV?e!(CIN4nA7=MbQnv}Yk!JBS+ zM{%M=9pf@vV)6(@j)6Mrz5jgwjj&C(_ak=dtQMX8>V=C#^H=v8RbTIExPg5sb23wu zKLfGO`3;xJif?@>PkA@69dqc-DJE?z@6M5+Q7^S1xVKcYNedbiLRHGURu-FPWdB(r zO3FUkumViel~L&}VqhqZA!!>7N#Tk0<%HB`(t?ml3as7TQ>*-&&vw_kRQnH=#-Vv| zSp(>L;FUFK{RB6Bc4yhH+3W*^2CZ2$h{Yc@tf3cDfX5J_4iHt5iQ|>B zw-@~?WuxkCd|(xJOUxmK;SVWXC8j(c!HU3of=Q9{M&q`%bOohgDxlFszH<(HHvs5Y z?>C|9z|?6SzBrA)go<;m4QKqpI>-a zcup2Wg5a}APXBt}6&JdEe6x;-5gX3zExC`G_U_&T@j^p4KZEH@y&&}%%`Jq%CNm-N zR|dHc27F1S&0tQ$;%QOiiQ~F{tO0%+>Xn#{$ut&*KgMuJ;riFBP{XzadtS(3sasZW zI#{gj$Gn|51n9GWYad7kse>7ZRW-M&`S44;4i#dE;$5#T`d?yd2Ov0FkKgrdhy)2> z5zjE{P>yZa#1;i>4kyK1iQq-wsI1QXsEI!_zmyi8H11Xk5}oO`K+)exk*DIljLlg3sN!j+gYh z^)$l9%|SQK7^yXZWq7%$my3vVdWik_Zho)*vi#2a6(gFmy!gOvM%p$UV|@df z69$c`cwsHw(g=(6$WVz8fYfgm^mtis<+z=nxOYGgIp5ZUd`1NM)jQqXI_?h2_jKrD+hq7520D1t{<0~sN>lYdJ(%Ur~3AUni&Bm9z z`rPxs$J!|;wM1-A<00oFn!JjvOMxb4xIxsfx9%es&aQ6OTPT=+*B17>vx}v(-Lb*6 zW<6ju-RK@|a5supj+$~k&NW_7pPBLf-RqA0iEqm@FYz@R9wc0o_+0>!W=!OIfGLJS zDU-}+R$S(OxR5)vr?S}fkwahnY+yP~z`?9Is(aHK+|0&K0|JENPFzR!4MASgf$NMS z#}?lgq)}MI)YVLHL%!qNW!c0Uj)R?&(QgwiPuf+E6ewGuB7{Y6+rl0~W=E}$^qW~L z?WCYHrF{m%z{YU1;|NfgD;x&vs$m{>xm@2E3_H@=5d(}_Ep2n)5}ZocsW_%7zo>)7 zFg!+$(MwAWDc!`fGM9{c(yBH;2{UwmzO104I!1(RGq+=qrO3NXcHj!fF$wq`f`Kit zGnrnj;Ro3u-vom)lz^+vhM@C*$dYkzA1h<*j2F{UP6}gN5Av(?z{*e*e-Duh=e%8f zr7>*x3$Xu~1SH)dUqzF>*pEcy&^=s$R=2;nWV_2@%R-JshcN%@te7 z_$rG5Z^PD%dIAgfjQ$P49=4iMwNYjeQOx`a8ytRNS@q;r&C20jFZXr!(nsB3hA%&+ z??S}bmnPBaPX;d1b1gd2R#b%cv4f^-l}9M8sisP#Bob7sxXadSn;E557Axg9R2d2+ z(XdwO@~k40<-nLE@%{S2+418i+VoQ<7QlEoTJp1uszF?UH)!{i(|d)GY1pOc`Iail zzcGmfDx_c@uJ8XOemk-6Q$S=zBl@H=hEbIAzDXZ}Ja$vU8#P#E2NP}8w+()v>rNkr z%KXB#YP_8(nSTXhQOpxcMBwW423wiZ;tlT;8PocchOSu6#&wW(0(`8PT1>6u{na9L z`xC9y*iWl~%BCUd+)a-EO%H$*vr8ouvU_M;uhMyK-n3E{4PW*gRBrIZ=sTQjjb;Fl zQVlScCU#7wwJOkr9nT7e#4T<)2sGxfF84=9jv!lJTmj#!FiD~!cga2b?s~gn@gK!H z6XjNC?VQ<>6d+@3y}od{Q~SISHajea=J7SsIa=atUH#y1sD0nOtaaZFQnDz=F7$6P z1|OeG+QOI|9R!n{M2$YHyoI_C#4i-6IgKS_5P_*Wy2yvK3>Jw670pv10M=;iKbw&h zQX|QN@oA;Zq}O?r?I@@rWxodl^h1DIsKd95TUvyk@VmQ$^eICZY~i~*fr31Vd=$mU zzEsJz9el@z=h&UF42t7J{;ND@j4x5zeoT(eT_KPfqvcLpKu0! zmjkCv0L~Z`p3^DM6~_M&LGSiFC|vF%zKzy7l_0d#X%8o}se0~2efpFP|!PW4;0f3x81yWbi^=Wkm?Y3>llZBOTX{{kjeV;>=U9wRj^d3 zU7Bh`bZnqVR$mb&7t4)L#{%@(qS*WRVJ4?u0~3+*4Q6bV72*j^79paCcMy)wt0z#U zmGE3j9B)5{C3SbhwVa!W&_QzXCZxN4UKDzWT|n4NmC)6@$7dFR5d;yF0qlG`ew(nW z3b$^|oVZI1HtiwPmz}{N9Qo~y^C)A18l%2xWk1c9mNkM_fOD=@XF?kwa0~!VHWnBD z2+mvx>uog2VNTbR%gvQ`5uguGI;Z-j8*X=u#0btkE6o*EAA(rz>>!c|n}| zkreIW!wOB~I0DQRnXR6({sT9e{yS@@BSX!OTbTeS5qrFsTyS`>j_PoCuKD!d7!9Re zhq~j}c>>ppP%NKfoyu8)WxKZ!xQ<)fcuA?2VQ-C=KCl7B??667#T{t1KsgW&odidE z`y?>`*d!cjIKWh1JP;?T-r0qz6b-P9k>arw+3$?{*b>2EtWck9yOBJU9}C>D{E9xw zHSV{t*ZIX`zmHDsx3%2Rz1|0B9lOH2uA+)K@J6XDT1Fkf+zE3V$QvG6r5U;{iYego&p92Vo;=vKHq%&@2Jbc)f9uNMnv>`n7gmqU2w0vFaa3s9< z_1I7C74=J2)t7i>MhO{VEc2Kv4m>BD5|s86*IaZekkO#4ct5s4~sHNguT ziQ_`HSrvqoO2iz@cI{r=f5?nWi+bu%ZZwZKoSs8+d)1E*A-6HH5v_NSmQ^;i*BwF* zO#~PcFfa_C|43lqi@eA*9R89iUUwoX7UJ=TUhZ_Y5JQDoJ8k`=_jW0j+gd-GcbXd&8YD!sK9qs|p6&=om3O6@k&;n^Xjk3TNlv(D|h*Z82Uc6prZ#Gv4$q z^RCcG7Y<}7ir}v5+-jJ)ech+^TANJUDnDa;Vqe$c+QP)a(SWZFuQe+`hn?z8{LQJO zpAQ(|g1pevP%=&I2SQ~jA8X!cmKZu7>;b1Wks|as$k_1UtZdGuvS7VZByuhlNKL6U z1ScFCwc+4KF#DIY+gMP)xl`N_BF|$G;N6T+cWocNJOsJ!py^b1v32|X;qnZ>Z0=vs zJ$`b!`|sT-o^pkI&E@Ca08aymt3GJ~6=g@Fg^c&DwKYOgT%lbkyp0IwA;aRaMQo+2 zW`ROd!CuKxlZs4oys>J~jD5-L33lMlhQBB{cmWt4<=IF`l-h0_2PWR3O$A7afUxWA zSFHC<0Bux66?!{FufAJ|YHWOGw$)doUqdp6F!<*R(;V&*%b)Yk5!Ud;CBlK-U?_m0 z!wIe-+N@8!z0X7Y+7aFTGA&k=w25~hE+=(}FkE?*ADw}=J89xHblm+s_5SuGu4p@|<4^YFeUqJ^GxYmuF*hR8Y&s{hI%c(&>@0@3`-K=U%HR~A z`KwM%U>j0%#njOgigAWqd{6hI_#S-yQ)O|@y%O4f0Q2f?H#xYOp@YVI+8ypd+XJn* z6ugdzB`;~ir~GG{l0m#ZuB>po&9zR4oQ5dJ_*7k{^77PQxuTr0^OqMUY-!dVoO8gO zo{&h_VIgU?E*tTr+GYG&@95w53@H!!PB_8CRr>xTNK3UCmO9dB7mY2@ztOv7J|*f; zn>)S;d4LnHs;k}+A3zf;C7lTA|HZNKHNE3a^6(<&K_+c+b|KUkTc??75cN(Y2MOGZ z1u}sRf+B5$w4kF@hcfPa(s4eV=`s?MHo4qCzgbgnNA~d2T?;Y20ppObZP19-=>6Pq z%26sbhQZu(;ECz2dq+|2j`}AzgC?>~E|m447euq<>d6wz;*vCBD5al-zE=A1{31E< zY@8%Lark}zjp1`POH|AOQjiv0G@mR}YD$9}uu-XMu!FSNe+m}zZlr@1qc zDPQUh?dRw|R#MAe=WVw@Z=(rFnEsp9**I4%5JFL+!)#fXUfQTR zBgijF>J1w}Iy;BN8tCX0+j-V@FL%Ehx4XMZ356hSlmJ`&!9=aDg)GW@Uu!ngtkgld z{QD?v6Cy?+oW31hB_q}s;I zn0^EpflEd>6_eZn~!R$ad{yZ5_Y?GyVNAA3_4~xW%&&$dMcu z?2M_JTf=zO(?=5{8U0@IElTupl%GM5Sy69H{(wpRpBAa1yP=y=MU3#u9OVWQA^%Ad zyp0Mwcw-^)8r#@N@sq(+&NWksN5 z2CWO)S{di~D5Z~+7tR&Qn?%2b+)?S1Kq-Qc`Xt5{H~(SSDCB;Xw959U$-xQfdwxAY zcy95D%1L%vfkJs9-2|?f_81T+{nVn@`stD$g2!ju+JlrM%GHX1HMm!uJEDSdvhV<_ zt^Gi9L5Wy{Nl>FmJ3iU#ovd2oQ5<^Z+4b zX5IvO4u_$-_X%^~osBZ5%1R2p`7Qt}GuFEvjs|!G)-8%%=LDV+V*an(e||Mz)mnxl zR$3td>g5CN9Ec?G?$KII&%=ICur)oA@99c=Lt`D(C(8>|q8MegFIgKmVQ|szXg>Tnk{x{Q55~Ig2^%Yz8#pl~n$dvhptv%0>4`MRif?6NQMjp-P ztgp)-h!E36&Qy{m+!MxH_Xgr_l0FIj*8pvDe`8~H(LBS)qCQv9=JBjvKO}Z8R~yD{ z+3yO=;`&1Bg#ktvjr*!((~3MHCUqE*muK~FgbD9*iqt>#C6-6wpSmc(j=Q?9Dki6la4yQ;6|T4m$MTL0lp6OG z-%+>$+YSjdP3Y#arS|8II6PIZNb%9BlN9xhB%AFTTI8|KX>u67w!Rm=iZF91)@%z+ zl8W;m)!h$I`yarHz^_^1P&~G;^LYl8{mTfm?l31wQD7}TLGgS7u~|*>grAz;p+i4{?ICUd$W-q-?R({~H9S$z^ZE1!T+SsBybH!BQNSrkabgC29m*H9#y|h^icd;hU*2Mj!FEoSrka0zY2imZK-Pg zPG9Ulp2+TBqn0+DnEKwI1~OVzo$W6{5!mhoD}3l8AbQfn)nXSDkPYCzslu8mcW--LDk{? zdHF9guj*5PL=k7FKWG@pP89Ox4a7a1S&LiT9%Ih|GDd!;e{9BbmtlRa{gVOamYH3) zQeZ2VT2vivP#>so`2xh=gO%QiokzP}q!#$@Ypf+K@%FVvIu3NWu{5sqOHUEszx+XwZ@m)Q^E`nfybYhW=?1%g#9#4f7 zWFfI^s8c@uBpMYUWn!xX6yQKiM6|x<-C0ARX^ntT969P6-5wXp^l{fS( zx!OyH1;wtW8?LYo9lMqCtFI4F;}&`AJg3)PioCkcwvryAP9lxXXIm*r!yU1CnG|>5Z4)*y;t9v_qzZdnx)Au7y%tv*^9&X)L8h+IYG7^$V! z1y#*l+Yo)3H76=XFZ9%DHprRmt?|wn4RY*EK6Mr-1f>1&y`IblDdG#8@jrBzcqBMdIdj#$(RB zBJgq?N6o*`*kP#c4x3eB4aZPZyIYa1vfjJ+2ceL!Nu-PyN9Rdorr{GC=A~tvlKt&^ z+ZO&506V6Tc~G=w-G)5EgE05)rbnX}RLLb)jk*1;@Ihv`^$OG{cg;&%HCClpkxwX#i=}X zKfn|ZqvLEywB*2gL($wG=H;V>7s0IH(!@F>)!(RQY>__;H|^(Vv^%Y@fy8@H^{&_m_Y`r zN37b9Gr@thCFB?NhdlciIt{)uOH*5J2r!)igV!j%^{32sociB@$;Zo}itl;~I}!D| zgLpH1?Q7m`|K)>F((ukPmYg0$#Hciq9wwm@3U51Y!NZw@#yNaCbE?;#|E4n;wYlA#Hw2 zoIvNrKxd!cH+mZ;6fJH&tH0A`-L8w#?=HH&<3dy+Jf~`waRgvj(;Mv7pclc;S=#E` z>|<|wF@!>nxqx+}J$JU;#j-tp^1C;Rb0#m>5SGzb4NB%GZs(q!UL$xYnibgXSVe_$ zXgSO!(Q^wR4>6aeq1w*RA^*}>>js;q2qKM&+p@V6nINS@t#rqw*{a&b+dHy?q=VK{ zm1L!$-Z_JM)J>~m+1rH2sv+l{4oTvIT6X&!e)G2`iUpJ+kWzV(pz#@gRg7r9}P zeK3fHf_}dRk<5w*V8~s3teAtsqT%j zenE5d1Z}?w>M(I{q_Kd9s80^yzhSV423|P%5l8FSE7khvL0IX`eCxe!0qIuX?OhEu z+gd%#6KZuQ9zn=FBJ{F%p{3?Ugz=JtH113*eQeIytepTMX{>yL_6N#pS}C@zE9|?F zM)t2lF(%I0^iM7Ef*h3*sJ8UZB!I@&?ufvFpwq2lxAsdAa|UOJsjC;mQ2Jnn9nV2_ zMkfm@I~RXVhiOf7;JXuM=iM!s+Dac~%Jo+Z^gFSG=j8dBV-z9yO7uYr6ScFN6Cpz^>Y2Rmbo7tLTq&3$yJKE9C(o89~pt ziL$W1-<9(G@(gTvU&{HjPbB|O|4j(#V8}f6IW=MepWY^o^?+`bRz_`Z)&y8I#9#L6 zwH#cPJ*v8Z5iEwWe{hywKOV30DF^5)=~f;6!k~pzeFx(T@WZf5Bj2O_Nt;kGu;^8wWkD49&QVnXt&{N*v5?}keJ)+0OHg8 zNNki&MAl5VxCQb)871a`A?Y||8~-KNkAdw0Z}l<>d44+&sYlh$GF<2GJbr-o=T~TP4;4!*0yP z9J2e~sij1NL;@9_3x+Bm4=jD3c?3dq-(yFP5KjJB@M?RCx_QdTl8s2uOu#%s~AK2)b${z<2U0J~oCazJfwm^ZB!$98rx(=xe|64C#aU~sS*!{k3RF$mkln#y^+9!vIQz)wV{}ZDsKVtfA=8@#hDv}XZ%FxO`g~XV zm;O|QkWkn_wq6)w=bTW?35uoP!g~;MT|Jq&^bF*eNU~$|Ta)kIZ~O)zlU`n|WZwwi zL?T5!k>xo9Zzwd~5nR^r!P>2$(!ot&(iZPV->1brcGp&3@Bba;ep@=V_xHk)e@l)y zWCJm1X*I42#m}kUgg97mIUHnp{-Uj`=w>tK$X*ohJ*qQe7Q?~exv_b4G@zxY**=R% z!LGYTzm4-$hI?XIl=JSIT&SUibhnoIa@fxsy5(Un<%Oz=yM=DAiZtr;~FCh$v7gl1H5E3rX&TlJULi0yyjWZ5PDg; z$%0VQS*HYcQPFfEUA#gd1PR!qe_~<7JJ}jE$LXR}m(ZDTWeVJ^Qj;Q{Qv}K3YcU!D zM!MSV+!SP*l9d1J>1xjIt?m7wPJAy@5Zn5sl;WZ8xn4C&rB*i1Cs_e%UI{(4?Ornk*ZlU{Sf-~6CrRoI1x#RKQ(DuGmD?y06S5+#DP|un@WE5 z4heQmWfSXAf%bgtTm@?B+|9p+FEgIB-r*Jb92A7P}%r{U1U2ijvy=w+A15?M5SI-xUmfrs+%NIZZ z?p}e*JF+Z<3&1W7TGjB$O~MTlVYRpLm6NE8hiNS{^Y(#y8mV1FEwFWCQ{(oLBDf_!3o<{2kGE?v4z7IdV#7p6;&N=y)V1-d)@iKo!R!)0XWSCTL| zz|Xk48k+X^W@^G0N1&7N4OaRIBD7vQAijGD#3`)*R23#~=m%;4>pwwit9zJ<>F*m# z9qBq5^Ht>Jp-Ow?Qdldw@MpJ=yo0nVbQc+Yb|4g8lt%VuC-$sPOu$bCMT53;9)b}k zAhxHj&;ixfz&(@tjkV?itE3SXb4 zyR{G~5*_TYwJ8;JIk;qtsAvq6<8i0E{o#-W?DWA4O5W##z0V1`}H=d^NW_cE$e zXi|HG5NGTkOc*gN?#B?UFQ!r;aui1!&*mIMJZ{4o%PN5Uo*U0n;x69|Fe+WfZv+d}pGftJ*{FlInFjqHd@u2&_Jx2=lZY@ze3AFrD;gr?%n z^>V3Wd&+~Xse{n0ZsH6V`Eq$7Li{=y=`(?779>e@y&-^9qhP;!I(yIt1_C7~Jp$|% zxFP$8fRYLb1(};I1`~S<>SRmi>hXH9#Iw57o&L_iTf45o`O=I>;a9e8H&`1cHnc)~ zZODXo@b3<0VX(pLbU&O1UOCgcA<<3y@GO@oX6xryF__bJArgb0 zfJ8LmDtXcRV@J-bkI7CV?+x{1muH!;&63c2Aalb5BJUdN+t}Nn$(JF5bmP)*BH8H^75kj5K z%E`Rx_!_(?j_^_YOHkNlip&zjT_Um@1yZV;uT@r_oE z52C?DZg@ZGJp=nPw zkMeDW^mb_d>Ap^B?bH98;<#e!#+IpS<*Hhw!8>>h68aouEsdJDBkT>nzi96B5kgw7 zsM56=mW|38572p^{|y$e{fFoQxVZJhhRKPdsfaAp4Murz_%=d>v-im|MQ7?Z$H*tI z%jI#oty(i%VZYkp6S+nSGbWZjT(LDxJUP+eqVX4)Sl*`^_~!DS-*epev?j>v>3~F= zc3;Aag!gM0Ge@(?OI-}wpo{uUv9r&3lER&^i<=Ij^&dRyY>%NTAY@Bjca7a`k~o#f z$Bs@{JL)@<29HKXZpWDhm`>H2w!-+clIx+1uPtsyJ1oAAi(M>TBPH3D3wx#@Uxzwa zN`^ZziJw`^BR@bD9_V=d#L(sQ2j;Y?WMgHW&r$aBE*dA`1|bN*O4c1nrO=ZHXHh&I z!>a00yWae&qcQxzP19Zlmym1z@GNu#S^Jq697PT*F~BK))&i! z;t=F2C;iwd>VOafqvr;9GDytCpo&C3LdO*xT1gL|!%k|)gP}*hF(*ys;ttN<+OAjV zw>+HZ>)wHgU1r8K1XPG3r!#GG^u=B`EWEk5Q@KB<56$qt1*{EMc(V~me?Fc@(mu}Q zBKvF`s8iCFX`3|~LfquHhBliUKTsH1pnat9TD#L-X=f_ePq#V!znXrl#WJG#u|3dP z**(De#pdaV(%eIzOWcu2#>cel1`w84ZXZ zk(sG$*uaK?goYD_bSuQfSpJy;zW@X+(6nG& z)1^x;qjcKUx78Agqw1ora6ZR?s_~prxLZ>I{;P<{P+NMxH!+aL9PY=(WW*iY@{hB8 zi6K}6luv<;Q-|#=J7vGY*a49UR;9H1$Y`Bi&G%UC+f}s4TJ-}fB!|1-8Fnc=A~+v! z?L$}_a&ahQ3a62tl0G5cix>=tOfb2wl`gN;Z#ccNd3lpB3NXd@uC=;;OvY|E)y@#Cw{#VqbYOv@g(8q_Vy4LgrAH z-jk{cPZdAhh?IrytnT{I+PF+Vm#`inFZ%uuiXI0AhR734wcWeDaYE%j3xn6*sAm2+ znTj~h{Q7dPGHg3}Y(tCEIw3RNY=#qCIgo{`6^M%6y1TP~uSyp>N=n2YU{-ea69cvmSBJ4Z2DDxPO9c}TQl9{cyE9www!}(9rC1qFpOXlbJ)ATd zQ1D{@#`!GC2HlkRr(5lYeH;G;6)!W`_01CRifGM`Cam7`Ls`y2x(O9Q**T7%iLiJ} z3^jrhXCYz>=%C&ziWcivBik(VbG^Ayc0Zi4$qNtmnIAVK1S^ui3YoNb-6NMRf7a^D z)z!7FU1hEQ722la?Xire&N9mcv-*)@MgQ^b+6o|Kl@yoE55K8MK;mg4RB229Qi7sL zC$b)_R>@dfEOM?q;F0K}P0=WK--|{IV~~=`sG%<|8VM|D$?|qtDv;%aTc=h|I$Wi%}B~VKd`6NH(j%e1=PgC|%WkIo(Qm{Yg?-ZC;U!n>xfCvkHalHbuZN%vyFwXZwh zK83F5suf%oa-mj>E*{WKyGgZPm`PEs=XYv8&B+rnBcxED#SLK<*58SKrEM8LC@9-#VB9JV6jrcvM^^_3;jy1Ny;;FCJVZi2uB*%LK{#; zV=4l`nq^H?qi*0{qXqi6jvmis&9MfzQF8>*QwbQ_E`^VT{R&> zT)U?@l1&Cf{sx%PjcUe-R7Dcc081P}{qNA=D@Mh06v+w~_R9p0(0Z%4r?dux ziPj`n2P}7a?~`5W)?-GK#I|TAkt(_SVFi*k#LL@VK(9?u)YLz_Lamt0><=^&G-XVp z331*Qztfo=a+WK1lxE8fUlID+#gpd4+5{yfH7!&=S!luv&jq={SO^P8kZ-8zsT+X( zgpLYu=A*z5SMI^fCH1aZ?>i0jLuo1c95_zrI~A7ZK`G6=Tf5B*0+cXS*U`PKg2sbt z>$#3yvqu(Ap#k~{M%O$nF1flxC*<`?t1PeaXv0)t4@lR~;_G%Y4YER0S46V45~Od{ znmBZRYO;pC22woZ1sWDo&2dYQ2HWKnS@Sq`M5@LpKnWrsfILZsSU%PB=-pgoir-1L z>OVSE0Bba1x#o6$Dfg=CS1FZinKsPeFa*Kq^Y24U#`dE?BrH|FLE*Go>>7pY6c|L9 zK`Skac#!!9-wTMtYk(T<3<1OnL|hcI?2oEKL#MF;+*0+~w=&4;nV4jVA!(q`Uf zq^Y>TIkgu0Ojv(;7y&KAQn2iT*4m;_x%^YXcaE#6cen|kin|vMwTmpS%N{AY@|F=poq_kP30}0XBRaJu3>M$z1Tif)_B{tos1|cF>WxGH@8YUo7iWKgCQe0QmJ*4T^f%kw0Do72~T35&7N-dCLUgn5=`PK zQXmgXd4aejuSZ~5r0Z;E76pr84#0x>sN%A+!eB3Y5uI>5ZO}>;!h$zo&s=Sb)cJZ2 zk)hZ;o_o+4$m*FLglj(U`519HGA59joOLsyHooF00`*KarxUIdOyJCoi}SET_5-E1 zyU*@2qjNXXo`!~EOfBl~v&i<50Ue^*cPWM`l&? z7kKX>B7WP&#Jjq46Fd~__$^tS`} z))+s;3|ki}w9fwN-xC0kAy08FgCFe%KWt+9cdL1sFCbRi!Wt{%W%B^261*V5g9dS3#u0Z%#8q(~Ff=2+*@EQhRH5(wz_aSAj;0-a-M z3zR46^l`%o8W=ioBnegpMKz)DAfD*x{uTA}jc>V*Ro?fLps)bz?2n+zAqp&CYchJf z7@zKE$sZ&Mj_~u5rw``(C3&1JZ&F5!!#8>@q zX{~5m({xvUf6773t+ikRsy=&5_$j8E&DMk|uUj9=11|2=znMOhOn^Nw|J7E8h>z>^ZWkKdr8k3LHvVU~Brh{)cM+mi+;5(2>xPm|)a11-Sz z8}SL}=*t@p6bQ@3*|Fw?%EcqVB#~Qt?a(()PH)5V%-D5pVM0(#N~>a5`HlWfN{Ask z;>NyWKfG-iK3C?W3v6TimE`ze?Th8Li+X-Av-QB-7ez7wV;RuaR$Adu^FF|x@G=b{ zK#Ils7ivC@!9^|ED;k+)K9Qj9_9fXLz`o z^9BBS(I+-iNH~f?{YwwGr!D=yjtxjqE---!m2jZLnxZiGB#STSp5$2P0}aaDQ83#+vz8aZbH6WNc!c{aOiT`}1&h7XzVX#69mKpJao zd}d3zC9(edjE&BJ^U|L9BcBAdI-;|I&5!LnD@Vr@GYDaVthxPWvu{JcvM~)KNA0BT zTqRQ2uUh3n&9ss$DKp=nhXnDk&VVf9Ns9@hO`7;{p#?~fstyfTZ7!#46<44n)amM3 zWY_^p@ZWMn4=_yDYSR-;A^4`l>e}+T^`&`}@9BM_$~|ng=k7nUrX|quq1k~`Ty>&h z{_P7-gfVeEH6r1++WWm>#JM!d!|g6-u#R8g1EAaQ@SFqW-lAZFJA?z)X)&Un^sQIM zPrzF^izW=tk9i|m_{{+REu{!#*>znfhoGz;ag-+kUib(77?RiRB0H4X)Oi%R3C+r( z*zsYaSph0yx>OsDaQJi-R6L&)gzf4WB&%jEBl@f3y`f_Jq~BZAcGVQ}Or^K@P_}v~ z&3`!Iv^rE23~j)+M^Kk0(s45TZc?#cM+3iSO($(*T&qG;O^=~^ah9BjNf0!5h6p+( zMpt!IrK=D3vvUa!1>TDR%%!=aiQ{Xe&3?Y!AuW9n`3U@#?`yVO%dIcX`FJcz0vdOD zF!hq`;zm1^5uE75H+N(ZGj8H{QMB>t%nr1bS_ea&b-Pfdc{^#nkl<8{(Fx;q0<)`{ zg9}E7)vN+PyZn$dPX}s-p7n>5?~h?3$V9>fvL_l~WA`T-w;jPIkoCBEjWEB$W=Y}niM_b z6|ZUxx}~LMl~pHFP<038|hdEetqm#2%X+%D^vdI(LR*K%lkTbC!KTG-nm~ z_uWXKu2M7I^6uvT_2TDQzzVfJ=$#djhgt8o*xs3e9jUxRKazThY`GS?}8 z-AN1Rgj$qiFh|8^w_P&ffCLgrg(ddEi{hB?V7aRlUfTT;HI*ZgPPrP1M|iVJu3)tA zT037EJC?&nV(vB$3o0$+P5{0104Od3_+2naqn@jf^ijkl}lb1_Kk)tNVryCy{FLiHYsNduHI%bTY9KbQFsq zy9p(rJ+{WFHtvKXA!4b(tJbA=V6hWv>ZSX89@<`uy!yXK!RotezJQ6DZ)g4R6fyt$ zb7+Am2O=yR1NlaevfQ~LL(wYMGs8B?SNDI8Vcn@dYmwTDgN3jqyp)0Gw!}(IWp$JS z^lsq6qM3mSo-y5BB{DVL#MkC5(Aek>(1Zd{Mf&|1N>mtd$h)P*(I2qh^v$RrMB)<# z`59pm%7P?M;w!3bs1TUYf0OQ_^FT{E<{fY@MXMXFoUP4_yHgu432fA)EPxpjbYqXj)Wum>S>zIa9yXSCFQ6j|BeEogB15{nc} z9M7sgb^if~Q_GBmvDf5dca=a?A9_a7>+#6Z`a4r%|9$2QIfQd{7fi0`Lfxgapnm$! zDY@=%%MeplxnVI+IN{I1D4W(nmz8aEm|OwinB}w4SQ9BsM2;xaeZhZp-p^rek$thP>gZXVQN`0pE?+u!LJHufsz0`;WZTPcAUb~Vqa6n8*tCg9 zJTI5XXXDJ}1^F>k?uN=#io*IuQCw%7i|EozO;@42_T-i7X*;+A9*gNuF-_lyhRuVe zjewp!b7mf@6K|6S0em3BB#whA)t9}zoMVQ$4rf>y2PyT3o$2*D@8xKdo1VWyRgvQ(ynbQbqdrz_>1 zCdKA}06!Rena;LT8j^zPelJOlPuU;EbUsmP6tn_BAdN6I8NFhF5jw?kPrW?$y(d4B zqfrhVJvHxowV}i+awCOyoj>-U@Rpa+Sb~Ud9G7t#Z7!%JwcDw!L}MGR3uz4cWUou-<_p>8sezpU zS-*n)%>4Iv|KPeYk`F{k|4wKXj2ZXvR<{=q&)OJd-B*bV5Fi*!ZGYD|Cx(eRJp(VkIt;4r1~tc0mz; z;1`}OaW+an{-Vg~X76Sxf>KXA@b4Wnt$&Oxh{rIK(BWSsQRef?e70G_AdKZ@7(Hny zrnzn!YG*-2=1Dy?(p!TeP_**#D>V$}eJd73WF{{$q%)SC)L#?V`xBwS>-0{hj*a70 zKfjEYO_nHmz98opnJO+Lj1 z!DbA{XLuwlz>U;ctvdfH$wWgAnzk`{UDGFe8sS}6P$TpImt!*418H&bbRsxR#)|VR zQofn)3W$Vv)au~v=6a<2Z|S(Xn$%bY$DOkY939g#mY2)-(CZ2n{cqjOYB5lEn*+B_ z8-?S)(7HjbpE zY)`)Nc9fkCWZ$p&Fd1pu8;%wP5fesQeY+E4Pd&_~lq$kJHv9qx;7hFYqM?(@W~GNp z`D!AiWj@pP1=bKQcW)D%{<)f`P9;bAZQx*VB~_05>TBc-90{lo>SZ{t1;Ne1afyD~ z%(c2KWe2LUCktS30XW#u819V!!H3ac4&<^(G!EWCHocm%d)SW(9by9=l#pJu-xI&- z1Z|@gm@@Wd2rpi3$#baV9ND7iI-?IpLSw1YrkTp9(jY{>Wyo%&)JrAcNffj~ZD~@R zvH^B%Mi|XR)aC;zDnDK2-U^INsiG(@puW6m6$#v_Jf%Cl6Kvvpk=itx*K=63QObtv zHiUDbz-sU~^F#s~VZ9O}tz|(?dkMiXjh~A4>2M-5_jh%@7Hq9_T~(7|wt$?24sy28fS)5RO~h8zeb-u3e!qd@CweLzME{2Ri3gvFRY+ZfZk5o=udzMM!h7d@Dx)C0Quh*}|L@w_p3m}TNBhD)_+Jz`+~rEWT1 z_a}m-*y0^z^?(H|;N*BM@>xaXJjP&kKG~VIKy%yV8(2gm*F?skZlm_E0>pTDQU(zqIGIDz;$i79d_WZQi#I+gDFnk zp$vQdG|0(}QHBj-p;u7g~W1Y)%H?j-XPo&6S;_Ru-%G)&cK~E{T2-qxlIB$n;*RdZC^`=9)#;bWbLbw{oWgd5P)JypWFE>%S^8 zuN$Ux5&{X&RTxDB9x#4h3|TU)kLtHXlWH8@khJQL(Fq*SO!oQ$N$Kg-reFaH06>oa zk;a6jL9)E3Lv0aYJ+)fqr%hY9un4p?yp`}w%DW8RM#_ZM)_YcAvdy5TzTMXooTLkV z;$SY=uXe11`V^{mM4uITT!BTiqqBYKETnRkaPtG0Wj>iRbc~ z@+Rcp93NoRa09pmr-s$tu8h@$*NU#)g}in4r5oE|`#k8SMY8fy90(ZnwEA&r*!Dqm z(!*)E6Dx?#N<99#dqH3mGmf4rAoD()G8$*MwNR>J+kJq*w0)Hx`qWPmN&Xd(jSq=^ zLiepFd8?$b16kXil=d);1QuG78&|(&-cG(6t%P2r4^5~;#M;0C*rVd9B)+f!bG{Qe zXNp2AaOfcfYfexQWF+*1_iKR;G3cACr)AWdArInu7N^pH?~w(v9N6NzMpZ7;3>lt9L*uAza=4TtOcagrS*c+rT{4GG{b6%x(*!0rL+H zrz4LlUcYSz!sE30+Hr1bpeBs;cuCZKrlVK&FFdasPF91z2#Nyth0B8AwPI~yIC7#Z zr=9vZUr$qVe&y+Si`PyvAizHqvhmlNNws8%iVsnqPguH7l0;whvf4s9HH{z8`(O(V*HO2Cs*mjf(#~22De#Q{GB#QAiOQI3W zeqW|4$yR&K8?pAP<;Dr8>hxIh%3Uz+*gtv8SM-us*j1s2CG*Kz$-bVu3E`-F)3IF? z#@oCBX!-24iDt;tucu5-OxkDIR8r)wTi4S77>xTv1h^k4Qz_T?J}+aKt#(xzYiV1~ z7l*1n6<{7^`b5o1)`{MpSPK7Hi&XOgUN2tkdJc9W4%+=;(uJ=_@$s1Ru5kM>bpz*|2f(mo9@ff zXIbgpGN>Hfz!h)s3MoJG{A9$4Gi5S1;ZsK3eO^D8;1j0tHOh$8>QnWZSsCpHNO$Ni zySO3~dAsH@2{h+!i!uuWO@!X(!B32|^)H{6p8-rVtb`@Yrg(ZG3h=kiv?UfDmO~K% zaUOdH0W7CWI~2S!slnS(q!+zf8r(u60U+p+u+$t;F$>C!q*p_QSA-0z^yP$$zk@Y%-KxJl z&~iW&u9=IH+D-A^vXOZG*0Uz{>h1rxQSTw-{5^ z(4H_j#+-e@#k${nE3p}?N!I8c#@Ascnn70TSNBwe$6I#CPqtI?M|3;bw$3@9D1f&! zka;2T!_BwbF3u0mjPkc7H?oiO3)ZUNL|D1MOX{& zm;iO-?NXsWahkAN0#b)+iK7|9*UsT(zh!iRb%ey*GmJrI4@b--fTI(N;^sT0jaK9v z6^>fk3ad>eh`NgjPdTmRUcbMCtjKUO^Sy-yaZBcE1~`{j8h7d4UdfEQaU2}IpB0+P{$9#g{{;m%d3eI4#<8Vn&GpZ}V})>?)J7JQ+2I(M;vK%3 zjBH{JH80?Q#)+ePSIp7bNSpj_odnMZ$=SdIkKM`h-_PA~KPki`Am$3OY}Q@7?zH%C z|H~~C0H>6cYO0@@IlXf!Q2*Z=*t*d3kYI`g?rOJ;%$+?^Tp$p0F%*V01}n0*JdCzS z>#`8$CgUA_=+7c0Ev9$G*5Hg`h1Yz+n$J}JLhwGSj2CQzW>F+Iqc${(SchiK|w&flTK*kFsB4`h7VGqw-4OzpKTm#Kg7TzYV=QcI!|O5e%U+TzgE; zF<%8vkhC)DU7u#3^|t)}8RG>YHExRK>Si>jT9{pExKS%Zy?EL3u{?+uMYe5v$s6jx zptFALnDrXMs3!rCuxM&SjykbAXDJnxyg5$ZvViIo+hhPUIx}v2Dto4J-f&fYMb!Ne z^r0By|50YtpfFd6A&CIs-9FL|?s1lsYOs>M_@>|7AcwL4=?DJ(rZqCU3*R&wzJL(w z-7_F}3)0X`ncNB*hl`}+(Br57SzE-ym%#d3z8XvVML-~YOqfdrS zf7Nks>x0}BX-g0Fkd?EHI7#&w!kXgbHvC)3jUQ(xi!50!t7{)mCC2R`THNyDM%)p} zAOBk@Os&6dARzv+1AMOZ*a_D#y$YWjsA-81-3+vSSC^0jB(GLkr{{4ST^9hd-?!Ut zRpTokbA;oK@k;Aweik(b9ShD4>1b(V61z&QLi8+dpAHyI$_&HOK~=P-&a-N z`$Y;U5YXcj$cFtOWNJSwp5Azq3hZQ;0ER2 zL%74LYWr(##T(Z&Yk7h@U**Y0KkwuI(#j#7@8{nGl13!csHWgdY(VbK0TQuEkBGY1 z(vOFu0Rkjy0M$##DW|yzcD%XFRPE?)9xPd;TAH}QWz*)!gnk}PFiykaO|Kw<6i}&jbbVoUGYQ%t*k;+!rShTQ(^zSXT#;X;dz** z*0S!qzonA|DZ$~C7|b=DZ$@{sb$Jo#-v3~j)H-2r`Eakv*z?d3Cj+0dvth7EIpwr` zK&?l~sHJ_YbHa>;lirr$E098EU_8e9qkT7O9us?5v;z}Wxt!7nn3#Zi5s=^9qJH%E z!UGSZ(iF%A5tY#&V|0aAR-T-dTvZ-*z*l9c#7SKL$Gi?DxNUmnq?5%=PQucFJ@hds zvJP%o<$qoGa&A1*)Leuc9H8|6(X=rq#S#eUAL>}dB`|WAeFhTxsE5t>k=~b3tS%JN z$FcDt0(s>^)=aPw7Ne2Wg~ZLG`PVoHuL7f56aOz_nJHbuUdK zm5q0ig7&pvKWHe;JGP#73^J0Ek_pjvb9*m#s)cUXdTk8bn2IA2&if=G6u>d@zJ9*h z@`J*7;zx%er^i?v+&mwb{foEM*|PyxyiiJ8wtu{-AV|l;x^YNwvs(^yIFA+s#S%75 zcL4q6PHbj8c(a!-V6QCZ^5U4?iEIdCYAXfVH&6g^x>%| zdBXV=dd0;B z>PM)f%V!Sh3{-qOgsY5CeHJrnlh;hNp6=^hU#^omaP~Jp3J$z~J{XIW$DW@jTE@|BT6WN*J2OzLup%nQc$XLrc>eQN}o%$E0A+svANe3tXFX3;s3-o;g}7Lf>;i; zPL-^6ctdCuDN;s&9fU*HaMzRQZs09im%l($Z7^y;+?*BM{zG@W<$y*WY@lrDtMSr2 zW4>6cY;ZZhTfqC*CnZZP-KY`T&kd@b+|{fr9rlzSaZm_KwOwZ?W9)GdQ-PMc>mxdA zUu`}e?(4jb#R+u=O#Z%AMT+^R!CU(PzK2#<(`%H0Ci-YI+mhVqIj~S*>?RScHQbOk zy(8YdUiw2oFBB9)_xer9LOfx%*a40=9=vW*sWjMz8$oo^oH-DJ!1^{iFShIfnKByf z;>C=86}6nNMN)twwtY?-e-2)rx~cXEy5-F;RcZf_r`P|_udpxm7?a8B+F-- zo(a1*yEsMU2K2CVt!6>s1^PH?I>KB=x_*ls)S_QTG0I#m7AtMcbV3jUUc$qB5Ku<} zKX%Q%N%SfH#$p=f^gJ+7i(B9#jGK0l@Gn?7|0nJx{76uhepdvvg(j5 zkgfkf;k|u{rLbu%9!(^Je|)MZkizV+8LqB+Bq(JOg1mhr;kgo&_!`wE1UwK12>mEP zjoqbQs&c+|ym~rBYnV&_BRvltHyO2c7f7J=?ONn5^SxV2mg1qd(?`_v_6ymsoN$_q z-7EalU})f8C?IVlqhQ}QYa>a>)KycmcXzQlxI-NGQYS;I8JystrfQ>w>Hi{o;ZB`p zD|bhK`DNid$Pypk>ZyJu>GnM2T%hjb)ou;+&EiBjyZBrYZ?!cfRG)STL}y|0@LBw1 zbkHTygizxdA{eXHX`F1!yW-j5K@}8|_vvLXR6TIPan2vQc5bfYVg55%-$qBu5)ZVv&~a;P8$F*8Sef)-P4Y8Kuw61u3#4_@Ca5hflSfFk$>A~IK# z+148%wUhu72U@0W2V7y$F7m>}#x2Kze`Eh~YF^1(O-@Yq=$cSI%BJEg)l~)-7>>X| zupuV%O&sjzkc(FE6ZlP8k?#ein#Gt!CnUIk-WHRcK{MrDQr(&lm`5R6uGphvtYoFAD)!HJ@!+Y`w`z9i{p+MWM35Y>n0X+$7}2){!Wz zy#~S}>-<1e0sHLt*9>=+`FU~p7aGyJq)$H&c<^OzY+|aglqcN?=GI>CX3HN%oN_OpXT_ZNQsag^v~~83Ex#6wrhf)#Y@mZ)}K6pfT@nSHCoXZ;Tv| z)glE5anRr;y3v6Cc7F}=>=Gf+x83mpdE-OyR0LYB=0d@0|@ovdk-%qER0j0aFA=vRZMmq)9{;>}OdltBd&;Ixe2 z^HR||pCR-}4Y7X6Lj}?GDUXDBD;4=^VqDPR&%tn~r40ni($0^oCi!*Y`axg=0B{gB zA3aEW8l8N<#m0215SCho^7kz@9<19-hna6 zjLB?;WpE*~o(ZMvit$6}gwr<_Bd-ruDM9n`NI9ulFE}$R_IE|*dmx&_>?3U$om~#~ zEFp9d)WJVH0;$$Gm8C5jv5p5(ttVQMw`-sZ=ugviMS1VqwB3=O$ye3sq@FRvaOxOL znW`b8y7mrRDKJ-5!-=Y?VX4oIe_J|xkzXOJ+>9a zRPo5i;8aB2!^o^mURH0N@oa_m^ckyjvPzb92;iI64m+jEDJY-H9y{6>)g8eZ81zLb zh2`@6%}i$bA=&@{009C4;({ktUvY$nHBuLGklZouad@w!5w9-ECg#eXratq09mM(Z z3_!cWhY~}<7Q=7<0u``UXb*eBYzjt4?4Ra-a9)2)_JxHl?J+UL0Z3W6gN+u@Bjb+ z0RREwM)g(niwaC@l0F0={>`DlzuJY)v4Ti~p@84kqPvDXda@g>d|7C!f-aa@39itS z%IV<4lvko~<+C!O{E541UZNHKL7&!6l{7ytkO0RREwX4Q4{iwaC^9vsCW@Y&G8DgXuL z)XN<)_C66THc1wi3K_m&Uk{gwM)rhNazJLRiEqM1Y!lORWtS%^5(jX%@X(NET zrhsK7v#SRajx!*KW9^0~78+kEAe6b7s*n%chgRe)L`*>ObjCMU7ytkO0RjQg$hTKt zaSR3!m|M#M(ibi0gGn&16-couhZp~#(Ix9qT?38}v|ob4FfT>+*#_MLV66CDa+J^0 zG+s29dLl5ht_*X5c;icV+Leqyk#Rc?yipgMoM;V6qD-07Z`|`~6(8$h*G|eV0?Lv= z_3A)5PH z>qwod?##;mkrBBkn;H@Q3*{Ds4~Yi})LTio7_&e)O$t{5cQi5riVrer5rG>{h#dc( zhX`F(v8RJ(B1tc>edMNC~G}qfq zA&IcKMZULMuTIe%Szt{zU9wJL3Rh(Oz(`T(taYDT2c=nP7H-=|p?!F~%0DBu=*Ddu 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 d9x